From ab52579de489b79f2a49f9cba0ca5bc36db12284 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 28 May 2019 15:00:18 +0200 Subject: [PATCH 1/5] Replicating from 3.7 --- c-api/cell.po | 19 +- c-api/complex.po | 41 + c-api/datetime.po | 66 +- c-api/exceptions.po | 2 +- c-api/file.po | 45 +- c-api/float.po | 32 +- c-api/intro.po | 2 +- c-api/iterator.po | 15 +- c-api/memory.po | 2 +- c-api/objbuffer.po | 12 + c-api/object.po | 116 ++- c-api/reflection.po | 20 +- c-api/veryhigh.po | 2 + c-api/weakref.po | 39 +- distutils/apiref.po | 1015 +++++++++++++++++++-- distutils/builtdist.po | 49 +- distutils/extending.po | 69 +- distutils/introduction.po | 2 +- faq/design.po | 151 +++- faq/windows.po | 6 + howto/clinic.po | 41 +- howto/cporting.po | 2 +- howto/functional.po | 2 +- howto/ipaddress.po | 152 +++- howto/logging-cookbook.po | 14 +- howto/logging.po | 703 +++++++++++++-- howto/pyporting.po | 2 +- howto/sockets.po | 98 +- howto/unicode.po | 142 ++- library/__future__.po | 37 +- library/_thread.po | 5 + library/asyncio-eventloop.po | 4 +- library/asyncio-queue.po | 4 +- library/asyncio-sync.po | 2 +- library/asyncio-task.po | 13 +- library/atexit.po | 6 + library/binascii.po | 88 +- library/calendar.po | 58 +- library/codecs.po | 2 +- library/codeop.po | 47 +- library/concurrent.futures.po | 7 + library/copyreg.po | 29 +- library/email.parser.po | 21 +- library/email.po | 104 ++- library/errno.po | 259 +++--- library/filecmp.po | 87 +- library/grp.po | 4 +- library/hashlib.po | 316 ++++++- library/hmac.po | 4 +- library/http.cookiejar.po | 4 +- library/http.cookies.po | 100 +- library/inspect.po | 2 +- library/io.po | 2 +- library/logging.config.po | 8 +- library/logging.handlers.po | 8 +- library/logging.po | 27 +- library/mailbox.po | 101 ++- library/multiprocessing.po | 1406 ++++++++++++++++++++++++++--- library/operator.po | 197 ++-- library/optparse.po | 2 +- library/othergui.po | 5 + library/pickle.po | 42 +- library/plistlib.po | 2 +- library/poplib.po | 2 +- library/pprint.po | 110 ++- library/pwd.po | 10 +- library/random.po | 33 +- library/re.po | 9 +- library/resource.po | 2 +- library/shutil.po | 2 +- library/socketserver.po | 2 +- library/spwd.po | 48 +- library/sqlite3.po | 89 +- library/stringprep.po | 66 +- library/sysconfig.po | 2 +- library/tarfile.po | 8 +- library/telnetlib.po | 2 +- library/tempfile.po | 183 +++- library/textwrap.po | 149 ++- library/threading.po | 194 +++- library/time.po | 418 ++++++++- library/timeit.po | 2 +- library/tkinter.po | 4 +- library/tracemalloc.po | 2 +- library/turtle.po | 68 +- library/unittest.mock-examples.po | 6 + library/unittest.mock.po | 244 ++++- library/unittest.po | 1079 ++++++++++++++++++++-- library/urllib.parse.po | 4 +- library/venv.po | 170 +++- library/warnings.po | 206 ++++- library/weakref.po | 2 +- library/webbrowser.po | 2 +- library/winreg.po | 2 +- library/xml.etree.elementtree.po | 6 +- library/xml.sax.utils.po | 56 +- library/xmlrpc.client.po | 2 +- library/zipapp.po | 2 +- library/zipfile.po | 304 ++++++- library/zipimport.po | 2 + reference/import.po | 12 +- reference/lexical_analysis.po | 24 +- using/cmdline.po | 15 +- using/mac.po | 110 ++- using/unix.po | 96 +- using/windows.po | 676 ++++++++++++-- whatsnew/2.5.po | 19 +- whatsnew/2.6.po | 2 +- whatsnew/2.7.po | 2 +- whatsnew/3.4.po | 2 +- whatsnew/3.5.po | 5 +- whatsnew/3.6.po | 4 +- 112 files changed, 9176 insertions(+), 1147 deletions(-) diff --git a/c-api/cell.po b/c-api/cell.po index e4b43ede1..4564c9276 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -45,31 +45,37 @@ msgstr "" #: ../Doc/c-api/cell.rst:20 msgid "The C structure used for cell objects." -msgstr "" +msgstr "Structure C utilisée pour les objets cellules." #: ../Doc/c-api/cell.rst:25 msgid "The type object corresponding to cell objects." -msgstr "" +msgstr "Type objet correspondant aux objets cellules." #: ../Doc/c-api/cell.rst:30 msgid "Return true if *ob* is a cell object; *ob* must not be *NULL*." msgstr "" +"Renvoie ``True`` si *ob* est un objet cellule ; *ob* ne doit pas être à " +"*NULL*." #: ../Doc/c-api/cell.rst:35 msgid "" "Create and return a new cell object containing the value *ob*. The parameter " "may be *NULL*." msgstr "" +"Crée et retourne un nouvel objet cellule contenant la valeur *ob*. Le " +"paramètre peut être mis à *NULL*." #: ../Doc/c-api/cell.rst:41 msgid "Return the contents of the cell *cell*." -msgstr "" +msgstr "Renvoie le contenu de la cellule *cell*." #: ../Doc/c-api/cell.rst:46 msgid "" "Return the contents of the cell *cell*, but without checking that *cell* is " "non-*NULL* and a cell object." msgstr "" +"Renvoie le contenu de la cellule *cell*, mais sans vérifier si *cell* est " +"non *NULL* et sans vérifier si c'est un objet cellule." #: ../Doc/c-api/cell.rst:52 msgid "" @@ -78,6 +84,10 @@ msgid "" "must be non-*NULL*; if it is not a cell object, ``-1`` will be returned. On " "success, ``0`` will be returned." msgstr "" +"Définit le contenu de l'objet cellule à *value*. Cela libère la référence à " +"toute valeur de la cellule. *value* peut être fixé à *NULL*. *cell* ne doit " +"pas être *NULL* ; si ce n'est pas un objet cellule, ``-1`` est renvoyé. Si " +"c'est un objet cellule, renvoie ``0``." #: ../Doc/c-api/cell.rst:60 msgid "" @@ -85,3 +95,6 @@ msgid "" "are adjusted, and no checks are made for safety; *cell* must be non-*NULL* " "and must be a cell object." msgstr "" +"Définit la valeur de l'objet cellule à *value*. Pas de comptage de " +"références n'est ajusté et il n'y' a pas de contrôle effectué pour vérifier " +"la sûreté ; *cell* doit être à non *NULL* et doit être un objet cellule." diff --git a/c-api/complex.po b/c-api/complex.po index e9a46107f..11781e423 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -55,54 +55,73 @@ msgid "" "objects use structures of this type as input or output values, as " "appropriate. It is defined as::" msgstr "" +"Structure C représentant la valeur d'un nombre complexe Python. La majorité " +"des fonctions qui traitent des nombres complexes utilisent cette structure " +"en entrée ou en sortie, selon le cas. Elle est définie par ::" #: ../Doc/c-api/complex.rst:39 msgid "" "Return the sum of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie la somme de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:45 msgid "" "Return the difference between two complex numbers, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie la différence de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:51 msgid "" "Return the negation of the complex number *complex*, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie l'opposé du nombre complexe *complex*, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:57 msgid "" "Return the product of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie le produit de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:63 msgid "" "Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" +"Renvoie le quotient de deux nombres complexes, sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:66 msgid "" "If *divisor* is null, this method returns zero and sets :c:data:`errno` to :" "c:data:`EDOM`." msgstr "" +"Si *divisor* est nul, cette méthode renvoie zéro et assigne :c:data:`EDOM` " +"à :c:data:`errno`." #: ../Doc/c-api/complex.rst:72 msgid "" "Return the exponentiation of *num* by *exp*, using the C :c:type:" "`Py_complex` representation." msgstr "" +"Renvoie *num* à la puissance *exp*, sous la forme d'un :c:type:`Py_complex` " +"en C." #: ../Doc/c-api/complex.rst:75 msgid "" "If *num* is null and *exp* is not a positive real number, this method " "returns zero and sets :c:data:`errno` to :c:data:`EDOM`." msgstr "" +"Si *num* est nul et *exp* n'est pas un nombre réel positif, cette méthode " +"renvoie zéro et assigne :c:data:`EDOM` à :c:data:`errno`." #: ../Doc/c-api/complex.rst:80 msgid "Complex Numbers as Python Objects" @@ -112,46 +131,64 @@ msgstr "Nombres complexes en tant qu'objets Python" msgid "" "This subtype of :c:type:`PyObject` represents a Python complex number object." msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre complexe en " +"Python." #: ../Doc/c-api/complex.rst:90 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python complex number " "type. It is the same object as :class:`complex` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type nombre complexe " +"Python. C'est le même objet que la classe :class:`complex` de la couche " +"Python." #: ../Doc/c-api/complex.rst:96 msgid "" "Return true if its argument is a :c:type:`PyComplexObject` or a subtype of :" "c:type:`PyComplexObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject` ou un sous-" +"type de :c:type:`PyComplexObject`." #: ../Doc/c-api/complex.rst:102 msgid "" "Return true if its argument is a :c:type:`PyComplexObject`, but not a " "subtype of :c:type:`PyComplexObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject`, mais pas " +"un sous-type de :c:type:`PyComplexObject`." #: ../Doc/c-api/complex.rst:108 msgid "" "Create a new Python complex number object from a C :c:type:`Py_complex` " "value." msgstr "" +"Crée un nouveau nombre complexe à partir de la valeur d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:113 msgid "Return a new :c:type:`PyComplexObject` object from *real* and *imag*." msgstr "" +"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*." #: ../Doc/c-api/complex.rst:118 msgid "Return the real part of *op* as a C :c:type:`double`." msgstr "" +"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:" +"`double` en C." #: ../Doc/c-api/complex.rst:123 msgid "Return the imaginary part of *op* as a C :c:type:`double`." msgstr "" +"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:" +"type:`double` en C." #: ../Doc/c-api/complex.rst:128 msgid "Return the :c:type:`Py_complex` value of the complex number *op*." msgstr "" +"Renvoie la valeur du nombre complexe *op* sous la forme d'un :c:type:" +"`Py_complex` en C." #: ../Doc/c-api/complex.rst:130 msgid "" @@ -159,3 +196,7 @@ msgid "" "method, this method will first be called to convert *op* to a Python complex " "number object. Upon failure, this method returns ``-1.0`` as a real value." msgstr "" +"Si *op* n'est pas un nombre complexe Python mais a une méthode :meth:" +"`__complex__`, cette méthode est d'abord appelée pour convertir *op* en " +"nombre complexe Python. En cas d'échec, cette méthode renvoie ``-1.0`` en " +"tant que nombre réel." diff --git a/c-api/datetime.po b/c-api/datetime.po index 4d29d84f0..e8235d7f5 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -31,74 +31,102 @@ msgid "" "structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " "the following macros." msgstr "" +"De nombreux objets *date* et *time* sont exposés par le module :mod:" +"`DateTime`. Avant d'utiliser une de ces fonctions, le fichier d'en-tête :" +"file:`datetime.h` doit être inclus dans vos sources (veuillez noter qu'il " +"n'est pas inclus par le fichier :file:`Python.h`) et la macro :c:macro:" +"`PyDateTime_IMPORT` doit-être invoquée, généralement lors de la fonction " +"d'initialisation du module. La macro crée un pointeur vers une structure C " +"et place celui-ci dans une variable statique, :c:data:`PyDateTimeAPI`, qui " +"est utilisée par les macros suivantes." #: ../Doc/c-api/datetime.rst:16 msgid "Type-check macros:" -msgstr "" +msgstr "Macros pour vérifier les types :" #: ../Doc/c-api/datetime.rst:20 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " "of :c:data:`PyDateTime_DateType`. *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType` ou un sous-" +"type de :c:data:`PyDateTime_DateType`. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:26 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType`. *ob* ne doit " +"pas être *NULL*." #: ../Doc/c-api/datetime.rst:32 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " "subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType` ou un " +"sous-type de :c:data:`PyDateTime_DateTimeType`. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:38 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType`. *ob* ne " +"doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:44 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " "of :c:data:`PyDateTime_TimeType`. *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType` ou un sous-" +"type de :c:data:`PyDateTime_TimeType`. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:50 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType`. *ob* ne doit " +"pas être *NULL*." #: ../Doc/c-api/datetime.rst:56 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " "of :c:data:`PyDateTime_DeltaType`. *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType` ou un sous-" +"type de :c:data:`PyDateTime_DeltaType`. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:62 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType`. *ob* ne " +"doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:68 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " "of :c:data:`PyDateTime_TZInfoType`. *ob* must not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType` ou un sous-" +"type de :c:data:`PyDateTime_TZInfoType`. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:74 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be *NULL*." msgstr "" +"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType`. *ob* ne " +"doit pas être *NULL*." #: ../Doc/c-api/datetime.rst:78 msgid "Macros to create objects:" -msgstr "" +msgstr "Macros pour créer des objets :" #: ../Doc/c-api/datetime.rst:82 msgid "" @@ -132,18 +160,22 @@ msgid "" "`PyDateTime_DateTime`). The argument must not be *NULL*, and the type is " "not checked:" msgstr "" +"Macros pour extraire les champs des objets *date*. L'argument doit être une " +"instance de :c:data:`PyDateTime_Date`, ou une sous-classe (telle que :c:data:" +"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est " +"pas vérifié :" #: ../Doc/c-api/datetime.rst:112 msgid "Return the year, as a positive int." -msgstr "" +msgstr "Renvoie l'année, sous forme d'entier positif." #: ../Doc/c-api/datetime.rst:117 msgid "Return the month, as an int from 1 through 12." -msgstr "" +msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12." #: ../Doc/c-api/datetime.rst:122 msgid "Return the day, as an int from 1 through 31." -msgstr "" +msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." #: ../Doc/c-api/datetime.rst:125 msgid "" @@ -151,22 +183,25 @@ msgid "" "instance of :c:data:`PyDateTime_DateTime`, including subclasses. The " "argument must not be *NULL*, and the type is not checked:" msgstr "" +"Macros pour extraire les champs des objets *datetime*. L'argument doit être " +"une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-" +"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" #: ../Doc/c-api/datetime.rst:131 ../Doc/c-api/datetime.rst:155 msgid "Return the hour, as an int from 0 through 23." -msgstr "" +msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23." #: ../Doc/c-api/datetime.rst:136 ../Doc/c-api/datetime.rst:160 msgid "Return the minute, as an int from 0 through 59." -msgstr "" +msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59." #: ../Doc/c-api/datetime.rst:141 ../Doc/c-api/datetime.rst:165 msgid "Return the second, as an int from 0 through 59." -msgstr "" +msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59." #: ../Doc/c-api/datetime.rst:146 ../Doc/c-api/datetime.rst:170 msgid "Return the microsecond, as an int from 0 through 999999." -msgstr "" +msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999." #: ../Doc/c-api/datetime.rst:149 msgid "" @@ -174,6 +209,9 @@ msgid "" "instance of :c:data:`PyDateTime_Time`, including subclasses. The argument " "must not be *NULL*, and the type is not checked:" msgstr "" +"Macros pour extraire les champs des objets *time*. L'argument doit être une " +"instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. " +"L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" #: ../Doc/c-api/datetime.rst:173 msgid "" @@ -181,22 +219,28 @@ msgid "" "instance of :c:data:`PyDateTime_Delta`, including subclasses. The argument " "must not be *NULL*, and the type is not checked:" msgstr "" +"Macros pour extraire les champs des objets *time delta*. L'argument doit " +"être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-" +"ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" #: ../Doc/c-api/datetime.rst:179 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "" +"Renvoie le nombre de jours, sous forme d'entier allant de -999999999 à " +"999999999." #: ../Doc/c-api/datetime.rst:186 msgid "Return the number of seconds, as an int from 0 through 86399." -msgstr "" +msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399." #: ../Doc/c-api/datetime.rst:193 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "" +"Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999." #: ../Doc/c-api/datetime.rst:198 msgid "Macros for the convenience of modules implementing the DB API:" -msgstr "" +msgstr "Macros de confort pour les modules implémentant l'API DB :" #: ../Doc/c-api/datetime.rst:202 msgid "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index df99b114e..04e1d9908 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -486,7 +486,7 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:477 msgid "Signal Handling" -msgstr "" +msgstr "Traitement des signaux" #: ../Doc/c-api/exceptions.rst:487 msgid "" diff --git a/c-api/file.po b/c-api/file.po index db2b2fe0e..4a6dabad8 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -32,6 +32,16 @@ msgid "" "reporting in the interpreter; third-party code is advised to access the :mod:" "`io` APIs instead." msgstr "" +"Ces API sont une émulation minimale de l'API C Python 2 pour les objets " +"fichier natifs, qui reposaient sur la gestion des entrées-sorties avec " +"tampon (:c:type:`FILE\\*`) de la bibliothèque standard C. En Python 3, les " +"fichiers et les flux utilisent le nouveau module :mod:`io`, qui définit " +"plusieurs couches au dessus des entrées/sorties bas niveau sans tampon du " +"système d'exploitation. Les fonctions définies ci-dessous, écrites en C, " +"encapsulent ces nouvelles APi pour les rendre plus faciles d'utilisation et " +"sont majoritairement pensées pour signaler des erreurs internes dans " +"l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:" +"`io` à la place." #: ../Doc/c-api/file.rst:22 msgid "" @@ -42,6 +52,13 @@ msgid "" "failure. For a more comprehensive description of the arguments, please refer " "to the :func:`io.open` function documentation." msgstr "" +"Crée un objet fichier Python à partir du descripteur d'un fichier déjà " +"ouvert *fd*. Les arguments *name*, *encoding*, *errors* et *newline* peuvent " +"être *NULL* pour utiliser ceux par défaut ; *buffering* peut être *-1* pour " +"utiliser celui par défaut ; *name* est ignoré et gardé pour la rétro-" +"compatibilité. Renvoie *NULL* en cas d'échec. Pour une description plus " +"détaillée des arguments, merci de vous référer à la documentation de " +"fonction :func:`io.open`." #: ../Doc/c-api/file.rst:31 msgid "" @@ -49,10 +66,14 @@ msgid "" "level file descriptors can produce various issues (such as unexpected " "ordering of data)." msgstr "" +"Étant donné que les flux de données Python possèdent leur propre couche de " +"tampon, les mélanger avec des descripteurs de fichiers du niveau du système " +"d'exploitation peut produire des erreurs (comme par exemple un ordre des " +"données inattendu)." #: ../Doc/c-api/file.rst:35 msgid "Ignore *name* attribute." -msgstr "" +msgstr "ignore l'attribut *name*" #: ../Doc/c-api/file.rst:41 msgid "" @@ -62,6 +83,11 @@ msgid "" "integer, which is returned as the file descriptor value. Sets an exception " "and returns ``-1`` on failure." msgstr "" +"Renvoie un descripteur de fichier associé avec *p* comme un :c:type:`int`. " +"Si l'objet est un entier, sa valeur est renvoyée. Sinon, la méthode :meth:" +"`~io.IOBase.fileno` de l'objet est appelée si elle existe; la méthode doit " +"renvoyer un entier, qui est renvoyé en tant que valeur du descripteur. " +"Affecte une exception et renvoie ``-1`` lors d'un échec." #: ../Doc/c-api/file.rst:52 msgid "" @@ -75,6 +101,16 @@ msgid "" "regardless of length, but :exc:`EOFError` is raised if the end of the file " "is reached immediately." msgstr "" +"Cette fonction, équivalente à ``p.readline([n])``, lit une ligne de l'objet " +"*p*. *p* peut être un objet fichier ou n'importe quel objet qui possède une " +"méthode :meth:`~io.IOBase.readline`. Si *n* vaut ``0``, une seule ligne est " +"lue, indépendamment de la taille de la ligne. Si *n* est plus grand que " +"``0``, un maximum de *n* octets seront lus en provenance du fichier ; une " +"ligne partielle peut être renvoyée. Dans les deux cas, une chaîne de " +"caractères vide est renvoyée si la fin du fichier est atteinte " +"immédiatement. Cependant, si *n* est plus petit que ``0``, une ligne est lue " +"indépendamment de sa taille, mais :exc:`EOFError` est levée si la fin du " +"fichier est atteinte immédiatement." #: ../Doc/c-api/file.rst:67 msgid "" @@ -83,9 +119,16 @@ msgid "" "instead of the :func:`repr`. Return ``0`` on success or ``-1`` on failure; " "the appropriate exception will be set." msgstr "" +"Écrit l'objet *obj* dans l'objet fichier *p*. La seule option gérée pour " +"*flags* est :const:`Py_PRINT_RAW` ; si défini, l'attribut :func:`str` de " +"l'objet est écrit à la place de l'attribut :func:`repr`. Retourne ``0`` en " +"cas de succès ou ``-1`` en cas échec ; l'exception appropriée sera levée." #: ../Doc/c-api/file.rst:75 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." msgstr "" +"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` " +"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise " +"en place." diff --git a/c-api/float.po b/c-api/float.po index 9308be4e7..f5aa5c435 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -19,40 +19,53 @@ msgstr "" #: ../Doc/c-api/float.rst:6 msgid "Floating Point Objects" -msgstr "" +msgstr "Objets représentant les nombres à virgule flottante" #: ../Doc/c-api/float.rst:13 msgid "" "This subtype of :c:type:`PyObject` represents a Python floating point object." msgstr "" +"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre à virgule " +"flottante en Python." #: ../Doc/c-api/float.rst:18 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python floating point " "type. This is the same object as :class:`float` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." #: ../Doc/c-api/float.rst:24 msgid "" "Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" "type:`PyFloatObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" +"type de :c:type:`PyFloatObject`." #: ../Doc/c-api/float.rst:30 msgid "" "Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " "of :c:type:`PyFloatObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " +"sous-type de :c:type:`PyFloatObject`." #: ../Doc/c-api/float.rst:36 msgid "" "Create a :c:type:`PyFloatObject` object based on the string value in *str*, " "or *NULL* on failure." msgstr "" +"Crée un objet :c:type:`PyFloatObject` à partir de la valeur de la chaîne de " +"caractères *str*, ou *NULL* en cas d'échec." #: ../Doc/c-api/float.rst:42 msgid "Create a :c:type:`PyFloatObject` object from *v*, or *NULL* on failure." msgstr "" +"Crée un objet :c:type:`PyFloatObject` à partir de *v*, ou *NULL* en cas " +"d'échec." #: ../Doc/c-api/float.rst:47 msgid "" @@ -62,12 +75,20 @@ msgid "" "This method returns ``-1.0`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C. Si le *pyfloat* n'est pas un nombre à virgule flottante " +"mais contient une méthode :meth:`__float__`, elle est d'abord appelée pour " +"convertir le *pyfloat* en nombre à virgule flottante. Cette méthode renvoie " +"``-1.0`` en cas d'échec, il faut appeler :c:func:`PyErr_Occurred` pour " +"vérifier les erreurs." #: ../Doc/c-api/float.rst:56 msgid "" "Return a C :c:type:`double` representation of the contents of *pyfloat*, but " "without error checking." msgstr "" +"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:" +"type:`double` en C, sans vérifier les erreurs." #: ../Doc/c-api/float.rst:62 msgid "" @@ -75,20 +96,29 @@ msgid "" "minimum and maximum values of a float. It's a thin wrapper around the header " "file :file:`float.h`." msgstr "" +"Renvoie une instance *structseq* qui contient les informations sur la " +"précision et les valeurs minimales et maximales pour un nombre à virgule " +"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`." #: ../Doc/c-api/float.rst:69 msgid "" "Return the maximum representable finite float *DBL_MAX* as C :c:type:" "`double`." msgstr "" +"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme " +"d'un :c:type:`double` en C." #: ../Doc/c-api/float.rst:74 msgid "" "Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`." msgstr "" +"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la " +"forme :c:type:`double` en C." #: ../Doc/c-api/float.rst:78 msgid "" "Clear the float free list. Return the number of items that could not be " "freed." msgstr "" +"Libère la mémoire de la *free list* des nombres à virgule flottante. Renvoie " +"le nombre d'éléments qui n'ont pas pu être libérés." diff --git a/c-api/intro.po b/c-api/intro.po index 1953508b6..8dee4b087 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -466,7 +466,7 @@ msgstr "" #: ../Doc/c-api/intro.rst:517 msgid "Embedding Python" -msgstr "" +msgstr "Embarquer Python" #: ../Doc/c-api/intro.rst:519 msgid "" diff --git a/c-api/iterator.po b/c-api/iterator.po index 539f68190..fc61cf774 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -41,10 +41,13 @@ msgid "" "one-argument form of the :func:`iter` built-in function for built-in " "sequence types." msgstr "" +"Type des itérateurs renvoyés par les fonctions :c:func:`PySeqIter_New` et la " +"forme à un argument de la fonction native :func:`iter` pour les séquences " +"natives." #: ../Doc/c-api/iterator.rst:24 msgid "Return true if the type of *op* is :c:data:`PySeqIter_Type`." -msgstr "" +msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`." #: ../Doc/c-api/iterator.rst:29 msgid "" @@ -52,16 +55,20 @@ msgid "" "iteration ends when the sequence raises :exc:`IndexError` for the " "subscripting operation." msgstr "" +"Renvoie un itérateur sur la séquence *seq*. L'itération prend fin lorsque la " +"séquence lève :exc:`IndexError` lors d'une tentative d'accès." #: ../Doc/c-api/iterator.rst:36 msgid "" "Type object for iterator objects returned by :c:func:`PyCallIter_New` and " "the two-argument form of the :func:`iter` built-in function." msgstr "" +"Type de l'itérateur renvoyé par les fonctions :c:func:`PyCallIter_New` et :" +"func:`iter` à deux arguments." #: ../Doc/c-api/iterator.rst:42 msgid "Return true if the type of *op* is :c:data:`PyCallIter_Type`." -msgstr "" +msgstr "Renvoie vrai si *op* est de type :c:data:`PyCallIter_Type`." #: ../Doc/c-api/iterator.rst:47 msgid "" @@ -70,3 +77,7 @@ msgid "" "should return the next item in the iteration. When *callable* returns a " "value equal to *sentinel*, the iteration will be terminated." msgstr "" +"Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut être " +"n'importe quel objet Python appelable sans aucun paramètre ; chaque appel " +"doit renvoyer l'élément suivant de l'itération. Lorsque *callable* renvoie " +"une valeur égale à *sentinel*, l'itération prend fin." diff --git a/c-api/memory.po b/c-api/memory.po index cf7f44b88..3426abbeb 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -23,7 +23,7 @@ msgstr "" #: ../Doc/c-api/memory.rst:17 msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/c-api/memory.rst:19 msgid "" diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index e9b32565c..ee11f7dc2 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -57,6 +57,12 @@ msgid "" "and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" "`TypeError` on error." msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"utilisable en tant qu'entrée basée sur des caractères. L'argument *obj* doit " +"prendre en charge l'interface de tampon de caractère à segment unique. En " +"cas de succès, retourne ``0``, définit *buffer* à l'emplacement de la " +"mémoire et *buffer_len* à la longueur de la mémoire tampon. Retourne ``-1`` " +"et affecte une exception :exc:`TypeError` en cas d'erreur." #: ../Doc/c-api/objbuffer.rst:32 msgid "" @@ -66,6 +72,12 @@ msgid "" "and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" "`TypeError` on error." msgstr "" +"Retourne un pointeur vers un emplacement de mémoire en lecture seule " +"contenant des données arbitraires. L'argument *obj* doit prendre en charge " +"l'interface de tampon lisible à segment unique. En cas de succès, retourne " +"``0``, définit *buffer* à l'emplacement de la mémoire et *buffer_len* à la " +"longueur de la mémoire tampon. Renvoie ``-1`` et affecte l'exception :exc:" +"`TypeError` en cas d'erreur." #: ../Doc/c-api/objbuffer.rst:41 msgid "" diff --git a/c-api/object.po b/c-api/object.po index 0d88ce7c4..67c917ab1 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -19,13 +19,15 @@ msgstr "" #: ../Doc/c-api/object.rst:6 msgid "Object Protocol" -msgstr "" +msgstr "Protocole Objet" #: ../Doc/c-api/object.rst:11 msgid "" "The ``NotImplemented`` singleton, used to signal that an operation is not " "implemented for the given type combination." msgstr "" +"Le singleton ``NotImplemented``, utilisé pour signaler qu'une opération " +"n'est pas implémentée pour la combinaison de types en question." #: ../Doc/c-api/object.rst:17 msgid "" @@ -33,6 +35,9 @@ msgid "" "function (that is, increment the reference count of NotImplemented and " "return it)." msgstr "" +"Traite proprement le renvoi de :c:data:`Py_NotImplemented` depuis " +"l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de " +"référence de `NotImplemented` et le renvoie)." #: ../Doc/c-api/object.rst:24 msgid "" @@ -41,6 +46,11 @@ msgid "" "currently supported is :const:`Py_PRINT_RAW`; if given, the :func:`str` of " "the object is written instead of the :func:`repr`." msgstr "" +"Écrit un objet *o*, dans le fichier *fp*. Renvoie ``-1`` en cas d'erreur. " +"L'argument *flags* est utilisé pour permettre certaines options de rendu. La " +"seule option actuellement gérée est :const:`Py_PRINT_RAW` ; si cet argument " +"est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place " +"de :func:`repr`." #: ../Doc/c-api/object.rst:32 ../Doc/c-api/object.rst:39 msgid "" @@ -48,6 +58,9 @@ msgid "" "This is equivalent to the Python expression ``hasattr(o, attr_name)``. This " "function always succeeds." msgstr "" +"Renvoie ``1`` si *o* a l'attribut *attr_name*, et ``0`` sinon. Ceci est " +"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " +"réussit toujours." #: ../Doc/c-api/object.rst:46 msgid "" @@ -55,6 +68,9 @@ msgid "" "attribute value on success, or *NULL* on failure. This is the equivalent of " "the Python expression ``o.attr_name``." msgstr "" +"Récupère l'attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " +"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " +"l'expression Python ``o.attr_name``." #: ../Doc/c-api/object.rst:53 msgid "" @@ -62,6 +78,9 @@ msgid "" "attribute value on success, or *NULL* on failure. This is the equivalent of " "the Python expression ``o.attr_name``." msgstr "" +"Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " +"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " +"l'expression Python ``o.attr_name``." #: ../Doc/c-api/object.rst:60 msgid "" @@ -72,6 +91,13 @@ msgid "" "descriptors take preference over instance attributes, while non-data " "descriptors don't. Otherwise, an :exc:`AttributeError` is raised." msgstr "" +"Accesseur d'attribut générique destiné à être mis dans le *slot* " +"``tp_getattro`` d'un objet type. Recherche un descripteur dans le " +"dictionnaire de classes du MRO de l'objet ainsi qu'un attribut dans le :attr:" +"`~object.__dict__` de l'objet (si présent). Comme défini dans :ref:" +"`descriptors`, les descripteurs de données sont prioritaires sur les " +"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:" +"`AttributeError` est levée." #: ../Doc/c-api/object.rst:70 ../Doc/c-api/object.rst:81 msgid "" @@ -79,18 +105,26 @@ msgid "" "value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " "success. This is the equivalent of the Python statement ``o.attr_name = v``." msgstr "" +"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " +"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " +"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." +"attr_name = v``." #: ../Doc/c-api/object.rst:75 msgid "" "If *v* is *NULL*, the attribute is deleted, however this feature is " "deprecated in favour of using :c:func:`PyObject_DelAttr`." msgstr "" +"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " +"obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." #: ../Doc/c-api/object.rst:86 msgid "" "If *v* is *NULL*, the attribute is deleted, however this feature is " "deprecated in favour of using :c:func:`PyObject_DelAttrString`." msgstr "" +"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " +"obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." #: ../Doc/c-api/object.rst:92 msgid "" @@ -103,24 +137,39 @@ msgid "" "returned, otherwise an :exc:`AttributeError` is raised and ``-1`` is " "returned." msgstr "" +"Accesseur et suppresseur générique d'attributs qui est fait pour être mis " +"dans le :c:member:`~PyTypeObject.tp_setattro` d'un objet type. Il cherche un " +"descripteur de données dans le dictionnaire de classes dans le MRO de " +"l'objet et, si ce descripteur est trouvé, c'est lui qui est utilisé de " +"préférence pour la suppression et la définition de l'attribut dans le " +"dictionnaire d'instance. Sinon, l'attribut est défini ou supprimé dans le :" +"attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est " +"renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé." #: ../Doc/c-api/object.rst:104 ../Doc/c-api/object.rst:110 msgid "" "Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``del o.attr_name``." msgstr "" +"Supprime l'attribut nommé *attr_name*, pour l'objet *o*. Renvoie ``-1`` en " +"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o." +"attr_name``." #: ../Doc/c-api/object.rst:116 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." msgstr "" +"Une implémentation générique de l'accesseur d'un descripteur d'un " +"``__dict__``. Crée le dictionnaire si nécessaire." #: ../Doc/c-api/object.rst:124 msgid "" "A generic implementation for the setter of a ``__dict__`` descriptor. This " "implementation does not allow the dictionary to be deleted." msgstr "" +"Une implémentation générique du mutateur d'un descripteur de ``__dict__``. " +"Cette implémentation n'autorise pas la suppression du dictionnaire." #: ../Doc/c-api/object.rst:132 msgid "" @@ -132,6 +181,13 @@ msgid "" "to *opid*. Returns the value of the comparison on success, or *NULL* on " "failure." msgstr "" +"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Ceci est l'équivalent de " +"l'expression Python ``o1 op o2``, où ``op`` est l'opérateur correspondant à " +"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en " +"cas d'échec." #: ../Doc/c-api/object.rst:142 msgid "" @@ -143,12 +199,21 @@ msgid "" "Python expression ``o1 op o2``, where ``op`` is the operator corresponding " "to *opid*." msgstr "" +"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " +"*opid*, qui doit être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" +"`Py_NE`, :const:`Py_GT`, ou :const:`Py_GE`, correspondant à ``<``, ``<=``, " +"``==``, ``!=``, ``>``, ou ``>=`` respectivement. Renvoie ``-1`` en cas " +"d'erreur, ``0`` si le résultat est faux, et ``1`` sinon. Ceci est " +"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur " +"correspondant à *opid*." #: ../Doc/c-api/object.rst:151 msgid "" "If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " "will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`." msgstr "" +"Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` " +"renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`." #: ../Doc/c-api/object.rst:158 msgid "" @@ -156,12 +221,18 @@ msgid "" "representation on success, *NULL* on failure. This is the equivalent of the " "Python expression ``repr(o)``. Called by the :func:`repr` built-in function." msgstr "" +"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " +"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " +"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé " +"par la fonction intégrée :func:`repr`." #: ../Doc/c-api/object.rst:162 ../Doc/c-api/object.rst:186 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." msgstr "" +"Cette fonction inclut maintenant une assertion de débogage afin d'assurer " +"qu'elle ne passe pas sous silence une exception active." #: ../Doc/c-api/object.rst:170 msgid "" @@ -171,6 +242,12 @@ msgid "" "string similar to that returned by :c:func:`PyObject_Repr` in Python 2. " "Called by the :func:`ascii` built-in function." msgstr "" +"Comme :c:Func:`PyObject_Repr`, calcule une représentation en chaîne de " +"caractères de l'objet *o*, mais échappe les caractères non ASCII dans la " +"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, ``" +"\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " +"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " +"native :func:`ascii`." #: ../Doc/c-api/object.rst:181 msgid "" @@ -179,6 +256,11 @@ msgid "" "Python expression ``str(o)``. Called by the :func:`str` built-in function " "and, therefore, by the :func:`print` function." msgstr "" +"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " +"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " +"d'échec. Ceci est l'équivalent de l'expression Python ``str(o)``. Appelée " +"par la fonction native :func:`str`, et, par conséquent, par la fonction :" +"func:`print`." #: ../Doc/c-api/object.rst:194 msgid "" @@ -187,12 +269,19 @@ msgid "" "``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a TypeError " "is raised when *o* is an integer instead of a zero-initialized bytes object." msgstr "" +"Calcule une représentation en octets de l'objet *o*. *NULL* est renvoyé en " +"cas d'échec, un objet séquence d'octets est renvoyé en cas de succès. Ceci " +"est l'équivalent de l'expression Python ``bytes(o)``, quand *o* n'est pas un " +"entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée " +"lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros." #: ../Doc/c-api/object.rst:203 msgid "" "Return ``1`` if the class *derived* is identical to or derived from the " "class *cls*, otherwise return ``0``. In case of an error, return ``-1``." msgstr "" +"Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe " +"*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``." #: ../Doc/c-api/object.rst:206 ../Doc/c-api/object.rst:225 msgid "" @@ -200,6 +289,9 @@ msgid "" "The result will be ``1`` when at least one of the checks returns ``1``, " "otherwise it will be ``0``." msgstr "" +"Si *cls* est un tuple, la vérification est menée sur chaque entrée de *cls*. " +"Le résultat sera ``1`` quand au moins une des vérifications renvoie ``1``, " +"sinon ce sera ``0``." #: ../Doc/c-api/object.rst:210 msgid "" @@ -208,6 +300,10 @@ msgid "" "*derived* is a subclass of *cls* if it is a direct or indirect subclass, i." "e. contained in ``cls.__mro__``." msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle est appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe " +"directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``." #: ../Doc/c-api/object.rst:215 msgid "" @@ -215,12 +311,19 @@ msgid "" "class, are considered classes. However, objects can override this by having " "a :attr:`__bases__` attribute (which must be a tuple of base classes)." msgstr "" +"Normalement seulement les classes objets, c'est-à-dire les instances de :" +"class:`type` ou d'une classe dérivée, sont considérées classes. Cependant, " +"les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` " +"(qui doit être un tuple de classes de bases)." #: ../Doc/c-api/object.rst:222 msgid "" "Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " "*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." msgstr "" +"Renvoie ``1`` si *inst* est une instance de la classe *cls* ou une sous-" +"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " +"initialise une exception." #: ../Doc/c-api/object.rst:229 msgid "" @@ -228,12 +331,18 @@ msgid "" "determine the subclass status as described in :pep:`3119`. Otherwise, " "*inst* is an instance of *cls* if its class is a subclass of *cls*." msgstr "" +"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle sera appelée " +"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " +"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " +"*cls*." #: ../Doc/c-api/object.rst:233 msgid "" "An instance *inst* can override what is considered its class by having a :" "attr:`__class__` attribute." msgstr "" +"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en " +"ayant un attribut :attr:`__class__`." #: ../Doc/c-api/object.rst:236 msgid "" @@ -241,12 +350,17 @@ msgid "" "classes are, by having a :attr:`__bases__` attribute (which must be a tuple " "of base classes)." msgstr "" +"Un objet *cls* peut surcharger s'il est considéré comme une classe, et ce " +"que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui " +"doit être un tuple des classes de base)." #: ../Doc/c-api/object.rst:243 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." msgstr "" +"Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " +"``0`` sinon. Cette fonction réussit toujours." #: ../Doc/c-api/object.rst:249 msgid "" diff --git a/c-api/reflection.po b/c-api/reflection.po index 18ff3ef9f..3ac758d98 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -19,41 +19,52 @@ msgstr "" #: ../Doc/c-api/reflection.rst:6 msgid "Reflection" -msgstr "" +msgstr "Réflexion" #: ../Doc/c-api/reflection.rst:10 msgid "" "Return a dictionary of the builtins in the current execution frame, or the " "interpreter of the thread state if no frame is currently executing." msgstr "" +"Renvoie un dictionnaire des fonctions natives de la *frame* en cours " +"d'exécution, ou si aucune *frame* n'est exécutée, les fonctions natives du " +"*thread* indiqué par le *thread state*." #: ../Doc/c-api/reflection.rst:16 msgid "" "Return a dictionary of the local variables in the current execution frame, " "or *NULL* if no frame is currently executing." msgstr "" +"Renvoie un dictionnaire des variables locales de la *frame* en cours " +"d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." #: ../Doc/c-api/reflection.rst:22 msgid "" "Return a dictionary of the global variables in the current execution frame, " "or *NULL* if no frame is currently executing." msgstr "" +"Renvoie un dictionnaire des variables globales de la *frame* en cours " +"d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." #: ../Doc/c-api/reflection.rst:28 msgid "" "Return the current thread state's frame, which is *NULL* if no frame is " "currently executing." msgstr "" +"Renvoie la *frame* actuelle selon le *thread state*, qui est *NULL* si " +"aucune *frame* n'est en cours d'exécution." #: ../Doc/c-api/reflection.rst:34 msgid "Return the line number that *frame* is currently executing." -msgstr "" +msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" #: ../Doc/c-api/reflection.rst:39 msgid "" "Return the name of *func* if it is a function, class or instance object, " "else the name of *func*\\s type." msgstr "" +"Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un " +"objet d'instance, sinon le nom du type de *func*" #: ../Doc/c-api/reflection.rst:45 msgid "" @@ -62,3 +73,8 @@ msgid "" "and \" object\". Concatenated with the result of :c:func:" "`PyEval_GetFuncName`, the result will be a description of *func*." msgstr "" +"Renvoie une description en chaîne de caractères, en fonction du type de " +"*func*. Les valeurs renvoyées peuvent être ``\"()\"`` pour les fonction et " +"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" object" +"\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " +"résultat sera une description de *func*" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index e854e3660..c08607347 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -375,6 +375,8 @@ msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." msgstr "" +"Cette fonction inclut maintenant une assertion de débogage afin d'assurer " +"qu'elle ne passe pas sous silence une exception active." #: ../Doc/c-api/veryhigh.rst:341 msgid "" diff --git a/c-api/weakref.po b/c-api/weakref.po index 4cc8773b8..4b922b618 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/c-api/weakref.rst:6 msgid "Weak Reference Objects" -msgstr "" +msgstr "Objets à références faibles" #: ../Doc/c-api/weakref.rst:8 msgid "" @@ -28,18 +28,22 @@ msgid "" "is a simple reference object, and the second acts as a proxy for the " "original object as much as it can." msgstr "" +"Python gère les *références faibles* comme des objets de première classe. Il " +"existe deux types d'objets spécifiques qui implémentent directement les " +"références faibles. Le premier est un objet de référence simple, et le " +"second agit autant que possible comme un mandataire vers l'objet original." #: ../Doc/c-api/weakref.rst:16 msgid "Return true if *ob* is either a reference or proxy object." -msgstr "" +msgstr "Renvoie vrai si *ob* est soit une référence, soit un objet proxy." #: ../Doc/c-api/weakref.rst:21 msgid "Return true if *ob* is a reference object." -msgstr "" +msgstr "Retourne vrai si *ob* est un objet référence." #: ../Doc/c-api/weakref.rst:26 msgid "Return true if *ob* is a proxy object." -msgstr "" +msgstr "Retourne vrai si *ob* est un objet proxy" #: ../Doc/c-api/weakref.rst:31 msgid "" @@ -52,6 +56,16 @@ msgid "" "referencable object, or if *callback* is not callable, ``None``, or *NULL*, " "this will return *NULL* and raise :exc:`TypeError`." msgstr "" +"Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie " +"toujours une nouvelle référence, mais cela ne signifie pas qu'un nouvel " +"objet est créé ; un objet référence existant peut être renvoyé. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté par le ramasse-miette (*garbage " +"collected* en anglais) ; il doit accepter un paramètre unique, qui est " +"l'objet référence faible lui-même. *callback* peut aussi être positionné à " +"``None`` ou à *NULL*. Si *ob* n'est pas un objet faiblement référençable, " +"ou si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci retourne " +"*NULL* et lève une :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:43 msgid "" @@ -64,12 +78,23 @@ msgid "" "is not a weakly-referencable object, or if *callback* is not callable, " "``None``, or *NULL*, this will return *NULL* and raise :exc:`TypeError`." msgstr "" +"Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci " +"renvoie toujours une nouvelle référence, mais ne garantit pas la création " +"d'un nouvel objet ; un objet proxy existant peut être retourné. Le second " +"paramètre, *callback*, peut être un objet appelable qui reçoit une " +"notification lorsque *ob* est collecté ; il doit accepter un seul paramètre, " +"qui sera l'objet de référence faible lui-même. *callback* peut aussi être " +"``None`` ou *NULLL*. Si *ob* n'est pas un objet faiblement référençable, ou " +"si *callback* n'est pas appelable, ``None``` ou *NULL*, ceci renvoie *NULL* " +"et lève une :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:55 msgid "" "Return the referenced object from a weak reference, *ref*. If the referent " "is no longer live, returns :const:`Py_None`." msgstr "" +"Retourne l'objet référencé à partir d'une référence faible, *ref*. Si le " +"référence n'existe plus, alors l'objet renvoie :const:`Py_None`." #: ../Doc/c-api/weakref.rst:60 msgid "" @@ -77,9 +102,15 @@ msgid "" "This means that you should always call :c:func:`Py_INCREF` on the object " "except if you know that it cannot be destroyed while you are still using it." msgstr "" +"Cette fonction renvoie une **référence empruntée** à l'objet référencé. Cela " +"signifie que vous devez toujours appeler :c:func:`Py_INCREF` sur l'objet " +"sauf si vous savez qu'il ne peut pas être détruit tant que vous l'utilisez " +"encore." #: ../Doc/c-api/weakref.rst:68 msgid "" "Similar to :c:func:`PyWeakref_GetObject`, but implemented as a macro that " "does no error checking." msgstr "" +"Similaire à :c:func:`PyWeakref_GetObject`, mais implémenté comme une macro " +"qui ne vérifie pas les erreurs." diff --git a/distutils/apiref.po b/distutils/apiref.po index c06775de3..88d93afb2 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -24,6 +24,7 @@ msgstr "Référence de l'API" #: ../Doc/distutils/apiref.rst:9 msgid ":mod:`distutils.core` --- Core Distutils functionality" msgstr "" +":mod:`distutils.core` --- Fonctionnalités principales du module Distutils" #: ../Doc/distutils/apiref.rst:15 msgid "" @@ -134,6 +135,9 @@ msgid "" "if the maintainer is provided, distutils will use it as the author in :file:" "`PKG-INFO`" msgstr "" +"Le nom de l'actuel mainteneur, s'il est différent de l'auteur. Remarquez que " +"si *maintainer* est fourni, *distutils* l'utilise à la place de *author* " +"dans :file:`PKG-INFO`." #: ../Doc/distutils/apiref.rst:58 msgid "*maintainer_email*" @@ -241,7 +245,7 @@ msgstr "*script_name*" #: ../Doc/distutils/apiref.rst:86 msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" -msgstr "" +msgstr "Le nom du script *setup.py* . Initialisé par ``sys.argv[0]``" #: ../Doc/distutils/apiref.rst:90 msgid "*script_args*" @@ -283,6 +287,8 @@ msgstr "Méta-données descriptives, voir :pep:`314`" #: ../Doc/distutils/apiref.rst:98 ../Doc/distutils/apiref.rst:101 msgid "a list of strings or a comma-separated string" msgstr "" +"Une liste de chaînes de caractères ou une chaîne de caractère dont les " +"éléments sont séparés par des virgules." #: ../Doc/distutils/apiref.rst:101 msgid "*platforms*" @@ -325,6 +331,12 @@ msgid "" "keyword args from *script* to :func:`setup`), or the contents of the config " "files or command-line." msgstr "" +"Exécute un script d'installation dans un environnement quelque peu contrôlé, " +"et renvoie une instance :class:`distutils.dist.distribution` qui contrôle " +"l’exécution. Ceci est utile si vous avez besoin de connaître les méta-" +"données de la distribution (passées sous forme d'arguments nommés de " +"*script* à la fonction :func:`setup`), ou le contenu des fichiers de " +"configuration ou de la ligne de commande." #: ../Doc/distutils/apiref.rst:123 msgid "" @@ -464,7 +476,7 @@ msgstr "" #: ../Doc/distutils/apiref.rst:196 msgid "*include_dirs*" -msgstr "" +msgstr "*include_dirs*" #: ../Doc/distutils/apiref.rst:196 msgid "" @@ -501,37 +513,44 @@ msgstr "*undef_macros*" #: ../Doc/distutils/apiref.rst:212 msgid "list of macros to undefine explicitly" -msgstr "" +msgstr "Liste de macros à ignorer explicitement." #: ../Doc/distutils/apiref.rst:215 msgid "*library_dirs*" -msgstr "" +msgstr "*library_dirs*" #: ../Doc/distutils/apiref.rst:215 msgid "list of directories to search for C/C++ libraries at link time" msgstr "" +"Liste de répertoires à parcourir pour chercher les bibliothèques C/C++ lors " +"de la phase d'édition de liens." #: ../Doc/distutils/apiref.rst:219 msgid "*libraries*" -msgstr "" +msgstr "*libraries*" #: ../Doc/distutils/apiref.rst:219 msgid "list of library names (not filenames or paths) to link against" msgstr "" +"Liste de noms de bibliothèques à lier à la compilation. Pas de noms de " +"fichiers ou de chemin." #: ../Doc/distutils/apiref.rst:223 msgid "*runtime_library_dirs*" -msgstr "" +msgstr "*runtime_library_dirs*" #: ../Doc/distutils/apiref.rst:223 msgid "" "list of directories to search for C/C++ libraries at run time (for shared " "extensions, this is when the extension is loaded)" msgstr "" +"Liste de répertoires à parcourir pour les bibliothèques C/C++ lors de la " +"phase d'exécution. Pour les extensions partagées, c'est à ce moment que " +"l'extension est chargée. " #: ../Doc/distutils/apiref.rst:229 msgid "*extra_objects*" -msgstr "" +msgstr "*extra_objects*" #: ../Doc/distutils/apiref.rst:229 msgid "" @@ -539,10 +558,13 @@ msgid "" "static library that must be explicitly specified, binary resource files, " "etc.)" msgstr "" +"Liste des fichiers supplémentaires à lier (par exemple les fichiers d'objets " +"non explicités dans les 'sources', bibliothèque statique qui doit être " +"explicitement spécifiée, fichiers de ressources binaires, etc. )." #: ../Doc/distutils/apiref.rst:236 msgid "*extra_compile_args*" -msgstr "" +msgstr "*extra_compile_args*" #: ../Doc/distutils/apiref.rst:236 msgid "" @@ -551,10 +573,15 @@ msgid "" "line makes sense, this is typically a list of command-line arguments, but " "for other platforms it could be anything." msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la compilation des fichiers sources dans " +"'sources'. Pour les plates-formes et les compilateurs où une ligne de " +"commande a du sens, il s'agit généralement d'une liste d'arguments de ligne " +"de commande, mais pour d'autres plates-formes, cela peut être n'importe quoi." #: ../Doc/distutils/apiref.rst:247 msgid "*extra_link_args*" -msgstr "" +msgstr "*extra_link_args*" #: ../Doc/distutils/apiref.rst:247 msgid "" @@ -562,10 +589,14 @@ msgid "" "object files together to create the extension (or to create a new static " "Python interpreter). Similar interpretation as for 'extra_compile_args'." msgstr "" +"Toute information supplémentaire spécifique à la plate-forme et au " +"compilateur à utiliser lors de la liaison de fichiers objets pour créer " +"l'extension (ou pour créer un nouvel interpréteur Python statique). " +"Interprétation similaire à celle de *extra_compile_args*." #: ../Doc/distutils/apiref.rst:256 msgid "*export_symbols*" -msgstr "" +msgstr "*export_symbols*" #: ../Doc/distutils/apiref.rst:256 msgid "" @@ -573,10 +604,14 @@ msgid "" "platforms, and not generally necessary for Python extensions, which " "typically export exactly one symbol: ``init`` + extension_name." msgstr "" +"Liste des symboles à exporter à partir d'une extension partagée. N'est pas " +"utilisé sur toutes les plates-formes et n'est généralement pas nécessaire " +"pour les extensions Python, qui exportent généralement exactement un " +"symbole : ``init`` + nom_de_l'extension." #: ../Doc/distutils/apiref.rst:264 msgid "*depends*" -msgstr "" +msgstr "*depends*" #: ../Doc/distutils/apiref.rst:264 msgid "list of files that the extension depends on" @@ -584,7 +619,7 @@ msgstr "liste des fichiers dont dépend l'extension" #: ../Doc/distutils/apiref.rst:267 msgid "*language*" -msgstr "" +msgstr "*language*" #: ../Doc/distutils/apiref.rst:267 msgid "" @@ -603,32 +638,41 @@ msgid "" "specifies that a build failure in the extension should not abort the build " "process, but simply skip the extension." msgstr "" +"Spécifie qu'un échec de compilation dans l'extension ne doit pas interrompre " +"le processus de compilation, mais simplement ignorer l'extension." #: ../Doc/distutils/apiref.rst:273 msgid "a boolean" -msgstr "" +msgstr "un booléen" #: ../Doc/distutils/apiref.rst:282 msgid "" "A :class:`Distribution` describes how to build, install and package up a " "Python software package." msgstr "" +"Une classe :class:`Distribution` décrit comment compiler, installer et " +"empaqueter un paquet logiciel Python." #: ../Doc/distutils/apiref.rst:285 msgid "" "See the :func:`setup` function for a list of keyword arguments accepted by " "the Distribution constructor. :func:`setup` creates a Distribution instance." msgstr "" +"Voir la fonction :func:`setup` pour une liste des arguments de mots-clés " +"acceptés par le constructeur *Distribution*. :func:`setup` crée une instance " +"de Distribution." #: ../Doc/distutils/apiref.rst:291 msgid "" "A :class:`Command` class (or rather, an instance of one of its subclasses) " "implement a single distutils command." msgstr "" +"Une classe :class:`Command` (ou plutôt une instance d'une de ses sous-" +"classes) implémente une commande *distutils* unique." #: ../Doc/distutils/apiref.rst:296 msgid ":mod:`distutils.ccompiler` --- CCompiler base class" -msgstr "" +msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler" #: ../Doc/distutils/apiref.rst:302 msgid "" @@ -638,6 +682,12 @@ msgid "" "options for the compiler --- macro definitions, include directories, link " "path, libraries and the like." msgstr "" +"Ce module fournit la classe de base abstraite pour les classes :class:" +"`CCompiler`. Une instance de :class:`CCompiler` peut être utilisée pour " +"toutes les étapes de compilation et de liaison nécessaires à la compilation " +"d'un projet unique. Des méthodes sont fournies pour définir des options pour " +"le compilateur --- définitions de macros, inclusion des répertoires, des " +"chemins de liens, des bibliothèques, etc." #: ../Doc/distutils/apiref.rst:308 msgid "This module provides the following functions." @@ -651,6 +701,13 @@ msgid "" "command-line options suitable for use with some compiler (depending on the " "two format strings passed in)." msgstr "" +"Génère des options de liaison pour chercher dans les répertoires des " +"bibliothèques et pour effectuer les liaisons avec des bibliothèques " +"spécifiques. *libraries* et *library_dirs* sont, respectivement, des listes " +"de noms de bibliothèques (pas de noms de fichiers !) et de répertoires à " +"rechercher. Renvoie une liste d'options de ligne de commande utilisables " +"avec certains compilateurs (en fonction des deux chaînes de format " +"transmises)." #: ../Doc/distutils/apiref.rst:322 msgid "" @@ -663,6 +720,14 @@ msgid "" "file search path (:option:`!-I`). Returns a list of command-line options " "suitable for either Unix compilers or Visual C++." msgstr "" +"Génère les options du préprocesseur C (:option:`!-D`, :option:`!-U`, :option:" +"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " +"type Unix et Visual C++. *macros* est une liste de couples où ``(name,)`` " +"est traité comme *non définie* (:option:`!-U`); ``(name, value)`` est traité " +"comme *définie* (:option:`!-D`). *include_dirs* est la liste de noms de " +"répertoires à ajouter au chemin de recherche du fichier d'en-tête (:option:" +"`!-I`). Renvoie une liste d'options de ligne de commande pour les " +"compilateurs Unix ou Visual C+++." #: ../Doc/distutils/apiref.rst:334 msgid "Determine the default compiler to use for the given platform." @@ -675,6 +740,9 @@ msgid "" "returned by ``os.name``) and *platform* the common value returned by ``sys." "platform`` for the platform in question." msgstr "" +"*osname* doit être l'un des noms d'OS Python standard (c'est-à-dire un des " +"noms renvoyés par ``os.name``) et *platform* la valeur commune renvoyés par " +"``sys.platform`` pour la plate-forme en question." #: ../Doc/distutils/apiref.rst:340 msgid "" @@ -696,12 +764,25 @@ msgid "" "Windows, and a Microsoft compiler object under Unix---if you supply a value " "for *compiler*, *plat* is ignored." msgstr "" +"Fonction de génération produisant une instance d'une sous-classe CCompiler " +"pour la combinaison plateforme/compilateur fournie. Par défaut, *plat* est " +"le ``os.name`` (par exemple ``'posix'``, ``'nt'``), et *compiler* est le " +"compilateur par défaut pour cette plate-forme. Actuellement, seuls " +"``'posix'`` et ``'nt'`` sont gérés, et les compilateurs par défaut sont ceux " +"qui gèrent une \"interface Unix traditionnelle\" (:class:`UnixCCompiler`) et " +"Visual C++ (:class:`MSVCCompiler`). Notez qu'il est tout à fait possible de " +"demander un objet compilateur Unix sous Windows, et un objet compilateur " +"Microsoft sous Unix. Si vous fournissez une valeur pour *compiler*, *plat* " +"est ignoré." #: ../Doc/distutils/apiref.rst:362 msgid "" "Print list of available compilers (used by the :option:`!--help-compiler` " "options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." msgstr "" +"Affiche la liste des compilateurs disponibles (utilisés par l'option :option:" +"`!--help-compiler` pour les commandes :command:`build`, :command:" +"`build_ext`, :command:`build_clib`)." #: ../Doc/distutils/apiref.rst:368 msgid "" @@ -709,6 +790,10 @@ msgid "" "be implemented by real compiler classes. The class also has some utility " "methods used by several compiler classes." msgstr "" +"La classe de base abstraite :class:`CCompiler` définit l'interface qui doit " +"être implémentée par des classes de compilateur concrètes. La classe " +"possède également quelques méthodes utilitaires utilisées par plusieurs " +"classes de compilateurs." #: ../Doc/distutils/apiref.rst:372 msgid "" @@ -720,6 +805,14 @@ msgid "" "individual files are treated, most of those attributes may be varied on a " "per-compilation or per-link basis." msgstr "" +"L'idée de base derrière une classe abstraite de compilateur est que chaque " +"instance peut être utilisée pour toutes les étapes de compilation/lien dans " +"la construction d'un seul projet. Ainsi, les attributs communs à toutes ces " +"étapes de compilation et de liaison (ce qui inclut les répertoires, les " +"macros à définir, les bibliothèques à relier, etc.) sont des attributs de " +"l'instance du compilateur. Pour tenir compte des variations dans la façon " +"dont chaque fichier est traité, la plupart de ces attributs peuvent être " +"modifiés en fonction de chaque compilation ou de chaque lien." #: ../Doc/distutils/apiref.rst:380 msgid "" @@ -731,12 +824,22 @@ msgid "" "subclasses directly - use the :func:`distutils.CCompiler.new_compiler` " "factory function instead." msgstr "" +"Le constructeur de chaque sous-classe crée une instance de l'objet " +"*Compiler*. Les paramètres optionnels sont *verbose* (affiche plus " +"d'information à l'exécution), *dry_run* (ne pas exécuter les étapes) et " +"*force* (tout reconstruire, indépendamment des dépendances). Tous ces " +"paramètres ont la valeur par défaut ``0`` (désactivé). Notez que vous ne " +"voulez probablement pas instancier directement la classe :class:`CCompiler` " +"ou une de ses sous-classes. Utilisez plutôt la fonction génératrice :func:" +"`distutils.CCompiler.new_compiler`." #: ../Doc/distutils/apiref.rst:387 msgid "" "The following methods allow you to manually alter compiler options for the " "instance of the Compiler class." msgstr "" +"Les méthodes suivantes vous permettent de modifier manuellement les options " +"du compilateur de l'instance de la classe *Compiler*." #: ../Doc/distutils/apiref.rst:393 msgid "" @@ -744,6 +847,10 @@ msgid "" "The compiler is instructed to search directories in the order in which they " "are supplied by successive calls to :meth:`add_include_dir`." msgstr "" +"Ajoute *dir* à la liste des répertoires qui sont recherchés pour les " +"fichiers d'en-tête. Le compilateur est chargé de rechercher les répertoires " +"dans l'ordre dans lequel ils sont fournis par des appels successifs à :meth:" +"`add_include_dir`." #: ../Doc/distutils/apiref.rst:400 msgid "" @@ -753,6 +860,12 @@ msgid "" "`set_include_dirs`. This does not affect any list of standard include " "directories that the compiler may search by default." msgstr "" +"Affecte la liste des répertoires qui seront recherchés à la valeur de *dirs* " +"(une liste de chaînes). Remplace tous les appels précédents de :meth:" +"`add_include_dir` ; les appels suivants de :meth:`add_include_dir` " +"s'ajoutent à la liste transmise par :meth:`set_include_dirs`. Ceci n'affecte " +"pas la liste des répertoires d'inclusion standard que le compilateur peut " +"rechercher par défaut." #: ../Doc/distutils/apiref.rst:409 msgid "" @@ -762,6 +875,11 @@ msgid "" "actual filename will be inferred by the linker, the compiler, or the " "compiler class (depending on the platform)." msgstr "" +"Ajoute *libname* à la liste des bibliothèques qui seront incluses dans tous " +"les liens gérés par l'objet compilateur. Notez que *libname* ne *doit pas " +"être* le nom d'un fichier contenant une bibliothèque, mais le nom de la " +"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " +"liens, le compilateur ou la classe de compilation (selon la plate-forme)." #: ../Doc/distutils/apiref.rst:415 msgid "" @@ -770,6 +888,11 @@ msgid "" "perfectly valid to duplicate library names; the linker will be instructed to " "link against libraries as many times as they are mentioned." msgstr "" +"L'éditeur de liens est chargé de lier les bibliothèques dans l'ordre dans " +"lequel elles sont fournies à :meth:`add_library` et/ou :meth:" +"`set_libraries`. Il est parfaitement valide de dupliquer les noms de " +"bibliothèques ; l'éditeur de liens est chargé de créer des liens avec les " +"bibliothèques autant de fois que les noms sont mentionnées." #: ../Doc/distutils/apiref.rst:423 msgid "" @@ -777,6 +900,10 @@ msgid "" "compiler object to *libnames* (a list of strings). This does not affect any " "standard system libraries that the linker may include by default." msgstr "" +"Affecte la liste des bibliothèques à inclure dans tous les liens gérés par " +"l'objet compilateur avec la valeur de *libnames* (une liste des chaînes de " +"caractères). Ceci n'affecte pas les bibliothèques système standard que " +"l'éditeur de liens peut inclure par défaut." #: ../Doc/distutils/apiref.rst:430 msgid "" @@ -785,6 +912,11 @@ msgid "" "be instructed to search for libraries in the order they are supplied to :" "meth:`add_library_dir` and/or :meth:`set_library_dirs`." msgstr "" +"Ajoute *dir* à la liste des répertoires qui seront recherchés pour les " +"bibliothèques spécifiées dans :meth:`add_library` et :meth:`set_libraries`. " +"L'éditeur de liens est chargé de rechercher les bibliothèques dans l'ordre " +"dans lequel elles sont fournies à :meth:`add_library_dir` et/ou :meth:" +"`set_library_dirs`." #: ../Doc/distutils/apiref.rst:438 msgid "" @@ -792,12 +924,18 @@ msgid "" "This does not affect any standard library search path that the linker may " "search by default." msgstr "" +"Affecte la liste des répertoires de recherche de bibliothèque avec la valeur " +"de *dirs* (une liste de chaînes de caractères). Cela n'affecte pas le " +"chemin de recherche standard de la bibliothèque que l'éditeur de liens peut " +"rechercher par défaut." #: ../Doc/distutils/apiref.rst:445 msgid "" "Add *dir* to the list of directories that will be searched for shared " "libraries at runtime." msgstr "" +"Ajoute *dir* à la liste des répertoires qui seront recherchés par les " +"bibliothèques partagées au moment de l'exécution." #: ../Doc/distutils/apiref.rst:451 msgid "" @@ -805,6 +943,10 @@ msgid "" "*dirs* (a list of strings). This does not affect any standard search path " "that the runtime linker may search by default." msgstr "" +"Affecte la liste des répertoires pour rechercher les bibliothèques partagées " +"au moment de l'exécution à la valeur de *dirs* (une liste des chaînes de " +"caractères). Ceci n'affecte aucun chemin de recherche standard que " +"l'éditeur de liens d'exécution peut rechercher par défaut." #: ../Doc/distutils/apiref.rst:458 msgid "" @@ -813,6 +955,10 @@ msgid "" "supplied, then the macro will be defined without an explicit value and the " "exact outcome depends on the compiler used." msgstr "" +"Définit une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Le paramètre optionnel *value* doit être une chaîne " +"de caractères ; s'il n'est pas fourni, alors la macro sera définie sans " +"valeur explicite et le résultat exact dépendra du compilateur utilisé." #: ../Doc/distutils/apiref.rst:468 msgid "" @@ -823,6 +969,12 @@ msgid "" "per-compilation basis (ie. in the call to :meth:`compile`), then that takes " "precedence." msgstr "" +"Désactive une macro de préprocesseur pour toutes les compilations gérées par " +"cet objet compilateur. Si la même macro est définie par :meth:" +"`define_macro` et ensuite désactivée par un appel à :meth:`undefine_macro`, " +"le dernier appel est prioritaire (y compris en cas de redéfinitions " +"multiples). Si la macro est redéfinie/désactivée par compilation (c'est-à-" +"dire dans l'appel à :meth:`compile`), alors cet appel prévaut." #: ../Doc/distutils/apiref.rst:478 msgid "" @@ -830,6 +982,10 @@ msgid "" "named library files or the output of \"resource compilers\") to be included " "in every link driven by this compiler object." msgstr "" +"Ajoute *objet* à la liste des fichiers objets (ou analogues, tels que les " +"fichiers de bibliothèque explicitement nommés ou la sortie des " +"\"compilateurs de ressources\") à inclure dans chaque lien qui est géré par " +"ce compilateur d'objets." #: ../Doc/distutils/apiref.rst:485 msgid "" @@ -837,12 +993,19 @@ msgid "" "*objects*. This does not affect any standard object files that the linker " "may include by default (such as system libraries)." msgstr "" +"Définit la liste des fichiers objets (ou analogues) à inclure dans chaque " +"lien à la valeur de *objects*. Ceci n'affecte pas les fichiers d'objets " +"standard que l'éditeur de liens peut inclure par défaut (comme les " +"bibliothèques système)." #: ../Doc/distutils/apiref.rst:489 msgid "" "The following methods implement methods for autodetection of compiler " "options, providing some functionality similar to GNU :program:`autoconf`." msgstr "" +"Les méthodes suivantes offre des services pour l'auto-détection des options " +"du compilateur. Elles offrent des fonctionnalités similaires à celles du " +"programme GNU :program:`autoconf`." #: ../Doc/distutils/apiref.rst:495 msgid "" @@ -850,6 +1013,9 @@ msgid "" "attributes :attr:`language_map` (a dictionary), and :attr:`language_order` " "(a list) to do the job." msgstr "" +"Détecte le langage d'un fichier donné, ou d'une liste de fichiers. Utilise " +"les attributs d'instance :attr:`language_map` (un dictionnaire) et :attr:" +"`language_order` (une liste) pour faire le travail." #: ../Doc/distutils/apiref.rst:502 msgid "" @@ -858,6 +1024,11 @@ msgid "" "debugging version (if that makes sense on the current platform). Return " "``None`` if *lib* wasn't found in any of the specified directories." msgstr "" +"Recherche dans la liste des répertoires spécifiés un fichier de bibliothèque " +"statique ou partagée *lib* et renvoie le chemin complet vers ce fichier. Si " +"*debug* est vrai, recherche une version de débogage (si cela a du sens sur " +"la plate-forme actuelle). Renvoie ``None`` si *lib* n'a pas été trouvé dans " +"l'un des répertoires spécifiés." #: ../Doc/distutils/apiref.rst:510 msgid "" @@ -866,24 +1037,35 @@ msgid "" "environment by providing additional include files and paths and libraries " "and paths." msgstr "" +"Renvoie un booléen indiquant si *funcname* est pris en charge sur la plate-" +"forme courante. Les arguments optionnels peuvent être utilisés pour " +"enrichir l'environnement de compilation en fournissant des fichiers, des " +"répertoires de fichiers, des bibliothèques, des répertoires de bibliothèques " +"supplémentaires" #: ../Doc/distutils/apiref.rst:518 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for libraries." msgstr "" +"Renvoie l'option de compilation pour ajouter *dir* à la liste des " +"répertoires recherchés pour les bibliothèques." #: ../Doc/distutils/apiref.rst:524 msgid "" "Return the compiler option to add *lib* to the list of libraries linked into " "the shared library or executable." msgstr "" +"Renvoie l'option de compilation pour ajouter *lib* à la liste des " +"bibliothèques liées à la bibliothèque partagée ou à l'exécutable." #: ../Doc/distutils/apiref.rst:530 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for runtime libraries." msgstr "" +"Renvoie l'option de compilation pour ajouter *dir* à la liste des " +"répertoires recherchés par les bibliothèques d'exécution." #: ../Doc/distutils/apiref.rst:536 msgid "" @@ -892,6 +1074,11 @@ msgid "" "specified here depends on the compiler class (via the 'executables' class " "attribute), but most will have:" msgstr "" +"Définit les exécutables (et leurs options) qui seront exécutés pour " +"effectuer les différentes étapes de compilation. L'ensemble exact des " +"exécutables qui peuvent être spécifiés ici dépend de la classe du " +"compilateur (via l'attribut de classe *executables*), mais la plupart " +"utilisent :" #: ../Doc/distutils/apiref.rst:542 msgid "attribute" @@ -899,35 +1086,37 @@ msgstr "attribut" #: ../Doc/distutils/apiref.rst:544 msgid "*compiler*" -msgstr "" +msgstr "*compiler*" #: ../Doc/distutils/apiref.rst:544 msgid "the C/C++ compiler" -msgstr "" +msgstr "Le compilateur C/C++." #: ../Doc/distutils/apiref.rst:546 msgid "*linker_so*" -msgstr "" +msgstr "*linker_so*" #: ../Doc/distutils/apiref.rst:546 msgid "linker used to create shared objects and libraries" msgstr "" +"L'éditeur de liens utilisé pour la création d'objets ou de bibliothèques " +"partagées." #: ../Doc/distutils/apiref.rst:549 msgid "*linker_exe*" -msgstr "" +msgstr "*linker_exe*" #: ../Doc/distutils/apiref.rst:549 msgid "linker used to create binary executables" -msgstr "" +msgstr "L'éditeur de lien utilisé pour créer des exécutables binaires." #: ../Doc/distutils/apiref.rst:551 msgid "*archiver*" -msgstr "" +msgstr "*archiver*" #: ../Doc/distutils/apiref.rst:551 msgid "static library creator" -msgstr "" +msgstr "Créateur de bibliothèque statique." #: ../Doc/distutils/apiref.rst:554 msgid "" @@ -983,6 +1172,11 @@ msgid "" "to :file:`foo/bar.o` (for a Unix implementation); if *output_dir* is " "*build*, then it would compile to :file:`build/foo/bar.o`." msgstr "" +"Si *output_dir* est donné, les fichiers objets seront placés à l'intérieur, " +"tout en conservant leurs chemins relatifs. Par exemple, le :file:`truc/" +"machin.c` compile normalement en :file:`truc/machin.o` (pour une " +"implémentation Unix) ; si *output_dir* a la valeur *build*, alors il " +"compilera en :file:`build/truc/machin.o`." #: ../Doc/distutils/apiref.rst:580 msgid "" @@ -992,18 +1186,30 @@ msgid "" "explicit value. The 1-tuple case undefines a macro. Later definitions/" "redefinitions/undefinitions take precedence." msgstr "" +"Le paramètre *macros*, s'il est donné, doit être une liste de définitions de " +"macros. Une définition de macro est soit un couple ``(nom, valeur)``, ou un " +"singleton ``(nom,)``. Le premier définit une macro ; si la valeur est " +"``None``, la macro est définie sans valeur explicite. L'utilisation d'un " +"singleton désactive la macro. Les définitions, redéfinitions ou " +"désactivations ultérieures priment." #: ../Doc/distutils/apiref.rst:586 msgid "" "*include_dirs*, if given, must be a list of strings, the directories to add " "to the default include file search path for this compilation only." msgstr "" +"*include_dirs* doit être une liste de chaînes de caractères contenant les " +"répertoires à ajouter au chemin de recherche par défaut pour cette " +"compilation uniquement." #: ../Doc/distutils/apiref.rst:589 msgid "" "*debug* is a boolean; if true, the compiler will be instructed to output " "debug symbols in (or alongside) the object file(s)." msgstr "" +"*debug* est un booléen ; si sa valeur est *vraie*, le compilateur est chargé " +"d'afficher les symboles de débogage dans (ou à côté) du ou des fichiers " +"objets." #: ../Doc/distutils/apiref.rst:592 msgid "" @@ -1015,6 +1221,13 @@ msgid "" "an escape hatch for those occasions when the abstract compiler framework " "doesn't cut the mustard." msgstr "" +"*extra_preargs* et *extra_postargs* dépendent de l'implémentation. Sur les " +"plates-formes qui ont une ligne de commande (par exemple Unix, DOS/Windows), " +"il s'agit très probablement de listes de chaînes de caractères. Ce sont des " +"arguments supplémentaires à ajouter avant (*preargs*) et après (*postargs*) " +"la ligne de commande du compilateur. Sur d'autres plates-formes, consultez " +"la documentation de la classe d'implémentation. Ces paramètres sont exposés " +"pour permettre de sortir du cadre de la classe abstraite en cas de nécessité." #: ../Doc/distutils/apiref.rst:599 msgid "" @@ -1023,10 +1236,14 @@ msgid "" "be recompiled. This supports dependency tracking, but only at a coarse " "granularity." msgstr "" +"*depends* est une liste de noms de fichiers dont dépendent toutes les " +"cibles. Si un fichier source est plus ancien qu'un fichier dans *depends*, " +"alors le fichier source sera recompilé. Cela permet un suivi des " +"dépendances à un niveau macro. " #: ../Doc/distutils/apiref.rst:604 msgid "Raises :exc:`CompileError` on failure." -msgstr "" +msgstr "Lève :exc:`CompileError` en cas d'échec." #: ../Doc/distutils/apiref.rst:609 msgid "" @@ -1036,6 +1253,12 @@ msgid "" "`set_link_objects`, the libraries supplied to :meth:`add_library` and/or :" "meth:`set_libraries`, and the libraries supplied as *libraries* (if any)." msgstr "" +"Relie un ensemble d'éléments pour créer un fichier de bibliothèque statique. " +"L'ensemble d'éléments se compose de la liste des fichiers d'objets fournis " +"comme *objets*, des fichiers d'objets supplémentaires fournis à :meth:" +"`add_link_object` et/ou :meth:`set_link_objects`, des bibliothèques fournies " +"à :meth:`add_library` et/ou :meth:`set_libraries` et les bibliothèques " +"fournies à *libraries* (le cas échéant)." #: ../Doc/distutils/apiref.rst:615 msgid "" @@ -1043,6 +1266,9 @@ msgid "" "be inferred from the library name. *output_dir* is the directory where the " "library file will be put." msgstr "" +"*output_libname* doit être un nom de bibliothèque et non un nom de fichier ; " +"le nom de fichier sera déduit du nom de bibliothèque. *output_dir* est le " +"répertoire dans lequel le fichier bibliothèque sera placé." #: ../Doc/distutils/apiref.rst:621 msgid "" @@ -1050,22 +1276,31 @@ msgid "" "library (note that on most platforms, it is the compile step where this " "matters: the *debug* flag is included here just for consistency)." msgstr "" +"*debug* est un booléen ; si sa valeur est *vraie*, les informations de " +"débogage seront incluses dans la bibliothèque (notez que sur la plupart des " +"plateformes, c'est à l'étape de compilation que ce paramètre est pris en " +"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." #: ../Doc/distutils/apiref.rst:625 ../Doc/distutils/apiref.rst:667 msgid "" "*target_lang* is the target language for which the given objects are being " "compiled. This allows specific linkage time treatment of certain languages." msgstr "" +"*target_lang* est le langage cible pour lequel les objets donnés sont " +"compilés. Cela permet un traitement spécifique du temps de liaison dans " +"certains langages." #: ../Doc/distutils/apiref.rst:628 msgid "Raises :exc:`LibError` on failure." -msgstr "" +msgstr "Lève :exc:`LibError` en cas d'échec." #: ../Doc/distutils/apiref.rst:633 msgid "" "Link a bunch of stuff together to create an executable or shared library " "file." msgstr "" +"Relie un ensemble d'éléments pour créer un fichier exécutable ou une " +"bibliothèque partagée." #: ../Doc/distutils/apiref.rst:635 msgid "" @@ -1074,6 +1309,10 @@ msgid "" "supplied, *output_filename* is relative to it (i.e. *output_filename* can " "provide directory components if needed)." msgstr "" +"L'ensemble d'éléments se compose de la liste des fichiers objets fournis " +"comme *objets*. *output_filename* devrait être un nom de fichier. Si " +"*output_dir* est fourni, *output_filename* lui est relatif (c'est-à-dire que " +"*output_filename* peut être un chemin vers un fichier )." #: ../Doc/distutils/apiref.rst:640 msgid "" @@ -1084,6 +1323,13 @@ msgid "" "means the linker will look in that specific directory rather than searching " "all the normal locations." msgstr "" +"*libraries* est une liste de bibliothèques avec lesquelles il est possible " +"d'établir des liens. Ce sont des noms de bibliothèques, pas des noms de " +"fichiers, puisqu'ils sont traduits en noms de fichiers d'une manière " +"spécifique à la plate-forme (par exemple *truc* devient :file:`libtruc.a` " +"sous Unix et :file:`truc.lib` sous DOS/Windows). Cependant, ils peuvent " +"inclure un chemin, ce qui signifie que l'éditeur de liens cherchera dans ce " +"chemin spécifique plutôt que de rechercher tous les emplacements standard." #: ../Doc/distutils/apiref.rst:647 msgid "" @@ -1095,12 +1341,23 @@ msgid "" "the shared library and used to search for other shared libraries that \\*it" "\\* depends on at run-time. (This may only be relevant on Unix.)" msgstr "" +"*library_dirs*, s'il est fourni, doit être une liste de répertoires à " +"rechercher pour les bibliothèques qui ont été spécifiées comme des " +"bibliothèques pures (c'est-à-dire sans aucun répertoire). Celles-ci " +"s'ajoutent aux valeurs par défaut du système et à celles fournies à :meth:" +"`add_library_dir` et/ou :meth:`set_library_dirs`. *runtime_library_dirs* " +"est une liste de répertoires qui seront intégrés dans la bibliothèque " +"partagée et utilisés pour rechercher d'autres bibliothèques partagées dont " +"elle dépend à l'exécution. (Ceci est probablement valable uniquement sous " +"UNIX.)" #: ../Doc/distutils/apiref.rst:655 msgid "" "*export_symbols* is a list of symbols that the shared library will export. " "(This appears to be relevant only on Windows.)" msgstr "" +"*export_symbols* est une liste de symboles que la bibliothèque partagée va " +"exporter. (Ceci est probablement valable uniquement sous Window.)" #: ../Doc/distutils/apiref.rst:658 msgid "" @@ -1109,6 +1366,10 @@ msgid "" "to :meth:`create_static_lib`, which includes a *debug* flag mostly for " "form's sake)." msgstr "" +"*debug* s'utilise comme pour :meth:`compile` et :meth:`create_static_lib`, " +"avec la nuance qu'elle a ici une importance sur la plupart des plateformes " +"(par opposition à :meth:`create_static_lib` qui inclut une option *debug* " +"pour se conformer à l'interface)." #: ../Doc/distutils/apiref.rst:663 msgid "" @@ -1116,10 +1377,13 @@ msgid "" "course that they supply command-line arguments for the particular linker " "being used)." msgstr "" +"*extra_preargs* et *extra_postargs* s'utilisent comme pour :meth:`compile` " +"(sauf bien sûr qu'ils fournissent des arguments à la ligne de commande pour " +"l'éditeur de liens spécifique utilisé)." #: ../Doc/distutils/apiref.rst:670 msgid "Raises :exc:`LinkError` on failure." -msgstr "" +msgstr "Lève :exc:`LinkError` en cas d'échec." #: ../Doc/distutils/apiref.rst:675 msgid "" @@ -1127,6 +1391,9 @@ msgid "" "while *objects* are a list of object filenames to link in. Other arguments " "are as for the :meth:`link` method." msgstr "" +"Lie un exécutable. *output_progname* est le nom de l'exécutable du fichier, " +"tandis que *objects* est une liste de noms de fichiers objets à lier. Les " +"autres arguments sont les mêmes que pour la méthode :meth:`link`." #: ../Doc/distutils/apiref.rst:682 msgid "" @@ -1134,6 +1401,10 @@ msgid "" "while *objects* is a list of object filenames to link in. Other arguments " "are as for the :meth:`link` method." msgstr "" +"Lie une bibliothèque partagée. *output_libname* est le nom de la " +"bibliothèque de sortie, tandis que *objects* est une liste de noms de " +"fichiers d'objets à lier. Les autres arguments sont les mêmes que pour la " +"méthode :meth:`link`." #: ../Doc/distutils/apiref.rst:689 msgid "" @@ -1141,6 +1412,9 @@ msgid "" "that will be created, while *objects* is a list of object filenames to link " "in. Other arguments are as for the :meth:`link` method." msgstr "" +"Lie un objet partagé. *output_filename* est le nom de l'objet partagé qui " +"sera créé, tandis que *objects* est une liste de noms de fichiers d'objets à " +"lier. Les autres arguments sont les mêmes que pour la méthode :meth:`link`." #: ../Doc/distutils/apiref.rst:696 msgid "" @@ -1151,16 +1425,25 @@ msgid "" "`undefine_macro`. *include_dirs* is a list of directory names that will be " "added to the default list, in the same way as :meth:`add_include_dir`." msgstr "" +"Prétraitement d'un seul fichier source C/C++, désigné dans *source*. La " +"sortie du traitement est écrite dans un fichier nommé *output_file*, ou dans " +"*stdout* si *output_file* n'est pas fourni. *macros* est une liste de " +"définitions de macros comme pour :meth:`compile`, qui vont s'ajouter aux " +"macros définies avec :meth:`define_macro` et :meth:`undefine_macro`. " +"*include_dirs* est une liste de noms de répertoires qui seront ajoutés à la " +"liste par défaut, de la même manière que :meth:`add_include_dir`." #: ../Doc/distutils/apiref.rst:703 msgid "Raises :exc:`PreprocessError` on failure." -msgstr "" +msgstr "Lève :exc:`PreprocessError` en cas d'échec." #: ../Doc/distutils/apiref.rst:705 msgid "" "The following utility methods are defined by the :class:`CCompiler` class, " "for use by the various concrete subclasses." msgstr "" +"Les méthodes utilitaires suivantes sont définies par la classe :class:" +"`CCompiler`, à l'usage des différentes sous-classes concrètes." #: ../Doc/distutils/apiref.rst:711 msgid "" @@ -1168,6 +1451,9 @@ msgid "" "for non-Windows platforms this is the same as the basename, while Windows " "will get a :file:`.exe` added." msgstr "" +"Renvoie le nom de fichier de l'exécutable pour un *nom de base* donné. " +"Généralement, pour les plates-formes non Windows, c'est le même nom que le " +"nom de base, tandis que sur Windows l'extension :file:`.exe` sera ajouté." #: ../Doc/distutils/apiref.rst:718 msgid "" @@ -1176,17 +1462,24 @@ msgid "" "form :file:`liblibname.a`, while a *lib_type* of ``'dynamic'`` will be of " "the form :file:`liblibname.so`." msgstr "" +"Renvoie le nom de fichier pour le nom de bibliothèque donné sur la plate-" +"forme actuelle. Sous Unix, une bibliothèque avec un *lib_type* de type " +"``static`` sera généralement de la forme :file:`liblibname.a`, tandis qu'un " +"*lib_type* de type ``dynamic`` sera de la forme :file:`liblibname.so`." #: ../Doc/distutils/apiref.rst:726 msgid "" "Returns the name of the object files for the given source files. " "*source_filenames* should be a list of filenames." msgstr "" +"Renvoie le nom des fichiers objets pour les fichiers sources donnés. " +"*source_filenames* doit être une liste de noms de fichiers." #: ../Doc/distutils/apiref.rst:732 msgid "" "Returns the name of a shared object file for the given file name *basename*." msgstr "" +"Renvoie le nom d'un fichier objet partagé pour le nom de fichier *basename*." #: ../Doc/distutils/apiref.rst:737 msgid "" @@ -1194,86 +1487,109 @@ msgid "" "function *func* with the given arguments *args*, after logging and taking " "into account the *dry_run* flag." msgstr "" +"Invoque :func:`distutils.util.execute`. Cette méthode invoque une fonction " +"Python *func* avec les arguments *args* , après journalisation et prise en " +"compte de l'option *dry_run*." #: ../Doc/distutils/apiref.rst:744 msgid "" "Invokes :func:`distutils.util.spawn`. This invokes an external process to " "run the given command." msgstr "" +"Invoque :func:`distutils.util.spawn`. Invoque un processus externe pour " +"exécuter la commande donnée." #: ../Doc/distutils/apiref.rst:750 msgid "" "Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " "missing ancestor directories." msgstr "" +"Invoque :func:`distutils.dir_util.mkpath`. Crée un répertoire et tous les " +"répertoires parents manquants." #: ../Doc/distutils/apiref.rst:756 msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." -msgstr "" +msgstr "Invoque :meth:`distutils.file_util.move_file`. Renomme *src* en *dst*." #: ../Doc/distutils/apiref.rst:761 msgid "Write a message using :func:`distutils.log.debug`." -msgstr "" +msgstr "Écrit un message en utilisant :func:`distutils.log.debug`." #: ../Doc/distutils/apiref.rst:766 msgid "Write a warning message *msg* to standard error." msgstr "" +"Écris un message d'avertissement *msg* dans la sortie d'erreur standard." #: ../Doc/distutils/apiref.rst:771 msgid "" "If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " "to standard output, otherwise do nothing." msgstr "" +"Si l'option *debug* est activée pour cette instance de :class:`CCompiler`, " +"affiche *msg* sur la sortie standard, sinon rien ne s'affiche." #: ../Doc/distutils/apiref.rst:783 msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" -msgstr "" +msgstr ":mod:`distutils.unixccompiler` — Compilateur C Unix" #: ../Doc/distutils/apiref.rst:789 msgid "" "This module provides the :class:`UnixCCompiler` class, a subclass of :class:" "`CCompiler` that handles the typical Unix-style command-line C compiler:" msgstr "" +"Ce module fournit la classe :class:`UnixCCompiler`, une sous-classe de la " +"classe :class:`CCompiler` qui gère les compilateurs C ayant une interface en " +"ligne de commande conforme au standard Unix :" #: ../Doc/distutils/apiref.rst:792 msgid "macros defined with :option:`!-Dname[=value]`" -msgstr "" +msgstr "macros définies avec l'option :option:`!-Dname[=value]`." #: ../Doc/distutils/apiref.rst:794 msgid "macros undefined with :option:`!-Uname`" -msgstr "" +msgstr "macros désaffectées avec :option:`!-Uname`." #: ../Doc/distutils/apiref.rst:796 msgid "include search directories specified with :option:`!-Idir`" msgstr "" +"inclut les répertoires de recherche spécifiés avec l'option :option:`!-Idir`." #: ../Doc/distutils/apiref.rst:798 msgid "libraries specified with :option:`!-llib`" -msgstr "" +msgstr "bibliothèques spécifiées avec l'option :option:`!-llib`" #: ../Doc/distutils/apiref.rst:800 msgid "library search directories specified with :option:`!-Ldir`" msgstr "" +"répertoires de recherche des bibliothèques définis avec l'option :option:`!-" +"Ldir`." #: ../Doc/distutils/apiref.rst:802 msgid "" "compile handled by :program:`cc` (or similar) executable with :option:`!-c` " "option: compiles :file:`.c` to :file:`.o`" msgstr "" +"compilation gérée par :program:`cc` (ou similaire) exécutable avec l'option :" +"option:`!-c` compile :file:`.c` vers :file:`.o`." #: ../Doc/distutils/apiref.rst:805 msgid "" "link static library handled by :program:`ar` command (possibly with :program:" "`ranlib`)" msgstr "" +"édition de liens pour une bibliothèque statique gérée par le programme en " +"ligne de commande :program:`ar` (éventuellement avec le programme :program:" +"`ranlib`)." #: ../Doc/distutils/apiref.rst:808 msgid "link shared library handled by :program:`cc` :option:`!-shared`" msgstr "" +"édition de liens pour une bibliothèque gérée par :program:`cc` :option:`!-" +"shared`." #: ../Doc/distutils/apiref.rst:812 msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" -msgstr "" +msgstr ":mod:`distutils.msvccompiler` — Compilateur Microsoft" #: ../Doc/distutils/apiref.rst:818 msgid "" @@ -1295,20 +1611,31 @@ msgid "" "installed; *DISTUTILS_USE_SDK* indicates that the distutils user has made an " "explicit choice to override the compiler selection by :class:`MSVCCompiler`." msgstr "" +"La classe :class:`MSVCCompiler` sélectionnera normalement le bon " +"compilateur, éditeur de liens, etc. Pour remplacer ces choix, les variables " +"d'environnement *DISTUTILS_USE_SDK* et *MSSdk* doivent être toutes les deux " +"définies. *MSSdk* indique que l'environnement courant a été configuré par le " +"script ``SetEnv.Cmd`` du kit de développement logiciel (*SDK*), ou que les " +"variables d'environnement ont été enregistrées lorsque le kit a été " +"installé ; *DISTUTILS_USE_SDK* indique que l'utilisateur de *distutils* a " +"choisi explicitement de remplacer le compilateur utilisé par :class:" +"`MSVCCompiler`." #: ../Doc/distutils/apiref.rst:835 msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" -msgstr "" +msgstr ":mod:`distutils.bcppcompiler` — Compilateur Borland" #: ../Doc/distutils/apiref.rst:840 msgid "" "This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" "class:`CCompiler` class for the Borland C++ compiler." msgstr "" +"Ce module fournit :class:`BorlandCCompiler`, une sous-classe de la classe " +"abstraite :class:`CCompiler` classe pour le compilateur Borland C++." #: ../Doc/distutils/apiref.rst:845 msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" -msgstr "" +msgstr ":mod:`distutils.cygwincompiler` — Compilateur Cygwin" #: ../Doc/distutils/apiref.rst:850 msgid "" @@ -1317,16 +1644,22 @@ msgid "" "Windows. It also contains the Mingw32CCompiler class which handles the " "mingw32 port of GCC (same as cygwin in no-cygwin mode)." msgstr "" +"Ce module fournit la classe :class:`CygwinCCompiler`, une sous-classe de la " +"classe :class:`UnixCCompiler` qui gère *Cygwin*, le portage du compilateur " +"GNU C sur Windows. Il contient également la classe Mingw32CCompiler qui " +"gère le portage *mingw32* de GCC (comme *cygwin* en mode *no-cygwin*)." #: ../Doc/distutils/apiref.rst:857 msgid ":mod:`distutils.archive_util` --- Archiving utilities" -msgstr "" +msgstr ":mod:`distutils.archive_util` — Utilitaires d'archivage" #: ../Doc/distutils/apiref.rst:863 msgid "" "This module provides a few functions for creating archive files, such as " "tarballs or zipfiles." msgstr "" +"Ce module fournit quelques fonctions pour créer des fichiers d'archive, tels " +"que des archives aux formats *tarballs* ou *zipfiles*." #: ../Doc/distutils/apiref.rst:869 msgid "" @@ -1340,6 +1673,16 @@ msgid "" "archive. *root_dir* and *base_dir* both default to the current directory. " "Returns the name of the archive file." msgstr "" +"Crée un fichier d'archive (par exemple ``zip`` ou ``tar``). *base_name* est " +"le nom du fichier à créer, sans extension spécifique indiquant le format. " +"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " +"``bztar``, ``xztar``, ``xztar``, ou ``ztar``. *root_dir* est un répertoire " +"qui sera le répertoire racine de l'archive ; c'est-à-dire que le programme " +"se positionne dans *root_dir* avant de créer l'archive. *base_dir* est le " +"répertoire à partir duquel se lance l'archivage ; par exemple, *base_dir* " +"est le préfixe commun à tous les fichiers et répertoires de l'archive. " +"*root_dir* et *base_dir* sont tous deux par défaut dans le répertoire " +"courant. Renvoie le nom du fichier archive." #: ../Doc/distutils/apiref.rst:879 msgid "Added support for the ``xztar`` format." @@ -1356,10 +1699,18 @@ msgid "" "compression extension (``.gz``, ``.bz2``, ``.xz`` or ``.Z``). Return the " "output filename." msgstr "" +"Crée une archive (compressée en option) sous forme de fichier au format " +"*tar* à partir de tous les fichiers dans et sous *base_dir*. *compress* doit " +"être ``'gzip'`` (par défaut), ``'bzip2'``, ``'xz'``, ``'compress'`` ou " +"``None``. Pour la méthode ``'compress'`` l'utilitaire de compression nommé " +"par :program:`compress` doit être sur le chemin de recherche par défaut, " +"donc c'est sans doute spécifique à Unix. Le fichier *tar* de sortie sera " +"nommé :file:`base_dir.tar`, avec l'extension de compression appropriée (``." +"gz``, ``.bz2``, ``.xz`` ou ``.Z``). Renvoie le nom du fichier de sortie." #: ../Doc/distutils/apiref.rst:894 msgid "Added support for the ``xz`` compression." -msgstr "" +msgstr "Ajout du support de la compression ``xz``." #: ../Doc/distutils/apiref.rst:900 msgid "" @@ -1370,10 +1721,16 @@ msgid "" "available, raises :exc:`DistutilsExecError`. Returns the name of the " "output zip file." msgstr "" +"Crée un fichier zip à partir de tous les fichiers dans et sous *base_dir*. " +"Le fichier zip de sortie est nommé *base_name* + :file:`.zip`. Utilise soit " +"le module Python :mod:`zipfile` (si disponible) ou l'utilitaire InfoZIP :" +"file:`zip` (s'il est installé et trouvé sur le chemin de recherche par " +"défaut). Si aucun des deux outils n'est disponible, lève :exc:" +"`DistutilsExecError`. Renvoie le nom du fichier zip de sortie." #: ../Doc/distutils/apiref.rst:908 msgid ":mod:`distutils.dep_util` --- Dependency checking" -msgstr "" +msgstr ":mod:`distutils.dep_util` — Vérification des dépendances" #: ../Doc/distutils/apiref.rst:914 msgid "" @@ -1381,6 +1738,10 @@ msgid "" "dependency of files and groups of files; also, functions based entirely on " "such timestamp dependency analysis." msgstr "" +"Ce module fournit des fonctions permettant d'effectuer des tests de " +"dépendance simples, basés sur les horodatages de fichiers et de groupes de " +"fichiers, ainsi que des fonctionnalités entièrement basées sur ces analyses " +"de dépendance par rapport aux horodatages." #: ../Doc/distutils/apiref.rst:921 msgid "" @@ -1389,6 +1750,10 @@ msgid "" "*target* is the same age or newer than *source*. Raise :exc:" "`DistutilsFileError` if *source* does not exist." msgstr "" +"Renvoie la valeur *true* si *source* existe et a été modifiée plus récemment " +"que *target*, ou si *source* existe et *target* n'existe pas. Renvoie la " +"valeur *false* si les deux existent et que *target* est aussi ou plus récent " +"que *source*. Lève :exc:`DistutilsFileError` si *source* n'existe pas." #: ../Doc/distutils/apiref.rst:929 msgid "" @@ -1397,6 +1762,10 @@ msgid "" "where source is newer than target, according to the semantics of :func:" "`newer`." msgstr "" +"Parcourt en parallèle deux listes de noms de fichiers, en vérifiant si " +"chaque source est plus récente que sa cible correspondante. Renvoie une " +"paire de listes (*sources*, *cibles*) où la source est plus récente que la " +"cible, selon la sémantique de :func:`newer`." #: ../Doc/distutils/apiref.rst:938 msgid "" @@ -1415,12 +1784,15 @@ msgstr "" #: ../Doc/distutils/apiref.rst:951 msgid ":mod:`distutils.dir_util` --- Directory tree operations" msgstr "" +":mod:`distutils.dir_util` --- Opérations sur l'arborescence des répertoires" #: ../Doc/distutils/apiref.rst:957 msgid "" "This module provides functions for operating on directories and trees of " "directories." msgstr "" +"Ce module fournit des fonctions pour travailler sur des répertoires et des " +"arborescences de répertoires." #: ../Doc/distutils/apiref.rst:963 msgid "" @@ -1432,6 +1804,14 @@ msgid "" "is true, print a one-line summary of each mkdir to stdout. Return the list " "of directories actually created." msgstr "" +"Crée un répertoire et tous les répertoires parents manquants. Si le " +"répertoire existe déjà (ou si *name* est la chaîne vide, c'est-à-dire le " +"répertoire courant, qui existe bien sûr), alors ne fait rien. Lève :exc:" +"`DistutilsFileError` s'il n'est pas possible de créer un répertoire en cours " +"de route (par exemple, un sous-chemin existe, mais est un fichier plutôt " +"qu'un répertoire). Si *verbose* est vrai, affiche un résumé d'une ligne de " +"chaque *mkdir* vers *stdout*. Renvoie la liste des répertoires réellement " +"créés." #: ../Doc/distutils/apiref.rst:974 msgid "" @@ -1442,6 +1822,12 @@ msgid "" "be created if it doesn't already exist. *mode*, *verbose* and *dry_run* " "flags are as for :func:`mkpath`." msgstr "" +"Crée tous les répertoires vides sous *base_dir* nécessaires pour placer " +"*files*. *base_dir* est le nom d'un répertoire qui n'existe pas encore " +"nécessairement ; *files* est une liste de noms de fichiers relatifs à " +"*base_dir*. *base_dir* + la partie répertoire de chaque fichier dans *files* " +"est créée si elle n'existe pas déjà. Les options *mode*, *verbose* et " +"*dry_run* sont les mêmes que pour :func:`mkpath`." #: ../Doc/distutils/apiref.rst:984 msgid "" @@ -1455,6 +1841,17 @@ msgid "" "it is simply the list of all files under *src*, with the names changed to be " "under *dst*." msgstr "" +"Copie une arborescence de répertoires entière *src* vers un nouvel " +"emplacement *dst*. *src* et *dst* doivent tous deux être des noms de " +"répertoire. Si *src* n'est pas un répertoire, lève :exc:" +"`DistutilsFileError`. Si *dst* n'existe pas, il est créé avec :func:" +"`mkpath`. Le résultat final de la copie est que chaque fichier dans *src* " +"est copié dans *dst*, et les répertoires sous *src* sont récursivement " +"copiés dans *dst*. Renvoie la liste des fichiers qui ont été copiés ou qui " +"auraient pu l'être, en utilisant leur nom de sortie. La valeur renvoyée " +"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " +"liste de tous les fichiers sous *src*, avec les noms modifiés pour être sous " +"*dst*." #: ../Doc/distutils/apiref.rst:994 msgid "" @@ -1465,6 +1862,13 @@ msgid "" "destination of the symlink will be copied. *update* and *verbose* are the " "same as for :func:`copy_file`." msgstr "" +"Les modes *preserve_mode* et *preserve_times* sont les mêmes que pour :func:" +"`distutils.file_util.copy_file` ; il faut savoir que cela ne concerne que " +"les fichiers réguliers, et non les dossiers. Si *preserve_symlinks* est " +"vrai, les liens symboliques seront copiés en tant que liens symboliques (sur " +"les plateformes qui les gèrent !); sinon (par défaut), la destination du " +"lien sera copiée. *update* et *verbose* sont les mêmes que pour :func:" +"`copy_file`." #: ../Doc/distutils/apiref.rst:1002 msgid "" @@ -1472,10 +1876,13 @@ msgid "" "these files is available in answer D2 of the `NFS FAQ page `_)." msgstr "" +"Les fichiers dans *src* qui commencent par :file:`.nfs` sont ignorés (plus " +"d'informations sur ces fichiers sont disponibles dans la réponse *D2* de la " +"page `NFS FAQ page `_)." #: ../Doc/distutils/apiref.rst:1006 msgid "NFS files are ignored." -msgstr "" +msgstr "Les fichiers NFS sont ignorés." #: ../Doc/distutils/apiref.rst:1011 msgid "" @@ -1483,16 +1890,21 @@ msgid "" "Any errors are ignored (apart from being reported to ``sys.stdout`` if " "*verbose* is true)." msgstr "" +"Supprime récursivement *directory* et tous les fichiers et répertoires en " +"dessous. Toutes les erreurs sont ignorées (sauf si *verbose* est vrai, elles " +"sont affichées sur ``sys.stdout``)." #: ../Doc/distutils/apiref.rst:1017 msgid ":mod:`distutils.file_util` --- Single file operations" -msgstr "" +msgstr ":mod:`distutils.file_util` — Traitements mono-fichier" #: ../Doc/distutils/apiref.rst:1023 msgid "" "This module contains some utility functions for operating on individual " "files." msgstr "" +"Ce module contient quelques fonctions de service pour travailler sur des " +"fichiers individuels." #: ../Doc/distutils/apiref.rst:1028 msgid "" @@ -1505,6 +1917,14 @@ msgid "" "If *update* is true, *src* will only be copied if *dst* does not exist, or " "if *dst* does exist but is older than *src*." msgstr "" +"Copie le fichier *src* dans *dst*. Si *dst* est un répertoire, alors *src* y " +"est copié avec le même nom ; sinon, il faut que ce soit un nom de fichier. " +"Si *preserve_mode* est vrai (par défaut), le mode du fichier (son type et " +"ses bits de permission, ou ce qui est analogue sur la plate-forme actuelle) " +"sont copiés. Si *preserve_times* est vrai (par défaut), les horodatages de " +"la dernière modification et du dernier accès sont également copiés. Si " +"*update* est vrai, *src* ne peut être copié que si *dst* n'existe pas, ou si " +"*dst* existe mais est plus ancien que *src*." #: ../Doc/distutils/apiref.rst:1037 msgid "" @@ -1515,6 +1935,13 @@ msgid "" "hard or symbolic linking is available. It uses :func:`_copy_file_contents` " "to copy file contents." msgstr "" +"*link* permets de créer des liens physiques (en utilisant :func:`os.link`) " +"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " +"paramétrez la valeur a ``'hard'`` ou ``'sym'`` ; si elle vaut ``None`` (par " +"défaut), les fichiers sont copiés. Ne définissez pas *link* sur les systèmes " +"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " +"symboliques ou physiques sont disponibles. La fonction :func:" +"`_copy_file_contents` est utilisée pour copier le contenu des fichiers." #: ../Doc/distutils/apiref.rst:1044 msgid "" @@ -1522,6 +1949,9 @@ msgid "" "the output file, and *copied* is true if the file was copied (or would have " "been copied, if *dry_run* true)." msgstr "" +"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " +"fichier de sortie, et *copied* est vrai si le fichier a été copié (ou aurait " +"été copié, si *dry_run* est vrai)." #: ../Doc/distutils/apiref.rst:1058 msgid "" @@ -1529,28 +1959,37 @@ msgid "" "into it with the same name; otherwise, *src* is just renamed to *dst*. " "Returns the new full name of the file." msgstr "" +"Déplace le fichier *src* vers *dst*. Si *dst* est un répertoire, le fichier " +"y est déplacé avec le même nom ; sinon, *src* est simplement renommé *dst*. " +"Renvoie le nouveau nom complet du fichier." #: ../Doc/distutils/apiref.rst:1064 msgid "" "Handles cross-device moves on Unix using :func:`copy_file`. What about " "other systems?" msgstr "" +"Gère les déplacements inter-périphériques sous Unix en utilisant :func:" +"`copy_file`. Qu'en est-il sur les autres systèmes ?" #: ../Doc/distutils/apiref.rst:1070 msgid "" "Create a file called *filename* and write *contents* (a sequence of strings " "without line terminators) to it." msgstr "" +"Crée un fichier appelé *filename* et y écrit *contents* (une séquence de " +"chaînes sans terminaison de ligne)." #: ../Doc/distutils/apiref.rst:1075 msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" -msgstr "" +msgstr ":mod:`distutils.util` — Autres fonctions de service" #: ../Doc/distutils/apiref.rst:1081 msgid "" "This module contains other assorted bits and pieces that don't fit into any " "other utility module." msgstr "" +"Ce module contient d'autres éléments qui ne correspondent à aucun autre " +"module de service." #: ../Doc/distutils/apiref.rst:1087 msgid "" @@ -1565,19 +2004,19 @@ msgstr "" #: ../Doc/distutils/apiref.rst:1095 msgid "Examples of returned values:" -msgstr "" +msgstr "Exemples de valeurs renvoyées :" #: ../Doc/distutils/apiref.rst:1097 msgid "``linux-i586``" -msgstr "" +msgstr "``linux-i586``" #: ../Doc/distutils/apiref.rst:1098 msgid "``linux-alpha``" -msgstr "" +msgstr "``linux-alpha``" #: ../Doc/distutils/apiref.rst:1099 msgid "``solaris-2.6-sun4u``" -msgstr "" +msgstr "``solaris-2.6-sun4u``" #: ../Doc/distutils/apiref.rst:1100 msgid "``irix-5.3``" @@ -1590,6 +2029,8 @@ msgstr "" #: ../Doc/distutils/apiref.rst:1103 msgid "For non-POSIX platforms, currently just returns ``sys.platform``." msgstr "" +"Pour les plates-formes qui ne sont pas POSIX, renvoie simplement ``sys." +"platform``." #: ../Doc/distutils/apiref.rst:1105 msgid "" @@ -1597,6 +2038,10 @@ msgid "" "binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during " "the build of Python), not the OS version of the current system." msgstr "" +"Pour les systèmes Mac OS X, la version du système d'exploitation correspond " +"à la version minimale sur laquelle les binaires pourront être exécutés " +"(c'est-à-dire la valeur de ``MACOSX_DEPLOYMENT_TARGET`` pendant la " +"compilation de Python), et non la version du système actuel." #: ../Doc/distutils/apiref.rst:1109 msgid "" @@ -1609,26 +2054,35 @@ msgid "" "build (ppc, i386, x86_64) and ``intel`` is used for a universal build with " "the i386 and x86_64 architectures" msgstr "" +"Pour les binaires universels construits sur Mac OS X, la valeur de " +"l'architecture reflète l'état du binaire universel au lieu de celle de " +"l'architecture du processeur en cours. Pour les binaires universels 32 bits, " +"l'architecture est ``fat``, pour les binaires universels 64 bits, " +"l'architecture est ``fat64``, et pour les binaires universels 4 voies, " +"l'architecture est ``universelle``. A partir de Python 2.7 et Python 3.2, " +"l'architecture ``fat3`` est utilisée pour une compilation universelle à 3 " +"voies (*ppc*, *i386*, *x86_64*) et ``intel`` est utilisée pour une " +"compilation universelle avec les architectures *i386* et *x86_64*" #: ../Doc/distutils/apiref.rst:1118 msgid "Examples of returned values on Mac OS X:" -msgstr "" +msgstr "Exemples de valeurs renvoyées sous Mac OS X :" #: ../Doc/distutils/apiref.rst:1120 msgid "``macosx-10.3-ppc``" -msgstr "" +msgstr "``macosx-10.3-ppc``" #: ../Doc/distutils/apiref.rst:1122 msgid "``macosx-10.3-fat``" -msgstr "" +msgstr "``macosx-10.3-fat``" #: ../Doc/distutils/apiref.rst:1124 msgid "``macosx-10.5-universal``" -msgstr "" +msgstr "``macosx-10.5-universal``" #: ../Doc/distutils/apiref.rst:1126 msgid "``macosx-10.6-intel``" -msgstr "" +msgstr "``macosx-10.6-intel``" #: ../Doc/distutils/apiref.rst:1131 msgid "" @@ -1639,6 +2093,14 @@ msgid "" "can actually use them in the filesystem. Raises :exc:`ValueError` on non-" "Unix-ish systems if *pathname* either starts or ends with a slash." msgstr "" +"Renvoie un chemin *pathname* qui fonctionne sur le système de fichiers " +"natif. Par exemple, il sépare le chemin sur */* et le recompose en utilisant " +"le séparateur de répertoires courant. Cela est nécessaire parce que les noms " +"de fichiers dans les scripts d'installations sont toujours fournis dans le " +"style Unix, et doivent être convertis dans la convention du système avant " +"d'être utilisé par le système de fichiers. Lève :exc:`ValueError` sur les " +"systèmes non UNIX si *pathname* commence ou se termine par une barre oblique " +"(*slash* en anglais)." #: ../Doc/distutils/apiref.rst:1141 msgid "" @@ -1647,6 +2109,10 @@ msgid "" "requires making *pathname* relative and then joining the two, which is " "tricky on DOS/Windows." msgstr "" +"Renvoie un chemin *pathname* préfixé avec *new_root*. Si *pathname* est " +"relatif, c`est l'équivalent de ``os.path.join(new_root,pathname)`` Sinon, il " +"faut rendre *pathname* relatif et joindre les deux, ce qui est dangereux " +"sous DOS/Windows." #: ../Doc/distutils/apiref.rst:1148 msgid "" @@ -1654,16 +2120,22 @@ msgid "" "users can use in config files, command-line options, etc. Currently this " "includes:" msgstr "" +"Vérifie que 'os.environ' possède toutes les variables d'environnement " +"utilisables dans les fichiers de configuration, les options en ligne de " +"commande, etc. À l'heure actuelle, cela comprend :" #: ../Doc/distutils/apiref.rst:1152 msgid ":envvar:`HOME` - user's home directory (Unix only)" msgstr "" +":envvar:`HOME`. Répertoire d’accueil de l'utilisateur (Unix uniquement)" #: ../Doc/distutils/apiref.rst:1153 msgid "" ":envvar:`PLAT` - description of the current platform, including hardware and " "OS (see :func:`get_platform`)" msgstr "" +":envvar:`PLAT`. Description de la plate-forme actuelle, y compris le " +"matériel et le l'OS (voir :func:`get_platform`)" #: ../Doc/distutils/apiref.rst:1159 msgid "" @@ -1675,6 +2147,14 @@ msgid "" "`check_environ`. Raise :exc:`ValueError` for any variables not found in " "either *local_vars* or ``os.environ``." msgstr "" +"Exécute la substitution de variable de style shell/Perl sur *s*. Chaque " +"occurrence de ``$`` suivie d'un nom est considérée comme une variable, et la " +"variable est remplacée par la valeur trouvée dans le dictionnaire " +"*local_vars*, ou dans ``os.environ`` si elle ne se trouve pas dans " +"*local_vars*. *os.environ* est d'abord vérifié/étendu pour garantir qu'elle " +"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" +"`ValueError` pour toute variable non trouvée dans *local_vars* ou ``os." +"environ``." #: ../Doc/distutils/apiref.rst:1166 msgid "" @@ -1682,6 +2162,10 @@ msgid "" "``$variable`` can consist only of upper and lower case letters, numbers and " "an underscore. No { } or ( ) style quoting is available." msgstr "" +"Remarquez qu'il ne s'agit pas d'une fonction d'interpolation de chaîne à " +"part entière. Une ``$variable`` valide ne peut être composée que de lettres " +"majuscules et minuscules, de chiffres et d'un tiret bas. Aucune syntaxe de " +"type {} ou () pour indiquer des variables n'est disponible." #: ../Doc/distutils/apiref.rst:1173 msgid "" @@ -1693,6 +2177,16 @@ msgid "" "leaving only the escaped character. The quote characters are stripped from " "any quoted string. Returns a list of words." msgstr "" +"Sépare une chaîne de caractères selon les règles de type shell Unix pour les " +"guillemets et les barres obliques inverses. En bref : les mots sont " +"délimités par des espaces, tant que ces espaces ne sont pas échappées par " +"une barre oblique inversée, ou à l'intérieur d'une chaîne guillemets. Les " +"guillemets simples et doubles sont équivalents, et les caractères entre " +"guillemets peuvent être échappés à l'aide d'une barre oblique inversée. La " +"barre oblique inversée est supprimée de toute séquence d'échappement à deux " +"caractères, ne laissant que le caractère échappé. Les caractères guillemets " +"sont supprimés de toute chaîne de caractères entre guillemets. Renvoie une " +"liste de mots." #: ../Doc/distutils/apiref.rst:1186 msgid "" @@ -1703,10 +2197,18 @@ msgid "" "it (to embody the \"external action\" being performed), and an optional " "message to print." msgstr "" +"Exécute une action qui affecte le monde extérieur (par exemple, écrire dans " +"le système de fichiers). De telles actions sont spéciales car elles sont " +"désactivées par l'option *dry_run*. Cette méthode s'occupe de tout. Vous " +"devez simplement fournir la fonction à appeler avec un couple d'argument lui " +"correspondant et un message facultatif à afficher." #: ../Doc/distutils/apiref.rst:1195 msgid "Convert a string representation of truth to true (1) or false (0)." msgstr "" +"Convertit une chaîne de caractères représentant une valeur booléenne en " +"``1`` (si elle est évaluée comme vraie) ou ``0`` (si elle est évaluée comme " +"fausse)." #: ../Doc/distutils/apiref.rst:1197 msgid "" @@ -1714,6 +2216,9 @@ msgid "" "values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" "`ValueError` if *val* is anything else." msgstr "" +"Les valeurs *vraies* sont , ``y``, ``yes``, ``t``, ``true``, ``on`` et " +"``1``. Les valeurs *fausses* sont ``n``, ``no``, ``f``, ``false``, ``off`` " +"et ``0``. Lève :exc:`ValueError` si *val* est autre chose." #: ../Doc/distutils/apiref.rst:1204 msgid "" @@ -1722,22 +2227,30 @@ msgid "" "is a list of files to compile; any files that don't end in :file:`.py` are " "silently skipped. *optimize* must be one of the following:" msgstr "" +"Effectue une compilation vers du *bytecode* Python à partir d'un ensemble de " +"fichiers sources Python dans un fichier :file:`.pyc` dans un sous " +"répertoire :file:`__pycache__` (voir :pep:`3147` et :pep:`488`). *py_files* " +"est une liste de fichiers à compiler ; tous les fichiers qui ne se terminent " +"pas par :file:`.py` sont ignorés en silence. *optimize* doit être l'un des " +"éléments suivants :" #: ../Doc/distutils/apiref.rst:1209 msgid "``0`` - don't optimize" -msgstr "" +msgstr "``0``: ne pas optimiser" #: ../Doc/distutils/apiref.rst:1210 msgid "``1`` - normal optimization (like ``python -O``)" -msgstr "" +msgstr "``1``: optimisation normale (comme ``python -O``)" #: ../Doc/distutils/apiref.rst:1211 msgid "``2`` - extra optimization (like ``python -OO``)" -msgstr "" +msgstr "``2``: optimisation supplémentaire (comme ``python -OO``)" #: ../Doc/distutils/apiref.rst:1213 msgid "If *force* is true, all files are recompiled regardless of timestamps." msgstr "" +"Si *force* est vrai, tous les fichiers sont recompilés indépendamment des " +"horodatages." #: ../Doc/distutils/apiref.rst:1215 msgid "" @@ -1748,12 +2261,21 @@ msgid "" "*prefix* is stripped). You can supply either or both (or neither) of " "*prefix* and *base_dir*, as you wish." msgstr "" +"Le nom du fichier source encodé dans chaque fichier :term:`bytecode` est par " +"défaut le nom présent dans la liste des noms de fichiers source *py_files* ; " +"vous pouvez modifier dynamiquement ses noms avec *prefix* et *basedir*. " +"*prefix* est une chaîne de caractères qui sera supprimée de chaque nom de " +"fichier source, et *base_dir* est un nom de répertoire qui sera préfixé au " +"nom (après que le *prefixe* soit supprimé). Vous pouvez choisir de fournir " +"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." #: ../Doc/distutils/apiref.rst:1222 msgid "" "If *dry_run* is true, doesn't actually do anything that would affect the " "filesystem." msgstr "" +"Si *dry_run* est vrai, ne fait rien qui puisse affecter le système de " +"fichiers." #: ../Doc/distutils/apiref.rst:1225 msgid "" @@ -1764,6 +2286,13 @@ msgid "" "The *direct* flag is used by the script generated in indirect mode; unless " "you know what you're doing, leave it set to ``None``." msgstr "" +"La compilation binaire se fait soit directement dans l'interpréteur courant " +"avec le module standard :mod:`py_compile`, soit indirectement en écrivant un " +"script temporaire et en l'exécutant. Normalement, vous devez laisser :func:" +"`byte_compile` choisir d'utiliser la compilation directe ou non (voir le " +"code-source pour les détails). Le paramètre *direct* est utilisé par le " +"script généré en mode indirect ; à moins que vous ne sachiez ce que vous " +"faites, laissez le paramètre à ``None`` (Aucun)." #: ../Doc/distutils/apiref.rst:1232 msgid "" @@ -1771,10 +2300,13 @@ msgid "" "their name, in a :file:`__pycache__` subdirectory instead of files without " "tag in the current directory." msgstr "" +"Crée des fichiers ``.pyc`` avec un sous-répertoire :func:`import magic tag " +"` dans leur nom, dans le sous répertoire :file:`__pycache__` " +"plutôt que dans le répertoire courant, sans tag." #: ../Doc/distutils/apiref.rst:1237 msgid "Create ``.pyc`` files according to :pep:`488`." -msgstr "" +msgstr "Crée des fichiers ``.pyc`` selon la :pep:`488`." #: ../Doc/distutils/apiref.rst:1243 msgid "" @@ -1782,38 +2314,47 @@ msgid "" "by ensuring there are 8 spaces space after each newline. Note that it does " "no other modification of the string." msgstr "" +"Renvoie une version de *header* traitée avec les échappements compatibles " +"avec les en-têtes :rfc:`822`, en s'assurant qu'il y a 8 espaces après chaque " +"nouvelle ligne. Notez qu'il ne fait aucune autre modification de la chaîne " +"de caractères." #: ../Doc/distutils/apiref.rst:1253 msgid ":mod:`distutils.dist` --- The Distribution class" -msgstr "" +msgstr ":mod:`distutils.dist` — La classe Distribution" #: ../Doc/distutils/apiref.rst:1260 msgid "" "This module provides the :class:`~distutils.core.Distribution` class, which " "represents the module distribution being built/installed/distributed." msgstr "" +"Ce module fournit la classe :class:`~distutils.core.Distribution`, qui " +"représente le module *distribution* en cours de construction/installation/" +"distribution." #: ../Doc/distutils/apiref.rst:1265 msgid ":mod:`distutils.extension` --- The Extension class" -msgstr "" +msgstr ":mod:`distutils.extension` — La classe Extension" #: ../Doc/distutils/apiref.rst:1272 msgid "" "This module provides the :class:`Extension` class, used to describe C/C++ " "extension modules in setup scripts." msgstr "" +"Ce module fournit la classe :class:`Extension`, utilisée pour décrire les " +"modules d'extension C/C++ dans les scripts de configuration." #: ../Doc/distutils/apiref.rst:1280 msgid ":mod:`distutils.debug` --- Distutils debug mode" -msgstr "" +msgstr ":mod:`distutils.debug` — Mode de débogage du module *Distutils*" #: ../Doc/distutils/apiref.rst:1286 msgid "This module provides the DEBUG flag." -msgstr "" +msgstr "Ce module fournit l'option *DEBUG*." #: ../Doc/distutils/apiref.rst:1290 msgid ":mod:`distutils.errors` --- Distutils exceptions" -msgstr "" +msgstr ":mod:`distutils.errors` — Exceptions du module *Distutils*" #: ../Doc/distutils/apiref.rst:1296 msgid "" @@ -1822,37 +2363,50 @@ msgid "" "raised for errors that are obviously the end-user's fault (eg. bad command-" "line arguments)." msgstr "" +"Fournit les exceptions utilisées par les modules de *Distutils*. Notez que " +"les modules *Distutils* peuvent soulever des exceptions standard ; en " +"particulier, ``SystemExit`` est généralement levée pour les erreurs qui sont " +"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " +"argument en ligne de commande)." #: ../Doc/distutils/apiref.rst:1300 msgid "" "This module is safe to use in ``from ... import *`` mode; it only exports " "symbols whose names start with ``Distutils`` and end with ``Error``." msgstr "" +"Ce module est utilisable avec la syntaxe ``from ... import *`` ; il " +"n'exporte que des symboles dont le nom commence par ``Distutils`` et se " +"termine par ``Error``." #: ../Doc/distutils/apiref.rst:1305 msgid "" ":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" msgstr "" +":mod:`distutils.fancy_getopt` --- Encapsulation du module *getopt* standard" #: ../Doc/distutils/apiref.rst:1311 msgid "" "This module provides a wrapper around the standard :mod:`getopt` module " "that provides the following additional features:" msgstr "" +"Ce module est une encapsulation du module standard :mod:`getopt` qui apporte " +"les fonctionnalités supplémentaires suivantes :" #: ../Doc/distutils/apiref.rst:1314 msgid "short and long options are tied together" -msgstr "" +msgstr "Les options *short* et *long* sont liées entre elles." #: ../Doc/distutils/apiref.rst:1316 msgid "" "options have help strings, so :func:`fancy_getopt` could potentially create " "a complete usage summary" msgstr "" +"Les options ont des pages d'aide, donc :func:`fancy_getopt` pourrait " +"potentiellement créer un résumé d'utilisation complet" #: ../Doc/distutils/apiref.rst:1319 msgid "options set attributes of a passed-in object" -msgstr "" +msgstr "Les options définissent les attributs à partir d'un objet fourni." #: ../Doc/distutils/apiref.rst:1321 msgid "" @@ -1860,6 +2414,9 @@ msgid "" "is the \"negative alias\" of :option:`!--verbose`, then :option:`!--quiet` " "on the command line sets *verbose* to false." msgstr "" +"Les options booléennes peuvent avoir des \"alias négatifs\" --- par exemple " +"l'option :option:`!-quiet` est *l'alias négatif* de :option:`!--verbose`, " +"l'option :option:`!-quiet` sur la ligne de commande met *verbose* à faux." #: ../Doc/distutils/apiref.rst:1327 msgid "" @@ -1871,16 +2428,28 @@ msgid "" "`getopt` method of the :class:`FancyGetopt` class). *args* is the argument " "list. Will use ``sys.argv[1:]`` if you pass ``None`` as *args*." msgstr "" +"Encapsulation de la fonction ``getopt``. *options* est une liste de triplets " +"``(long_option, short_option, help_string)`` comme décrit dans le " +"constructeur de la classe :class:`FancyGetopt`. *negative_opt* doit être un " +"dictionnaire associant les noms des options aux noms des options, la clé et " +"la valeur doivent être dans la liste *options*. *object* est un objet qui " +"sera utilisé pour stocker des valeurs (voir la méthode :meth:`getopt` de la " +"classe :class:`FancyGetopt`). *args* est la liste des arguments. Utilise " +"``sys.argv[1 :]`` si ``None`` est passé à *args*." #: ../Doc/distutils/apiref.rst:1338 msgid "Wraps *text* to less than *width* wide." msgstr "" +"Ajoute des retours à la ligne à *texte* de manière à ce que la largeur soit " +"inférieure à *largeur*." #: ../Doc/distutils/apiref.rst:1343 msgid "" "The option_table is a list of 3-tuples: ``(long_option, short_option, " "help_string)``" msgstr "" +"La liste *option_table* est constituée de triplets : ``(long_option, " +"short_option, help_string*)``" #: ../Doc/distutils/apiref.rst:1346 msgid "" @@ -1889,14 +2458,21 @@ msgid "" "any case. *short_option* should be ``None`` if a *long_option* doesn't have " "a corresponding *short_option*. All option tuples must have long options." msgstr "" +"Si une option prend un argument, sa *long_option* doit se terminer par " +"``'='``. *short_option* doit être un seul caractère, jamais ``':'`'. " +"*option_courte* doit être ``None`` si *long_option* n'a pas de " +"*short_option* correspondante. Tous les triplets d'options doivent avoir des " +"options longues." #: ../Doc/distutils/apiref.rst:1351 msgid "The :class:`FancyGetopt` class provides the following methods:" -msgstr "" +msgstr "La classe :class:`FancyGetopt` fournit les méthodes suivantes :" #: ../Doc/distutils/apiref.rst:1356 msgid "Parse command-line options in args. Store as attributes on *object*." msgstr "" +"Analyse les options de ligne de commande des arguments. Les stocke en tant " +"qu'attributs de *objet*." #: ../Doc/distutils/apiref.rst:1358 msgid "" @@ -1907,6 +2483,13 @@ msgid "" "returns *args*; in both cases, the returned *args* is a modified copy of the " "passed-in *args* list, which is left untouched." msgstr "" +"Si *args* est ``None`` ou n'est pas définie, utilise ``sys.argv[1:]``. Si " +"*object* est ``None`` ou n'est pas définie, créer une nouvelle instance de " +"la classe :class:`OptionDummy` , stocke les valeurs d'options dans " +"l'instance et renvoie un couple ``(args, object)``. Si *objet* est fourni, " +"il est modifié sur place et :func:`getopt` renvoie simplement *args*; dans " +"les deux cas, Les arguments *args* renvoyés sont une copie modifiée de la " +"liste *args* transmise, qui est n'est pas modifiée." #: ../Doc/distutils/apiref.rst:1370 msgid "" @@ -1914,34 +2497,43 @@ msgid "" "of :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been " "called yet." msgstr "" +"Renvoie la liste des couples ``(option, valeur)`` traités par l'exécution " +"précédente de :meth:`getopt`. Déclenche :exc:`RuntimeError` si :meth:" +"`getopt` n'a pas encore été appelée." #: ../Doc/distutils/apiref.rst:1377 msgid "" "Generate help text (a list of strings, one per suggested line of output) " "from the option table for this :class:`FancyGetopt` object." msgstr "" +"Génère un texte d'aide (une liste de chaînes, une par ligne de sortie " +"suggérée) de la liste d'options pour l'objet de la classe :class:" +"`FancyGetopt`." #: ../Doc/distutils/apiref.rst:1380 msgid "If supplied, prints the supplied *header* at the top of the help." -msgstr "" +msgstr "S'il est fourni, affiche l'en-tête *header* en haut de l'aide." #: ../Doc/distutils/apiref.rst:1384 msgid ":mod:`distutils.filelist` --- The FileList class" -msgstr "" +msgstr ":mod:`distutils.filelist` — La classe *FileList* liste des fichiers" #: ../Doc/distutils/apiref.rst:1391 msgid "" "This module provides the :class:`FileList` class, used for poking about the " "filesystem and building lists of files." msgstr "" +"Ce module fournit la classe :class:`FileList`, utilisée pour parcourir le " +"système de fichiers et construire des listes de fichiers." #: ../Doc/distutils/apiref.rst:1396 msgid ":mod:`distutils.log` --- Simple PEP 282-style logging" msgstr "" +":mod:`distutils.log` --- Journalisation basée sur le style de la PEP 282" #: ../Doc/distutils/apiref.rst:1403 msgid ":mod:`distutils.spawn` --- Spawn a sub-process" -msgstr "" +msgstr ":mod:`distutils.spawn` — Crée un sous-processus" #: ../Doc/distutils/apiref.rst:1409 msgid "" @@ -1950,10 +2542,15 @@ msgid "" "Also provides :func:`find_executable` to search the path for a given " "executable name." msgstr "" +"Ce module offre la fonction :func:`spawn`, une interface avec diverses " +"fonctions spécifiques à la plate-forme pour lancer un autre programme dans " +"un sous-processus. Inclut également :func:`find_executable` pour rechercher " +"le chemin d'accès pour un nom d'exécutable donné." #: ../Doc/distutils/apiref.rst:1416 msgid ":mod:`distutils.sysconfig` --- System configuration information" msgstr "" +":mod:`distutils.sysconfig` --- Informations de configuration du système" #: ../Doc/distutils/apiref.rst:1425 msgid "" @@ -1966,26 +2563,40 @@ msgid "" "header is called :file:`pyconfig.h` for Python versions starting with 2.2, " "and :file:`config.h` for earlier versions of Python." msgstr "" +"Le module :mod:`distutils.sysconfig` donne accès aux informations de " +"configuration bas niveau de Python. Les variables de configuration " +"spécifiques disponibles dépendent de la plate-forme et de la configuration. " +"Les variables spécifiques dépendent du processus de compilation de la " +"version *spécifique* de Python en cours d'exécution. Les variables sont " +"celles qui se trouvent dans le fichier :file:`Makefile` et dans les entêtes " +"de configuration installés avec Python sur des systèmes Unix. Le fichier " +"des entêtes de configuration s'appelle :file:`pyconfig.h` pour les versions " +"de Python commençant par 2.2, et :file:`config.h` pour les versions " +"antérieures de Python." #: ../Doc/distutils/apiref.rst:1434 msgid "" "Some additional functions are provided which perform some useful " "manipulations for other parts of the :mod:`distutils` package." msgstr "" +"Quelques fonctions supplémentaires sont fournies pour effectuer des " +"manipulations utiles pour d'autres parties du paquet :mod:`distutils`." #: ../Doc/distutils/apiref.rst:1440 msgid "The result of ``os.path.normpath(sys.prefix)``." -msgstr "" +msgstr "Le résultat de ``os.path.normpath(sys.prefix)``." #: ../Doc/distutils/apiref.rst:1445 msgid "The result of ``os.path.normpath(sys.exec_prefix)``." -msgstr "" +msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``." #: ../Doc/distutils/apiref.rst:1450 msgid "" "Return the value of a single variable. This is equivalent to " "``get_config_vars().get(name)``." msgstr "" +"Retourne la valeur d'une seule variable. C'est l'équivalent de " +"``get_config_vars().get(name)``." #: ../Doc/distutils/apiref.rst:1456 msgid "" @@ -1995,6 +2606,12 @@ msgid "" "a sequence giving the associated values. If a given name does not have a " "corresponding value, ``None`` will be included for that variable." msgstr "" +"Retourne un ensemble de définitions de variables. S'il n'y a pas " +"d'arguments, cela renvoie un dictionnaire qui associe les noms des variables " +"de configuration aux valeurs. Si des arguments sont spécifiés, ils doivent " +"être des chaînes de caractères, et la valeur renvoyée sera une séquence " +"donnant les valeurs correspondantes. Si un nom donné n'a pas de valeur " +"correspondante, la valeur ``None`` sera utilisée pour cette variable." #: ../Doc/distutils/apiref.rst:1465 msgid "" @@ -2003,6 +2620,10 @@ msgid "" "platforms the header will have been supplied directly by the Python source " "distribution. The file is a platform-specific text file." msgstr "" +"Renvoie le nom complet du chemin d'accès de l'en-tête de configuration. " +"Pour Unix, c'est l'en-tête généré par le script :program:`configure` ; pour " +"les autres plates-formes, l'en-tête provient directement de la distribution " +"source Python. Le fichier est un fichier texte spécifique à la plate-forme." #: ../Doc/distutils/apiref.rst:1473 msgid "" @@ -2011,6 +2632,11 @@ msgid "" "meaning for other platforms will vary. The file is a platform-specific text " "file, if it exists. This function is only useful on POSIX platforms." msgstr "" +"Renvoie le nom complet du chemin d'accès du fichier :file:`Makefile` utilisé " +"pour construire Python. Pour Unix, c'est le fichier généré par le script :" +"program:`configure`. La définition pour les autres plateformes varie. S'il " +"existe, il s'agit d'un fichier texte spécifique à la plate-forme. Cette " +"fonction n'est utile que sur les plates-formes POSIX." #: ../Doc/distutils/apiref.rst:1481 msgid "" @@ -2021,6 +2647,13 @@ msgid "" "const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if " "*plat_specific* is true." msgstr "" +"Renvoie le répertoire pour les fichiers d'inclusion C standards ou " +"dépendants de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai." #: ../Doc/distutils/apiref.rst:1491 msgid "" @@ -2033,18 +2666,31 @@ msgid "" "directory for the standard library is returned rather than the directory for " "the installation of third-party extensions." msgstr "" +"Renvoie le répertoire pour l'installation de la bibliothèque standard ou " +"dépendante de la plate-forme. Si *plat_specific* est vrai, le répertoire " +"*include* dépendant de la plate-forme est renvoyé ; si la valeur est *faux* " +"ou *None*, le répertoire indépendant de la plate-forme est renvoyé. Si " +"*prefix* est donné, il est utilisé soit comme préfixe au lieu de :const:" +"`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " +"*plat_specific* est vrai. Si *standard_lib* est vrai, le répertoire de la " +"bibliothèque standard est renvoyé plutôt que le répertoire d'installation " +"des extensions tierces." #: ../Doc/distutils/apiref.rst:1500 msgid "" "The following function is only intended for use within the :mod:`distutils` " "package." msgstr "" +"La fonction suivante est uniquement destinée à être utilisée dans le paquet :" +"mod:`distutils`." #: ../Doc/distutils/apiref.rst:1506 msgid "" "Do any platform-specific customization of a :class:`distutils.ccompiler." "CCompiler` instance." msgstr "" +"Exécute toute personnalisation spécifique à la plate-forme d'une instance :" +"class:`distutils.ccompiler.CCompiler`." #: ../Doc/distutils/apiref.rst:1509 msgid "" @@ -2054,12 +2700,21 @@ msgid "" "This information includes the selected compiler, compiler and linker " "options, and the extension used by the linker for shared objects." msgstr "" +"Cette fonction n'est nécessaire que sous Unix pour le moment, mais doit être " +"appelée de manière cohérente pour supporter la compatibilité ascendante. " +"Elle insère des informations qui varient d'une version à l'autre d'Unix et " +"qui sont stockées dans le fichier Python :file:`Makefile`. Ces informations " +"comprennent le compilateur, les options du compilateur et de l'éditeur de " +"liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens " +"pour les objets partagés." #: ../Doc/distutils/apiref.rst:1515 msgid "" "This function is even more special-purpose, and should only be used from " "Python's own build procedures." msgstr "" +"Cette fonction est encore plus spéciale, et ne devrait être utilisée que " +"dans les procédures de compilation de Python." #: ../Doc/distutils/apiref.rst:1521 msgid "" @@ -2068,10 +2723,14 @@ msgid "" "for files, allowing them to be located in the build area rather than in an " "installed Python." msgstr "" +"Informe le module :mod:`distutils.sysconfig` qu'il est utilisé dans le cadre " +"du processus de compilation de Python. Cela change beaucoup d'emplacements " +"relatifs pour les fichiers, ce qui les place dans la zone de compilation " +"plutôt que dans un interpréteur Python installé." #: ../Doc/distutils/apiref.rst:1528 msgid ":mod:`distutils.text_file` --- The TextFile class" -msgstr "" +msgstr ":mod:`distutils.text_file` — La classe TextFile" #: ../Doc/distutils/apiref.rst:1534 msgid "" @@ -2079,6 +2738,9 @@ msgid "" "to text files that (optionally) takes care of stripping comments, ignoring " "blank lines, and joining lines with backslashes." msgstr "" +"Ce module fournit la classe :class:`TextFile`, qui donne une interface aux " +"fichiers texte qui s'occupe (optionnellement) de supprimer les commentaires, " +"d'ignorer les lignes vides et de joindre les lignes avec des antislash." #: ../Doc/distutils/apiref.rst:1541 msgid "" @@ -2089,6 +2751,14 @@ msgid "" "at end of line), strip leading and/or trailing whitespace. All of these are " "optional and independently controllable." msgstr "" +"Cette classe fournit un objet de type fichier qui se charge de tout ce que " +"vous voulez généralement faire lors du traitement d'un fichier texte ayant " +"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " +"est votre caractère de commentaire), passer les lignes vides, joindre des " +"lignes adjacentes en échappant la nouvelle ligne (les lignes se terminant " +"par une antislash), supprime les espace blancs avant et après le texte etc. " +"Toutes ces fonctions sont optionnelles et peuvent être commandées " +"indépendamment." #: ../Doc/distutils/apiref.rst:1548 msgid "" @@ -2097,6 +2767,10 @@ msgid "" "question spans multiple physical lines. Also provides :meth:`unreadline` " "for implementing line-at-a-time lookahead." msgstr "" +"La classe fournit une méthode :meth:`warn` pour pouvoir générer des messages " +"d'avertissement qui renvoie le numéro de ligne physique, même si la ligne " +"logique en question couvre plusieurs lignes physiques. Fournit également :" +"meth:`unreadline` pour implémenter un système prospectif ligne par ligne." #: ../Doc/distutils/apiref.rst:1553 msgid "" @@ -2108,16 +2782,26 @@ msgid "" "messages. If *file* is not supplied, :class:`TextFile` creates its own " "using the :func:`open` built-in function." msgstr "" +"Les instances de :class:`TextFile` sont créées soit avec *filename*, soit " +"avec *file* ou bien les deux. :exc:`RuntimeError` est levé si les deux " +"valent ``None``. *filename* doit être une chaîne de caractères, et *file* un " +"objet fichier (ou quelque chose qui fournit les méthodes :meth:`readline` " +"et :meth:`close`). Il est recommandé de fournir au moins *filename*, afin " +"que :class:`TextFile` puisse l'inclure dans les messages d'avertissement. " +"Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en " +"utilisant la fonction :func:`open`." #: ../Doc/distutils/apiref.rst:1561 msgid "" "The options are all boolean, and affect the values returned by :meth:" "`readline`" msgstr "" +"Les options sont toutes booléennes et affectent les valeurs renvoyées par :" +"meth:`readline`." #: ../Doc/distutils/apiref.rst:1566 msgid "option name" -msgstr "" +msgstr "Nom des options" #: ../Doc/distutils/apiref.rst:1566 msgid "default" @@ -2125,7 +2809,7 @@ msgstr "default" #: ../Doc/distutils/apiref.rst:1568 msgid "*strip_comments*" -msgstr "" +msgstr "*strip_comments*" #: ../Doc/distutils/apiref.rst:1568 msgid "" @@ -2140,11 +2824,12 @@ msgstr "*true*" #: ../Doc/distutils/apiref.rst:1574 msgid "*lstrip_ws*" -msgstr "" +msgstr "*lstrip_ws*" #: ../Doc/distutils/apiref.rst:1574 msgid "strip leading whitespace from each line before returning it" msgstr "" +"Efface les espaces blancs en début de chaque ligne avant de la renvoyer." #: ../Doc/distutils/apiref.rst:1574 ../Doc/distutils/apiref.rst:1592 #: ../Doc/distutils/apiref.rst:1603 @@ -2153,17 +2838,19 @@ msgstr "*false*" #: ../Doc/distutils/apiref.rst:1577 msgid "*rstrip_ws*" -msgstr "" +msgstr "*rstrip_ws*" #: ../Doc/distutils/apiref.rst:1577 msgid "" "strip trailing whitespace (including line terminator!) from each line before " "returning it." msgstr "" +"Efface les espaces blancs de fin de ligne (y compris le terminateur de " +"ligne !) de chaque ligne avant de la renvoyer." #: ../Doc/distutils/apiref.rst:1582 msgid "*skip_blanks*" -msgstr "" +msgstr "*skip_blanks*" #: ../Doc/distutils/apiref.rst:1582 msgid "" @@ -2172,10 +2859,14 @@ msgid "" "solely whitespace: these will \\*not\\* be skipped, even if *skip_blanks* is " "true.)" msgstr "" +"Ignore les lignes qui sont vides \\*après\\* la suppression des commentaires " +"et des espaces. (Si *lstrip_ws* et *rstrip_ws* sont tous les deux faux, " +"alors certaines lignes peuvent être composées uniquement d'espaces : elles " +"ne seront pas ignorées, même si *skip_blanks* est vrai." #: ../Doc/distutils/apiref.rst:1592 msgid "*join_lines*" -msgstr "" +msgstr "*join_lines*" #: ../Doc/distutils/apiref.rst:1592 msgid "" @@ -2184,16 +2875,23 @@ msgid "" "line; if N consecutive lines end with a backslash, then N+1 physical lines " "will be joined to form one logical line." msgstr "" +"Si sur la ligne, une antislash est le dernier caractère et que ce caractère " +"n'est pas le caractère de nouvelle ligne. Joint la ligne suivante pour " +"former une ligne logique. Si N lignes consécutives se terminent par une " +"antislash, alors N+1 lignes physiques seront liées pour former une seul " +"ligne logique." #: ../Doc/distutils/apiref.rst:1603 msgid "*collapse_join*" -msgstr "" +msgstr "*collapse_join*" #: ../Doc/distutils/apiref.rst:1603 msgid "" "strip leading whitespace from lines that are joined to their predecessor; " "only matters if ``(join_lines and not lstrip_ws)``" msgstr "" +"Supprime les espaces blancs des lignes qui sont jointes à leur prédécesseur. " +"n'est utile que que si ``(join_lines and not lstrip_ws)``." #: ../Doc/distutils/apiref.rst:1610 msgid "" @@ -2203,18 +2901,28 @@ msgid "" "for end-of-file: an empty string might just be a blank line (or an all-" "whitespace line), if *rstrip_ws* is true but *skip_blanks* is not." msgstr "" +"Notez que puisque *rstrip_ws* peut effacer la fin de la ligne, la sémantique " +"de :meth:`readline` doit être différente de celle de la méthode standard :" +"meth:`readline` des objets fichier ! En particulier, :meth:`readline` " +"renvoie ``None`` pour indiquer la fin du fichier: une chaîne vide peut être " +"juste une ligne blanche (ou une ligne entièrement blanche), si *rstrip_ws* " +"est vrai mais pas si *skip_blanks* est faux." #: ../Doc/distutils/apiref.rst:1619 msgid "" "Open a new file *filename*. This overrides any *file* or *filename* " "constructor arguments." msgstr "" +"Ouvre un nouveau fichier *filename*. Remplace tous les arguments du " +"constructeur *file* ou *filename*." #: ../Doc/distutils/apiref.rst:1625 msgid "" "Close the current file and forget everything we know about it (including the " "filename and the current line number)." msgstr "" +"Ferme le fichier courant et oublie toutes les informations connues à son " +"sujet (y compris le nom du fichier et le numéro de la ligne courante)." #: ../Doc/distutils/apiref.rst:1631 msgid "" @@ -2225,6 +2933,13 @@ msgid "" "may be a list or tuple to indicate a range of physical lines, or an integer " "for a single physical line." msgstr "" +"Affiche (vers *stderr*) un message d'avertissement lié à la ligne logique " +"courante dans le fichier courant. Si la ligne logique courante dans le " +"fichier s'étend sur plusieurs lignes physiques, l'avertissement se réfère à " +"une plage de lignes physiques, telles que ``\"lignes 3-5\"``. Si *line* est " +"fourni, il remplace le numéro de la ligne courante ; il peut s'agir d'une " +"liste ou d'un couple pour indiquer une plage de lignes physiques, ou d'un " +"entier pour une seule ligne physique." #: ../Doc/distutils/apiref.rst:1641 msgid "" @@ -2237,12 +2952,24 @@ msgid "" "end-of-file, since the empty string can occur if *rstrip_ws* is true but " "*strip_blanks* is not." msgstr "" +"Lit et renvoie une seule ligne logique à partir du fichier courant (ou à " +"partir d'un tampon interne si les lignes ont déjà été marqué comme non lue " +"avec :meth:`unreadline`). Si l'option *join_lines* est vraie, cela peut " +"impliquer la lecture de plusieurs lignes physiques concaténées en une seule " +"chaîne. Met à jour le numéro de la ligne courante. Appeler :meth:`warn` " +"après :meth:`readline` émet donc un avertissement sur la ou les lignes " +"physiques qui viennent d'être lues. Renvoie ``None`` à la fin du fichier, " +"puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si " +"*strip_blanks* est faux." #: ../Doc/distutils/apiref.rst:1652 msgid "" "Read and return the list of all logical lines remaining in the current file. " "This updates the current line number to the last line of the file." msgstr "" +"Lit et renvoie la liste de toutes les lignes logiques restant dans le " +"fichier courant. Met à jour le numéro de la ligne courante à la dernière " +"ligne du fichier." #: ../Doc/distutils/apiref.rst:1658 msgid "" @@ -2254,18 +2981,28 @@ msgid "" "meth:`unreadline` before a call to :meth:`readline`, the lines will be " "returned most in most recent first order." msgstr "" +"Insère la ligne *line* (une chaîne de caractères) dans un tampon interne qui " +"sera vérifié par les futurs appels de :meth:`readline`. Utile pour " +"implémenter un analyseur prospectif ligne par ligne. Notez que les lignes " +"qui sont \"non lues\" avec :meth:`unreadline` ne sont ensuite pas traitées " +"de nouveau (espace blancs, ou autre) quand elles sont lues avec :meth:" +"`readline`. Si plusieurs appels sont faits à :meth:`unreadline` avant un " +"appel à :meth:`readline`, les lignes sont renvoyées dans l'ordre de la plus " +"récente première à la plus ancienne." #: ../Doc/distutils/apiref.rst:1667 msgid ":mod:`distutils.version` --- Version number classes" -msgstr "" +msgstr ":mod:`distutils.version` — Classes de numéros de version" #: ../Doc/distutils/apiref.rst:1682 msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" msgstr "" +":mod:`distutils.cmd` --- Classe de base abstraite pour les commandes " +"*Distutils*" #: ../Doc/distutils/apiref.rst:1689 msgid "This module supplies the abstract base class :class:`Command`." -msgstr "" +msgstr "Ce module fournit la classe de base abstraite :class:`Command`." #: ../Doc/distutils/apiref.rst:1694 msgid "" @@ -2282,6 +3019,19 @@ msgid "" "options, is the :meth:`run` method, which must also be implemented by every " "command class." msgstr "" +"Classe de base abstraite pour définir les classes de commandes, les " +"\"ouvrières\" de *Distutils*. Une analogie utile pour les classes de " +"commandes est de les considérer comme des sous-routines avec des variables " +"locales appelées *options*. Les options sont déclarées dans :meth:" +"`initialiser_options` et définies (compte tenu de leur valeur finale) dans :" +"meth:`finalize_options`, qui doivent être définies pour chaque classe de " +"commande. La distinction entre les deux est nécessaire parce que les " +"valeurs des options peuvent venir de l'extérieur (ligne de commande, fichier " +"de configuration, ....), et toutes les options dépendantes d'autres options " +"doivent être calculées après que ces options externes aient été traitées --- " +"ce qui explique :meth:`finalize_options`. Le corps de la sous-routine, où " +"s'effectue tout le travail est basé sur les valeurs de ses options, est la " +"méthode :meth:`run`, qui doit être implémentée par chaque classe de commande." #: ../Doc/distutils/apiref.rst:1707 msgid "" @@ -2293,11 +3043,12 @@ msgstr "" #: ../Doc/distutils/apiref.rst:1712 msgid "Creating a new Distutils command" -msgstr "" +msgstr "Créer une nouvelle commande *Distutils*" #: ../Doc/distutils/apiref.rst:1714 msgid "This section outlines the steps to create a new Distutils command." msgstr "" +"Cette section décrit les étapes pour créer une nouvelle commande *Distutils*." #: ../Doc/distutils/apiref.rst:1716 msgid "" @@ -2311,10 +3062,22 @@ msgid "" "command/peel_banana.py`, then edit it so that it's implementing the class :" "class:`peel_banana`, a subclass of :class:`distutils.cmd.Command`." msgstr "" +"Une nouvelle commande doit résider dans un module du package :mod:`distutils." +"command`. Il existe un exemple de modèle dans ce répertoire nommé :file:" +"`command_template`. Copiez ce fichier dans un nouveau module portant le même " +"nom que la nouvelle commande que vous implémentez. Ce module doit " +"implémenter une classe portant le même nom que le module (et la commande). " +"Par exemple, pour créer la commande ``peel_banana`` (afin que les " +"utilisateurs puissent exécuter ``setup.py peel_banana``), vous devez copier " +"le fichier :file:`commande_template` dans :file:`distutils/command/" +"peel_banana.py`, puis l'éditer pour qu'il implémente la classe :class:" +"`peel_banana`, une sous-classe de la classe :class:`distutils.cmd.Command`." #: ../Doc/distutils/apiref.rst:1726 msgid "Subclasses of :class:`Command` must define the following methods." msgstr "" +"Les sous-classes de la classe :class:`Command` doivent définir les méthodes " +"suivantes." #: ../Doc/distutils/apiref.rst:1730 msgid "" @@ -2325,6 +3088,13 @@ msgid "" "`initialize_options` implementations are just a bunch of ``self.foo = None`` " "assignments." msgstr "" +"Définit des valeurs par défaut pour toutes les options que cette commande " +"gère. Notez que ces valeurs par défaut peuvent être remplacées par d'autres " +"commandes, par le script d'installation, par des fichiers de configuration " +"ou par la ligne de commande. Ce n'est donc pas l'endroit idéal pour " +"introduire des dépendances entre les options. En règle générale, les " +"méthodes suivantes :meth:`initialize_options` ne font que des assignations " +"de type ``self.truc = None``." #: ../Doc/distutils/apiref.rst:1739 msgid "" @@ -2335,6 +3105,14 @@ msgid "" "safe to set *foo* from *bar* as long as *foo* still has the same value it " "was assigned in :meth:`initialize_options`." msgstr "" +"Définit les valeurs finales pour toutes les options que cette commande gère. " +"Cette méthode doit toujours être appelée le plus tard possible, c'est-à-dire " +"après que toutes les affectations des options de la ligne de commande ou que " +"d'autres commandes ont été faites. C'est donc l'endroit idéal pour " +"introduire des dépendances d'options : si *truc* dépend de *machin*, alors " +"il est sûr de mettre *truc* de *machin* aussi longtemps que *truc* a " +"toujours la même valeur qui lui a été attribué par :meth:" +"`initialize_options`." #: ../Doc/distutils/apiref.rst:1749 msgid "" @@ -2344,6 +3122,12 @@ msgid "" "files, and finalized in :meth:`finalize_options`. All terminal output and " "filesystem interaction should be done by :meth:`run`." msgstr "" +"La raison d'être d'une commande : exécuter l'action programmée en étant " +"contrôlée par les options initialisées dans :meth:`initialize_options`, " +"personnalisées par d'autres commandes, par le script de configuration, par " +"la ligne de commande et les fichiers de configuration, puis finalisée dans :" +"meth:`finalize_options`. Toutes les interactions avec le système de fichiers " +"et la sortie du terminal doivent être effectuées par :meth:`run`." #: ../Doc/distutils/apiref.rst:1758 msgid "" @@ -2358,6 +3142,16 @@ msgid "" "have any C header files to install.) If *predicate* is ``None``, that " "command is always applicable." msgstr "" +"*sub_commands* formalise la notion de \"famille\" de commandes, par exemple. " +"``install`` est le parent des sous-commandes ``install_lib``, " +"``install_headers``, etc. Le parent d'une famille de commandes définit " +"*sub_commands* en tant qu'attribut de classe ; c'est une liste de couples " +"``(command_name, predicate)``, avec *command_name* le nom de la commande et " +"*predicate* une fonction, une chaîne ou ``None``. *predicate* est une " +"méthode de la commande parent qui détermine si la commande correspondante " +"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " +"n'est applicable que s'il existe des fichiers d'en-tête C à installer. Si " +"*predicate* est ``None``, cette commande est toujours effectuée." #: ../Doc/distutils/apiref.rst:1769 msgid "" @@ -2365,33 +3159,41 @@ msgid "" "predicates can be methods of the class, so they must already have been " "defined. The canonical example is the :command:`install` command." msgstr "" +"*sub_commands* est généralement défini à la *fin* d'une classe, car les " +"prédicats peuvent être des méthodes de la classe, ils doivent donc déjà " +"avoir été définis. L'exemple canonique est la commande :command:`install`." #: ../Doc/distutils/apiref.rst:1775 msgid ":mod:`distutils.command` --- Individual Distutils commands" -msgstr "" +msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles" #: ../Doc/distutils/apiref.rst:1786 msgid ":mod:`distutils.command.bdist` --- Build a binary installer" -msgstr "" +msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire" #: ../Doc/distutils/apiref.rst:1796 msgid "" ":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" msgstr "" +":mod:`distutils.command.bdist_packager` --- Classe de base abstraite pour " +"empaqueteurs" #: ../Doc/distutils/apiref.rst:1806 msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" msgstr "" +":mod:`distutils.command.bdist_dumb` --- Construit un installateur passif " +"(*dumb*)" #: ../Doc/distutils/apiref.rst:1816 msgid "" ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " "package" msgstr "" +":mod:`distutils.command.bdist_msi` --- Construit un installateur Microsoft" #: ../Doc/distutils/apiref.rst:1823 msgid "Builds a `Windows Installer`_ (.msi) binary package." -msgstr "" +msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)" #: ../Doc/distutils/apiref.rst:1827 msgid "" @@ -2400,39 +3202,53 @@ msgid "" "platforms, allows administrators to perform non-interactive installations, " "and allows installation through group policies." msgstr "" +"Dans la plupart des cas, l'installateur ``bdist_msi`` est un meilleur choix " +"que l'installateur ``bdist_wininst``, car il gère mieux les plates-formes " +"*Win64*, et permet en plus aux administrateurs d'effectuer des installations " +"non interactives ainsi que des installations via des stratégies de groupe." #: ../Doc/distutils/apiref.rst:1834 msgid "" ":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a " "Redhat RPM and SRPM" msgstr "" +":mod:`distutils.command.bdist_rpm` --- Construit une distribution binaire au " +"format Redhat RPM et SRPM" #: ../Doc/distutils/apiref.rst:1844 msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" msgstr "" +":mod:`distutils.command.bdist_wininst` --- Construit un installateur Windows" #: ../Doc/distutils/apiref.rst:1854 msgid ":mod:`distutils.command.sdist` --- Build a source distribution" -msgstr "" +msgstr ":mod:`distutils.command.sdist` — Construit une distribution source" #: ../Doc/distutils/apiref.rst:1864 msgid ":mod:`distutils.command.build` --- Build all files of a package" msgstr "" +":mod:`distutils.command.build` --- Construit tous les fichiers d'un paquet" #: ../Doc/distutils/apiref.rst:1874 msgid "" ":mod:`distutils.command.build_clib` --- Build any C libraries in a package" msgstr "" +":mod:`distutils.command.build_clib` --- Construit toutes les bibliothèques C " +"d'un paquet" #: ../Doc/distutils/apiref.rst:1884 msgid "" ":mod:`distutils.command.build_ext` --- Build any extensions in a package" msgstr "" +":mod:`distutils.command.build_ext` --- Construit toutes les extensions d'un " +"paquet" #: ../Doc/distutils/apiref.rst:1894 msgid "" ":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package" msgstr "" +":mod:`distutils.command.build_py` --- Construit les fichiers *.py/.pyc* d'un " +"paquet" #: ../Doc/distutils/apiref.rst:1904 msgid "" @@ -2441,23 +3257,30 @@ msgid "" "setup.py file for a distribution that is designed to run with both Python 2." "x and 3.x, add::" msgstr "" +"Implémentation alternative de *build_py* qui exécute également la " +"bibliothèque de conversion *2to3* sur chaque fichier *.py* qui va être " +"installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution " +"conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter : ::" #: ../Doc/distutils/apiref.rst:1914 msgid "to your setup.py, and later::" -msgstr "" +msgstr "à votre *setup.py* et, plus tard : ::" #: ../Doc/distutils/apiref.rst:1918 msgid "to the invocation of setup()." -msgstr "" +msgstr "à l'appel de *setup()*." #: ../Doc/distutils/apiref.rst:1922 msgid "" ":mod:`distutils.command.build_scripts` --- Build the scripts of a package" msgstr "" +":mod:`distutils.command.build_scripts` --- Construit les scripts d'un paquet" #: ../Doc/distutils/apiref.rst:1932 msgid ":mod:`distutils.command.clean` --- Clean a package build area" msgstr "" +":mod:`distutils.command.clean` --- Nettoie un dossier de compilation d'un " +"paquet" #: ../Doc/distutils/apiref.rst:1937 msgid "" @@ -2465,58 +3288,79 @@ msgid "" "subcommands, like intermediary compiled object files. With the ``--all`` " "option, the complete build directory will be removed." msgstr "" +"Cette commande supprime les fichiers temporaires créés par la commande :" +"command:`build` et ses sous-commandes, comme les fichiers objets compilés " +"intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera " +"supprimé." #: ../Doc/distutils/apiref.rst:1941 msgid "" "Extension modules built :ref:`in place ` will " "not be cleaned, as they are not in the build directory." msgstr "" +"Les modules d'extension construits :ref:`sur place ` ne seront pas effacés, car ils ne sont pas dans le répertoire " +"*build*." #: ../Doc/distutils/apiref.rst:1946 msgid ":mod:`distutils.command.config` --- Perform package configuration" msgstr "" +":mod:`distutils.command.config` --- Effectue la configuration d'un paquet" #: ../Doc/distutils/apiref.rst:1956 msgid ":mod:`distutils.command.install` --- Install a package" -msgstr "" +msgstr ":mod:`distutils.command.install` — Installe un paquet" #: ../Doc/distutils/apiref.rst:1966 msgid "" ":mod:`distutils.command.install_data` --- Install data files from a package" msgstr "" +":mod:`distutils.command.install_data` --- Installe les fichiers de données " +"d'un paquet" #: ../Doc/distutils/apiref.rst:1976 msgid "" ":mod:`distutils.command.install_headers` --- Install C/C++ header files from " "a package" msgstr "" +":mod:`distutils.command.install_headers` --- Installe les fichiers d'en-tête " +"C/C++ d'un paquet" #: ../Doc/distutils/apiref.rst:1986 msgid "" ":mod:`distutils.command.install_lib` --- Install library files from a package" msgstr "" +":mod:`distutils.command.install_lib` --- Installe les fichiers de " +"bibliothèque à partir d'un paquet" #: ../Doc/distutils/apiref.rst:1996 msgid "" ":mod:`distutils.command.install_scripts` --- Install script files from a " "package" msgstr "" +":mod:`distutils.command.install_scripts` --- Installe les fichiers de script " +"d'un paquet" #: ../Doc/distutils/apiref.rst:2006 msgid "" ":mod:`distutils.command.register` --- Register a module with the Python " "Package Index" msgstr "" +":mod:`distutils.command.register` --- Enregistre un module dans l'Index des " +"paquets Python (*Python Package Index* ou *PyPI* en anglais)" #: ../Doc/distutils/apiref.rst:2012 msgid "" "The ``register`` command registers the package with the Python Package " "Index. This is described in more detail in :pep:`301`." msgstr "" +"La commande ``register`` enregistre le paquet dans l'index des paquets " +"Python. Plus de détails à ce sujet dans la :pep:`301`." #: ../Doc/distutils/apiref.rst:2019 msgid ":mod:`distutils.command.check` --- Check the meta-data of a package" msgstr "" +":mod:`distutils.command.check` --- Vérifie les méta-données d'un paquet" #: ../Doc/distutils/apiref.rst:2025 msgid "" @@ -2524,3 +3368,6 @@ msgid "" "example, it verifies that all required meta-data are provided as the " "arguments passed to the :func:`setup` function." msgstr "" +"La commande ``check`` effectue des tests sur les méta-données d'un paquet. " +"Par exemple, elle vérifie que toutes les méta-données requises sont fournies " +"lorsque les arguments sont passés à la fonction :func:`setup`." diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 88d337e9d..78371ff9e 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -424,7 +424,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:177 msgid "or the :command:`bdist` command with the :option:`!--format` option::" -msgstr "" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::" #: ../Doc/distutils/builtdist.rst:181 msgid "" @@ -655,6 +655,14 @@ msgid "" "disable this file, you can pass the :option:`!--no-user-cfg` option to :file:" "`setup.py`." msgstr "" +"Fournir ces options en ligne de commande est fastidieux et sujet à des " +"erreurs, il est donc recommandé de les mettre dans un fichier de " +"configuration. :file:`setup.cfg`\\ --- voir la section :ref:`setup-config`. " +"Si vous distribuez ou empaquetez beaucoup de modules de distribution Python, " +"vous pourriez vouloir mettre les options qui s'appliquent à tous vos projets " +"dans votre fichier de configuration personnel Distutils (:file:`~/." +"pydistutils.cfg`). Si vous voulez temporairement désactiver ce fichier, vous " +"pouvez passer l'option :option:`!--no-user-cfg` à :file:`setup.py`." #: ../Doc/distutils/builtdist.rst:254 msgid "" @@ -704,6 +712,14 @@ msgid "" "winds up deep in the \"build tree,\" in a temporary directory created by :" "command:`bdist_rpm`.)" msgstr "" +"Si vous le souhaitez, vous pouvez séparer ces trois étapes. Vous pouvez " +"utiliser l'option :option:`!--spec-only` pour faire en sorte que la " +"commande :command:`bdist_rpm` crée juste le fichier :file:`.spec` et " +"quitte ; dans ce cas, le fichier :file:`.spec` sera écrit dans le dossier de " +"distribution (\"*distribution directory*\") --- normalement :file:`dist/`, " +"mais personnalisable avec l'option :option:`!--dist-dir`. (Normalement, le " +"fichier :file:`.spec` se retrouve profondément enfoui dans l'arborescence, " +"dans un dossier temporaire créé par la commande :command:`bdist_rpm`.)" #: ../Doc/distutils/builtdist.rst:297 msgid "Creating Windows Installers" @@ -733,7 +749,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:310 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" -msgstr "" +msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" #: ../Doc/distutils/builtdist.rst:314 msgid "" @@ -769,6 +785,11 @@ msgid "" "`bdist_wininst` command with the :option:`!--no-target-compile` and/or the :" "option:`!--no-target-optimize` option." msgstr "" +"L'installeur essaiera de compiler les modules purs en :term:`bytecode` après " +"installation sur le système cible dans les modes normaux et optimisé. Si " +"vous ne voulez pas que ce soit fait, vous pouvez lancer la commande :command:" +"`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :" +"option:`!--no-target-optimize`." #: ../Doc/distutils/builtdist.rst:331 msgid "" @@ -776,6 +797,9 @@ msgid "" "it is run, but you can also supply your own 152x261 bitmap which must be a " "Windows :file:`.bmp` file with the :option:`!--bitmap` option." msgstr "" +"Par défaut l'installateur affichera le super logo \"Python Powered\", mais " +"vous pouvez aussi donnez votre propre bitmap de 152x261 qui doit être un " +"fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`." #: ../Doc/distutils/builtdist.rst:335 msgid "" @@ -784,6 +808,10 @@ msgid "" "distribution and the version number. This can be changed to another text by " "using the :option:`!--title` option." msgstr "" +"L'installateur affichera aussi un grand titre en arrière plan de la fenêtre " +"quand exécuté, qui est composé du nom de votre distribution et du numéro de " +"version. Cela peut être changé avec un autre texte avec l'option :option:`!--" +"title`." #: ../Doc/distutils/builtdist.rst:340 msgid "" @@ -791,6 +819,9 @@ msgid "" "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " "option." msgstr "" +"Le fichier d'installation sera écrit dans le dossier de distribution " +"(\"*distribution directory*\") --- normalement :file:`dist/`, mais " +"personnalisable avec l'option :option:`!--dist-dir`." #: ../Doc/distutils/builtdist.rst:346 msgid "Cross-compiling on Windows" @@ -876,6 +907,9 @@ msgid "" "specified, and the script filename must also be listed in the scripts " "argument to the setup function." msgstr "" +"Depuis Python 2.3, un script post-installation peut être spécifié avec " +"l'option :option:`!--install-script`. Le nom du script doit être spécifié et " +"présent dans l'argument \"scripts\" de la fonction ``setup``." #: ../Doc/distutils/builtdist.rst:390 msgid "" @@ -884,6 +918,11 @@ msgid "" "again at uninstallation time before the files are removed with ``argv[1]`` " "set to :option:`!-remove`." msgstr "" +"Ce script doit être lancé au moment de l'installation sur le système cible " +"après que tous les fichiers ont été copiés, avec la valeur de ``argv[1]`` " +"à :option:`!-install`, et une autre fois durant la désinstallation avant " +"que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-" +"remove`." #: ../Doc/distutils/builtdist.rst:395 msgid "" @@ -973,3 +1012,9 @@ msgid "" "Python was installed for all users) and 'force' (meaning always prompt for " "elevation)." msgstr "" +"Depuis Python 2.6, *bdist_wininst* accepte une option :option:`!--user-" +"access-control`. Sa valeur par défaut est 'none' (Ce qui veut dire que aucun " +"UAC est fait), et les autres valeurs valides sont 'auto' (ce qui veut dire " +"qu'il faut demander une élévation de privilèges UAC si Python a été installé " +"pour tous les utilisateurs) et 'force' (Toujours demander une élévation de " +"privilèges)." diff --git a/distutils/extending.po b/distutils/extending.po index ce51ad708..b6c509bbd 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/distutils/extending.rst:5 msgid "Extending Distutils" -msgstr "" +msgstr "Extension de Distutils" #: ../Doc/distutils/extending.rst:7 msgid "" @@ -29,6 +29,11 @@ msgid "" "while replacements for existing commands may be made to modify details of " "how the command operates on a package." msgstr "" +"*Distutils* peut être étendu de multiples façons. La plupart des extensions " +"sont soit des nouvelles commandes soit des remplacements de commandes " +"existantes. De nouvelles commandes pourraient par exemple servir à " +"l'empaquetage pour des plateformes spécifiques tandis que des remplacements " +"peuvent modifier certains aspects des commandes existantes." #: ../Doc/distutils/extending.rst:13 msgid "" @@ -37,6 +42,9 @@ msgid "" "that should be copied into packages in addition to :file:`.py` files as a " "convenience." msgstr "" +"La plupart des extensions de *distutils* sont faites dans le script :file:" +"`setup.py`. La plupart ajoutent simplement quelques extensions de fichiers " +"qui devraient être copiés dans le paquet en plus des fichiers :file:`.py`." #: ../Doc/distutils/extending.rst:18 msgid "" @@ -46,10 +54,16 @@ msgid "" "indirectly, directly subclassing the command they are replacing. Commands " "are required to derive from :class:`Command`." msgstr "" +"La plupart des implémentations des commandes *distutils* sont des sous-" +"classes de :class:`distutils.cmd.Command`. Les nouvelles commandes peuvent " +"hériter directement de :class:`Command`, alors que les remplacements " +"dérivent souvent de :class:`Command` indirectement, directement sous-" +"classant la commande qu'ils remplacent. Les commandes doivent dériver de la " +"classe :class:`Command`." #: ../Doc/distutils/extending.rst:33 msgid "Integrating new commands" -msgstr "" +msgstr "Intégrer de nouvelles commandes" #: ../Doc/distutils/extending.rst:35 msgid "" @@ -58,6 +72,11 @@ msgid "" "features in distutils itself, and wait for (and require) a version of Python " "that provides that support. This is really hard for many reasons." msgstr "" +"Il y a différentes façons d’intégrer de nouvelles implémentations de " +"commandes dans *distutils*. La plus difficile est de faire pression pour " +"inclure une nouvelle fonctionnalité dans *distutils* même, et d’attendre (et " +"demander) une version de Python l'implémentant. C'est très difficile pour " +"beaucoup de raisons." #: ../Doc/distutils/extending.rst:40 msgid "" @@ -65,6 +84,10 @@ msgid "" "include the new implementations with your :file:`setup.py` script, and cause " "the :func:`distutils.core.setup` function use them::" msgstr "" +"La plus commune, et possiblement la plus raisonnable pour la plupart des " +"cas, est d'inclure les nouvelles implémentations dans votre fichier :file:" +"`setup.py`, et de faire en sorte que la fonction :func:`distutils.core." +"setup` les utilise ::" #: ../Doc/distutils/extending.rst:55 msgid "" @@ -72,6 +95,10 @@ msgid "" "use a particular package, as everyone interested in the package will need to " "have the new command implementation." msgstr "" +"Cette approche est la plus valable si les nouvelles implémentations doivent " +"être utilisées pour utiliser un paquet particulier, vu que toutes les " +"personnes intéressées par le paquet devront avoir ces nouvelles " +"implémentations de commandes." #: ../Doc/distutils/extending.rst:59 msgid "" @@ -90,6 +117,23 @@ msgid "" "it to an empty string on the command line causes the default to be used. " "This should never be set in a configuration file provided with a package." msgstr "" +"Depuis Python 2.4, une troisième option est disponible, prévue pour " +"permettre d'ajouter de nouvelles commandes compatibles avec le script " +"existant :file:`setup.py` sans avoir besoin de modifier l'installation " +"Python. C'est fait pour que les extensions tierces puissent rester " +"compatibles avec d'autres systèmes d'empaquetage, mais les commandes peuvent " +"être utilisées pour tout ce que les commandes de *distutils* peuvent faire. " +"Une nouvelle option de configuration, ``command_packages`` (option shell :" +"option:`!--command-packages`), peut être utilisée pour spécifier des " +"recherches de paquets additionnels pour des modules qui implémentent des " +"commandes. Comme toutes les options *distutils*, cela peut être spécifié en " +"ligne de commande ou dans un fichier de configuration. Cette option peut " +"être fixée dans la section ``[global]`` d'un fichier de configuration, ou " +"avant n'importe quelle commande dans un shell. Si définie dans un fichier de " +"configuration, elle peut être écrasée depuis la ligne de commande. Mettre " +"une chaine de caractères vide en valeur de cette option forcera " +"l'utilisation de la valeur par défaut. Cela ne devrait jamais être fixé dans " +"un fichier de configuration donné avec un paquet." #: ../Doc/distutils/extending.rst:74 msgid "" @@ -105,10 +149,23 @@ msgid "" "could be implemented by the class :class:`distcmds.bdist_openpkg." "bdist_openpkg` or :class:`buildcmds.bdist_openpkg.bdist_openpkg`." msgstr "" +"Cette nouvelle option peut être utilisée pour ajouter n'importe quel nombre " +"de paquet à la liste des paquets recherchés pour les implémentations de " +"commandes ; plusieurs noms de paquets doivent être séparés par des virgules. " +"Quand non spécifié, la recherche est seulement faite dans le paquet :mod:" +"`distutils.command`. Cependant, lorsque :file:`setup.py` est lancé avec " +"l'option ``--command-packages distcmds,buildcmds``, les paquets :mod:" +"`distutils.command`, :mod:`distcmds`, et :mod:`buildcmds` seront cherchés " +"dans cet ordre. Il est attendu des nouvelles commandes d’être implémentées " +"en modules du même nom que la commande en utilisant des classes partageant " +"le même nom. Comme dans l'exemple shell donné ci-dessus, la commande :" +"command:`bdist_openpkg` pourrait être implémentée avec la classe :class:" +"`distcmds.bdist_openpkg.bdist_openpkg` ou :class:`buildcmds.bdist_openpkg." +"bdist_openpkg`." #: ../Doc/distutils/extending.rst:88 msgid "Adding new distribution types" -msgstr "" +msgstr "Ajout de nouveaux types de distribution" #: ../Doc/distutils/extending.rst:90 msgid "" @@ -119,3 +176,9 @@ msgid "" "file itself. In dry-run mode, pairs should still be added to represent what " "would have been created." msgstr "" +"Les commandes qui créent des distributions (fichiers dans le dossier :file:" +"`dist/`) doivent ajouter la paire ``(command, filename)`` à ``self." +"distribution.dist_files`` pour que :command:`upload` puisse publier sur " +"PyPI. Le nom de fichier (*filename*) dans la paire ne contiens pas de " +"chemin, juste le nom du fichier lui-même. En mode *dry-run*, les paires " +"doivent toujours être ajoutées pour représenter ce qui aurait été créé." diff --git a/distutils/introduction.po b/distutils/introduction.po index 0dba419d2..0130d7909 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -31,7 +31,7 @@ msgstr "" #: ../Doc/distutils/introduction.rst:16 msgid "Concepts & Terminology" -msgstr "" +msgstr "Concepts et Terminologie" #: ../Doc/distutils/introduction.rst:18 msgid "" diff --git a/faq/design.po b/faq/design.po index 97d241863..fccbabf65 100644 --- a/faq/design.po +++ b/faq/design.po @@ -689,6 +689,11 @@ msgid "" "full Python language. For compiling to Java you can consider `VOC `_." msgstr "" +"`Cython `_ compile une version modifiée de Python avec " +"des annotations optionnelles en extensions C. `Nuitka `_ est un nouveau compilateur de Python vers C++, visant à supporter le " +"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC " +"`_." #: ../Doc/faq/design.rst:377 msgid "How does Python manage memory?" @@ -1049,6 +1054,11 @@ msgid "" "by accident. It also invalidates an important invariant of dictionaries: " "every value in ``d.keys()`` is usable as a key of the dictionary." msgstr "" +"Autoriser les listes en tant que clés, mais indiquer à l'utilisateur de ne " +"pas les modifier. Cela permettrait un ensemble de bogues difficiles à suivre " +"dans les programmes lorsque vous avez oublié ou modifié une liste par " +"accident. Cela casse également un impératif important des dictionnaires : " +"chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire." #: ../Doc/faq/design.rst:542 msgid "" @@ -1059,6 +1069,14 @@ msgid "" "read-only -- and again, self-referential objects could cause an infinite " "loop." msgstr "" +"Marquer les listes comme étant en lecture seule une fois qu'elles sont " +"utilisées comme clé de dictionnaire. Le problème est que ce n'est pas " +"seulement l'objet de niveau supérieur qui pourrait changer sa valeur; vous " +"pourriez utiliser un tuple contenant une liste comme clé. Utiliser " +"n'importe quoi comme une clé dans un dictionnaire nécessiterait de marquer " +"tous les objets accessibles à partir de là comme en lecture seule -- et " +"encore une fois, les objets se faisant référence pourraient provoquer une " +"boucle infinie." #: ../Doc/faq/design.rst:548 msgid "" @@ -1069,6 +1087,13 @@ msgid "" "dictionary (or other hash based structure), remain fixed while the object is " "in the dictionary (or other structure). ::" msgstr "" +"Il y a un truc pour contourner ceci si vous en avez besoin, mais utilisez-le " +"à vos risques et périls. Vous pouvez encapsuler une structure mutable à " +"l'intérieur d'une instance de classe qui a à la fois une méthode :meth:" +"`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " +"de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " +"(ou une autre structure basée sur le hachage), restent fixes pendant que " +"l'objet est dans le dictionnaire (ou une autre structure). ::" #: ../Doc/faq/design.rst:572 msgid "" @@ -1076,6 +1101,9 @@ msgid "" "members of the list may be unhashable and also by the possibility of " "arithmetic overflow." msgstr "" +"Notez que le calcul de hachage peut être compliqué car il est possible que " +"certains membres de la liste peuvent être impossible à hacher et aussi par " +"la possibilité de débordement arithmétique." #: ../Doc/faq/design.rst:576 msgid "" @@ -1085,6 +1113,11 @@ msgid "" "not. If you fail to meet these restrictions dictionaries and other hash " "based structures will misbehave." msgstr "" +"De plus, il faut toujours que, si ``o1 == o2`` (par exemple ``o1.__eq__(o2) " +"vaut True``) alors ``hash(o1) == hash(o2)`` (par exemple, ``o1.__hash__() == " +"o2.__hash__()``), que l’objet se trouve dans un dictionnaire ou pas. Si vous " +"ne remplissez pas ces conditions, les dictionnaires et autres structures " +"basées sur le hachage se comporteront mal." #: ../Doc/faq/design.rst:581 msgid "" @@ -1093,10 +1126,15 @@ msgid "" "you are prepared to think hard about the requirements and the consequences " "of not meeting them correctly. Consider yourself warned." msgstr "" +"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un " +"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les " +"anomalies. Ne faites pas cela à moins que vous n’ayez pensé aux potentielles " +"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " +"prévenus." #: ../Doc/faq/design.rst:588 msgid "Why doesn't list.sort() return the sorted list?" -msgstr "" +msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" #: ../Doc/faq/design.rst:590 msgid "" @@ -1107,6 +1145,12 @@ msgid "" "when you need a sorted copy but also need to keep the unsorted version " "around." msgstr "" +"Dans les situations où la performance est importante, faire une copie de la " +"liste juste pour la trier serait un gaspillage. Par conséquent, :meth:`list." +"sort` trie la liste en place. Afin de vous le rappeler, il ne retourne pas " +"la liste triée. De cette façon, vous ne serez pas dupés en écrasant " +"accidentellement une liste lorsque vous avez besoin d’une copie triée, mais " +"vous devrez également garder sous la main la version non triée." #: ../Doc/faq/design.rst:596 msgid "" @@ -1115,10 +1159,16 @@ msgid "" "it and returns it. For example, here's how to iterate over the keys of a " "dictionary in sorted order::" msgstr "" +"Si vous souhaitez retourner une nouvelle liste, utilisez plutôt la fonction " +"native :func:`sorted`. Cette fonction crée une nouvelle liste à partir d’un " +"itérable fourni, la trie et la retourne. Par exemple, voici comment itérer " +"sur les clefs d’un dictionnaire dans l’ordre trié ::" #: ../Doc/faq/design.rst:606 msgid "How do you specify and enforce an interface spec in Python?" msgstr "" +"Comment spécifiez-vous et appliquez-vous une spécification d’interface en " +"Python ?" #: ../Doc/faq/design.rst:608 msgid "" @@ -1127,6 +1177,10 @@ msgid "" "module. Many feel that compile-time enforcement of interface specifications " "helps in the construction of large programs." msgstr "" +"Une spécification d'interface pour un module fourni par des langages tels " +"que C++ et Java décrit les prototypes pour les méthodes et les fonctions du " +"module. Beaucoup estiment que la vérification au moment de la compilation " +"des spécifications d'interface aide à la construction de grands programmes." #: ../Doc/faq/design.rst:613 msgid "" @@ -1137,6 +1191,13 @@ msgid "" "`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:" "`~collections.abc.MutableMapping`." msgstr "" +"Python 2.6 ajoute un module :mod:`abc` qui vous permet de définir des " +"classes de base abstraites (ABCs). Vous pouvez ensuite utiliser :func:" +"`isinstance` et :func:`issubclass` pour vérifier si une instance ou une " +"classe implémente une ABC particulière. Le module :mod:`collections.abc` " +"définit un ensemble d'ABCs utiles telles que :class:`~collections.abc." +"Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc." +"MutableMapping`." #: ../Doc/faq/design.rst:620 msgid "" @@ -1144,6 +1205,10 @@ msgid "" "obtained by an appropriate test discipline for components. There is also a " "tool, PyChecker, which can be used to find problems due to subclassing." msgstr "" +"Pour Python, la plupart des avantages des spécifications d'interface peuvent " +"être obtenus par une discipline de test appropriée pour les composants. Il " +"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des " +"problèmes d'héritage." #: ../Doc/faq/design.rst:624 msgid "" @@ -1156,6 +1221,15 @@ msgid "" "be used to construct exhaustive test suites that exercise every line of code " "in a module." msgstr "" +"Une bonne suite de tests pour un module peut à la fois fournir un test de " +"non régression et servir de spécification d'interface de module ainsi qu'un " +"ensemble d'exemples. De nombreux modules Python peuvent être exécutés en " +"tant que script pour fournir un simple « auto-test ». Même les modules qui " +"utilisent des interfaces externes complexes peuvent souvent être testés " +"isolément à l'aide d'émulations triviales embryonnaires de l'interface " +"externe. Les modules :mod:`doctest` et :mod:`UnitTest` ou des frameworks de " +"test tiers peuvent être utilisés pour construire des suites de tests " +"exhaustives qui éprouvent chaque ligne de code dans un module." #: ../Doc/faq/design.rst:632 msgid "" @@ -1167,6 +1241,15 @@ msgid "" "test that your :meth:`append` implementation will actually do this " "correctly, but it's trivial to check this property in a test suite." msgstr "" +"Une discipline de test appropriée peut aider à construire des applications " +"complexes de grande taille en Python aussi bien que le feraient des " +"spécifications d'interface. En fait, c'est peut être même mieux parce qu'une " +"spécification d'interface ne peut pas tester certaines propriétés d'un " +"programme. Par exemple, la méthode :meth:`Append` est censée ajouter de " +"nouveaux éléments à la fin d'une liste « sur place » ; une spécification " +"d'interface ne peut pas tester que votre implémentation de :meth:`append` va " +"réellement le faire correctement, mais il est trivial de vérifier cette " +"propriété dans une suite de tests." #: ../Doc/faq/design.rst:640 msgid "" @@ -1176,6 +1259,12 @@ msgid "" "before you write any of the actual code. Of course Python allows you to be " "sloppy and not write test cases at all." msgstr "" +"L'écriture des suites de tests est très utile, et vous voudrez peut-être " +"concevoir votre code de manière à le rendre facilement testable. Une " +"technique de plus en plus populaire, le développement dirigé par les tests, " +"requiert d'écrire d'abord des éléments de la suite de tests, avant d'écrire " +"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas " +"écrire de test du tout." #: ../Doc/faq/design.rst:648 msgid "Why is there no goto?" @@ -1206,6 +1295,8 @@ msgstr "" #: ../Doc/faq/design.rst:670 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" +"Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas " +"se terminer par un *backslash* ?" #: ../Doc/faq/design.rst:672 msgid "" @@ -1213,6 +1304,9 @@ msgid "" "unpaired backslash at the end escapes the closing quote character, leaving " "an unterminated string." msgstr "" +"Plus précisément, elles ne peuvent pas se terminer par un nombre impair de " +"*backslashes* : le *backslash* non appairé à la fin échappe le caractère de " +"guillemet final, laissant une chaîne non terminée." #: ../Doc/faq/design.rst:676 msgid "" @@ -1223,17 +1317,30 @@ msgid "" "pass on the string quote character by escaping it with a backslash. These " "rules work well when r-strings are used for their intended purpose." msgstr "" +"Les chaînes brutes ont été conçues pour faciliter la création de données " +"pour les processeurs de texte (principalement les moteurs d'expressions " +"régulières) qui veulent faire leur propre traitement d'échappement " +"d'*antislashes*. Ces processeurs considèrent un *antislash* de fin non-" +"appairé comme une erreur, alors les chaînes brutes ne le permettent pas. En " +"retour, elles vous permettent de transmettre le caractère de citation de la " +"chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien " +"lorsque les chaînes brutes sont utilisées pour leur but premier." #: ../Doc/faq/design.rst:683 msgid "" "If you're trying to build Windows pathnames, note that all Windows system " "calls accept forward slashes too::" msgstr "" +"Si vous essayez de construire des chemins d'accès Windows, notez que tous " +"les appels système Windows acceptent également les *slashes* \"classiques" +"\" ::" #: ../Doc/faq/design.rst:688 msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" +"Si vous essayez de construire un chemin d'accès pour une commande DOS, " +"essayez par exemple l'un de ceux-là ::" #: ../Doc/faq/design.rst:696 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" @@ -1284,7 +1391,7 @@ msgstr "" #: ../Doc/faq/design.rst:719 msgid "For instance, take the following incomplete snippet::" -msgstr "" +msgstr "Prenons par exemple l'extrait incomplet suivant ::" #: ../Doc/faq/design.rst:725 msgid "" @@ -1294,6 +1401,11 @@ msgid "" "variable named \"x\", will it be used inside the with block? As you see, " "the dynamic nature of Python makes such choices much harder." msgstr "" +"L'extrait suppose que \"a\" doit avoir un attribut membre appelé \"x\". " +"Néanmoins, il n'y a rien en Python qui en informe l'interpréteur. Que se " +"passe-t-il si \"a\" est, disons, un entier ? Si une variable globale nommée " +"\"x\" existe, sera-t-elle utilisée dans le bloc ``with`` ? Comme vous " +"voyez, la nature dynamique du Python rend ces choix beaucoup plus difficiles." #: ../Doc/faq/design.rst:731 msgid "" @@ -1301,10 +1413,13 @@ msgid "" "code volume) can, however, easily be achieved in Python by assignment. " "Instead of::" msgstr "" +"L'avantage principal de ``with`` et des fonctionnalités de langage " +"similaires (réduction du volume de code) peut, cependant, être facilement " +"réalisé en Python par assignation. Au lieu de ::" #: ../Doc/faq/design.rst:738 msgid "write this::" -msgstr "" +msgstr "écrivez ceci ::" #: ../Doc/faq/design.rst:745 msgid "" @@ -1312,20 +1427,27 @@ msgid "" "bindings are resolved at run-time in Python, and the second version only " "needs to perform the resolution once." msgstr "" +"Cela a également pour effet secondaire d'augmenter la vitesse d'exécution " +"car les liaisons de noms sont résolues au moment de l'exécution en Python, " +"et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois." #: ../Doc/faq/design.rst:751 msgid "Why are colons required for the if/while/def/class statements?" msgstr "" +"Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/" +"while/def/class`` ?" #: ../Doc/faq/design.rst:753 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" msgstr "" +"Le deux-points est principalement nécessaires pour améliorer la lisibilité " +"(l'un des résultats du langage expérimental ABC). Considérez ceci ::" #: ../Doc/faq/design.rst:759 msgid "versus ::" -msgstr "" +msgstr "versus ::" #: ../Doc/faq/design.rst:764 msgid "" @@ -1333,6 +1455,9 @@ msgid "" "colon sets off the example in this FAQ answer; it's a standard usage in " "English." msgstr "" +"Remarquez comment le deuxième est un peu plus facile à lire. Remarquez " +"aussi comment un deux-points introduit l'exemple dans cette réponse à la " +"FAQ ; c'est un usage standard en anglais." #: ../Doc/faq/design.rst:767 msgid "" @@ -1341,16 +1466,23 @@ msgid "" "needs to be increased instead of having to do a more elaborate parsing of " "the program text." msgstr "" +"Une autre raison mineure est que les deux-points facilitent la tâche des " +"éditeurs avec coloration syntaxique ; ils peuvent rechercher les deux-points " +"pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire " +"une analyse plus élaborée du texte du programme." #: ../Doc/faq/design.rst:773 msgid "Why does Python allow commas at the end of lists and tuples?" msgstr "" +"Pourquoi Python permet-il les virgules à la fin des listes et des tuples ?" #: ../Doc/faq/design.rst:775 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" msgstr "" +"Python vous permet d'ajouter une virgule à la fin des listes, des tuples et " +"des dictionnaires ::" #: ../Doc/faq/design.rst:786 msgid "There are several reasons to allow this." @@ -1363,12 +1495,19 @@ msgid "" "remember to add a comma to the previous line. The lines can also be " "reordered without creating a syntax error." msgstr "" +"Lorsque vous avez une valeur littérale pour une liste, un tuple ou un " +"dictionnaire réparti sur plusieurs lignes, il est plus facile d'ajouter plus " +"d'éléments parce que vous n'avez pas besoin de vous rappeler d'ajouter une " +"virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées " +"sans créer une erreur de syntaxe." #: ../Doc/faq/design.rst:793 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" msgstr "" +"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " +"à diagnostiquer, par exemple ::" #: ../Doc/faq/design.rst:803 msgid "" @@ -1376,12 +1515,16 @@ msgid "" "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " "of error." msgstr "" +"Cette liste a l'air d'avoir quatre éléments, mais elle en contient en fait " +"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " +"permet d'éviter cette source d'erreur." #: ../Doc/faq/design.rst:806 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." msgstr "" +"Permettre la virgule de fin peut également faciliter la génération de code." #~ msgid "Practical answer:" #~ msgstr "Réponse concrète :" diff --git a/faq/windows.po b/faq/windows.po index f8fc32484..69d454c3f 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -491,6 +491,8 @@ msgstr "" #: ../Doc/faq/windows.rst:322 msgid "How do I check for a keypress without blocking?" msgstr "" +"Comment puis-je vérifier de manière non bloquante qu'une touche a été " +"pressée ?" #: ../Doc/faq/windows.rst:324 msgid "" @@ -498,6 +500,10 @@ msgid "" "module. It defines a function ``kbhit()`` which checks whether a keyboard " "hit is present, and ``getch()`` which gets one character without echoing it." msgstr "" +"Utilisez le module ``msvcrt``. C'est une extension standard spécifique à " +"Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " +"touche s'est produite, et ``getch()`` qui récupère le caractère sans " +"l'afficher." #: ../Doc/faq/windows.rst:330 msgid "How do I emulate os.kill() in Windows?" diff --git a/howto/clinic.po b/howto/clinic.po index 2a8db29b9..e3c2a475a 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -779,6 +779,9 @@ msgid "" "above it. You should write the opening (and closing) curly braces for the " "function, and the implementation inside." msgstr "" +"Argument Clinic génère une ligne de contrôle et la fonction prototype juste " +"au dessus. Vous devez écrire les accolades d'ouverture (et de fermeture) " +"pour la fonction, et l’implémentation à l'intérieur." #: ../Doc/howto/clinic.rst:522 msgid "" @@ -835,27 +838,31 @@ msgstr "" #: ../Doc/howto/clinic.rst:552 msgid "Advanced Topics" -msgstr "" +msgstr "Sujets avancés" #: ../Doc/howto/clinic.rst:554 msgid "" "Now that you've had some experience working with Argument Clinic, it's time " "for some advanced topics." msgstr "" +"Maintenant que vous avez un peu d'expérience avec Argument Clinic, c'est le " +"moment pour des sujets avancés." #: ../Doc/howto/clinic.rst:559 msgid "Symbolic default values" -msgstr "" +msgstr "Valeurs par défaut" #: ../Doc/howto/clinic.rst:561 msgid "" "The default value you provide for a parameter can't be any arbitrary " "expression. Currently the following are explicitly supported:" msgstr "" +"La valeur par défaut que vous fournissez pour un paramètre ne peut pas être " +"n'importe quelle expression. Actuellement, ce qui est géré :" #: ../Doc/howto/clinic.rst:564 msgid "Numeric constants (integer and float)" -msgstr "" +msgstr "Constantes numériques (entier ou nombre flottant)" #: ../Doc/howto/clinic.rst:565 msgid "String constants" @@ -863,25 +870,31 @@ msgstr "Chaînes constantes" #: ../Doc/howto/clinic.rst:566 msgid "``True``, ``False``, and ``None``" -msgstr "" +msgstr "``True``, ``False`` et ``None``" #: ../Doc/howto/clinic.rst:567 msgid "" "Simple symbolic constants like ``sys.maxsize``, which must start with the " "name of the module" msgstr "" +"Constantes symboliques simples comme ``sys.maxsize``, qui doivent commencer " +"par le nom du module" #: ../Doc/howto/clinic.rst:570 msgid "" "In case you're curious, this is implemented in ``from_builtin()`` in ``Lib/" "inspect.py``." msgstr "" +"Si par curiosité vous voulez lire l'implémentation, c'est ``from_builtin()`` " +"dans ``Lib/inspect.py``." #: ../Doc/howto/clinic.rst:573 msgid "" "(In the future, this may need to get even more elaborate, to allow full " "expressions like ``CONSTANT - 1``.)" msgstr "" +"(Dans le futur, il est possible que l'on ait besoin de l'améliorer, pour " +"autoriser les expressions complètes comme ``CONSTANT - 1``.)" #: ../Doc/howto/clinic.rst:578 msgid "Renaming the C functions and variables generated by Argument Clinic" @@ -904,12 +917,16 @@ msgid "" "For example, if we wanted to rename the C function names generated for " "``pickle.Pickler.dump``, it'd look like this::" msgstr "" +"Par exemple, si nous voulons renommer les noms de fonction C générés pour " +"``pickle.Pickler.dump``, ça ressemblerait à ça :" #: ../Doc/howto/clinic.rst:596 msgid "" "The base function would now be named ``pickler_dumper()``, and the impl " "function would now be named ``pickler_dumper_impl()``." msgstr "" +"La fonction de base sera maintenant nommée ``pickler_dumper()``, et la " +"fonction *impl* serait maintenant nommé ``pickler_dumper_impl()``." #: ../Doc/howto/clinic.rst:600 msgid "" @@ -918,6 +935,10 @@ msgid "" "Clinic allows you to give a parameter different names in Python and in C, " "using the same ``\"as\"`` syntax::" msgstr "" +"De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " +"paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " +"Argument Clinic vous permet de donner à un paramètre des noms différents en " +"Python et en C." #: ../Doc/howto/clinic.rst:614 msgid "" @@ -927,11 +948,11 @@ msgstr "" #: ../Doc/howto/clinic.rst:617 msgid "You can use this to rename the ``self`` parameter too!" -msgstr "" +msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" #: ../Doc/howto/clinic.rst:621 msgid "Converting functions using PyArg_UnpackTuple" -msgstr "" +msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" #: ../Doc/howto/clinic.rst:623 msgid "" @@ -947,10 +968,12 @@ msgid "" "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " "will change soon." msgstr "" +"Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais cela " +"va bientôt changer." #: ../Doc/howto/clinic.rst:633 msgid "Optional Groups" -msgstr "" +msgstr "Groupes optionnels" #: ../Doc/howto/clinic.rst:635 msgid "" @@ -1029,6 +1052,8 @@ msgid "" "If there are no required arguments, the optional groups will behave as if " "they're to the right of the required arguments." msgstr "" +"S'il n'y a pas d'arguments requis, les groupes optionnels se comportent " +"comme s'ils étaient à droite des arguments requis." #: ../Doc/howto/clinic.rst:716 msgid "" @@ -1045,6 +1070,8 @@ msgid "" "Optional groups are *only* intended for legacy code. Please do not use " "optional groups for new code." msgstr "" +"Les groupes optionnels sont *seulement* destinés au code hérité. Ne les " +"utilisez pas dans du nouveau code." #: ../Doc/howto/clinic.rst:726 msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" diff --git a/howto/cporting.po b/howto/cporting.po index b9cfe63ab..ca5c7b828 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -44,7 +44,7 @@ msgstr "" #: ../Doc/howto/cporting.rst:23 msgid "Conditional compilation" -msgstr "" +msgstr "Compilation conditionnelle" #: ../Doc/howto/cporting.rst:25 msgid "" diff --git a/howto/functional.po b/howto/functional.po index 3bea8a11b..fa6074ed2 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/functional.rst:3 msgid "Functional Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation fonctionnelle" #: ../Doc/howto/functional.rst:0 msgid "Author" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index 16e797ecc..ae8d5efcd 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/ipaddress.rst:9 msgid "An introduction to the ipaddress module" -msgstr "" +msgstr "Introduction au module ``ipaddress``" #: ../Doc/howto/ipaddress.rst:0 msgid "author" @@ -27,15 +27,15 @@ msgstr "auteur" #: ../Doc/howto/ipaddress.rst:11 msgid "Peter Moody" -msgstr "" +msgstr "Peter Moody" #: ../Doc/howto/ipaddress.rst:12 msgid "Nick Coghlan" -msgstr "" +msgstr "Nick Coghlan" #: ../Doc/howto/ipaddress.rst:None msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/howto/ipaddress.rst:16 msgid "" @@ -45,10 +45,15 @@ msgid "" "an overview of how :mod:`ipaddress` represents IP network addressing " "concepts." msgstr "" +"Ce document vise à fournir une introduction rapide au module :mod:" +"`ipaddress`. Il est destiné aux utilisateurs qui ne sont pas familiers avec " +"la terminologie des réseaux IP, mais il peut aussi être utile aux ingénieurs " +"réseaux qui cherchent un aperçu de la représentation des concepts " +"d'adressage IP avec le module :mod:`ipaddress`." #: ../Doc/howto/ipaddress.rst:24 msgid "Creating Address/Network/Interface objects" -msgstr "" +msgstr "Créer un objet Adresse/Réseau/Interface" #: ../Doc/howto/ipaddress.rst:26 msgid "" @@ -56,10 +61,14 @@ msgid "" "addresses, the first thing you'll want to do is create some objects. You " "can use :mod:`ipaddress` to create objects from strings and integers." msgstr "" +"Vu que :mod:`ipaddress` est un module pour inspecter et manipuler des " +"adresses IP, la première chose que vous voudrez faire est de créer quelques " +"objets. Vous pouvez utiliser :mod:`ipaddress` pour créer des objets à partir " +"de chaînes de caractères et d'entiers." #: ../Doc/howto/ipaddress.rst:32 msgid "A Note on IP Versions" -msgstr "" +msgstr "Note sur les versions d'IP" #: ../Doc/howto/ipaddress.rst:34 msgid "" @@ -70,6 +79,13 @@ msgid "" "addresses to handle the needs of the whole world, especially given the " "increasing number of devices with direct connections to the internet." msgstr "" +"Pour les lecteurs qui ne sont pas particulièrement familiers avec " +"l'adressage IP il est important de savoir que le protocole IP est " +"actuellement en évolution de la version 4 du protocole vers la version 6. " +"Cette transition est largement due au fait que la version 4 du protocole ne " +"fournit pas assez d'adresses pour gérer les besoins du monde entier, " +"particulièrement à cause de la croissance des périphériques directement " +"connectés à Internet." #: ../Doc/howto/ipaddress.rst:41 msgid "" @@ -78,10 +94,14 @@ msgid "" "least be aware that these two versions exist, and it will sometimes be " "necessary to force the use of one version or the other." msgstr "" +"Expliquer les détails des différences entre les deux versions du protocole " +"est au-delà du périmètre de cette introduction, mais les lecteurs doivent au " +"moins être avertis de l'existence de ces deux versions et qu'il sera " +"nécessaire de forcer l'utilisation d'une version ou de l'autre." #: ../Doc/howto/ipaddress.rst:48 msgid "IP Host Addresses" -msgstr "" +msgstr "Adresses IP des hôtes" #: ../Doc/howto/ipaddress.rst:50 msgid "" @@ -91,12 +111,21 @@ msgid "" "determines whether to create an IPv4 or IPv6 address based on the passed in " "value:" msgstr "" +"Les adresses, souvent dénommées \"adresses hôtes\" sont les unités les plus " +"basiques quand on travaille avec l'adressage IP. Le moyen le plus simple de " +"créer des adresses est d'utiliser la fonction de fabrication :func:" +"`ipaddress.ip_address` qui va automatiquement déterminer quoi créer entre " +"une adresse IPv4 ou une adresse IPv6 en fonction de la valeur qui est " +"transmise :" #: ../Doc/howto/ipaddress.rst:61 msgid "" "Addresses can also be created directly from integers. Values that will fit " "within 32 bits are assumed to be IPv4 addresses::" msgstr "" +"Les adresses peuvent être créées directement depuis des entiers. Les valeurs " +"qui correspondent à des entiers 32 bits sont assimilées à des adresses " +"IPv4 ::" #: ../Doc/howto/ipaddress.rst:69 msgid "" @@ -104,10 +133,13 @@ msgid "" "invoked directly. This is particularly useful to force creation of IPv6 " "addresses for small integers::" msgstr "" +"Pour forcer l'utilisation d'IPv4 ou d'IPv6, la classe appropriée peut être " +"invoquée directement. C'est particulièrement utile pour forcer la création " +"d'adresse IPv6 pour de petits entiers ::" #: ../Doc/howto/ipaddress.rst:82 msgid "Defining Networks" -msgstr "" +msgstr "Définir des réseaux" #: ../Doc/howto/ipaddress.rst:84 msgid "" @@ -120,12 +152,23 @@ msgid "" "whether or not an address is part of the network and the network address " "defines the expected value of those bits." msgstr "" +"Les adresses hôtes sont souvent regroupées dans des réseaux IP, donc :mod:" +"`ipaddress` fournit un moyen de créer, d'inspecter et de manipuler les " +"définitions des réseaux. Les objets correspondants aux réseaux IP sont " +"construits à partir de chaînes de caractères qui définissent le périmètre " +"des adresses hôtes qui font partie de ce réseau. La forme la plus simple de " +"cette information est un couple \"adresse réseau/préfixe réseau\" , où le " +"préfixe définit le nombre de bits de tête qui sont comparés pour déterminer " +"si l'adresse fait ou ne fait pas partie de ce réseau et l'adresse réseau " +"définit la valeur attendue pour ces bits." #: ../Doc/howto/ipaddress.rst:93 msgid "" "As for addresses, a factory function is provided that determines the correct " "IP version automatically::" msgstr "" +"Tout comme pour les adresses, une fonction de fabrication est disponible et " +"détermine automatiquement la version correcte d'IP ::" #: ../Doc/howto/ipaddress.rst:101 msgid "" @@ -135,6 +178,12 @@ msgid "" "commonly used to describe network interfaces of a computer on a given " "network and are described further in the next section." msgstr "" +"Il est interdit pour des objets réseaux d'avoir des bits affectés à leurs " +"hôtes mis à 1. Ainsi la chaine de caractères ``192.0.2.1/24`` ne peut " +"définir un réseau. Ces objets réseaux sont aussi appelés objets d'interfaces " +"car la notation ``adresse ip / réseau`` est couramment utilisée pour décrire " +"les interfaces réseau d'un ordinateur sur un réseau donné (nous les " +"détaillons plus loin dans cette section)." #: ../Doc/howto/ipaddress.rst:107 msgid "" @@ -143,6 +192,10 @@ msgid "" "bits instead be coerced to zero, the flag ``strict=False`` can be passed to " "the constructor::" msgstr "" +"Par défaut, tenter de créer un objet réseau avec des bits d'hôtes mis à 1 " +"lève une :exc:`ValueError`. Pour demander que les bits supplémentaires " +"soient plutôt forcés à zéro, l'attribut ``strict=False`` peut être passé au " +"constructeur ::" #: ../Doc/howto/ipaddress.rst:119 msgid "" @@ -151,16 +204,24 @@ msgid "" "network is considered to contain only the single address identified by the " "integer, so the network prefix includes the entire network address::" msgstr "" +"Alors que la forme textuelle offre davantage de flexibilité les réseaux " +"peuvent aussi être définis avec des entiers, tout comme les adresses hôtes. " +"Dans ce cas le réseau est considéré comme contenant uniquement l'adresse " +"identifiée par l'entier, donc le préfixe réseau inclut l'adresse du réseau " +"complet ::" #: ../Doc/howto/ipaddress.rst:129 msgid "" "As with addresses, creation of a particular kind of network can be forced by " "calling the class constructor directly instead of using the factory function." msgstr "" +"Comme avec les adresses, la création d'un type de réseau particulier peut " +"être forcée en appelant directement le constructeur de la classe plutôt que " +"d'utiliser la fonction de fabrication." #: ../Doc/howto/ipaddress.rst:135 msgid "Host Interfaces" -msgstr "" +msgstr "Interfaces des hôtes" #: ../Doc/howto/ipaddress.rst:137 msgid "" @@ -174,16 +235,29 @@ msgid "" "defining network objects, except that the address portion isn't constrained " "to being a network address." msgstr "" +"Comme mentionné ci-dessus, si vous avez besoin de décrire une adresse sur un " +"réseau particulier, ni l'adresse ni les classes réseaux ne sont suffisantes. " +"Les notations comme ``192.0.2.1/24`` sont généralement utilisées par les " +"ingénieurs réseaux et les personnes qui écrivent des outils pour les pare-" +"feu et les routeurs comme raccourci pour \" l'hôte ``192.0.2.1`` sur le " +"réseau ``192.0.2.0/24``\", par conséquent, :mod:`ipaddress` fournit un " +"ensemble de classes hybrides qui associent une adresse à un réseau " +"particulier. L'interface pour la création est identique à celle pour la " +"définition des objets réseaux, excepté que la partie adresse n'est pas " +"contrainte d'être une adresse réseau." #: ../Doc/howto/ipaddress.rst:152 msgid "" "Integer inputs are accepted (as with networks), and use of a particular IP " "version can be forced by calling the relevant constructor directly." msgstr "" +"Les entiers sont acceptés en entrée (comme avec les réseaux) et " +"l'utilisation d'une version d'IP peut être forcée en appelant directement le " +"constructeur adapté." #: ../Doc/howto/ipaddress.rst:157 msgid "Inspecting Address/Network/Interface Objects" -msgstr "" +msgstr "Inspecter les objets Address/Network/Interface" #: ../Doc/howto/ipaddress.rst:159 msgid "" @@ -191,32 +265,38 @@ msgid "" "Interface) object, so you probably want to get information about it. :mod:" "`ipaddress` tries to make doing this easy and intuitive." msgstr "" +"Vous vous êtes donné la peine de créer un objet (adresse|réseau|" +"interface)IPv(4|6), donc vous voudrez probablement des informations sur " +"celui-ci. :mod:`ipaddress` essaie de rendre ceci facile et intuitif." #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "" +msgstr "Extraire la version du protocole IP" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" -msgstr "" +msgstr "Obtenir le réseau à partir de l'interface ::" #: ../Doc/howto/ipaddress.rst:181 msgid "Finding out how many individual addresses are in a network::" -msgstr "" +msgstr "Trouver combien d'adresses individuelles sont dans un réseau ::" #: ../Doc/howto/ipaddress.rst:190 msgid "Iterating through the \"usable\" addresses on a network::" -msgstr "" +msgstr "Itération sur chacune des adresses \"utilisables\" d'un réseau ::" #: ../Doc/howto/ipaddress.rst:205 msgid "" "Obtaining the netmask (i.e. set bits corresponding to the network prefix) or " "the hostmask (any bits that are not part of the netmask):" msgstr "" +"Obtenir le masque réseau (définit les bits correspondant au préfixe du " +"réseau) ou le masque de l'hôte (tous les bits qui ne sont pas dans le masque " +"du réseau) :" #: ../Doc/howto/ipaddress.rst:220 msgid "Exploding or compressing the address::" -msgstr "" +msgstr "Éclater ou compresser l'adresse ::" #: ../Doc/howto/ipaddress.rst:231 msgid "" @@ -225,26 +305,37 @@ msgid "" "easily ensure the most concise or most verbose form is used for IPv6 " "addresses while still correctly handling IPv4 addresses." msgstr "" +"Alors que IPv4 ne gère pas l'éclatement ou la compression, les objets " +"associés fournissent toujours les propriétés adaptées pour que du code, le " +"plus neutre possible vis-à-vis de la version, puisse facilement s'assurer " +"que la forme la plus concise ou la plus verbeuse utilisée pour des adresses " +"IPv6 va aussi fonctionner pour gérer des adresses IPv4." #: ../Doc/howto/ipaddress.rst:238 msgid "Networks as lists of Addresses" -msgstr "" +msgstr "Réseaux en tant que listes d'adresses" #: ../Doc/howto/ipaddress.rst:240 msgid "" "It's sometimes useful to treat networks as lists. This means it is possible " "to index them like this::" msgstr "" +"Il est parfois utile de traiter les réseaux en tant que listes. Cela " +"signifie qu'il est possible de les indexer comme ça ::" #: ../Doc/howto/ipaddress.rst:253 msgid "" "It also means that network objects lend themselves to using the list " "membership test syntax like this::" msgstr "" +"Cela signifie aussi que les objets réseaux se prêtent bien à l'utilisation " +"de la syntaxe suivante pour le test d'appartenance à la liste ::" #: ../Doc/howto/ipaddress.rst:259 msgid "Containment testing is done efficiently based on the network prefix::" msgstr "" +"En se basant sur le préfixe réseau on peut efficacement tester " +"l'appartenance ::" #: ../Doc/howto/ipaddress.rst:269 msgid "Comparisons" @@ -255,16 +346,20 @@ msgid "" ":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare " "objects, where it makes sense::" msgstr "" +":mod:`ipaddress` fournit des moyens simples et intuitifs (du moins nous " +"l'espérons) pour comparer les objets, quand cela fait sens ::" #: ../Doc/howto/ipaddress.rst:277 msgid "" "A :exc:`TypeError` exception is raised if you try to compare objects of " "different versions or different types." msgstr "" +"Une exception :exc:`TypeError` est levée si vous tentez de comparer des " +"objets de différentes versions ou de types différents." #: ../Doc/howto/ipaddress.rst:282 msgid "Using IP Addresses with other modules" -msgstr "" +msgstr "Utiliser des adresse IP avec d'autre modules" #: ../Doc/howto/ipaddress.rst:284 msgid "" @@ -272,10 +367,14 @@ msgid "" "accept objects from this module directly. Instead, they must be coerced to " "an integer or string that the other module will accept::" msgstr "" +"Les autres modules qui utilisent des adresses IP (comme :mod:`socket`) " +"n'acceptent généralement pas les objets de ce module directement. Au lieu de " +"cela, ils doivent être convertis en entiers ou en chaînes de caractères que " +"l'autre module va accepter ::" #: ../Doc/howto/ipaddress.rst:296 msgid "Getting more detail when instance creation fails" -msgstr "" +msgstr "Obtenir plus de détails lors de l'échec de la création de l'instance" #: ../Doc/howto/ipaddress.rst:298 msgid "" @@ -286,6 +385,13 @@ msgid "" "because it's necessary to know whether the value is *supposed* to be IPv4 or " "IPv6 in order to provide more detail on why it has been rejected." msgstr "" +"Lors de la création des objets Adresse/Réseau/Interface en utilisant les " +"fonctions de fabrication agnostiques à la version, n'importe quelle erreur " +"va être signalée en tant que :exc:`ValueError` avec un message d'erreur " +"générique qui dit simplement que la valeur entrée n'a pas été reconnue en " +"tant qu'objet de ce type. Pour fournir plus de détails sur la cause du " +"rejet, il faudrait reconnaitre si la valeur est *supposée* être une adresse " +"IPv4 ou IPv6." #: ../Doc/howto/ipaddress.rst:305 msgid "" @@ -295,12 +401,19 @@ msgid "" "`ipaddress.NetmaskValueError` to indicate exactly which part of the " "definition failed to parse correctly." msgstr "" +"Pour gérer les cas d'usage où il est utile d'avoir accès à ces détails, les " +"constructeurs individuels des classes lèvent actuellement les sous-classes " +"de :exc:`ValueError`, :exc:`ipaddress.AddressValueError` et :exc:`ipaddress." +"NetmaskValueError` pour indiquer précisément quelle partie de la définition " +"n'a pas pu être correctement traitée." #: ../Doc/howto/ipaddress.rst:311 msgid "" "The error messages are significantly more detailed when using the class " "constructors directly. For example::" msgstr "" +"Les messages d'erreur sont particulièrement plus détaillés lors de " +"l'utilisation directe du constructeur. Par exemple ::" #: ../Doc/howto/ipaddress.rst:332 msgid "" @@ -308,3 +421,6 @@ msgid "" "their parent class, so if you're not concerned with the particular type of " "error, you can still write code like the following::" msgstr "" +"Cependant, les exceptions spécifiques des deux modules ont :exc:`ValueError` " +"comme classe parent ; donc si vous n'êtes pas intéressé par le type " +"particulier d'erreur remontée, vous pouvez écrire votre code comme suit ::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index a46e781c9..7340ccc0d 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -27,7 +27,7 @@ msgstr "Auteur" #: ../Doc/howto/logging-cookbook.rst:7 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging-cookbook.rst:9 msgid "" @@ -729,27 +729,27 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:1320 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/howto/logging-cookbook.rst:1320 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1323 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/howto/logging-cookbook.rst:1323 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1326 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/howto/logging-cookbook.rst:1326 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: ../Doc/howto/logging-cookbook.rst:1328 msgid ":ref:`A basic logging tutorial `" diff --git a/howto/logging.po b/howto/logging.po index 644e5c6ae..13cce2803 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" -msgstr "" +msgstr "Tutoriel sur la journalisation" #: ../Doc/howto/logging.rst:0 msgid "Author" @@ -27,11 +27,11 @@ msgstr "Auteur" #: ../Doc/howto/logging.rst:5 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging.rst:12 msgid "Basic Logging Tutorial" -msgstr "" +msgstr "Les bases de l'utilisation du module `logging`" #: ../Doc/howto/logging.rst:14 msgid "" @@ -43,10 +43,19 @@ msgid "" "which the developer ascribes to the event; the importance can also be called " "the *level* or *severity*." msgstr "" +"La journalisation (*logging* en anglais) est une façon de suivre les " +"événements qui ont lieu durant le fonctionnement d'un logiciel. Le " +"développeur du logiciel ajoute des appels à l'outil de journalisation dans " +"son code pour indiquer que certains événements ont eu lieu. Un événement est " +"décrit par un message descriptif, qui peut éventuellement contenir des " +"données variables (c'est-à-dire qui peuvent être différentes pour chaque " +"occurrence de l'événement). Un événement a aussi une importance que le " +"développeur lui attribue ; cette importance peut aussi être appelée *niveau* " +"ou *sévérité*." #: ../Doc/howto/logging.rst:23 msgid "When to use logging" -msgstr "" +msgstr "Quand utiliser `logging`" #: ../Doc/howto/logging.rst:25 msgid "" @@ -55,19 +64,26 @@ msgid "" "func:`critical`. To determine when to use logging, see the table below, " "which states, for each of a set of common tasks, the best tool to use for it." msgstr "" +"Le module *logging* fournit un ensemble de fonctions de commodités pour une " +"utilisation simple du module. Ce sont les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`. Pour déterminer " +"quand employer la journalisation, voyez la table ci-dessous, qui vous " +"indique, pour chaque tâche parmi les plus communes, l'outil approprié." #: ../Doc/howto/logging.rst:31 msgid "Task you want to perform" -msgstr "" +msgstr "Tâche que vous souhaitez mener" #: ../Doc/howto/logging.rst:31 msgid "The best tool for the task" -msgstr "" +msgstr "Le meilleur outil pour cette tâche" #: ../Doc/howto/logging.rst:33 msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" +"Affiche la sortie console d'un script en ligne de commande ou d'un programme " +"lors de son utilisation ordinaire" #: ../Doc/howto/logging.rst:33 msgid ":func:`print`" @@ -78,48 +94,65 @@ msgid "" "Report events that occur during normal operation of a program (e.g. for " "status monitoring or fault investigation)" msgstr "" +"Rapporter des évènements qui ont lieu au cours du fonctionnement normal d'un " +"programme (par exemple pour suivre un statut ou examiner des " +"dysfonctionnements)" #: ../Doc/howto/logging.rst:37 msgid "" ":func:`logging.info` (or :func:`logging.debug` for very detailed output for " "diagnostic purposes)" msgstr "" +":func:`logging.info` (ou :func:`logging.debug` pour une sortie très " +"détaillée à visée diagnostique)" #: ../Doc/howto/logging.rst:42 msgid "Issue a warning regarding a particular runtime event" msgstr "" +"Émettre un avertissement (*warning* en anglais) en relation avec un " +"évènement particulier au cours du fonctionnement d’un programme" #: ../Doc/howto/logging.rst:42 msgid "" ":func:`warnings.warn` in library code if the issue is avoidable and the " "client application should be modified to eliminate the warning" msgstr "" +":func:`warnings.warn` dans le code de la bibliothèque si le problème est " +"évitable et l'application cliente doit être modifiée pour éliminer cet " +"avertissement" #: ../Doc/howto/logging.rst:47 msgid "" ":func:`logging.warning` if there is nothing the client application can do " "about the situation, but the event should still be noted" msgstr "" +":func:`logging.warning` si l'application cliente ne peut rien faire pour " +"corriger la situation mais l'évènement devrait quand même être noté" #: ../Doc/howto/logging.rst:52 msgid "Report an error regarding a particular runtime event" msgstr "" +"Rapporter une erreur lors d'un évènement particulier en cours d'exécution" #: ../Doc/howto/logging.rst:52 msgid "Raise an exception" -msgstr "" +msgstr "Lever une exception" #: ../Doc/howto/logging.rst:55 msgid "" "Report suppression of an error without raising an exception (e.g. error " "handler in a long-running server process)" msgstr "" +"Rapporter la suppression d'une erreur sans lever d'exception (par exemple " +"pour la gestion d'erreur d'un processus de long terme sur un serveur)" #: ../Doc/howto/logging.rst:55 msgid "" ":func:`logging.error`, :func:`logging.exception` or :func:`logging.critical` " "as appropriate for the specific error and application domain" msgstr "" +":func:`logging.error`, :func:`logging.exception` ou :func:`logging." +"critical`, au mieux, selon l'erreur spécifique et le domaine d'application" #: ../Doc/howto/logging.rst:62 msgid "" @@ -127,14 +160,17 @@ msgid "" "they are used to track. The standard levels and their applicability are " "described below (in increasing order of severity):" msgstr "" +"Les fonctions de journalisation sont nommées d'après le niveau ou la " +"sévérité des évènements qu'elles suivent. Les niveaux standards et leurs " +"applications sont décrits ci-dessous (par ordre croissant de sévérité) :" #: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:846 msgid "Level" -msgstr "" +msgstr "Niveau" #: ../Doc/howto/logging.rst:69 msgid "When it's used" -msgstr "" +msgstr "Quand il est utilisé" #: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:856 msgid "``DEBUG``" @@ -144,6 +180,8 @@ msgstr "``DEBUG``" msgid "" "Detailed information, typically of interest only when diagnosing problems." msgstr "" +"Information détaillée, intéressante seulement lorsqu'on diagnostique un " +"problème." #: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:854 msgid "``INFO``" @@ -151,7 +189,7 @@ msgstr "``INFO``" #: ../Doc/howto/logging.rst:74 msgid "Confirmation that things are working as expected." -msgstr "" +msgstr "Confirmation que tout fonctionne comme prévu." #: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:852 msgid "``WARNING``" @@ -163,6 +201,9 @@ msgid "" "problem in the near future (e.g. 'disk space low'). The software is still " "working as expected." msgstr "" +"L'indication que quelque chose d'inattendu a eu lieu, ou de la possibilité " +"d'un problème dans un futur proche (par exemple « espace disque faible »). " +"Le logiciel fonctionne encore normalement." #: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:850 msgid "``ERROR``" @@ -173,6 +214,8 @@ msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." msgstr "" +"Du fait d'un problème plus sérieux, le logiciel n'a pas été capable de " +"réaliser une tâche." #: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:848 msgid "``CRITICAL``" @@ -183,6 +226,8 @@ msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." msgstr "" +"Une erreur sérieuse, indiquant que le programme lui-même pourrait être " +"incapable de continuer à fonctionner." #: ../Doc/howto/logging.rst:89 msgid "" @@ -190,6 +235,9 @@ msgid "" "and above will be tracked, unless the logging package is configured to do " "otherwise." msgstr "" +"Le niveau par défaut est ``WARNING``, ce qui signifie que seuls les " +"évènements de ce niveau et au-dessus sont suivis, sauf si le paquet " +"*logging* est configuré pour faire autrement." #: ../Doc/howto/logging.rst:93 msgid "" @@ -197,18 +245,22 @@ msgid "" "of handling tracked events is to print them to the console. Another common " "way is to write them to a disk file." msgstr "" +"Les évènements suivis peuvent être gérés de différentes façons. La manière " +"la plus simple est de les afficher dans la console. Une autre méthode " +"commune est de les écrire dans un fichier." #: ../Doc/howto/logging.rst:101 msgid "A simple example" -msgstr "" +msgstr "Un exemple simple" #: ../Doc/howto/logging.rst:103 msgid "A very simple example is::" -msgstr "" +msgstr "Un exemple très simple est : ::" #: ../Doc/howto/logging.rst:109 msgid "If you type these lines into a script and run it, you'll see:" msgstr "" +"Si vous entrez ces lignes dans un script que vous exécutez, vous verrez :" #: ../Doc/howto/logging.rst:115 msgid "" @@ -219,10 +271,17 @@ msgid "" "explained later. The actual output can be formatted quite flexibly if you " "need that; formatting options will also be explained later." msgstr "" +"affiché dans la console. Le message ``INFO`` n'apparaît pas parce que le " +"niveau par défaut est ``WARNING``. Le message affiché inclut l'indication du " +"niveau et la description de l'évènement fournie dans l'appel à *logging*, " +"ici « Watch out! ». Ne vous préoccupez pas de la partie « *root* » pour le " +"moment : nous détaillerons ce point plus bas. La sortie elle-même peut être " +"formatée de multiples manières si besoin. Les options de formatage seront " +"aussi expliquées plus bas." #: ../Doc/howto/logging.rst:124 msgid "Logging to a file" -msgstr "" +msgstr "Enregistrer les évènements dans un fichier" #: ../Doc/howto/logging.rst:126 msgid "" @@ -231,12 +290,18 @@ msgid "" "Python interpreter, and don't just continue from the session described " "above::" msgstr "" +"Il est très commun d'enregistrer les évènements dans un fichier, c'est donc " +"ce que nous allons regarder maintenant. Il faut essayer ce qui suit avec un " +"interpréteur Python nouvellement démarré, ne poursuivez pas la session " +"commencée ci-dessus ::" #: ../Doc/howto/logging.rst:136 msgid "" "And now if we open the file and look at what we have, we should find the log " "messages:" msgstr "" +"Maintenant, si nous ouvrons le fichier et lisons ce qui s'y trouve, on " +"trouvera les messages de log :" #: ../Doc/howto/logging.rst:145 msgid "" @@ -244,17 +309,24 @@ msgid "" "threshold for tracking. In this case, because we set the threshold to " "``DEBUG``, all of the messages were printed." msgstr "" +"Cet exemple montre aussi comment on peut régler le niveau de journalisation " +"qui sert de seuil pour le suivi. Dans ce cas, comme nous avons réglé le " +"seuil à ``DEBUG``, tous les messages ont été écrits." #: ../Doc/howto/logging.rst:149 msgid "" "If you want to set the logging level from a command-line option such as:" msgstr "" +"Si vous souhaitez régler le niveau de journalisation à partir d'une option " +"de la ligne de commande comme :" #: ../Doc/howto/logging.rst:155 msgid "" "and you have the value of the parameter passed for ``--log`` in some " "variable *loglevel*, you can use::" msgstr "" +"et que vous passez ensuite la valeur du paramètre donné à l'option `--log` " +"dans une variable *loglevel*, vous pouvez utiliser : ::" #: ../Doc/howto/logging.rst:160 msgid "" @@ -262,6 +334,9 @@ msgid "" "argument. You may want to error check any user input value, perhaps as in " "the following example::" msgstr "" +"de manière à obtenir la valeur à passer à :func:`basicConfig` à travers " +"l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune " +"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous : ::" #: ../Doc/howto/logging.rst:172 msgid "" @@ -270,6 +345,10 @@ msgid "" "configuration facility, only the first call will actually do anything: " "subsequent calls are effectively no-ops." msgstr "" +"L'appel à :func:`basicConfig` doit être fait *avant* un appel à :func:" +"`debug`, :func:`info`, etc. Comme l'objectif est d'avoir un outil de " +"configuration simple et d'usage unique, seul le premier appel aura un effet, " +"les appels suivants ne font rien." #: ../Doc/howto/logging.rst:177 msgid "" @@ -278,26 +357,36 @@ msgid "" "afresh, not remembering the messages from earlier runs, you can specify the " "*filemode* argument, by changing the call in the above example to::" msgstr "" +"Si vous exécutez le script plusieurs fois, les messages des exécutions " +"successives sont ajoutés au fichier *example.log*. Si vous voulez que chaque " +"exécution reprenne un fichier vierge, sans conserver les messages des " +"exécutions précédentes, vous pouvez spécifier l'argument *filemode*, en " +"changeant l'appel à l'exemple précédent par ::" #: ../Doc/howto/logging.rst:184 msgid "" "The output will be the same as before, but the log file is no longer " "appended to, so the messages from earlier runs are lost." msgstr "" +"La sortie est identique à la précédente, mais le texte n'est plus ajouté au " +"fichier de log, donc les messages des exécutions précédentes sont perdus." #: ../Doc/howto/logging.rst:189 msgid "Logging from multiple modules" -msgstr "" +msgstr "Employer *logging* à partir de différents modules" #: ../Doc/howto/logging.rst:191 msgid "" "If your program consists of multiple modules, here's an example of how you " "could organize logging in it::" msgstr "" +"Si votre programme est composé de plusieurs modules, voici une façon " +"d'organiser\n" +"l'outil de journalisation : ::" #: ../Doc/howto/logging.rst:215 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" -msgstr "" +msgstr "Si vous exécutez *myapp.py*, vous verrez ceci dans *myapp.log* :" #: ../Doc/howto/logging.rst:223 msgid "" @@ -309,20 +398,30 @@ msgid "" "to refer to the documentation beyond the tutorial level -- see :ref:`logging-" "advanced-tutorial`." msgstr "" +"ce qui est normalement ce à quoi vous vous attendiez. Vous pouvez " +"généraliser cela à plusieurs modules, en employant le motif de *mylib.py*. " +"Remarquez qu'avec cette méthode simple, vous ne pourrez pas savoir, en " +"lisant le fichier de log, *d'où* viennent les messages dans votre " +"application, sauf dans la description de l'évènement. Si vous voulez suivre " +"la localisation des messages, référerez-vous à la documentation avancée :ref:" +"`logging-advanced-tutorial`." #: ../Doc/howto/logging.rst:233 msgid "Logging variable data" -msgstr "" +msgstr "Journalisation de données variables" #: ../Doc/howto/logging.rst:235 msgid "" "To log variable data, use a format string for the event description message " "and append the variable data as arguments. For example::" msgstr "" +"Pour enregistrer des données variables, utilisez une chaîne formatée dans le " +"message de description de l'évènement et ajoutez les données variables comme " +"argument. Par exemple : ::" #: ../Doc/howto/logging.rst:241 msgid "will display:" -msgstr "" +msgstr "affichera :" #: ../Doc/howto/logging.rst:247 msgid "" @@ -333,20 +432,29 @@ msgid "" "options *are* supported, but exploring them is outside the scope of this " "tutorial: see :ref:`formatting-styles` for more information." msgstr "" +"Comme vous pouvez le voir, l'inclusion des données variables dans le message " +"de description de l'évènement emploie le vieux style de formatage avec %. " +"C'est pour assurer la rétrocompatibilité : le module `logging` est antérieur " +"aux nouvelles options de formatage comme :meth:`str.format` ou :class:" +"`string.Template`. Ces nouvelles options de formatage *sont* gérées, mais " +"leur exploration sort du cadre de ce tutoriel, voyez :ref:`formatting-" +"styles` pour plus d'information." #: ../Doc/howto/logging.rst:256 msgid "Changing the format of displayed messages" -msgstr "" +msgstr "Modifier le format du message affiché" #: ../Doc/howto/logging.rst:258 msgid "" "To change the format which is used to display messages, you need to specify " "the format you want to use::" msgstr "" +"Pour changer le format utilisé pour afficher le message, vous devez préciser " +"le format que vous souhaitez employer : ::" #: ../Doc/howto/logging.rst:267 msgid "which would print:" -msgstr "" +msgstr "ce qui affiche :" #: ../Doc/howto/logging.rst:275 msgid "" @@ -357,20 +465,29 @@ msgid "" "including variable data) and perhaps to display when the event occurred. " "This is described in the next section." msgstr "" +"Notez que le `root` qui apparaissait dans les exemples précédents a disparu. " +"Pour voir l'ensemble des éléments qui peuvent apparaître dans la chaîne de " +"format, référez-vous à la documentation pour :ref:`logrecord-attributes`. " +"Pour une utilisation simple, vous avez seulement besoin du *levelname* (la " +"sévérité), du *message* (la description de l'évènement, avec les données " +"variables) et peut-être du moment auquel l'évènement a eu lieu. Nous " +"décrivons ces points dans la prochaine section." #: ../Doc/howto/logging.rst:284 msgid "Displaying the date/time in messages" -msgstr "" +msgstr "Afficher l'horodatage dans les messages" #: ../Doc/howto/logging.rst:286 msgid "" "To display the date and time of an event, you would place '%(asctime)s' in " "your format string::" msgstr "" +"Pour afficher la date ou le temps d'un évènement, ajoutez `%(asctime)` dans " +"votre chaîne de formatage : ::" #: ../Doc/howto/logging.rst:293 msgid "which should print something like this:" -msgstr "" +msgstr "ce qui affichera quelque chose comme :" #: ../Doc/howto/logging.rst:299 msgid "" @@ -378,20 +495,24 @@ msgid "" "rfc:`3339`. If you need more control over the formatting of the date/time, " "provide a *datefmt* argument to ``basicConfig``, as in this example::" msgstr "" +"Le format par défaut de l'horodatage (comme ci-dessus) est donné par la " +"norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de " +"l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, " +"comme dans l'exemple suivant : ::" #: ../Doc/howto/logging.rst:307 msgid "which would display something like this:" -msgstr "" +msgstr "ce qui affichera quelque chose comme :" #: ../Doc/howto/logging.rst:313 msgid "" "The format of the *datefmt* argument is the same as supported by :func:`time." "strftime`." -msgstr "" +msgstr "Le format de *datefmt* est le même que celui de :func:`time.strftime`." #: ../Doc/howto/logging.rst:318 msgid "Next Steps" -msgstr "" +msgstr "Étapes suivantes" #: ../Doc/howto/logging.rst:320 msgid "" @@ -401,6 +522,11 @@ msgid "" "time in reading the following sections. If you're ready for that, grab some " "of your favourite beverage and carry on." msgstr "" +"Nous concluons ainsi le tutoriel basique. Il devrait suffire à vous mettre " +"le pied à l'étrier pour utiliser `logging`. Le module `logging` a beaucoup " +"d'autre cordes à son arc, mais pour en profiter au maximum, vous devez " +"prendre le temps de lire les sections suivantes. Si vous êtes prêt, servez-" +"vous votre boisson préférée et poursuivons." #: ../Doc/howto/logging.rst:326 msgid "" @@ -417,42 +543,58 @@ msgid "" "slightly more advanced/in-depth tutorial than the basic one above. After " "that, you can take a look at the :ref:`logging-cookbook`." msgstr "" +"Vous êtes encore là ? Vous pouvez lire les prochaines sections, qui donnent " +"un peu plus de détails que l'introduction ci-dessus. Après ça, vous pouvez " +"jeter un œil à :ref:`logging-cookbook`." #: ../Doc/howto/logging.rst:340 msgid "Advanced Logging Tutorial" -msgstr "" +msgstr "Usage avancé de Logging" #: ../Doc/howto/logging.rst:342 msgid "" "The logging library takes a modular approach and offers several categories " "of components: loggers, handlers, filters, and formatters." msgstr "" +"La bibliothèque de journalisation adopte une approche modulaire et offre " +"différentes catégories de composants : *loggers*, *handlers*, *filters* et " +"*formatters*." #: ../Doc/howto/logging.rst:345 msgid "Loggers expose the interface that application code directly uses." msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." #: ../Doc/howto/logging.rst:346 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par " +"les *loggers*) vers les destinations voulues." #: ../Doc/howto/logging.rst:348 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." #: ../Doc/howto/logging.rst:350 msgid "Formatters specify the layout of log records in the final output." msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." #: ../Doc/howto/logging.rst:352 msgid "" "Log event information is passed between loggers, handlers, filters and " "formatters in a :class:`LogRecord` instance." msgstr "" +"L'information relative à un événement est passée entre *loggers*, *handlers* " +"et *formatters* dans une instance de la classe :class:`LogRecord`." #: ../Doc/howto/logging.rst:355 msgid "" @@ -464,18 +606,32 @@ msgid "" "want, and indicate the area of an application in which a logged message " "originates." msgstr "" +"La journalisation est réalisée en appelant les méthodes d'instance de la " +"classe :class:`Logger` (que l'on appelle ci-dessous :dfn:`loggers`). Chaque " +"instance a un nom et les instances sont organisées conceptuellement comme " +"des hiérarchies dans l'espace de nommage, en utilisant un point comme " +"séparateur. Par exemple, un `logger` appelé `scan` est le parent des " +"`loggers` `scan.text`, `scan.html` et `scan.pdf`. Les noms des `loggers` " +"peuvent être ce que vous voulez et indiquent le sous-domaine d'une " +"application depuis lequel le message enregistré a été émis." #: ../Doc/howto/logging.rst:362 msgid "" "A good convention to use when naming loggers is to use a module-level " "logger, in each module which uses logging, named as follows::" msgstr "" +"Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un " +"*logger* au niveau du module, dans chaque module qui emploie `logging`, " +"nommé de la façon suivante : ::" #: ../Doc/howto/logging.rst:367 msgid "" "This means that logger names track the package/module hierarchy, and it's " "intuitively obvious where events are logged just from the logger name." msgstr "" +"Cela signifie que le nom d'un `logger` se rapporte à la hiérarchie du paquet " +"et des modules, et il est évident de voir où un événement a été enregistré " +"simplement en regardant le nom du `logger`." #: ../Doc/howto/logging.rst:370 msgid "" @@ -485,6 +641,12 @@ msgid "" "the root logger. The functions and the methods have the same signatures. The " "root logger's name is printed as 'root' in the logged output." msgstr "" +"La racine de la hiérarchie des `loggers` est appelée le *root logger*. C'est " +"le `logger` utilisé par les fonctions :func:`debug`, :func:`info`, :func:" +"`warning`, :func:`error` et :func:`critical`, qui appelle en fait les " +"méthodes du même nom de l'objet *root logger*. Les fonctions et les méthodes " +"ont la même signature. Le nom du *root logger* est affiché comme « `root` » " +"dans la sortie." #: ../Doc/howto/logging.rst:376 msgid "" @@ -496,6 +658,15 @@ msgid "" "destination class if you have special requirements not met by any of the " "built-in handler classes." msgstr "" +"Il est bien sûr possible d'enregistrer des messages pour des destinations " +"différentes. Ce paquet permet d'écrire des entrées de journal dans des " +"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des *sockets* " +"génériques, des files d'attente, ou des mécanismes d'enregistrement " +"spécifiques au système d'exploitation, comme *syslog* ou le journal " +"d'événements de Windows NT. Les destinations sont servies par des classes :" +"dfn:`handler`. Vous pouvez créer votre propre classe de destination si vous " +"avez des besoins spéciaux qui ne sont couverts par aucune classe *handler* " +"prédéfinie." #: ../Doc/howto/logging.rst:383 msgid "" @@ -508,10 +679,21 @@ msgid "" "displayed message before delegating to the root logger to do the actual " "message output." msgstr "" +"Par défaut, aucune destination n'est prédéfinie pour les messages de " +"journalisation. Vous pouvez définir une destination (comme la console ou un " +"fichier) en utilisant :func:`basicConfig` comme dans les exemples donnés " +"dans le tutoriel. Si vous appelez les fonctions :func:`debug`, :func:" +"`info`, :func:`warning`, :func:`error` et :func:`critical`, celles-ci " +"vérifient si une destination a été définie ; si ce n'est pas le cas, la " +"destination est assignée à la console (``sys.stderr``) avec un format par " +"défaut pour le message affiché, avant d'être déléguée au *logger* racine, " +"qui sort le message." #: ../Doc/howto/logging.rst:391 msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" +"Le format par défaut des messages est défini par :func:`basicConfig` comme " +"suit : ::" #: ../Doc/howto/logging.rst:397 msgid "" @@ -519,20 +701,26 @@ msgid "" "the *format* keyword argument. For all options regarding how a format string " "is constructed, see :ref:`formatter-objects`." msgstr "" +"Vous pouvez modifier ce comportement en passant une chaîne de formatage à :" +"func:`basicConfig` par l'argument nommé *format*. Consultez :ref:`formatter-" +"objects` pour toutes les options de construction de cette chaîne de " +"formatage." #: ../Doc/howto/logging.rst:402 msgid "Logging Flow" -msgstr "" +msgstr "Flux du processus de journalisation" #: ../Doc/howto/logging.rst:404 msgid "" "The flow of log event information in loggers and handlers is illustrated in " "the following diagram." msgstr "" +"Le flux des informations associées à un évènement dans les `loggers` et les " +"`handlers` est illustré dans le diagramme suivant." #: ../Doc/howto/logging.rst:410 msgid "Loggers" -msgstr "" +msgstr "Loggers" #: ../Doc/howto/logging.rst:412 msgid "" @@ -543,16 +731,25 @@ msgid "" "Third, logger objects pass along relevant log messages to all interested log " "handlers." msgstr "" +"Les objets de classe :class:`Logger` ont un rôle triple. Premièrement, ils " +"exposent plusieurs méthodes au code de l'application, de manière à ce " +"qu'elle puisse enregistrer des messages en cours d'exécution. Deuxièmement, " +"les objets `logger` déterminent sur quel message agir selon leur sévérité (à " +"partir des filtres par défaut) ou selon les objets `filter` associés. " +"Troisièmement, les objets `logger` transmettent les messages pertinents à " +"tous les `handlers` concernés." #: ../Doc/howto/logging.rst:418 msgid "" "The most widely used methods on logger objects fall into two categories: " "configuration and message sending." msgstr "" +"Les méthodes des objets `logger` les plus utilisées appartiennent à deux " +"catégories : la configuration et l'envoi de messages." #: ../Doc/howto/logging.rst:421 msgid "These are the most common configuration methods:" -msgstr "" +msgstr "Voici les méthodes de configuration les plus communes :" #: ../Doc/howto/logging.rst:423 msgid "" @@ -562,6 +759,11 @@ msgid "" "INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " "messages and will ignore DEBUG messages." msgstr "" +":meth:`Logger.setLevel` spécifie le plus bas niveau de sévérité qu'un " +"`logger` traitera. Ainsi, `debug` est le niveau de sévérité défini par " +"défaut le plus bas et `critical` est le plus haut. Par exemple, si le niveau " +"de sévérité est INFO, le `logger` ne traite que les messages de niveau INFO, " +"WARNING, ERROR et CRITICAL ; il ignore les messages de niveau DEBUG." #: ../Doc/howto/logging.rst:429 msgid "" @@ -569,6 +771,9 @@ msgid "" "handler objects from the logger object. Handlers are covered in more detail " "in :ref:`handler-basic`." msgstr "" +":meth:`Logger.addHandler` et :meth:`Logger.removeHandler` ajoutent ou " +"enlèvent des objets `handlers` au `logger`. Les objets `handlers` sont " +"expliqués plus en détail dans :ref:`handler-basic`." #: ../Doc/howto/logging.rst:433 msgid "" @@ -576,17 +781,25 @@ msgid "" "filter objects from the logger object. Filters are covered in more detail " "in :ref:`filter`." msgstr "" +":meth:`Logger.addFilter` et :meth:`Logger.removeFilter` ajoutent ou enlèvent " +"des objets `filter` au `logger`. Les objets `filters` sont expliqués plus en " +"détail dans :ref:`filter`." #: ../Doc/howto/logging.rst:437 msgid "" "You don't need to always call these methods on every logger you create. See " "the last two paragraphs in this section." msgstr "" +"Comme nous l'expliquons aux deux derniers paragraphes de cette section, vous " +"n'avez pas besoin de faire appel à ces méthodes à chaque fois que vous créez " +"un `logger`." #: ../Doc/howto/logging.rst:440 msgid "" "With the logger object configured, the following methods create log messages:" msgstr "" +"Une fois que l'objet `logger` est correctement configuré, les méthodes " +"suivantes permettent de créer un message :" #: ../Doc/howto/logging.rst:442 msgid "" @@ -600,6 +813,16 @@ msgid "" "about a keyword of ``exc_info`` and use it to determine whether to log " "exception information." msgstr "" +"Les méthodes :meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger." +"warning`, :meth:`Logger.error` et :meth:`Logger.critical` créent des entrées " +"de journal avec un message et un niveau correspondant à leur nom. Le message " +"est en fait une chaîne de caractères qui peut contenir la syntaxe standard " +"de substitution de chaînes de caractères : ``%s``, ``%d``, ``%f``, etc. " +"L'argument suivant est une liste des objets correspondant aux champs à " +"substituer dans le message. En ce qui concerne ``**kwargs``, les méthodes de " +"`logging` ne tiennent compte que du mot clef ``exc_info`` et l'utilisent " +"pour déterminer s'il faut enregistrer les informations associées à une " +"exception." #: ../Doc/howto/logging.rst:452 msgid "" @@ -607,6 +830,10 @@ msgid "" "error`. The difference is that :meth:`Logger.exception` dumps a stack trace " "along with it. Call this method only from an exception handler." msgstr "" +":meth:`Logger.exception` crée un message similaire à :meth:`Logger.error`. " +"La différence est que :meth:`Logger.exception` ajoute la trace de la pile " +"d'exécution au message. On ne peut appeler cette méthode qu'à l'intérieur " +"d'un bloc de gestion d'exception." #: ../Doc/howto/logging.rst:456 msgid "" @@ -615,6 +842,11 @@ msgid "" "convenience methods listed above, but this is how to log at custom log " "levels." msgstr "" +":meth:`Logger.log` prend le niveau de sévérité comme argument explicite. " +"C'est un peu plus verbeux pour enregistrer des messages que d'utiliser les " +"méthodes plus pratiques décrites si dessus, mais c'est ce qui permet " +"d'enregistrer des messages pour des niveaux de sévérité définis par " +"l'utilisateur." #: ../Doc/howto/logging.rst:460 msgid "" @@ -627,6 +859,15 @@ msgid "" "loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " "descendants of ``foo``." msgstr "" +":func:`getLogger` renvoie une référence à un objet `logger` du nom spécifié " +"si celui-ci est donné en argument. Dans le cas contraire, se sera le `logger " +"root`. Ces noms sont des structures hiérarchiques séparées par des points. " +"Des appels répétés à :func:`getLogger` avec le même nom renvoient une " +"référence au même objet `logger`. Les `loggers` qui sont plus bas dans cette " +"liste hiérarchique sont des enfants des `loggers` plus haut dans la liste. " +"Par exemple, si un `logger` a le nom ``foo``, les `loggers` avec les noms " +"``foo.bar``, ``foo.bar.baz``, et ``foo.bam`` sont tous des descendants de " +"``foo``." #: ../Doc/howto/logging.rst:468 msgid "" @@ -639,6 +880,14 @@ msgid "" "the logger is used to determine whether the event is passed to the logger's " "handlers." msgstr "" +"On associe aux `loggers` un concept de *niveau effectif*. Si aucun niveau " +"n'est explicitement défini pour un `logger`, c'est le niveau du parent qui " +"est utilisé comme niveau effectif. Si le parent n'a pas de niveau défini, " +"c'est celui de *son* parent qui est considéré, et ainsi de suite ; on " +"examine tous les ancêtres jusqu'à ce qu'un niveau explicite soit trouvé. Le " +"`logger root` a toujours un niveau explicite (``WARNING`` par défaut). Quand " +"le `logger` traite un événement, c'est ce niveau effectif qui est utilisé " +"pour déterminer si cet événement est transmis à ses `handlers`." #: ../Doc/howto/logging.rst:476 msgid "" @@ -649,10 +898,17 @@ msgid "" "needed. (You can, however, turn off propagation by setting the *propagate* " "attribute of a logger to ``False``.)" msgstr "" +"Les `loggers` fils font remonter leurs messages aux `handlers` associés à " +"leurs `loggers` parents. De ce fait, il n'est pas nécessaire de définir et " +"configurer des `handlers` pour tous les `loggers` employés par une " +"application. Il suffit de configurer les `handlers` pour un `logger` de haut " +"niveau et de créer des `loggers` fils quand c'est nécessaire (on peut " +"cependant empêcher la propagation aux ancêtres des messages en donnant la " +"valeur ``False`` à l'attribut *propagate* d'un `logger`)." #: ../Doc/howto/logging.rst:487 msgid "Handlers" -msgstr "" +msgstr "Handlers" #: ../Doc/howto/logging.rst:489 msgid "" @@ -666,6 +922,16 @@ msgid "" "individual handlers where each handler is responsible for sending messages " "of a specific severity to a specific location." msgstr "" +"Les objets de type :class:`~logging.Handler` sont responsables de la " +"distribution des messages (selon leur niveau de sévérité) vers les " +"destinations spécifiées pour ce `handler`. Les objets :class:`Logger` " +"peuvent ajouter des objets `handler` à eux-mêmes en appelant :meth:`~Logger." +"addHandler`. Pour donner un exemple, une application peut envoyer tous les " +"messages dans un fichier journal, tous les messages de niveau `error` ou " +"supérieur vers la sortie standard, et tous les messages de niveau `critical` " +"vers une adresse de courriel. Dans ce scenario, nous avons besoin de trois " +"`handlers`, responsable chacun d'envoyer des messages d'une sévérité donnée " +"vers une destination donnée." #: ../Doc/howto/logging.rst:499 msgid "" @@ -673,6 +939,9 @@ msgid "" "handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" "`FileHandler` in its examples." msgstr "" +"La bibliothèque standard inclut déjà un bon nombre de types de gestionnaires " +"(voir :ref:`useful-handlers`) ; le tutoriel utilise surtout :class:" +"`StreamHandler` et :class:`FileHandler` dans ses exemples." #: ../Doc/howto/logging.rst:503 msgid "" @@ -681,6 +950,10 @@ msgid "" "application developers who are using the built-in handler objects (that is, " "not creating custom handlers) are the following configuration methods:" msgstr "" +"Peu de méthodes des objets `handlers` sont intéressantes pour les " +"développeurs. Les seules méthodes intéressantes lorsqu'on utilise les objets " +"`handlers` natifs (c'est à dire si l'on ne crée pas d'`handler` " +"personnalisé) sont les méthodes de configuration suivantes :" #: ../Doc/howto/logging.rst:508 msgid "" @@ -691,18 +964,28 @@ msgid "" "level set in each handler determines which messages that handler will send " "on." msgstr "" +"La méthode :meth:`~Handler.setLevel`, comme celle des objets `logger` permet " +"de spécifier le plus bas niveau de sévérité qui sera distribué à la " +"destination appropriée. Pourquoi y a-t-il deux méthodes :func:`setLevel` ? " +"Le niveau défini dans le `logger` détermine quelle sévérité doit avoir un " +"message pour être transmis à ses `handlers`. Le niveau mis pour chaque " +"`handler` détermine quels messages seront envoyés aux destinations." #: ../Doc/howto/logging.rst:514 msgid "" ":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " "use." msgstr "" +":meth:`~Handler.setFormatter` sélectionne l'objet `Formatter` utilisé par " +"cet `handler`." #: ../Doc/howto/logging.rst:517 msgid "" ":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " "configure and deconfigure filter objects on handlers." msgstr "" +":meth:`~Handler.addFilter` et :meth:`~Handler.removeFilter` configurent et " +"respectivement dé-configurent des objets `filter` sur les `handlers`." #: ../Doc/howto/logging.rst:520 msgid "" @@ -711,10 +994,15 @@ msgid "" "the interface that all handlers should have and establishes some default " "behavior that child classes can use (or override)." msgstr "" +"Le code d'une application ne devrait ni instancier, ni utiliser d'instances " +"de la classe :class:`Handler`. La classe :class:`Handler` est plutôt d'une " +"classe de base qui définit l'interface que tous les gestionnaires doivent " +"avoir et établit les comportements par défaut que les classes filles peuvent " +"employer (ou redéfinir)." #: ../Doc/howto/logging.rst:527 msgid "Formatters" -msgstr "" +msgstr "Formatters" #: ../Doc/howto/logging.rst:529 msgid "" @@ -725,18 +1013,30 @@ msgid "" "takes three optional arguments -- a message format string, a date format " "string and a style indicator." msgstr "" +"Les objets `formatter` configurent l'ordre final, la structure et le contenu " +"du message. Contrairement à la classe de base :class:`logging.Handler`, le " +"code d'une application peut instancier un objet de classe `formatter`, même " +"si vous pouvez toujours sous-classer `formatter` si vous avez besoin d'un " +"comportement spécial dans votre application. Le constructeur a trois " +"arguments optionnels : une chaîne de formatage du message, un chaîne de " +"formatage de la date et un indicateur de style." #: ../Doc/howto/logging.rst:538 msgid "" "If there is no message format string, the default is to use the raw " "message. If there is no date format string, the default date format is:" msgstr "" +"S'il n'y a pas de chaîne de formatage, la chaîne brute est utilisée par " +"défaut. S'il n'y a pas de chaîne de formatage de date, le format de date par " +"défaut est :" #: ../Doc/howto/logging.rst:545 msgid "" "with the milliseconds tacked on at the end. The ``style`` is one of `%`, '{' " "or '$'. If one of these is not specified, then '%' will be used." msgstr "" +"avec les millisecondes en suffixe. Le ``style`` est `%`, `{` ou `$`. Si " +"aucun n'est spécifié, `%` sera utilisé." #: ../Doc/howto/logging.rst:548 msgid "" @@ -747,10 +1047,17 @@ msgid "" "arguments), while if the style is '$' then the message format string should " "conform to what is expected by :meth:`string.Template.substitute`." msgstr "" +"Si l'argument ``style`` est `%`, la chaîne de formatage utilise ``%()s`` comme style de substitution de chaîne de caractères ; les " +"clefs possibles sont documentées dans :ref:`logrecord-attributes`. Si le " +"style est `{`, le message de la chaîne de formatage est compatible avec :" +"meth:`str.format` (en employant des arguments à mots clefs). Enfin si le " +"style est `$` alors la chaîne de formatage du message doit être conforme à " +"ce qui est attendu de :meth:`string.Template.substitute`." #: ../Doc/howto/logging.rst:555 msgid "Added the ``style`` parameter." -msgstr "" +msgstr "Ajout du paramètre ``style``." #: ../Doc/howto/logging.rst:558 msgid "" @@ -758,6 +1065,9 @@ msgid "" "format, the severity of the message, and the contents of the message, in " "that order::" msgstr "" +"La chaîne de formatage de message suivante enregistrera le temps dans un " +"format lisible par les humains, la sévérité du message et son contenu, dans " +"cet ordre ::" #: ../Doc/howto/logging.rst:564 msgid "" @@ -769,20 +1079,31 @@ msgid "" "want all logging times to be shown in GMT, set the ``converter`` attribute " "in the Formatter class (to ``time.gmtime`` for GMT display)." msgstr "" +"Les `formatters` emploient une fonction configurable par l'utilisateur pour " +"convertir le temps de création d'une entrée de journal en un tuple. Par " +"défaut, :func:`time.localtime` est employé ; pour changer cela pour une " +"instance particulière de `formatter`, assignez une fonction avec la même " +"signature que :func:`time.localtime` ou :func:`time.gmtime` à l'attribut " +"``converter`` de cette instance. Pour changer cela pour tous les " +"`formatters`, par exemple si vous voulez que tous votre horodatage soit " +"affiché en GMT, changez l'attribut ``converter`` de la classe ``Formatter`` " +"en ``time.gmtime``." #: ../Doc/howto/logging.rst:574 msgid "Configuring Logging" -msgstr "" +msgstr "Configuration de `Logging`" #: ../Doc/howto/logging.rst:578 msgid "Programmers can configure logging in three ways:" -msgstr "" +msgstr "On peut configurer `logging` de trois façons :" #: ../Doc/howto/logging.rst:580 msgid "" "Creating loggers, handlers, and formatters explicitly using Python code that " "calls the configuration methods listed above." msgstr "" +"Créer des `loggers`, `handlers` et `formatters` explicitement en utilisant " +"du code Python qui appelle les méthodes de configuration listées ci-dessus." #: ../Doc/howto/logging.rst:582 msgid "" @@ -795,6 +1116,8 @@ msgid "" "Creating a dictionary of configuration information and passing it to the :" "func:`dictConfig` function." msgstr "" +"Créer un dictionnaire d'informations de configuration et le passer à la " +"fonction :func:`dictConfig`." #: ../Doc/howto/logging.rst:587 msgid "" @@ -802,11 +1125,17 @@ msgid "" "config-api`. The following example configures a very simple logger, a " "console handler, and a simple formatter using Python code::" msgstr "" +"Pour la documentation de référence de ces deux dernières options, voyez :ref:" +"`logging-config-api`. L'exemple suivant configure un `logger` très simple, " +"un `handler` employant la console, et un `formatter` simple en utilisant du " +"code Python ::" #: ../Doc/howto/logging.rst:617 msgid "" "Running this module from the command line produces the following output:" msgstr "" +"L'exécution de ce module via la ligne de commande produit la sortie " +"suivante :" #: ../Doc/howto/logging.rst:628 msgid "" @@ -814,15 +1143,20 @@ msgid "" "identical to those in the example listed above, with the only difference " "being the names of the objects::" msgstr "" +"Le module Python suivant crée un *logger*, un *handler* et un *formatter* " +"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets " +"près : ::" #: ../Doc/howto/logging.rst:647 msgid "Here is the logging.conf file:" -msgstr "" +msgstr "Voici le fichier *logging.conf* :" #: ../Doc/howto/logging.rst:680 msgid "" "The output is nearly identical to that of the non-config-file-based example:" msgstr "" +"La sortie est presque identique à celle de l'exemple qui n'est pas basé sur " +"un fichier de configuration :" #: ../Doc/howto/logging.rst:691 msgid "" @@ -830,6 +1164,10 @@ msgid "" "Python code approach, mainly separation of configuration and code and the " "ability of noncoders to easily modify the logging properties." msgstr "" +"Vous pouvez constatez les avantages de l'approche par fichier de " +"configuration par rapport à celle du code Python, principalement la " +"séparation de la configuration et du code, et la possibilité pour une " +"personne qui ne code pas de modifier facilement les propriétés de `logging`." #: ../Doc/howto/logging.rst:695 msgid "" @@ -861,6 +1199,13 @@ msgid "" "module ``mymodule``, where ``mypackage`` is available on the Python import " "path)." msgstr "" +"Notez que les noms de classe référencés dans le fichier de configuration " +"doivent être relatifs au module `logging`, ou des valeurs absolues qui " +"peuvent être résolues à travers les mécanismes d'importation habituels. " +"Ainsi, on peut soit utiliser :class:`~logging.handlers.WatchedFileHandler` " +"(relativement au module `logging`) ou ``mypackage.mymodule.MyHandler`` (pour " +"une classe définie dans le paquet ``mypackage`` et le module ``mymodule``, " +"si ``mypackage`` est disponible dans les chemins d'importation de Python)." #: ../Doc/howto/logging.rst:721 msgid "" @@ -876,22 +1221,40 @@ msgid "" "can construct the dictionary in Python code, receive it in pickled form over " "a socket, or use whatever approach makes sense for your application." msgstr "" +"Dans Python 3.2, un nouveau moyen de configuration de la journalisation a " +"été introduit, à l'aide de dictionnaires pour contenir les informations de " +"configuration. Cela fournit un sur-ensemble de la fonctionnalité décrite ci-" +"dessus basée sur un fichier de configuration et c’est la méthode recommandée " +"pour les nouvelles applications et les déploiements. Étant donné qu'un " +"dictionnaire Python est utilisé pour contenir des informations de " +"configuration et que vous pouvez remplir ce dictionnaire à l'aide de " +"différents moyens, vous avez plus d'options pour la configuration. Par " +"exemple, vous pouvez utiliser un fichier de configuration au format JSON ou, " +"si vous avez accès à la fonctionnalité de traitement YAML, un fichier au " +"format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, " +"vous pouvez construire le dictionnaire dans le code Python, le recevoir sous " +"forme de *pickle* sur un connecteur (*socket* en anglais), ou utiliser " +"n'importe quelle approche suivant la logique de votre application." #: ../Doc/howto/logging.rst:733 msgid "" "Here's an example of the same configuration as above, in YAML format for the " "new dictionary-based approach:" msgstr "" +"Voici un exemple définissant la même configuration que ci-dessus, au format " +"YAML pour le dictionnaire correspondant à cette nouvelle approche :" #: ../Doc/howto/logging.rst:757 msgid "" "For more information about logging using a dictionary, see :ref:`logging-" "config-api`." msgstr "" +"Pour plus d'informations sur la journalisation à l'aide d'un dictionnaire, " +"consultez :ref:`logging-config-api`." #: ../Doc/howto/logging.rst:761 msgid "What happens if no configuration is provided" -msgstr "" +msgstr "Comportement par défaut (si aucune configuration n'est fournie)" #: ../Doc/howto/logging.rst:763 msgid "" @@ -900,26 +1263,38 @@ msgid "" "output the event. The behaviour of the logging package in these " "circumstances is dependent on the Python version." msgstr "" +"Si aucune configuration de journalisation n'est fournie, il est possible " +"d'avoir une situation où un événement doit faire l'objet d'une " +"journalisation, mais où aucun gestionnaire ne peut être trouvé pour tracer " +"l'événement. Le comportement du paquet ``logging`` dans ces circonstances " +"dépend de la version Python." #: ../Doc/howto/logging.rst:768 msgid "For versions of Python prior to 3.2, the behaviour is as follows:" msgstr "" +"Pour les versions de Python antérieures à 3.2, le comportement est le " +"suivant :" #: ../Doc/howto/logging.rst:770 msgid "" "If *logging.raiseExceptions* is ``False`` (production mode), the event is " "silently dropped." msgstr "" +"Si *logging.raiseExceptions* vaut ``False`` (mode production), l’événement " +"est silencieusement abandonné." #: ../Doc/howto/logging.rst:773 msgid "" "If *logging.raiseExceptions* is ``True`` (development mode), a message 'No " "handlers could be found for logger X.Y.Z' is printed once." msgstr "" +"Si *logging.raiseExceptions* vaut ``True`` (mode de développement), un " +"message *No handlers could be found for logger X.Y.Z* est écrit sur la " +"sortie standard une fois." #: ../Doc/howto/logging.rst:776 msgid "In Python 3.2 and later, the behaviour is as follows:" -msgstr "" +msgstr "Dans Python 3.2 et ultérieur, le comportement est le suivant :" #: ../Doc/howto/logging.rst:778 msgid "" @@ -932,16 +1307,27 @@ msgid "" "handler's level is set to ``WARNING``, so all events at this and greater " "severities will be output." msgstr "" +"L'événement est sorti à l'aide d'un « gestionnaire de dernier recours », " +"stocké dans ``logging.lastResort``. Ce gestionnaire interne n'est associé à " +"aucun enregistreur et agit comme un :class:`~logging.StreamHandler` qui " +"écrit le message de description de l'événement vers la valeur actuelle de " +"``sys.stderr`` (par conséquent, en respectant les redirections qui peuvent " +"être en vigueur). Aucun formatage n'est fait sur le message – juste le " +"message de description de l'événement nu est affiché. Le niveau du " +"gestionnaire est défini sur ``WARNING``, de sorte que tous les événements de " +"cette sévérité et plus seront écrits." #: ../Doc/howto/logging.rst:787 msgid "" "To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " "``None``." msgstr "" +"Pour obtenir un comportement antérieur à 3.2, ``logging.lastResort`` peut " +"être mis à ``None``." #: ../Doc/howto/logging.rst:792 msgid "Configuring Logging for a Library" -msgstr "" +msgstr "Configuration de la journalisation pour une bibliothèque" #: ../Doc/howto/logging.rst:794 msgid "" @@ -953,6 +1339,15 @@ msgid "" "of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " "is regarded as the best default behaviour." msgstr "" +"Lors du développement d'une bibliothèque qui utilise la journalisation, vous " +"devez prendre soin de documenter la façon dont la bibliothèque utilise la " +"journalisation (par exemple, les noms des enregistreurs utilisés). Consacrez " +"aussi un peu de temps à la configuration de la journalisation. Si " +"l'application utilisant votre bibliothèque n'utilise pas la journalisation " +"et que le code de la bibliothèque effectue des appels de journalisation, " +"alors (comme décrit dans la section précédente), les événements de gravité " +"``WARNING`` et au-dessus seront écrits sur ``sys.stderr``. Cela est " +"considéré comme le meilleur comportement par défaut." #: ../Doc/howto/logging.rst:802 msgid "" @@ -983,6 +1378,9 @@ msgid "" "libraries, then the logger name specified can be 'orgname.foo' rather than " "just 'foo'." msgstr "" +"doit avoir l'effet désiré. Si une organisation produit un certain nombre de " +"bibliothèques, le nom de l'enregistreur spécifié peut être ``orgname.foo`` " +"plutôt que simplement ``foo``." #: ../Doc/howto/logging.rst:826 msgid "" @@ -994,10 +1392,18 @@ msgid "" "handlers 'under the hood', you might well interfere with their ability to " "carry out unit tests and deliver logs which suit their requirements." msgstr "" +"Il est vivement conseillé de ne *pas ajouter de gestionnaires autres que* :" +"class:`~logging.NullHandler` *aux enregistreurs de votre bibliothèque*. Cela " +"est dû au fait que la configuration des gestionnaires est la prérogative du " +"développeur d'applications qui utilise votre bibliothèque. Le développeur " +"d'applications connaît le public cible et les gestionnaires les plus " +"appropriés pour ses applications : si vous ajoutez des gestionnaires « sous " +"le manteau », vous pourriez bien interférer avec les tests unitaires et la " +"journalisation qui convient à ses exigences." #: ../Doc/howto/logging.rst:837 msgid "Logging Levels" -msgstr "" +msgstr "Niveaux de journalisation" #: ../Doc/howto/logging.rst:839 msgid "" @@ -1007,10 +1413,15 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." #: ../Doc/howto/logging.rst:846 msgid "Numeric value" -msgstr "" +msgstr "Valeur numérique" #: ../Doc/howto/logging.rst:848 msgid "50" @@ -1049,6 +1460,14 @@ msgid "" "the method call's, no logging message is actually generated. This is the " "basic mechanism controlling the verbosity of logging output." msgstr "" +"Les niveaux peuvent également être associés à des enregistreurs, étant " +"définis soit par le développeur, soit par le chargement d'une configuration " +"de journalisation enregistrée. Lorsqu'une méthode de journalisation est " +"appelée sur un enregistreur, l'enregistreur compare son propre niveau avec " +"le niveau associé à l'appel de méthode. Si le niveau de l'enregistreur est " +"supérieur à l'appel de méthode, aucun message de journalisation n'est " +"réellement généré. C'est le mécanisme de base contrôlant la verbosité de la " +"sortie de journalisation." #: ../Doc/howto/logging.rst:868 msgid "" @@ -1056,6 +1475,10 @@ msgid "" "class. When a logger decides to actually log an event, a :class:`~logging." "LogRecord` instance is created from the logging message." msgstr "" +"Les messages de journalisation sont codés en tant qu'instances de :class:" +"`~logging.LogRecord`. Lorsqu'un enregistreur décide de réellement " +"enregistrer un événement, une instance de :class:`~logging.LogRecord` est " +"créée à partir du message de journalisation." #: ../Doc/howto/logging.rst:872 msgid "" @@ -1073,6 +1496,23 @@ msgid "" "message (unless the *propagate* flag for a logger is set to a false value, " "at which point the passing to ancestor handlers stops)." msgstr "" +"Les messages de journalisation sont soumis à un mécanisme d'expédition via " +"l'utilisation de :dfn:`handlers`, qui sont des instances de sous-classes de " +"la classe :class:`Handler`. Les gestionnaires sont chargés de s'assurer " +"qu'un message journalisé (sous la forme d'un :class:`LogRecord`) atterrit " +"dans un emplacement particulier (ou un ensemble d'emplacements) qui est " +"utile pour le public cible pour ce message (tels que les utilisateurs " +"finaux, le personnel chargé de l'assistance aux utilisateurs, les " +"administrateurs système ou les développeurs). Des instances de :class:" +"`LogRecord` adaptées à leur destination finale sont passées aux " +"gestionnaires destinées à des destinations particulières. Chaque " +"enregistreur peut avoir zéro, un ou plusieurs gestionnaires associés à celui-" +"ci (via la méthode :meth:`~Logger.addHandler` de :class:`Logger`). En plus " +"de tous les gestionnaires directement associés à un enregistreur, *tous les " +"gestionnaires associés à tous les ancêtres de l'enregistreur* sont appelés " +"pour envoyer le message (à moins que l'indicateur *propager* pour un " +"enregistreur soit défini sur la valeur ``False``, auquel cas le passage à " +"l'ancêtre gestionnaires s'arrête)." #: ../Doc/howto/logging.rst:886 msgid "" @@ -1083,10 +1523,17 @@ msgid "" "defined subclasses of :class:`Handler` will need to override this :meth:" "`~Handler.emit`." msgstr "" +"Tout comme pour les enregistreurs, les gestionnaires peuvent avoir des " +"niveaux associés. Le niveau d'un gestionnaire agit comme un filtre de la " +"même manière que le niveau d'un enregistreur. Si un gestionnaire décide de " +"réellement distribuer un événement, la méthode :meth:`~Handler.emit` est " +"utilisée pour envoyer le message à sa destination. La plupart des sous-" +"classes définies par l'utilisateur de :class:`Handler` devront remplacer ce :" +"meth:`~Handler.emit`." #: ../Doc/howto/logging.rst:895 msgid "Custom Levels" -msgstr "" +msgstr "Niveaux personnalisés" #: ../Doc/howto/logging.rst:897 msgid "" @@ -1100,26 +1547,43 @@ msgid "" "difficult for the using developer to control and/or interpret, because a " "given numeric value might mean different things for different libraries." msgstr "" +"La définition de vos propres niveaux est possible, mais ne devrait pas être " +"nécessaire, car les niveaux existants ont été choisis par expérience. " +"Cependant, si vous êtes convaincu que vous avez besoin de niveaux " +"personnalisés, prenez grand soin à leur réalisation et il est pratiquement " +"certain que c’est *une très mauvaise idée de définir des niveaux " +"personnalisés si vous développez une bibliothèque*. Car si plusieurs auteurs " +"de bibliothèque définissent tous leurs propres niveaux personnalisés, il y a " +"une chance que la sortie de journalisation de ces multiples bibliothèques " +"utilisées ensemble sera difficile pour le développeur à utiliser pour " +"contrôler et/ou interpréter, car une valeur numérique donnée peut signifier " +"des choses différentes pour différentes bibliothèques." #: ../Doc/howto/logging.rst:910 msgid "Useful Handlers" -msgstr "" +msgstr "Gestionnaires utiles" #: ../Doc/howto/logging.rst:912 msgid "" "In addition to the base :class:`Handler` class, many useful subclasses are " "provided:" msgstr "" +"En plus de la classe de base :class:`Handler`, de nombreuses sous-classes " +"utiles sont fournies :" #: ../Doc/howto/logging.rst:915 msgid "" ":class:`StreamHandler` instances send messages to streams (file-like " "objects)." msgstr "" +"Les instances :class:`StreamHandler` envoient des messages aux flux (objets " +"de type fichier)." #: ../Doc/howto/logging.rst:918 msgid ":class:`FileHandler` instances send messages to disk files." msgstr "" +"Les instances :class:`FileHandler` envoient des messages à des fichiers sur " +"le disque." #: ../Doc/howto/logging.rst:920 msgid "" @@ -1128,12 +1592,20 @@ msgid "" "directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:" "`~handlers.TimedRotatingFileHandler`." msgstr "" +":class:`~handlers.BaseRotatingHandler` est la classe de base pour les " +"gestionnaires qui assurent la rotation des fichiers de journalisation à " +"partir d’un certain point. Elle n'est pas destinée à être instanciée " +"directement. Utilisez plutôt :class:`~handlers.RotatingFileHandler` ou :" +"class:`~handlers.TimedRotatingFileHandler`." #: ../Doc/howto/logging.rst:925 msgid "" ":class:`~handlers.RotatingFileHandler` instances send messages to disk " "files, with support for maximum log file sizes and log file rotation." msgstr "" +"Les instances :class:`~handlers.RotatingFileHandler` envoient des messages à " +"des fichiers sur le disque, avec la prise en charge des tailles maximales de " +"fichiers de journalisation et de la rotation des fichiers de journalisation." #: ../Doc/howto/logging.rst:928 msgid "" @@ -1146,42 +1618,59 @@ msgid "" ":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Les instances de :class:`~handlers.SocketHandler` envoient des messages aux " +"connecteurs TCP/IP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." #: ../Doc/howto/logging.rst:934 msgid "" ":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Les instances de :class:`~handlers.DatagramHandler` envoient des messages " +"aux connecteurs UDP. Depuis 3.4, les connecteurs UNIX sont également pris en " +"charge." #: ../Doc/howto/logging.rst:937 msgid "" ":class:`~handlers.SMTPHandler` instances send messages to a designated email " "address." msgstr "" +"Les instances de :class:`~handlers.SMTPHandler` envoient des messages à une " +"adresse e-mail désignée." #: ../Doc/howto/logging.rst:940 msgid "" ":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " "daemon, possibly on a remote machine." msgstr "" +"Les instances de :class:`~handlers.SysLogHandler` envoient des messages à un " +"*daemon* *syslog* UNIX, éventuellement sur un ordinateur distant." #: ../Doc/howto/logging.rst:943 msgid "" ":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " "NT/2000/XP event log." msgstr "" +"Les instances de :class:`~handlers.NTEventLogHandler` envoient des messages " +"à un journal des événements Windows NT/2000/XP." #: ../Doc/howto/logging.rst:946 msgid "" ":class:`~handlers.MemoryHandler` instances send messages to a buffer in " "memory, which is flushed whenever specific criteria are met." msgstr "" +"Les instances de :class:`~handlers.MemoryHandler` envoient des messages à un " +"tampon en mémoire, qui est vidé chaque fois que des critères spécifiques " +"sont remplis." #: ../Doc/howto/logging.rst:949 msgid "" ":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " "using either ``GET`` or ``POST`` semantics." msgstr "" +"Les instances de :class:`~handlers.HTTPHandler` envoient des messages à un " +"serveur HTTP à l'aide de la sémantique ``GET`` ou ``POST``." #: ../Doc/howto/logging.rst:952 msgid "" @@ -1190,12 +1679,20 @@ msgid "" "name. This handler is only useful on Unix-like systems; Windows does not " "support the underlying mechanism used." msgstr "" +"Les instances de :class:`~handlers.WatchedFileHandler` surveillent le " +"fichier sur lequel elles se connectent. Si le fichier change, il est fermé " +"et rouvert à l'aide du nom de fichier. Ce gestionnaire n'est utile que sur " +"les systèmes de type UNIX ; Windows ne prend pas en charge le mécanisme sous-" +"jacent utilisé." #: ../Doc/howto/logging.rst:957 msgid "" ":class:`~handlers.QueueHandler` instances send messages to a queue, such as " "those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" +"Les instances de :class:`~handlers.QueueHandler` envoient des messages à une " +"file d'attente, telles que celles implémentées dans les modules :mod:`queue` " +"ou :mod:`multiprocessing`." #: ../Doc/howto/logging.rst:960 msgid "" @@ -1205,14 +1702,20 @@ msgid "" "the library user has not configured logging. See :ref:`library-config` for " "more information." msgstr "" +"Les instances :class:`NullHandler` ne font rien avec les messages d'erreur. " +"Ils sont utilisés par les développeurs de bibliothèques qui veulent utiliser " +"la journalisation, mais qui veulent éviter les messages de type *No handlers " +"could be found for logger XXX*, affiché si celui qui utilise la bibliothèque " +"n'a pas configuré la journalisation. Voir :ref:`library-config` pour plus " +"d'informations." #: ../Doc/howto/logging.rst:966 msgid "The :class:`NullHandler` class." -msgstr "" +msgstr "La classe :class:`NullHandler`." #: ../Doc/howto/logging.rst:969 msgid "The :class:`~handlers.QueueHandler` class." -msgstr "" +msgstr "La classe :class:`~handlers.QueueHandler`." #: ../Doc/howto/logging.rst:972 msgid "" @@ -1228,6 +1731,10 @@ msgid "" "class:`Formatter` class. They are initialized with a format string suitable " "for use with the % operator and a dictionary." msgstr "" +"Les messages journalisés sont mis en forme pour la présentation via des " +"instances de la classe :class:`Formatter`. Ils sont initialisés avec une " +"chaîne de format appropriée pour une utilisation avec l'opérateur % et un " +"dictionnaire." #: ../Doc/howto/logging.rst:981 msgid "" @@ -1236,6 +1743,10 @@ msgid "" "applied to each message in the batch), there is provision for header and " "trailer format strings." msgstr "" +"Pour formater plusieurs messages dans un lot, des instances de :class:" +"`~handlers.BufferingFormatter` peuvent être utilisées. En plus de la chaîne " +"de format (qui est appliquée à chaque message dans le lot), il existe des " +"dispositions pour les chaînes de format d'en-tête et de fin." #: ../Doc/howto/logging.rst:986 msgid "" @@ -1246,6 +1757,13 @@ msgid "" "consult all their filters for permission. If any filter returns a false " "value, the message is not processed further." msgstr "" +"Lorsque le filtrage basé sur le niveau de l'enregistreur et/ou le niveau du " +"gestionnaire ne suffit pas, les instances de :class:`Filter` peuvent être " +"ajoutées aux deux instances de :class:`Logger` et :class:`Handler` (par le " +"biais de leur méthode :meth:`~Handler.addFilter`). Avant de décider de " +"traiter un message plus loin, les enregistreurs et les gestionnaires " +"consultent tous leurs filtres pour obtenir l'autorisation. Si un filtre " +"renvoie une valeur ``False``, le traitement du message est arrêté." #: ../Doc/howto/logging.rst:993 msgid "" @@ -1253,10 +1771,14 @@ msgid "" "name. If this feature is used, messages sent to the named logger and its " "children are allowed through the filter, and all others dropped." msgstr "" +"La fonctionnalité de base :class:`Filter` permet de filtrer par nom de " +"*logger* spécifique. Si cette fonctionnalité est utilisée, les messages " +"envoyés à l'enregistreur nommé et à ses enfants sont autorisés via le filtre " +"et tous les autres sont abandonnés." #: ../Doc/howto/logging.rst:1001 msgid "Exceptions raised during logging" -msgstr "" +msgstr "Exceptions levées par la journalisation" #: ../Doc/howto/logging.rst:1003 msgid "" @@ -1265,6 +1787,12 @@ msgid "" "logging events - such as logging misconfiguration, network or other similar " "errors - do not cause the application using logging to terminate prematurely." msgstr "" +"Le paquet de journalisation est conçu pour ne pas faire apparaître les " +"exceptions qui se produisent lors de la journalisation en production. Il " +"s'agit de sorte que les erreurs qui se produisent lors de la gestion des " +"événements de journalisation (telles qu'une mauvaise configuration de la " +"journalisation , une erreur réseau ou d'autres erreurs similaires) ne " +"provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 msgid "" @@ -1273,6 +1801,10 @@ msgid "" "method of a :class:`Handler` subclass are passed to its :meth:`~Handler." "handleError` method." msgstr "" +"Les exceptions :class:`SystemExit` et :class:`KeyboardInterrupt` ne sont " +"jamais passées sous silence. Les autres exceptions qui se produisent pendant " +"la méthode :meth:`~Handler.emit` d'une sous classe :class:`Handler` sont " +"passées à sa méthode :meth:`~Handler.handleError`." #: ../Doc/howto/logging.rst:1013 msgid "" @@ -1281,6 +1813,11 @@ msgid "" "is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, " "the exception is swallowed." msgstr "" +"L'implémentation par défaut de :meth:`~Handler.handleError` dans la classe :" +"class:`Handler` vérifie si une variable au niveau du module, :data:" +"`raiseExceptions`, est définie. Si cette valeur est définie, la trace de la " +"pile d'appels est affichée sur :data:`sys.stderr`. Si elle n'est pas " +"définie, l'exception est passée sous silence." #: ../Doc/howto/logging.rst:1018 msgid "" @@ -1289,10 +1826,14 @@ msgid "" "occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " "production usage." msgstr "" +"La valeur par défaut de :data:`raiseExceptions` est ``True``. C'est parce " +"que pendant le développement, vous voulez généralement être notifié de " +"toutes les exceptions qui se produisent. Il est conseillé de définir :data:" +"`raiseExceptions` à ``False`` pour une utilisation en production." #: ../Doc/howto/logging.rst:1028 msgid "Using arbitrary objects as messages" -msgstr "" +msgstr "Utilisation d'objets arbitraires comme messages" #: ../Doc/howto/logging.rst:1030 msgid "" @@ -1305,10 +1846,19 @@ msgid "" "`~handlers.SocketHandler` emits an event by pickling it and sending it over " "the wire." msgstr "" +"Dans les sections et exemples précédents, il a été supposé que le message " +"passé lors de la journalisation de l'événement est une chaîne. Cependant, ce " +"n'est pas la seule possibilité. Vous pouvez passer un objet arbitraire en " +"tant que message et sa méthode :meth:`~object.__str__` est appelée lorsque " +"le système de journalisation doit le convertir en une représentation sous " +"forme de chaîne. En fait, si vous le souhaitez, vous pouvez complètement " +"éviter de calculer une représentation sous forme de chaîne. Par exemple, les " +"gestionnaires :class:`~handlers.SocketHandler` émettent un événement en lui " +"appliquant *pickle* et en l'envoyant sur le réseau." #: ../Doc/howto/logging.rst:1041 msgid "Optimization" -msgstr "" +msgstr "Optimisation" #: ../Doc/howto/logging.rst:1043 msgid "" @@ -1320,12 +1870,23 @@ msgid "" "event would be created by the Logger for that level of call. You can write " "code like this::" msgstr "" +"La mise en forme des arguments de message est différée jusqu'à ce qu'elle ne " +"puisse pas être évitée. Toutefois, le calcul des arguments passés à la " +"méthode de journalisation peut également être coûteux et vous voudrez peut-" +"être éviter de le faire si l'enregistreur va simplement jeter votre " +"événement. Pour décider de ce qu'il faut faire, vous pouvez appeler la " +"méthode :meth:`~Logger.isEnabledFor` qui prend en argument le niveau et " +"renvoie ``True`` si un événement est créé par l'enregistreur pour ce niveau " +"d'appel. Vous pouvez écrire un code qui ressemble à ça ::" #: ../Doc/howto/logging.rst:1055 msgid "" "so that if the logger's threshold is set above ``DEBUG``, the calls to :func:" "`expensive_func1` and :func:`expensive_func2` are never made." msgstr "" +"de sorte que si le seuil du journaliseur est défini au-dessus de ``DEBUG``, " +"les appels à :func:`expensive_func1` et :func:`expensive_func2` ne sont " +"jamais faits." #: ../Doc/howto/logging.rst:1058 msgid "" @@ -1338,6 +1899,16 @@ msgid "" "need to be recomputed when the logging configuration changes dynamically " "while the application is running (which is not all that common)." msgstr "" +"Dans certains cas, :meth:`~Logger.isEnabledFor` peut être plus coûteux que " +"vous le souhaitez (par exemple pour les enregistreurs profondément imbriqués " +"où un niveau explicite n'est défini que dans la hiérarchie des " +"enregistreurs). Dans de tels cas (ou si vous souhaitez éviter d'appeler une " +"méthode dans des boucles optimisées), vous pouvez mettre en cache le " +"résultat d'un appel à :meth:`~Logger.isEnabledFor` dans une variable locale " +"ou d'instance, et l'utiliser au lieu d'appeler la méthode à chaque fois. Une " +"telle valeur mise en cache ne doit être recalculée que lorsque la " +"configuration de journalisation change dynamiquement pendant l'exécution de " +"l'application (ce qui est rarement le cas)." #: ../Doc/howto/logging.rst:1067 msgid "" @@ -1346,18 +1917,23 @@ msgid "" "Here's a list of things you can do to avoid processing during logging which " "you don't need:" msgstr "" +"Il existe d'autres optimisations qui peuvent être faites pour des " +"applications spécifiques qui nécessitent un contrôle plus précis sur les " +"informations de journalisation collectées. Voici une liste de choses que " +"vous pouvez faire pour éviter le traitement pendant la journalisation dont " +"vous n'avez pas besoin :" #: ../Doc/howto/logging.rst:1073 msgid "What you don't want to collect" -msgstr "" +msgstr "Ce que vous ne voulez pas collecter" #: ../Doc/howto/logging.rst:1073 msgid "How to avoid collecting it" -msgstr "" +msgstr "Comment éviter de le collecter" #: ../Doc/howto/logging.rst:1075 msgid "Information about where calls were made from." -msgstr "" +msgstr "Informations sur l'endroit où les appels ont été faits." #: ../Doc/howto/logging.rst:1075 msgid "" @@ -1366,22 +1942,26 @@ msgid "" "(which can't speed up code that uses :func:`sys._getframe`), if and when " "PyPy supports Python 3.x." msgstr "" +"Définissez ``logging._srcfile`` à ``None``. Cela évite d'appeler :func:`sys." +"_getframe`, qui peut aider à accélérer votre code dans des environnements " +"comme PyPy (qui ne peut pas accélérer le code qui utilise :func:`sys." +"_getframe`), si et quand PyPy prendra en charge Python 3.x." #: ../Doc/howto/logging.rst:1083 msgid "Threading information." -msgstr "" +msgstr "Informations de *threading*." #: ../Doc/howto/logging.rst:1083 msgid "Set ``logging.logThreads`` to ``0``." -msgstr "" +msgstr "Mettez ``logging.logThreads`` à ``0``." #: ../Doc/howto/logging.rst:1085 msgid "Process information." -msgstr "" +msgstr "Informations sur le processus." #: ../Doc/howto/logging.rst:1085 msgid "Set ``logging.logProcesses`` to ``0``." -msgstr "" +msgstr "Mettez ``logging.logProcesses`` à ``0``." #: ../Doc/howto/logging.rst:1088 msgid "" @@ -1389,31 +1969,34 @@ msgid "" "you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " "won't take up any memory." msgstr "" +"Notez également que le module de journalisation principale inclut uniquement " +"les gestionnaires de base. Si vous n'importez pas :mod:`logging.handlers` " +"et :mod:`logging.config`, ils ne prendront pas de mémoire." #: ../Doc/howto/logging.rst:1095 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/howto/logging.rst:1095 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/howto/logging.rst:1098 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/howto/logging.rst:1098 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." #: ../Doc/howto/logging.rst:1101 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/howto/logging.rst:1101 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: ../Doc/howto/logging.rst:1103 msgid ":ref:`A logging cookbook `" -msgstr "" +msgstr ":ref:`A logging cookbook `" diff --git a/howto/pyporting.po b/howto/pyporting.po index 728da2f02..6035de2b4 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -266,7 +266,7 @@ msgstr "" #: ../Doc/howto/pyporting.rst:162 msgid "Division" -msgstr "" +msgstr "Division" #: ../Doc/howto/pyporting.rst:164 msgid "" diff --git a/howto/sockets.po b/howto/sockets.po index 328aeebef..bbcb725ef 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -27,7 +27,7 @@ msgstr "Auteur" #: ../Doc/howto/sockets.rst:7 msgid "Gordon McMillan" -msgstr "" +msgstr "Gordon McMillan" #: ../Doc/howto/sockets.rst:None msgid "Abstract" @@ -58,6 +58,17 @@ msgid "" "blocking sockets. But I'll start by talking about blocking sockets. You'll " "need to know how they work before dealing with non-blocking sockets." msgstr "" +"Je ne vais aborder que les connecteurs INET (i.e. IPv4), mais ils " +"représentent au moins 99% des connecteurs (*socket* en anglais) utilisés. Et " +"je n'aborderai que les connecteurs STREAM (i.e. TCP) — à moins que vous ne " +"sachiez vraiment ce que vous faites (auquel cas ce HOWTO n'est pas pour " +"vous !), vous obtiendrez un meilleur comportement et de meilleures " +"performances avec un connecteur STREAM que tout autre. Je vais essayer " +"d'éclaircir le mystère de ce qu'est un connecteur, ainsi que quelques " +"conseils sur la façon de travailler avec des connecteurs bloquants et non " +"bloquants. Mais je vais commencer par aborder les connecteurs bloquants. " +"Nous avons besoin de savoir comment ils fonctionnent avant de traiter les " +"connecteurs non bloquants." #: ../Doc/howto/sockets.rst:31 msgid "" @@ -123,6 +134,12 @@ msgid "" "machine. ``s.bind(('', 80))`` specifies that the socket is reachable by any " "address the machine happens to have." msgstr "" +"Quelques remarques : nous avons utilisé ``socket.gethostname()`` pour que le " +"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." +"bind((('localhost', 80))`` ou ``s.bind((('127.0.0.0.1', 80))`` nous aurions " +"encore un connecteur \"serveur\", mais qui ne serait visible que sur la " +"machine même. ``s.bind('', 80)]`` spécifie que le socket est accessible par " +"toute adresse que la machine possède." #: ../Doc/howto/sockets.rst:87 msgid "" @@ -130,6 +147,9 @@ msgid "" "known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " "number (4 digits)." msgstr "" +"Une deuxième chose à noter : les ports dont le numéro est petit sont " +"généralement réservés aux services \"bien connus\" (HTTP, SNMP, etc.). Si " +"vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." #: ../Doc/howto/sockets.rst:91 msgid "" @@ -138,6 +158,10 @@ msgid "" "outside connections. If the rest of the code is written properly, that " "should be plenty." msgstr "" +"Enfin, l'argument ``listen`` indique à la bibliothèque de connecteurs que " +"nous voulons qu'elle mette en file d'attente jusqu'à 5 requêtes de connexion " +"(le maximum normal) avant de refuser les connexions externes. Si le reste du " +"code est écrit correctement, cela devrait suffire." #: ../Doc/howto/sockets.rst:95 msgid "" @@ -163,7 +187,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:121 msgid "IPC" -msgstr "" +msgstr "Communication Entre Processus" #: ../Doc/howto/sockets.rst:123 msgid "" @@ -173,6 +197,11 @@ msgid "" "a shortcut around a couple of layers of network code and be quite a bit " "faster." msgstr "" +"Si vous avez besoin d'une communication rapide entre deux processus sur une " +"même machine, vous devriez regarder comment utiliser les *pipes* ou la " +"mémoire partagée. Si vous décidez d'utiliser les sockets AF_INET, liez le " +"connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-formes, " +"cela court-circuitera quelques couches réseau et sera un peu plus rapide." #: ../Doc/howto/sockets.rst:129 msgid "" @@ -232,6 +261,10 @@ msgid "" "request, then reads a reply. That's it. The socket is discarded. This means " "that a client can detect the end of the reply by receiving 0 bytes." msgstr "" +"Un protocole comme HTTP utilise un connecteur pour un seul transfert. Le " +"client envoie une demande, puis lit une réponse. C'est tout. Le connecteur " +"est mis au rebut. Cela signifie qu'un client peut détecter la fin de la " +"réponse en recevant 0 octet." #: ../Doc/howto/sockets.rst:169 msgid "" @@ -246,12 +279,27 @@ msgid "" "they are* (much better), *or end by shutting down the connection*. The " "choice is entirely yours, (but some ways are righter than others)." msgstr "" +"Mais si vous prévoyez de réutiliser votre connecteur pour d'autres " +"transferts, vous devez réaliser que il n'y a *pas* d':abbr:`EOT (End of " +"Transfer)` sur un connecteur. Je répète : si un connecteur ``send`` ou " +"``recv`` retourne après avoir manipulé 0 octets, la connexion a été " +"interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre " +"sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y " +"a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un " +"peu, vous allez vous rendre compte d'une vérité fondamentale sur les " +"connecteurs : *les messages doivent être de longueur fixe* (beurk), *ou être " +"délimités* (haussement d'épaules), *ou indiquer de quelle longueur ils sont* " +"(beaucoup mieux), *ou terminer en coupant la connexion*. Le choix est " +"entièrement de votre côté, (mais certaines façons sont plus justes que " +"d'autres)." #: ../Doc/howto/sockets.rst:180 msgid "" "Assuming you don't want to end the connection, the simplest solution is a " "fixed length message::" msgstr "" +"En supposant que vous ne vouliez pas terminer la connexion, la solution la " +"plus simple est un message de longueur fixe ::" #: ../Doc/howto/sockets.rst:217 msgid "" @@ -303,7 +351,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:252 msgid "Binary Data" -msgstr "" +msgstr "Données binaires" #: ../Doc/howto/sockets.rst:254 msgid "" @@ -329,7 +377,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:272 msgid "Disconnecting" -msgstr "" +msgstr "Déconnexion" #: ../Doc/howto/sockets.rst:274 msgid "" @@ -393,6 +441,10 @@ msgid "" "calls, in much the same ways. It's just that, if you do it right, your app " "will be almost inside-out." msgstr "" +"Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez " +"savoir sur la mécanique de l'utilisation des connecteurs. Vous utiliserez " +"toujours les mêmes appels, de la même façon. C'est juste que, si vous le " +"faites bien, votre application sera presque dans la poche." #: ../Doc/howto/sockets.rst:320 msgid "" @@ -403,6 +455,13 @@ msgid "" "the exact same idea. You do this after creating the socket, but before using " "it. (Actually, if you're nuts, you can switch back and forth.)" msgstr "" +"En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-" +"bloquant. En C, c'est plus complexe, (pour commencer, vous devez choisir " +"entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " +"distinguer ``O_NDELAY``, qui est complètement différente de " +"``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après " +"avoir créé le connecteur mais avant de l'utiliser (en fait, si vous êtes " +"fou, vous pouvez alterner)." #: ../Doc/howto/sockets.rst:327 msgid "" @@ -416,7 +475,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:334 msgid "Use ``select``." -msgstr "" +msgstr "Utiliser ``select``." #: ../Doc/howto/sockets.rst:336 msgid "" @@ -424,6 +483,9 @@ msgid "" "but it's close enough to the C version that if you understand ``select`` in " "Python, you'll have little trouble with it in C::" msgstr "" +"En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, " +"mais c'est assez proche de la version C ; aussi, si vous comprenez " +"``select`` en Python, vous aurez peu de problèmes avec lui en C ::" #: ../Doc/howto/sockets.rst:347 msgid "" @@ -452,6 +514,14 @@ msgid "" "nothing. (Actually, any reasonably healthy socket will return as writable - " "it just means outbound network buffer space is available.)" msgstr "" +"Si un connecteur se trouve dans la liste des sorties que vous pouvez lire, " +"vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur " +"retournera *quelque chose*. Même chose pour la liste des sorties sur " +"lesquelles vous pouvez écrire. Vous pourrez envoyer *quelque chose*. Peut-" +"être pas tout ce que vous voudrez, mais *quelque chose* est mieux que rien. " +"(En fait, n'importe quel connecteur raisonnablement sain retournera en " +"écriture — cela signifie simplement que l'espace tampon réseau sortant est " +"disponible)." #: ../Doc/howto/sockets.rst:366 msgid "" @@ -461,6 +531,13 @@ msgid "" "it in the potential_writers list. If it shows up in the writable list, you " "have a decent chance that it has connected." msgstr "" +"Si vous avez un connecteur \"serveur\", mettez-le dans la liste des lecteurs " +"potentiels. Si il apparaît dans la liste des sorties que vous pouvez lire, " +"votre ``accept`` fonctionnera (presque certainement). Si vous avez créé un " +"nouveau connecteur pour ``connect`` à quelqu'un d'autre, mettez-le dans la " +"liste des éditeurs potentiels. Si il apparaît dans la liste des sorties sur " +"lesquelles vous pouvez écrire, vous avez une bonne chance qu'il se soit " +"connecté." #: ../Doc/howto/sockets.rst:372 msgid "" @@ -470,6 +547,11 @@ msgid "" "problem of determining whether the other end is done, or just busy with " "something else." msgstr "" +"En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " +"C'est une façon de déterminer si vous allez bloquer — le socket redevient " +"lisible lorsqu'il y a quelque chose dans les tampons. Cependant, cela n'aide " +"pas encore à déterminer si l'autre extrémité a terminé, ou si elle est " +"simplement occupée par autre chose." #: ../Doc/howto/sockets.rst:377 msgid "" @@ -479,3 +561,9 @@ msgid "" "differently on Windows. In fact, on Windows I usually use threads (which " "work very, very well) with my sockets." msgstr "" +"**Alerte de portabilité** : Sous Unix, ``select`` fonctionne aussi bien avec " +"les connecteurs qu'avec les fichiers. N'essayez pas cela sous Windows. Sous " +"Windows, ``select`` ne fonctionne qu'avec les connecteurs. Notez également " +"qu'en C, la plupart des options de connecteurs les plus avancées se font " +"différemment sous Windows. En fait, sous Windows, j'utilise habituellement " +"des fils d'exécution (qui fonctionnent très, très bien) avec mes connecteurs." diff --git a/howto/unicode.po b/howto/unicode.po index a31eb39fc..a7db96cb4 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:5 msgid "Unicode HOWTO" -msgstr "" +msgstr "Guide Unicode" #: ../Doc/howto/unicode.rst:0 msgid "Release" @@ -27,7 +27,7 @@ msgstr "Version" #: ../Doc/howto/unicode.rst:7 msgid "1.12" -msgstr "" +msgstr "1.12" #: ../Doc/howto/unicode.rst:9 msgid "" @@ -37,11 +37,11 @@ msgstr "" #: ../Doc/howto/unicode.rst:14 msgid "Introduction to Unicode" -msgstr "" +msgstr "Introduction à Unicode" #: ../Doc/howto/unicode.rst:17 msgid "History of Character Codes" -msgstr "" +msgstr "Histoire des codes de caractères" #: ../Doc/howto/unicode.rst:19 msgid "" @@ -50,6 +50,11 @@ msgid "" "for various characters, with the numeric values running from 0 to 127. For " "example, the lowercase letter 'a' is assigned 97 as its code value." msgstr "" +"En 1968, l'*American Standard Code for Information Interchange*, mieux connu " +"sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait des codes " +"numériques pour différents caractères, les valeurs numériques s'étendant de " +"0 à 127. Par exemple, la lettre minuscule « a » est assignée à 97 comme " +"valeur de code." #: ../Doc/howto/unicode.rst:24 msgid "" @@ -60,6 +65,13 @@ msgid "" "words such as 'naïve' and 'café', and some publications have house styles " "which require spellings such as 'coöperate'.)" msgstr "" +"ASCII était une norme développée par les États-Unis, elle ne définissait " +"donc que des caractères non accentués. Il y avait « e », mais pas « é » ou " +"« Í ». Cela signifiait que les langues qui nécessitaient des caractères " +"accentués ne pouvaient pas être fidèlement représentées en ASCII. (En fait, " +"les accents manquants importaient pour l'anglais aussi, qui contient des " +"mots tels que « naïve » et « café », et certaines publications ont des " +"styles propres qui exigent des orthographes tels que « *coöperate* ».)" #: ../Doc/howto/unicode.rst:31 msgid "" @@ -67,12 +79,17 @@ msgid "" "mid-1980s an Apple II BASIC program written by a French speaker might have " "lines like these:" msgstr "" +"Pendant un certain temps, les gens ont juste écrit des programmes qui " +"n'affichaient pas d'accents. Au milieu des années 1980, un programme Apple " +"II BASIC écrit par un français pouvait avoir des lignes comme celles-ci : ::" #: ../Doc/howto/unicode.rst:40 msgid "" "Those messages should contain accents (terminée, paramètre, enregistrés) and " "they just look wrong to someone who can read French." msgstr "" +"Ces messages devraient contenir des accents (terminée, paramètre, " +"enregistrés) et ils ont juste l'air anormaux à quelqu'un lisant le français." #: ../Doc/howto/unicode.rst:43 msgid "" @@ -86,6 +103,17 @@ msgid "" "conventions that were invented by one company or another and managed to " "catch on." msgstr "" +"Dans les années 1980, presque tous les ordinateurs personnels étaient à 8 " +"bits, ce qui signifie que les octets pouvaient contenir des valeurs allant " +"de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors certaines " +"machines ont assigné les valeurs entre 128 et 255 à des caractères " +"accentués. Différentes machines avaient des codes différents, cependant, ce " +"qui a conduit à des problèmes d'échange de fichiers. Finalement, divers " +"ensembles de valeurs couramment utilisés pour la gamme 128--255 ont émergé. " +"Certains étaient de véritables normes, définies par l'Organisation " +"internationale de normalisation, et certaines étaient des conventions *de " +"facto* qui ont été inventées par une entreprise ou une autre et qui ont fini " +"par se répandre." #: ../Doc/howto/unicode.rst:52 msgid "" @@ -94,6 +122,10 @@ msgid "" "for Russian into the 128--255 range because there are more than 128 such " "characters." msgstr "" +"255 caractères, ça n'est pas beaucoup. Par exemple, vous ne pouvez pas " +"contenir à la fois les caractères accentués utilisés en Europe occidentale " +"et l'alphabet cyrillique utilisé pour le russe dans la gamme 128--255, car " +"il y a plus de 128 de tous ces caractères." #: ../Doc/howto/unicode.rst:56 msgid "" @@ -103,6 +135,12 @@ msgid "" "that quotes some Russian text? In the 1980s people began to want to solve " "this problem, and the Unicode standardization effort began." msgstr "" +"Vous pouviez écrire les fichiers avec des codes différents (tous vos " +"fichiers russes dans un système de codage appelé *KOI8*, tous vos fichiers " +"français dans un système de codage différent appelé *Latin1*), mais que " +"faire si vous souhaitiez écrire un document français citant du texte russe ? " +"Dans les années 80, les gens ont commencé à vouloir résoudre ce problème, et " +"les efforts de standardisation Unicode ont commencé." #: ../Doc/howto/unicode.rst:62 msgid "" @@ -114,6 +152,14 @@ msgid "" "meet that goal, and the modern Unicode specification uses a wider range of " "codes, 0 through 1,114,111 ( ``0x10FFFF`` in base 16)." msgstr "" +"Unicode a commencé par utiliser des caractères 16 bits au lieu de 8 bits. 16 " +"bits signifie que vous avez 2^16 = 65 536 valeurs distinctes disponibles, ce " +"qui permet de représenter de nombreux caractères différents à partir de " +"nombreux alphabets différents. Un des objectifs initiaux était de faire en " +"sorte que Unicode contienne les alphabets de chaque langue humaine. Il " +"s’avère que même 16 bits ne suffisent pas pour atteindre cet objectif, et la " +"spécification Unicode moderne utilise une gamme de codes plus étendue, " +"allant de 0 à 1 114 111 (``0x10FFFF`` en base 16)." #: ../Doc/howto/unicode.rst:70 msgid "" @@ -121,6 +167,9 @@ msgid "" "originally separate efforts, but the specifications were merged with the 1.1 " "revision of Unicode." msgstr "" +"Il existe une norme ISO connexe, ISO 10646. Unicode et ISO 10646 étaient à " +"l’origine des efforts séparés, mais les spécifications ont été fusionnées " +"avec la révision 1.1 d’Unicode." #: ../Doc/howto/unicode.rst:74 msgid "" @@ -130,10 +179,16 @@ msgid "" "listed in the References or the `Wikipedia entry for Unicode `_ for more information.)" msgstr "" +"(Cette discussion sur l’historique d’Unicode est extrêmement simplifiée. Les " +"détails historiques précis ne sont pas nécessaires pour comprendre comment " +"utiliser efficacement Unicode, mais si vous êtes curieux, consultez le site " +"du consortium Unicode indiqué dans les références ou la `page Wikipédia pour " +"Unicode `_ (page en anglais) " +"pour plus d’informations.)" #: ../Doc/howto/unicode.rst:83 msgid "Definitions" -msgstr "" +msgstr "Définitions" #: ../Doc/howto/unicode.rst:85 msgid "" @@ -174,10 +229,17 @@ msgid "" "to worry about glyphs; figuring out the correct glyph to display is " "generally the job of a GUI toolkit or a terminal's font renderer." msgstr "" +"Un caractère est représenté sur un écran ou sur papier par un ensemble " +"d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " +"exemple, est deux traits diagonaux et un trait horizontal, bien que les " +"détails exacts dépendent de la police utilisée. La plupart du code Python " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " +"des polices d’un terminal." #: ../Doc/howto/unicode.rst:122 msgid "Encodings" -msgstr "" +msgstr "Encodages" #: ../Doc/howto/unicode.rst:124 msgid "" @@ -199,10 +261,14 @@ msgid "" "This representation is straightforward but using it presents a number of " "problems." msgstr "" +"Cette représentation est simple mais son utilisation pose un certain nombre " +"de problèmes." #: ../Doc/howto/unicode.rst:142 msgid "It's not portable; different processors order the bytes differently." msgstr "" +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"différemment." #: ../Doc/howto/unicode.rst:144 msgid "" @@ -214,18 +280,32 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " +"occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " +"ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " +"généralement pas si grandes que ça), mais l'accroissement de notre " +"utilisation du disque et de la bande passante réseau par un facteur de 4 est " +"intolérable." #: ../Doc/howto/unicode.rst:152 msgid "" "It's not compatible with existing C functions such as ``strlen()``, so a new " "family of wide string functions would need to be used." msgstr "" +"Elle n’est pas compatible avec les fonctions C existantes telles que " +"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " +"celle des chaînes larges (*wide strings*)." #: ../Doc/howto/unicode.rst:155 msgid "" "Many Internet standards are defined in terms of textual data, and can't " "handle content with embedded zero bytes." msgstr "" +"De nombreuses normes Internet sont définies en termes de données textuelles " +"et ne peuvent pas gérer le contenu incorporant des octets *zéro*." #: ../Doc/howto/unicode.rst:158 msgid "" @@ -233,6 +313,10 @@ msgid "" "that are more efficient and convenient. UTF-8 is probably the most commonly " "supported encoding; it will be discussed below." msgstr "" +"Généralement, les gens n’utilisent pas cet encodage, mais optent pour " +"d’autres encodages plus efficaces et pratiques. UTF-8 est probablement " +"l’encodage le plus couramment pris en charge ; celui-ci sera abordé ci-" +"dessous." #: ../Doc/howto/unicode.rst:162 msgid "" @@ -240,12 +324,17 @@ msgid "" "encodings don't. The rules for converting a Unicode string into the ASCII " "encoding, for example, are simple; for each code point:" msgstr "" +"Les encodages n'ont pas à gérer tous les caractères Unicode possibles, et " +"les plupart ne le font pas. Les règles pour convertir une chaîne Unicode en " +"codage ASCII, par exemple, sont simples. pour chaque point de code :" #: ../Doc/howto/unicode.rst:166 msgid "" "If the code point is < 128, each byte is the same as the value of the code " "point." msgstr "" +"Si le point de code est < 128, chaque octet est identique à la valeur du " +"point de code." #: ../Doc/howto/unicode.rst:169 msgid "" @@ -253,6 +342,9 @@ msgid "" "in this encoding. (Python raises a :exc:`UnicodeEncodeError` exception in " "this case.)" msgstr "" +"Si le point de code est égal à 128 ou plus, la chaîne Unicode ne peut pas " +"être représentée dans ce codage (Python déclenche une exception :exc:" +"`UnicodeEncodeError` dans ce cas)." #: ../Doc/howto/unicode.rst:173 msgid "" @@ -262,6 +354,11 @@ msgid "" "point larger than 255 is encountered, the string can't be encoded into " "Latin-1." msgstr "" +"Latin-1, également connu sous le nom de ISO-8859-1, est un encodage " +"similaire. Les points de code Unicode 0–255 étant identiques aux valeurs de " +"Latin-1, la conversion en cet encodage nécessite simplement la conversion " +"des points de code en octets de même valeur ; si un point de code supérieur " +"à 255 est rencontré, la chaîne ne peut pas être codée en latin-1." #: ../Doc/howto/unicode.rst:178 msgid "" @@ -272,6 +369,14 @@ msgid "" "encoding, you'd probably use some sort of lookup table to perform the " "conversion, but this is largely an internal detail." msgstr "" +"Les encodages ne doivent pas nécessairement être de simples mappages un à " +"un, comme Latin-1. Prenons l’exemple du code EBCDIC d’IBM, utilisé sur les " +"ordinateurs centraux IBM. Les valeurs de lettre ne faisaient pas partie d’un " +"bloc: les lettres « a » à « i » étaient comprises entre 129 et 137, mais les " +"lettres « j » à « r » étaient comprises entre 145 et 153. Si vous vouliez " +"utiliser EBCDIC comme encodage, vous auriez probablement utilisé une sorte " +"de table de correspondance pour effectuer la conversion, mais il s’agit en " +"surtout d’un détail d'implémentation." #: ../Doc/howto/unicode.rst:185 msgid "" @@ -285,20 +390,25 @@ msgstr "" msgid "" "If the code point is < 128, it's represented by the corresponding byte value." msgstr "" +"Si le point de code est < 128, il est représenté par la valeur de l'octet " +"correspondant." #: ../Doc/howto/unicode.rst:191 msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" +"Si le point de code est >= 128, il est transformé en une séquence de deux, " +"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " +"et 255." #: ../Doc/howto/unicode.rst:194 msgid "UTF-8 has several convenient properties:" -msgstr "" +msgstr "UTF-8 a plusieurs propriétés intéressantes :" #: ../Doc/howto/unicode.rst:196 msgid "It can handle any Unicode code point." -msgstr "" +msgstr "Il peut gérer n'importe quel point de code Unicode." #: ../Doc/howto/unicode.rst:197 msgid "" @@ -310,13 +420,15 @@ msgstr "" #: ../Doc/howto/unicode.rst:201 msgid "A string of ASCII text is also valid UTF-8 text." -msgstr "" +msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." #: ../Doc/howto/unicode.rst:202 msgid "" "UTF-8 is fairly compact; the majority of commonly used characters can be " "represented with one or two bytes." msgstr "" +"UTF-8 est assez compact. La majorité des caractères couramment utilisés " +"peuvent être représentés avec un ou deux octets." #: ../Doc/howto/unicode.rst:204 msgid "" @@ -324,6 +436,10 @@ msgid "" "next UTF-8-encoded code point and resynchronize. It's also unlikely that " "random 8-bit data will look like valid UTF-8." msgstr "" +"Si des octets sont corrompus ou perdus, il est possible de déterminer le " +"début du prochain point de code encodé en UTF-8 et de se resynchroniser. Il " +"est également improbable que des données 8-bits aléatoires ressemblent à du " +"UTF-8 valide." #: ../Doc/howto/unicode.rst:211 ../Doc/howto/unicode.rst:485 #: ../Doc/howto/unicode.rst:705 @@ -338,6 +454,11 @@ msgid "" "history/>`_ of the origin and development of Unicode is also available on " "the site." msgstr "" +"Le site du `Consortium Unicode `_, en anglais, a des " +"diagrammes de caractères, un glossaire et des versions PDF de la " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"`chronologie `_ de l’origine et du " +"développement de l’Unicode est également disponible sur le site." #: ../Doc/howto/unicode.rst:218 msgid "" @@ -360,6 +481,9 @@ msgid "" "encoding `_\" and `UTF-8 " "`_, for example." msgstr "" +"Les pages Wikipédia sont souvent utiles ; voir les pages pour \"`Codage des " +"caractères `_\" et " +"`UTF-8 `_, par exemple." #: ../Doc/howto/unicode.rst:233 msgid "Python's Unicode Support" diff --git a/library/__future__.po b/library/__future__.po index 8fa909f96..cd473ed0d 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -28,12 +28,15 @@ msgstr "**Source code:** :source:`Lib/_future_.py`" #: ../Doc/library/__future__.rst:11 msgid ":mod:`__future__` is a real module, and serves three purposes:" msgstr "" +"Le module :mod:`__future__` est un vrai module, et il a trois objectifs :" #: ../Doc/library/__future__.rst:13 msgid "" "To avoid confusing existing tools that analyze import statements and expect " "to find the modules they're importing." msgstr "" +"éviter de dérouter les outils existants qui analysent les instructions " +"d'importation et s'attendent à trouver les modules qu'ils importent ;" #: ../Doc/library/__future__.rst:16 msgid "" @@ -41,6 +44,10 @@ msgid "" "2.1 at least yield runtime exceptions (the import of :mod:`__future__` will " "fail, because there was no module of that name prior to 2.1)." msgstr "" +"s'assurer que les :ref:`instructions *future* ` lancées sous les " +"versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution " +"(l’import du module :mod:`__future__` échoue, car il n’y avait pas de module " +"de ce nom avant 2.1) ;" #: ../Doc/library/__future__.rst:20 msgid "" @@ -49,22 +56,31 @@ msgid "" "and can be inspected programmatically via importing :mod:`__future__` and " "examining its contents." msgstr "" +"Pour documenter le phasage de changements entraînant des incompatibilités : " +"introduction, utilisation obligatoire. Il s’agit d’une forme de " +"documentation exécutable, qui peut être inspectée par un programme en " +"important :mod:`__future__` et en examinant son contenu." #: ../Doc/library/__future__.rst:25 msgid "Each statement in :file:`__future__.py` is of the form::" -msgstr "" +msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" #: ../Doc/library/__future__.rst:31 msgid "" "where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " "are 5-tuples of the same form as :data:`sys.version_info`::" msgstr "" +"où, normalement, *OptionalRelease* est inférieur à *MandatoryRelease*, et " +"les deux sont des quintuplets de la même forme que :data:`sys." +"version_info` ::" #: ../Doc/library/__future__.rst:41 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." msgstr "" +"*OptionalRelease* enregistre la première version dans laquelle la " +"fonctionnalité a été acceptée." #: ../Doc/library/__future__.rst:43 msgid "" @@ -72,6 +88,9 @@ msgid "" "*MandatoryRelease* predicts the release in which the feature will become " "part of the language." msgstr "" +"Dans le cas d'un *MandatoryRelease* qui n'a pas encore eu lieu, " +"*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " +"deviendra un élément du langage." #: ../Doc/library/__future__.rst:47 msgid "" @@ -80,18 +99,26 @@ msgid "" "statement to use the feature in question, but may continue to use such " "imports." msgstr "" +"Sinon *MandatoryRelease* enregistre lorsque la fonctionnalité est devenue " +"une partie du langage ; dans cette version ou les suivantes, les modules " +"n'ont plus besoin d'une déclaration *future* pour utiliser la fonctionnalité " +"en question, mais ils peuvent continuer à utiliser ces importations." #: ../Doc/library/__future__.rst:51 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped." msgstr "" +"*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " +"fonction planifiée a été abandonnée." #: ../Doc/library/__future__.rst:54 msgid "" "Instances of class :class:`_Feature` have two corresponding methods, :meth:" "`getOptionalRelease` and :meth:`getMandatoryRelease`." msgstr "" +"Les instances de classe :class:`_Feature` ont deux méthodes " +"correspondantes, :meth:`getOptionalRelease` et :meth:`getMandatoryRelease`." #: ../Doc/library/__future__.rst:57 msgid "" @@ -100,6 +127,11 @@ msgid "" "dynamically compiled code. This flag is stored in the :attr:`compiler_flag` " "attribute on :class:`_Feature` instances." msgstr "" +"*CompilerFlag* est un drapeau (chaque bit représente un champ) qui doit être " +"passé en tant que quatrième argument à la fonction native :func:`compile` " +"pour activer la fonctionnalité dans le code compilé dynamiquement. Cet " +"indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " +"instances de :class:`_Feature`." #: ../Doc/library/__future__.rst:62 msgid "" @@ -186,7 +218,7 @@ msgstr "2.5.0a1" #: ../Doc/library/__future__.rst:78 msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" -msgstr "" +msgstr ":pep:`328` : *Imports : multilignes et absolus/relatifs*" #: ../Doc/library/__future__.rst:81 msgid "with_statement" @@ -235,6 +267,7 @@ msgstr "3.7" #: ../Doc/library/__future__.rst:90 msgid ":pep:`479`: *StopIteration handling inside generators*" msgstr "" +":pep:`479` : *Gestion de *StopIteration* à l’intérieur des générateurs*" #: ../Doc/library/__future__.rst:97 msgid ":ref:`future`" diff --git a/library/_thread.po b/library/_thread.po index fc1d7a07c..e18aa596c 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -95,6 +95,11 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" +"Renvoie l'\"identificateur de fil\" du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme valeur magique opaque, par exemple comme clef de " +"dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " +"être recyclés lorsqu'un fil se termine et qu'un autre fil est créé." #: ../Doc/library/_thread.rst:94 msgid "" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 52fd67823..3ae7af346 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -210,6 +210,8 @@ msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." msgstr "" +"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " +"` de la documentation." #: ../Doc/library/asyncio-eventloop.rst:157 msgid "Delayed calls" @@ -271,7 +273,7 @@ msgstr "La fonction :func:`asyncio.sleep`." #: ../Doc/library/asyncio-eventloop.rst:213 msgid "Futures" -msgstr "" +msgstr "Futurs" #: ../Doc/library/asyncio-eventloop.rst:217 msgid "Create an :class:`asyncio.Future` object attached to the loop." diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 5d6488d3b..d83a34a5f 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -82,7 +82,7 @@ msgstr "Les nouvelles méthodes :meth:`join` et :meth:`task_done`." #: ../Doc/library/asyncio-queue.rst:42 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." #: ../Doc/library/asyncio-queue.rst:46 msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." @@ -121,6 +121,8 @@ msgstr "" #: ../Doc/library/asyncio-queue.rst:73 msgid "Block until all items in the queue have been gotten and processed." msgstr "" +"Bloque jusqu'à ce que tous les éléments de la queue aient été récupérés et " +"traités." #: ../Doc/library/asyncio-queue.rst:75 msgid "" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index 9d2ec1be1..33f333ded 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/asyncio-sync.rst:5 msgid "Synchronization primitives" -msgstr "" +msgstr "Primitives de synchronisation" #: ../Doc/library/asyncio-sync.rst:7 msgid "**Source code:** :source:`Lib/asyncio/locks.py`" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 68fc7fb90..791805a8b 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -514,7 +514,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:438 msgid "The frames are always ordered from oldest to newest." -msgstr "" +msgstr "La pile est toujours affichée de l'appelant à l'appelé." #: ../Doc/library/asyncio-task.rst:440 msgid "" @@ -583,6 +583,8 @@ msgid "" "Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " "are done." msgstr "" +"Lève une exception :exc:`asyncio.TimeoutError` si le délai d'attente est " +"dépassé avant que tous les futurs ne soient achevés." #: ../Doc/library/asyncio-task.rst:515 msgid "Example::" @@ -650,6 +652,8 @@ msgid "" "If the *gather* itself is cancelled, the cancellation is propagated " "regardless of *return_exceptions*." msgstr "" +"Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " +"*return_exceptions*." #: ../Doc/library/asyncio-task.rst:577 msgid "" @@ -689,6 +693,8 @@ msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." msgstr "" +"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " +"` de la documentation." #: ../Doc/library/asyncio-task.rst:620 msgid "" @@ -780,6 +786,7 @@ msgstr ":const:`FIRST_COMPLETED`" #: ../Doc/library/asyncio-task.rst:686 msgid "The function will return when any future finishes or is cancelled." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." #: ../Doc/library/asyncio-task.rst:689 msgid ":const:`FIRST_EXCEPTION`" @@ -791,6 +798,9 @@ msgid "" "If no future raises an exception then it is equivalent to :const:" "`ALL_COMPLETED`." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." #: ../Doc/library/asyncio-task.rst:695 msgid ":const:`ALL_COMPLETED`" @@ -799,6 +809,7 @@ msgstr ":const:`ALL_COMPLETED`" #: ../Doc/library/asyncio-task.rst:695 msgid "The function will return when all futures finish or are cancelled." msgstr "" +"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." #: ../Doc/library/asyncio-task.rst:701 msgid "Usage::" diff --git a/library/atexit.po b/library/atexit.po index b2acd0d20..977c05b49 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -68,6 +68,12 @@ msgid "" "modules will normally be imported before higher level modules and thus must " "be cleaned up later." msgstr "" +"Lors d'un arrêt normal du programme (par exemple, si :func:`sys.exit` est " +"appelée ou l’exécution du module principal se termine), toutes les fonctions " +"inscrites sont appelées, dans l'ordre de la dernière arrivée, première " +"servie. La supposition est que les modules les plus bas niveau vont " +"normalement être importés avant les modules haut niveau et ainsi être " +"nettoyés en dernier." #: ../Doc/library/atexit.rst:37 msgid "" diff --git a/library/binascii.po b/library/binascii.po index 3de6044a7..49de9c6d9 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" -msgstr "" +msgstr ":mod:`binascii` --- Conversion entre binaire et ASCII" #: ../Doc/library/binascii.rst:15 msgid "" @@ -30,6 +30,12 @@ msgid "" "low-level functions written in C for greater speed that are used by the " "higher-level modules." msgstr "" +"Le module :mod:`binascii` contient des méthodes pour convertir entre binaire " +"et diverses représentations binaires encodées en ASCII. Normalement, vous " +"n’allez pas utiliser ces fonctions directement mais vous utiliserez des " +"modules d’encapsulage comme :mod:`uu`, :mod:`base64`, or :mod:`binhex` à la " +"place. Le module :mod:`binascii` contient des fonctions bas-niveau écrites " +"en C plus rapides qui sont utilisées par des modules haut-niveau." #: ../Doc/library/binascii.rst:24 msgid "" @@ -38,14 +44,20 @@ msgid "" "(such as :class:`bytes`, :class:`bytearray` and other objects that support " "the buffer protocol)." msgstr "" +"La fonction ``a2b_*`` accepte des chaînes de caractères contenant seulement " +"des caractères ASCII. D’autres fonctions acceptent seulement des objets :" +"term:`bytes et similaire ` (tel que :class:`bytes`, :" +"class:`bytearray` et autres objets qui supportent le protocole tampon)." #: ../Doc/library/binascii.rst:29 msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." msgstr "" +"Les chaines de caractères *unicode* seulement composées de caractères ASCII " +"sont désormais acceptées par les fonctions ``a2b_*``." #: ../Doc/library/binascii.rst:33 msgid "The :mod:`binascii` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`binascii` définit les fonctions suivantes :" #: ../Doc/library/binascii.rst:38 msgid "" @@ -53,6 +65,10 @@ msgid "" "data. Lines normally contain 45 (binary) bytes, except for the last line. " "Line data may be followed by whitespace." msgstr "" +"Convertit une seule ligne de donnée *uuencoded* en binaire et renvoie la " +"donnée binaire. Les lignes contiennent normalement 45 octets (binaire), sauf " +"pour la dernière ligne. Il se peut que la ligne de donnée soit suivie d’un " +"espace blanc." #: ../Doc/library/binascii.rst:45 msgid "" @@ -66,6 +82,8 @@ msgid "" "Convert a block of base64 data back to binary and return the binary data. " "More than one line may be passed at a time." msgstr "" +"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " +"binaire. Plus d’une ligne peut être passé à la fois." #: ../Doc/library/binascii.rst:58 msgid "" @@ -73,10 +91,14 @@ msgid "" "return value is the converted line, including a newline char if *newline* is " "true. The output of this function conforms to :rfc:`3548`." msgstr "" +"Convertit les données binaires en une ligne de caractères ASCII en codage " +"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " +"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " +"conforme à :rfc:`3548`." #: ../Doc/library/binascii.rst:62 msgid "Added the *newline* parameter." -msgstr "" +msgstr "Ajout du paramètre *newline*." #: ../Doc/library/binascii.rst:68 msgid "" @@ -84,6 +106,10 @@ msgid "" "binary data. More than one line may be passed at a time. If the optional " "argument *header* is present and true, underscores will be decoded as spaces." msgstr "" +"Convertit un bloc de données *quoted-printable* en binaire et renvoie les " +"données binaires. Plus d’une ligne peut être passée à la fois. Si l’argument " +"optionnel *header* est présent et vrai, les traits soulignés seront décodés " +"en espaces." #: ../Doc/library/binascii.rst:75 msgid "" @@ -97,6 +123,16 @@ msgid "" "newline characters will be encoded as well; otherwise linefeed conversion " "might corrupt the binary data stream." msgstr "" +"Convertit les données binaires en ligne(s) de caractères ASCII en codage " +"imprimable entre guillemets. La valeur de retour est la\\les lignes(s) " +"convertie(s). Si l’argument optionnel *quotetabs* est présent et vrai, " +"toutes les tabulations et espaces seront encodés. Si l’argument optionnel " +"*istext* est présent et faux, les nouvelles lignes ne sont pas encodées mais " +"les espaces de fin de ligne le seront. Si l’argument optionnel *header* est " +"présent et vrai, les espaces vont être encodés comme de traits soulignés " +"selon :rfc:`1522`. Si l’argument optionnel *header* est présent et faux, les " +"caractères de nouvelle ligne seront également encodés ; sinon la conversion " +"de saut de ligne pourrait corrompre le flux de données binaire." #: ../Doc/library/binascii.rst:88 msgid "" @@ -105,6 +141,10 @@ msgid "" "or (in case of the last portion of the binhex4 data) have the remaining bits " "zero." msgstr "" +"Convertit un bloc de donnée ASCII au format *binhex4* en binaire, sans faire " +"de décompression RLE. La chaîne de caractères doit contenir un nombre " +"complet d’octet binaires ou (au cas où la dernière portion de donnée est au " +"format *binhex4*) avoir les bits restants à 0." #: ../Doc/library/binascii.rst:95 msgid "" @@ -114,14 +154,22 @@ msgid "" "returns the decompressed data, unless data input data ends in an orphaned " "repeat indicator, in which case the :exc:`Incomplete` exception is raised." msgstr "" +"Réalise une décompression RLE sur la donnée, d’après la norme *binhex4*. " +"L’algorithme utilise ``0x90`` après un octet comme un indicateur de " +"répétition, suivi d’un décompte. Un décompte de ``0`` définit une valeur " +"d’octet de ``0x90``. La routine renvoie la donnée décompressée, sauf si la " +"donnée entrante se finit sur un indicateur de répétition orphelin. Dans ce " +"cas l’exception :exc:`Incomplete` est levée." #: ../Doc/library/binascii.rst:101 msgid "Accept only bytestring or bytearray objects as input." -msgstr "" +msgstr "Accepte seulement des objets *bytestring* ou *bytearray* en entrée." #: ../Doc/library/binascii.rst:107 msgid "Perform binhex4 style RLE-compression on *data* and return the result." msgstr "" +"Réalise une compression RLE de type *binhex4* sur *data* et renvoie le " +"résultat." #: ../Doc/library/binascii.rst:112 msgid "" @@ -129,6 +177,9 @@ msgid "" "The argument should already be RLE-coded, and have a length divisible by 3 " "(except possibly the last fragment)." msgstr "" +"Réalise une traduction *hexbin4* de binaire à ASCII et renvoie la chaîne de " +"caractères résultante. L’argument doit être *RLE-coded*, et avoir une " +"longueur divisible par 3 (sauf, éventuellement, le dernier fragment)." #: ../Doc/library/binascii.rst:119 msgid "" @@ -137,6 +188,10 @@ msgid "" "+ *x*:sup:`12` + *x*:sup:`5` + 1, often represented as 0x1021. This CRC is " "used in the binhex4 format." msgstr "" +"Calcule une valeur en CRC 16-bit de *data*, commençant par *value* comme CRC " +"initial et renvoie le résultat. Ceci utilise le CRC-CCITT polynomial *x*:sup:" +"`16` + *x*:sup:`12` + *x*:sup:`5` + 1, souvent représenté comme *0x1021*. Ce " +"CRC est utilisé dans le format *binhex4*." #: ../Doc/library/binascii.rst:127 msgid "" @@ -146,12 +201,20 @@ msgid "" "checksum algorithm, it is not suitable for use as a general hash algorithm. " "Use as follows::" msgstr "" +"Calcule CRC-32, la somme de contrôle 32-bit de *data*, commençant par un CRC " +"initial de *value*. Le CRC initial par défaut est zéro. L’algorithme est " +"cohérent avec la somme de contrôle du fichier ZIP. Comme l’algorithme est " +"conçu pour être utilisé comme un algorithme de somme de contrôle, il ne " +"convient pas comme algorithme de hachage général. Utiliser comme suit ::" #: ../Doc/library/binascii.rst:139 msgid "" "The result is always unsigned. To generate the same numeric value across all " "Python versions and platforms, use ``crc32(data) & 0xffffffff``." msgstr "" +"Le résultat est toujours non signé. Pour générer la même valeur numérique " +"sur toutes les versions de Python et plateformes, utilisez ``crc32(data) & " +"0xffffffff``." #: ../Doc/library/binascii.rst:148 msgid "" @@ -159,6 +222,9 @@ msgid "" "*data* is converted into the corresponding 2-digit hex representation. The " "returned bytes object is therefore twice as long as the length of *data*." msgstr "" +"Renvoie la représentation hexadécimale du binaire *data*. Chaque octet de " +"*data* est converti en la représentation 2 chiffres correspondante. L’objet " +"octets renvoyé est donc deux fois plus long que la longueur de *data*." #: ../Doc/library/binascii.rst:156 msgid "" @@ -167,16 +233,25 @@ msgid "" "number of hexadecimal digits (which can be upper or lower case), otherwise " "an :exc:`Error` exception is raised." msgstr "" +"Renvoie la donnée binaire représentée par la chaîne de caractères " +"hexadécimale *hexstr*. Cette fonction est l’inverse de :func:`b2a_hex`. " +"*hexstr* doit contenir un nombre pair de chiffres hexadécimaux (qui peuvent " +"être en majuscule ou minuscule), sinon une exception :exc:`Error` est levée." #: ../Doc/library/binascii.rst:164 msgid "Exception raised on errors. These are usually programming errors." msgstr "" +"Exception levée en cas d'erreurs. Ce sont typiquement des erreurs de " +"programmation." #: ../Doc/library/binascii.rst:169 msgid "" "Exception raised on incomplete data. These are usually not programming " "errors, but may be handled by reading a little more data and trying again." msgstr "" +"Exception levée par des données incomplète. Il ne s’agit généralement pas " +"d’erreurs de programmation, mais elles peuvent être traitées en lisant un " +"peu plus de données et en réessayant." #: ../Doc/library/binascii.rst:177 msgid "Module :mod:`base64`" @@ -186,6 +261,7 @@ msgstr "Module :mod:`base64`" msgid "" "Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." msgstr "" +"Support de l’encodage *base64-style* conforme RFC en base 16, 32, 64 et 85." #: ../Doc/library/binascii.rst:180 msgid "Module :mod:`binhex`" @@ -193,7 +269,7 @@ msgstr "Module :mod:`binhex`" #: ../Doc/library/binascii.rst:180 msgid "Support for the binhex format used on the Macintosh." -msgstr "" +msgstr "Support pour le format *binhex* utilisé sur Macintosh." #: ../Doc/library/binascii.rst:183 msgid "Module :mod:`uu`" @@ -210,3 +286,5 @@ msgstr "Module :mod:`quopri`" #: ../Doc/library/binascii.rst:186 msgid "Support for quoted-printable encoding used in MIME email messages." msgstr "" +"Support de l’encodage *quote-printable* utilisé par les messages *email* " +"MIME." diff --git a/library/calendar.po b/library/calendar.po index 87d1bf527..e0adf6a56 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -35,6 +35,13 @@ msgid "" "Parameters that specify dates are given as integers. For related " "functionality, see also the :mod:`datetime` and :mod:`time` modules." msgstr "" +"Ce module permet d'afficher un calendrier comme le fait le programme Unix :" +"program:`cal`, et il fournit des fonctions utiles relatives au calendrier. " +"Par défaut, ces calendriers ont le lundi comme premier jour de la semaine et " +"le dimanche comme dernier jour. Utilisez :func:`setfirstweekday` pour " +"définir le premier jour de la semaine à dimanche (6) ou à tout autre jour de " +"la semaine. Les paramètres pour spécifier les dates sont donnés sous forme " +"de nombres entiers. Voir aussi les modules :mod:`datetime` et :mod:`time`." #: ../Doc/library/calendar.rst:22 msgid "" @@ -50,6 +57,9 @@ msgid "" "Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " "the first day of the week. ``0`` is Monday (the default), ``6`` is Sunday." msgstr "" +"Crée un objet :class:`Calendar`. *firstweekday* est un entier spécifiant le " +"premier jour de la semaine, valant par défaut ``0`` (lundi), pouvant aller " +"jusqu'à ``6`` (dimanche)." #: ../Doc/library/calendar.rst:34 msgid "" @@ -57,10 +67,13 @@ msgid "" "preparing the calendar data for formatting. This class doesn't do any " "formatting itself. This is the job of subclasses." msgstr "" +"L'objet :class:`Calendar` fournit plusieurs méthodes pouvant être utilisées " +"pour préparer les données du calendrier pour le formatage. Cette classe ne " +"fait pas de formatage elle-même. Il s'agit du travail des sous-classes." #: ../Doc/library/calendar.rst:39 msgid ":class:`Calendar` instances have the following methods:" -msgstr "" +msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" #: ../Doc/library/calendar.rst:43 msgid "" @@ -68,6 +81,8 @@ msgid "" "The first value from the iterator will be the same as the value of the :attr:" "`firstweekday` property." msgstr "" +"Renvoie un itérateur sur les numéros des jours d'une semaine. La première " +"valeur est donc la même que la valeur de la propriété :attr:`firstweekday`." #: ../Doc/library/calendar.rst:50 msgid "" @@ -76,6 +91,10 @@ msgid "" "month and all days before the start of the month or after the end of the " "month that are required to get a complete week." msgstr "" +"Renvoie un itérateur sur les jours du mois *month* (1 à 12) de l'année " +"*year*. Cet itérateur renvoie tous les jours du mois (sous forme d'instances " +"de :class:`datetime.date`) ainsi que tous les jours avant le début du mois " +"et après la fin du mois nécessaires pour obtenir des semaines complètes." #: ../Doc/library/calendar.rst:58 msgid "" @@ -95,18 +114,25 @@ msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven :class:`datetime.date` objects." msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont des listes de sept objets :class:`datetime.date`." #: ../Doc/library/calendar.rst:77 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont des listes de sept paires contenant le numéro du jour dans " +"le mois et du numéro du jour dans la semaine." #: ../Doc/library/calendar.rst:84 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven day numbers." msgstr "" +"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " +"Les semaines sont une liste de sept numéros de jours." #: ../Doc/library/calendar.rst:90 msgid "" @@ -115,6 +141,11 @@ msgid "" "(defaulting to 3). Each month contains between 4 and 6 weeks and each week " "contains 1--7 days. Days are :class:`datetime.date` objects." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année. La valeur " +"renvoyée est une liste de lignes de mois. Chaque ligne mensuelle contient " +"jusqu'à *width* mois (avec une valeur par défaut à 3). Chaque mois contient " +"de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des objets :" +"class:`datetime.date`." #: ../Doc/library/calendar.rst:98 msgid "" @@ -122,6 +153,10 @@ msgid "" "meth:`yeardatescalendar`). Entries in the week lists are tuples of day " "numbers and weekday numbers. Day numbers outside this month are zero." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"meth:`yeardatescalendar`). Les listes des semaines contiennent des paires " +"contenant le numéro du jour du mois et le numéro du jour de la semaine. Les " +"numéro des jours en dehors de ce mois sont à zéro." #: ../Doc/library/calendar.rst:105 msgid "" @@ -129,14 +164,18 @@ msgid "" "meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day " "numbers outside this month are zero." msgstr "" +"Renvoie ce qu'il faut pour afficher correctement une année, (similaire à :" +"meth:`yeardatescalendar`). Les listes de semaines contiennent des numéros de " +"jours. Les numéros de jours en dehors de ce mois sont de zéro." #: ../Doc/library/calendar.rst:112 msgid "This class can be used to generate plain text calendars." msgstr "" +"Cette classe peut être utilisée pour générer des calendriers en texte brut." #: ../Doc/library/calendar.rst:114 msgid ":class:`TextCalendar` instances have the following methods:" -msgstr "" +msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" #: ../Doc/library/calendar.rst:118 msgid "" @@ -146,10 +185,16 @@ msgid "" "the first weekday as specified in the constructor or set by the :meth:" "`setfirstweekday` method." msgstr "" +"Donne le calendrier d'un mois dans une chaîne multi-ligne. Si *w* est " +"fourni, il spécifie la largeur des colonnes de date, qui sont centrées. Si " +"*l* est donné, il spécifie le nombre de lignes que chaque semaine utilisera. " +"Le résultat varie en fonction du premier jour de la semaine spécifié dans le " +"constructeur ou défini par la méthode :meth:`setfirstweekday`." #: ../Doc/library/calendar.rst:127 msgid "Print a month's calendar as returned by :meth:`formatmonth`." msgstr "" +"Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." #: ../Doc/library/calendar.rst:132 msgid "" @@ -160,11 +205,20 @@ msgid "" "`setfirstweekday` method. The earliest year for which a calendar can be " "generated is platform-dependent." msgstr "" +"Renvoie un calendrier de *m* colonnes pour une année entière sous forme de " +"chaîne multi-ligne. Les paramètres facultatifs *w*, *l* et *c* correspondent " +"respectivement à la largeur de la colonne date, les lignes par semaines, le " +"nombre d'espace entre les colonnes de mois. Le résultat varie en fonction du " +"premier jour de la semaine spécifié dans le constructeur ou défini par la " +"méthode :meth:`setfirstweekday`. La première année pour laquelle un " +"calendrier peut être généré, dépend de la plateforme." #: ../Doc/library/calendar.rst:142 msgid "" "Print the calendar for an entire year as returned by :meth:`formatyear`." msgstr "" +"Affiche le calendrier pour une année entière comme renvoyé par :meth:" +"`formatyear`." #: ../Doc/library/calendar.rst:147 msgid "This class can be used to generate HTML calendars." diff --git a/library/codecs.po b/library/codecs.po index 13e3fa066..6b5b423d6 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -2073,7 +2073,7 @@ msgstr "koi8_t" #: ../Doc/library/codecs.rst:1181 msgid "Tajik" -msgstr "" +msgstr "*Tajik*" #: ../Doc/library/codecs.rst:1185 msgid "koi8_u" diff --git a/library/codeop.po b/library/codeop.po index d0b4df17b..c56700aa1 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/codeop.rst:2 msgid ":mod:`codeop` --- Compile Python code" -msgstr "" +msgstr ":mod:`codeop` — Compilation de code Python" #: ../Doc/library/codeop.rst:10 msgid "**Source code:** :source:`Lib/codeop.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/codeop.py`" #: ../Doc/library/codeop.rst:14 msgid "" @@ -33,32 +33,44 @@ msgid "" "include such a loop in your program you probably want to use the :mod:`code` " "module instead." msgstr "" +"Le module :mod:`codeop` fournit des outils permettant d'émuler une boucle de " +"lecture-évaluation-affichage (en anglais *read-eval-print-loop* ou REPL), " +"comme dans le module :mod:`code`. Par conséquent, ce module n'est pas " +"destiné à être utilisé directement ; pour inclure un REPL dans un programme, " +"il est préférable d'utiliser le module :mod:`code`." #: ../Doc/library/codeop.rst:20 msgid "There are two parts to this job:" -msgstr "" +msgstr "Cette tâche se divise en deux parties :" #: ../Doc/library/codeop.rst:22 msgid "" "Being able to tell if a line of input completes a Python statement: in " "short, telling whether to print '``>>>``' or '``...``' next." msgstr "" +"Pouvoir affirmer qu'une ligne d'entrée est une instruction complète, ou " +"achève une instruction : en bref, savoir s'il faut afficher « ``>>>`` » ou " +"« ``...`` » à sa suite." #: ../Doc/library/codeop.rst:25 msgid "" "Remembering which future statements the user has entered, so subsequent " "input can be compiled with these in effect." msgstr "" +"Conserver les instructions déjà entrées par l'utilisateur, afin que les " +"entrées suivantes puissent êtres compilées avec elles." #: ../Doc/library/codeop.rst:28 msgid "" "The :mod:`codeop` module provides a way of doing each of these things, and a " "way of doing them both." msgstr "" +"Le module :mod:`codeop` fournit un moyen d'effectuer ces deux parties, " +"individuellement ou simultanément." #: ../Doc/library/codeop.rst:31 msgid "To do just the former:" -msgstr "" +msgstr "Pour ne faire que la première partie :" #: ../Doc/library/codeop.rst:35 msgid "" @@ -68,6 +80,11 @@ msgid "" "``''``. Returns ``None`` if *source* is *not* valid Python code, but " "is a prefix of valid Python code." msgstr "" +"Essaye de compiler *source*, qui doit être une chaîne de caractères " +"représentant du code Python valide et renvoie un objet code le cas échéant. " +"Dans ce cas, l'attribut de nom de fichier de l'objet code renvoyé sera " +"*filename* (``''`` par défaut). Renvoie ``None`` si *source* n'est " +"*pas* du code Python valide, mais un *début* de code Python valide." #: ../Doc/library/codeop.rst:41 msgid "" @@ -75,6 +92,9 @@ msgid "" "`SyntaxError` is raised if there is invalid Python syntax, and :exc:" "`OverflowError` or :exc:`ValueError` if there is an invalid literal." msgstr "" +"En cas de problème avec *source*, une exception est levée ; :exc:" +"`SyntaxError` si la syntaxe Python est incorrecte, et :exc:`OverflowError` " +"ou :exc:`ValueError` si un littéral invalide est rencontré." #: ../Doc/library/codeop.rst:45 msgid "" @@ -82,6 +102,9 @@ msgid "" "(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any " "other value will cause :exc:`ValueError` to be raised." msgstr "" +"L'argument *symbol* détermine si *source* est compilée comme une instruction " +"(``'single'``, par défaut) ou comme une :term:`expression` (``'eval'``). " +"Toute autre valeur lèvera :exc:`ValueError`." #: ../Doc/library/codeop.rst:51 msgid "" @@ -91,6 +114,12 @@ msgid "" "backslash followed by two newlines may be followed by arbitrary garbage. " "This will be fixed once the API for the parser is better." msgstr "" +"Il est possible (quoique improbable) que l'analyseur s'arrête avant " +"d'atteindre la fin du code source ; dans ce cas, les symboles venant après " +"peuvent être ignorés au lieu de provoquer une erreur. Par exemple, une barre " +"oblique inverse suivie de deux retours à la ligne peut être suivie par de la " +"mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " +"aura été améliorée." #: ../Doc/library/codeop.rst:60 msgid "" @@ -100,6 +129,11 @@ msgid "" "the instance 'remembers' and compiles all subsequent program texts with the " "statement in force." msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction native :func:`compile`, à la différence près que si " +"l'instance compile du code source contenant une instruction :mod:" +"`__future__`, l'instance s'en « souviendra » et compilera tous les codes " +"sources suivants avec cette instruction activée." #: ../Doc/library/codeop.rst:69 msgid "" @@ -108,3 +142,8 @@ msgid "" "program text containing a ``__future__`` statement, the instance 'remembers' " "and compiles all subsequent program texts with the statement in force." msgstr "" +"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " +"identique à la fonction :func:`compile_command`, à la différence près que si " +"l'instance compile du code source contenant une instruction ``__future__``, " +"l'instance s'en « souviendra » et compilera tous les codes sources suivants " +"avec cette instruction activée." diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index ada69ed0e..fc3c1d2ce 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -391,6 +391,8 @@ msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" +"*return_when* indique quand la fonction doit se terminer. Il peut prendre " +"les valeurs suivantes :" #: ../Doc/library/concurrent.futures.rst:388 msgid "Constant" @@ -407,6 +409,7 @@ msgstr ":const:`FIRST_COMPLETED`" #: ../Doc/library/concurrent.futures.rst:390 msgid "The function will return when any future finishes or is cancelled." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." #: ../Doc/library/concurrent.futures.rst:393 msgid ":const:`FIRST_EXCEPTION`" @@ -418,6 +421,9 @@ msgid "" "If no future raises an exception then it is equivalent to :const:" "`ALL_COMPLETED`." msgstr "" +"La fonction se termine lorsque n'importe quel futur se termine en levant une " +"exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" +"`ALL_COMPLETED`." #: ../Doc/library/concurrent.futures.rst:399 msgid ":const:`ALL_COMPLETED`" @@ -426,6 +432,7 @@ msgstr ":const:`ALL_COMPLETED`" #: ../Doc/library/concurrent.futures.rst:399 msgid "The function will return when all futures finish or are cancelled." msgstr "" +"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." #: ../Doc/library/concurrent.futures.rst:405 msgid "" diff --git a/library/copyreg.po b/library/copyreg.po index 64d71d5cb..22a51dc51 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/copyreg.rst:2 msgid ":mod:`copyreg` --- Register :mod:`pickle` support functions" -msgstr "" +msgstr ":mod:`copyreg` — Enregistre les fonctions support de :mod:`pickle`" #: ../Doc/library/copyreg.rst:7 msgid "**Source code:** :source:`Lib/copyreg.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/copyreg.py`" #: ../Doc/library/copyreg.rst:15 msgid "" @@ -33,12 +33,22 @@ msgid "" "configuration information about object constructors which are not classes. " "Such constructors may be factory functions or class instances." msgstr "" +"Le module :mod:`copyreg` permet de définir des fonctions utilisées durant la " +"sérialisation avec *pickle* de certains objets. Les modules :mod:`pickle` " +"et :mod:`copy` utilisent ces fonctions lors d'une sérialisation ou d'une " +"copie de ces objets. Le module propose alors des informations de " +"configuration à propos de constructeurs d'objets qui ne sont pas des " +"classes. De tels constructeurs peuvent être des instances de classes ou des " +"fonctions." #: ../Doc/library/copyreg.rst:24 msgid "" "Declares *object* to be a valid constructor. If *object* is not callable " "(and hence not valid as a constructor), raises :exc:`TypeError`." msgstr "" +"Déclare *object* comme étant un constructeur valide. Si *object* n'est pas " +"appelable (et n'est donc pas un constructeur valide), l'erreur :exc:" +"`TypeError` est levée." #: ../Doc/library/copyreg.rst:30 msgid "" @@ -46,6 +56,9 @@ msgid "" "objects of type *type*. *function* should return either a string or a tuple " "containing two or three elements." msgstr "" +"Déclare que *function* devrait être utilisée en tant que fonction de " +"*réduction* pour des objets de type *type*. *function* doit soit retourner " +"une chaîne de caractères soit un tuple qui contiens deux ou trois éléments." #: ../Doc/library/copyreg.rst:34 msgid "" @@ -54,6 +67,11 @@ msgid "" "arguments returned by *function* at pickling time. :exc:`TypeError` will be " "raised if *object* is a class or *constructor* is not callable." msgstr "" +"Le paramètre optionnel *contructor*, s'il est donné, est un objet appelable " +"qui peux être utilisé pour reconstruire l’objet lorsqu'il est appelé avec un " +"tuple d'arguments retournés par *function* durant la sérialisation avec " +"*pickle*. Une exception :exc:`TypeError` sera levée si *object* est une " +"classe ou si *constructor* n'est pas appelable." #: ../Doc/library/copyreg.rst:39 msgid "" @@ -62,6 +80,11 @@ msgid "" "dispatch_table` attribute of a pickler object or subclass of :class:`pickle." "Pickler` can also be used for declaring reduction functions." msgstr "" +"Voir le module :mod:`pickle` pour plus de détails sur l'interface attendue " +"de *function* et *constructor*. Notez que l’attribut :attr:`~pickle.Pickler." +"dispatch_table` d'un objet ``pickler`` ou d'une sous-classe de :class:" +"`pickle.Pickler` peut aussi être utilisée pour déclarer des fonctions " +"réductrices." #: ../Doc/library/copyreg.rst:46 msgid "Example" @@ -72,3 +95,5 @@ msgid "" "The example below would like to show how to register a pickle function and " "how it will be used:" msgstr "" +"L'exemple si-dessous essaye de démontrer comment enregistrer une fonction " +"*pickle* et comment elle sera utilisée :" diff --git a/library/email.parser.po b/library/email.parser.po index 6cde8dddc..83a06d702 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/email.parser.rst:2 msgid ":mod:`email.parser`: Parsing email messages" -msgstr "" +msgstr ":mod:`email.parser` : Analyser des e-mails" #: ../Doc/library/email.parser.rst:7 msgid "**Source code:** :source:`Lib/email/parser.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.parser.rst:11 msgid "" @@ -34,6 +34,13 @@ msgid "" "or they can be created by parsing a serialized representation of the email " "message." msgstr "" +"Les instances de messages peuvent être créées de deux façons : elles peuvent " +"être créées de toutes pièces en créant un objet :class:`~email.message." +"message.EmailMessage`, en ajoutant des en-têtes en utilisant l'interface de " +"dictionnaire, et en ajoutant un ou plusieurs corps de message en utilisant :" +"meth:`~email.message.message.EmailMessage.set_content` et les méthodes " +"associées, ou ils peuvent être créées en analysant une représentation " +"sérialisée de l'e-mail." #: ../Doc/library/email.parser.rst:18 msgid "" @@ -75,7 +82,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:49 msgid "FeedParser API" -msgstr "" +msgstr "API *FeedParser*" #: ../Doc/library/email.parser.rst:51 msgid "" @@ -104,7 +111,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:70 msgid "Here is the API for the :class:`BytesFeedParser`:" -msgstr "" +msgstr "Voici l’API pour :class:`BytesFeedParser` : ::" #: ../Doc/library/email.parser.rst:75 msgid "" @@ -167,7 +174,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:126 msgid "Parser API" -msgstr "" +msgstr "API de *Parser*" #: ../Doc/library/email.parser.rst:128 msgid "" @@ -327,11 +334,11 @@ msgstr "" #: ../Doc/library/email.parser.rst:291 msgid "Additional notes" -msgstr "" +msgstr "Notes complémentaires" #: ../Doc/library/email.parser.rst:293 msgid "Here are some notes on the parsing semantics:" -msgstr "" +msgstr "Voici des remarques sur la sémantique d'analyse : ::" #: ../Doc/library/email.parser.rst:295 msgid "" diff --git a/library/email.po b/library/email.po index 51aa1b8db..7be23391d 100644 --- a/library/email.po +++ b/library/email.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" -msgstr "" +msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" #: ../Doc/library/email.rst:11 msgid "**Source code:** :source:`Lib/email/__init__.py`" -msgstr "" +msgstr "**Code source:** :source:`Lib/email/__init__.py`" #: ../Doc/library/email.rst:15 msgid "" @@ -35,6 +35,13 @@ msgid "" "well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" "rfc:`2183`, and :rfc:`2231`." msgstr "" +"Le paquet :mod:`email` est une bibliothèque pour gérer les e-mails. Il est " +"spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP (:rfc:" +"`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " +"des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " +"tente de respecter les RFC autant que possible, il gère :rfc:`5233` et :rfc:" +"`6532`, ainsi que les RFCs en rapport avec les MIME comme :rfc:`2045`, :rfc:" +"`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." #: ../Doc/library/email.rst:23 msgid "" @@ -42,6 +49,8 @@ msgid "" "components, plus a fourth component that controls the behavior of the other " "components." msgstr "" +"Ce paquet peut être divisé entre trois composants majeurs, et un quatrième " +"composant qui contrôle le comportement des trois autres." #: ../Doc/library/email.rst:27 msgid "" @@ -55,6 +64,15 @@ msgid "" "model is a tree structure of objects that all provide the :class:`~email." "message.EmailMessage` API." msgstr "" +"Le composant central du paquet est un \"modèle d'objet\" qui représente les " +"messages. Une application interagit avec le paquet, dans un premier temps, à " +"travers l'interface de modèle d'objet définie dans le sous-module :mod:" +"`~email.message`. L'application peut utiliser cette API pour poser des " +"questions à propos d'un mail existant, pour créer un nouvel e-mail, ou " +"ajouter ou retirer des sous-composants d'e-mail qui utilisent la même " +"interface de modèle d'objet. Suivant la nature des messages et leurs sous-" +"composants MIME, le modèle d'objet d'e-mail est une structure arborescente " +"d'objets qui fournit tout à l'API de :class:`~email.message.EmailMessage`." #: ../Doc/library/email.rst:37 msgid "" @@ -67,6 +85,15 @@ msgid "" "but this usage is discouraged as it is too easy to end up with messages that " "are not valid in one way or another.)" msgstr "" +"Les deux autres composants majeurs de ce paquet sont l'analyseur (:mod:" +"`~email.parser`) et le générateur (:mod:`~email.generator`). L'analyseur " +"prend la version sérialisée d'un e-mail (un flux d'octets) et le convertit " +"en une arborescence d'objets :class:`~email.message.EmailMessage`. Le " +"générateur prend un objet :class:`~email.message.EmailMessage` et le " +"retransforme en un flux d'octets sérialisé (l'analyseur et le générateur " +"gèrent aussi des suites de caractères textuels, mais cette utilisation est " +"déconseillée car il est très facile de finir avec des messages invalides " +"d'une manière ou d'une autre)." #: ../Doc/library/email.rst:46 msgid "" @@ -82,6 +109,18 @@ msgid "" "from disk, but to serialize it using standard SMTP settings when sending it " "to an email server." msgstr "" +"Le composant de contrôle est le module :mod:`~email.policy`. Chaque :class:" +"`~email.message.EmailMessage`, chaque :mod:`~email.generator` et chaque :mod:" +"`~email.parser` possède un objet associé :mod:`~email.policy` qui contrôle " +"son comportement. Habituellement une application n'a besoin de spécifier la " +"politique que quand un :class:`~email.message.EmailMessage` est créé, soit " +"en instanciant directement un :class:`~email.message.EmailMessage` pour " +"créer un nouvel e-mail, soit lors de l'analyse d'un flux entrant en " +"utilisant un :mod:`~email.parser`. Mais la politique peut être changée quand " +"le message est sérialisé en utilisant un :mod:`~email.generator`. Cela " +"permet, par exemple, d'analyser un message e-mail générique du disque, puis " +"de le sérialiser en utilisant une configuration SMTP standard quand on " +"l'envoie vers un serveur d'e-mail." #: ../Doc/library/email.rst:58 msgid "" @@ -99,6 +138,20 @@ msgid "" "modern internet software (not just email), this will be a familiar concept " "to many programmers." msgstr "" +"Le paquet *email* fait son maximum pour cacher les détails des différentes " +"RFCs de référence à l'application. Conceptuellement, l'application doit être " +"capable de traiter l'e-mail comme une arborescence structurée de texte " +"Unicode et de pièces jointes binaires, sans avoir à se préoccuper de leur " +"représentation sérialisée. Dans la pratique, cependant, il est souvent " +"nécessaire d'être conscient d'au moins quelques règles relatives aux " +"messages MIME et à leur structure, en particulier les noms et natures des " +"\"types de contenus\" et comment ils identifient les documents à plusieurs " +"parties. Pour la plupart, cette connaissance devrait seulement être " +"nécessaire pour des applications plus complexes, et même là, il devrait être " +"question des structures de haut niveau et non des détails sur la manière " +"dont elles sont représentées. Comme les types de contenus MIME sont " +"couramment utilisés dans les logiciels internet modernes (et non uniquement " +"les e-mails), les développeurs sont généralement familiers de ce concept." #: ../Doc/library/email.rst:71 msgid "" @@ -109,6 +162,12 @@ msgid "" "mod:`~email.policy` controls, which completes the treatment of the main " "components of the library." msgstr "" +"La section suivante décrit les fonctionnalités du paquet :mod:`email`. Nous " +"commençons avec le modèle d'objet :mod:`~email.message`, qui est la " +"principale interface qu'une application utilise, et continuons avec les " +"composants :mod:`~email.parser` et :mod:`~email.generator`. Ensuite, nous " +"couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " +"des principaux composants de la bibliothèque." #: ../Doc/library/email.rst:78 msgid "" @@ -121,12 +180,23 @@ msgid "" "messages, but also document their extensibility APIs, which will be of " "interest to advanced applications." msgstr "" +"Les trois prochaines sections couvrent les exceptions que le paquet peut " +"rencontrer et les imperfections (non-respect des RFCs) que le module :mod:" +"`~email.parser` peut détecter. Ensuite nous couvrons les sous-composants :" +"mod:`~email.headerregistry` et :mod:`~email.contentmanager`, qui fournissent " +"des outils pour faire des manipulations plus détaillées des en-têtes et du " +"contenu, respectivement. Les deux composants contiennent des fonctionnalités " +"adaptées pour traiter et produire des messages qui sortent de l'ordinaire, " +"et elles documentent aussi leurs API pour pouvoir les étendre, ce qui ne " +"manquera pas d'intéresser les applications avancées." #: ../Doc/library/email.rst:87 msgid "" "Following those is a set of examples of using the fundamental parts of the " "APIs covered in the preceding sections." msgstr "" +"Ci-dessous se trouve un ensemble d'exemples d'utilisations des éléments " +"fondamentaux des API couvertes dans les sections précédentes." #: ../Doc/library/email.rst:90 msgid "" @@ -146,61 +216,65 @@ msgid "" "Docs reorganized and rewritten to promote the new :class:`~email.message." "EmailMessage`/:class:`~email.policy.EmailPolicy` API." msgstr "" +"Documents réorganisés et réécrits pour promouvoir la nouvelle API :class:" +"`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." #: ../Doc/library/email.rst:105 msgid "Contents of the :mod:`email` package documentation:" -msgstr "" +msgstr "Contenus de la documentation du paquet :mod:`email` :" #: ../Doc/library/email.rst:120 msgid "Legacy API:" -msgstr "" +msgstr "API héritée :" #: ../Doc/library/email.rst:136 msgid "Module :mod:`smtplib`" -msgstr "" +msgstr "Module :mod:`smtplib`" #: ../Doc/library/email.rst:136 msgid "SMTP (Simple Mail Transport Protocol) client" -msgstr "" +msgstr "Client SMTP (*Simple Mail Transport Protocol*)" #: ../Doc/library/email.rst:139 msgid "Module :mod:`poplib`" -msgstr "" +msgstr "Module :mod:`poplib`" #: ../Doc/library/email.rst:139 msgid "POP (Post Office Protocol) client" -msgstr "" +msgstr "Client POP (*Post Office Protocol*)" #: ../Doc/library/email.rst:142 msgid "Module :mod:`imaplib`" -msgstr "" +msgstr "Module :mod:`imaplib`" #: ../Doc/library/email.rst:142 msgid "IMAP (Internet Message Access Protocol) client" -msgstr "" +msgstr "Client IMAP (*Internet Message Access Protocol*)" #: ../Doc/library/email.rst:145 msgid "Module :mod:`nntplib`" -msgstr "" +msgstr "Module :mod:`nntplib`" #: ../Doc/library/email.rst:145 msgid "NNTP (Net News Transport Protocol) client" -msgstr "" +msgstr "Client NNTP (*Net News Transport Protocol*)" #: ../Doc/library/email.rst:149 msgid "Module :mod:`mailbox`" -msgstr "" +msgstr "Module :mod:`mailbox`" #: ../Doc/library/email.rst:148 msgid "" "Tools for creating, reading, and managing collections of messages on disk " "using a variety standard formats." msgstr "" +"Outils pour créer, lire et gérer des messages regroupés sur disque en " +"utilisant des formats standards variés." #: ../Doc/library/email.rst:151 msgid "Module :mod:`smtpd`" -msgstr "" +msgstr "Module :mod:`smtpd`" #: ../Doc/library/email.rst:152 msgid "SMTP server framework (primarily useful for testing)" -msgstr "" +msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/errno.po b/library/errno.po index ed2ecd114..35fdb8589 100644 --- a/library/errno.po +++ b/library/errno.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/errno.rst:2 msgid ":mod:`errno` --- Standard errno system symbols" -msgstr "" +msgstr ":mod:`errno` — Symboles du système *errno* standard" #: ../Doc/library/errno.rst:9 msgid "" @@ -28,6 +28,10 @@ msgid "" "are borrowed from :file:`linux/include/errno.h`, which should be pretty all-" "inclusive." msgstr "" +"Ce module met à disposition des symboles du système standard ``errno``. La " +"valeur de chaque symbole est la valeur entière correspondante. Les noms et " +"les descriptions sont empruntés à :file:`linux/include/errno.h`, qui devrait " +"être assez exhaustif." #: ../Doc/library/errno.rst:17 msgid "" @@ -35,12 +39,17 @@ msgid "" "the underlying system. For instance, ``errno.errorcode[errno.EPERM]`` maps " "to ``'EPERM'``." msgstr "" +"Dictionnaire associant la valeur *errno* au nom de chaîne dans le système " +"sous-jacent. Par exemple, ``errno.errorcode[errno.EPERM]`` correspond à " +"``'EPERM'``." #: ../Doc/library/errno.rst:21 msgid "" "To translate a numeric error code to an error message, use :func:`os." "strerror`." msgstr "" +"Pour traduire un code d'erreur en message d'erreur, utilisez :func:`os." +"strerror`." #: ../Doc/library/errno.rst:23 msgid "" @@ -48,94 +57,98 @@ msgid "" "not defined by the module. The specific list of defined symbols is " "available as ``errno.errorcode.keys()``. Symbols available can include:" msgstr "" +"De la liste suivante, les symboles qui ne sont pas utilisés dans la " +"plateforme actuelle ne sont pas définis par le module. La liste spécifique " +"des symboles définis est disponible comme ``errno.errorcode.keys()``. Les " +"symboles disponibles font partie de cette liste :" #: ../Doc/library/errno.rst:30 msgid "Operation not permitted" -msgstr "" +msgstr "Opération interdite" #: ../Doc/library/errno.rst:35 msgid "No such file or directory" -msgstr "" +msgstr "Fichier ou répertoire inexistant" #: ../Doc/library/errno.rst:40 msgid "No such process" -msgstr "" +msgstr "Processus inexistant" #: ../Doc/library/errno.rst:45 msgid "Interrupted system call." -msgstr "" +msgstr "Appel système interrompu" #: ../Doc/library/errno.rst:48 msgid "This error is mapped to the exception :exc:`InterruptedError`." -msgstr "" +msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." #: ../Doc/library/errno.rst:53 msgid "I/O error" -msgstr "" +msgstr "Erreur d'entrée-sortie" #: ../Doc/library/errno.rst:58 msgid "No such device or address" -msgstr "" +msgstr "Dispositif ou adresse inexistant" #: ../Doc/library/errno.rst:63 msgid "Arg list too long" -msgstr "" +msgstr "Liste d'arguments trop longue" #: ../Doc/library/errno.rst:68 msgid "Exec format error" -msgstr "" +msgstr "Erreur de format d'exécution" #: ../Doc/library/errno.rst:73 msgid "Bad file number" -msgstr "" +msgstr "Mauvais descripteur de fichier" #: ../Doc/library/errno.rst:78 msgid "No child processes" -msgstr "" +msgstr "Pas de processus fils" #: ../Doc/library/errno.rst:83 msgid "Try again" -msgstr "" +msgstr "Ressource temporairement indisponible (réessayez)" #: ../Doc/library/errno.rst:88 msgid "Out of memory" -msgstr "" +msgstr "Mémoire insuffisante" #: ../Doc/library/errno.rst:93 msgid "Permission denied" -msgstr "" +msgstr "Autorisation refusée" #: ../Doc/library/errno.rst:98 msgid "Bad address" -msgstr "" +msgstr "Mauvaise adresse" #: ../Doc/library/errno.rst:103 msgid "Block device required" -msgstr "" +msgstr "Dispositif de bloc requis" #: ../Doc/library/errno.rst:108 msgid "Device or resource busy" -msgstr "" +msgstr "Dispositif ou ressource occupé" #: ../Doc/library/errno.rst:113 msgid "File exists" -msgstr "" +msgstr "Fichier déjà existant" #: ../Doc/library/errno.rst:118 msgid "Cross-device link" -msgstr "" +msgstr "Lien inapproprié" #: ../Doc/library/errno.rst:123 msgid "No such device" -msgstr "" +msgstr "Dispositif inexistant" #: ../Doc/library/errno.rst:128 msgid "Not a directory" -msgstr "" +msgstr "Pas un répertoire" #: ../Doc/library/errno.rst:133 msgid "Is a directory" -msgstr "" +msgstr "Est un répertoire" #: ../Doc/library/errno.rst:138 msgid "Invalid argument" @@ -143,400 +156,400 @@ msgstr "Argument invalide" #: ../Doc/library/errno.rst:143 msgid "File table overflow" -msgstr "" +msgstr "Plus de descripteur de fichier disponible" #: ../Doc/library/errno.rst:148 msgid "Too many open files" -msgstr "" +msgstr "Trop de fichiers ouverts" #: ../Doc/library/errno.rst:153 msgid "Not a typewriter" -msgstr "" +msgstr "Opération de contrôle d'entrée-sortie invalide" #: ../Doc/library/errno.rst:158 msgid "Text file busy" -msgstr "" +msgstr "Fichier texte occupé" #: ../Doc/library/errno.rst:163 msgid "File too large" -msgstr "" +msgstr "Fichier trop grand" #: ../Doc/library/errno.rst:168 msgid "No space left on device" -msgstr "" +msgstr "Plus de place sur le dispositif" #: ../Doc/library/errno.rst:173 msgid "Illegal seek" -msgstr "" +msgstr "Recherche invalide" #: ../Doc/library/errno.rst:178 msgid "Read-only file system" -msgstr "" +msgstr "Système de fichiers en lecture seule" #: ../Doc/library/errno.rst:183 msgid "Too many links" -msgstr "" +msgstr "Trop de liens symboliques" #: ../Doc/library/errno.rst:188 msgid "Broken pipe" -msgstr "" +msgstr "Tube brisé" #: ../Doc/library/errno.rst:193 msgid "Math argument out of domain of func" -msgstr "" +msgstr "Argument mathématique hors du domaine de définition de la fonction" #: ../Doc/library/errno.rst:198 msgid "Math result not representable" -msgstr "" +msgstr "Résultat mathématique non représentable" #: ../Doc/library/errno.rst:203 msgid "Resource deadlock would occur" -msgstr "" +msgstr "Un interblocage se produirait sur cette ressource" #: ../Doc/library/errno.rst:208 msgid "File name too long" -msgstr "" +msgstr "Nom de fichier trop long" #: ../Doc/library/errno.rst:213 msgid "No record locks available" -msgstr "" +msgstr "Plus de verrou de fichier disponible" #: ../Doc/library/errno.rst:218 msgid "Function not implemented" -msgstr "" +msgstr "Fonction non implémentée" #: ../Doc/library/errno.rst:223 msgid "Directory not empty" -msgstr "" +msgstr "Dossier non vide" #: ../Doc/library/errno.rst:228 msgid "Too many symbolic links encountered" -msgstr "" +msgstr "Trop de liens symboliques trouvés" #: ../Doc/library/errno.rst:233 msgid "Operation would block" -msgstr "" +msgstr "L'opération bloquerait" #: ../Doc/library/errno.rst:238 msgid "No message of desired type" -msgstr "" +msgstr "Pas de message du type voulu" #: ../Doc/library/errno.rst:243 msgid "Identifier removed" -msgstr "" +msgstr "Identifiant supprimé" #: ../Doc/library/errno.rst:248 msgid "Channel number out of range" -msgstr "" +msgstr "Le numéro de canal est hors des limites" #: ../Doc/library/errno.rst:253 msgid "Level 2 not synchronized" -msgstr "" +msgstr "Le niveau 2 n'est pas synchronisé" #: ../Doc/library/errno.rst:258 msgid "Level 3 halted" -msgstr "" +msgstr "Niveau 3 stoppé" #: ../Doc/library/errno.rst:263 msgid "Level 3 reset" -msgstr "" +msgstr "Niveau 3 réinitialisé" #: ../Doc/library/errno.rst:268 msgid "Link number out of range" -msgstr "" +msgstr "Le numéro du lien est hors des limites" #: ../Doc/library/errno.rst:273 msgid "Protocol driver not attached" -msgstr "" +msgstr "Le pilote de protocole n'est pas attaché" #: ../Doc/library/errno.rst:278 msgid "No CSI structure available" -msgstr "" +msgstr "Pas de structure *CSI* disponible" #: ../Doc/library/errno.rst:283 msgid "Level 2 halted" -msgstr "" +msgstr "Niveau 2 stoppé" #: ../Doc/library/errno.rst:288 msgid "Invalid exchange" -msgstr "" +msgstr "Échange invalide" #: ../Doc/library/errno.rst:293 msgid "Invalid request descriptor" -msgstr "" +msgstr "Descripteur de requête invalide" #: ../Doc/library/errno.rst:298 msgid "Exchange full" -msgstr "" +msgstr "Échange complet" #: ../Doc/library/errno.rst:303 msgid "No anode" -msgstr "" +msgstr "Pas de *anode*" #: ../Doc/library/errno.rst:308 msgid "Invalid request code" -msgstr "" +msgstr "Code de requête invalide" #: ../Doc/library/errno.rst:313 msgid "Invalid slot" -msgstr "" +msgstr "*Slot* invalide" #: ../Doc/library/errno.rst:318 msgid "File locking deadlock error" -msgstr "" +msgstr "Interblocage lors du verrouillage de fichier" #: ../Doc/library/errno.rst:323 msgid "Bad font file format" -msgstr "" +msgstr "Mauvais format de fichier de police" #: ../Doc/library/errno.rst:328 msgid "Device not a stream" -msgstr "" +msgstr "Le périphérique n'est pas un flux" #: ../Doc/library/errno.rst:333 msgid "No data available" -msgstr "" +msgstr "Pas de donnée disponible" #: ../Doc/library/errno.rst:338 msgid "Timer expired" -msgstr "" +msgstr "Délai maximal atteint" #: ../Doc/library/errno.rst:343 msgid "Out of streams resources" -msgstr "" +msgstr "Pas assez de ressources de type flux" #: ../Doc/library/errno.rst:348 msgid "Machine is not on the network" -msgstr "" +msgstr "Machine hors réseau" #: ../Doc/library/errno.rst:353 msgid "Package not installed" -msgstr "" +msgstr "Paquet non installé" #: ../Doc/library/errno.rst:358 msgid "Object is remote" -msgstr "" +msgstr "L'objet est distant" #: ../Doc/library/errno.rst:363 msgid "Link has been severed" -msgstr "" +msgstr "Lien coupé" #: ../Doc/library/errno.rst:368 msgid "Advertise error" -msgstr "" +msgstr "Erreur d'annonce" #: ../Doc/library/errno.rst:373 msgid "Srmount error" -msgstr "" +msgstr "Erreur *Srmount*" #: ../Doc/library/errno.rst:378 msgid "Communication error on send" -msgstr "" +msgstr "Erreur de communication lors de l'envoi" #: ../Doc/library/errno.rst:383 msgid "Protocol error" -msgstr "" +msgstr "Erreur de protocole" #: ../Doc/library/errno.rst:388 msgid "Multihop attempted" -msgstr "" +msgstr "Transfert à sauts multiples essayé" #: ../Doc/library/errno.rst:393 msgid "RFS specific error" -msgstr "" +msgstr "erreur spécifique *RFS*" #: ../Doc/library/errno.rst:398 msgid "Not a data message" -msgstr "" +msgstr "Pas un message de données" #: ../Doc/library/errno.rst:403 msgid "Value too large for defined data type" -msgstr "" +msgstr "Valeur trop grande pour être stockée dans ce type de donnée" #: ../Doc/library/errno.rst:408 msgid "Name not unique on network" -msgstr "" +msgstr "Nom non-unique dans le réseau" #: ../Doc/library/errno.rst:413 msgid "File descriptor in bad state" -msgstr "" +msgstr "Descripteur de fichier en mauvais état" #: ../Doc/library/errno.rst:418 msgid "Remote address changed" -msgstr "" +msgstr "Adresse distante changée" #: ../Doc/library/errno.rst:423 msgid "Can not access a needed shared library" -msgstr "" +msgstr "Accès impossible à une bibliothèque partagée nécessaire" #: ../Doc/library/errno.rst:428 msgid "Accessing a corrupted shared library" -msgstr "" +msgstr "Accès à une bibliothèque partagée corrompue" #: ../Doc/library/errno.rst:433 msgid ".lib section in a.out corrupted" -msgstr "" +msgstr "Section *.lib* de *a.out* corrompue" #: ../Doc/library/errno.rst:438 msgid "Attempting to link in too many shared libraries" -msgstr "" +msgstr "Tentative de liaison entre trop de bibliothèques partagées" #: ../Doc/library/errno.rst:443 msgid "Cannot exec a shared library directly" -msgstr "" +msgstr "Impossible d'exécuter directement une bibliothèque partagée" #: ../Doc/library/errno.rst:448 msgid "Illegal byte sequence" -msgstr "" +msgstr "Séquence de *bytes* illégale" #: ../Doc/library/errno.rst:453 msgid "Interrupted system call should be restarted" -msgstr "" +msgstr "Appel système interrompu qui devrait être relancé" #: ../Doc/library/errno.rst:458 msgid "Streams pipe error" -msgstr "" +msgstr "Erreur d’enchaînement de flux" #: ../Doc/library/errno.rst:463 msgid "Too many users" -msgstr "" +msgstr "Trop d'utilisateurs" #: ../Doc/library/errno.rst:468 msgid "Socket operation on non-socket" -msgstr "" +msgstr "Opération *socket* pas sur un connecteur" #: ../Doc/library/errno.rst:473 msgid "Destination address required" -msgstr "" +msgstr "Adresse de destination obligatoire" #: ../Doc/library/errno.rst:478 msgid "Message too long" -msgstr "" +msgstr "Message trop long" #: ../Doc/library/errno.rst:483 msgid "Protocol wrong type for socket" -msgstr "" +msgstr "Mauvais type de protocole pour ce connecteur" #: ../Doc/library/errno.rst:488 msgid "Protocol not available" -msgstr "" +msgstr "Protocole pas disponible" #: ../Doc/library/errno.rst:493 msgid "Protocol not supported" -msgstr "" +msgstr "Protocole non géré" #: ../Doc/library/errno.rst:498 msgid "Socket type not supported" -msgstr "" +msgstr "Type de connecteur non géré" #: ../Doc/library/errno.rst:503 msgid "Operation not supported on transport endpoint" -msgstr "" +msgstr "Opération non gérée par cette fin de lien" #: ../Doc/library/errno.rst:508 msgid "Protocol family not supported" -msgstr "" +msgstr "Famille de protocole non gérée" #: ../Doc/library/errno.rst:513 msgid "Address family not supported by protocol" -msgstr "" +msgstr "Famille d'adresses non gérée par ce protocole" #: ../Doc/library/errno.rst:518 msgid "Address already in use" -msgstr "" +msgstr "Adresse déjà utilisée" #: ../Doc/library/errno.rst:523 msgid "Cannot assign requested address" -msgstr "" +msgstr "Impossible d'assigner l'adresse demandée" #: ../Doc/library/errno.rst:528 msgid "Network is down" -msgstr "" +msgstr "Le réseau est désactivé" #: ../Doc/library/errno.rst:533 msgid "Network is unreachable" -msgstr "" +msgstr "Réseau inaccessible" #: ../Doc/library/errno.rst:538 msgid "Network dropped connection because of reset" -msgstr "" +msgstr "Connexion annulée par le réseau" #: ../Doc/library/errno.rst:543 msgid "Software caused connection abort" -msgstr "" +msgstr "Connexion abandonnée" #: ../Doc/library/errno.rst:548 msgid "Connection reset by peer" -msgstr "" +msgstr "Connexion réinitialisée" #: ../Doc/library/errno.rst:553 msgid "No buffer space available" -msgstr "" +msgstr "Plus d'espace tampon disponible" #: ../Doc/library/errno.rst:558 msgid "Transport endpoint is already connected" -msgstr "" +msgstr "La socket est connectée" #: ../Doc/library/errno.rst:563 msgid "Transport endpoint is not connected" -msgstr "" +msgstr "La socket n'est pas connectée" #: ../Doc/library/errno.rst:568 msgid "Cannot send after transport endpoint shutdown" -msgstr "" +msgstr "Impossible d'envoyer après l'arrêt du point final du transport" #: ../Doc/library/errno.rst:573 msgid "Too many references: cannot splice" -msgstr "" +msgstr "Trop de descripteurs : impossible d'effectuer la liaison" #: ../Doc/library/errno.rst:578 msgid "Connection timed out" -msgstr "" +msgstr "Délai maximal de connexion écoulé" #: ../Doc/library/errno.rst:583 msgid "Connection refused" -msgstr "" +msgstr "Connexion refusée" #: ../Doc/library/errno.rst:588 msgid "Host is down" -msgstr "" +msgstr "Hôte éteint" #: ../Doc/library/errno.rst:593 msgid "No route to host" -msgstr "" +msgstr "Pas de route vers l'hôte" #: ../Doc/library/errno.rst:598 msgid "Operation already in progress" -msgstr "" +msgstr "Connexion déjà en cours" #: ../Doc/library/errno.rst:603 msgid "Operation now in progress" -msgstr "" +msgstr "Opération en cours" #: ../Doc/library/errno.rst:608 msgid "Stale NFS file handle" -msgstr "" +msgstr "Descripteur de fichier NFS corrompu" #: ../Doc/library/errno.rst:613 msgid "Structure needs cleaning" -msgstr "" +msgstr "La structure a besoin d'être nettoyée" #: ../Doc/library/errno.rst:618 msgid "Not a XENIX named type file" -msgstr "" +msgstr "N'est pas un fichier nommé du type *XENIX*" #: ../Doc/library/errno.rst:623 msgid "No XENIX semaphores available" -msgstr "" +msgstr "Pas de sémaphore *XENIX* disponible" #: ../Doc/library/errno.rst:628 msgid "Is a named type file" -msgstr "" +msgstr "Est un fichier nommé" #: ../Doc/library/errno.rst:633 msgid "Remote I/O error" -msgstr "" +msgstr "Erreur d'entrées-sorties distante" #: ../Doc/library/errno.rst:638 msgid "Quota exceeded" -msgstr "" +msgstr "Quota dépassé" diff --git a/library/filecmp.po b/library/filecmp.po index f45ca6cd1..b0b047aef 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/filecmp.rst:2 msgid ":mod:`filecmp` --- File and Directory Comparisons" -msgstr "" +msgstr ":mod:`filecmp` – Comparaisons de fichiers et de répertoires" #: ../Doc/library/filecmp.rst:9 msgid "**Source code:** :source:`Lib/filecmp.py`" @@ -31,28 +31,38 @@ msgid "" "directories, with various optional time/correctness trade-offs. For " "comparing files, see also the :mod:`difflib` module." msgstr "" +"Le module :mod:`filecmp` définit les fonctions permettant de comparer les " +"fichiers et les répertoires, avec différents compromis optionnels durée / " +"exactitude. Pour comparer des fichiers, voir aussi le module :mod:`difflib`." #: ../Doc/library/filecmp.rst:17 msgid "The :mod:`filecmp` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`filecmp` définit les fonctions suivantes :" #: ../Doc/library/filecmp.rst:22 msgid "" "Compare the files named *f1* and *f2*, returning ``True`` if they seem " "equal, ``False`` otherwise." msgstr "" +"Compare les fichiers nommés *f1* et *f2* , renvoie ``True`` s’ils semblent " +"égaux, ``False`` sinon." #: ../Doc/library/filecmp.rst:25 msgid "" "If *shallow* is true, files with identical :func:`os.stat` signatures are " "taken to be equal. Otherwise, the contents of the files are compared." msgstr "" +"Si *shallow* est vrai, les fichiers avec des signatures :func:`os.stat()` " +"identiques sont considérés comme égaux. Sinon, le contenu des fichiers est " +"comparé." #: ../Doc/library/filecmp.rst:28 msgid "" "Note that no external programs are called from this function, giving it " "portability and efficiency." msgstr "" +"Notez qu'aucun programme externe n'est appelé à partir de cette fonction, ce " +"qui lui confère des qualités de portabilité et d'efficacité." #: ../Doc/library/filecmp.rst:31 msgid "" @@ -60,12 +70,18 @@ msgid "" "entries invalidated if the :func:`os.stat` information for the file " "changes. The entire cache may be cleared using :func:`clear_cache`." msgstr "" +"Cette fonction utilise un cache pour les comparaisons antérieures et les " +"résultats, les entrées du cache étant invalidées si les informations :func:" +"`os.stat()` du fichier sont modifiées. La totalité du cache peut être " +"effacée avec :func:`clear_cache()`." #: ../Doc/library/filecmp.rst:38 msgid "" "Compare the files in the two directories *dir1* and *dir2* whose names are " "given by *common*." msgstr "" +"Compare les fichiers des deux répertoires *dir1* et *dir2* dont les noms " +"sont donnés par *common*." #: ../Doc/library/filecmp.rst:41 msgid "" @@ -76,12 +92,21 @@ msgid "" "directories, the user lacks permission to read them or if the comparison " "could not be done for some other reason." msgstr "" +"Renvoie trois listes de noms de fichiers : *match* , *mismatch*, *errors*. " +"*match* contient la liste des fichiers qui correspondent, *mismatch* " +"contient les noms de ceux qui ne correspondent pas et *errors* répertorie " +"les noms des fichiers qui n'ont pas pu être comparés. Les fichiers sont " +"répertoriés dans *errors* s'ils n'existent pas dans l'un des répertoires, si " +"l'utilisateur ne dispose pas de l'autorisation nécessaire pour les lire ou " +"si la comparaison n'a pas pu être effectuée pour une autre raison." #: ../Doc/library/filecmp.rst:48 msgid "" "The *shallow* parameter has the same meaning and default value as for :func:" "`filecmp.cmp`." msgstr "" +"Le paramètre *shallow* a la même signification et la même valeur par défaut " +"que pour :func:`filecmp.cmp`." #: ../Doc/library/filecmp.rst:51 msgid "" @@ -89,6 +114,9 @@ msgid "" "``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in " "one of the three returned lists." msgstr "" +"Par exemple, ``cmpfiles('a', 'b', ['c', 'd/e'])`` compare ``a/c`` et ``b/" +"c`` et ``a/d/e`` avec ``b/d/e``. ``'c'`` et ``'d/e'`` seront chacun dans " +"l'une des trois listes renvoyées." #: ../Doc/library/filecmp.rst:58 msgid "" @@ -96,10 +124,13 @@ msgid "" "after it is modified that it is within the mtime resolution of the " "underlying filesystem." msgstr "" +"Efface le cache *filecmp*. Cela peut être utile si un fichier est comparé " +"juste après avoir été modifié (dans un délai inférieur à la résolution " +"*mtime* du système de fichiers sous-jacent)." #: ../Doc/library/filecmp.rst:68 msgid "The :class:`dircmp` class" -msgstr "" +msgstr "La classe :class:`dircmp`" #: ../Doc/library/filecmp.rst:72 msgid "" @@ -108,31 +139,41 @@ msgid "" "`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and defaults " "to ``[os.curdir, os.pardir]``." msgstr "" +"Construit un nouvel objet de comparaison de répertoires, pour comparer les " +"répertoires *a* et *b*. *ignore* est une liste de noms à ignorer, par défaut " +"à :attr:`filecmp.DEFAULT_IGNORES`. *hide* est une liste de noms à cacher, " +"par défaut à ``[os.curdir, os.pardir]``." #: ../Doc/library/filecmp.rst:77 msgid "" "The :class:`dircmp` class compares files by doing *shallow* comparisons as " "described for :func:`filecmp.cmp`." msgstr "" +"La classe :class:`dircmp` compare les fichiers en faisant des comparaisons " +"*superficielles* comme décrit pour :func:`filecmp.cmp`." #: ../Doc/library/filecmp.rst:80 msgid "The :class:`dircmp` class provides the following methods:" -msgstr "" +msgstr "La classe :class:`dircmp` fournit les méthodes suivantes :" #: ../Doc/library/filecmp.rst:84 msgid "Print (to :data:`sys.stdout`) a comparison between *a* and *b*." -msgstr "" +msgstr "Affiche (sur :data:`sys.stdout`) une comparaison entre *a* et *b*." #: ../Doc/library/filecmp.rst:88 msgid "" "Print a comparison between *a* and *b* and common immediate subdirectories." msgstr "" +"Affiche une comparaison entre *a* et *b* et les sous-répertoires immédiats " +"communs." #: ../Doc/library/filecmp.rst:93 msgid "" "Print a comparison between *a* and *b* and common subdirectories " "(recursively)." msgstr "" +"Affiche une comparaison entre a et b et les sous-répertoires communs " +"(récursivement)." #: ../Doc/library/filecmp.rst:96 msgid "" @@ -140,6 +181,9 @@ msgid "" "be used to get various bits of information about the directory trees being " "compared." msgstr "" +"La classe :class:`dircmp` offre un certain nombre d'attributs intéressants " +"qui peuvent être utilisés pour obtenir diverses informations sur les " +"arborescences de répertoires comparées." #: ../Doc/library/filecmp.rst:100 msgid "" @@ -147,76 +191,93 @@ msgid "" "so there is no speed penalty if only those attributes which are lightweight " "to compute are used." msgstr "" +"Notez que, via les points d'ancrage :meth:`__getattr__`, tous les attributs " +"sont calculés de manière paresseuse. Il n'y a donc pas de pénalité en " +"vitesse si seuls les attributs rapides à calculer sont utilisés." #: ../Doc/library/filecmp.rst:107 msgid "The directory *a*." -msgstr "" +msgstr "Le répertoire *a*." #: ../Doc/library/filecmp.rst:112 msgid "The directory *b*." -msgstr "" +msgstr "Le répertoire *b*." #: ../Doc/library/filecmp.rst:117 msgid "Files and subdirectories in *a*, filtered by *hide* and *ignore*." msgstr "" +"Fichiers et sous-répertoires dans *a* , filtrés par *hide* et *ignore*." #: ../Doc/library/filecmp.rst:122 msgid "Files and subdirectories in *b*, filtered by *hide* and *ignore*." msgstr "" +"Fichiers et sous-répertoires dans *b* , filtrés par *hide* et *ignore*." #: ../Doc/library/filecmp.rst:127 msgid "Files and subdirectories in both *a* and *b*." -msgstr "" +msgstr "Fichiers et sous-répertoires à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:132 msgid "Files and subdirectories only in *a*." -msgstr "" +msgstr "Fichiers et sous-répertoires uniquement dans *a*." #: ../Doc/library/filecmp.rst:137 msgid "Files and subdirectories only in *b*." -msgstr "" +msgstr "Fichiers et sous-répertoires uniquement dans *b*." #: ../Doc/library/filecmp.rst:142 msgid "Subdirectories in both *a* and *b*." -msgstr "" +msgstr "Sous-répertoires à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:147 msgid "Files in both *a* and *b*." -msgstr "" +msgstr "Fichiers à la fois dans *a* et *b*." #: ../Doc/library/filecmp.rst:152 msgid "" "Names in both *a* and *b*, such that the type differs between the " "directories, or names for which :func:`os.stat` reports an error." msgstr "" +"Noms dans *a* et *b* , tels que le type diffère entre les répertoires, ou " +"noms pour lesquels :func:`os.stat` signale une erreur." #: ../Doc/library/filecmp.rst:158 msgid "" "Files which are identical in both *a* and *b*, using the class's file " "comparison operator." msgstr "" +"Fichiers identiques dans *a* et *b*, en utilisant l'opérateur de comparaison " +"de fichiers de la classe." #: ../Doc/library/filecmp.rst:164 msgid "" "Files which are in both *a* and *b*, whose contents differ according to the " "class's file comparison operator." msgstr "" +"Fichiers figurant à la fois dans *a* et dans *b* , dont le contenu diffère " +"en fonction de l'opérateur de comparaison de fichiers de la classe." #: ../Doc/library/filecmp.rst:170 msgid "Files which are in both *a* and *b*, but could not be compared." msgstr "" +"Fichiers à la fois dans *a* et dans *b* , mais ne pouvant pas être comparés." #: ../Doc/library/filecmp.rst:175 msgid "" "A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp` objects." msgstr "" +"Un dictionnaire faisant correspondre les noms dans :attr:`common_dirs` vers " +"des objets :class:`dircmp`." #: ../Doc/library/filecmp.rst:182 msgid "List of directories ignored by :class:`dircmp` by default." -msgstr "" +msgstr "Liste des répertoires ignorés par défaut par :class:`dircmp`." #: ../Doc/library/filecmp.rst:185 msgid "" "Here is a simplified example of using the ``subdirs`` attribute to search " "recursively through two directories to show common different files::" msgstr "" +"Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " +"effectuer une recherche récursive dans deux répertoires afin d'afficher des " +"fichiers communs différents ::" diff --git a/library/grp.po b/library/grp.po index 975ae8f5c..bff7ad85f 100644 --- a/library/grp.po +++ b/library/grp.po @@ -36,7 +36,7 @@ msgstr "" #: ../Doc/library/grp.rst:18 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/grp.rst:18 msgid "Attribute" @@ -133,7 +133,7 @@ msgstr "" #: ../Doc/library/grp.rst:64 msgid "Module :mod:`pwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:64 msgid "An interface to the user database, similar to this." diff --git a/library/hashlib.po b/library/hashlib.po index b33c748a8..9a9def8b2 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -20,6 +20,7 @@ msgstr "" #: ../Doc/library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" msgstr "" +":mod:`hashlib` --- Algorithmes de hachage sécurisés et synthèse de messages" #: ../Doc/library/hashlib.rst:10 msgid "**Source code:** :source:`Lib/hashlib.py`" @@ -34,22 +35,34 @@ msgid "" "hash\" and \"message digest\" are interchangeable. Older algorithms were " "called message digests. The modern term is secure hash." msgstr "" +"Ce module implémente une interface commune à différents algorithmes de " +"hachage sécurisés et de synthèse de messages. Sont inclus les algorithmes " +"standards FIPS de hachage SHA1, SHA224, SHA256, SHA384, et SHA512 (définis " +"dans FIPS 180-2) ainsi que l'algorithme MD5 de RSA (défini par la :rfc:" +"`1321`). Les termes \"algorithmes de hachage sécurisé\" et \"algorithme de " +"synthèse de message\" sont interchangeables. Les anciens algorithmes étaient " +"appelés\" algorithmes de synthèse de messages\". Le terme moderne est " +"\"algorithme de hachage sécurisé\"." #: ../Doc/library/hashlib.rst:32 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." msgstr "" +"Si vous préférez utiliser les fonctions de hachage *adler32* ou *crc32*, " +"elles sont disponibles dans le module :mod:`zlib`." #: ../Doc/library/hashlib.rst:37 msgid "" "Some algorithms have known hash collision weaknesses, refer to the \"See also" "\" section at the end." msgstr "" +"Certains algorithmes ont des faiblesses connues relatives à la collision, se " +"référer à la section \"Voir aussi\" à la fin." #: ../Doc/library/hashlib.rst:44 msgid "Hash algorithms" -msgstr "" +msgstr "Algorithmes de hachage" #: ../Doc/library/hashlib.rst:46 msgid "" @@ -61,18 +74,32 @@ msgid "" "`digest` of the concatenation of the data fed to it so far using the :meth:" "`digest` or :meth:`hexdigest` methods." msgstr "" +"Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " +"retournent un objet haché avec la même interface. Par exemple : utilisez :" +"func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " +"maintenant utilisez cet objet :term:`bytes-like objects ` " +"(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " +"tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " +"données fournies en utilisant les méthodes :meth:`digest` ou :meth:" +"`hexdigest`." #: ../Doc/library/hashlib.rst:56 msgid "" "For better multithreading performance, the Python :term:`GIL` is released " "for data larger than 2047 bytes at object creation or on update." msgstr "" +"Pour de meilleures performances avec de multiples fils d'exécution, le :term:" +"`GIL` Python est relâché pour des données dont la taille est supérieure à " +"2047 octets lors de leur création ou leur mise à jour." #: ../Doc/library/hashlib.rst:61 msgid "" "Feeding string objects into :meth:`update` is not supported, as hashes work " "on bytes, not on characters." msgstr "" +"Fournir des objets chaînes de caractères à la méthode :meth:`update` n'est " +"pas implémenté, comme les fonctions de hachages travaillent sur des *bytes* " +"et pas sur des caractères." #: ../Doc/library/hashlib.rst:66 msgid "" @@ -85,26 +112,40 @@ msgid "" "most platforms the :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" "func:`sha3_512`, :func:`shake_128`, :func:`shake_256` are also available." msgstr "" +"Les constructeurs pour les algorithmes de hachage qui sont toujours présents " +"dans ce module sont :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:" +"`sha384`, :func:`sha512`, :func:`blake2b`, et :func:`blake2s`. :func:`md5` " +"est normalement disponible aussi, mais il peut être manquant si vous " +"utilisez une forme rare de Python \"conforme FIPS\" . Des algorithmes " +"additionnels peuvent aussi être disponibles dépendant de la librairie " +"OpenSSL que Python utilise sur votre plate-forme. Sur la plupart des plates-" +"formes les fonctions :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" +"func:`sha3_512`, :func:`shake_128`, :func:`shake_256` sont aussi disponibles." #: ../Doc/library/hashlib.rst:76 msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." msgstr "" +"Les constructeurs SHA3 (Keccak) et SHAKE :func:`sha3_224`, :func:" +"`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:" +"`shake_256`." #: ../Doc/library/hashlib.rst:80 msgid ":func:`blake2b` and :func:`blake2s` were added." -msgstr "" +msgstr "Les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." #: ../Doc/library/hashlib.rst:83 msgid "" "For example, to obtain the digest of the byte string ``b'Nobody inspects the " "spammish repetition'``::" msgstr "" +"Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " +"spammish repetition'`` : ::" #: ../Doc/library/hashlib.rst:97 msgid "More condensed:" -msgstr "" +msgstr "En plus condensé : ::" #: ../Doc/library/hashlib.rst:104 msgid "" @@ -117,11 +158,11 @@ msgstr "" #: ../Doc/library/hashlib.rst:110 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" -msgstr "" +msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL : ::" #: ../Doc/library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" -msgstr "" +msgstr "*Hashlib* fournit les constantes suivantes ::" #: ../Doc/library/hashlib.rst:121 msgid "" @@ -130,6 +171,10 @@ msgid "" "some upstream vendors offering an odd \"FIPS compliant\" Python build that " "excludes it." msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage garantis d'être " +"implémentés par ce module sur toutes les plate-formes. Notez que *md5* est " +"dans cette liste malgré certains éditeurs qui offrent une implémentation " +"Python de la librairie compatible FIPS l'excluant." #: ../Doc/library/hashlib.rst:130 msgid "" @@ -139,30 +184,40 @@ msgid "" "same algorithm may appear multiple times in this set under different names " "(thanks to OpenSSL)." msgstr "" +"Un ensemble contenant les noms des algorithmes de hachage disponibles dans " +"l'interpréteur Python. Ces noms sont reconnus lorsqu'ils sont passés à la " +"fonction :func:`new`. :attr:`algorithms_guaranteed` est toujours un sous-" +"ensemble. Le même algorithme peut apparaître plusieurs fois dans cet " +"ensemble sous un nom différent (grâce à OpenSSL)." #: ../Doc/library/hashlib.rst:138 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" msgstr "" +"Les valeurs suivantes sont fournis en tant qu'attributs constants des objets " +"hachés retournés par les constructeurs : ::" #: ../Doc/library/hashlib.rst:144 msgid "The size of the resulting hash in bytes." -msgstr "" +msgstr "La taille du *hash* résultant en octets." #: ../Doc/library/hashlib.rst:148 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hashlib.rst:150 msgid "A hash object has the following attributes:" -msgstr "" +msgstr "L'objet haché possède les attributs suivants : ::" #: ../Doc/library/hashlib.rst:154 msgid "" "The canonical name of this hash, always lowercase and always suitable as a " "parameter to :func:`new` to create another hash of this type." msgstr "" +"Le nom canonique de cet objet haché, toujours en minuscule et toujours " +"transmissible à la fonction :func:`new` pour créer un autre objet haché de " +"ce type." #: ../Doc/library/hashlib.rst:157 msgid "" @@ -170,10 +225,13 @@ msgid "" "until Python 3.4 was not formally specified, so may not exist on some " "platforms." msgstr "" +"L'attribut *name* est présent dans CPython depuis sa création, mais n'était " +"pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " +"certaines plate-formes." #: ../Doc/library/hashlib.rst:162 msgid "A hash object has the following methods:" -msgstr "" +msgstr "L'objet haché possède les méthodes suivantes : ::" #: ../Doc/library/hashlib.rst:167 msgid "" @@ -189,6 +247,10 @@ msgid "" "on data larger than 2047 bytes is taking place when using hash algorithms " "supplied by OpenSSL." msgstr "" +"Le GIL Python est relâché pour permettre aux autres fils d'exécution de " +"tourner pendant que la fonction de hachage met à jour des données plus " +"larges que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " +"utilisés." #: ../Doc/library/hashlib.rst:180 msgid "" @@ -196,6 +258,9 @@ msgid "" "This is a bytes object of size :attr:`digest_size` which may contain bytes " "in the whole range from 0 to 255." msgstr "" +"Renvoie le *digest* des données passées à la méthode :meth:`update`. C'est " +"un objet de type *bytes* de taille :attr:`digest_size` qui contient des " +"octets dans l'intervalle 0 à 255." #: ../Doc/library/hashlib.rst:187 ../Doc/library/hashlib.rst:215 msgid "" @@ -203,16 +268,23 @@ msgid "" "double length, containing only hexadecimal digits. This may be used to " "exchange the value safely in email or other non-binary environments." msgstr "" +"Comme la méthode :meth:`digest` sauf que le *digest* renvoyé est une chaîne " +"de caractères de longueur double, contenant seulement des chiffres " +"hexadécimaux. Cela peut être utilisé pour échanger sans risque des valeurs " +"dans les *e-mails* ou dans les environnements non binaires." #: ../Doc/library/hashlib.rst:194 msgid "" "Return a copy (\"clone\") of the hash object. This can be used to " "efficiently compute the digests of data sharing a common initial substring." msgstr "" +"Renvoie une copie (\"clone\") de l'objet haché. Cela peut être utilisé pour " +"calculer efficacement les *digests* de données partageant des sous-chaînes " +"communes." #: ../Doc/library/hashlib.rst:199 msgid "SHAKE variable length digests" -msgstr "" +msgstr "Synthèse de messages de taille variable SHAKE" #: ../Doc/library/hashlib.rst:201 msgid "" @@ -221,6 +293,10 @@ msgid "" "such, their digest methods require a length. Maximum length is not limited " "by the SHAKE algorithm." msgstr "" +"Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des " +"messages de longueur variable avec des longueurs_en_bits//2 jusqu'à 128 ou " +"256 bits de sécurité. Leurs méthodes *digests* requièrent une longueur. Les " +"longueurs maximales ne sont pas limitées par l'algorithme SHAKE." #: ../Doc/library/hashlib.rst:208 msgid "" @@ -231,7 +307,7 @@ msgstr "" #: ../Doc/library/hashlib.rst:221 msgid "Key derivation" -msgstr "" +msgstr "Dérivation de clé" #: ../Doc/library/hashlib.rst:223 msgid "" @@ -241,12 +317,20 @@ msgid "" "be tunable, slow, and include a `salt `_." msgstr "" +"Les algorithmes de dérivation de clés et d'étirement de clés sont conçus " +"pour le hachage sécurisé de mots de passe. Des algorithmes naïfs comme " +"``sha1(password)`` ne sont pas résistants aux attaques par force brute. Une " +"bonne fonction de hachage doit être paramétrable, lente, et inclure un `sel " +"`_." #: ../Doc/library/hashlib.rst:231 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." msgstr "" +"La fonction fournit une fonction de dérivation PKCS#5 (*Public Key " +"Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " +"pseudo-aléatoire." #: ../Doc/library/hashlib.rst:234 msgid "" @@ -256,6 +340,12 @@ msgid "" "sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " "proper source, e.g. :func:`os.urandom`." msgstr "" +"La chaîne de caractères *hash_name* est le nom de l'algorithme de hachage " +"désiré pour le HMAC, par exemple ``\"sha1\"`` ou ``\"sha256\"``. *password* " +"et *salt* sont interprétés comme des tampons d'octets. Les applications et " +"bibliothèques doivent limiter *password* à une longueur raisonnable (comme " +"``1024``). *salt* doit être de 16 octets ou plus provenant d'une source " +"correcte, e.g. :func:`os.urandom`." #: ../Doc/library/hashlib.rst:240 msgid "" @@ -263,12 +353,18 @@ msgid "" "computing power. As of 2013, at least 100,000 iterations of SHA-256 are " "suggested." msgstr "" +"Le nombre d'*iterations* doit être choisi sur la base de l'algorithme de " +"hachage et de la puissance de calcul. En 2013, au moins 100000 itérations de " +"SHA-256 sont recommandées." #: ../Doc/library/hashlib.rst:244 msgid "" "*dklen* is the length of the derived key. If *dklen* is ``None`` then the " "digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." msgstr "" +"*dklen* est la longueur de la clé dérivée. Si *dklen* vaut ``None`` alors la " +"taille du message de l'algorithme de hachage *hash_name* est utilisé, e.g. " +"64 pour SHA-512." #: ../Doc/library/hashlib.rst:256 msgid "" @@ -276,12 +372,17 @@ msgid "" "Python implementation uses an inline version of :mod:`hmac`. It is about " "three times slower and doesn't release the GIL." msgstr "" +"Une implémentation rapide de *pbkdf2_hmac* est disponible avec OpenSSL. " +"L'implémentation Python utilise une version anonyme de :mod:`hmac`. Elle est " +"trois fois plus lente et ne libère pas le GIL." #: ../Doc/library/hashlib.rst:262 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." msgstr "" +"La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " +"dans :rfc:`7914`." #: ../Doc/library/hashlib.rst:265 msgid "" @@ -303,51 +404,65 @@ msgstr "" #: ../Doc/library/hashlib.rst:279 msgid "BLAKE2" -msgstr "" +msgstr "BLAKE2" #: ../Doc/library/hashlib.rst:286 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" msgstr "" +"BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" +"`7693` et disponible en deux versions : ::" #: ../Doc/library/hashlib.rst:289 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," msgstr "" +"**BLAKE2b**, optimisée pour les plates-formes 64-bit et produisant des " +"messages de toutes tailles entre 1 et 64 octets," #: ../Doc/library/hashlib.rst:292 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" +"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"des messages de toutes tailles entre 1 et 32 octets." #: ../Doc/library/hashlib.rst:295 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." msgstr "" +"BLAKE2 gère diverses fonctionnalités **keyed mode** (un remplacement plus " +"rapide et plus simple pour HMAC_), **salted hashing**, **personalization**, " +"et **tree hashing**." #: ../Doc/library/hashlib.rst:298 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." msgstr "" +"Les objets hachés de ce module suivent l'API des objets du module :mod:" +"`hashlib` de la librairie standard." #: ../Doc/library/hashlib.rst:303 msgid "Creating hash objects" -msgstr "" +msgstr "Création d'objets hachés" #: ../Doc/library/hashlib.rst:305 msgid "New hash objects are created by calling constructor functions:" msgstr "" +"Les nouveaux objets hachés sont créés en appelant les constructeurs : ::" #: ../Doc/library/hashlib.rst:317 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" msgstr "" +"Ces fonctions produisent l'objet haché correspondant aux calculs de BLAKE2b " +"ou BLAKE2s. Elles prennent ces paramètres optionnels : ::" #: ../Doc/library/hashlib.rst:320 msgid "" @@ -357,69 +472,77 @@ msgstr "" #: ../Doc/library/hashlib.rst:323 msgid "*digest_size*: size of output digest in bytes." -msgstr "" +msgstr "*digest_size*: taille en sortie du message en octets." #: ../Doc/library/hashlib.rst:325 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." msgstr "" +"*key*: clé pour les code d'authentification de message *keyed hashing* " +"(jusqu'à 64 octets pour BLAKE2b, jusqu'à 32 octets pour BLAKE2s)." #: ../Doc/library/hashlib.rst:328 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." msgstr "" +"*salt*: sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " +"octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." #: ../Doc/library/hashlib.rst:331 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." msgstr "" +"*person*: chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " +"jusqu'à 8 octets pour BLAKE2s)." #: ../Doc/library/hashlib.rst:334 msgid "The following table shows limits for general parameters (in bytes):" msgstr "" +"Le tableau suivant présente les limites des paramètres généraux (en " +"octets) : ::" #: ../Doc/library/hashlib.rst:337 msgid "Hash" -msgstr "" +msgstr "Hash" #: ../Doc/library/hashlib.rst:337 msgid "digest_size" -msgstr "" +msgstr "digest_size" #: ../Doc/library/hashlib.rst:337 msgid "len(key)" -msgstr "" +msgstr "len(key)" #: ../Doc/library/hashlib.rst:337 msgid "len(salt)" -msgstr "" +msgstr "len(salt)" #: ../Doc/library/hashlib.rst:337 msgid "len(person)" -msgstr "" +msgstr "len(person)" #: ../Doc/library/hashlib.rst:339 msgid "BLAKE2b" -msgstr "" +msgstr "BLAKE2b" #: ../Doc/library/hashlib.rst:339 msgid "64" -msgstr "" +msgstr "64" #: ../Doc/library/hashlib.rst:339 msgid "16" -msgstr "" +msgstr "16" #: ../Doc/library/hashlib.rst:340 msgid "BLAKE2s" -msgstr "" +msgstr "BLAKE2s" #: ../Doc/library/hashlib.rst:340 msgid "32" -msgstr "" +msgstr "32" #: ../Doc/library/hashlib.rst:340 msgid "8" @@ -434,60 +557,85 @@ msgid "" "example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " "the case for *key*.)" msgstr "" +"Les spécifications de BLAKE2 définissent des longueurs constantes pour les " +"sel et chaînes de personnalisation, toutefois, par commodité, cette " +"implémentation accepte des chaînes *byte* de n'importe quelle taille jusqu'à " +"la longueur spécifiée. Si la longueur du paramètre est moindre par rapport à " +"celle spécifiée, il est complété par des zéros, ainsi, par exemple, " +"``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (Ce n'est pas le cas " +"pour *key*.)" #: ../Doc/library/hashlib.rst:352 msgid "These sizes are available as module `constants`_ described below." msgstr "" +"Ces tailles sont disponibles comme `constants`_ du module et décrites ci-" +"dessous." #: ../Doc/library/hashlib.rst:354 msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" +"Les fonctions constructeur acceptent aussi les paramètres suivants pour le " +"*tree hashing* : ::" #: ../Doc/library/hashlib.rst:356 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." -msgstr "" +msgstr "*fanout*: *fanout* (0 à 255, 0 si illimité, 1 en mode séquentiel)." #: ../Doc/library/hashlib.rst:358 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." msgstr "" +"*depth*: profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 en mode " +"séquentiel)." #: ../Doc/library/hashlib.rst:361 msgid "" "*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " "sequential mode)." msgstr "" +"*leaf_size*: taille maximale en octets d'une feuille (0 à 2**32-1, 0 si " +"illimité ou en mode séquentiel)." #: ../Doc/library/hashlib.rst:364 msgid "" "*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " "BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." msgstr "" +"*node_offset*: décalage de nœud (0 à 2**64-1 pour BLAKE2b, 0 à 2**48-1 pour " +"BLAKE2s, 0 pour la première feuille la plus à gauche, ou en mode séquentiel)." #: ../Doc/library/hashlib.rst:367 msgid "" "*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." msgstr "" +"*node_depth*: profondeur de nœuds (0 à 255, 0 pour les feuilles, ou en mode " +"séquentiel)." #: ../Doc/library/hashlib.rst:369 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." msgstr "" +"*inner_size*: taille interne du message (0 à 64 pour BLAKE2b, 0 à 32 pour " +"BLAKE2s, 0 en mode séquentiel)." #: ../Doc/library/hashlib.rst:372 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(`False` for sequential mode)." msgstr "" +"*last_node*: booléen indiquant si le nœud traité est le dernier (`False` " +"pour le mode séquentiel)." #: ../Doc/library/hashlib.rst:378 msgid "" "See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." msgstr "" +"Voir section 2.10 dans `BLAKE2 specification `_ pour une approche compréhensive du *tree hashing*." #: ../Doc/library/hashlib.rst:384 msgid "Constants" @@ -495,20 +643,22 @@ msgstr "Constantes" #: ../Doc/library/hashlib.rst:389 msgid "Salt length (maximum length accepted by constructors)." -msgstr "" +msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." #: ../Doc/library/hashlib.rst:395 msgid "" "Personalization string length (maximum length accepted by constructors)." msgstr "" +"Longueur de la chaîne de personnalisation (longueur maximale acceptée par " +"les constructeurs)." #: ../Doc/library/hashlib.rst:401 msgid "Maximum key size." -msgstr "" +msgstr "Taille maximale de clé." #: ../Doc/library/hashlib.rst:407 msgid "Maximum digest size that the hash function can output." -msgstr "" +msgstr "Taille maximale du message que peut fournir la fonction de hachage." #: ../Doc/library/hashlib.rst:411 msgid "Examples" @@ -516,7 +666,7 @@ msgstr "Exemples" #: ../Doc/library/hashlib.rst:414 msgid "Simple hashing" -msgstr "" +msgstr "Hachage simple" #: ../Doc/library/hashlib.rst:416 msgid "" @@ -526,6 +676,12 @@ msgid "" "object, and, finally, get the digest out of the object by calling :meth:" "`digest` (or :meth:`hexdigest` for hex-encoded string)." msgstr "" +"Pour calculer les *hash* de certaines données, vous devez d'abord construire " +"un objet haché en appelant la fonction constructeur appropriée (:func:" +"`blake2b` or :func:`blake2s`), ensuite le mettre à jour avec les données en " +"appelant la méthode :meth:`update` sur l'objet, et, pour finir, récupérer " +"l'empreinte du message en appelant la méthode :meth:`digest` (ou :meth:" +"`hexdigest` pour les chaînes hexadécimales)." #: ../Doc/library/hashlib.rst:429 msgid "" @@ -538,10 +694,12 @@ msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" msgstr "" +"Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " +"nécessaire pour mettre à jour le *hash* de manière itérative : ::" #: ../Doc/library/hashlib.rst:449 msgid "Using different digest sizes" -msgstr "" +msgstr "Usage de tailles d'empreintes différentes" #: ../Doc/library/hashlib.rst:451 msgid "" @@ -549,6 +707,10 @@ msgid "" "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " "changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" msgstr "" +"BLAKE2 permet de configurer la taille des empreintes jusqu'à 64 octets pour " +"BLAKE2b et jusqu'à 32 octets pour BLAKE2s. Par exemple, pour remplacer SHA-1 " +"par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " +"de produire une empreinte de 20 octets : ::" #: ../Doc/library/hashlib.rst:465 msgid "" @@ -556,10 +718,14 @@ msgid "" "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " "produce different outputs even if the output length is the same:" msgstr "" +"Les objets hachés avec différentes tailles d'empreintes ont des sorties " +"complètement différentes (les *hash* plus courts *ne sont pas* des préfixes " +"de *hash* plus longs); BLAKE2b et BLAKE2s produisent des sorties différentes " +"même si les longueurs des sorties sont les mêmes : ::" #: ../Doc/library/hashlib.rst:481 msgid "Keyed hashing" -msgstr "" +msgstr "Code d'authentification de message" #: ../Doc/library/hashlib.rst:483 msgid "" @@ -575,22 +741,31 @@ msgid "" "This example shows how to get a (hex-encoded) 128-bit authentication code " "for message ``b'message data'`` with key ``b'pseudorandom key'``::" msgstr "" +"Cet exemple montre comment obtenir un code d'authentification de message de " +"128-bit (en hexadécimal) pour un message ``b'message data'`` avec la clé " +"``b'pseudorandom key'`` : ::" #: ../Doc/library/hashlib.rst:499 msgid "" "As a practical example, a web application can symmetrically sign cookies " "sent to users and later verify them to make sure they weren't tampered with::" msgstr "" +"Comme exemple pratique, une application web peut chiffrer symétriquement les " +"*cookies* envoyés aux utilisateurs et les vérifier plus tard pour être " +"certaine qu'ils n'aient pas été altérés : ::" #: ../Doc/library/hashlib.rst:528 msgid "" "Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " "used in HMAC construction with :mod:`hmac` module::" msgstr "" +"Même s'il possède en natif la création de code d'authentification de message " +"(MAC), BLAKE2 peut, bien sûr, être utilisé pour construire un HMAC en " +"combinaison du module :mod:`hmac` : ::" #: ../Doc/library/hashlib.rst:539 msgid "Randomized hashing" -msgstr "" +msgstr "Hachage randomisé" #: ../Doc/library/hashlib.rst:541 msgid "" @@ -598,6 +773,10 @@ msgid "" "function. Randomized hashing is useful for protecting against collision " "attacks on the hash function used in digital signatures." msgstr "" +"En définissant le paramètre *salt* les utilisateurs peuvent introduire de " +"l'aléatoire dans la fonction de hachage. Le hachage randomisé est utile pour " +"se protéger des attaques par collisions sur les fonctions de hachage " +"utilisées dans les signatures numériques." #: ../Doc/library/hashlib.rst:545 msgid "" @@ -631,6 +810,8 @@ msgid "" "In BLAKE2 the salt is processed as a one-time input to the hash function " "during initialization, rather than as an input to each compression function." msgstr "" +"Dans BLAKE2, le sel est passé une seule fois lors de l'initialisation de la " +"fonction de hachage, plutôt qu'à chaque appel d'une fonction de compression." #: ../Doc/library/hashlib.rst:572 msgid "" @@ -638,10 +819,14 @@ msgid "" "cryptographic hash function, such as SHA-256, is not suitable for hashing " "passwords. See `BLAKE2 FAQ `_ for more information." msgstr "" +"*Salted hashing* (ou juste hachage) avec BLAKE2 ou toute autre fonction de " +"hachage générique, comme SHA-256, ne convient pas pour le chiffrement des " +"mots de passe. Voir `BLAKE2 FAQ `_ pour plus " +"d'informations." #: ../Doc/library/hashlib.rst:595 msgid "Personalization" -msgstr "" +msgstr "Personnalisation" #: ../Doc/library/hashlib.rst:597 msgid "" @@ -649,6 +834,9 @@ msgid "" "for the same input for different purposes. Quoting the authors of the Skein " "hash function:" msgstr "" +"Parfois il est utile de forcer une fonction de hachage à produire " +"différentes empreintes de message d'une même entrée pour différentes " +"utilisations. Pour citer les auteurs de la fonction de hachage Skein : ::" #: ../Doc/library/hashlib.rst:601 msgid "" @@ -659,40 +847,57 @@ msgid "" "force the application to make the hash inputs the same. Personalizing each " "hash function used in the protocol summarily stops this type of attack." msgstr "" +"Nous recommandons que tous les développeurs d'application considèrent " +"sérieusement de faire cela ; nous avons vu de nombreux protocoles où un " +"*hash* était calculé à un endroit du protocole pour être utilisé à un autre " +"endroit car deux calculs de *hash* étaient réalisés sur des données " +"similaires ou liées, et qu'un attaquant peut forcer une application à " +"prendre en entrée le même *hash*. Personnaliser chaque fonction de hachage " +"utilisée dans le protocole stoppe immédiatement ce genre d'attaque." #: ../Doc/library/hashlib.rst:608 msgid "" "(`The Skein Hash Function Family `_, p. 21)" msgstr "" +"(`The Skein Hash Function Family `_, p. 21, article en anglais)" #: ../Doc/library/hashlib.rst:612 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" msgstr "" +"BLAKE2 peut être personnalisé en passant des *bytes* à l'argument " +"*person* : ::" #: ../Doc/library/hashlib.rst:626 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." msgstr "" +"La personnalisation et le *keyed mode* peuvent être utilisés ensemble pour " +"dériver différentes clés à partir d'une seule." #: ../Doc/library/hashlib.rst:640 msgid "Tree mode" -msgstr "" +msgstr "Mode Arbre" #: ../Doc/library/hashlib.rst:642 msgid "Here's an example of hashing a minimal tree with two leaf nodes::" msgstr "" +"L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " +"nœuds terminaux : ::" #: ../Doc/library/hashlib.rst:648 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" msgstr "" +"Cet exemple utilise en interne des empreintes de 64 octets, et produit " +"finalement des empreintes 32 octets : ::" #: ../Doc/library/hashlib.rst:678 msgid "Credits" -msgstr "" +msgstr "Crédits" #: ../Doc/library/hashlib.rst:680 msgid "" @@ -701,12 +906,18 @@ msgid "" "created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " "*Raphael C.-W. Phan*." msgstr "" +"BLAKE2_ a été conçu par *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn*, et *Christian Winnerlein* basé sur SHA-3_ finaliste BLAKE_ " +"créé par *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael " +"C.-W. Phan*." #: ../Doc/library/hashlib.rst:685 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." msgstr "" +"Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " +"*Daniel J. Bernstein*." #: ../Doc/library/hashlib.rst:687 msgid "" @@ -714,16 +925,23 @@ msgid "" "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " "documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." msgstr "" +"L'implémentation dans la librairie standard est basée sur le module " +"pyblake2_. Il a été écrit par *Dmitry Chestnykh* et basé sur " +"l'implémentation C écrite par *Samuel Neves*. La documentation a été copiée " +"depuis pyblake2_ et écrite par *Dmitry Chestnykh*." #: ../Doc/library/hashlib.rst:691 msgid "The C code was partly rewritten for Python by *Christian Heimes*." msgstr "" +"Le code C a été partiellement réécrit pour Python par *Christian Heimes*." #: ../Doc/library/hashlib.rst:693 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" msgstr "" +"Le transfert dans le domaine publique s'applique pour l'implémentation C de " +"la fonction de hachage, ses extensions et cette documentation : ::" #: ../Doc/library/hashlib.rst:696 msgid "" @@ -731,6 +949,10 @@ msgid "" "and related and neighboring rights to this software to the public domain " "worldwide. This software is distributed without any warranty." msgstr "" +"Tout en restant dans les limites de la loi, le(s) auteur(s) a (ont) consacré " +"tous les droits d’auteur et droits connexes et voisins de ce logiciel au " +"domaine public dans le monde entier. Ce logiciel est distribué sans aucune " +"garantie." #: ../Doc/library/hashlib.rst:700 msgid "" @@ -745,18 +967,22 @@ msgid "" "changes to the project and the public domain according to the Creative " "Commons Public Domain Dedication 1.0 Universal:" msgstr "" +"Les personnes suivantes ont aidé au développement ou contribué aux " +"modification du projet et au domaine public selon la licence Creative " +"Commons Public Domain Dedication 1.0 Universal : ::" #: ../Doc/library/hashlib.rst:708 msgid "*Alexandr Sokolovskiy*" -msgstr "" +msgstr "*Alexandr Sokolovskiy*" #: ../Doc/library/hashlib.rst:722 msgid "Module :mod:`hmac`" -msgstr "" +msgstr "Module :mod:`hmac`" #: ../Doc/library/hashlib.rst:722 msgid "A module to generate message authentication codes using hashes." msgstr "" +"Un module pour générer des codes d'authentification utilisant des *hash*." #: ../Doc/library/hashlib.rst:725 msgid "Module :mod:`base64`" @@ -765,14 +991,16 @@ msgstr "Module :mod:`base64`" #: ../Doc/library/hashlib.rst:725 msgid "Another way to encode binary hashes for non-binary environments." msgstr "" +"Un autre moyen d'encoder des *hash* binaires dans des environnements non " +"binaires." #: ../Doc/library/hashlib.rst:728 msgid "https://blake2.net" -msgstr "" +msgstr "https://blake2.net" #: ../Doc/library/hashlib.rst:728 msgid "Official BLAKE2 website." -msgstr "" +msgstr "Site officiel de BLAKE2." #: ../Doc/library/hashlib.rst:731 msgid "http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" @@ -780,24 +1008,28 @@ msgstr "" #: ../Doc/library/hashlib.rst:731 msgid "The FIPS 180-2 publication on Secure Hash Algorithms." -msgstr "" +msgstr "La publication FIPS 180-2 sur les algorithmes de hachage sécurisés." #: ../Doc/library/hashlib.rst:735 msgid "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" msgstr "" +"https://en.wikipedia.org/wiki/" +"Cryptographic_hash_function#Cryptographic_hash_algorithms" #: ../Doc/library/hashlib.rst:734 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." msgstr "" +"Article Wikipedia contenant les informations relatives aux algorithmes ayant " +"des problèmes et leur interprétation au regard de leur utilisation." #: ../Doc/library/hashlib.rst:737 msgid "https://www.ietf.org/rfc/rfc2898.txt" -msgstr "" +msgstr "https://www.ietf.org/rfc/rfc2898.txt" #: ../Doc/library/hashlib.rst:738 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" -msgstr "" +msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/hmac.po b/library/hmac.po index a5d21ce71..6993e6a6d 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -104,7 +104,7 @@ msgstr "" #: ../Doc/library/hmac.rst:81 msgid "A hash object has the following attributes:" -msgstr "" +msgstr "L'objet haché possède les attributs suivants : ::" #: ../Doc/library/hmac.rst:85 msgid "The size of the resulting HMAC digest in bytes." @@ -112,7 +112,7 @@ msgstr "" #: ../Doc/library/hmac.rst:89 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hmac.rst:95 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." diff --git a/library/http.cookiejar.po b/library/http.cookiejar.po index af383ea2c..57cdb3e66 100644 --- a/library/http.cookiejar.po +++ b/library/http.cookiejar.po @@ -171,7 +171,7 @@ msgstr "" #: ../Doc/library/http.cookiejar.rst:126 msgid ":rfc:`2109` - HTTP State Management Mechanism" -msgstr "" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" #: ../Doc/library/http.cookiejar.rst:126 msgid "Obsoleted by :rfc:`2965`. Uses :mailheader:`Set-Cookie` with version=1." @@ -768,7 +768,7 @@ msgstr "" #: ../Doc/library/http.cookiejar.rst:602 msgid "Cookie Objects" -msgstr "" +msgstr "Objets *Cookie*" #: ../Doc/library/http.cookiejar.rst:604 msgid "" diff --git a/library/http.cookies.po b/library/http.cookies.po index 5747c1984..b1acddb67 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/http.cookies.rst:2 msgid ":mod:`http.cookies` --- HTTP state management" -msgstr "" +msgstr ":mod:`http.cookies` — gestion d'état pour HTTP" #: ../Doc/library/http.cookies.rst:10 msgid "**Source code:** :source:`Lib/http/cookies.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/http/cookies.py`" #: ../Doc/library/http.cookies.rst:14 msgid "" @@ -32,6 +32,10 @@ msgid "" "string-only cookies, and provides an abstraction for having any serializable " "data-type as cookie value." msgstr "" +"Le module :mod:`http.cookies` définit des classes abstrayant le concept de " +"témoin web (cookie), un mécanisme de gestion d'état pour HTTP. Il fournit " +"une abstraction gérant des données textuelles et tout type de données " +"sérialisable comme valeur de témoin." #: ../Doc/library/http.cookies.rst:19 msgid "" @@ -42,6 +46,13 @@ msgid "" "comes to Cookie handling. As a result, the parsing rules used are a bit " "less strict." msgstr "" +"Auparavant, le module appliquait strictement les règles d'analyse décrites " +"dans les spécifications :rfc:`2109` et :rfc:`2068`. Entre temps, il a été " +"découvert que Internet Explorer 3.0 ne suit pas les règles liées aux " +"caractères précisées dans ces spécifications. De plus, plusieurs navigateurs " +"et serveurs dans leur versions récentes ont assoupli les règles d'analyse " +"quant à la gestion des témoins. En conséquence, les règles d'analyse " +"utilisées sont un peu moins strictes que les spécifications initiales." #: ../Doc/library/http.cookies.rst:25 msgid "" @@ -49,10 +60,13 @@ msgid "" "``!#$%&'*+-.^_`|~:`` denote the set of valid characters allowed by this " "module in Cookie name (as :attr:`~Morsel.key`)." msgstr "" +"Les jeux de caractères :data:`string.ascii_letters`, :data:`string.digits` " +"et ``!#$%&'*+-.^_`|~:`` définissent l'ensemble des caractères autorisés par " +"ce module pour le nom du témoin (comme :attr:`~Morsel.key`)." #: ../Doc/library/http.cookies.rst:29 msgid "Allowed ':' as a valid Cookie name character." -msgstr "" +msgstr "Ajouté « : » comme caractère autorisé pour les noms de témoin." #: ../Doc/library/http.cookies.rst:35 msgid "" @@ -60,12 +74,17 @@ msgid "" "cookie data comes from a browser you should always prepare for invalid data " "and catch :exc:`CookieError` on parsing." msgstr "" +"Quand un témoin invalide est rencontré, l'exception :exc:`CookieError` est " +"levée. Si les données du témoin proviennent d'un navigateur il faut " +"impérativement gérer les données invalides en attrapant :exc:`CookieError`." #: ../Doc/library/http.cookies.rst:42 msgid "" "Exception failing because of :rfc:`2109` invalidity: incorrect attributes, " "incorrect :mailheader:`Set-Cookie` header, etc." msgstr "" +"Exception levée pour cause d'incompatibilité avec la :rfc:`2109`. Exemples : " +"attributs incorrects, en-tête ``Set-Cookie`` incorrect, etc." #: ../Doc/library/http.cookies.rst:48 msgid "" @@ -74,10 +93,15 @@ msgid "" "value, the value is first converted to a :class:`Morsel` containing the key " "and the value." msgstr "" +"Cette classe définit un dictionnaire dont les clés sont des chaines de " +"caractères et dont les valeurs sont des instances de :class:`Morsel`. Notez " +"qu'à l'assignation d'une valeur à une clé, la valeur est transformée en :" +"class:`Morsel` contenant la clé et la valeur." #: ../Doc/library/http.cookies.rst:52 msgid "If *input* is given, it is passed to the :meth:`load` method." msgstr "" +"Si l'argument *input* est donné, il est passé à la méthode :meth:`load`." #: ../Doc/library/http.cookies.rst:57 msgid "" @@ -88,25 +112,27 @@ msgstr "" #: ../Doc/library/http.cookies.rst:65 msgid "Module :mod:`http.cookiejar`" -msgstr "" +msgstr "Module :mod:`http.cookiejar`" #: ../Doc/library/http.cookies.rst:64 msgid "" "HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` and :mod:" "`http.cookies` modules do not depend on each other." msgstr "" +"Gestion de témoins HTTP pour *clients* web. Les modules :mod:`http." +"cookiejar` et :mod:`http.cookies` ne dépendent pas l'un de l'autre." #: ../Doc/library/http.cookies.rst:67 msgid ":rfc:`2109` - HTTP State Management Mechanism" -msgstr "" +msgstr ":rfc:`2109` - HTTP State Management Mechanism" #: ../Doc/library/http.cookies.rst:68 msgid "This is the state management specification implemented by this module." -msgstr "" +msgstr "Spécification de gestion d'états implantée par ce module." #: ../Doc/library/http.cookies.rst:74 msgid "Cookie Objects" -msgstr "" +msgstr "Objets *Cookie*" #: ../Doc/library/http.cookies.rst:79 msgid "" @@ -127,6 +153,10 @@ msgid "" "In general, it should be the case that :meth:`value_encode` and :meth:" "`value_decode` are inverses on the range of *value_decode*." msgstr "" +"Généralement, les méthodes :meth:`value_encode` et :meth:`value_decode` " +"doivent être inverses l'une de l'autre, c'est-à-dire qu'en envoyant la " +"sortie de l'un dans l'entrée de l'autre la valeur finale doit être égale à " +"la valeur initiale." #: ../Doc/library/http.cookies.rst:96 msgid "" @@ -135,17 +165,24 @@ msgid "" "is used to join the headers together, and is by default the combination " "``'\\r\\n'`` (CRLF)." msgstr "" +"Renvoie une représentation textuelle compatible avec les en-têtes HTTP. " +"*attrs et *header* sont envoyés à la méthode :meth:`output` de chaque " +"classe :class:`Morsel`. *sep* est le séparateur à utiliser pour joindre les " +"valeurs d'en-têtes. Sa valeur par défaut est ``'\\r\\n'`` (CRLF)." #: ../Doc/library/http.cookies.rst:104 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP headers was sent." msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." #: ../Doc/library/http.cookies.rst:107 ../Doc/library/http.cookies.rst:203 #: ../Doc/library/http.cookies.rst:211 msgid "The meaning for *attrs* is the same as in :meth:`output`." -msgstr "" +msgstr "*attrs* a la même signification que dans la méthode :meth:`output`." #: ../Doc/library/http.cookies.rst:112 msgid "" @@ -153,20 +190,28 @@ msgid "" "found there as :class:`Morsel`\\ s. If it is a dictionary, it is equivalent " "to::" msgstr "" +"Si *rawdata* est une chaine de caractères, l'analyser comme étant un " +"``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`" +"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" #: ../Doc/library/http.cookies.rst:122 msgid "Morsel Objects" -msgstr "" +msgstr "Objets *Morsel*" #: ../Doc/library/http.cookies.rst:127 msgid "Abstract a key/value pair, which has some :rfc:`2109` attributes." msgstr "" +"Abstraction de paire clé / valeur, accompagnée d'attributs provenant de la " +"spécification :rfc:`2109`." #: ../Doc/library/http.cookies.rst:129 msgid "" "Morsels are dictionary-like objects, whose set of keys is constant --- the " "valid :rfc:`2109` attributes, which are" msgstr "" +"Les objets *Morsel* sont des objets compatibles dictionnaire, dont " +"l'ensemble des clés est fixe et égal aux attributs :rfc:`2109` valides, qui " +"sont" #: ../Doc/library/http.cookies.rst:132 msgid "``expires``" @@ -206,20 +251,26 @@ msgid "" "in HTTP requests, and is not accessible through JavaScript. This is intended " "to mitigate some forms of cross-site scripting." msgstr "" +"L'attribut :attr:`httponly` spécifie que le témoin transféré dans les " +"requêtes HTTP n'est pas accessible par le biais de JavaScript. Il s'agit " +"d'une contremesure à certaines attaques de scripts inter-sites (*XSS*)." #: ../Doc/library/http.cookies.rst:145 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" +"Les clés ne sont pas sensibles à la casse, leur valeur par défaut est ``''``." #: ../Doc/library/http.cookies.rst:147 msgid "" ":meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel." "value` into account." msgstr "" +"Dorénavant, :meth:`~Morsel.__eq__` prend en compte :attr:`~Morsel.key` et :" +"attr:`~Morsel.value`." #: ../Doc/library/http.cookies.rst:154 msgid "The value of the cookie." -msgstr "" +msgstr "La valeur du témoin." #: ../Doc/library/http.cookies.rst:156 msgid "assigning to ``value``; use :meth:`~Morsel.set` instead." @@ -227,7 +278,7 @@ msgstr "" #: ../Doc/library/http.cookies.rst:162 msgid "The encoded value of the cookie --- this is what should be sent." -msgstr "" +msgstr "La valeur codée du témoin. C'est celle qui doit être transférée." #: ../Doc/library/http.cookies.rst:164 msgid "assigning to ``coded_value``; use :meth:`~Morsel.set` instead." @@ -235,7 +286,7 @@ msgstr "" #: ../Doc/library/http.cookies.rst:170 msgid "The name of the cookie." -msgstr "" +msgstr "Le nom du témoin." #: ../Doc/library/http.cookies.rst:172 msgid "assigning to ``key``; use :meth:`~Morsel.set` instead." @@ -243,7 +294,7 @@ msgstr "" #: ../Doc/library/http.cookies.rst:178 msgid "Set the *key*, *value* and *coded_value* attributes." -msgstr "" +msgstr "Assigne les attributs *key*, *value* et *coded_value*." #: ../Doc/library/http.cookies.rst:180 msgid "" @@ -253,7 +304,7 @@ msgstr "" #: ../Doc/library/http.cookies.rst:187 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." -msgstr "" +msgstr "Renvoie si *K* est membre des clés d'un :class:`Morsel`." #: ../Doc/library/http.cookies.rst:192 msgid "" @@ -262,18 +313,27 @@ msgid "" "given, in which case it should be a list of attributes to use. *header* is " "by default ``\"Set-Cookie:\"``." msgstr "" +"Renvoie une représentation textuelle du *Morsel* compatible avec les en-" +"têtes HTTP. Par défaut, tous les attributs sont inclus, à moins que *attrs* " +"ne soit renseigné. Dans ce cas la valeur doit être une liste d'attributs à " +"utiliser. Par défaut, *header* a la valeur ``\"Set-Cookie:\"``." #: ../Doc/library/http.cookies.rst:200 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP header was sent." msgstr "" +"Renvoie un extrait de code JavaScript qui, lorsque exécuté par un navigateur " +"qui supporte le JavaScript, va fonctionner de la même manière que si les en-" +"têtes HTTP avaient été envoyés." #: ../Doc/library/http.cookies.rst:208 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" +"Renvoie une chaine de caractères représentant le *Morsel*, nettoyé de son " +"contexte HTTP ou JavaScript." #: ../Doc/library/http.cookies.rst:216 msgid "" @@ -281,24 +341,29 @@ msgid "" "*values*. Raise an error if any of the keys in the *values* dict is not a " "valid :rfc:`2109` attribute." msgstr "" +"Met à jour les valeurs du dictionnaire du *Morsel* avec les valeurs " +"provenant du dictionnaire *values*. Lève une erreur si une des clés n'est " +"pas un attribut :rfc:`2109` valide." #: ../Doc/library/http.cookies.rst:220 msgid "an error is raised for invalid keys." -msgstr "" +msgstr "une erreur est levée pour les clés invalides." #: ../Doc/library/http.cookies.rst:226 msgid "Return a shallow copy of the Morsel object." -msgstr "" +msgstr "Renvoie une copie superficielle de l'objet *Morsel*." #: ../Doc/library/http.cookies.rst:228 msgid "return a Morsel object instead of a dict." -msgstr "" +msgstr "renvoie un objet *Morsel* au lieu d'un ``dict``." #: ../Doc/library/http.cookies.rst:234 msgid "" "Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " "the same as :meth:`dict.setdefault`." msgstr "" +"Lève une erreur si la clé n'est pas un attribut :rfc:`2109` valide, sinon " +"fonctionne de la même manière que :meth:`dict.setdefault`." #: ../Doc/library/http.cookies.rst:241 msgid "Example" @@ -308,3 +373,4 @@ msgstr "Exemple" msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" +"L'exemple suivant montre comment utiliser le module :mod:`http.cookies`." diff --git a/library/inspect.po b/library/inspect.po index 636e60f41..8e8fb70a4 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -1108,7 +1108,7 @@ msgstr "" #: ../Doc/library/inspect.rst:839 msgid "Classes and functions" -msgstr "" +msgstr "Classes et fonctions" #: ../Doc/library/inspect.rst:843 msgid "" diff --git a/library/io.po b/library/io.po index 2a34fb0c7..6dc70de2a 100644 --- a/library/io.po +++ b/library/io.po @@ -27,7 +27,7 @@ msgstr "" #: ../Doc/library/io.rst:22 msgid "Overview" -msgstr "" +msgstr "Aperçu" #: ../Doc/library/io.rst:27 msgid "" diff --git a/library/logging.config.po b/library/logging.config.po index 3973ef85a..fd54d9308 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -848,16 +848,16 @@ msgstr "" #: ../Doc/library/logging.config.rst:808 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/library/logging.config.rst:808 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/library/logging.config.rst:810 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/library/logging.config.rst:811 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." diff --git a/library/logging.handlers.po b/library/logging.handlers.po index e8ebcd505..cd954b782 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -1454,16 +1454,16 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:1068 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Module :mod:`logging`" #: ../Doc/library/logging.handlers.rst:1068 msgid "API reference for the logging module." -msgstr "" +msgstr "Référence d'API pour le module de journalisation." #: ../Doc/library/logging.handlers.rst:1070 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/library/logging.handlers.rst:1071 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." diff --git a/library/logging.po b/library/logging.po index 3ec439ec0..d2a072044 100644 --- a/library/logging.po +++ b/library/logging.po @@ -73,22 +73,30 @@ msgstr "" #: ../Doc/library/logging.rst:40 msgid "Loggers expose the interface that application code directly uses." msgstr "" +"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " +"l'application utilise directement." #: ../Doc/library/logging.rst:41 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" +"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par " +"les *loggers*) vers les destinations voulues." #: ../Doc/library/logging.rst:43 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" +"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " +"entrées de journal doivent être sorties." #: ../Doc/library/logging.rst:45 msgid "Formatters specify the layout of log records in the final output." msgstr "" +"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " +"dans la sortie finale." #: ../Doc/library/logging.rst:51 msgid "Logger Objects" @@ -430,7 +438,7 @@ msgstr "" #: ../Doc/library/logging.rst:340 msgid "Logging Levels" -msgstr "" +msgstr "Niveaux de journalisation" #: ../Doc/library/logging.rst:342 msgid "" @@ -440,14 +448,19 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" +"Les valeurs numériques des niveaux de journalisation sont données dans le " +"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " +"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " +"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " +"écrase la valeur prédéfinie ; le nom prédéfini est perdu." #: ../Doc/library/logging.rst:349 msgid "Level" -msgstr "" +msgstr "Niveau" #: ../Doc/library/logging.rst:349 msgid "Numeric value" -msgstr "" +msgstr "Valeur numérique" #: ../Doc/library/logging.rst:351 msgid "``CRITICAL``" @@ -1798,19 +1811,19 @@ msgstr "" #: ../Doc/library/logging.rst:1263 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Module :mod:`logging.config`" #: ../Doc/library/logging.rst:1263 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuration pour le module de journalisation." #: ../Doc/library/logging.rst:1266 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Module :mod:`logging.handlers`" #: ../Doc/library/logging.rst:1266 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: ../Doc/library/logging.rst:1270 msgid ":pep:`282` - A Logging System" diff --git a/library/mailbox.po b/library/mailbox.po index 74f37934f..27174167d 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -20,10 +20,11 @@ msgstr "" #: ../Doc/library/mailbox.rst:2 msgid ":mod:`mailbox` --- Manipulate mailboxes in various formats" msgstr "" +":mod:`mailbox` — Manipuler les boîtes de courriels dans différents formats" #: ../Doc/library/mailbox.rst:10 msgid "**Source code:** :source:`Lib/mailbox.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/mailbox.py`" #: ../Doc/library/mailbox.rst:14 msgid "" @@ -34,22 +35,30 @@ msgid "" "message.Message` class with format-specific state and behavior. Supported " "mailbox formats are Maildir, mbox, MH, Babyl, and MMDF." msgstr "" +"Ce module définit deux classes, :class:`Mailbox` et :class:`Message`, pour " +"accéder et manipuler les boîtes de courriel sur le disque et les messages " +"qu'elles contiennent. :class:`Mailbox` offre une interface ressemblant aux " +"dictionnaires avec des clés et des messages. La classe :class:`Message` " +"étend le module :mod:`email.message` de la classe :class:`~email.message." +"Message` avec un état et un comportement spécifiques à son format. Les " +"formats de boîtes de courriel gérés sont *Maildir*, *mbox*, *MH*, *Babyl* et " +"*MMDF*." #: ../Doc/library/mailbox.rst:24 msgid "Module :mod:`email`" -msgstr "" +msgstr "Module :mod:`email`" #: ../Doc/library/mailbox.rst:25 msgid "Represent and manipulate messages." -msgstr "" +msgstr "Représente et manipule des messages." #: ../Doc/library/mailbox.rst:31 msgid ":class:`Mailbox` objects" -msgstr "" +msgstr "Objets :class:`Mailbox`" #: ../Doc/library/mailbox.rst:35 msgid "A mailbox, which may be inspected and modified." -msgstr "" +msgstr "Une boîte mail, qui peut être inspectée et modifiée." #: ../Doc/library/mailbox.rst:37 msgid "" @@ -57,6 +66,10 @@ msgid "" "instantiated. Instead, format-specific subclasses should inherit from :" "class:`Mailbox` and your code should instantiate a particular subclass." msgstr "" +"La classe :class:`Mailbox` définit une interface et n'est pas destinée à " +"être instanciée. Les sous-classes de format spécifique doivent plutôt " +"hériter de :class:`Mailbox` et votre code doit instancier une sous-classe " +"particulière." #: ../Doc/library/mailbox.rst:41 msgid "" @@ -67,6 +80,12 @@ msgid "" "corresponding message is modified, such as by replacing it with another " "message." msgstr "" +"L'interface :class:`Mailbox` est un compatible avec celle des dictionnaires, " +"avec de courtes clés correspondant aux messages. Les clés sont générées par " +"l'instance :class:`Mailbox` avec laquelle elles sont utilisées et n'ont de " +"sens que pour cette instance :class:`Mailbox`. Une clé continue d'identifier " +"un message même si le message correspondant est modifié ou remplacé par un " +"autre message." #: ../Doc/library/mailbox.rst:47 msgid "" @@ -74,6 +93,10 @@ msgid "" "method :meth:`add` and removed using a ``del`` statement or the set-like " "methods :meth:`remove` and :meth:`discard`." msgstr "" +"Les messages peuvent être ajoutés à une instance :class:`Mailbox` en " +"utilisant la méthode :meth:`add` (comme pour les ensembles), et supprimés en " +"utilisant soit l'instruction ``del`` soit les méthodes :meth:`remove` et :" +"meth:`discard` (comme pour les ensembles)." #: ../Doc/library/mailbox.rst:51 msgid "" @@ -85,6 +108,14 @@ msgid "" "copied. In neither case is a reference to the message representation kept by " "the :class:`Mailbox` instance." msgstr "" +"La sémantique de l'interface :class:`Mailbox` diffère de la sémantique des " +"dictionnaires sur plusieurs aspects. À chaque fois qu'un message est " +"demandé, une nouvelle représentation (généralement une instance :class:" +"`Message`) est générée en se basant sur l'état actuel de la boîte mail. De " +"la même manière, lorsqu'un message est ajouté à l'instance :class:`Mailbox`, " +"le contenu de la représentation du message donné est copié. En aucun cas une " +"référence vers la représentation du message n'est gardée par l'instance :" +"class:`Mailbox`." #: ../Doc/library/mailbox.rst:59 msgid "" @@ -96,6 +127,15 @@ msgid "" "silently skipped, though using a key from an iterator may result in a :exc:" "`KeyError` exception if the corresponding message is subsequently removed." msgstr "" +"L'itérateur par défaut de :class:`Mailbox` itère sur les représentations des " +"messages et pas sur les clés (comme le fait par défaut l'itérateur des " +"dictionnaires). De plus, les modifications sur une boîte mail durant " +"l'itération sont sûres et clairement définies. Les messages ajoutés à la " +"boîte mail après la création d'un itérateur ne sont pas vus par l'itérateur. " +"Les messages supprimés de la boîte mail avant que l'itérateur les traite " +"seront ignorés silencieusement. Toutefois, utiliser une clé depuis un " +"itérateur peut aboutir à une exception :exc:`KeyError` si le message " +"correspondant est supprimé par la suite." #: ../Doc/library/mailbox.rst:70 msgid "" @@ -108,15 +148,25 @@ msgid "" "Failing to lock the mailbox runs the risk of losing messages or corrupting " "the entire mailbox." msgstr "" +"Soyez très prudent lorsque vous éditez des boîtes mail qui peuvent être " +"modifiées par d'autres processus. Le format de boîte mail le plus sûr à " +"utiliser pour ces tâches est *Maildir*, essayez d'éviter les formats à " +"fichier unique tels que *mbox* afin d'empêcher les écritures concurrentes. " +"Si vous modifiez une boîte mail, vous *devez* la verrouiller en appelant les " +"méthodes :meth:`lock` et :meth:`unlock` *avant* de lire les messages dans le " +"fichier ou d'y appliquer des changements en y ajoutant ou supprimant des " +"messages. Ne pas verrouiller la boîte mail vous fait prendre le risque de " +"perdre des messages ou de corrompre la boîte mail entière." #: ../Doc/library/mailbox.rst:79 msgid ":class:`Mailbox` instances have the following methods:" -msgstr "" +msgstr "Les instances :class:`Mailbox` contiennent les méthodes suivantes :" #: ../Doc/library/mailbox.rst:84 msgid "" "Add *message* to the mailbox and return the key that has been assigned to it." msgstr "" +"Ajoute *message* à la boîte mail et renvoie la clé qui lui a été assigné." #: ../Doc/library/mailbox.rst:87 msgid "" @@ -128,14 +178,22 @@ msgid "" "format-specific information is used. Otherwise, reasonable defaults for " "format-specific information are used." msgstr "" +"Le paramètre *message* peut être une instance :class:`Message`, une " +"instance :class:`email.message.Message`, une chaîne de caractères, une " +"séquence d'octets ou un objet fichier-compatible (qui doit être ouvert en " +"mode binaire). Si *message* est une instance de la sous-classe :class:" +"`Message` au format correspondant (par exemple s'il s'agit d'une instance :" +"class:`mboxMessage` et d'une instance :class:`mbox`), les informations " +"spécifiques à son format sont utilisées. Sinon, des valeurs par défaut " +"raisonnables pour son format sont utilisées." #: ../Doc/library/mailbox.rst:96 msgid "Support for binary input was added." -msgstr "" +msgstr "Ajout de la gestion des messages binaires." #: ../Doc/library/mailbox.rst:104 msgid "Delete the message corresponding to *key* from the mailbox." -msgstr "" +msgstr "Supprime le message correspondant à *key* dans la boîte mail." #: ../Doc/library/mailbox.rst:106 msgid "" @@ -145,12 +203,20 @@ msgid "" "`discard` may be preferred if the underlying mailbox format supports " "concurrent modification by other processes." msgstr "" +"Si ce message n'existe pas, une exception :exc:`KeyError` est levée si la " +"méthode a été appelée en tant que :meth:`remove` ou :meth:`__delitem__` mais " +"aucune exception n'est levée si la méthode a été appelée en tant que :meth:" +"`discard`. Vous préférerez sûrement le comportement de :meth:`discard` si le " +"format de boîte mail sous-jacent accepte la modification concurrente par les " +"autres processus." #: ../Doc/library/mailbox.rst:115 msgid "" "Replace the message corresponding to *key* with *message*. Raise a :exc:" "`KeyError` exception if no message already corresponds to *key*." msgstr "" +"Remplace le message correspondant à *key* par *message*. Lève une exception :" +"exc:`KeyError` s'il n'y a pas déjà de message correspondant à *key*." #: ../Doc/library/mailbox.rst:118 msgid "" @@ -163,12 +229,24 @@ msgid "" "specific information of the message that currently corresponds to *key* is " "left unchanged." msgstr "" +"Comme pour :meth:`add`, le paramètre *message* peut être une instance :class:" +"`Message`, une instance :class:`email.message.Message`, une chaîne de " +"caractères, une chaîne d'octets ou un objet fichier-compatible (qui doit " +"être ouvert en mode binaire). Si *message* est une instance de la sous-" +"classe :class:`Message` au format correspondant (par exemple s'il s'agit " +"d'une instance :class:`mboxMessage` et d'une instance :class:`mbox`), les " +"informations spécifiques à son format sont utilisées. Sinon, les " +"informations spécifiques au format du message qui correspond à *key* ne sont " +"modifiées." #: ../Doc/library/mailbox.rst:132 msgid "" "Return an iterator over all keys if called as :meth:`iterkeys` or return a " "list of keys if called as :meth:`keys`." msgstr "" +"Renvoie un itérateur sur toutes les clés s'il est appelé en tant que :meth:" +"`iterkeys` ou renvoie une liste de clés s'il est appelé en tant que :meth:" +"`keys`." #: ../Doc/library/mailbox.rst:140 msgid "" @@ -179,6 +257,13 @@ msgid "" "message factory was specified when the :class:`Mailbox` instance was " "initialized." msgstr "" +"Renvoie un itérateur sur les représentations de tous les messages s'il est " +"appelé en tant que :meth:`itervalues` ou :meth:`__iter__` et renvoie une " +"liste de ces représentations s'il est appelé en tant que :meth:`values`. Les " +"messages sont représentés en tant qu'instances de la sous-classe :class:" +"`Message` au format correspondant à moins qu'une fabrique de messages " +"personnalisée soit spécifiée lorsque l'instance :class:`Mailbox` a été " +"initialisée." #: ../Doc/library/mailbox.rst:149 msgid "" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 328e985d9..70123ec01 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:2 msgid ":mod:`multiprocessing` --- Process-based parallelism" -msgstr "" +msgstr ":mod:`multiprocessing` — Parallélisme par processus" #: ../Doc/library/multiprocessing.rst:7 msgid "**Source code:** :source:`Lib/multiprocessing/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/multiprocessing/`" #: ../Doc/library/multiprocessing.rst:12 msgid "Introduction" @@ -39,6 +39,14 @@ msgid "" "programmer to fully leverage multiple processors on a given machine. It " "runs on both Unix and Windows." msgstr "" +":mod:`multiprocessing` est un paquet qui permet l'instanciation de processus " +"via la même API que le module :mod:`threading`. Le paquet :mod:" +"`multiprocessing` offre à la fois des possibilités de programmation " +"concurrente locale ou à distance, contournant les problèmes du :term:`Global " +"Interpreter Lock` en utilisant des processus plutôt que des fils " +"d'exécution. Ainsi, le module :mod:`multiprocessing` permet au développeur " +"de bénéficier entièrement des multiples processeurs sur une machine. Il " +"tourne à la fois sur les systèmes Unix et Windows." #: ../Doc/library/multiprocessing.rst:22 msgid "" @@ -52,14 +60,22 @@ msgid "" "module. This basic example of data parallelism using :class:" "`~multiprocessing.pool.Pool`, ::" msgstr "" +"Le module :mod:`multiprocessing` introduit aussi des API sans analogues dans " +"le module :mod:`threading`. Un exemple est l'objet :class:`~multiprocessing." +"pool.Pool` qui offre une manière pratique de paralléliser l'exécution d'une " +"fonction sur de multiples valeurs d'entrée, distribuant ces valeurs entre " +"les processus (parallélisme de données). L'exemple suivant présente la " +"manière classique de définir une telle fonction dans un module afin que les " +"processus fils puissent importer ce module avec succès. L'exemple basique de " +"parallélisme de données utilise :class:`~multiprocessing.pool.Pool`, ::" #: ../Doc/library/multiprocessing.rst:40 msgid "will print to standard output ::" -msgstr "" +msgstr "affiche sur la sortie standard : ::" #: ../Doc/library/multiprocessing.rst:46 msgid "The :class:`Process` class" -msgstr "" +msgstr "La classe :class:`Process`" #: ../Doc/library/multiprocessing.rst:48 msgid "" @@ -68,27 +84,37 @@ msgid "" "`Process` follows the API of :class:`threading.Thread`. A trivial example " "of a multiprocess program is ::" msgstr "" +"Dans le module :mod:`multiprocessing`, les processus sont instanciés en " +"créant un objet :class:`Process` et en appelant sa méthode :meth:`~Process." +"start`. La classe :class:`Process` suit la même API que :class:`threading." +"Thread`. Un exemple trivial d'un programme multi-processus est : ::" #: ../Doc/library/multiprocessing.rst:63 msgid "" "To show the individual process IDs involved, here is an expanded example::" msgstr "" +"Pour afficher les IDs des processus impliqués, voici un exemple plus " +"étoffé : ::" #: ../Doc/library/multiprocessing.rst:84 msgid "" "For an explanation of why the ``if __name__ == '__main__'`` part is " "necessary, see :ref:`multiprocessing-programming`." msgstr "" +"La nécessité de la ligne ``if __name__ == '__main__'`` est expliquée par :" +"ref:`multiprocessing-programming`." #: ../Doc/library/multiprocessing.rst:90 msgid "Contexts and start methods" -msgstr "" +msgstr "Contextes et méthodes de démarrage" #: ../Doc/library/multiprocessing.rst:94 msgid "" "Depending on the platform, :mod:`multiprocessing` supports three ways to " "start a process. These *start methods* are" msgstr "" +"Suivant la plateforme, :mod:`multiprocessing` gère trois manières de " +"démarrer un processus. Ces *méthodes de démarrage* sont" #: ../Doc/library/multiprocessing.rst:105 msgid "*spawn*" @@ -103,10 +129,16 @@ msgid "" "Starting a process using this method is rather slow compared to using *fork* " "or *forkserver*." msgstr "" +"Le processus parent démarre un processus neuf avec un interpréteur Python. " +"Le processus fils hérite uniquement des ressources nécessaires pour exécuter " +"la méthode :meth:`~Process.run` de l'objet associé au processus. En " +"particulier, les descripteurs de fichiers superflus et gérés par le " +"processus parent ne sont pas hérités. Démarrer un processus en utilisant " +"cette méthode est plutôt lent par rapport à *fork* ou *forkserver*." #: ../Doc/library/multiprocessing.rst:105 msgid "Available on Unix and Windows. The default on Windows." -msgstr "" +msgstr "Disponible sur Unix et Windows. Par défaut sur Windows." #: ../Doc/library/multiprocessing.rst:114 msgid "*fork*" @@ -119,14 +151,19 @@ msgid "" "process. All resources of the parent are inherited by the child process. " "Note that safely forking a multithreaded process is problematic." msgstr "" +"Le processus parent utilise :func:`os.fork` pour *forker* l'interpréteur " +"Python. Le processus fils, quand il démarre, est effectivement identique au " +"processus parent. Toutes les ressources du parent sont héritées par le fils. " +"Notez qu'il est problématique de *forker* sans danger un processus *multi-" +"threadé*." #: ../Doc/library/multiprocessing.rst:114 msgid "Available on Unix only. The default on Unix." -msgstr "" +msgstr "Disponible uniquement sous Unix. Par défaut sous Unix." #: ../Doc/library/multiprocessing.rst:125 msgid "*forkserver*" -msgstr "" +msgstr "*forkserver*" #: ../Doc/library/multiprocessing.rst:117 msgid "" @@ -136,12 +173,20 @@ msgid "" "process. The fork server process is single threaded so it is safe for it to " "use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" +"Quand le programme démarre et choisit la méthode de démarrage *forkserver*, " +"un processus serveur est lancé. Dès lors, chaque fois qu'un nouveau " +"processus est nécessaire, le processus parent se connecte au serveur et lui " +"demande de *forker* un nouveau processus. Le processus serveur de *fork* " +"n'utilisant qu'un seul fil d'exécution, il peut utiliser :func:`os.fork` " +"sans danger. Les ressources superflues ne sont pas héritées." #: ../Doc/library/multiprocessing.rst:124 msgid "" "Available on Unix platforms which support passing file descriptors over Unix " "pipes." msgstr "" +"Disponible sur les plateformes Unix qui acceptent le passage de descripteurs " +"de fichiers à travers des tubes (*pipes*) Unix." #: ../Doc/library/multiprocessing.rst:127 msgid "" @@ -149,6 +194,9 @@ msgid "" "platforms. Child processes no longer inherit all of the parents inheritable " "handles on Windows." msgstr "" +"*spawn* ajouté à toutes les plateformes Unix, et *forkserver* ajouté à " +"certaines plateformes Unix. Les processus fils n'héritent plus de tous les " +"descripteurs héritables du parent sous Windows." #: ../Doc/library/multiprocessing.rst:133 msgid "" @@ -161,17 +209,31 @@ msgid "" "system allows only a limited number, and they will not be automatically " "unlinked until the next reboot.)" msgstr "" +"Sous Unix, utiliser les méthodes de démarrage *spawn* ou *forkserver* " +"démarre aussi un processus *semaphore tracker* qui traque les sémaphores " +"nommés non libérés créés par les processus du programme. Quand tous les " +"processus sont terminés, le traqueur de sémaphores libère les sémaphores " +"restants. Généralement il ne devrait pas y en avoir, mais si un processus a " +"été tué par un signal, certains sémaphores ont pu « fuiter ». (Libérer les " +"sémaphores nommés est une affaire sérieuse puisque le système n'en autorise " +"qu'un certain nombre, et qu'ils ne seront pas automatiquement libérés avant " +"le prochain redémarrage.)" #: ../Doc/library/multiprocessing.rst:142 msgid "" "To select a start method you use the :func:`set_start_method` in the ``if " "__name__ == '__main__'`` clause of the main module. For example::" msgstr "" +"Pour sélectionner une méthode de démarrage, utilisez la fonction :func:" +"`set_start_method` dans la clause ``if __name__ == '__main__'`` du module " +"principal. Par exemple : ::" #: ../Doc/library/multiprocessing.rst:159 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" +":func:`set_start_method` ne doit pas être utilisée plus d'une fois dans le " +"programme." #: ../Doc/library/multiprocessing.rst:162 msgid "" @@ -179,6 +241,10 @@ msgid "" "Context objects have the same API as the multiprocessing module, and allow " "one to use multiple start methods in the same program. ::" msgstr "" +"Alternativement, vous pouvez utiliser :func:`get_context` pour obtenir un " +"contexte. Les contextes ont la même API que le module *multiprocessing*, et " +"permettent l'utilisation de plusieurs méthodes de démarrage dans un même " +"programme. ::" #: ../Doc/library/multiprocessing.rst:180 msgid "" @@ -187,22 +253,31 @@ msgid "" "*fork* context cannot be passed to processes started using the *spawn* or " "*forkserver* start methods." msgstr "" +"Notez que les objets relatifs à un contexte ne sont pas forcément " +"compatibles avec les processus d'un contexte différent. En particulier, les " +"verrous créés avec le contexte *fork* ne peuvent pas être passés aux " +"processus lancés avec les méthodes *spawn* ou *forkserver*." #: ../Doc/library/multiprocessing.rst:185 msgid "" "A library which wants to use a particular start method should probably use :" "func:`get_context` to avoid interfering with the choice of the library user." msgstr "" +"Une bibliothèque qui veut utiliser une méthode de démarrage particulière " +"devrait probablement faire appel à :func:`get_context` pour éviter " +"d'interférer avec le choix de l'utilisateur de la bibliothèque." #: ../Doc/library/multiprocessing.rst:191 msgid "Exchanging objects between processes" -msgstr "" +msgstr "Échange d'objets entre les processus" #: ../Doc/library/multiprocessing.rst:193 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" msgstr "" +":mod:`multiprocessing` gère deux types de canaux de communication entre les " +"processus :" #: ../Doc/library/multiprocessing.rst:196 msgid "**Queues**" @@ -213,10 +288,14 @@ msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" msgstr "" +"La classe :class:`Queue` est un clone assez proche de :class:`queue.Queue`. " +"Par exemple : ::" #: ../Doc/library/multiprocessing.rst:213 msgid "Queues are thread and process safe." msgstr "" +"Les queues peuvent être utilisées par plusieurs fils d'exécution ou " +"processus." #: ../Doc/library/multiprocessing.rst:215 msgid "**Pipes**" @@ -227,6 +306,8 @@ msgid "" "The :func:`Pipe` function returns a pair of connection objects connected by " "a pipe which by default is duplex (two-way). For example::" msgstr "" +"La fonction :func:`Pipe` renvoie une paire d'objets de connexion connectés à " +"un tube qui est par défaut à double-sens. Par exemple : ::" #: ../Doc/library/multiprocessing.rst:233 msgid "" @@ -237,10 +318,17 @@ msgid "" "the *same* end of the pipe at the same time. Of course there is no risk of " "corruption from processes using different ends of the pipe at the same time." msgstr "" +"Les deux objets de connexion renvoyés par :func:`Pipe` représentent les deux " +"bouts d'un tube. Chaque objet de connexion possède (entre autres) des " +"méthodes :meth:`~Connection.send` et :meth:`~Connection.recv`. Notez que les " +"données d'un tube peuvent être corrompues si deux processus (ou fils " +"d'exécution) essaient de lire ou d'écrire sur le même bout du tube en même " +"temps. Évidemment il n'y a pas de risque de corruption si les processus " +"utilisent deux bouts différents en même temps." #: ../Doc/library/multiprocessing.rst:243 msgid "Synchronization between processes" -msgstr "" +msgstr "Synchronisation entre processus" #: ../Doc/library/multiprocessing.rst:245 msgid "" @@ -248,16 +336,22 @@ msgid "" "primitives from :mod:`threading`. For instance one can use a lock to ensure " "that only one process prints to standard output at a time::" msgstr "" +":mod:`multiprocessing` contient des équivalents à toutes les primitives de " +"synchronisation de :mod:`threading`. Par exemple il est possible d'utiliser " +"un verrou pour s'assurer qu'un seul processus à la fois écrit sur la sortie " +"standard : ::" #: ../Doc/library/multiprocessing.rst:264 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." msgstr "" +"Sans le verrou, les sorties des différents processus risquent d'être " +"mélangées." #: ../Doc/library/multiprocessing.rst:269 msgid "Sharing state between processes" -msgstr "" +msgstr "Partager un état entre les processus" #: ../Doc/library/multiprocessing.rst:271 msgid "" @@ -265,27 +359,34 @@ msgid "" "avoid using shared state as far as possible. This is particularly true when " "using multiple processes." msgstr "" +"Comme mentionné plus haut, il est généralement préférable d'éviter autant " +"que possible d'utiliser des états partagés en programmation concurrente. " +"C'est particulièrement vrai quand plusieurs processus sont utilisés." #: ../Doc/library/multiprocessing.rst:275 msgid "" "However, if you really do need to use some shared data then :mod:" "`multiprocessing` provides a couple of ways of doing so." msgstr "" +"Cependant, si vous devez réellement partager des données, :mod:" +"`multiprocessing` permet de le faire de deux manières." #: ../Doc/library/multiprocessing.rst:278 msgid "**Shared memory**" -msgstr "" +msgstr "**Mémoire partagée**" #: ../Doc/library/multiprocessing.rst:280 msgid "" "Data can be stored in a shared memory map using :class:`Value` or :class:" "`Array`. For example, the following code ::" msgstr "" +"Les données peuvent être stockées dans une mémoire partagée en utilisant " +"des :class:`Value` ou des :class:`Array`. Par exemple, le code suivant : ::" #: ../Doc/library/multiprocessing.rst:301 #: ../Doc/library/multiprocessing.rst:347 msgid "will print ::" -msgstr "" +msgstr "affiche : ::" #: ../Doc/library/multiprocessing.rst:306 msgid "" @@ -294,6 +395,11 @@ msgid "" "double precision float and ``'i'`` indicates a signed integer. These shared " "objects will be process and thread-safe." msgstr "" +"Les arguments ``'d'`` et ``'i'`` utilisés à la création des ``num`` et " +"`arr`` sont des codes de types tels qu'utilisés par le module :mod:`array` : " +"``'d'`` indique un flottant double-précision et ``'i'`` indique un entier " +"signé. Ces objets partagés seront sûr d'utilisation entre processus et fils " +"d'exécution." #: ../Doc/library/multiprocessing.rst:311 msgid "" @@ -301,10 +407,13 @@ msgid "" "`multiprocessing.sharedctypes` module which supports the creation of " "arbitrary ctypes objects allocated from shared memory." msgstr "" +"Pour plus de flexibilité dans l'utilisation de mémoire partagée, vous pouvez " +"utiliser le module :mod:`multiprocessing.sharedctypes` qui permet la " +"création d'objets arbitraires *ctypes* alloués depuis la mémoire partagée." #: ../Doc/library/multiprocessing.rst:315 msgid "**Server process**" -msgstr "" +msgstr "**Processus serveur**" #: ../Doc/library/multiprocessing.rst:317 msgid "" @@ -312,6 +421,9 @@ msgid "" "holds Python objects and allows other processes to manipulate them using " "proxies." msgstr "" +"Un objet gestionnaire renvoyé par :func:`Manager` contrôle un processus " +"serveur qui détient les objets Python et autorise les autres processus à les " +"manipuler à l'aide de mandataires." #: ../Doc/library/multiprocessing.rst:321 msgid "" @@ -321,6 +433,11 @@ msgid "" "`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` and :class:" "`Array`. For example, ::" msgstr "" +"Un gestionnaire renvoyé par :func:`Manager` supportera les types :class:" +"`list`, :class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:" +"`RLock`, :class:`Semaphore`, :class:`BoundedSemaphore`, :class:`Condition`, :" +"class:`Event`, :class:`Barrier`, :class:`Queue`, :class:`Value` et :class:" +"`Array`. Par exemple, ::" #: ../Doc/library/multiprocessing.rst:352 msgid "" @@ -329,10 +446,15 @@ msgid "" "manager can be shared by processes on different computers over a network. " "They are, however, slower than using shared memory." msgstr "" +"Les processus serveurs de gestionnaires sont plus flexibles que les mémoires " +"partagées parce qu'ils peuvent gérer des types d'objets arbitraires. Aussi, " +"un gestionnaire unique peut être partagé par les processus sur différentes " +"machines à travers le réseau. Cependant, ils sont plus lents que les " +"mémoires partagées." #: ../Doc/library/multiprocessing.rst:359 msgid "Using a pool of workers" -msgstr "" +msgstr "Utiliser un réservoir de *workers*" #: ../Doc/library/multiprocessing.rst:361 msgid "" @@ -340,6 +462,9 @@ msgid "" "processes. It has methods which allows tasks to be offloaded to the worker " "processes in a few different ways." msgstr "" +"La classe :class:`~multiprocessing.pool.Pool` représente une *pool* de " +"processus de travail. Elle possède des méthodes qui permettent aux tâches " +"d'être déchargées vers les processus de travail de différentes manières." #: ../Doc/library/multiprocessing.rst:365 msgid "For example::" @@ -350,6 +475,8 @@ msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." msgstr "" +"Notez que les méthodes d'une *pool* ne devraient être utilisées que par le " +"processus qui l'a créée." #: ../Doc/library/multiprocessing.rst:414 msgid "" @@ -359,6 +486,11 @@ msgid "" "examples, such as the :class:`multiprocessing.pool.Pool` examples will not " "work in the interactive interpreter. For example::" msgstr "" +"Fonctionnellement ce paquet exige que que le module ``__main__`` soit " +"importable par les fils. Cela est expliqué sur la page :ref:`multiprocessing-" +"programming`, il est cependant utile de le rappeler ici. Cela signifie que " +"certains exemples, comme les exemples utilisant :class:`multiprocessing.pool." +"Pool`, ne fonctionnent pas dans l'interpréteur interactif. Par exemple : ::" #: ../Doc/library/multiprocessing.rst:436 msgid "" @@ -366,20 +498,25 @@ msgid "" "in a semi-random fashion, and then you may have to stop the master process " "somehow.)" msgstr "" +"(Si vous essayez ce code, il affichera trois traces d'appels complètes " +"entrelacées de manière semi-aléatoire, et vous aurez alors à stopper le " +"processus maître.)" #: ../Doc/library/multiprocessing.rst:442 msgid "Reference" -msgstr "" +msgstr "Référence" #: ../Doc/library/multiprocessing.rst:444 msgid "" "The :mod:`multiprocessing` package mostly replicates the API of the :mod:" "`threading` module." msgstr "" +"Le paquet :mod:`multiprocessing` reproduit en grande partie l'API du module :" +"mod:`threading`." #: ../Doc/library/multiprocessing.rst:449 msgid ":class:`Process` and exceptions" -msgstr "" +msgstr ":class:`Process` et exceptions" #: ../Doc/library/multiprocessing.rst:454 msgid "" @@ -387,6 +524,9 @@ msgid "" "class:`Process` class has equivalents of all the methods of :class:" "`threading.Thread`." msgstr "" +"Les objets *process* représentent une activité exécutée dans un processus " +"séparé. La classe :class:`Process` a des équivalents à toutes les méthodes " +"de :class:`threading.Thread`." #: ../Doc/library/multiprocessing.rst:458 msgid "" @@ -401,10 +541,20 @@ msgid "" "``False``. If ``None`` (the default), this flag will be inherited from the " "creating process." msgstr "" +"Le constructeur doit toujours être appelé avec des arguments nommés. *group* " +"devrait toujours être ``None`` ; il existe uniquement pour la compatibilité " +"avec :class:`threading.Thread`. *target* est l'objet appelable qui est " +"invoqué par la méthode :meth:`run(). Il vaut ``None`` par défaut, signifiant " +"que rien n'est appelé. *name* est le nom du processus (voir :attr:`name` " +"pour plus de détails). *args* est le *tuple* d'arguments pour l'invocation " +"de la cible. *kwargs* est le dictionnaire des arguments nommés pour " +"l'invocation de la cible. S'il est fourni, l'argument nommé *daemon* met " +"l'option :attr:`daemon` du processus à ``True`` ou ``False``. S'il est " +"``None`` (par défaut), l'option est héritée par le processus créateur." #: ../Doc/library/multiprocessing.rst:469 msgid "By default, no arguments are passed to *target*." -msgstr "" +msgstr "Par défaut, aucun argument n'est passé à *target*." #: ../Doc/library/multiprocessing.rst:471 msgid "" @@ -412,14 +562,17 @@ msgid "" "base class constructor (:meth:`Process.__init__`) before doing anything else " "to the process." msgstr "" +"Si une sous-classe redéfinit le constructeur, elle doit s'assurer d'invoquer " +"le constructeur de la classe de base (:meth:`Process.__init__`) avant de " +"faire autre chose du processus." #: ../Doc/library/multiprocessing.rst:475 msgid "Added the *daemon* argument." -msgstr "" +msgstr "Ajout de l'argument *daemon*." #: ../Doc/library/multiprocessing.rst:480 msgid "Method representing the process's activity." -msgstr "" +msgstr "Méthode représentant l'activité du processus." #: ../Doc/library/multiprocessing.rst:482 msgid "" @@ -428,16 +581,23 @@ msgid "" "argument, if any, with sequential and keyword arguments taken from the " "*args* and *kwargs* arguments, respectively." msgstr "" +"Vous pouvez redéfinir cette méthode dans une sous-classe. La méthode " +"standard :meth:`run` invoque l'objet appelable passé au constructeur comme " +"argument *target*, si fourni, avec les arguments séquentiels et nommés " +"respectivement pris depuis les paramètres *args* et *kwargs*." #: ../Doc/library/multiprocessing.rst:489 msgid "Start the process's activity." -msgstr "" +msgstr "Démarre l'activité du processus." #: ../Doc/library/multiprocessing.rst:491 msgid "" "This must be called at most once per process object. It arranges for the " "object's :meth:`run` method to be invoked in a separate process." msgstr "" +"Elle doit être appelée au plus une fois par objet processus. Elle s'arrange " +"pour que la méthode :meth:`run` de l'objet soit invoquée dans un processus " +"séparé." #: ../Doc/library/multiprocessing.rst:496 msgid "" @@ -448,22 +608,34 @@ msgid "" "times out. Check the process's :attr:`exitcode` to determine if it " "terminated." msgstr "" +"Si l'argument optionnel *timeout* est ``None`` (par défaut), la méthode " +"bloque jusqu'à ce que le processus dont la méthode :meth:`join` a été " +"appelée se termine. Si *timeout* est un nombre positif, elle bloque au " +"maximum pendant *timeout* secondes. Notez que la méthode renvoie ``None`` si " +"le processus se termine ou si le temps d'exécution expire. Vérifiez " +"l'attribut :attr:`exitcode` du processus pour déterminer s'il s'est terminé." #: ../Doc/library/multiprocessing.rst:503 msgid "A process can be joined many times." -msgstr "" +msgstr "*join* peut être appelée plusieurs fois sur un même processus." #: ../Doc/library/multiprocessing.rst:505 msgid "" "A process cannot join itself because this would cause a deadlock. It is an " "error to attempt to join a process before it has been started." msgstr "" +"Un processus ne peut pas s'attendre lui-même car cela causerait un " +"interblocage. C'est une erreur d'essayer d'attendre un processus avant qu'il " +"ne soit démarré." #: ../Doc/library/multiprocessing.rst:510 msgid "" "The process's name. The name is a string used for identification purposes " "only. It has no semantics. Multiple processes may be given the same name." msgstr "" +"Le nom du processus. Le nom est une chaîne de caractères utilisée uniquement " +"pour l'identification du processus. Il n'a pas de sémantique. Plusieurs " +"processus peuvent avoir le même nom." #: ../Doc/library/multiprocessing.rst:514 msgid "" @@ -472,32 +644,42 @@ msgid "" "`2`:...:N\\ :sub:`k`' is constructed, where each N\\ :sub:`k` is the N-th " "child of its parent." msgstr "" +"Le nom initial est déterminé par le constructeur. Si aucun nom explicite " +"n'est fourni au constructeur, un nom de la forme « Process-N\\ :sub:`1`:N\\ :" +"sub:`2`:...:N\\ :sub:`k` » est construit, où chaque N\\ :sub:`k` est le N-" +"ième enfant de son parent." #: ../Doc/library/multiprocessing.rst:521 msgid "Return whether the process is alive." -msgstr "" +msgstr "Renvoie vrai si le processus est en vie, faux sinon." #: ../Doc/library/multiprocessing.rst:523 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." msgstr "" +"Grossièrement, un objet processus est en vie depuis le moment où la méthode :" +"meth:`start` finit de s'exécuter jusqu'à ce que le processus fils se termine." #: ../Doc/library/multiprocessing.rst:528 msgid "" "The process's daemon flag, a Boolean value. This must be set before :meth:" "`start` is called." msgstr "" +"L'option *daemon* du processus, une valeur booléenne. L'option doit être " +"réglée avant que la méthode :meth:`start` ne soit appelée." #: ../Doc/library/multiprocessing.rst:531 msgid "The initial value is inherited from the creating process." -msgstr "" +msgstr "La valeur initiale est héritée par le processus créateur." #: ../Doc/library/multiprocessing.rst:533 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." msgstr "" +"Quand un processus se ferme, il tente de terminer tous ses processus enfants " +"*daemon*." #: ../Doc/library/multiprocessing.rst:536 msgid "" @@ -507,17 +689,26 @@ msgid "" "Unix daemons or services, they are normal processes that will be terminated " "(and not joined) if non-daemonic processes have exited." msgstr "" +"Notez qu'un processus *daemon* n'est pas autorisé à créer des processus " +"fils. Sinon un processus *daemon* laisserait ses enfants orphelins lorsqu'il " +"se termine par la fermeture de son parent. De plus, ce **ne sont pas** des " +"*daemons* ou services Unix, ce sont des processus normaux qui seront " +"terminés (et non attendus) si un processus non *daemon* se ferme." #: ../Doc/library/multiprocessing.rst:542 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" msgstr "" +"En plus de l'API :class:`threading.Thread`, les objets :class:`Process` " +"supportent aussi les attributs et méthodes suivants :" #: ../Doc/library/multiprocessing.rst:547 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" +"Renvoie l'ID du processus. Avant que le processus ne soit lancé, la valeur " +"est ``None``." #: ../Doc/library/multiprocessing.rst:552 msgid "" @@ -525,16 +716,21 @@ msgid "" "terminated. A negative value *-N* indicates that the child was terminated " "by signal *N*." msgstr "" +"Le code de fermeture de l'enfant. La valeur est ``None`` si le processus ne " +"s'est pas encore terminé. Une valeur négative *-N* indique que le fils a été " +"terminé par un signal *N*." #: ../Doc/library/multiprocessing.rst:558 msgid "The process's authentication key (a byte string)." -msgstr "" +msgstr "La clé d'authentification du processus (une chaîne d'octets)." #: ../Doc/library/multiprocessing.rst:560 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." msgstr "" +"Quand :mod:`multiprocessing` est initialisé, une chaîne aléatoire est " +"assignée au processus principal, en utilisant :func:`os.urandom`." #: ../Doc/library/multiprocessing.rst:563 msgid "" @@ -542,16 +738,21 @@ msgid "" "authentication key of its parent process, although this may be changed by " "setting :attr:`authkey` to another byte string." msgstr "" +"Quand un objet :class:`Process` est créé, il hérité de la clé " +"d'authentification de son parent, bien que cela puisse être changé à l'aide " +"du paramètre :attr:`authkey` pour une autre chaîne d'octets." #: ../Doc/library/multiprocessing.rst:567 msgid "See :ref:`multiprocessing-auth-keys`." -msgstr "" +msgstr "Voir :ref:`multiprocessing-auth-keys`." #: ../Doc/library/multiprocessing.rst:571 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." msgstr "" +"Un identifiant numérique de l'objet système qui devient « prêt » quand le " +"processus se termine." #: ../Doc/library/multiprocessing.rst:574 msgid "" @@ -559,6 +760,9 @@ msgid "" "func:`multiprocessing.connection.wait`. Otherwise calling :meth:`join()` is " "simpler." msgstr "" +"Vous pouvez utiliser cette valeur si vous voulez attendre plusieurs " +"événements à la fois en utilisant :func:`multiprocessing.connection.wait`. " +"Autrement appeler :meth:`join()` est plus simple." #: ../Doc/library/multiprocessing.rst:578 msgid "" @@ -566,6 +770,10 @@ msgid "" "``WaitForMultipleObjects`` family of API calls. On Unix, this is a file " "descriptor usable with primitives from the :mod:`select` module." msgstr "" +"Sous Windows, c'est un mécanisme de l'OS utilisable avec les familles " +"d'appels API ``WaitForSingleObject`` et ``WaitForMultipleObjects``. Sous " +"Unix, c'est un descripteur de fichier utilisable avec les primitives sur " +"module :mod:`select`." #: ../Doc/library/multiprocessing.rst:586 msgid "" @@ -573,12 +781,18 @@ msgid "" "on Windows :c:func:`TerminateProcess` is used. Note that exit handlers and " "finally clauses, etc., will not be executed." msgstr "" +"Termine le processus. Sous Unix cela est réalisé à l'aide d'un signal " +"``SIGTERM``, sous Windows :c:func:`TerminateProcess` est utilisé. Notez que " +"les gestionnaires de sortie, les clauses `finally` etc. ne sont pas " +"exécutées." #: ../Doc/library/multiprocessing.rst:590 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." msgstr "" +"Notez que les descendants du processus ne *seront pas* terminés -- ils " +"deviendront simplement orphelins." #: ../Doc/library/multiprocessing.rst:595 msgid "" @@ -588,6 +802,11 @@ msgid "" "semaphore etc. then terminating it is liable to cause other processes to " "deadlock." msgstr "" +"Si cette méthode est utilisée quand le processus associé utilise un tube ou " +"une queue, alors le tube ou la queue sont susceptibles d'être corrompus et " +"peuvent devenir inutilisables par les autres processus. De façon similaire, " +"si le processus a acquis un verrou, un sémaphore ou autre, alors le terminer " +"est susceptible de provoquer des blocages dans les autres processus." #: ../Doc/library/multiprocessing.rst:601 msgid "" @@ -595,38 +814,46 @@ msgid "" "`terminate` and :attr:`exitcode` methods should only be called by the " "process that created the process object." msgstr "" +"Notez que les méthodes :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" +"`terminate` et :attr:`exitcode` ne devraient être appelées que par le " +"processus ayant créé l'objet *process*." #: ../Doc/library/multiprocessing.rst:605 msgid "Example usage of some of the methods of :class:`Process`:" -msgstr "" +msgstr "Exemple d'utilisation de quelques méthodes de :class:`Process` :" #: ../Doc/library/multiprocessing.rst:625 msgid "The base class of all :mod:`multiprocessing` exceptions." -msgstr "" +msgstr "La classe de base de toutes les exceptions de :mod:`multiprocessing`." #: ../Doc/library/multiprocessing.rst:629 msgid "" "Exception raised by :meth:`Connection.recv_bytes_into()` when the supplied " "buffer object is too small for the message read." msgstr "" +"Exception levée par :meth:`Connection.recv_bytes_into()` quand l'objet " +"tampon fourni est trop petit pour le message à lire." #: ../Doc/library/multiprocessing.rst:632 msgid "" "If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " "give the message as a byte string." msgstr "" +"Si ``e`` est une instance de :exc:`BufferTooShort` alors ``e.args[0]`` " +"donnera un message sous forme d'une chaîne d'octets." #: ../Doc/library/multiprocessing.rst:637 msgid "Raised when there is an authentication error." -msgstr "" +msgstr "Levée quand il y a une erreur d'authentification." #: ../Doc/library/multiprocessing.rst:641 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" +"Levée par les méthodes avec temps d'exécution limité, quand ce temps expire." #: ../Doc/library/multiprocessing.rst:644 msgid "Pipes and Queues" -msgstr "" +msgstr "Tubes (*pipes*) et Queues" #: ../Doc/library/multiprocessing.rst:646 msgid "" @@ -634,12 +861,18 @@ msgid "" "communication between processes and avoids having to use any synchronization " "primitives like locks." msgstr "" +"Quand de multiples processus sont utilisés, de l'échange de messages est " +"souvent mis en place pour la communication entre processus et éviter d'avoir " +"à utiliser des primitives de synchronisation telles que des verrous." #: ../Doc/library/multiprocessing.rst:650 msgid "" "For passing messages one can use :func:`Pipe` (for a connection between two " "processes) or a queue (which allows multiple producers and consumers)." msgstr "" +"Pour échanger des messages vous pouvez utiliser un :func:`Pipe` (pour une " +"connexion entre deux processus) ou une queue (qui autorise de multiples " +"producteurs et consommateurs)." #: ../Doc/library/multiprocessing.rst:653 msgid "" @@ -650,6 +883,12 @@ msgid "" "meth:`~queue.Queue.join` methods introduced into Python 2.5's :class:`queue." "Queue` class." msgstr "" +"Les types :class:`Queue`, :class:`SimpleQueue` et :class:`JoinableQueue` " +"sont des queues :abbr:`FIFO (first-in, first-out)` multi-producteurs et " +"multi-consommateurs modelées sur la classe :class:`queue.Queue` de la " +"bibliothèque standard. Elles diffèrent par l'absence dans :class:`Queue` des " +"méthodes :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join` " +"introduites dans la classe :class:`queue.Queue` par Python 2.5." #: ../Doc/library/multiprocessing.rst:660 msgid "" @@ -658,12 +897,18 @@ msgid "" "semaphore used to count the number of unfinished tasks may eventually " "overflow, raising an exception." msgstr "" +"Si vous utilisez :class:`JoinableQueue` alors vous **devez** appeler :meth:" +"`JoinableQueue.task_done` pour chaque tâche retirée de la queue, sans quoi " +"le sémaphore utilisé pour compter le nombre de tâches non accomplies pourra " +"éventuellement déborder, levant une exception." #: ../Doc/library/multiprocessing.rst:665 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." msgstr "" +"Notez que vous pouvez aussi créer une queue partagée en utilisant un objet " +"gestionnaire -- voir :ref:`multiprocessing-managers`." #: ../Doc/library/multiprocessing.rst:670 msgid "" @@ -671,6 +916,10 @@ msgid "" "Full` exceptions to signal a timeout. They are not available in the :mod:" "`multiprocessing` namespace so you need to import them from :mod:`queue`." msgstr "" +":mod:`multiprocessing` utilise les exceptions habituelles :exc:`queue.Empty` " +"et :exc:`queue.Full` pour signaler un dépassement du temps maximal autorisé. " +"Elles ne sont pas disponibles dans l'espace de nommage :mod:" +"`multiprocessing` donc vous devez les importer depuis le module :mod:`queue`." #: ../Doc/library/multiprocessing.rst:677 msgid "" @@ -680,6 +929,12 @@ msgid "" "practical difficulties -- if they really bother you then you can instead use " "a queue created with a :ref:`manager `." msgstr "" +"Quand un objet est placé dans une queue, l'objet est sérialisé par *pickle* " +"et un fil d'exécution en arrière-plan transmettra ensuite les données " +"sérialisées sur un tube sous-jacent. Cela a certaines conséquences qui " +"peuvent être un peu surprenantes, mais ne devrait causer aucune difficultés " +"pratiques -- si elles vous embêtent vraiment, alors vous pouvez à la place " +"utiliser une queue créée avec un :ref:`manager `." #: ../Doc/library/multiprocessing.rst:684 msgid "" @@ -687,6 +942,10 @@ msgid "" "delay before the queue's :meth:`~Queue.empty` method returns :const:`False` " "and :meth:`~Queue.get_nowait` can return without raising :exc:`queue.Empty`." msgstr "" +"Après avoir placé un objet dans une queue vide il peut y avoir un délai " +"infinitésimal avant que la méthode :meth:`~Queue.empty` de la queue renvoie :" +"const:`False` et que :meth:`~Queue.get_nowait` renvoie une valeur sans lever " +"de :exc:`queue.Empty`." #: ../Doc/library/multiprocessing.rst:689 msgid "" @@ -695,6 +954,10 @@ msgid "" "the same process will always be in the expected order with respect to each " "other." msgstr "" +"Si plusieurs processus placent des objets dans la queue, il est possible " +"pour les objets d'être reçus de l'autre côté dans le désordre. Cependant, " +"les objets placés par un même processus seront toujours récupérés dans " +"l'ordre attendu." #: ../Doc/library/multiprocessing.rst:696 msgid "" @@ -703,6 +966,11 @@ msgid "" "likely to become corrupted. This may cause any other process to get an " "exception when it tries to use the queue later on." msgstr "" +"Si un processus est tué à l'aide de :meth:`Process.terminate` ou :func:`os." +"kill` pendant qu'il tente d'utiliser une :class:`Queue`, alors les données " +"de la queue peuvent être corrompues. Cela peut par la suite causer des " +"levées d'exceptions dans les autres processus quand ils tenteront d'utiliser " +"la queue." #: ../Doc/library/multiprocessing.rst:703 msgid "" @@ -711,6 +979,11 @@ msgid "" "cancel_join_thread>`), then that process will not terminate until all " "buffered items have been flushed to the pipe." msgstr "" +"Comme mentionné plus haut, si un processus fils a placé des éléments dans la " +"queue (et qu'il n'a pas utilisé :meth:`JoinableQueue.cancel_join_thread " +"`), alors le processus ne se " +"terminera pas tant que les éléments placés dans le tampon n'auront pas été " +"transmis au tube." #: ../Doc/library/multiprocessing.rst:708 msgid "" @@ -720,24 +993,35 @@ msgid "" "parent process may hang on exit when it tries to join all its non-daemonic " "children." msgstr "" +"Cela signifie que si vous essayez d'attendre ce processus vous pouvez " +"obtenir un interblocage, à moins que vous ne soyez sûr que tous les éléments " +"placés dans la queue ont été consommés. De même, si le processus fils n'est " +"pas un *daemon* alors le processus parent pourrait bloquer à la fermeture " +"quand il tentera d'attendre tous ses enfants non *daemons*." #: ../Doc/library/multiprocessing.rst:713 msgid "" "Note that a queue created using a manager does not have this issue. See :" "ref:`multiprocessing-programming`." msgstr "" +"Notez que la queue créée à l'aide d'un gestionnaire n'a pas ce problème. " +"Voir :ref:`multiprocessing-programming`." #: ../Doc/library/multiprocessing.rst:716 msgid "" "For an example of the usage of queues for interprocess communication see :" "ref:`multiprocessing-examples`." msgstr "" +"Pour un exemple d'utilisation de queues pour de la communication entre les " +"processus, voir :ref:`multiprocessing-examples`." #: ../Doc/library/multiprocessing.rst:722 msgid "" "Returns a pair ``(conn1, conn2)`` of :class:`~multiprocessing.connection." "Connection` objects representing the ends of a pipe." msgstr "" +"Renvoie une paire ``(conn1, conn2)`` d'objets :class:`~multiprocessing." +"connection.Connection` représentant les bouts d'un tube." #: ../Doc/library/multiprocessing.rst:726 msgid "" @@ -746,6 +1030,9 @@ msgid "" "used for receiving messages and ``conn2`` can only be used for sending " "messages." msgstr "" +"Si *duplex* vaut ``True`` (par défaut), alors le tube est bidirectionnel. Si " +"*duplex* vaut ``False`` il est unidirectionnel : ``conn1`` ne peut être " +"utilisé que pour recevoir des messages et ``conn2`` que pour en envoyer." #: ../Doc/library/multiprocessing.rst:734 msgid "" @@ -753,42 +1040,62 @@ msgid "" "semaphores. When a process first puts an item on the queue a feeder thread " "is started which transfers objects from a buffer into the pipe." msgstr "" +"Renvoie une queue partagée entre les processus utilisant un tube et quelques " +"verrous/sémaphores. Quand un processus place initialement un élément sur la " +"queue, un fil d'exécution *feeder* est démarré pour transférer les objets du " +"tampon vers le tube." #: ../Doc/library/multiprocessing.rst:738 msgid "" "The usual :exc:`queue.Empty` and :exc:`queue.Full` exceptions from the " "standard library's :mod:`queue` module are raised to signal timeouts." msgstr "" +"Les exceptions habituelles :exc:`queue.Empty` et :exc:`queue.Full` du " +"module :mod:`queue` de la bibliothèque standard sont levées pour signaler " +"les *timeouts*." #: ../Doc/library/multiprocessing.rst:741 msgid "" ":class:`Queue` implements all the methods of :class:`queue.Queue` except " "for :meth:`~queue.Queue.task_done` and :meth:`~queue.Queue.join`." msgstr "" +":class:`Queue` implémente toutes les méthodes de :class:`queue.Queue` à " +"l'exception de :meth:`~queue.Queue.task_done` et :meth:`~queue.Queue.join`." #: ../Doc/library/multiprocessing.rst:746 msgid "" "Return the approximate size of the queue. Because of multithreading/" "multiprocessing semantics, this number is not reliable." msgstr "" +"Renvoie la taille approximative de la queue. Ce nombre n'est pas fiable en " +"raison des problématiques de *multithreading* et *multiprocessing*." #: ../Doc/library/multiprocessing.rst:749 msgid "" "Note that this may raise :exc:`NotImplementedError` on Unix platforms like " "Mac OS X where ``sem_getvalue()`` is not implemented." msgstr "" +"Notez que cela peut lever une :exc:`NotImplementedError` sous les " +"plateformes Unix telles que Mac OS X où ``sem_getvalue()`` n'est pas " +"implémentée." #: ../Doc/library/multiprocessing.rst:754 msgid "" "Return ``True`` if the queue is empty, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" +"Renvoie ``True`` si la queue est vide, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." #: ../Doc/library/multiprocessing.rst:759 msgid "" "Return ``True`` if the queue is full, ``False`` otherwise. Because of " "multithreading/multiprocessing semantics, this is not reliable." msgstr "" +"Renvoie ``True`` si la queue est pleine, ``False`` sinon. Cette valeur n'est " +"pas fiable en raison des problématiques de *multithreading* et " +"*multiprocessing*." #: ../Doc/library/multiprocessing.rst:764 msgid "" @@ -800,10 +1107,18 @@ msgid "" "an item on the queue if a free slot is immediately available, else raise " "the :exc:`queue.Full` exception (*timeout* is ignored in that case)." msgstr "" +"Place *obj* dans la queue. Si l'argument optionnel *block* vaut ``True`` " +"(par défaut) est que *timeout* est ``None`` (par défaut), bloque jusqu'à ce " +"qu'un slot libre soit disponible. Si *timeout* est un nombre positif, la " +"méthode bloquera au maximum *timeout* secondes et lèvera une exception :exc:" +"`queue.Full` si aucun slot libre n'a été trouvé dans le temps imparti. " +"Autrement (*block* vaut ``False``), place un élément dans la queue si un " +"slot libre est immédiatement disponible, ou lève une exception :exc:`queue." +"Full` dans le cas contraire (*timeout* est ignoré dans ce cas)." #: ../Doc/library/multiprocessing.rst:775 msgid "Equivalent to ``put(obj, False)``." -msgstr "" +msgstr "Équivalent à ``put(obj, False)``." #: ../Doc/library/multiprocessing.rst:779 msgid "" @@ -815,6 +1130,15 @@ msgid "" "return an item if one is immediately available, else raise the :exc:`queue." "Empty` exception (*timeout* is ignored in that case)." msgstr "" +"Retire et renvoie un élément de la queue. Si l'argument optionnel *block* " +"vaut ``True`` (par défaut) et que *timeout* est ``None`` (par défaut), " +"bloque jusqu'à ce qu'un élément soit disponible. Si *timeout* (le délai " +"maximal autorisé) est un nombre positif, la méthode bloquera au maximum " +"*timeout* secondes et lèvera une exception :exc:`queue.Empty` si aucun " +"élément n'est disponible dans le temps imparti. Autrement (*block* vaut " +"``False``), renvoie un élément s'il est immédiatement disponible, ou lève " +"une exception :exc:`queue.Empty` dans le cas contraire (*timeout* est ignoré " +"dans ce cas)." #: ../Doc/library/multiprocessing.rst:789 msgid "Equivalent to ``get(False)``." @@ -825,6 +1149,9 @@ msgid "" ":class:`multiprocessing.Queue` has a few additional methods not found in :" "class:`queue.Queue`. These methods are usually unnecessary for most code:" msgstr "" +":class:`multiprocessing.Queue` possède quelques méthodes additionnelles non " +"présentes dans :class:`queue.Queue`. Ces méthodes ne sont habituellement pas " +"nécessaires pour la plupart des codes :" #: ../Doc/library/multiprocessing.rst:797 msgid "" @@ -833,6 +1160,10 @@ msgid "" "data to the pipe. This is called automatically when the queue is garbage " "collected." msgstr "" +"Indique que plus aucune donnée ne peut être placée sur la queue par le " +"processus courant. Le fil d'exécution en arrière-plan se terminera quand il " +"aura transféré toutes les données du tampon vers le tube. Elle est appelée " +"automatiquement quand la queue est collectée par le ramasse-miettes." #: ../Doc/library/multiprocessing.rst:804 msgid "" @@ -840,6 +1171,10 @@ msgid "" "been called. It blocks until the background thread exits, ensuring that all " "data in the buffer has been flushed to the pipe." msgstr "" +"Attend le fil d'exécution d'arrière-plan. Elle peut seulement être utilisée " +"une fois que :meth:`close` a été appelée. Elle bloque jusqu'à ce que le fil " +"d'arrière-plan se termine, assurant que toutes les données du tampon ont été " +"transmises au tube." #: ../Doc/library/multiprocessing.rst:808 msgid "" @@ -847,6 +1182,10 @@ msgid "" "attempt to join the queue's background thread. The process can call :meth:" "`cancel_join_thread` to make :meth:`join_thread` do nothing." msgstr "" +"Par défaut si un processus n'est pas le créateur de la queue alors à la " +"fermeture elle essaiera d'attendre le fil d'exécution d'arrière-plan de la " +"queue. Le processus peut appeler :meth:`cancel_join_thread` pour que :meth:" +"`join_thread` ne fasse rien." #: ../Doc/library/multiprocessing.rst:814 msgid "" @@ -854,6 +1193,9 @@ msgid "" "background thread from being joined automatically when the process exits -- " "see :meth:`join_thread`." msgstr "" +"Empêche :meth:`join_thread` de bloquer. En particulier, cela empêche le fil " +"d'arrière-plan d'être attendu automatiquement quand le processus se ferme -- " +"voir :meth:`join_thread`." #: ../Doc/library/multiprocessing.rst:818 msgid "" @@ -863,6 +1205,12 @@ msgid "" "exit immediately without waiting to flush enqueued data to the underlying " "pipe, and you don't care about lost data." msgstr "" +"Un meilleur nom pour cette méthode pourrait être " +"``allow_exit_without_flush()``. Cela peut provoquer des pertes de données " +"placées dans la queue, et vous ne devriez certainement pas avoir besoin de " +"l'utiliser. Elle n'est là que si vous souhaitez terminer immédiatement le " +"processus sans transférer les données du tampon, et que vous ne vous " +"inquiétez pas de perdre des données." #: ../Doc/library/multiprocessing.rst:827 msgid "" @@ -873,15 +1221,23 @@ msgid "" "information. The same holds true for any of the specialized queue types " "listed below." msgstr "" +"Le fonctionnement de cette classe requiert une implémentation de sémaphore " +"partagé sur le système d'exploitation hôte. Sans cela, la fonctionnalité " +"sera désactivée et la tentative d'instancier une :class:`Queue` lèvera une :" +"exc:`ImportError`. Voir :issue:`3770` pour plus d'informations. Cette " +"remarque reste valable pour les autres types de queues spécialisées définies " +"par la suite." #: ../Doc/library/multiprocessing.rst:836 msgid "" "It is a simplified :class:`Queue` type, very close to a locked :class:`Pipe`." msgstr "" +"Un type de :class:`Queue` simplifié, très proche d'un :class:`Pipe` avec " +"verrou." #: ../Doc/library/multiprocessing.rst:840 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." #: ../Doc/library/multiprocessing.rst:844 msgid "Remove and return an item from the queue." @@ -889,13 +1245,15 @@ msgstr "Supprime et donne un élément de la queue." #: ../Doc/library/multiprocessing.rst:848 msgid "Put *item* into the queue." -msgstr "" +msgstr "Place *item* dans la queue." #: ../Doc/library/multiprocessing.rst:853 msgid "" ":class:`JoinableQueue`, a :class:`Queue` subclass, is a queue which " "additionally has :meth:`task_done` and :meth:`join` methods." msgstr "" +":class:`JoinableQueue`, une sous-classe de :class:`Queue`, est une queue qui " +"ajoute des méthodes :meth:`task_done` et :meth:`join`." #: ../Doc/library/multiprocessing.rst:858 msgid "" @@ -904,6 +1262,10 @@ msgid "" "call to :meth:`task_done` tells the queue that the processing on the task is " "complete." msgstr "" +"Indique qu'une tâche précédemment placée dans la queue est complétée. " +"Utilisé par les consommateurs de la queue. Pour chaque :meth:`~Queue.get` " +"utilisé pour récupérer une tâche, un appel ultérieur à :meth:`task_done` " +"indique à la queue que le traitement de la tâche est terminé." #: ../Doc/library/multiprocessing.rst:863 msgid "" @@ -911,6 +1273,10 @@ msgid "" "all items have been processed (meaning that a :meth:`task_done` call was " "received for every item that had been :meth:`~Queue.put` into the queue)." msgstr "" +"Si un :meth:`~queue.Queue.join` est actuellement bloquant, il se débloquera " +"quand tous les éléments auront été traités (signifiant qu'un appel à :meth:" +"`task_done` a été reçu pour chaque élément ayant été placé via :meth:`~Queue." +"put` dans la queue)." #: ../Doc/library/multiprocessing.rst:867 msgid "" @@ -923,6 +1289,8 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:873 msgid "Block until all items in the queue have been gotten and processed." msgstr "" +"Bloque jusqu'à ce que tous les éléments de la queue aient été récupérés et " +"traités." #: ../Doc/library/multiprocessing.rst:875 msgid "" @@ -932,24 +1300,31 @@ msgid "" "the count of unfinished tasks drops to zero, :meth:`~queue.Queue.join` " "unblocks." msgstr "" +"Le compteur des tâches non accomplies augmente chaque fois qu'un élément est " +"ajouté à la queue. Le compteur redescend chaque fois qu'un consommateur " +"appelle :meth:`task_done` pour indiquer qu'un élément a été récupéré et que " +"tout le travail qui le concerne est complété. Quand le compteur des tâches " +"non accomplies atteint zéro, :meth:`~queue.Queue.join` est débloquée." #: ../Doc/library/multiprocessing.rst:883 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" #: ../Doc/library/multiprocessing.rst:887 msgid "Return list of all live children of the current process." -msgstr "" +msgstr "Renvoie la liste de tous les enfants vivants du processus courant." #: ../Doc/library/multiprocessing.rst:889 msgid "" "Calling this has the side effect of \"joining\" any processes which have " "already finished." msgstr "" +"Appeler cette méthode provoque l'effet de bord d'attendre tout processus qui " +"n'a pas encore terminé." #: ../Doc/library/multiprocessing.rst:894 msgid "Return the number of CPUs in the system." -msgstr "" +msgstr "Renvoie le nombre de CPU sur le système." #: ../Doc/library/multiprocessing.rst:896 msgid "" @@ -963,20 +1338,20 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:900 msgid "May raise :exc:`NotImplementedError`." -msgstr "" +msgstr "Peut lever une :exc:`NotImplementedError`." #: ../Doc/library/multiprocessing.rst:903 msgid ":func:`os.cpu_count`" -msgstr "" +msgstr ":func:`os.cpu_count`" #: ../Doc/library/multiprocessing.rst:907 msgid "" "Return the :class:`Process` object corresponding to the current process." -msgstr "" +msgstr "Renvoie l'objet :class:`Process` correspondant au processus courant." #: ../Doc/library/multiprocessing.rst:909 msgid "An analogue of :func:`threading.current_thread`." -msgstr "" +msgstr "Un analogue à :func:`threading.current_thread`." #: ../Doc/library/multiprocessing.rst:913 msgid "" @@ -984,18 +1359,25 @@ msgid "" "frozen to produce a Windows executable. (Has been tested with **py2exe**, " "**PyInstaller** and **cx_Freeze**.)" msgstr "" +"Ajoute le support des programmes utilisant :mod:`multiprocessing` qui ont " +"été gelés pour produire un exécutable Windows. (Testé avec **py2exe**, " +"**PyInstaller** et **cx_Freeze**.)" #: ../Doc/library/multiprocessing.rst:917 msgid "" "One needs to call this function straight after the ``if __name__ == " "'__main__'`` line of the main module. For example::" msgstr "" +"Cette fonction doit être appelée juste après la ligne ``if __name__ == " +"'__main__'`` du module principal. Par exemple : ::" #: ../Doc/library/multiprocessing.rst:929 msgid "" "If the ``freeze_support()`` line is omitted then trying to run the frozen " "executable will raise :exc:`RuntimeError`." msgstr "" +"Si la ligne ``freeze_support()`` est omise, alors tenter de lancer " +"l'exécutable gelé lèvera une :exc:`RuntimeError`." #: ../Doc/library/multiprocessing.rst:932 msgid "" @@ -1004,6 +1386,10 @@ msgid "" "by the Python interpreter on Windows (the program has not been frozen), then " "``freeze_support()`` has no effect." msgstr "" +"Appeler ``freeze_support()`` n'a pas d'effet quand elle est invoquée sur un " +"système d'exploitation autre que Windows. De plus, si le module est lancé " +"normalement par l'interpréteur Python sous Windows (le programme n'a pas été " +"gelé), alors ``freeze_support()`` n'a pas d'effet." #: ../Doc/library/multiprocessing.rst:939 msgid "" @@ -1013,12 +1399,19 @@ msgid "" "``'fork'`` and ``'spawn'`` are always supported, with ``'fork'`` being the " "default." msgstr "" +"Renvoie la liste des méthodes de démarrage supportées, la première étant " +"celle par défaut. Les méthodes de démarrage possibles sont ``'fork'``, " +"``'spawn'`` et ``'forkserver'``. Sous Windows seule ``'spawn'`` est " +"disponible. Sous Unix ``'fork'`` et ``'spawn'`` sont disponibles, ``'fork'`` " +"étant celle par défaut." #: ../Doc/library/multiprocessing.rst:949 msgid "" "Return a context object which has the same attributes as the :mod:" "`multiprocessing` module." msgstr "" +"Renvoie un contexte ayant les mêmes attributs que le module :mod:" +"`multiprocessing`." #: ../Doc/library/multiprocessing.rst:952 msgid "" @@ -1026,10 +1419,16 @@ msgid "" "*method* should be ``'fork'``, ``'spawn'``, ``'forkserver'``. :exc:" "`ValueError` is raised if the specified start method is not available." msgstr "" +"Si *method* est ``None`` le contexte par défaut est renvoyé. Sinon *method* " +"doit valoir ``'fork'``, ``'spawn'`` ou ``'forkserver'``. Une :exc:" +"`ValueError` est levée si la méthode de démarrage spécifiée n'est pas " +"disponible." #: ../Doc/library/multiprocessing.rst:961 msgid "Return the name of start method used for starting processes." msgstr "" +"Renvoie le nom de la méthode de démarrage utilisée pour démarrer le " +"processus." #: ../Doc/library/multiprocessing.rst:963 msgid "" @@ -1037,6 +1436,10 @@ msgid "" "start method is fixed to the default and the name is returned. If the start " "method has not been fixed and *allow_none* is true then ``None`` is returned." msgstr "" +"Si le nom de la méthode n'a pas été fixé et que *allow_none* est faux, alors " +"la méthode de démarrage est réglée à celle par défaut et son nom est " +"renvoyé. Si la méthode n'a pas été fixée et que *allow_none* est vrai, " +"``None`` est renvoyé." #: ../Doc/library/multiprocessing.rst:968 msgid "" @@ -1044,6 +1447,9 @@ msgid "" "``None``. ``'fork'`` is the default on Unix, while ``'spawn'`` is the " "default on Windows." msgstr "" +"La valeur de retour peut être ``'fork'``, ``'spawn'``, ``'forkserver'`` ou " +"``None``. ``'fork'`` est la valeur par défaut sous Unix, ``'spawn'`` est " +"celle sous Windows." #: ../Doc/library/multiprocessing.rst:976 msgid "" @@ -1051,26 +1457,36 @@ msgid "" "process. (By default :data:`sys.executable` is used). Embedders will " "probably need to do some thing like ::" msgstr "" +"Définit le chemin de l'interpréteur Python à utiliser pour démarrer un " +"processus fils. (Par défaut :data:`sys.executable` est utilisé). Les " +"intégrateurs devront probablement faire quelque chose comme : ::" #: ../Doc/library/multiprocessing.rst:982 msgid "before they can create child processes." -msgstr "" +msgstr "avant de pouvoir créer des processus fils." #: ../Doc/library/multiprocessing.rst:984 msgid "Now supported on Unix when the ``'spawn'`` start method is used." msgstr "" +"Maintenant supporté sous Unix quand la méthode de démarrage ``'spawn'`` est " +"utilisée." #: ../Doc/library/multiprocessing.rst:989 msgid "" "Set the method which should be used to start child processes. *method* can " "be ``'fork'``, ``'spawn'`` or ``'forkserver'``." msgstr "" +"Règle la méthode qui doit être utilisée pour démarrer un processus fils. " +"*method* peut être ``'fork'``, ``'spawn'`` ou ``'forkserver'``." #: ../Doc/library/multiprocessing.rst:992 msgid "" "Note that this should be called at most once, and it should be protected " "inside the ``if __name__ == '__main__'`` clause of the main module." msgstr "" +"Notez que cette fonction ne devrait être appelée qu'une fois au plus, et " +"l'appel devrait être protégé à l'intérieur d'une clause ``if __name__ == " +"'__main__'`` dans le module principal." #: ../Doc/library/multiprocessing.rst:1000 msgid "" @@ -1079,28 +1495,40 @@ msgid "" "func:`threading.setprofile`, :class:`threading.Timer`, or :class:`threading." "local`." msgstr "" +":mod:`multiprocessing` ne contient pas d'analogues à :func:`threading." +"active_count`, :func:`threading.enumerate`, :func:`threading.settrace`, :" +"func:`threading.setprofile`, :class:`threading.Timer`, ou :class:`threading." +"local`." #: ../Doc/library/multiprocessing.rst:1007 msgid "Connection Objects" -msgstr "" +msgstr "Objets de connexions" #: ../Doc/library/multiprocessing.rst:1011 msgid "" "Connection objects allow the sending and receiving of picklable objects or " "strings. They can be thought of as message oriented connected sockets." msgstr "" +"Les objets de connexion autorisent l'envoi et la réception d'objets " +"sérialisables ou de chaînes de caractères. Ils peuvent être vus comme des " +"interfaces de connexion (*sockets*) connectées orientées messages." #: ../Doc/library/multiprocessing.rst:1014 msgid "" "Connection objects are usually created using :func:`Pipe ` -- see also :ref:`multiprocessing-listeners-clients`." msgstr "" +"Les objets de connexion sont habituellement créés via :func:`Pipe " +"` -- voir aussi :ref:`multiprocessing-listeners-" +"clients`." #: ../Doc/library/multiprocessing.rst:1022 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." msgstr "" +"Envoie un objet sur l'autre bout de la connexion, qui devra être lu avec :" +"meth:`recv`." #: ../Doc/library/multiprocessing.rst:1025 msgid "" @@ -1114,22 +1542,29 @@ msgid "" "`send`. Blocks until there is something to receive. Raises :exc:`EOFError` " "if there is nothing left to receive and the other end was closed." msgstr "" +"Renvoie un objet envoyé depuis l'autre bout de la connexion en utilisant :" +"meth:`send`. Bloque jusqu'à ce que quelque chose soit reçu. Lève une :exc:" +"`EOFError` s'il n'y a plus rien à recevoir et que l'autre bout a été fermé." #: ../Doc/library/multiprocessing.rst:1037 msgid "Return the file descriptor or handle used by the connection." msgstr "" +"Renvoie le descripteur de fichier ou identifiant utilisé par la connexion." #: ../Doc/library/multiprocessing.rst:1041 msgid "Close the connection." -msgstr "" +msgstr "Ferme la connexion." #: ../Doc/library/multiprocessing.rst:1043 msgid "This is called automatically when the connection is garbage collected." msgstr "" +"Elle est appelée automatiquement quand la connexion est collectée par le " +"ramasse-miettes." #: ../Doc/library/multiprocessing.rst:1047 msgid "Return whether there is any data available to be read." msgstr "" +"Renvoie vrai ou faux selon si des données sont disponibles à la lecture." #: ../Doc/library/multiprocessing.rst:1049 msgid "" @@ -1137,16 +1572,23 @@ msgid "" "is a number then this specifies the maximum time in seconds to block. If " "*timeout* is ``None`` then an infinite timeout is used." msgstr "" +"Si *timeout* n'est pas spécifié la méthode renverra immédiatement. Si " +"*timeout* est un nombre alors il spécifie le temps maximum de blocage en " +"secondes. Si *timeout* est ``None``, un temps d'attente infini est utilisé." #: ../Doc/library/multiprocessing.rst:1053 msgid "" "Note that multiple connection objects may be polled at once by using :func:" "`multiprocessing.connection.wait`." msgstr "" +"Notez que plusieurs objets de connexions peuvent être attendus en même temps " +"à l'aide de :func:`multiprocessing.connection.wait`." #: ../Doc/library/multiprocessing.rst:1058 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" +"Envoie des données binaires depuis un :term:`bytes-like object` comme un " +"message complet." #: ../Doc/library/multiprocessing.rst:1060 msgid "" @@ -1163,18 +1605,26 @@ msgid "" "exc:`EOFError` if there is nothing left to receive and the other end has " "closed." msgstr "" +"Renvoie un message complet de données binaires envoyées depuis l'autre bout " +"de la connexion comme une chaîne de caractères. Bloque jusqu'à ce qu'il y " +"ait quelque chose à recevoir. Lève une :exc:`EOFError` s'il ne reste rien à " +"recevoir et que l'autre côté de la connexion a été fermé." #: ../Doc/library/multiprocessing.rst:1072 msgid "" "If *maxlength* is specified and the message is longer than *maxlength* then :" "exc:`OSError` is raised and the connection will no longer be readable." msgstr "" +"Si *maxlength* est précisé que que le message est plus long que *maxlength* " +"alors une :exc:`OSError` est levée et la connexion n'est plus lisible." #: ../Doc/library/multiprocessing.rst:1076 msgid "" "This function used to raise :exc:`IOError`, which is now an alias of :exc:" "`OSError`." msgstr "" +"Cette fonction levait auparavant une :exc:`IOError`, qui est maintenant un " +"alias pour :exc:`OSError`." #: ../Doc/library/multiprocessing.rst:1083 msgid "" @@ -1183,6 +1633,11 @@ msgid "" "until there is something to receive. Raises :exc:`EOFError` if there is " "nothing left to receive and the other end was closed." msgstr "" +"Lit et stocke dans *buffer* un message complet de données binaires envoyées " +"depuis l'autre bout de la connexion et renvoie le nombre d'octets du " +"message. Bloque jusqu'à ce qu'il y ait quelque chose à recevoir. Lève une :" +"exc:`EOFError` s'il ne reste rien à recevoir et que l'autre côté de la " +"connexion a été fermé." #: ../Doc/library/multiprocessing.rst:1089 msgid "" @@ -1190,6 +1645,10 @@ msgid "" "then the message will be written into the buffer from that position. Offset " "must be a non-negative integer less than the length of *buffer* (in bytes)." msgstr "" +"*buffer* doit être un :term:`bytes-like object` accessible en écriture. Si " +"*offset* est donné, le message sera écrit dans le tampon à partir de cette " +"position. *offset* doit être un entier positif, inférieur à la taille de " +"*buffer* (en octets)." #: ../Doc/library/multiprocessing.rst:1094 msgid "" @@ -1197,12 +1656,18 @@ msgid "" "and the complete message is available as ``e.args[0]`` where ``e`` is the " "exception instance." msgstr "" +"Si le tampon est trop petit une exception :exc:`BufferTooShort` est levée et " +"le message complet est accessible via ``e.args[0]`` où ``e`` est l'instance " +"de l'exception." #: ../Doc/library/multiprocessing.rst:1098 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." msgstr "" +"Les objets de connexions eux-mêmes peuvent maintenant être transférés entre " +"les processus en utilisant :meth:`Connection.send` et :meth:`Connection." +"recv`." #: ../Doc/library/multiprocessing.rst:1102 msgid "" @@ -1210,6 +1675,10 @@ msgid "" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " "connection object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" +"Les objets de connexions supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet de connexion, et :meth:" +"`~contextmanager.__exit__` appelle :meth:`close`." #: ../Doc/library/multiprocessing.rst:1107 msgid "For example:" @@ -1221,6 +1690,9 @@ msgid "" "receives, which can be a security risk unless you can trust the process " "which sent the message." msgstr "" +"La méthode :meth:`Connection.recv` désérialise automatiquement les données " +"qu'elle reçoit, ce qui peut être un risque de sécurité à moins que vous ne " +"fassiez réellement confiance au processus émetteur du message." #: ../Doc/library/multiprocessing.rst:1135 msgid "" @@ -1229,6 +1701,10 @@ msgid "" "methods after performing some sort of authentication. See :ref:" "`multiprocessing-auth-keys`." msgstr "" +"Par conséquent, à moins que l'objet de connexion soit instancié par :func:" +"`Pipe`, vous ne devriez uniquement utiliser les méthodes :meth:`~Connection." +"recv` et :meth:`~Connection.send` après avoir effectué une quelconque forme " +"d'authentification. Voir :ref:`multiprocessing-auth-keys`." #: ../Doc/library/multiprocessing.rst:1142 msgid "" @@ -1236,10 +1712,13 @@ msgid "" "the data in the pipe is likely to become corrupted, because it may become " "impossible to be sure where the message boundaries lie." msgstr "" +"Si un processus est tué pendant qu'il essaye de lire ou écrire sur le tube, " +"alors les données du tube ont des chances d'être corrompues, parce qu'il " +"devient impossible d'être sûr d'où se trouvent les bornes du message." #: ../Doc/library/multiprocessing.rst:1148 msgid "Synchronization primitives" -msgstr "" +msgstr "Primitives de synchronisation" #: ../Doc/library/multiprocessing.rst:1152 msgid "" @@ -1247,22 +1726,29 @@ msgid "" "program as they are in a multithreaded program. See the documentation for :" "mod:`threading` module." msgstr "" +"Généralement les primitives de synchronisation ne sont pas nécessaire dans " +"un programme multi-processus comme elles le sont dans un programme multi-" +"fils d'exécution. Voir la documentation du module :mod:`threading`." #: ../Doc/library/multiprocessing.rst:1156 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." msgstr "" +"Notez que vous pouvez aussi créer des primitives de synchronisation en " +"utilisant un objet gestionnaire -- voir :ref:`multiprocessing-managers`." #: ../Doc/library/multiprocessing.rst:1161 msgid "A barrier object: a clone of :class:`threading.Barrier`." -msgstr "" +msgstr "Un objet barrière : un clone de :class:`threading.Barrier`." #: ../Doc/library/multiprocessing.rst:1167 msgid "" "A bounded semaphore object: a close analog of :class:`threading." "BoundedSemaphore`." msgstr "" +"Un objet sémaphore lié : un analogue proche de :class:`threading." +"BoundedSemaphore`." #: ../Doc/library/multiprocessing.rst:1170 #: ../Doc/library/multiprocessing.rst:1308 @@ -1270,31 +1756,39 @@ msgid "" "A solitary difference from its close analog exists: its ``acquire`` method's " "first argument is named *block*, as is consistent with :meth:`Lock.acquire`." msgstr "" +"Une seule différence existe avec son proche analogue : le premier argument " +"de sa méthode ``acquire`` est appelé *block*, pour la cohérence avec :meth:" +"`Lock.acquire`." #: ../Doc/library/multiprocessing.rst:1174 msgid "" "On Mac OS X, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." msgstr "" +"Sur Mac OS X, elle n'est pas distinguable de la classe :class:`Semaphore` " +"parce que ``sem_getvalue()`` n'est pas implémentée sur cette plateforme." #: ../Doc/library/multiprocessing.rst:1179 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" +"Une variable conditionnelle : un alias pour :class:`threading.Condition`." #: ../Doc/library/multiprocessing.rst:1181 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." msgstr "" +"Si *lock* est spécifié il doit être un objet :class:`Lock` ou :class:`RLock` " +"du module :mod:`multiprocessing`." #: ../Doc/library/multiprocessing.rst:1184 #: ../Doc/library/multiprocessing.rst:1718 msgid "The :meth:`~threading.Condition.wait_for` method was added." -msgstr "" +msgstr "La méthode :meth:`~threading.Condition.wait_for` a été ajoutée." #: ../Doc/library/multiprocessing.rst:1189 msgid "A clone of :class:`threading.Event`." -msgstr "" +msgstr "Un clone de :class:`threading.Event`." #: ../Doc/library/multiprocessing.rst:1194 msgid "" @@ -1306,6 +1800,14 @@ msgid "" "`multiprocessing.Lock` as it applies to either processes or threads, except " "as noted." msgstr "" +"Un verrou non récursif : un analogue proche de :class:`threading.Lock`. Une " +"fois que le processus ou le fil d'exécution a acquis un verrou, les " +"tentatives suivantes d'acquisition depuis n'importe quel processus ou fil " +"d'exécution bloqueront jusqu'à ce qu'il soit libéré ; n'importe quel " +"processus ou fil peut le libérer. Les concepts et comportements de :class:" +"`threading.Lock` qui s'appliquent aux fils d'exécution sont répliqués ici " +"dans :class:`multiprocessing.Lock` et s'appliquent aux processus et aux fils " +"d'exécution, à l'exception de ce qui est indiqué." #: ../Doc/library/multiprocessing.rst:1202 msgid "" @@ -1313,17 +1815,22 @@ msgid "" "instance of ``multiprocessing.synchronize.Lock`` initialized with a default " "context." msgstr "" +"Notez que :class:`Lock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.Lock`` initialisée avec un " +"contexte par défaut." #: ../Doc/library/multiprocessing.rst:1206 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" +":class:`Lock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisé avec une instruction :keyword:`with`." #: ../Doc/library/multiprocessing.rst:1211 #: ../Doc/library/multiprocessing.rst:1262 msgid "Acquire a lock, blocking or non-blocking." -msgstr "" +msgstr "Acquiert un verrou, bloquant ou non bloquant." #: ../Doc/library/multiprocessing.rst:1213 msgid "" @@ -1332,6 +1839,10 @@ msgid "" "return ``True``. Note that the name of this first argument differs from " "that in :meth:`threading.Lock.acquire`." msgstr "" +"Avec l'argument *block* à ``True`` (par défaut), l'appel de méthode bloquera " +"jusqu'à ce que le verrou soit dans déverrouillé, puis le verrouillera avant " +"de renvoyer ``True``. Notez que le nom de ce premier argument diffère de " +"celui de :meth:`threading.Lock.acquire`." #: ../Doc/library/multiprocessing.rst:1218 msgid "" @@ -1339,6 +1850,9 @@ msgid "" "If the lock is currently in a locked state, return ``False``; otherwise set " "the lock to a locked state and return ``True``." msgstr "" +"Avec l'argument *block* à ``False``, l'appel de méthode ne bloque pas. Si le " +"verrou est actuellement verrouillé, renvoie ``False`` ; autrement verrouille " +"le verrou et renvoie ``True``." #: ../Doc/library/multiprocessing.rst:1222 msgid "" @@ -1353,18 +1867,34 @@ msgid "" "``False`` and is thus ignored. Returns ``True`` if the lock has been " "acquired or ``False`` if the timeout period has elapsed." msgstr "" +"Quand invoqué avec un nombre flottant positif comme *timeout*, bloque au " +"maximum pendant ce nombre spécifié de secondes, tant que le verrou ne peut " +"être acquis. Les invocations avec une valeur de *timeout* négatives sont " +"équivalents à zéro. Les invocations avec un *timeout* à ``None`` (par " +"défaut) correspondent à un délai d'attente infini. Notez que le traitement " +"des valeurs de *timeout* négatives et ``None`` diffère du comportement " +"implémenté dans :meth:`threading.Lock.acquire`. L'argument *timeout* n'a pas " +"d'implication pratique si l'argument *block* est mis ) ``False`` et est " +"alors ignoré. Renvoie ``True`` si le verrou a été acquis et ``False`` si le " +"temps de *timeout* a expiré." #: ../Doc/library/multiprocessing.rst:1237 msgid "" "Release a lock. This can be called from any process or thread, not only the " "process or thread which originally acquired the lock." msgstr "" +"Libère un verrou. Elle peut être appelée depuis n'importe quel processus ou " +"fil d'exécution, pas uniquement le processus ou le fil qui a acquis le " +"verrou à l'origine." #: ../Doc/library/multiprocessing.rst:1240 msgid "" "Behavior is the same as in :meth:`threading.Lock.release` except that when " "invoked on an unlocked lock, a :exc:`ValueError` is raised." msgstr "" +"Le comportement est le même que :meth:`threading.Lock.release` excepté que " +"lorsque la méthode est appelée sur un verrou déverrouillé, une :exc:" +"`ValueError` est levée." #: ../Doc/library/multiprocessing.rst:1246 msgid "" @@ -1374,6 +1904,11 @@ msgid "" "thread may acquire it again without blocking; that process or thread must " "release it once for each time it has been acquired." msgstr "" +"Un objet verrou récursif : un analogue proche de :class:`threading.RLock`. " +"Un verrou récursif doit être libéré par le processus ou le fil d'exécution " +"qui l'a acquis. Quand un processus ou un fil acquiert un verrou récursif, le " +"même processus/fil peut l'acquérir à nouveau sans bloquer ; le processus/fil " +"doit le libérer autant de fois qu'il l'acquiert." #: ../Doc/library/multiprocessing.rst:1252 msgid "" @@ -1381,12 +1916,17 @@ msgid "" "instance of ``multiprocessing.synchronize.RLock`` initialized with a default " "context." msgstr "" +"Notez que :class:`RLock` est en fait une fonction *factory* qui renvoie une " +"instance de ``multiprocessing.synchronize.RLock`` initialisée avec un " +"contexte par défaut." #: ../Doc/library/multiprocessing.rst:1256 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." msgstr "" +":class:`RLock` supporte le protocole :term:`context manager` et peut ainsi " +"être utilisée avec une instruction :keyword:`with`." #: ../Doc/library/multiprocessing.rst:1264 msgid "" @@ -1400,6 +1940,14 @@ msgid "" "of :meth:`threading.RLock.acquire`, starting with the name of the argument " "itself." msgstr "" +"Quand invoqué avec l'argument *block* à ``True``, bloque jusqu'à ce que le " +"verrou soit déverrouillé (n'appartenant à aucun processus ou fil " +"d'exécution) sauf s'il appartient déjà au processus ou fil d'exécution " +"courant. Le processus ou fil d'exécution courant prend la possession du " +"verrou (s'il ne l'a pas déjà) et incrémente d'un le niveau de récursion du " +"verrou, renvoyant ainsi ``True``. Notez qu'il y a plusieurs différences dans " +"le comportement de ce premier argument comparé à l'implémentation de :meth:" +"`threading.RLock.acquire`, à commencer par le nom de l'argument lui-même." #: ../Doc/library/multiprocessing.rst:1274 msgid "" @@ -1411,6 +1959,12 @@ msgid "" "thread takes ownership and the recursion level is incremented, resulting in " "a return value of ``True``." msgstr "" +"Quand invoqué avec l'argument *block* à ``False``, ne bloque pas. Si le " +"verrou est déjà acquis (et possédé) par un autre processus ou fil " +"d'exécution, le processus/fil courant n'en prend pas la possession et le " +"niveau de récursion n'est pas incrémenté, résultant en une valeur de retour " +"à ``False``. Si le verrou est déverrouillé, le processus/fil courant en " +"prend possession et incrémente son niveau de récursion, renvoyant ``True``." #: ../Doc/library/multiprocessing.rst:1282 msgid "" @@ -1418,6 +1972,9 @@ msgid "" "acquire`. Note that some of these behaviors of *timeout* differ from the " "implemented behaviors in :meth:`threading.RLock.acquire`." msgstr "" +"L'usage et les comportements de l'argument *timeout* sont les mêmes que " +"pour :meth:`Lock.acquire`. Notez que certains de ces comportements diffèrent " +"par rapport à ceux implémentés par :meth:`threading.RLock.acquire`." #: ../Doc/library/multiprocessing.rst:1289 msgid "" @@ -1428,6 +1985,13 @@ msgid "" "after the decrement the recursion level is still nonzero, the lock remains " "locked and owned by the calling process or thread." msgstr "" +"Libère un verrou, décrémentant son niveau de récursion. Si après la " +"décrémentation le niveau de récursion est zéro, réinitialise le verrou à un " +"état déverrouillé (n'appartenant à aucun processus ou fil d'exécution) et si " +"des processus/fils attendent que le verrou se déverrouillé, autorise un seul " +"d'entre-eux à continuer. Si après cette décrémentation le niveau de " +"récursion est toujours strictement positif, le verrou reste verrouillé et " +"propriété du processus/fil appelant." #: ../Doc/library/multiprocessing.rst:1297 msgid "" @@ -1437,16 +2001,24 @@ msgid "" "state. Note that the type of exception raised in this situation differs " "from the implemented behavior in :meth:`threading.RLock.release`." msgstr "" +"N'appelez cette méthode que si le processus ou fil d'exécution appelant est " +"propriétaire du verrou. Une :exc:`AssertionError` est levée si cette méthode " +"est appelée par un processus/fil autre que le propriétaire ou si le verrou " +"n'est pas verrouillé (possédé). Notez que le type d'exception levé dans " +"cette situation diffère du comportement de :meth:`threading.RLock.release`." #: ../Doc/library/multiprocessing.rst:1306 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." -msgstr "" +msgstr "Un objet sémaphore, proche analogue de :class:`threading.Semaphore`." #: ../Doc/library/multiprocessing.rst:1313 msgid "" "On Mac OS X, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with " "a timeout will emulate that function's behavior using a sleeping loop." msgstr "" +"Sous Mac OS X, ``sem_timedwait`` n'est pas supporté, donc appeler " +"``acquire()`` avec un temps d'exécution limité émulera le comportement de " +"cette fonction en utilisant une boucle d'attente." #: ../Doc/library/multiprocessing.rst:1318 msgid "" @@ -1456,12 +2028,19 @@ msgid "" "acquire` or :meth:`Condition.wait` then the call will be immediately " "interrupted and :exc:`KeyboardInterrupt` will be raised." msgstr "" +"Si le signal *SIGINT* généré par un :kbd:`Ctrl-C` survient pendant que le " +"fil d'exécution principal est bloqué par un appel à :meth:`BoundedSemaphore." +"acquire`, :meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Semaphore." +"acquire`, :meth:`Condition.acquire` ou :meth:`Condition.wait`, l'appel sera " +"immédiatement interrompu et une :exc:`KeyboardInterrupt` sera levée." #: ../Doc/library/multiprocessing.rst:1324 msgid "" "This differs from the behaviour of :mod:`threading` where SIGINT will be " "ignored while the equivalent blocking calls are in progress." msgstr "" +"Cela diffère du comportement de :mod:`threading` où le *SIGINT* est ignoré " +"tant que les appels bloquants sont en cours." #: ../Doc/library/multiprocessing.rst:1329 msgid "" @@ -1471,16 +2050,23 @@ msgid "" "import it will result in an :exc:`ImportError`. See :issue:`3770` for " "additional information." msgstr "" +"Certaines des fonctionnalités de ce paquet requièrent une implémentation " +"fonctionnelle de sémaphores partagés sur le système hôte. Sans cela, le " +"module :mod:`multiprocessing.synchronize` sera désactivé, et les tentatives " +"de l'importer lèveront une :exc:`ImportError`. Voir :issue:`3770` pour plus " +"d'informations." #: ../Doc/library/multiprocessing.rst:1337 msgid "Shared :mod:`ctypes` Objects" -msgstr "" +msgstr "Objets :mod:`ctypes` partagés" #: ../Doc/library/multiprocessing.rst:1339 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." msgstr "" +"Il est possible de créer des objets partagés utilisant une mémoire partagée " +"pouvant être héritée par les processus enfants." #: ../Doc/library/multiprocessing.rst:1344 msgid "" @@ -1488,6 +2074,10 @@ msgid "" "return value is actually a synchronized wrapper for the object. The object " "itself can be accessed via the *value* attribute of a :class:`Value`." msgstr "" +"Renvoie un objet :mod:`ctypes` alloué depuis la mémoire partagée. Par défaut " +"la valeur de retour est en fait un *wrapper* synchronisé autour de l'objet. " +"L'objet en lui-même est accessible par l'attribut *value* de l'une :class:" +"`Value`." #: ../Doc/library/multiprocessing.rst:1348 #: ../Doc/library/multiprocessing.rst:1435 @@ -1496,6 +2086,9 @@ msgid "" "a ctypes type or a one character typecode of the kind used by the :mod:" "`array` module. *\\*args* is passed on to the constructor for the type." msgstr "" +"*typecode_or_type* détermine le type de l'objet renvoyé : il s'agit soit " +"d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé par le " +"module :mod:`array`. *\\*args* est passé au constructeur de ce type." #: ../Doc/library/multiprocessing.rst:1352 msgid "" @@ -1506,6 +2099,12 @@ msgid "" "be automatically protected by a lock, so it will not necessarily be " "\"process-safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou récursif est " +"créé pour synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`Lock` ou :class:`RLock` alors il sera utilisé pour synchroniser l'accès à " +"la valeur. Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »" #: ../Doc/library/multiprocessing.rst:1359 msgid "" @@ -1513,24 +2112,32 @@ msgid "" "if, for instance, you want to atomically increment a shared value it is " "insufficient to just do ::" msgstr "" +"Les opérations telles que ``+=`` qui impliquent une lecture et une écriture " +"ne sont pas atomique. Ainsi si vous souhaitez par exemple réaliser une " +"incrémentation atomique sur une valeur partagée, vous ne pouvez pas " +"simplement faire : ::" #: ../Doc/library/multiprocessing.rst:1365 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" msgstr "" +"En supposant que le verrou associé est récursif (ce qui est le cas par " +"défaut), vous pouvez à la place faire : ::" #: ../Doc/library/multiprocessing.rst:1371 #: ../Doc/library/multiprocessing.rst:1461 #: ../Doc/library/multiprocessing.rst:1476 msgid "Note that *lock* is a keyword-only argument." -msgstr "" +msgstr "Notez que *lock* est un argument *keyword-only*." #: ../Doc/library/multiprocessing.rst:1375 msgid "" "Return a ctypes array allocated from shared memory. By default the return " "value is actually a synchronized wrapper for the array." msgstr "" +"Renvoie un tableau *ctypes* alloué depuis la mémoire partagée. Par défaut la " +"valeur de retour est en fait un *wrapper* synchronisé autour du tableau." #: ../Doc/library/multiprocessing.rst:1378 msgid "" @@ -1541,6 +2148,12 @@ msgid "" "zeroed. Otherwise, *size_or_initializer* is a sequence which is used to " "initialize the array and whose length determines the length of the array." msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère *typecode* tel qu'utilisé " +"par le module :mod:`array`. Si *size_or_initialize* est un entier, alors il " +"détermine la taille du tableau, et le tableau sera initialisé avec des " +"zéros. Autrement, *size*or_initializer* est une séquence qui sera utilisée " +"pour initialiser le tableau et dont la taille détermine celle du tableau." #: ../Doc/library/multiprocessing.rst:1385 msgid "" @@ -1551,20 +2164,29 @@ msgid "" "automatically protected by a lock, so it will not necessarily be \"process-" "safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:`Lock` ou :" +"class:`RLock` alors il sera utilisé pour synchroniser l'accès à la valeur. " +"Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " +"automatiquement protégé par un verrou, donc il ne sera pas forcément " +"« *process-safe* »" #: ../Doc/library/multiprocessing.rst:1392 msgid "Note that *lock* is a keyword only argument." -msgstr "" +msgstr "Notez que *lock* est un argument *keyword-only*." #: ../Doc/library/multiprocessing.rst:1394 msgid "" "Note that an array of :data:`ctypes.c_char` has *value* and *raw* attributes " "which allow one to use it to store and retrieve strings." msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères." #: ../Doc/library/multiprocessing.rst:1399 msgid "The :mod:`multiprocessing.sharedctypes` module" -msgstr "" +msgstr "Le module :mod:`multiprocessing.sharedctypes`" #: ../Doc/library/multiprocessing.rst:1404 msgid "" @@ -1572,6 +2194,9 @@ msgid "" "allocating :mod:`ctypes` objects from shared memory which can be inherited " "by child processes." msgstr "" +"Le module :mod:`multiprocessing.sharedctypes` fournit des fonctions pour " +"allouer des objets :mod:`ctypes` depuis la mémoire partagée, qui peuvent " +"être hérités par les processus fils." #: ../Doc/library/multiprocessing.rst:1410 msgid "" @@ -1581,10 +2206,15 @@ msgid "" "second process and trying to dereference the pointer from the second process " "may cause a crash." msgstr "" +"Bien qu'il soit possible de stocker un pointeur dans une mémoire partagée, " +"souvenez-vous qu'il référencera un emplacement dans l'espace d'adressage " +"d'un processus particulier. Ainsi, le pointeur risque d'être invalide dans " +"le contexte d'un second processus et déréférencer le pointeur depuis ce " +"second processus pourrait causer un crash." #: ../Doc/library/multiprocessing.rst:1418 msgid "Return a ctypes array allocated from shared memory." -msgstr "" +msgstr "Renvoie un tableau *ctypes* alloué depuis la mémoire partagée." #: ../Doc/library/multiprocessing.rst:1420 msgid "" @@ -1595,6 +2225,13 @@ msgid "" "zeroed. Otherwise *size_or_initializer* is a sequence which is used to " "initialize the array and whose length determines the length of the array." msgstr "" +"*typecode_or_type* détermine le type des éléments du tableau renvoyé : il " +"s'agit soit d'un type *ctype* soit d'un caractère codant le type des " +"éléments du tableau (*typecode*) tel qu'utilisé par le module :mod:`array`. " +"Si *size_or_initialize* est un entier, alors il détermine la taille du " +"tableau, et le tableau sera initialisé avec des zéros. Autrement, " +"*size*or_initializer* est une séquence qui sera utilisée pour initialiser le " +"tableau et dont la taille détermine celle du tableau." #: ../Doc/library/multiprocessing.rst:1427 msgid "" @@ -1602,10 +2239,13 @@ msgid "" "func:`Array` instead to make sure that access is automatically synchronized " "using a lock." msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Array` pour vous assurer de synchroniser " +"automatiquement avec un verrou." #: ../Doc/library/multiprocessing.rst:1433 msgid "Return a ctypes object allocated from shared memory." -msgstr "" +msgstr "Renvoie un objet *ctypes* alloué depuis la mémoire partagée." #: ../Doc/library/multiprocessing.rst:1439 msgid "" @@ -1613,6 +2253,9 @@ msgid "" "func:`Value` instead to make sure that access is automatically synchronized " "using a lock." msgstr "" +"Notez que définir ou récupérer un élément est potentiellement non atomique " +"-- utilisez plutôt :func:`Value` pour vous assurer de synchroniser " +"automatiquement avec un verrou." #: ../Doc/library/multiprocessing.rst:1443 msgid "" @@ -1620,6 +2263,9 @@ msgid "" "attributes which allow one to use it to store and retrieve strings -- see " "documentation for :mod:`ctypes`." msgstr "" +"Notez qu'un tableau de :data:`ctypes.c_char` a ses attributs *value* et " +"*raw* qui permettent de l'utiliser pour stocker et récupérer des chaînes de " +"caractères -- voir la documentation de :mod:`ctypes`." #: ../Doc/library/multiprocessing.rst:1449 msgid "" @@ -1627,6 +2273,9 @@ msgid "" "process-safe synchronization wrapper may be returned instead of a raw ctypes " "array." msgstr "" +"Identique à :func:`RawArray` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un tableau *ctypes* brut." #: ../Doc/library/multiprocessing.rst:1453 #: ../Doc/library/multiprocessing.rst:1469 @@ -1638,6 +2287,12 @@ msgid "" "returned object will not be automatically protected by a lock, so it will " "not necessarily be \"process-safe\"." msgstr "" +"Si *lock* vaut ``True`` (par défaut), alors un nouveau verrou est créé pour " +"synchroniser l'accès à la valeur. Si *lock* est un objet :class:" +"`~multiprocessing.Lock` ou :class:`~multiprocessing.RLock` alors il sera " +"utilisé pour synchroniser l'accès à la valeur. Si *lock* vaut ``False``, " +"l'accès à l'objet renvoyé ne sera pas automatiquement protégé par un verrou, " +"donc il ne sera pas forcément « *process-safe* »" #: ../Doc/library/multiprocessing.rst:1465 msgid "" @@ -1645,12 +2300,17 @@ msgid "" "process-safe synchronization wrapper may be returned instead of a raw ctypes " "object." msgstr "" +"Identique à :func:`RawValue` à l'exception que suivant la valeur de *lock* " +"un *wrapper* de synchronisation *process-safe* pourra être renvoyé à la " +"place d'un objet *ctypes* brut." #: ../Doc/library/multiprocessing.rst:1480 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." msgstr "" +"Renvoie un objet *ctypes* alloué depuis la mémoire partagée, qui est une " +"copie de l'objet *ctypes* *obj*." #: ../Doc/library/multiprocessing.rst:1485 msgid "" @@ -1658,6 +2318,9 @@ msgid "" "to synchronize access. If *lock* is ``None`` (the default) then a :class:" "`multiprocessing.RLock` object is created automatically." msgstr "" +"Renvoie un *wrapper* *process-safe* autour de l'objet *ctypes* qui utilise " +"*lock* pour synchroniser l'accès. Si *lock* est ``None`` (par défaut), un " +"objet :class:`multiprocessing.RLock` est créé automatiquement." #: ../Doc/library/multiprocessing.rst:1489 msgid "" @@ -1665,16 +2328,22 @@ msgid "" "object it wraps: :meth:`get_obj` returns the wrapped object and :meth:" "`get_lock` returns the lock object used for synchronization." msgstr "" +"Un *wrapper* synchronisé aura deux méthodes en plus de celles de l'objet " +"qu'il enveloppe : :meth:`get_obj` renvoie l'objet *wrappé* et :meth:" +"`get_lock` renvoie le verrou utilisé pour la synchronisation." #: ../Doc/library/multiprocessing.rst:1493 msgid "" "Note that accessing the ctypes object through the wrapper can be a lot " "slower than accessing the raw ctypes object." msgstr "" +"Notez qu'accéder à l'objet *ctypes* à travers le *wrapper* peut s'avérer " +"beaucoup plus lent qu'accéder directement à l'objet *ctypes* brut." #: ../Doc/library/multiprocessing.rst:1496 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" +"Les objets synchronisés supportent le protocole :term:`context manager`." #: ../Doc/library/multiprocessing.rst:1500 msgid "" @@ -1682,6 +2351,10 @@ msgid "" "shared memory with the normal ctypes syntax. (In the table ``MyStruct`` is " "some subclass of :class:`ctypes.Structure`.)" msgstr "" +"Le tableau ci-dessous compare la syntaxe de création des objets *ctypes* " +"partagés depuis une mémoire partagée avec la syntaxe normale *ctypes*. (Dans " +"le tableau, ``MyStruct`` est une sous-classe quelconque de :class:`ctypes." +"Structure`.)" #: ../Doc/library/multiprocessing.rst:1505 msgid "ctypes" @@ -1689,11 +2362,11 @@ msgstr "ctypes" #: ../Doc/library/multiprocessing.rst:1505 msgid "sharedctypes using type" -msgstr "" +msgstr "*sharedctypes* utilisant un type" #: ../Doc/library/multiprocessing.rst:1505 msgid "sharedctypes using typecode" -msgstr "" +msgstr "*sharedctypes* utilisant un *typecode*" #: ../Doc/library/multiprocessing.rst:1507 msgid "c_double(2.4)" @@ -1744,14 +2417,16 @@ msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" msgstr "" +"Ci-dessous un exemple où des objets *ctypes* sont modifiés par un processus " +"fils ::" #: ../Doc/library/multiprocessing.rst:1552 msgid "The results printed are ::" -msgstr "" +msgstr "Les résultats affichés sont ::" #: ../Doc/library/multiprocessing.rst:1565 msgid "Managers" -msgstr "" +msgstr "Gestionnaires" #: ../Doc/library/multiprocessing.rst:1567 msgid "" @@ -1761,6 +2436,12 @@ msgid "" "*shared objects*. Other processes can access the shared objects by using " "proxies." msgstr "" +"Les gestionnaires fournissent un moyen de créer des données qui peuvent être " +"partagées entre les différents processus, incluant le partage à travers le " +"réseau entre des processus tournant sur des machines différentes. Un objet " +"gestionnaire contrôle un processus serveur qui gère les *shared objects*. " +"Les autres processus peuvent accéder aux objets partagés à l'aide de " +"mandataires." #: ../Doc/library/multiprocessing.rst:1575 msgid "" @@ -1769,6 +2450,11 @@ msgid "" "manager object corresponds to a spawned child process and has methods which " "will create shared objects and return corresponding proxies." msgstr "" +"Renvoie un objet :class:`~multiprocessing.managers.SyncManager` démarré qui " +"peut être utilisé pour partager des objets entre les processus. L'objet " +"gestionnaire renvoyé correspond à un processus enfant instancié et possède " +"des méthodes pour créer des objets partagés et renvoyer les mandataires " +"correspondants." #: ../Doc/library/multiprocessing.rst:1583 msgid "" @@ -1776,10 +2462,13 @@ msgid "" "their parent process exits. The manager classes are defined in the :mod:" "`multiprocessing.managers` module:" msgstr "" +"Les processus gestionnaires seront arrêtés dès qu'ils seront collectés par " +"le ramasse-miettes ou que leur processus parent se terminera. Les classes " +"gestionnaires sont définies dans le module :mod:`multiprocessing.managers` :" #: ../Doc/library/multiprocessing.rst:1589 msgid "Create a BaseManager object." -msgstr "" +msgstr "Crée un objet *BaseManager*." #: ../Doc/library/multiprocessing.rst:1591 msgid "" @@ -1787,12 +2476,18 @@ msgid "" "serve_forever()`` to ensure that the manager object refers to a started " "manager process." msgstr "" +"Une fois créé il faut appeler :meth:`start` ou ``get_server()." +"serve_forever()`` pour assurer que l'objet gestionnaire référence un " +"processus gestionnaire démarré." #: ../Doc/library/multiprocessing.rst:1594 msgid "" "*address* is the address on which the manager process listens for new " "connections. If *address* is ``None`` then an arbitrary one is chosen." msgstr "" +"*address* est l'adresse sur laquelle le processus gestionnaire écoute pour " +"de nouvelles connexions. Si *address* est ``None``, une adresse arbitraire " +"est choisie." #: ../Doc/library/multiprocessing.rst:1597 msgid "" @@ -1801,12 +2496,19 @@ msgid "" "then ``current_process().authkey`` is used. Otherwise *authkey* is used and " "it must be a byte string." msgstr "" +"*authkey* est la clé d'authentification qui sera utilisée pour vérifier la " +"validité des connexions entrantes sur le processus serveur. Si *authkey* est " +"``None`` alors ``current_process().authkey`` est utilisée. Autrement " +"*authkey* est utilisée et doit être une chaîne d'octets." #: ../Doc/library/multiprocessing.rst:1604 msgid "" "Start a subprocess to start the manager. If *initializer* is not ``None`` " "then the subprocess will call ``initializer(*initargs)`` when it starts." msgstr "" +"Démarre un sous-processus pour démarrer le gestionnaire. Si *initializer* " +"n'est pas ``None`` alors le sous-processus appellera " +"``initializer(*initargs)`` quand il démarrera." #: ../Doc/library/multiprocessing.rst:1609 msgid "" @@ -1814,36 +2516,47 @@ msgid "" "the control of the Manager. The :class:`Server` object supports the :meth:" "`serve_forever` method::" msgstr "" +"Renvoie un objet :class:`Server` qui représente le serveur sous le contrôle " +"du gestionnaire. L'objet :class:`Server` supporte la méthode :meth:" +"`serve_forever` ::" #: ../Doc/library/multiprocessing.rst:1618 msgid ":class:`Server` additionally has an :attr:`address` attribute." -msgstr "" +msgstr ":class:`Server` possède en plus un attribut :attr:`address`." #: ../Doc/library/multiprocessing.rst:1622 msgid "Connect a local manager object to a remote manager process::" msgstr "" +"Connecte un objet gestionnaire local au processus gestionnaire distant ::" #: ../Doc/library/multiprocessing.rst:1630 msgid "" "Stop the process used by the manager. This is only available if :meth:" "`start` has been used to start the server process." msgstr "" +"Stoppe le processus utilisé par le gestionnaire. Cela est disponible " +"uniquement si :meth:`start` a été utilisée pour démarrer le processus " +"serveur." #: ../Doc/library/multiprocessing.rst:1633 msgid "This can be called multiple times." -msgstr "" +msgstr "Cette méthode peut être appelée plusieurs fois." #: ../Doc/library/multiprocessing.rst:1637 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." msgstr "" +"Une méthode de classe qui peut être utilisée pour enregistrer un type ou un " +"appelable avec la classe gestionnaire." #: ../Doc/library/multiprocessing.rst:1640 msgid "" "*typeid* is a \"type identifier\" which is used to identify a particular " "type of shared object. This must be a string." msgstr "" +"*typeif* est un « *type identifier* » qui est utilisé pour identifier un " +"type particulier d'objet partagé. Cela doit être une chaîne de caractères." #: ../Doc/library/multiprocessing.rst:1643 msgid "" @@ -1852,6 +2565,11 @@ msgid "" "the :meth:`connect` method, or if the *create_method* argument is ``False`` " "then this can be left as ``None``." msgstr "" +"*callable* est un objet appelable utilisé pour créer les objets avec cet " +"identifiant de type. Si une instance de gestionnaire prévoit de se connecter " +"au serveur en utilisant sa méthode :meth:`connect` ou si l'argument " +"*create_method* vaut ``False`` alors cet argument peut être laissé à " +"``None``." #: ../Doc/library/multiprocessing.rst:1649 msgid "" @@ -1859,6 +2577,9 @@ msgid "" "proxies for shared objects with this *typeid*. If ``None`` then a proxy " "class is created automatically." msgstr "" +"*proxytype* est une sous-classe de :class:`BaseProxy` utilisée pour créer " +"des mandataires autour des objets partagés avec ce *typeid*. S'il est " +"``None``, une classe mandataire sera créée automatiquement." #: ../Doc/library/multiprocessing.rst:1653 msgid "" @@ -1870,6 +2591,14 @@ msgid "" "\"public method\" means any attribute which has a :meth:`~object.__call__` " "method and whose name does not begin with ``'_'``.)" msgstr "" +"*exposed* est utilisé pour préciser une séquence de noms de méthodes dont " +"les mandataires pour ce *typeid* doivent être autorisés à accéder via :meth:" +"`BaseProxy._callmethod`. (Si *exposed* est ``None`` alors :attr:`proxytype." +"_exposed_` est utilisé à la place s'il existe.) Dans le cas où aucune liste " +"*exposed* n'est précisée, toutes les « méthodes publiques » de l'objet " +"partagé seront accessibles. (Ici une « méthode publique » signifie n'importe " +"quel attribut qui possède une méthode :meth:`~object.__call__` et dont le " +"nom ne commence pas par un ``'_'``.)" #: ../Doc/library/multiprocessing.rst:1662 msgid "" @@ -1880,6 +2609,13 @@ msgid "" "not a key of this mapping or if the mapping is ``None`` then the object " "returned by the method will be copied by value." msgstr "" +"*method_to_typeid* est un tableau associatif utilisé pour préciser le type " +"de retour de ces méthodes exposées qui doivent renvoyer un mandataire. Il " +"associé un nom de méthode à une chaîne de caractères *typeid*. (Si " +"*method_to_typeid* est ``None``, :attr:`proxytype._method_to_typeid_` est " +"utilisé à la place s'il existe). Si le nom d'une méthode n'est pas une clé " +"de ce tableau associatif ou si la valeur associée est ``None``, l'objet " +"renvoyé par la méthode sera une copie de la valeur." #: ../Doc/library/multiprocessing.rst:1669 msgid "" @@ -1887,14 +2623,20 @@ msgid "" "*typeid* which can be used to tell the server process to create a new shared " "object and return a proxy for it. By default it is ``True``." msgstr "" +"*create_method* détermine si une méthode devrait être créée avec le nom " +"*typeid*, qui peut être utilisée pour indiquer au processus serveur de créer " +"un nouvel objet partagé et d'en renvoyer un mandataire. a valeur par défaut " +"est ``True``." #: ../Doc/library/multiprocessing.rst:1673 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" +"Les instances de :class:`BaseManager` ont aussi une propriété en lecture " +"seule :" #: ../Doc/library/multiprocessing.rst:1677 msgid "The address used by the manager." -msgstr "" +msgstr "L'adresse utilisée par le gestionnaire." #: ../Doc/library/multiprocessing.rst:1679 msgid "" @@ -1903,12 +2645,19 @@ msgid "" "process (if it has not already started) and then returns the manager " "object. :meth:`~contextmanager.__exit__` calls :meth:`shutdown`." msgstr "" +"Les objets gestionnaires supportent le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` démarre le processus serveur (s'il n'a pas déjà été démarré) et " +"renvoie l'objet gestionnaire. :meth:`~contextmanager.__exit__` appelle :meth:" +"`shutdown`." #: ../Doc/library/multiprocessing.rst:1685 msgid "" "In previous versions :meth:`~contextmanager.__enter__` did not start the " "manager's server process if it was not already started." msgstr "" +"Dans les versions précédentes :meth:`~contextmanager.__enter__` ne démarrait " +"pas le processus serveur du gestionnaire s'il n'était pas déjà démarré." #: ../Doc/library/multiprocessing.rst:1690 msgid "" @@ -1916,6 +2665,9 @@ msgid "" "of processes. Objects of this type are returned by :func:`multiprocessing." "Manager`." msgstr "" +"Une sous-classe de :class:`BaseManager` qui peut être utilisée pour la " +"synchronisation entre processus. Des objets de ce type sont renvoyés par :" +"func:`multiprocessing.Manager`." #: ../Doc/library/multiprocessing.rst:1694 msgid "" @@ -1923,76 +2675,104 @@ msgid "" "number of commonly used data types to be synchronized across processes. This " "notably includes shared lists and dictionaries." msgstr "" +"Ces méthodes créent et renvoient des :ref:`multiprocessing-proxy_objects` " +"pour un certain nombre de types de données communément utilisés pour être " +"synchronisés entre les processus. Elles incluent notamment des listes et " +"dictionnaires partagés." #: ../Doc/library/multiprocessing.rst:1700 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Barrier` partagé et renvoie un mandataire " +"pour cet objet." #: ../Doc/library/multiprocessing.rst:1707 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." msgstr "" +"Crée un objet :class:`threading.BoundedSemaphore` partagé et renvoie un " +"mandataire pour cet objet." #: ../Doc/library/multiprocessing.rst:1712 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." msgstr "" +"Crée un objet :class:`threading.Condition` partagé et renvoie un mandataire " +"pour cet objet." #: ../Doc/library/multiprocessing.rst:1715 msgid "" "If *lock* is supplied then it should be a proxy for a :class:`threading." "Lock` or :class:`threading.RLock` object." msgstr "" +"Si *lock* est fourni alors il doit être un mandataire pour un objet :class:" +"`threading.Lock` ou :class:`threading.RLock`." #: ../Doc/library/multiprocessing.rst:1723 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Event` partagé et renvoie un mandataire pour " +"cet objet." #: ../Doc/library/multiprocessing.rst:1727 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.Lock` partagé et renvoie un mandataire pour " +"cet objet." #: ../Doc/library/multiprocessing.rst:1731 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" +"Crée un objet :class:`Namespace` partagé et renvoie un mandataire pour cet " +"objet." #: ../Doc/library/multiprocessing.rst:1735 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" +"Crée un objet :class:`queue.Queue` partagé et renvoie un mandataire pour cet " +"objet." #: ../Doc/library/multiprocessing.rst:1739 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" +"Crée un objet :class:`threading.RLock` partagé et renvoie un mandataire pour " +"cet objet." #: ../Doc/library/multiprocessing.rst:1743 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." msgstr "" +"Crée un objet :class:`threading.Semaphore` partagé et renvoie un mandataire " +"pour cet objet." #: ../Doc/library/multiprocessing.rst:1748 msgid "Create an array and return a proxy for it." -msgstr "" +msgstr "Crée un tableau et renvoie un mandataire pour cet objet." #: ../Doc/library/multiprocessing.rst:1752 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." msgstr "" +"Crée un objet avec un attribut ``value`` accessible en écriture et renvoie " +"un mandataire pour cet objet." #: ../Doc/library/multiprocessing.rst:1759 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "" +"Crée un objet :class:`dict` partagé et renvoie un mandataire pour cet objet." #: ../Doc/library/multiprocessing.rst:1764 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "" +"Crée un objet :class:`list` partagé et renvoie un mandataire pour cet objet." #: ../Doc/library/multiprocessing.rst:1766 msgid "" @@ -2000,16 +2780,22 @@ msgid "" "object such as a shared list can contain other shared objects which will all " "be managed and synchronized by the :class:`SyncManager`." msgstr "" +"Les objets partagés peuvent être imbriqués. Par exemple, un conteneur " +"partagé tel qu'une liste partagée peu contenir d'autres objets partagés qui " +"seront aussi gérés et synchronisés par le :class:`SyncManager`." #: ../Doc/library/multiprocessing.rst:1773 msgid "A type that can register with :class:`SyncManager`." -msgstr "" +msgstr "Un type qui peut être enregistré avec :class:`SyncManager`." #: ../Doc/library/multiprocessing.rst:1775 msgid "" "A namespace object has no public methods, but does have writable attributes. " "Its representation shows the values of its attributes." msgstr "" +"Un espace de nommage n'a pas de méthodes publiques, mais possède des " +"attributs accessibles en écriture. Sa représentation montre les valeurs de " +"ses attributs." #: ../Doc/library/multiprocessing.rst:1778 msgid "" @@ -2017,10 +2803,12 @@ msgid "" "with ``'_'`` will be an attribute of the proxy and not an attribute of the " "referent:" msgstr "" +"Cependant, en utilisant un mandataire pour un espace de nommage, un attribut " +"débutant par ``'_'`` est un attribut du mandataire et non de l'objet cible :" #: ../Doc/library/multiprocessing.rst:1794 msgid "Customized managers" -msgstr "" +msgstr "Gestionnaires personnalisés" #: ../Doc/library/multiprocessing.rst:1796 msgid "" @@ -2028,40 +2816,51 @@ msgid "" "and uses the :meth:`~BaseManager.register` classmethod to register new types " "or callables with the manager class. For example::" msgstr "" +"Pour créer son propre gestionnaire, il faut créer une sous-classe de :class:" +"`BaseManager` et utiliser la méthode de classe :meth:`~BaseManager.register` " +"pour enregistrer de nouveaux types ou *callables* au gestionnaire. Par " +"exemple ::" #: ../Doc/library/multiprocessing.rst:1821 msgid "Using a remote manager" -msgstr "" +msgstr "Utiliser un gestionnaire distant" #: ../Doc/library/multiprocessing.rst:1823 msgid "" "It is possible to run a manager server on one machine and have clients use " "it from other machines (assuming that the firewalls involved allow it)." msgstr "" +"Il est possible de lancer un serveur gestionnaire sur une machine et d'avoir " +"des clients l'utilisant sur d'autres machines (en supposant que les pare-" +"feus impliqués l'autorisent)." #: ../Doc/library/multiprocessing.rst:1826 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" msgstr "" +"Exécuter les commandes suivantes crée un serveur pour une simple queue " +"partagée à laquelle des clients distants peuvent accéder ::" #: ../Doc/library/multiprocessing.rst:1838 msgid "One client can access the server as follows::" -msgstr "" +msgstr "Un client peut accéder au serveur comme suit ::" #: ../Doc/library/multiprocessing.rst:1848 msgid "Another client can also use it::" -msgstr "" +msgstr "Un autre client peut aussi l'utiliser ::" #: ../Doc/library/multiprocessing.rst:1859 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" msgstr "" +"Les processus locaux peuvent aussi accéder à cette queue, utilisant le code " +"précédent sur le client pour y accéder à distance ::" #: ../Doc/library/multiprocessing.rst:1884 msgid "Proxy Objects" -msgstr "" +msgstr "Objets mandataires" #: ../Doc/library/multiprocessing.rst:1886 msgid "" @@ -2069,6 +2868,10 @@ msgid "" "(presumably) in a different process. The shared object is said to be the " "*referent* of the proxy. Multiple proxy objects may have the same referent." msgstr "" +"Un mandataire est un objet qui *référence* un objet partagé appartenant " +"(supposément) à un processus différent. L'objet partagé est appelé le " +"*référent* du mandataire. Plusieurs mandataires peuvent avoir un même " +"référent." #: ../Doc/library/multiprocessing.rst:1890 msgid "" @@ -2077,6 +2880,10 @@ msgid "" "available through the proxy). In this way, a proxy can be used just like " "its referent can:" msgstr "" +"Un mandataire possède des méthodes qui appellent les méthodes " +"correspondantes du référent (bien que toutes les méthodes du référent ne " +"soient pas nécessairement accessibles à travers le mandataire). De cette " +"manière, un mandataire peut être utilisé comme le serait sont référent :" #: ../Doc/library/multiprocessing.rst:1908 msgid "" @@ -2084,6 +2891,8 @@ msgid "" "of the referent, whereas applying :func:`repr` will return the " "representation of the proxy." msgstr "" +"Notez qu'appliquer :func:`str` à un mandataire renvoie la représentation du " +"référent, alors que :func:`repr` renvoie celle du mandataire." #: ../Doc/library/multiprocessing.rst:1912 msgid "" @@ -2092,10 +2901,17 @@ msgid "" "`multiprocessing-proxy_objects`. This permits nesting of these managed " "lists, dicts, and other :ref:`multiprocessing-proxy_objects`:" msgstr "" +"Une fonctionnalité importantes des objets mandataires est qu'ils sont " +"sérialisables et peuvent donc être échangés entre les processus. Ainsi, un " +"référent peut contenir des :ref:`multiprocessing-proxy_objects`. Cela permet " +"d'imbriquer des listes et dictionnaires gérés ainsi que d'autres :ref:" +"`multiprocessing-proxy_objects` :" #: ../Doc/library/multiprocessing.rst:1928 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" +"De même, les mandataires de listes et dictionnaires peuvent être imbriqués " +"dans d'autres ::" #: ../Doc/library/multiprocessing.rst:1941 msgid "" @@ -2107,6 +2923,14 @@ msgid "" "through the manager and so to effectively modify such an item, one could re-" "assign the modified value to the container proxy::" msgstr "" +"Si des objets standards (non *proxyfiés*) :class:`list` ou :class:`dict` " +"sont contenus dans un référent, les modifications sur ces valeurs mutables " +"ne seront pas propagées à travers le gestionnaire parce que le mandataire " +"n'a aucun moyen de savoir quand les valeurs contenues sont modifiées. " +"Cependant, stocker une valeur dans un conteneur mandataire (qui déclenche un " +"appel à ``__setitem__`` sur le mandataire) propage bien la modification à " +"travers le gestionnaire et modifie effectivement l'élément, il est ainsi " +"possible de réassigner la valeur modifiée au conteneur mandataire ::" #: ../Doc/library/multiprocessing.rst:1960 msgid "" @@ -2114,38 +2938,51 @@ msgid "" "`multiprocessing-proxy_objects` for most use cases but also demonstrates a " "level of control over the synchronization." msgstr "" +"Cette approche est peut-être moins pratique que d'utiliser des :ref:" +"`multiprocessing-proxy_objects` imbriqués pour la majorité des cas " +"d'utilisation, mais démontre aussi un certain niveau de contrôle sur la " +"synchronisation." #: ../Doc/library/multiprocessing.rst:1966 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" msgstr "" +"Les types de mandataires de :mod:`multiprocessing` n'implémentent rien pour " +"la comparaison par valeurs. Par exemple, on a :" #: ../Doc/library/multiprocessing.rst:1974 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" +"Il faut à la place simplement utiliser une copie du référent pour faire les " +"comparaisons." #: ../Doc/library/multiprocessing.rst:1978 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "" +"Les objets mandataires sont des instances de sous-classes de :class:" +"`BaseProxy`." #: ../Doc/library/multiprocessing.rst:1982 msgid "Call and return the result of a method of the proxy's referent." msgstr "" +"Appelle et renvoie le résultat d'une méthode du référent du mandataire." #: ../Doc/library/multiprocessing.rst:1984 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" +"Si ``proxy`` est un mandataire sont le référent est ``obj``, alors " +"l'expression ::" #: ../Doc/library/multiprocessing.rst:1988 msgid "will evaluate the expression ::" -msgstr "" +msgstr "s'évalue comme ::" #: ../Doc/library/multiprocessing.rst:1992 msgid "in the manager's process." -msgstr "" +msgstr "dans le processus du gestionnaire." #: ../Doc/library/multiprocessing.rst:1994 msgid "" @@ -2153,6 +2990,9 @@ msgid "" "new shared object -- see documentation for the *method_to_typeid* argument " "of :meth:`BaseManager.register`." msgstr "" +"La valeur renvoyée sera une copie du résultat de l'appel ou un mandataire " +"sur un nouvel objet partagé -- voir l'a documentation de l'argument " +"*method_to_typeid* de :meth:`BaseManager.register`." #: ../Doc/library/multiprocessing.rst:1998 msgid "" @@ -2161,58 +3001,71 @@ msgid "" "then this is converted into a :exc:`RemoteError` exception and is raised by :" "meth:`_callmethod`." msgstr "" +"Si une exception est levée par l'appel, elle est relayée par :meth:" +"`_callmethod`. Si une autre exception est levée par le processus du " +"gestionnaire, elle est convertie en une :exc:`RemoteError` et est levée par :" +"meth:`_callmethod`." #: ../Doc/library/multiprocessing.rst:2003 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." msgstr "" +"Notez en particulier qu'une exception est levée si *methodname* n'est pas " +"*exposée*." #: ../Doc/library/multiprocessing.rst:2006 msgid "An example of the usage of :meth:`_callmethod`:" -msgstr "" +msgstr "Un exemple d'utilisation de :meth:`_callmethod` :" #: ../Doc/library/multiprocessing.rst:2022 msgid "Return a copy of the referent." -msgstr "" +msgstr "Renvoie une copie du référent." #: ../Doc/library/multiprocessing.rst:2024 msgid "If the referent is unpicklable then this will raise an exception." -msgstr "" +msgstr "Si le référent n'est pas sérialisable, une exception est levée." #: ../Doc/library/multiprocessing.rst:2028 msgid "Return a representation of the proxy object." -msgstr "" +msgstr "Renvoie la représentation de l'objet mandataire." #: ../Doc/library/multiprocessing.rst:2032 msgid "Return the representation of the referent." -msgstr "" +msgstr "Renvoie la représentation du référent." #: ../Doc/library/multiprocessing.rst:2036 msgid "Cleanup" -msgstr "" +msgstr "Nettoyage" #: ../Doc/library/multiprocessing.rst:2038 msgid "" "A proxy object uses a weakref callback so that when it gets garbage " "collected it deregisters itself from the manager which owns its referent." msgstr "" +"Un mandataire utilise un *callback* sous une référence faible de façon à ce " +"que quand il est collecté par le ramasse-miettes, il se désenregistre auprès " +"du gestionnaire qui possède le référent." #: ../Doc/library/multiprocessing.rst:2041 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." msgstr "" +"Un objet partagé est supprimé par le processus gestionnaire quand plus aucun " +"mandataire ne le référence." #: ../Doc/library/multiprocessing.rst:2046 msgid "Process Pools" -msgstr "" +msgstr "Bassins de processus" #: ../Doc/library/multiprocessing.rst:2051 msgid "" "One can create a pool of processes which will carry out tasks submitted to " "it with the :class:`Pool` class." msgstr "" +"On peut créer un bassin de processus qui exécuteront les tâches qui lui " +"seront soumises avec la classe :class:`Pool`." #: ../Doc/library/multiprocessing.rst:2056 msgid "" @@ -2220,18 +3073,26 @@ msgid "" "jobs can be submitted. It supports asynchronous results with timeouts and " "callbacks and has a parallel map implementation." msgstr "" +"Un objet *process pool* qui contrôle un bassin de processus *workers* auquel " +"sont soumises des tâches. Il supporte les résultats asynchrones avec des " +"*timeouts* et des *callabacks* et possède une implémentation parallèle de " +"*map*." #: ../Doc/library/multiprocessing.rst:2060 msgid "" "*processes* is the number of worker processes to use. If *processes* is " "``None`` then the number returned by :func:`os.cpu_count` is used." msgstr "" +"*processes* est le nombre de processus *workers* à utiliser. Si *processes* " +"est ``None``, le nombre renvoyé par :func:`os.cpu_count` est utilisé." #: ../Doc/library/multiprocessing.rst:2063 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." msgstr "" +"Si *initializer* n'est pas ``None``, chaque processus *worker* appellera " +"``initializer(*initargs)`` en démarrant." #: ../Doc/library/multiprocessing.rst:2066 msgid "" @@ -2240,6 +3101,11 @@ msgid "" "unused resources to be freed. The default *maxtasksperchild* is ``None``, " "which means worker processes will live as long as the pool." msgstr "" +"*maxtasksperchild* est le nombre de tâches qu'un processus *worker* peut " +"accomplir avant de se fermer et d'être remplacé par un *worker* frais, pour " +"permettre aux ressources inutilisées d'être libérées. Par défaut " +"*maxtasksperchild* est ``None``, ce qui signifie que le *worker* vit aussi " +"longtemps que le bassin." #: ../Doc/library/multiprocessing.rst:2071 msgid "" @@ -2248,16 +3114,22 @@ msgid "" "`multiprocessing.Pool` or the :meth:`Pool` method of a context object. In " "both cases *context* is set appropriately." msgstr "" +"*context* peut être utilisé pour préciser le contexte utilisé pour démarrer " +"les processus *workers*. Habituellement un bassin est créé à l'aide de la " +"fonction :func:`multiprocessing.Pool` ou de la méthode :meth:`Pool` d'un " +"objet de contexte. Dans les deux cas *context* est réglé de façon appropriée." #: ../Doc/library/multiprocessing.rst:2077 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." msgstr "" +"Notez que les méthodes de l'objet *pool* ne doivent être appelées que par le " +"processus qui l'a créé." #: ../Doc/library/multiprocessing.rst:2080 msgid "*maxtasksperchild*" -msgstr "" +msgstr "*maxtasksperchild*" #: ../Doc/library/multiprocessing.rst:2083 msgid "*context*" @@ -2273,6 +3145,14 @@ msgid "" "one. The *maxtasksperchild* argument to the :class:`Pool` exposes this " "ability to the end user." msgstr "" +"Les processus *workers* à l'intérieur d'une :class:`Pool` vivent par défaut " +"aussi longtemps que la queue de travail du bassin. Un modèle fréquent chez " +"d'autres systèmes (tels qu'Apache, *mod_wsgi*, etc.) pour libérer les " +"ressources détenues par les *workers* est d'autoriser un *worker* dans le " +"bassin à accomplir seulement une certaine charge de travail avant de se " +"fermer, se retrouvant nettoyé et remplacé par un nouvelle processus " +"fraîchement lancé. L'argument *maxtasksperchild* de :class:`Pool` expose " +"cette fonctionnalité à l'utilisateur final." #: ../Doc/library/multiprocessing.rst:2098 msgid "" @@ -2281,10 +3161,15 @@ msgid "" "suited for performing work in parallel. Additionally, *func* is only " "executed in one of the workers of the pool." msgstr "" +"Appelle *func* avec les arguments *args* et les arguments nommés *kwds*. " +"Bloque jusqu'à ce que que le résultat soit prêt. En raison de ce blocage, :" +"meth:`apply_async` est préférable pour exécuter du travail en parallèle. De " +"plus, *func* est exécutée sur un seul des *workers* du bassin." #: ../Doc/library/multiprocessing.rst:2105 msgid "A variant of the :meth:`apply` method which returns a result object." msgstr "" +"Une variante de la méthode :meth:`apply` qui renvoie un objet résultat." #: ../Doc/library/multiprocessing.rst:2107 #: ../Doc/library/multiprocessing.rst:2132 @@ -2294,6 +3179,10 @@ msgid "" "that is unless the call failed, in which case the *error_callback* is " "applied instead." msgstr "" +"Si *callback* est précisé alors ce doit être un objet appelable qui accepte " +"un seul argument. Quand le résultat est prêt, *callback* est appelé avec ce " +"résultat, si l'appel n'échoue pas auquel cas *error_callback* est appelé à " +"la place." #: ../Doc/library/multiprocessing.rst:2112 #: ../Doc/library/multiprocessing.rst:2137 @@ -2302,6 +3191,9 @@ msgid "" "a single argument. If the target function fails, then the *error_callback* " "is called with the exception instance." msgstr "" +"Si *error_callback* est précisé alors ce doit être un objet appelable qui " +"accepte un seul argument. Si la fonction cible échoue, alors " +"*error_callback* est appelé avec l'instance de l'exception." #: ../Doc/library/multiprocessing.rst:2116 #: ../Doc/library/multiprocessing.rst:2141 @@ -2309,12 +3201,17 @@ msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." msgstr "" +"Les *callbacks* doivent se terminer immédiatement, autrement le fil " +"d'exécution qui gère les résultats se retrouverait bloqué." #: ../Doc/library/multiprocessing.rst:2121 msgid "" "A parallel equivalent of the :func:`map` built-in function (it supports only " "one *iterable* argument though). It blocks until the result is ready." msgstr "" +"Un équivalent parallèle à la fonction *built-in* :func:`map` (qui ne " +"supporte cependant qu'un *itérable* en argument). Elle bloque jusqu'à ce que " +"le résultat soit prêt." #: ../Doc/library/multiprocessing.rst:2124 msgid "" @@ -2322,10 +3219,13 @@ msgid "" "the process pool as separate tasks. The (approximate) size of these chunks " "can be specified by setting *chunksize* to a positive integer." msgstr "" +"La méthode découpe l'itérable en un nombre de morceaux qu'elle envoie au " +"bassin de processus comme des tâches séparées. La taille (approximative) de " +"ces morceaux peut être précisée en passant à *chunksize* un entier positif." #: ../Doc/library/multiprocessing.rst:2130 msgid "A variant of the :meth:`.map` method which returns a result object." -msgstr "" +msgstr "Une variante de la méthode :meth:`.map` qui renvoie un objet résultat." #: ../Doc/library/multiprocessing.rst:2146 msgid "A lazier version of :meth:`map`." @@ -2337,6 +3237,10 @@ msgid "" "method. For very long iterables using a large value for *chunksize* can " "make the job complete **much** faster than using the default value of ``1``." msgstr "" +"L'argument *chunksize* est le même que celui utilisé par la méthode :meth:`." +"map`. Pour de très longs itérables, utiliser une grande valeur pour " +"*chunksize* peut faire s'exécuter la tâche **beaucoup** plus rapidement " +"qu'en utilisant la valeur par défaut de ``1``." #: ../Doc/library/multiprocessing.rst:2153 msgid "" @@ -2345,6 +3249,10 @@ msgid "" "``next(timeout)`` will raise :exc:`multiprocessing.TimeoutError` if the " "result cannot be returned within *timeout* seconds." msgstr "" +"Aussi, si *chucksize* vaut ``1`` alors la méthode :meth:`!next` de " +"l'itérateur renvoyé par :meth:`imap` prend un paramètre optionnel " +"*timeout* : ``next(timeout)`` lève une :exc:`multiprocessing.TimeoutError` " +"si le résultat ne peut pas être renvoyé avant *timeout* secondes." #: ../Doc/library/multiprocessing.rst:2160 msgid "" @@ -2352,18 +3260,25 @@ msgid "" "returned iterator should be considered arbitrary. (Only when there is only " "one worker process is the order guaranteed to be \"correct\".)" msgstr "" +"Identique à :meth:`imap` si ce n'est que l'ordre des résultats de " +"l'itérateur renvoyé doit être considéré comme arbitraire. (L'ordre n'est " +"garanti que quand il n'y a qu'un *worker*.)" #: ../Doc/library/multiprocessing.rst:2166 msgid "" "Like :meth:`map` except that the elements of the *iterable* are expected to " "be iterables that are unpacked as arguments." msgstr "" +"Semblable à :meth:`map` à l'exception que les éléments d'*iterable* doivent " +"être des itérables qui seront dépaquetés comme arguments pour la fonction." #: ../Doc/library/multiprocessing.rst:2169 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." msgstr "" +"Par conséquent un *iterable* ``[(1,2), (3, 4)]`` donnera pour résultat " +"``[func(1,2), func(3,4)]``." #: ../Doc/library/multiprocessing.rst:2176 msgid "" @@ -2371,12 +3286,17 @@ msgid "" "*iterable* of iterables and calls *func* with the iterables unpacked. " "Returns a result object." msgstr "" +"Une combinaison de :meth:`starmap` et :meth:`map_async` qui itère sur " +"*iterable* (composé d'itérables) et appelle *func* pour chaque itérable " +"dépaqueté. Renvoie l'objet résultat." #: ../Doc/library/multiprocessing.rst:2184 msgid "" "Prevents any more tasks from being submitted to the pool. Once all the " "tasks have been completed the worker processes will exit." msgstr "" +"Empêche de nouvelles tâches d'être envoyées à la *pool*. Les processus " +"*workers* se terminent une fois que toutes les tâches ont été complétées." #: ../Doc/library/multiprocessing.rst:2189 msgid "" @@ -2384,12 +3304,17 @@ msgid "" "When the pool object is garbage collected :meth:`terminate` will be called " "immediately." msgstr "" +"Stoppe immédiatement les processus *workers* sans finaliser les travaux " +"courants. Quand l'objet *pool* est collecté par le ramasse-miettes, sa " +"méthode :meth:`terminate` est appelée immédiatement." #: ../Doc/library/multiprocessing.rst:2195 msgid "" "Wait for the worker processes to exit. One must call :meth:`close` or :meth:" "`terminate` before using :meth:`join`." msgstr "" +"Attend que les processus *workers* se terminent. Il est nécessaire " +"d'appeler :meth:`close` ou :meth:`terminate` avant d'utiliser :meth:`join`." #: ../Doc/library/multiprocessing.rst:2198 msgid "" @@ -2397,12 +3322,18 @@ msgid "" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the pool " "object, and :meth:`~contextmanager.__exit__` calls :meth:`terminate`." msgstr "" +"Les bassins de *workers* supportent maintenant le protocole des " +"gestionnaires de contexte -- voir :ref:`typecontextmanager`. :meth:" +"`~contextmanager.__enter__` renvoie l'objet *pool* et :meth:`~contextmanager." +"__exit__` appelle :meth:`terminate`." #: ../Doc/library/multiprocessing.rst:2206 msgid "" "The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." "map_async`." msgstr "" +"La classe des résultats renvoyés par :meth:`Pool.apply_async` et :meth:`Pool." +"map_async`." #: ../Doc/library/multiprocessing.rst:2211 msgid "" @@ -2411,34 +3342,45 @@ msgid "" "TimeoutError` is raised. If the remote call raised an exception then that " "exception will be reraised by :meth:`get`." msgstr "" +"Renvoie le résultat quand il arrive. Si *timeout* n'est pas ``None`` et que " +"le résultat n'arrive pas avant *timeout* secondes, une :exc:`multiprocessing." +"TimeoutError` est levée. Si l'appel distance lève une exception, alors elle " +"est relayée par :meth:`get`." #: ../Doc/library/multiprocessing.rst:2218 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" +"Attend que le résultat soit disponible ou que *timeout* secondes s'écoulent." #: ../Doc/library/multiprocessing.rst:2222 msgid "Return whether the call has completed." -msgstr "" +msgstr "Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie." #: ../Doc/library/multiprocessing.rst:2226 msgid "" "Return whether the call completed without raising an exception. Will raise :" "exc:`AssertionError` if the result is not ready." msgstr "" +"Renvoie ``True`` ou ``False`` suivant si la tâche est accomplie sans lever " +"d'exception. Lève une :exc:`AssertionError` si le résultat n'est pas prêt." #: ../Doc/library/multiprocessing.rst:2229 msgid "The following example demonstrates the use of a pool::" msgstr "" +"Les exemples suivants présentent l'utilisation d'un bassin de *workers* ::" #: ../Doc/library/multiprocessing.rst:2256 msgid "Listeners and Clients" -msgstr "" +msgstr "Auditeurs et Clients" #: ../Doc/library/multiprocessing.rst:2261 msgid "" "Usually message passing between processes is done using queues or by using :" "class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." msgstr "" +"Habituellement l'échange de messages entre processus est réalisé en " +"utilisant des queues ou des objets :class:`~Connection` renvoyés par :func:" +"`~multiprocessing.Pipe`." #: ../Doc/library/multiprocessing.rst:2265 msgid "" @@ -2448,12 +3390,19 @@ msgid "" "*digest authentication* using the :mod:`hmac` module, and for polling " "multiple connections at the same time." msgstr "" +"Cependant, le module :mod:`multiprocessing.connection` permet un peu plus de " +"flexibilité. Il fournit un message de plus haut-niveau orienté API pour " +"traiter des *sockets* ou des tubes nommés sous Windows. Il supporte aussi la " +"*digest authentication* en utilisant le module :mod:`hmac`, et pour " +"interroger de multiples connexions en même temps." #: ../Doc/library/multiprocessing.rst:2274 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." msgstr "" +"Envoie un message généré aléatoirement à l'autre bout de la connexion et " +"attend une réponse." #: ../Doc/library/multiprocessing.rst:2277 msgid "" @@ -2461,24 +3410,33 @@ msgid "" "then a welcome message is sent to the other end of the connection. " "Otherwise :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" +"Si la réponse correspond au condensat du message avec la clé *authkey*, " +"alors un message de bienvenue est envoyé à l'autre bout de la connexion. " +"Autrement, une :exc:`~multiprocessing.AuthenticationError` est levée." #: ../Doc/library/multiprocessing.rst:2283 msgid "" "Receive a message, calculate the digest of the message using *authkey* as " "the key, and then send the digest back." msgstr "" +"Reçoit un message, calcule le condensat du message en utilisant la clé " +"*authkey*, et envoie le condensat en réponse." #: ../Doc/library/multiprocessing.rst:2286 msgid "" "If a welcome message is not received, then :exc:`~multiprocessing." "AuthenticationError` is raised." msgstr "" +"Si un message de bienvenue n'est pas reçu, une :exc:`~multiprocessing." +"AuthenticationError` est levée." #: ../Doc/library/multiprocessing.rst:2291 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." msgstr "" +"Essaie d'établir une connexion avec l'auditeur qui utilise l'adresse " +"*address*, renvoie une :class:`~Connection`." #: ../Doc/library/multiprocessing.rst:2294 msgid "" @@ -2486,6 +3444,9 @@ msgid "" "generally be omitted since it can usually be inferred from the format of " "*address*. (See :ref:`multiprocessing-address-formats`)" msgstr "" +"Le type de la connexion est déterminé par l'argument *family*, mais il peut " +"généralement être omis puisqu'il peut être inféré depuis le format " +"d'*address*. (Voir :ref:`multiprocessing-address-formats`)" #: ../Doc/library/multiprocessing.rst:2298 #: ../Doc/library/multiprocessing.rst:2333 @@ -2496,18 +3457,27 @@ msgid "" "AuthenticationError` is raised if authentication fails. See :ref:" "`multiprocessing-auth-keys`." msgstr "" +"Si *authkey* est passée et n'est pas ``None``, elle doit être une chaîne " +"d'octets et sera utilisée comme clé secrète pour le défi d'authentification " +"basé sur HMAC. Aucune authentification n'est réalisée si *authkey* est " +"``None``. Une :exc:`~multiprocessing.AuthenticationError` est levée si " +"l'authentification échoue. Voir :ref:`multiprocessing-auth-keys`." #: ../Doc/library/multiprocessing.rst:2306 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" +"Un *wrapper* sur une *socket* liée ou un tube nommé sous Windows qui écoute " +"pour des connexions." #: ../Doc/library/multiprocessing.rst:2309 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" +"*address* est l'adresse à utiliser par la *socket* liée ou le tube nommé de " +"l'objet auditeur." #: ../Doc/library/multiprocessing.rst:2314 msgid "" @@ -2515,6 +3485,9 @@ msgid "" "end point on Windows. If you require a connectable end-point, you should use " "'127.0.0.1'." msgstr "" +"Si une adresse '0.0.0.0' est utilisée, l'adresse ne sera pas un point " +"d'accès connectable sous Windows. Si vous avez besoin d'un point d'accès " +"connectable, utilisez '127.0.0.1'." #: ../Doc/library/multiprocessing.rst:2318 msgid "" @@ -2529,6 +3502,16 @@ msgid "" "then the socket will be created in a private temporary directory created " "using :func:`tempfile.mkstemp`." msgstr "" +"*family* est le type de *socket* (ou tube nommé) à utiliser. Cela peut être " +"l'une des chaînes ``'AF_INET'`` (pour une *socket* TCP), ``'AF_UNIX'`` (pour " +"une *socket* Unix) ou ``'AF_PIPE'`` (pour un tube nommé sous Windows). " +"Seulement la première d'entre elles est garantie d'être disponible. Si " +"*family* est ``None``, la famille est inférée depuis le format d'*address*. " +"Si *address* est aussi ``None``, la famille par défaut est utilisée. La " +"famille par défaut est supposée être la plus rapide disponible. Voir :ref:" +"`multiprocessing-address-formats`. Notez que si la *family* est " +"``'AF_UNIX'`` et qu'*address* est ``None``, la *socket* est créée dans un " +"répertoire temporaire privé créé avec :func:`tempfile.mkstemp`." #: ../Doc/library/multiprocessing.rst:2329 msgid "" @@ -2536,6 +3519,9 @@ msgid "" "to the :meth:`~socket.socket.listen` method of the socket once it has been " "bound." msgstr "" +"Si l'objet auditeur utilise une *socket* alors *backlog* (1 par défaut) es " +"passé à la méthode :meth:`~socket.socket.listen` de la *socket* une fois " +"qu'elle a été liée." #: ../Doc/library/multiprocessing.rst:2341 msgid "" @@ -2543,6 +3529,10 @@ msgid "" "and return a :class:`~Connection` object. If authentication is attempted and " "fails, then :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" +"Accepte une connexion sur la *socket* liée ou le tube nommé de l'objet " +"auditeur et renvoie un objet :class:`~Connection`. Si la tentative " +"d'authentification échoue, une :exc:`~multiprocessing.AuthenticationError` " +"est levée." #: ../Doc/library/multiprocessing.rst:2348 msgid "" @@ -2550,20 +3540,26 @@ msgid "" "automatically when the listener is garbage collected. However it is " "advisable to call it explicitly." msgstr "" +"Ferme la *socket* liée ou le tube nommé de l'objet auditeur. La méthode est " +"appelée automatiquement quand l'auditeur est collecté par le ramasse-" +"miettes. Il est cependant conseillé de l'appeler explicitement." #: ../Doc/library/multiprocessing.rst:2352 msgid "Listener objects have the following read-only properties:" msgstr "" +"Les objets auditeurs ont aussi les propriétés en lecture seule suivantes :" #: ../Doc/library/multiprocessing.rst:2356 msgid "The address which is being used by the Listener object." -msgstr "" +msgstr "L'adresse utilisée par l'objet auditeur." #: ../Doc/library/multiprocessing.rst:2360 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." msgstr "" +"L'adresse depuis laquelle a été établie la dernière connexion. ``None`` si " +"aucune n'est disponible." #: ../Doc/library/multiprocessing.rst:2363 msgid "" @@ -2571,6 +3567,10 @@ msgid "" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " "listener object, and :meth:`~contextmanager.__exit__` calls :meth:`close`." msgstr "" +"Les objets auditeurs supportent maintenant le protocole des gestionnaires de " +"contexte -- voir :ref:`typecontextmanager`. :meth:`~contextmanager." +"__enter__` renvoie l'objet auditeur, et :meth:`~contextmanager.__exit__` " +"appelle :meth:`close`." #: ../Doc/library/multiprocessing.rst:2370 msgid "" @@ -2580,31 +3580,43 @@ msgid "" "will block for an unlimited period. A negative timeout is equivalent to a " "zero timeout." msgstr "" +"Attend qu'un objet d'*object_list* soit prêt. Renvoie la liste de ces objets " +"d'*object_list* qui sont prêts. Si *timeout* est un nombre flottant, l'appel " +"bloquera au maximum ce nombre de secondes. Si *timeout* est ``None``, " +"l'appelle bloquera pour une durée non limitée. Un *timeout* négatif est " +"équivalent à un *timeout* nul." #: ../Doc/library/multiprocessing.rst:2376 msgid "" "For both Unix and Windows, an object can appear in *object_list* if it is" msgstr "" +"Pour Unix et Windows, un objet peut apparaître dans *object_list* s'il est" #: ../Doc/library/multiprocessing.rst:2379 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "" +"un objet :class:`~multiprocessing.connection.Connection` accessible en " +"lecture ;" #: ../Doc/library/multiprocessing.rst:2380 msgid "a connected and readable :class:`socket.socket` object; or" -msgstr "" +msgstr "un objet :class:`socket.socket` connecté et accessible en lecture ; ou" #: ../Doc/library/multiprocessing.rst:2381 msgid "" "the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" "`~multiprocessing.Process` object." msgstr "" +"l'attribut :attr:`~multiprocessing.Process.sentinel` d'un objet :class:" +"`~multiprocessing.Process`." #: ../Doc/library/multiprocessing.rst:2384 msgid "" "A connection or socket object is ready when there is data available to be " "read from it, or the other end has been closed." msgstr "" +"Une connexion ou une *socket* est prête quand il y a des données disponibles " +"en lecture dessus, ou que l'autre bout a été fermé." #: ../Doc/library/multiprocessing.rst:2387 msgid "" @@ -2613,6 +3625,11 @@ msgid "" "`select.select` is interrupted by a signal, it can raise :exc:`OSError` with " "an error number of ``EINTR``, whereas :func:`wait` will not." msgstr "" +"**Unix**: ``wait(object_list, timeout)`` est en grande partie équivalente à " +"``select.select(object_list, [], [], timeout)``. La différence est que, si :" +"func:`select.select` est interrompue par un signal, elle peut lever une :exc:" +"`OSError` avec un numéro d'erreur ``EINTR``, alors que :func:`wait` ne le " +"fera pas." #: ../Doc/library/multiprocessing.rst:2393 msgid "" @@ -2622,10 +3639,16 @@ msgid "" "meth:`fileno` method which returns a socket handle or pipe handle. (Note " "that pipe handles and socket handles are **not** waitable handles.)" msgstr "" +"**Windows**: Un élément d'*object_list* doit être soit un identifiant " +"*waitable* (en accord avec la définition utilisée par la documentation de la " +"fonction Win32 ``WaitForMultipleObjects()``) soit un objet avec une méthode :" +"meth:`fileno` qui retourne un identifiant de *socket* ou de tube. (Notez que " +"les identifiants de tubes et de *sockets* **ne sont pas** des identifiants " +"*waitables*.)" #: ../Doc/library/multiprocessing.rst:2403 msgid "**Examples**" -msgstr "" +msgstr "**Exemples**" #: ../Doc/library/multiprocessing.rst:2405 msgid "" @@ -2633,38 +3656,47 @@ msgid "" "password'`` as an authentication key. It then waits for a connection and " "sends some data to the client::" msgstr "" +"Le code serveur suivant crée un auditeur qui utilise ``'secret password'`` " +"comme clé d'authentification. Il attend ensuite une connexion et envoie les " +"données au client ::" #: ../Doc/library/multiprocessing.rst:2424 msgid "" "The following code connects to the server and receives some data from the " "server::" -msgstr "" +msgstr "Le code suivant se connecte au serveur et en reçoit des données ::" #: ../Doc/library/multiprocessing.rst:2441 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" msgstr "" +"Le code suivant utilise :func:`~multiprocessing.connection.wait` pour " +"attendre des messages depuis plusieurs processus à la fois ::" #: ../Doc/library/multiprocessing.rst:2480 msgid "Address Formats" -msgstr "" +msgstr "Formats d'adresses" #: ../Doc/library/multiprocessing.rst:2482 msgid "" "An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " "*hostname* is a string and *port* is an integer." msgstr "" +"Une adresse ``'AF_INET'`` est un *tuple* de la forme ``(hostname, port)`` où " +"*hostname* est une chaîne et *port* un entier." #: ../Doc/library/multiprocessing.rst:2485 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" +"Une adresse ``'AF_UNIX'`` est une chaîne représentant un nom de fichier sur " +"le système de fichiers." #: ../Doc/library/multiprocessing.rst:2491 msgid "An ``'AF_PIPE'`` address is a string of the form" -msgstr "" +msgstr "Une adresse ``'AF_PIPE'`` est une chaîne de la forme" #: ../Doc/library/multiprocessing.rst:2489 msgid "" @@ -2673,16 +3705,23 @@ msgid "" "use an address of the form :samp:`r'\\\\\\\\{ServerName}\\\\pipe\\" "\\{PipeName}'` instead." msgstr "" +":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. Pour utiliser un :func:`Client` " +"pour se connecter à un tube nommé sur une machine distante appelée " +"*ServerName*, il faut plutôt utiliser une adresse de la forme :samp:`r'\\\\\\" +"\\{ServerName}\\\\pipe\\\\{PipeName}'`." #: ../Doc/library/multiprocessing.rst:2493 msgid "" "Note that any string beginning with two backslashes is assumed by default to " "be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." msgstr "" +"Notez que toute chaîne commençant par deux antislashs est considérée par " +"défaut comme l'adresse d'un ``'AF_PIPE'`` plutôt qu'une adresse " +"``'AF_UNIX'``." #: ../Doc/library/multiprocessing.rst:2500 msgid "Authentication keys" -msgstr "" +msgstr "Clés d'authentification" #: ../Doc/library/multiprocessing.rst:2502 msgid "" @@ -2691,6 +3730,11 @@ msgid "" "source is a security risk. Therefore :class:`Listener` and :func:`Client` " "use the :mod:`hmac` module to provide digest authentication." msgstr "" +"Quand :meth:`Connection.recv ` est utilisée, les données " +"reçues sont automatiquement désérialisées par *pickle*. Malheureusement " +"désérialiser des données depuis une source non sûre constitue un risque de " +"sécurité. Par conséquent :class:`Listener` et :func:`Client` utilisent le " +"module :mod:`hmac` pour fournir une authentification par condensat." #: ../Doc/library/multiprocessing.rst:2508 msgid "" @@ -2699,6 +3743,11 @@ msgid "" "the other knows the authentication key. (Demonstrating that both ends are " "using the same key does **not** involve sending the key over the connection.)" msgstr "" +"Une clé d'authentification est une chaîne d'octets qui peut être vue comme " +"un mot de passe : quand une connexion est établie, les deux interlocuteurs " +"vont demander à l'autre une preuve qu'il connaît la clé d'authentification. " +"(Démontrer que les deux utilisent la même clé n'implique **pas** d'échanger " +"la clé sur la connexion.)" #: ../Doc/library/multiprocessing.rst:2514 msgid "" @@ -2710,12 +3759,21 @@ msgid "" "program will share a single authentication key which can be used when " "setting up connections between themselves." msgstr "" +"Si l'authentification est requise et qu'aucune clé n'est spécifiée alors la " +"valeur de retour de ``current_process().authkey`` est utilisée (voir :class:" +"`~multiprocessing.Process`). Celle valeur est automatiquement héritée par " +"tout objet :class:`~multiprocessing.Process` créé par le processus courant. " +"Cela signifie que (par défaut) tous les processus d'un programme multi-" +"processus partageront une clé d'authentification unique qui peut être " +"utilisée pour mettre en place des connexions entre-eux." #: ../Doc/library/multiprocessing.rst:2522 msgid "" "Suitable authentication keys can also be generated by using :func:`os." "urandom`." msgstr "" +"Des clés d'authentification adaptées peuvent aussi être générées par :func:" +"`os.urandom`." #: ../Doc/library/multiprocessing.rst:2526 msgid "Logging" @@ -2728,12 +3786,18 @@ msgid "" "(depending on the handler type) for messages from different processes to get " "mixed up." msgstr "" +"Un certain support de la journalisation est disponible. Notez cependant que " +"le le paquet :mod:`logging` n'utilise pas de verrous partagés entre les " +"processus et il est donc possible (dépendant du type de gestionnaire) que " +"les messages de différents processus soient mélangés." #: ../Doc/library/multiprocessing.rst:2535 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." msgstr "" +"Renvoie le journaliseur utilisé par :mod:`multiprocessing`. Si nécessaire, " +"un nouveau sera créé." #: ../Doc/library/multiprocessing.rst:2538 msgid "" @@ -2741,6 +3805,9 @@ msgid "" "default handler. Messages sent to this logger will not by default propagate " "to the root logger." msgstr "" +"À sa première création le journaliseur a pour niveau :data:`logging.NOTSET` " +"et pas de gestionnaire par défaut. Les messages envoyés à ce journaliseur ne " +"seront pas propagés par défaut au journaliseur principal." #: ../Doc/library/multiprocessing.rst:2542 msgid "" @@ -2748,6 +3815,9 @@ msgid "" "parent process's logger -- any other customization of the logger will not be " "inherited." msgstr "" +"Notez que sous Windows les processus fils n'hériteront que du niveau du " +"journaliseur du processus parent -- toute autre personnalisation du " +"journaliseur ne sera pas héritée." #: ../Doc/library/multiprocessing.rst:2549 msgid "" @@ -2756,52 +3826,65 @@ msgid "" "output to :data:`sys.stderr` using format ``'[%(levelname)s/%(processName)s] " "%(message)s'``." msgstr "" +"Cette fonction effectue un appel à :func:`get_logger` mais en plus de " +"renvoyer le journaliseur créé par *get_logger*, elle ajoute un gestionnaire " +"qui envoie la sortie sur :data:`sys.stderr` en utilisant le format " +"``'[%(levelname)s/%(processName)s] %(message)s'``." #: ../Doc/library/multiprocessing.rst:2554 msgid "Below is an example session with logging turned on::" msgstr "" +"L'exemple ci-dessous présente une session avec la journalisation activée ::" #: ../Doc/library/multiprocessing.rst:2569 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" +"Pour un tableau complet des niveaux de journalisation, voir le module :mod:" +"`logging`." #: ../Doc/library/multiprocessing.rst:2573 msgid "The :mod:`multiprocessing.dummy` module" -msgstr "" +msgstr "Le module :mod:`multiprocessing.dummy`" #: ../Doc/library/multiprocessing.rst:2578 msgid "" ":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " "but is no more than a wrapper around the :mod:`threading` module." msgstr "" +":mod:`multiprocessing.dummy` réplique toute l'API de :mod:`multiprocessing` " +"mais n'est rien de plus qu'un *wrapper* autour du module :mod:`threading`." #: ../Doc/library/multiprocessing.rst:2585 msgid "Programming guidelines" -msgstr "" +msgstr "Lignes directrices de programmation" #: ../Doc/library/multiprocessing.rst:2587 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." msgstr "" +"Il y a certaines lignes directrices et idiomes auxquels il faut adhérer en " +"utilisant :mod:`multiprocessing`." #: ../Doc/library/multiprocessing.rst:2592 msgid "All start methods" -msgstr "" +msgstr "Toutes les méthodes de démarrage" #: ../Doc/library/multiprocessing.rst:2594 msgid "The following applies to all start methods." -msgstr "" +msgstr "Les règles suivantes s'appliquent aux méthodes de démarrage." #: ../Doc/library/multiprocessing.rst:2596 msgid "Avoid shared state" -msgstr "" +msgstr "Éviter les états partagés" #: ../Doc/library/multiprocessing.rst:2598 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." msgstr "" +"Autant que possible, vous devriez éviter de déplacer de larges données entre " +"les processus." #: ../Doc/library/multiprocessing.rst:2601 msgid "" @@ -2809,33 +3892,42 @@ msgid "" "between processes rather than using the lower level synchronization " "primitives." msgstr "" +"Il est probablement meilleur de s'en tenir à l'utilisation de queues et " +"tubes pour la communication entre processus plutôt que d'utiliser des " +"primitives de synchronisation plus bas-niveau." #: ../Doc/library/multiprocessing.rst:2605 msgid "Picklability" -msgstr "" +msgstr "Sérialisation" #: ../Doc/library/multiprocessing.rst:2607 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" +"Assurez-vous que les arguments passés aux méthodes des mandataires soient " +"sérialisables (*pickables*)." #: ../Doc/library/multiprocessing.rst:2609 msgid "Thread safety of proxies" -msgstr "" +msgstr "Sûreté des mandataires à travers les fils d'exécution" #: ../Doc/library/multiprocessing.rst:2611 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." msgstr "" +"N'utilisez pas d'objet mandataire depuis plus d'un fil d'exécution à moins " +"que vous ne le protégiez avec un verrou." #: ../Doc/library/multiprocessing.rst:2614 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" +"(Il n'y a jamais de problème avec plusieurs processus utilisant un *même* " +"mandataire.)" #: ../Doc/library/multiprocessing.rst:2616 msgid "Joining zombie processes" -msgstr "" +msgstr "Attendre les processus zombies" #: ../Doc/library/multiprocessing.rst:2618 msgid "" @@ -2847,10 +3939,18 @@ msgid "" "join the process. Even so it is probably good practice to explicitly join " "all the processes that you start." msgstr "" +"Sous Unix quand un processus se termine mais n'est pas attendu, il devient " +"un zombie. Il ne devrait jamais y en avoir beaucoup parce que chaque fois " +"qu'un nouveau processus démarre (ou que :func:`~multiprocessing." +"active_children` est appelée) tous les processus complétés qui n'ont pas été " +"attendus le seront. Aussi appeler la méthode :meth:`Process.is_alive " +"` d'un processus terminé attendra le " +"processus. Toutefois il est probablement une bonne pratique d'attendre " +"explicitement tous les processus que vous démarrez." #: ../Doc/library/multiprocessing.rst:2626 msgid "Better to inherit than pickle/unpickle" -msgstr "" +msgstr "Préférez hériter que sérialiser/désérialiser" #: ../Doc/library/multiprocessing.rst:2628 msgid "" @@ -2861,10 +3961,17 @@ msgid "" "that a process which needs access to a shared resource created elsewhere can " "inherit it from an ancestor process." msgstr "" +"Quand vous utilisez les méthodes de démarrage *spawn* ou *forkserver*, de " +"nombreux types de :mod:`multiprocessing` nécessitent d'être sérialisées pour " +"que les processus enfants puissent les utiliser. Cependant, il faut " +"généralement éviter d'envoyer des objets partagés aux autres processus en " +"utilisant des tubes ou des queues. Vous devriez plutôt vous arranger pour " +"qu'un processus qui nécessite l'accès à une ressource partagée créée autre " +"part qu'il en hérite depuis un de ses processus ancêtres." #: ../Doc/library/multiprocessing.rst:2636 msgid "Avoid terminating processes" -msgstr "" +msgstr "Éviter de terminer les processus" #: ../Doc/library/multiprocessing.rst:2638 msgid "" @@ -2873,6 +3980,10 @@ msgid "" "locks, semaphores, pipes and queues) currently being used by the process to " "become broken or unavailable to other processes." msgstr "" +"Utiliser la méthode :meth:`Process.terminate ` pour stopper un processus risque de casser ou de rendre " +"indisponible aux autres processus des ressources partagées (comme des " +"verrous, sémaphores, tubes et queues) actuellement utilisée par le processus." #: ../Doc/library/multiprocessing.rst:2644 msgid "" @@ -2880,10 +3991,13 @@ msgid "" "terminate ` on processes which never use " "any shared resources." msgstr "" +"Il est donc probablement préférable de n'utiliser :meth:`Process.terminate " +"` que sur les processus qui n'utilisent " +"jamais de ressources partagées." #: ../Doc/library/multiprocessing.rst:2648 msgid "Joining processes that use queues" -msgstr "" +msgstr "Attendre les processus qui utilisent des queues" #: ../Doc/library/multiprocessing.rst:2650 msgid "" @@ -2893,6 +4007,12 @@ msgid "" "cancel_join_thread ` method of the " "queue to avoid this behaviour.)" msgstr "" +"Gardez à l'esprit qu'un processus qui a placé des éléments dans une queue " +"attendra que tous les éléments mis en tampon soient consommés par le fil " +"d'exécution « consommateur » du tube sous-jacent avant de se terminer. (Le " +"processus enfant peut appeler la méthode :meth:`Queue.cancel_join_thread " +"` de la queue pour éviter ce " +"comportement.)" #: ../Doc/library/multiprocessing.rst:2656 msgid "" @@ -2902,20 +4022,28 @@ msgid "" "put items on the queue will terminate. Remember also that non-daemonic " "processes will be joined automatically." msgstr "" +"Cela signifie que chaque fois que vous utilisez une queue vous devez vous " +"assurer que tous les éléments qui y ont été placés seront effectivement " +"supprimés avant que le processus ne soit attendu. Autrement vous ne pouvez " +"pas être sûr que les processus qui ont placé des éléments dans la queue se " +"termineront. Souvenez-vous aussi que tous les processus non *daemons* seront " +"attendus automatiquement." #: ../Doc/library/multiprocessing.rst:2662 msgid "An example which will deadlock is the following::" -msgstr "" +msgstr "L'exemple suivant provoquera un interblocage ::" #: ../Doc/library/multiprocessing.rst:2676 msgid "" "A fix here would be to swap the last two lines (or simply remove the ``p." "join()`` line)." msgstr "" +"Une solution ici serait d'intervertir les deux dernières lignes (ou " +"simplement supprimer la ligne ``p.join()``)." #: ../Doc/library/multiprocessing.rst:2679 msgid "Explicitly pass resources to child processes" -msgstr "" +msgstr "Passer explicitement les ressources aux processus fils" #: ../Doc/library/multiprocessing.rst:2681 msgid "" @@ -2924,6 +4052,10 @@ msgid "" "However, it is better to pass the object as an argument to the constructor " "for the child process." msgstr "" +"Sous Unix en utilisant la méthode de démarrage *fork*, un processus fils " +"peut utiliser une ressource partagée créée par un processus parent en " +"utilisant une ressource globale. Cependant, il est préférable de passer " +"l'objet en argument au constructeur du processus fils." #: ../Doc/library/multiprocessing.rst:2686 msgid "" @@ -2933,28 +4065,38 @@ msgid "" "This might be important if some resource is freed when the object is garbage " "collected in the parent process." msgstr "" +"En plus de rendre le code (potentiellement) compatible avec Windows et les " +"autres méthodes de démarrage, cela assure aussi que tant que le processus " +"fils est en vie, l'objet ne sera pas collecté par le ramasse-miettes du " +"processus parent. Cela peut être important si certaines ressources sont " +"libérées quand l'objet est collecté par le ramasse-miettes du processus " +"parent." #: ../Doc/library/multiprocessing.rst:2693 msgid "So for instance ::" -msgstr "" +msgstr "Donc par exemple ::" #: ../Doc/library/multiprocessing.rst:2705 msgid "should be rewritten as ::" -msgstr "" +msgstr "devrait être réécrit comme ::" #: ../Doc/library/multiprocessing.rst:2717 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" +"Faire attention à remplacer :data:`sys.stdin` par un objet « *file-like* »" #: ../Doc/library/multiprocessing.rst:2719 msgid ":mod:`multiprocessing` originally unconditionally called::" -msgstr "" +msgstr "À l'origine, :mod:`multiprocessing` appelait inconditionnellement ::" #: ../Doc/library/multiprocessing.rst:2723 msgid "" "in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " "in issues with processes-in-processes. This has been changed to::" msgstr "" +"dans la méthode :meth:`multiprocessing.Process._bootstrap` --- cela " +"provoquait des problèmes avec les processus imbriqués. Cela peut être changé " +"en ::" #: ../Doc/library/multiprocessing.rst:2729 msgid "" @@ -2965,6 +4107,13 @@ msgid "" "`~io.IOBase.close()` on this file-like object, it could result in the same " "data being flushed to the object multiple times, resulting in corruption." msgstr "" +"Qui résout le problème fondamental des collisions entre processus provoquant " +"des erreurs de mauvais descripteurs de fichiers, mais introduit un potentiel " +"danger pour les applications qui remplacent :func:`sys.stdin` avec un " +"« *file-like object* » ayant une sortie *bufferisée*. Ce danger est que si " +"plusieurs processus appellent :meth:`~io.IOBase.close()` sur cet objet *file-" +"like*, cela peut amener les données à être transmises à l'objet à plusieurs " +"reprises, résultant en une corruption." #: ../Doc/library/multiprocessing.rst:2736 msgid "" @@ -2972,25 +4121,31 @@ msgid "" "it fork-safe by storing the pid whenever you append to the cache, and " "discarding the cache when the pid changes. For example::" msgstr "" +"Si vous écrivez un objet *file-like* et implémentez votre propre cache, vous " +"pouvez le rendre sûr pour les *forks* en stockant le *pid* chaque fois que " +"vous ajoutez des données au cache, et annulez le cache quand le *pip* " +"change. Par exemple ::" #: ../Doc/library/multiprocessing.rst:2748 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" +"Pour plus d'informations, voir :issue:`5155`, :issue:`5313` et :issue:`5331`" #: ../Doc/library/multiprocessing.rst:2751 msgid "The *spawn* and *forkserver* start methods" -msgstr "" +msgstr "Les méthodes de démarrage *spawn* et *forkserver*" #: ../Doc/library/multiprocessing.rst:2753 msgid "" "There are a few extra restriction which don't apply to the *fork* start " "method." msgstr "" +"Certaines restrictions ne s'appliquent pas à la méthode de démarrage *fork*." #: ../Doc/library/multiprocessing.rst:2756 msgid "More picklability" -msgstr "" +msgstr "Plus de sérialisation" #: ../Doc/library/multiprocessing.rst:2758 msgid "" @@ -2999,10 +4154,15 @@ msgid "" "instances will be picklable when the :meth:`Process.start ` method is called." msgstr "" +"Assurez-vous que tous les argument de :meth:`Process.__init__` sont " +"sérialisables avec *pickle*. Aussi, si vous héritez de :class:" +"`~multiprocessing.Process`, assurez-vous que toutes les instances sont " +"sérialisables quand la méthode :meth:`Process.start ` est appelée." #: ../Doc/library/multiprocessing.rst:2763 msgid "Global variables" -msgstr "" +msgstr "Variables globales" #: ../Doc/library/multiprocessing.rst:2765 msgid "" @@ -3011,16 +4171,23 @@ msgid "" "in the parent process at the time that :meth:`Process.start ` was called." msgstr "" +"Gardez en tête que si le code exécuté dans un processus fils essaie " +"d'accéder à une variable globale, alors la valeur qu'il voit (s'il y en a " +"une) pourrait ne pas être la même que la valeur du processus parent au " +"moment même où :meth:`Process.start ` est " +"appelée." #: ../Doc/library/multiprocessing.rst:2770 msgid "" "However, global variables which are just module level constants cause no " "problems." msgstr "" +"Cependant, les variables globales qui sont juste des constantes de modules " +"ne posent pas de problèmes." #: ../Doc/library/multiprocessing.rst:2773 msgid "Safe importing of main module" -msgstr "" +msgstr "Importation sûre du module principal" #: ../Doc/library/multiprocessing.rst:2775 msgid "" @@ -3028,36 +4195,49 @@ msgid "" "interpreter without causing unintended side effects (such a starting a new " "process)." msgstr "" +"Assurez-vous que le module principal peut être importé en toute sécurité par " +"un nouvel interpréteur Python sans causer d'effets de bord inattendus (comme " +"le démarrage d'un nouveau processus)." #: ../Doc/library/multiprocessing.rst:2779 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" msgstr "" +"Par exemple, utiliser la méthode de démarrage *spawn* ou *forkserver* pour " +"lancer le module suivant échouerait avec une :exc:`RuntimeError` ::" #: ../Doc/library/multiprocessing.rst:2791 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" msgstr "" +"Vous devriez plutôt protéger le « point d'entrée » du programme en utilisant " +"``if __name__ == '__main__':`` comme suit ::" #: ../Doc/library/multiprocessing.rst:2805 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" msgstr "" +"(La ligne ``freeze_support()`` peut être omise si le programme est " +"uniquement lancé normalement et pas gelé.)" #: ../Doc/library/multiprocessing.rst:2808 msgid "" "This allows the newly spawned Python interpreter to safely import the module " "and then run the module's ``foo()`` function." msgstr "" +"Cela permet aux interpréteurs Python fraîchement instanciés d'importer en " +"toute sécurité le module et d'exécution ensuite la fonction ``foo()``." #: ../Doc/library/multiprocessing.rst:2811 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." msgstr "" +"Des restrictions similaires s'appliquent si une *pool* ou un gestionnaire " +"est créé dans le module principal." #: ../Doc/library/multiprocessing.rst:2818 msgid "Examples" @@ -3066,13 +4246,17 @@ msgstr "Exemples" #: ../Doc/library/multiprocessing.rst:2820 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "" +"Démonstration de comment créer et utiliser des gestionnaires et mandataires " +"personnalisés :" #: ../Doc/library/multiprocessing.rst:2826 msgid "Using :class:`~multiprocessing.pool.Pool`:" -msgstr "" +msgstr "En utilisant :class:`~multiprocessing.pool.Pool` :" #: ../Doc/library/multiprocessing.rst:2832 msgid "" "An example showing how to use queues to feed tasks to a collection of worker " "processes and collect the results:" msgstr "" +"Un exemple montrant comment utiliser des queues pour alimenter en tâches une " +"collection de processus *workers* et collecter les résultats :" diff --git a/library/operator.po b/library/operator.po index e992a88c4..2034a83f2 100644 --- a/library/operator.po +++ b/library/operator.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/operator.rst:2 msgid ":mod:`operator` --- Standard operators as functions" -msgstr "" +msgstr ":mod:`operator` — Opérateurs standards en tant que fonctions" #: ../Doc/library/operator.rst:9 msgid "**Source code:** :source:`Lib/operator.py`" @@ -35,18 +35,30 @@ msgid "" "underscores kept. The variants without the double underscores are preferred " "for clarity." msgstr "" +"Le module :mod:`operator` fournit un ensemble de fonctions correspondant aux " +"opérateurs natifs de Python. Par exemple, ``operator.add(x, y)`` correspond " +"à l'expression ``x+y``. Les noms de la plupart de ces fonctions sont ceux " +"utilisés par les méthodes spéciales, sans les doubles tirets bas. Pour " +"assurer la rétrocompatibilité, la plupart de ces noms ont une variante " +"*avec* les doubles tirets bas ; la forme simple est cependant à privilégier " +"pour des raisons de clarté." #: ../Doc/library/operator.rst:25 msgid "" "The functions fall into categories that perform object comparisons, logical " "operations, mathematical operations and sequence operations." msgstr "" +"Les fonctions sont divisées en différentes catégories selon l'opération " +"effectuée : comparaison entre objets, opérations logiques, opérations " +"mathématiques ou opérations sur séquences." #: ../Doc/library/operator.rst:28 msgid "" "The object comparison functions are useful for all objects, and are named " "after the rich comparison operators they support:" msgstr "" +"Les fonctions de comparaison s'appliquent à tous les objets, et leur nom " +"vient des opérateurs de comparaison qu'elles implémentent :" #: ../Doc/library/operator.rst:45 msgid "" @@ -58,12 +70,21 @@ msgid "" "which may or may not be interpretable as a Boolean value. See :ref:" "`comparisons` for more information about rich comparisons." msgstr "" +"Effectue une « comparaison riche » entre *a* et *b*. Plus précisément, " +"``lt(a, b)`` équivaut à ``a < b``, ``le(a, b)`` équivaut à ``a <= b``, " +"``eq(a, b)`` équivaut à ``a == b``, ``ne(a, b)`` équivaut à ``a != b``, " +"``gt(a, b)`` équivaut à ``a > b`` et ``ge(a, b)`` équivaut à ``a >= b``. " +"Notez que ces fonctions peuvent renvoyer n'importe quelle valeur, " +"convertible ou non en booléen. Voir :ref:`comparisons` pour plus " +"d'informations sur les méthodes de comparaison riches." #: ../Doc/library/operator.rst:54 msgid "" "The logical operations are also generally applicable to all objects, and " "support truth tests, identity tests, and boolean operations:" msgstr "" +"En général, les opérations logiques s'appliquent aussi à tous les objets et " +"implémentent les tests de vérité, d'identité et les opérations booléennes :" #: ../Doc/library/operator.rst:61 msgid "" @@ -72,24 +93,33 @@ msgid "" "this operation. The result is affected by the :meth:`__bool__` and :meth:" "`__len__` methods.)" msgstr "" +"Renvoie le résultat de :keyword:`not` *obj*. (Notez qu'il n'existe pas de " +"méthode :meth:`__not__` pour les instances d'objet; seul le cœur de " +"l'interpréteur définit cette opération. Le résultat dépend des méthodes :" +"meth:`__bool__` et :meth:`__len__`.)" #: ../Doc/library/operator.rst:69 msgid "" "Return :const:`True` if *obj* is true, and :const:`False` otherwise. This " "is equivalent to using the :class:`bool` constructor." msgstr "" +"Renvoie :const:`True` si *obj* est vrai, et :const:`False` dans le cas " +"contraire. Équivaut à utiliser le constructeur de :class:`bool`." #: ../Doc/library/operator.rst:75 msgid "Return ``a is b``. Tests object identity." msgstr "" +"Renvoie ``a is b``. Vérifie si les deux paramètres sont le même objet." #: ../Doc/library/operator.rst:80 msgid "Return ``a is not b``. Tests object identity." msgstr "" +"Renvoie ``a is not b``. Vérifie si les deux paramètres sont deux objets " +"distincts." #: ../Doc/library/operator.rst:83 msgid "The mathematical and bitwise operations are the most numerous:" -msgstr "" +msgstr "Les opérations mathématiques ou bit à bit sont les plus nombreuses :" #: ../Doc/library/operator.rst:89 msgid "Return the absolute value of *obj*." @@ -97,109 +127,114 @@ msgstr "Renvoie la valeur absolue de *obj*." #: ../Doc/library/operator.rst:95 msgid "Return ``a + b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a + b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:101 msgid "Return the bitwise and of *a* and *b*." -msgstr "" +msgstr "Renvoie le *et* bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:107 msgid "Return ``a // b``." -msgstr "" +msgstr "Renvoie ``a // b``." #: ../Doc/library/operator.rst:113 msgid "Return *a* converted to an integer. Equivalent to ``a.__index__()``." -msgstr "" +msgstr "Renvoie *a* converti en entier. Équivaut à ``a.__index__()``." #: ../Doc/library/operator.rst:121 msgid "" "Return the bitwise inverse of the number *obj*. This is equivalent to " "``~obj``." -msgstr "" +msgstr "Renvoie l'inverse bit à bit du nombre *obj*. Équivaut à ``~obj``." #: ../Doc/library/operator.rst:127 msgid "Return *a* shifted left by *b*." -msgstr "" +msgstr "Renvoie le décalage de *b* bits vers la gauche de *a*." #: ../Doc/library/operator.rst:133 msgid "Return ``a % b``." -msgstr "" +msgstr "Renvoie``a % b``." #: ../Doc/library/operator.rst:139 msgid "Return ``a * b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a * b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:145 msgid "Return ``a @ b``." -msgstr "" +msgstr "Renvoie ``a @ b``." #: ../Doc/library/operator.rst:153 msgid "Return *obj* negated (``-obj``)." -msgstr "" +msgstr "Renvoie l'opposé de *obj* (``-obj``)." #: ../Doc/library/operator.rst:159 msgid "Return the bitwise or of *a* and *b*." -msgstr "" +msgstr "Renvoie le *ou* bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:165 msgid "Return *obj* positive (``+obj``)." -msgstr "" +msgstr "Renvoie la valeur positive de *obj* (``+obj``)." #: ../Doc/library/operator.rst:171 msgid "Return ``a ** b``, for *a* and *b* numbers." -msgstr "" +msgstr "Renvoie ``a ** b`` où *a* et *b* sont des nombres." #: ../Doc/library/operator.rst:177 msgid "Return *a* shifted right by *b*." -msgstr "" +msgstr "Renvoie le décalage de *b* bits vers la droite de *a*." #: ../Doc/library/operator.rst:183 msgid "Return ``a - b``." -msgstr "" +msgstr "Renvoie ``a - b``." #: ../Doc/library/operator.rst:189 msgid "" "Return ``a / b`` where 2/3 is .66 rather than 0. This is also known as " "\"true\" division." msgstr "" +"Renvoie ``a / b`` où 2/3 est 0.66 et non 0. Appelée aussi division « réelle " +"»." #: ../Doc/library/operator.rst:196 msgid "Return the bitwise exclusive or of *a* and *b*." -msgstr "" +msgstr "Renvoie le ou exclusif bit à bit de *a* et *b*." #: ../Doc/library/operator.rst:199 msgid "" "Operations which work with sequences (some of them with mappings too) " "include:" msgstr "" +"Les opérations sur séquences (et pour certaines, sur correspondances) sont :" #: ../Doc/library/operator.rst:204 msgid "Return ``a + b`` for *a* and *b* sequences." -msgstr "" +msgstr "Renvoie ``a + b`` où *a* et *b* sont des séquences." #: ../Doc/library/operator.rst:210 msgid "Return the outcome of the test ``b in a``. Note the reversed operands." msgstr "" +"Renvoie le résultat du test ``b in a``. Notez que les opérandes sont " +"inversées." #: ../Doc/library/operator.rst:215 msgid "Return the number of occurrences of *b* in *a*." -msgstr "" +msgstr "Renvoie le nombre d’occurrences de *b* dans *a*." #: ../Doc/library/operator.rst:221 msgid "Remove the value of *a* at index *b*." -msgstr "" +msgstr "Renvoie la valeur de *a* à l'indice *b*." #: ../Doc/library/operator.rst:227 msgid "Return the value of *a* at index *b*." -msgstr "" +msgstr "Renvoie la valeur de *a* à l'indice *b*." #: ../Doc/library/operator.rst:232 msgid "Return the index of the first of occurrence of *b* in *a*." -msgstr "" +msgstr "Renvoie l'indice de la première occurrence de *b* dans *a*." #: ../Doc/library/operator.rst:238 msgid "Set the value of *a* at index *b* to *c*." -msgstr "" +msgstr "Affecte *c* dans *a* à l'indice *b*." #: ../Doc/library/operator.rst:243 msgid "" @@ -207,6 +242,9 @@ msgid "" "actual length, then an estimate using :meth:`object.__length_hint__`, and " "finally return the default value." msgstr "" +"Renvoie une estimation de la taille de l'objet *o*. Tente d'abord de " +"renvoyer la taille réelle, puis une estimation en appelant :meth:`object." +"__length_hint__`, ou sinon la valeur par défaut." #: ../Doc/library/operator.rst:249 msgid "" @@ -215,6 +253,11 @@ msgid "" "arguments for :func:`map`, :func:`sorted`, :meth:`itertools.groupby`, or " "other functions that expect a function argument." msgstr "" +"Le module :mod:`operator` définit aussi des fonctions pour la recherche " +"générique d'attributs ou d'objets. Elles sont particulièrement utiles pour " +"construire rapidement des accesseurs d'attributs à passer en paramètre à :" +"func:`map`, :func:`sorted`, :meth:`itertools.groupby` ou à toute autre " +"fonction prenant une fonction en paramètre." #: ../Doc/library/operator.rst:258 msgid "" @@ -222,22 +265,29 @@ msgid "" "one attribute is requested, returns a tuple of attributes. The attribute " "names can also contain dots. For example:" msgstr "" +"Renvoie un objet appelable qui récupère *attr* de son opérande. Si plus d'un " +"attribut est demandé, renvoie un n-uplet d'attributs. Les noms des attributs " +"peuvent aussi comporter des points. Par exemple :" #: ../Doc/library/operator.rst:262 msgid "After ``f = attrgetter('name')``, the call ``f(b)`` returns ``b.name``." -msgstr "" +msgstr "Avec ``f = attrgetter('name')``, l'appel ``f(b)`` renvoie ``b.name``." #: ../Doc/library/operator.rst:264 msgid "" "After ``f = attrgetter('name', 'date')``, the call ``f(b)`` returns ``(b." "name, b.date)``." msgstr "" +"Avec ``f = attrgetter('name', 'date')``, l'appel ``f(b)`` renvoie ``(b.name, " +"b.date)``." #: ../Doc/library/operator.rst:267 msgid "" "After ``f = attrgetter('name.first', 'name.last')``, the call ``f(b)`` " "returns ``(b.name.first, b.name.last)``." msgstr "" +"Après ``f = attrgetter('name.first', 'name.last')``, l'appel ``f(b)`` " +"renvoie ``(b.name.first, b.name.last)``." #: ../Doc/library/operator.rst:270 ../Doc/library/operator.rst:302 #: ../Doc/library/operator.rst:348 @@ -250,16 +300,20 @@ msgid "" "operand's :meth:`__getitem__` method. If multiple items are specified, " "returns a tuple of lookup values. For example:" msgstr "" +"Renvoie un objet appelable qui récupère *item* de l'opérande en utilisant la " +"méthode :meth:`__getitem__`. Si plusieurs *item* sont passés en paramètre, " +"renvoie un n-uplet des valeurs récupérées. Par exemple :" #: ../Doc/library/operator.rst:297 msgid "After ``f = itemgetter(2)``, the call ``f(r)`` returns ``r[2]``." -msgstr "" +msgstr "Avec ``f = itemgetter(2)``, ``f(r)`` renvoie ``r[2]``." #: ../Doc/library/operator.rst:299 msgid "" "After ``g = itemgetter(2, 5, 3)``, the call ``g(r)`` returns ``(r[2], r[5], " "r[3])``." msgstr "" +"Avec ``g = itemgetter(2, 5, 3)``, ``g(r)`` renvoie ``(r[2], r[5], r[3])``." #: ../Doc/library/operator.rst:314 msgid "" @@ -267,12 +321,18 @@ msgid "" "method. Dictionaries accept any hashable value. Lists, tuples, and strings " "accept an index or a slice:" msgstr "" +"Les *items* en entrée peuvent être de n'importe quel type tant que celui-ci " +"est géré par la méthode :meth:`__getitem__` de l'opérande. Les dictionnaires " +"acceptent toute valeur hachable. Les listes, n-uplets et chaînes de " +"caractères acceptent un index ou une tranche :" #: ../Doc/library/operator.rst:326 msgid "" "Example of using :func:`itemgetter` to retrieve specific fields from a tuple " "record:" msgstr "" +"Exemple d'utilisation de :func:`itemgetter` pour récupérer des champs " +"spécifiques d'un n-uplet :" #: ../Doc/library/operator.rst:339 msgid "" @@ -280,27 +340,34 @@ msgid "" "additional arguments and/or keyword arguments are given, they will be given " "to the method as well. For example:" msgstr "" +"Renvoie un objet appelable qui appelle la méthode *name* de son opérande. Si " +"des paramètres supplémentaires et/ou des paramètres nommés sont donnés, ils " +"seront aussi passés à la méthode. Par exemple :" #: ../Doc/library/operator.rst:343 msgid "" "After ``f = methodcaller('name')``, the call ``f(b)`` returns ``b.name()``." -msgstr "" +msgstr "Avec ``f = methodcaller('name')``, ``f(b)`` renvoie ``b.name()``." #: ../Doc/library/operator.rst:345 msgid "" "After ``f = methodcaller('name', 'foo', bar=1)``, the call ``f(b)`` returns " "``b.name('foo', bar=1)``." msgstr "" +"Avec ``f = methodcaller('name', 'foo', bar=1)``, ``f(b)`` renvoie ``b." +"name('foo', bar=1)``." #: ../Doc/library/operator.rst:359 msgid "Mapping Operators to Functions" -msgstr "" +msgstr "Correspondances entre opérateurs et fonctions" #: ../Doc/library/operator.rst:361 msgid "" "This table shows how abstract operations correspond to operator symbols in " "the Python syntax and the functions in the :mod:`operator` module." msgstr "" +"Le tableau montre la correspondance entre les symboles des opérateurs Python " +"et les fonctions du module :mod:`operator`." #: ../Doc/library/operator.rst:365 msgid "Operation" @@ -308,7 +375,7 @@ msgstr "Opération" #: ../Doc/library/operator.rst:365 msgid "Syntax" -msgstr "" +msgstr "Syntaxe" #: ../Doc/library/operator.rst:365 msgid "Function" @@ -316,7 +383,7 @@ msgstr "Fonction" #: ../Doc/library/operator.rst:367 msgid "Addition" -msgstr "" +msgstr "Addition" #: ../Doc/library/operator.rst:367 msgid "``a + b``" @@ -328,7 +395,7 @@ msgstr "``add(a, b)``" #: ../Doc/library/operator.rst:369 msgid "Concatenation" -msgstr "" +msgstr "Concaténation" #: ../Doc/library/operator.rst:369 msgid "``seq1 + seq2``" @@ -340,7 +407,7 @@ msgstr "``concat(seq1, seq2)``" #: ../Doc/library/operator.rst:371 msgid "Containment Test" -msgstr "" +msgstr "Test d'inclusion" #: ../Doc/library/operator.rst:371 msgid "``obj in seq``" @@ -352,7 +419,7 @@ msgstr "``contains(seq, obj)``" #: ../Doc/library/operator.rst:373 ../Doc/library/operator.rst:375 msgid "Division" -msgstr "" +msgstr "Division" #: ../Doc/library/operator.rst:373 msgid "``a / b``" @@ -372,7 +439,7 @@ msgstr "``floordiv(a, b)``" #: ../Doc/library/operator.rst:377 msgid "Bitwise And" -msgstr "" +msgstr "*Et* bit à bit" #: ../Doc/library/operator.rst:377 msgid "``a & b``" @@ -384,7 +451,7 @@ msgstr "``and_(a, b)``" #: ../Doc/library/operator.rst:379 msgid "Bitwise Exclusive Or" -msgstr "" +msgstr "*Ou exclusif* bit à bit" #: ../Doc/library/operator.rst:379 msgid "``a ^ b``" @@ -396,7 +463,7 @@ msgstr "``xor(a, b)``" #: ../Doc/library/operator.rst:381 msgid "Bitwise Inversion" -msgstr "" +msgstr "Inversion bit à bit" #: ../Doc/library/operator.rst:381 msgid "``~ a``" @@ -408,7 +475,7 @@ msgstr "``invert(a)``" #: ../Doc/library/operator.rst:383 msgid "Bitwise Or" -msgstr "" +msgstr "*Ou* bit à bit" #: ../Doc/library/operator.rst:383 msgid "``a | b``" @@ -420,7 +487,7 @@ msgstr "``or_(a, b)``" #: ../Doc/library/operator.rst:385 msgid "Exponentiation" -msgstr "" +msgstr "Exponentiation" #: ../Doc/library/operator.rst:385 msgid "``a ** b``" @@ -432,7 +499,7 @@ msgstr "``pow(a, b)``" #: ../Doc/library/operator.rst:387 ../Doc/library/operator.rst:389 msgid "Identity" -msgstr "" +msgstr "Identité" #: ../Doc/library/operator.rst:387 msgid "``a is b``" @@ -452,7 +519,7 @@ msgstr "``is_not(a, b)``" #: ../Doc/library/operator.rst:391 msgid "Indexed Assignment" -msgstr "" +msgstr "Affectation par index" #: ../Doc/library/operator.rst:391 msgid "``obj[k] = v``" @@ -464,7 +531,7 @@ msgstr "``setitem(obj, k, v)``" #: ../Doc/library/operator.rst:393 msgid "Indexed Deletion" -msgstr "" +msgstr "Suppression par index" #: ../Doc/library/operator.rst:393 msgid "``del obj[k]``" @@ -476,7 +543,7 @@ msgstr "``delitem(obj, k)``" #: ../Doc/library/operator.rst:395 msgid "Indexing" -msgstr "" +msgstr "Indexation" #: ../Doc/library/operator.rst:395 msgid "``obj[k]``" @@ -488,7 +555,7 @@ msgstr "``getitem(obj, k)``" #: ../Doc/library/operator.rst:397 msgid "Left Shift" -msgstr "" +msgstr "Décalage bit à bit gauche" #: ../Doc/library/operator.rst:397 msgid "``a << b``" @@ -500,7 +567,7 @@ msgstr "``lshift(a, b)``" #: ../Doc/library/operator.rst:399 msgid "Modulo" -msgstr "" +msgstr "Modulo" #: ../Doc/library/operator.rst:399 msgid "``a % b``" @@ -512,7 +579,7 @@ msgstr "``mod(a, b)``" #: ../Doc/library/operator.rst:401 msgid "Multiplication" -msgstr "" +msgstr "Multiplication" #: ../Doc/library/operator.rst:401 msgid "``a * b``" @@ -524,7 +591,7 @@ msgstr "``mul(a, b)``" #: ../Doc/library/operator.rst:403 msgid "Matrix Multiplication" -msgstr "" +msgstr "Multiplication matricielle" #: ../Doc/library/operator.rst:403 msgid "``a @ b``" @@ -536,7 +603,7 @@ msgstr "``matmul(a, b)``" #: ../Doc/library/operator.rst:405 msgid "Negation (Arithmetic)" -msgstr "" +msgstr "Opposé" #: ../Doc/library/operator.rst:405 msgid "``- a``" @@ -548,7 +615,7 @@ msgstr "``neg(a)``" #: ../Doc/library/operator.rst:407 msgid "Negation (Logical)" -msgstr "" +msgstr "Négation (logique)" #: ../Doc/library/operator.rst:407 msgid "``not a``" @@ -560,7 +627,7 @@ msgstr "``not_(a)``" #: ../Doc/library/operator.rst:409 msgid "Positive" -msgstr "" +msgstr "Valeur positive" #: ../Doc/library/operator.rst:409 msgid "``+ a``" @@ -572,7 +639,7 @@ msgstr "``pos(a)``" #: ../Doc/library/operator.rst:411 msgid "Right Shift" -msgstr "" +msgstr "Décalage bit à bit droite" #: ../Doc/library/operator.rst:411 msgid "``a >> b``" @@ -584,7 +651,7 @@ msgstr "``rshift(a, b)``" #: ../Doc/library/operator.rst:413 msgid "Slice Assignment" -msgstr "" +msgstr "Affectation par tranche" #: ../Doc/library/operator.rst:413 msgid "``seq[i:j] = values``" @@ -596,7 +663,7 @@ msgstr "``setitem(seq, slice(i, j), values)``" #: ../Doc/library/operator.rst:415 msgid "Slice Deletion" -msgstr "" +msgstr "Suppression par tranche" #: ../Doc/library/operator.rst:415 msgid "``del seq[i:j]``" @@ -608,7 +675,7 @@ msgstr "``delitem(seq, slice(i, j))``" #: ../Doc/library/operator.rst:417 msgid "Slicing" -msgstr "" +msgstr "Tranche" #: ../Doc/library/operator.rst:417 msgid "``seq[i:j]``" @@ -620,7 +687,7 @@ msgstr "``getitem(seq, slice(i, j))``" #: ../Doc/library/operator.rst:419 msgid "String Formatting" -msgstr "" +msgstr "Formatage de chaînes de caractères" #: ../Doc/library/operator.rst:419 msgid "``s % obj``" @@ -632,7 +699,7 @@ msgstr "``mod(s, obj)``" #: ../Doc/library/operator.rst:421 msgid "Subtraction" -msgstr "" +msgstr "Soustraction" #: ../Doc/library/operator.rst:421 msgid "``a - b``" @@ -644,7 +711,7 @@ msgstr "``sub(a, b)``" #: ../Doc/library/operator.rst:423 msgid "Truth Test" -msgstr "" +msgstr "Test de véracité" #: ../Doc/library/operator.rst:423 msgid "``obj``" @@ -657,7 +724,7 @@ msgstr "``truth(obj)``" #: ../Doc/library/operator.rst:425 ../Doc/library/operator.rst:427 #: ../Doc/library/operator.rst:433 ../Doc/library/operator.rst:435 msgid "Ordering" -msgstr "" +msgstr "Ordre" #: ../Doc/library/operator.rst:425 msgid "``a < b``" @@ -677,7 +744,7 @@ msgstr "``le(a, b)``" #: ../Doc/library/operator.rst:429 msgid "Equality" -msgstr "" +msgstr "Égalité" #: ../Doc/library/operator.rst:429 msgid "``a == b``" @@ -728,6 +795,12 @@ msgid "" "operator.iadd(x, y)`` is equivalent to the compound statement ``z = x; z += " "y``." msgstr "" +"Beaucoup d'opérations ont une version travaillant « en-place ». Les " +"fonctions listées ci-dessous fournissent un accès plus direct aux opérateurs " +"en-place que la syntaxe Python habituelle ; par exemple, l'expression :term:" +"`statement` ``x += y`` équivaut à ``x = operator.iadd(x, y)``. Autrement " +"dit, l'expression ``z = operator.iadd(x, y)`` équivaut à l'expression " +"composée ``z = x; z += y``." #: ../Doc/library/operator.rst:448 msgid "" @@ -736,12 +809,20 @@ msgid "" "place functions listed below only do the first step, calling the in-place " "method. The second step, assignment, is not handled." msgstr "" +"Dans ces exemples, notez que lorsqu'une méthode en-place est appelée, le " +"calcul et l'affectation sont effectués en deux étapes distinctes. Les " +"fonctions en-place de la liste ci-dessous ne font que la première, en " +"appelant la méthode en-place. La seconde étape, l'affectation, n'est pas " +"effectuée." #: ../Doc/library/operator.rst:453 msgid "" "For immutable targets such as strings, numbers, and tuples, the updated " "value is computed, but not assigned back to the input variable:" msgstr "" +"Pour des paramètres non-mutables comme les chaînes de caractères, les " +"nombres et les n-uplets, la nouvelle valeur est calculée, mais pas affectée " +"à la variable d'entrée:" #: ../Doc/library/operator.rst:462 msgid "" diff --git a/library/optparse.po b/library/optparse.po index 6ede0f79f..bd028785f 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -1784,7 +1784,7 @@ msgstr "" #: ../Doc/library/optparse.rst:1483 msgid "Cleanup" -msgstr "" +msgstr "Nettoyage" #: ../Doc/library/optparse.rst:1485 msgid "" diff --git a/library/othergui.po b/library/othergui.po index af4fab0b4..475e17533 100644 --- a/library/othergui.po +++ b/library/othergui.po @@ -71,6 +71,11 @@ msgid "" "Unix, Windows and Mac OS X. :program:`sip` is a tool for generating bindings " "for C++ libraries as Python classes, and is specifically designed for Python." msgstr "" +"*PyQt* est une surcouche de la boite à outils *Qt* basée sur :program:`sip`. " +"*Qt* est un *framework* complet de développement d'interface graphique en C+" +"+ , disponible pour Unix, Windows et Mac OS X. :program:`sip` est un outil " +"pour générer une surcouche de classes Python au dessus de bibliothèques C++, " +"et est spécifiquement conçu pour Python." #: ../Doc/library/othergui.rst:36 msgid "`PySide `_" diff --git a/library/pickle.po b/library/pickle.po index 43b42a1c1..374fbb855 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/pickle.rst:2 msgid ":mod:`pickle` --- Python object serialization" -msgstr "" +msgstr ":mod:`pickle` --- Module de sérialisation d'objets Python" #: ../Doc/library/pickle.rst:10 msgid "**Source code:** :source:`Lib/pickle.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/pickle.py`" #: ../Doc/library/pickle.rst:22 msgid "" @@ -36,6 +36,15 @@ msgid "" "\"serialization\", \"marshalling,\" [#]_ or \"flattening\"; however, to " "avoid confusion, the terms used here are \"pickling\" and \"unpickling\"." msgstr "" +"Le module :mod:`pickle` implémente des protocoles binaires de sérialisation " +"et dé-sérialisation d'objets Python. Le *pickling* est le procédé par lequel " +"une hiérarchie d'objets Python est convertie en flux d'octets. *unpickling* " +"est l'opération inverse, par laquelle un flux d'octets (à partir d'un :term:" +"`binary file` ou :term:`bytes-like object`) est converti en hiérarchie " +"d'objets. *Pickling* (et *unpickling*) sont alternativement connus sous les " +"termes de \"sérialisation\", de \"*marshalling*\" [#]_ ou encore de " +"\"*flattening*\". Cependant pour éviter la confusion les termes utilisés ici " +"sont *pickling* et *unpickling*." #: ../Doc/library/pickle.rst:33 msgid "" @@ -43,14 +52,17 @@ msgid "" "constructed data. Never unpickle data received from an untrusted or " "unauthenticated source." msgstr "" +"Le module :mod:`pickle` n'est pas sécurisé contre les données erronées et " +"malicieusement construites. Ne jamais *unpickle* la donnée reçue à partir " +"d'une source non fiable ou non authentifiée." #: ../Doc/library/pickle.rst:39 msgid "Relationship to other Python modules" -msgstr "" +msgstr "Relations aux autres modules python" #: ../Doc/library/pickle.rst:42 msgid "Comparison with ``marshal``" -msgstr "" +msgstr "Comparaison avec ``marshal``" #: ../Doc/library/pickle.rst:44 msgid "" @@ -59,12 +71,18 @@ msgid "" "Python objects. :mod:`marshal` exists primarily to support Python's :file:`." "pyc` files." msgstr "" +"Python possède un module de bas niveau en sérialisation appelé :mod:" +"`marshal`, mais en général il est préférable d'utiliser :mod:`pickle` pour " +"sérialiser des objets Python. :mod:`marshal` existe principalement pour " +"gérer les fichiers Python en :file:`.pyc`." #: ../Doc/library/pickle.rst:49 msgid "" "The :mod:`pickle` module differs from :mod:`marshal` in several significant " "ways:" msgstr "" +"Le module :mod:`pickle` diffère du module :mod:`marshal` sur plusieurs " +"aspects :" #: ../Doc/library/pickle.rst:51 msgid "" @@ -72,6 +90,9 @@ msgid "" "serialized, so that later references to the same object won't be serialized " "again. :mod:`marshal` doesn't do this." msgstr "" +"Le module :mod:`pickle` garde la trace des objets qu'il a déjà sérialisés, " +"pour faire en sorte que les prochaines références à cet objet ne soient pas " +"sérialisées à nouveau. :mod:`marshal` ne le fait pas." #: ../Doc/library/pickle.rst:55 msgid "" @@ -85,6 +106,14 @@ msgid "" "Shared objects remain shared, which can be very important for mutable " "objects." msgstr "" +"Ça a des implications sur les objets partagés et les objets récursifs. Les " +"objets récursifs sont des objets qui contiennent des références à eux-mêmes. " +"Ceux-ci ne sont pas gérées par marshal : lui donner un objet récursif va le " +"faire planter. Un objet est partagé lorsque que plusieurs références " +"pointent dessus, depuis différents endroits dans la hiérarchie sérialisée. " +"Le module :mod:`pickle` repère ces partages et ne stocke ces objets qu'une " +"seule fois. Les objets partagés restent ainsi partagés, ce qui peut être " +"très important pour les objets muables." #: ../Doc/library/pickle.rst:64 msgid "" @@ -93,6 +122,11 @@ msgid "" "transparently, however the class definition must be importable and live in " "the same module as when the object was stored." msgstr "" +":mod:`marshal` ne peut être utilisé pour la sérialisation et l'instanciation " +"de classes définies par les utilisateurs. :mod:`pickle` peut sauvegarder et " +"restaurer les instances de classes de manière transparente. Cependant la " +"définition de classe doit être importable et lancée dans le même module et " +"de la même manière que lors de son importation." #: ../Doc/library/pickle.rst:69 msgid "" diff --git a/library/plistlib.po b/library/plistlib.po index e2e5b13d8..802d7b59a 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -74,7 +74,7 @@ msgstr "" #: ../Doc/library/plistlib.rst:45 msgid "This module defines the following functions:" -msgstr "" +msgstr "Ce module définit les fonctions suivantes :" #: ../Doc/library/plistlib.rst:49 msgid "" diff --git a/library/poplib.po b/library/poplib.po index 71eb4a229..32f0efd40 100644 --- a/library/poplib.po +++ b/library/poplib.po @@ -111,7 +111,7 @@ msgstr "" #: ../Doc/library/poplib.rst:85 msgid "Module :mod:`imaplib`" -msgstr "" +msgstr "Module :mod:`imaplib`" #: ../Doc/library/poplib.rst:85 msgid "The standard Python IMAP module." diff --git a/library/pprint.po b/library/pprint.po index 6176d412f..82cd6a9e8 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/pprint.rst:2 msgid ":mod:`pprint` --- Data pretty printer" -msgstr "" +msgstr ":mod:`pprint` — L’affichage élégant de données" #: ../Doc/library/pprint.rst:10 msgid "**Source code:** :source:`Lib/pprint.py`" @@ -34,6 +34,15 @@ msgid "" "be the case if objects such as files, sockets or classes are included, as " "well as many other objects which are not representable as Python literals." msgstr "" +"Le module :mod:`pprint` permet « d’afficher élégamment » des structures de " +"données Python arbitraires sous une forme qui peut être utilisée ensuite " +"comme une entrée dans l’interpréteur. Si les structures formatées incluent " +"des objets qui ne sont pas des types Python fondamentaux, leurs " +"représentations peuvent ne pas être acceptables en tant que telles par " +"l’interpréteur. Cela peut être le cas si des objets tels que des fichiers, " +"des interfaces de connexion (*sockets* en anglais) ou des classes sont " +"inclus, c’est aussi valable pour beaucoup d’autres types d’objets qui ne " +"peuvent être représentés sous forme littérale en Python." #: ../Doc/library/pprint.rst:21 msgid "" @@ -42,14 +51,20 @@ msgid "" "Construct :class:`PrettyPrinter` objects explicitly if you need to adjust " "the width constraint." msgstr "" +"L’affichage formaté affiche tant que possible les objets sur une seule " +"ligne, et les sépare sur plusieurs lignes s’ils dépassent la largeur " +"autorisée par l’interpréteur. Créez explicitement des objets :class:" +"`PrettyPrinter` si vous avez besoin de modifier les limites de largeur." #: ../Doc/library/pprint.rst:26 msgid "Dictionaries are sorted by key before the display is computed." msgstr "" +"Les dictionnaires sont classés par clés avant que l’affichage ne soit " +"calculé." #: ../Doc/library/pprint.rst:28 msgid "The :mod:`pprint` module defines one class:" -msgstr "" +msgstr "Le module :mod:`pprint` définit une seule classe : ::" #: ../Doc/library/pprint.rst:36 msgid "" @@ -70,15 +85,34 @@ msgid "" "separate line. If *compact* is true, as many items as will fit within the " "*width* will be formatted on each output line." msgstr "" +"Crée une instance de :class:`PrettyPrinter`. Ce constructeur accepte " +"plusieurs paramètres nommés. Un flux de sortie peut être défini par le mot " +"clé *stream*; la seule méthode utilisée sur l’objet *stream* est la méthode :" +"meth:`write` du protocole de fichiers. Si rien n’est spécifié, la classe :" +"class:`PrettyPrinter` utilise ``sys.stdout``. La taille de l’indentation " +"ajoutée à chaque niveau récursif est spécifiée par *indent*; la valeur par " +"défaut vaut ``1`. D’autres valeurs pourraient donner des résultats " +"surprenants, mais peuvent aider à mieux visualiser les imbrications. Le " +"nombre de niveaux qui peuvent être affichés est contrôlé par *depth*; si la " +"structure de données est trop profonde, le niveau suivant est remplacé par " +"``…``. Par défaut il n’y a pas de contraintes sur la profondeur des objets " +"formatés. Vous pouvez limiter la largeur de la sortie à l’aide du paramètre " +"*width*; la valeur par défaut est de 80 caractères. Si une structure ne peut " +"pas être formatée dans les limites de la largeur contrainte, le module fait " +"au mieux. SI *compact* est initialisé à *False* (la valeur par défaut), " +"chaque élément d’une longue séquence est formaté sur une ligne séparée. Si " +"*compact* est initialisé à *True*, tous les éléments qui peuvent tenir dans " +"la largeur définie sont formatés sur chaque ligne de sortie." #: ../Doc/library/pprint.rst:53 ../Doc/library/pprint.rst:88 #: ../Doc/library/pprint.rst:102 msgid "Added the *compact* parameter." -msgstr "" +msgstr "Ajout du paramètre *compact*." #: ../Doc/library/pprint.rst:80 msgid "The :mod:`pprint` module also provides several shortcut functions:" msgstr "" +"Le module :mod:`pprint` fournit aussi quelques fonctions de raccourcis : ::" #: ../Doc/library/pprint.rst:84 msgid "" @@ -86,6 +120,9 @@ msgid "" "*width*, *depth* and *compact* will be passed to the :class:`PrettyPrinter` " "constructor as formatting parameters." msgstr "" +"Renvoie une représentation formatée de *object* sous forme de chaine de " +"caractères. *indent*, *width*, *depth* et *compact* sont passés au " +"constructeur de :class:`PrettyPrinter` comme paramètres de formatage." #: ../Doc/library/pprint.rst:95 msgid "" @@ -96,6 +133,13 @@ msgid "" "within a scope). *indent*, *width*, *depth* and *compact* will be passed to " "the :class:`PrettyPrinter` constructor as formatting parameters." msgstr "" +"Affiche la représentation formatée de *object* sur *stream*, suivie d’un " +"retour à la ligne. Si *stream* vaut ``None``, ``sys.stdout`` est alors " +"utilisé. Vous pouvez l’utiliser dans l’interpréteur interactif de Python au " +"lieu de la fonction :func:`print` pour inspecter les valeurs (vous pouvez " +"même réassigner ``print = pprint.pprint`` pour une utilisation au sein de sa " +"portée). *indent*, *width*, *depth* et *compact* sont passés au constructeur " +"de classe :class:`PrettyPrinter` comme paramètres de formatage." #: ../Doc/library/pprint.rst:121 msgid "" @@ -103,14 +147,17 @@ msgid "" "can be used to reconstruct the value using :func:`eval`. This always " "returns ``False`` for recursive objects." msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou s’il " +"peut être utilisé pour recomposer sa valeur en utilisant la fonction :func:" +"`eval`. Cela renvoie toujours ``False`` pour les objets récursifs." #: ../Doc/library/pprint.rst:131 msgid "Determine if *object* requires a recursive representation." -msgstr "" +msgstr "Détermine si *object* requiert une représentation récursive." #: ../Doc/library/pprint.rst:134 msgid "One more support function is also defined:" -msgstr "" +msgstr "Une dernière fonction de support est définie ainsi : ::" #: ../Doc/library/pprint.rst:138 msgid "" @@ -119,26 +166,37 @@ msgid "" "the recursive reference will be represented as ````. The representation is not otherwise formatted." msgstr "" +"Renvoie une représentation de *object* sous forme de chaîne de caractère, " +"celle-ci est protégée contre les structures de données récursives. Si la " +"représentation de *object* présente une entrée récursive, celle-ci sera " +"représentée telle que ````. Par " +"ailleurs, la représentation de l’objet n’est pas formatée." #: ../Doc/library/pprint.rst:150 msgid "PrettyPrinter Objects" -msgstr "" +msgstr "Les Objets PrettyPrinter" #: ../Doc/library/pprint.rst:152 msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" +"Les instances de la classe :class:`PrettyPrinter` ont les méthodes " +"suivantes : ::" #: ../Doc/library/pprint.rst:157 msgid "" "Return the formatted representation of *object*. This takes into account " "the options passed to the :class:`PrettyPrinter` constructor." msgstr "" +"Renvoie la représentation formatée de *object*. Cela prend en compte les " +"options passées au constructeur de la classe :class:`PrettyPrinter`." #: ../Doc/library/pprint.rst:163 msgid "" "Print the formatted representation of *object* on the configured stream, " "followed by a newline." msgstr "" +"Affiche sur le flux configuré la représentation formatée de *object*, suivie " +"d’une fin de ligne." #: ../Doc/library/pprint.rst:166 msgid "" @@ -147,6 +205,10 @@ msgid "" "more efficient since new :class:`PrettyPrinter` objects don't need to be " "created." msgstr "" +"Les méthodes suivantes fournissent les implémentations pour les fonctions " +"correspondantes de mêmes noms. L’utilisation de ces méthodes sur une " +"instance est légèrement plus efficace, car les nouveaux objets :class:" +"`PrettyPrinter` n’ont pas besoin d’être créés." #: ../Doc/library/pprint.rst:176 msgid "" @@ -156,10 +218,15 @@ msgid "" "class:`PrettyPrinter` is set and the object is deeper than allowed, this " "returns ``False``." msgstr "" +"Détermine si la représentation formatée de *object* est « lisible », ou si " +"elle peut être utilisée pour recomposer sa valeur en utilisant la fonction :" +"func:`eval`. Cela renvoie toujours ``False`` pour les objets récursifs. Si " +"le paramètre *depth* de la classe :class:`PrettyPrinter` est initialisé et " +"que l’objet est plus « profond » que permis, cela renvoie ``False``." #: ../Doc/library/pprint.rst:185 msgid "Determine if the object requires a recursive representation." -msgstr "" +msgstr "Détermine si l’objet nécessite une représentation récursive." #: ../Doc/library/pprint.rst:187 msgid "" @@ -167,6 +234,10 @@ msgid "" "objects are converted to strings. The default implementation uses the " "internals of the :func:`saferepr` implementation." msgstr "" +"Cette méthode est fournie sous forme de point d’entrée ou méthode (à " +"déclenchement) automatique (*hook* en anglais) pour permettre aux sous-" +"classes de modifier la façon dont les objets sont convertis en chaînes. " +"L’implémentation par défaut est celle de la fonction :func:`saferepr`." #: ../Doc/library/pprint.rst:194 msgid "" @@ -185,6 +256,21 @@ msgid "" "the current level; recursive calls should be passed a value less than that " "of the current call." msgstr "" +"Renvoie trois valeurs : la version formatée de *object* sous forme de chaîne " +"de caractères, une option indiquant si le résultat est « lisible », et une " +"option indiquant si une récursion a été détectée. Le premier argument est " +"l’objet à représenter. Le deuxième est un dictionnaire qui contient l'\\ :" +"func:`id` des objets (conteneurs directs ou indirects de *objet* qui " +"affectent sa représentation) qui font partie du contexte de représentation " +"courant tel que les clés; si un objet doit être représenté, mais l’a déjà " +"été dans ce contexte, le troisième argument renvoie ``True``. Des appels " +"récursifs à la méthode :meth:`.format` doivent ajouter des entrés " +"additionnelles aux conteneurs de ce dictionnaire. Le troisième argument " +"*maxlevels*, donne la limite maximale de récursivité; la valeur par défaut " +"est ``0``. Cet argument doit être passé non modifié pour des appels non " +"récursifs. Le quatrième argument, *level*, donne le niveau de récursivité " +"courant; les appels récursifs doivent être passés à une valeur inférieure à " +"celle de l’appel courant." #: ../Doc/library/pprint.rst:212 msgid "Example" @@ -196,19 +282,29 @@ msgid "" "parameters, let's fetch information about a project from `PyPI `_::" msgstr "" +"Pour illustrer quelques cas pratiques de l’utilisation de la fonction :func:" +"`pprint` et de ses paramètres, allons chercher des informations sur un " +"projet `PyPI `_ : ::" #: ../Doc/library/pprint.rst:225 msgid "In its basic form, :func:`pprint` shows the whole object::" msgstr "" +"Dans sa forme basique, la fonction :func:`pprint` affiche l’intégralité de " +"l’objet : ::" #: ../Doc/library/pprint.rst:279 msgid "" "The result can be limited to a certain *depth* (ellipsis is used for deeper " "contents)::" msgstr "" +"Le résultat peut être limité à une certaine profondeur en initialisant " +"*depth*. ( ``…`` est utilisé pour des contenus plus « profonds ») : ::" #: ../Doc/library/pprint.rst:313 msgid "" "Additionally, maximum character *width* can be suggested. If a long object " "cannot be split, the specified width will be exceeded::" msgstr "" +"De plus, une valeur maximale de caractères sur une ligne peut être définie " +"en initialisant le paramètre *width*. Si un long objet ne peut être scindé, " +"la valeur donnée à *width* sera outrepassée : ::" diff --git a/library/pwd.po b/library/pwd.po index a53f6e375..bf5c3a71d 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -36,7 +36,7 @@ msgstr "" #: ../Doc/library/pwd.rst:18 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/pwd.rst:18 msgid "Attribute" @@ -56,7 +56,7 @@ msgstr "``pw_name``" #: ../Doc/library/pwd.rst:20 msgid "Login name" -msgstr "" +msgstr "Nom d’utilisateur" #: ../Doc/library/pwd.rst:22 msgid "1" @@ -116,7 +116,7 @@ msgstr "``pw_dir``" #: ../Doc/library/pwd.rst:30 msgid "User home directory" -msgstr "" +msgstr "Répertoire d’accueil de l’utilisateur" #: ../Doc/library/pwd.rst:32 msgid "6" @@ -167,11 +167,11 @@ msgstr "" #: ../Doc/library/pwd.rst:72 msgid "Module :mod:`grp`" -msgstr "" +msgstr "Module :mod:`grp`" #: ../Doc/library/pwd.rst:72 msgid "An interface to the group database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/pwd.rst:74 msgid "Module :mod:`spwd`" diff --git a/library/random.po b/library/random.po index 11038dc66..d8aac21e6 100644 --- a/library/random.po +++ b/library/random.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/random.rst:2 msgid ":mod:`random` --- Generate pseudo-random numbers" -msgstr "" +msgstr ":mod:`random` --- Génère des nombres pseudo-aléatoires" #: ../Doc/library/random.rst:7 msgid "**Source code:** :source:`Lib/random.py`" @@ -30,6 +30,8 @@ msgid "" "This module implements pseudo-random number generators for various " "distributions." msgstr "" +"Ce module implémente des générateurs de nombres pseudo-aléatoires pour " +"différentes distributions." #: ../Doc/library/random.rst:14 msgid "" @@ -38,6 +40,10 @@ msgid "" "permutation of a list in-place, and a function for random sampling without " "replacement." msgstr "" +"Pour les entiers, il existe une sélection uniforme à partir d'une plage. " +"Pour les séquences, il existe une sélection uniforme d'un élément aléatoire, " +"une fonction pour générer une permutation aléatoire d'une liste sur place et " +"une fonction pour un échantillonnage aléatoire sans remplacement." #: ../Doc/library/random.rst:19 msgid "" @@ -45,6 +51,10 @@ msgid "" "lognormal, negative exponential, gamma, and beta distributions. For " "generating distributions of angles, the von Mises distribution is available." msgstr "" +"Pour l'ensemble des réels, il y a des fonctions pour calculer des " +"distributions uniformes, normales (gaussiennes), log-normales, " +"exponentielles négatives, gamma et bêta. Pour générer des distributions " +"d'angles, la distribution de *von Mises* est disponible." #: ../Doc/library/random.rst:23 msgid "" @@ -57,6 +67,16 @@ msgid "" "However, being completely deterministic, it is not suitable for all " "purposes, and is completely unsuitable for cryptographic purposes." msgstr "" +"Presque toutes les fonctions du module dépendent de la fonction de base :" +"func:`.random`, qui génère un nombre à virgule flottante aléatoire de façon " +"uniforme dans la plage semi-ouverte [0.0, 1.0). Python utilise l'algorithme " +"*Mersenne Twister* comme générateur de base. Il produit des flottants de " +"précision de 53 bits et a une période de 2\\*\\*\\*19937-1. L'implémentation " +"sous-jacente en C est à la fois rapide et compatible avec les programmes " +"ayant de multiples fils d'exécution. Le *Mersenne Twister* est l'un des " +"générateurs de nombres aléatoires les plus largement testés qui existent. " +"Cependant, étant complètement déterministe, il n'est pas adapté à tous les " +"usages et est totalement inadapté à des fins cryptographiques." #: ../Doc/library/random.rst:32 msgid "" @@ -64,6 +84,10 @@ msgid "" "instance of the :class:`random.Random` class. You can instantiate your own " "instances of :class:`Random` to get generators that don't share state." msgstr "" +"Les fonctions fournies par ce module dépendent en réalité de méthodes d’une " +"instance cachée de la classe :class:`random.Random`. Vous pouvez créer vos " +"propres instances de :class:`Random` pour obtenir des générateurs sans états " +"partagés." #: ../Doc/library/random.rst:36 msgid "" @@ -74,6 +98,13 @@ msgid "" "`~Random.getrandbits` method --- this allows :meth:`randrange` to produce " "selections over an arbitrarily large range." msgstr "" +"La classe :class:`Random` peut également être sous-classée si vous voulez " +"utiliser un générateur de base différent, de votre propre conception. Dans " +"ce cas, remplacez les méthodes :meth:`~Random.random`, :meth:`~Random." +"seed`, :meth:`~Random.gettsate` et :meth:`~Random.setstate`. En option, un " +"nouveau générateur peut fournir une méthode :meth:`~Random.getrandbits` --- " +"ce qui permet à :meth:`randrange` de produire des sélections sur une plage " +"de taille arbitraire." #: ../Doc/library/random.rst:42 msgid "" diff --git a/library/re.po b/library/re.po index 2c7cf07c5..171ff09b7 100644 --- a/library/re.po +++ b/library/re.po @@ -276,7 +276,7 @@ msgstr "" #: ../Doc/library/re.rst:122 msgid "``+``" -msgstr "" +msgstr "``+``" #: ../Doc/library/re.rst:120 msgid "" @@ -382,7 +382,7 @@ msgstr "" #: ../Doc/library/re.rst:169 msgid "``\\``" -msgstr "" +msgstr "``\\``" #: ../Doc/library/re.rst:159 msgid "" @@ -1358,7 +1358,7 @@ msgstr "" #: ../Doc/library/re.rst:619 msgid "Corresponds to the inline flag ``(?x)``." -msgstr "" +msgstr "Correspond à l'option de groupe ``(?x)``." #: ../Doc/library/re.rst:624 msgid "" @@ -1656,6 +1656,9 @@ msgid "" "This functions must not be used for the replacement string in :func:`sub` " "and :func:`subn`, only backslashes should be escaped. For example::" msgstr "" +"Ces fonctions ne doivent pas être utilisées pour la chaîne de remplacement " +"dans :func:`sub` et :func:`subn`, seuls les antislash devraient être " +"échappés. Par exemple ::" #: ../Doc/library/re.rst:837 msgid "The ``'_'`` character is no longer escaped." diff --git a/library/resource.po b/library/resource.po index 2181dff05..2e984ad97 100644 --- a/library/resource.po +++ b/library/resource.po @@ -309,7 +309,7 @@ msgstr "" #: ../Doc/library/resource.rst:279 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/resource.rst:279 msgid "Field" diff --git a/library/shutil.po b/library/shutil.po index 295c6a5d1..0e2ab17e0 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/shutil.rst:2 msgid ":mod:`shutil` --- High-level file operations" -msgstr "" +msgstr ":mod:`shutil` --- Opérations de haut niveau sur les fichiers" #: ../Doc/library/shutil.rst:10 msgid "**Source code:** :source:`Lib/shutil.py`" diff --git a/library/socketserver.po b/library/socketserver.po index 58b8a7dfc..0f6072206 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -198,7 +198,7 @@ msgstr "" #: ../Doc/library/socketserver.rst:166 msgid "Server Objects" -msgstr "" +msgstr "Objets Serveur" #: ../Doc/library/socketserver.rst:170 msgid "" diff --git a/library/spwd.po b/library/spwd.po index 46cfe5ad1..3a4c4337b 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -19,19 +19,24 @@ msgstr "" #: ../Doc/library/spwd.rst:2 msgid ":mod:`spwd` --- The shadow password database" -msgstr "" +msgstr ":mod:`spwd` — La base de données de mots de passe *shadow*" #: ../Doc/library/spwd.rst:10 msgid "" "This module provides access to the Unix shadow password database. It is " "available on various Unix versions." msgstr "" +"Ce module permet d'accéder à la base de données UNIX de mots de passe " +"*shadow*. Elle est disponible sur différentes versions d'UNIX." #: ../Doc/library/spwd.rst:13 msgid "" "You must have enough privileges to access the shadow password database (this " "usually means you have to be root)." msgstr "" +"Vous devez disposer des droits suffisants pour accéder à la base de données " +"de mots de passe *shadow* (cela signifie généralement que vous devez être " +"*root*)." #: ../Doc/library/spwd.rst:16 msgid "" @@ -39,10 +44,14 @@ msgid "" "attributes correspond to the members of the ``spwd`` structure (Attribute " "field below, see ````):" msgstr "" +"Les entrées de la base de données de mots de passe *shadow* sont renvoyées " +"comme un objet semblable à un tuple, dont les attributs correspondent aux " +"membres de la structure ``spwd`` (champ attribut ci-dessous, voir ````) :" #: ../Doc/library/spwd.rst:21 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/spwd.rst:21 msgid "Attribute" @@ -62,7 +71,7 @@ msgstr "``sp_namp``" #: ../Doc/library/spwd.rst:23 msgid "Login name" -msgstr "" +msgstr "Nom d’utilisateur" #: ../Doc/library/spwd.rst:25 msgid "1" @@ -74,7 +83,7 @@ msgstr "``sp_pwdp``" #: ../Doc/library/spwd.rst:25 msgid "Encrypted password" -msgstr "" +msgstr "Mot de passe haché" #: ../Doc/library/spwd.rst:27 msgid "2" @@ -86,7 +95,7 @@ msgstr "``sp_lstchg``" #: ../Doc/library/spwd.rst:27 msgid "Date of last change" -msgstr "" +msgstr "Date du dernier changement" #: ../Doc/library/spwd.rst:29 msgid "3" @@ -98,7 +107,7 @@ msgstr "``sp_min``" #: ../Doc/library/spwd.rst:29 msgid "Minimal number of days between changes" -msgstr "" +msgstr "Nombre minimal de jours entre les modifications" #: ../Doc/library/spwd.rst:32 msgid "4" @@ -110,7 +119,7 @@ msgstr "``sp_max``" #: ../Doc/library/spwd.rst:32 msgid "Maximum number of days between changes" -msgstr "" +msgstr "Nombre maximal de jours entre les modifications" #: ../Doc/library/spwd.rst:35 msgid "5" @@ -123,6 +132,8 @@ msgstr "``sp_warn``" #: ../Doc/library/spwd.rst:35 msgid "Number of days before password expires to warn user about it" msgstr "" +"Nombre de jours avant l'expiration du mot de passe pendant lequel " +"l'utilisateur doit être prévenu" #: ../Doc/library/spwd.rst:38 msgid "6" @@ -135,6 +146,8 @@ msgstr "``sp_inact``" #: ../Doc/library/spwd.rst:38 msgid "Number of days after password expires until account is disabled" msgstr "" +"Nombre de jours avant la désactivation du compte, suite à l'expiration du " +"mot de passe" #: ../Doc/library/spwd.rst:42 msgid "7" @@ -147,6 +160,8 @@ msgstr "``sp_expire``" #: ../Doc/library/spwd.rst:42 msgid "Number of days since 1970-01-01 when account expires" msgstr "" +"Date à laquelle le compte expire, en nombre de jours depuis le 1er janvier " +"1970" #: ../Doc/library/spwd.rst:45 msgid "8" @@ -165,39 +180,50 @@ msgid "" "The sp_namp and sp_pwdp items are strings, all others are integers. :exc:" "`KeyError` is raised if the entry asked for cannot be found." msgstr "" +"Les champs ``sp_namp`` et ``sp_pwdp`` sont des chaines de caractères, tous " +"les autres sont des entiers. :exc:`KeyError` est levée si l’entrée demandée " +"est introuvable." #: ../Doc/library/spwd.rst:51 msgid "The following functions are defined:" -msgstr "" +msgstr "Les fonctions suivantes sont définies :" #: ../Doc/library/spwd.rst:56 msgid "Return the shadow password database entry for the given user name." msgstr "" +"Renvoie l'entrée de base de données de mot de passe *shadow* pour le nom " +"d'utilisateur donné." #: ../Doc/library/spwd.rst:58 msgid "" "Raises a :exc:`PermissionError` instead of :exc:`KeyError` if the user " "doesn't have privileges." msgstr "" +"Lève une :exc:`PermissionError` au lieu d’une :exc:`KeyError` si " +"l’utilisateur n’a pas les droits suffisants." #: ../Doc/library/spwd.rst:64 msgid "" "Return a list of all available shadow password database entries, in " "arbitrary order." msgstr "" +"Renvoie une liste de toutes les entrées de la base de données de mots de " +"passe *shadow*, dans un ordre arbitraire." #: ../Doc/library/spwd.rst:71 msgid "Module :mod:`grp`" -msgstr "" +msgstr "Module :mod:`grp`" #: ../Doc/library/spwd.rst:71 msgid "An interface to the group database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/spwd.rst:73 msgid "Module :mod:`pwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/spwd.rst:74 msgid "An interface to the normal password database, similar to this." msgstr "" +"Interface pour la base de données (normale) des mots de passe, semblable à " +"ceci." diff --git a/library/sqlite3.po b/library/sqlite3.po index b53c1916f..45a7c42bf 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" -msgstr "" +msgstr ":mod:`sqlite3` — Interface DB-API 2.0 pour bases de données SQLite" #: ../Doc/library/sqlite3.rst:9 msgid "**Source code:** :source:`Lib/sqlite3/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/sqlite3/`" #: ../Doc/library/sqlite3.rst:13 msgid "" @@ -34,6 +34,13 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." #: ../Doc/library/sqlite3.rst:20 msgid "" @@ -41,6 +48,8 @@ msgid "" "interface compliant with the DB-API 2.0 specification described by :pep:" "`249`." msgstr "" +"Le module *sqlite3* a été écrit par Gerhard Häring. Il fournit une " +"interface SQL conforme à la spécification DB-API 2.0 décrite par :pep:`249`." #: ../Doc/library/sqlite3.rst:23 msgid "" @@ -48,23 +57,33 @@ msgid "" "represents the database. Here the data will be stored in the :file:`example." "db` file::" msgstr "" +"Pour utiliser le module, vous devez d’abord créer une :class:`Connection` " +"qui représente la base de données. Dans cet exemple, les données sont " +"stockées dans le fichier :file:`example.db` ::" #: ../Doc/library/sqlite3.rst:30 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." #: ../Doc/library/sqlite3.rst:32 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`~Cursor.execute` method to perform SQL commands::" msgstr "" +"Une fois que vous avez une instance de :class:`Connection`, vous pouvez " +"créer un objet :class:`Cursor` et appeler sa méthode :meth:`~Cursor.execute` " +"pour exécuter les commandes SQL ::" #: ../Doc/library/sqlite3.rst:51 msgid "" "The data you've saved is persistent and is available in subsequent sessions::" msgstr "" +"Les données que vous avez sauvegardées sont persistantes et disponibles dans " +"les sessions suivantes ::" #: ../Doc/library/sqlite3.rst:57 msgid "" @@ -73,6 +92,11 @@ msgid "" "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack (see https://xkcd.com/327/ for humorous example of what can go wrong)." msgstr "" +"Habituellement, vos opérations SQL utilisent les valeurs de variables " +"Python. Vous ne devez pas assembler votre requête à l'aide des opérations " +"sur les chaînes de caractères de Python, car cela n'est pas sûr. Cela rend " +"votre programme vulnérable à une attaque par injection SQL (voir https://" +"xkcd.com/327/ pour un exemple amusant de ce qui peut mal tourner)." #: ../Doc/library/sqlite3.rst:62 msgid "" @@ -82,6 +106,11 @@ msgid "" "method. (Other database modules may use a different placeholder, such as ``" "%s`` or ``:1``.) For example::" msgstr "" +"À la place, utilisez la capacité DB-API de substitution des paramètres. " +"Placez un ``?`` comme indicateur partout où vous voulez utiliser une valeur, " +"puis fournissez un *tuple* de valeurs comme second argument de la méthode :" +"meth:`~Cursor.execute`. D'autres modules de base de données peuvent utiliser " +"un espace réservé différent, tel que ``%s`` ou ``:1``. Par exemple ::" #: ../Doc/library/sqlite3.rst:84 msgid "" @@ -90,30 +119,39 @@ msgid "" "fetchone` method to retrieve a single matching row, or call :meth:`~Cursor." "fetchall` to get a list of the matching rows." msgstr "" +"Pour récupérer des données après avoir exécuté une instruction *SELECT*, " +"vous pouvez considérer le curseur comme un :term:`itérateur `, " +"appeler la méthode du curseur :meth:`~Cursor.fetchone` pour récupérer une " +"seule ligne correspondante ou appeler :meth:`~Cursor.fetchall` pour obtenir " +"une liste des lignes correspondantes." #: ../Doc/library/sqlite3.rst:89 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Cet exemple utilise la forme itérateur ::" #: ../Doc/library/sqlite3.rst:104 msgid "https://github.com/ghaering/pysqlite" -msgstr "" +msgstr "https://github.com/ghaering/pysqlite" #: ../Doc/library/sqlite3.rst:103 msgid "" "The pysqlite web page -- sqlite3 is developed externally under the name " "\"pysqlite\"." msgstr "" +"La page web de *pysqlite* — *sqlite3* est développée sur un site tiers sous " +"le nom *pysqlite*." #: ../Doc/library/sqlite3.rst:108 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/library/sqlite3.rst:107 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." #: ../Doc/library/sqlite3.rst:111 msgid "http://www.w3schools.com/sql/" @@ -121,46 +159,56 @@ msgstr "" #: ../Doc/library/sqlite3.rst:111 msgid "Tutorial, reference and examples for learning SQL syntax." -msgstr "" +msgstr "Tutoriel, référence et exemples pour apprendre la syntaxe SQL." #: ../Doc/library/sqlite3.rst:113 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" #: ../Doc/library/sqlite3.rst:114 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP écrite par Marc-André Lemburg." #: ../Doc/library/sqlite3.rst:120 msgid "Module functions and constants" -msgstr "" +msgstr "Fonctions et constantes du module" #: ../Doc/library/sqlite3.rst:125 msgid "" "The version number of this module, as a string. This is not the version of " "the SQLite library." msgstr "" +"Le numéro de version de ce module, sous forme de chaîne. Ce n'est pas la " +"version de la bibliothèque SQLite." #: ../Doc/library/sqlite3.rst:131 msgid "" "The version number of this module, as a tuple of integers. This is not the " "version of the SQLite library." msgstr "" +"Le numéro de version de ce module, sous forme d'un n-uplet d'entiers. Ce " +"n'est pas la version de la bibliothèque SQLite." #: ../Doc/library/sqlite3.rst:137 msgid "The version number of the run-time SQLite library, as a string." msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme de " +"chaîne." #: ../Doc/library/sqlite3.rst:142 msgid "" "The version number of the run-time SQLite library, as a tuple of integers." msgstr "" +"Le numéro de version de la bibliothèque d'exécution SQLite, sous forme " +"d'entier." #: ../Doc/library/sqlite3.rst:147 ../Doc/library/sqlite3.rst:160 msgid "" "This constant is meant to be used with the *detect_types* parameter of the :" "func:`connect` function." msgstr "" +"Cette constante est destinée à être utilisée avec le paramètre " +"*detect_types* de la fonction :func:`connect`." #: ../Doc/library/sqlite3.rst:150 msgid "" @@ -171,6 +219,11 @@ msgid "" "look into the converters dictionary and use the converter function " "registered for that type there." msgstr "" +"Si elle est définie, le module :mod:`sqlite3` analyse le type de donnée " +"déclarée pour chaque colonne. Il déduit le type du premier mot de la " +"déclaration, par exemple de *integer primary key* il gardera *integer*, ou " +"de *number(10)* il gardera *number*. Ensuite, pour cette colonne, il " +"utilisera une fonction de conversion du dictionnaire des convertisseurs." #: ../Doc/library/sqlite3.rst:163 msgid "" @@ -184,6 +237,14 @@ msgid "" "parse out everything until the first blank for the column name: the column " "name would simply be \"x\"." msgstr "" +"Permet à l’interface SQLite d'analyser le nom pour chaque colonne. Il y " +"cherchera une chaîne comme ``[mytype]`` indiquant que la colonne est de type " +"``mytype``. Il essaiera de trouver une entrée *mytype* dans le dictionnaire, " +"puis utilisera la fonction de conversion qui s'y trouve pour renvoyer la " +"valeur. Le nom de colonne donnée à :attr:`Cursor.description` n'est alors " +"que le premier mot du nom de la colonne, par exemple si vous utilisez ``'as " +"\\\"x [datetime]\\\"'`` dans votre code SQL, le nom de la colonne sera " +"simplement *x*." #: ../Doc/library/sqlite3.rst:175 msgid "" @@ -311,7 +372,7 @@ msgstr "" #: ../Doc/library/sqlite3.rst:269 msgid "Connection Objects" -msgstr "" +msgstr "Objets de connexions" #: ../Doc/library/sqlite3.rst:273 msgid "A SQLite database connection has the following attributes and methods:" @@ -867,11 +928,11 @@ msgstr "Type Python" #: ../Doc/library/sqlite3.rst:790 ../Doc/library/sqlite3.rst:807 msgid "SQLite type" -msgstr "" +msgstr "SQLite type" #: ../Doc/library/sqlite3.rst:792 ../Doc/library/sqlite3.rst:809 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" #: ../Doc/library/sqlite3.rst:792 ../Doc/library/sqlite3.rst:809 msgid "``NULL``" @@ -895,7 +956,7 @@ msgstr "``REAL``" #: ../Doc/library/sqlite3.rst:798 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" #: ../Doc/library/sqlite3.rst:798 ../Doc/library/sqlite3.rst:815 msgid "``TEXT``" @@ -903,7 +964,7 @@ msgstr "``TEXT``" #: ../Doc/library/sqlite3.rst:800 ../Doc/library/sqlite3.rst:818 msgid ":class:`bytes`" -msgstr "" +msgstr ":class:`bytes`" #: ../Doc/library/sqlite3.rst:800 ../Doc/library/sqlite3.rst:818 msgid "``BLOB``" diff --git a/library/stringprep.po b/library/stringprep.po index 3fd24504a..f9911b129 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/stringprep.rst:2 msgid ":mod:`stringprep` --- Internet String Preparation" -msgstr "" +msgstr ":mod:`stringprep` — Préparation des chaines de caractères internet" #: ../Doc/library/stringprep.rst:10 msgid "**Source code:** :source:`Lib/stringprep.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/stringprep.py`" #: ../Doc/library/stringprep.rst:14 msgid "" @@ -34,6 +34,13 @@ msgid "" "possible identifications, to allow only identifications consisting of " "\"printable\" characters." msgstr "" +"Nommer les différentes choses d'internet (comme les hôtes) amène souvent au " +"besoin de comparer ces identifiants, ce qui nécessite un critère " +"d'« égalité ». La manière dont cette comparaison est effectuée dépend du " +"domaine d'application, c'est-à-dire si elle doit être sensible à la casse ou " +"non. Il peut être aussi nécessaire de restreindre les identifiants " +"possibles, pour permettre uniquement les identifiants composés de caractères " +"« imprimables »." #: ../Doc/library/stringprep.rst:21 msgid "" @@ -46,6 +53,15 @@ msgid "" "``stringprep`` profile is ``nameprep``, which is used for internationalized " "domain names." msgstr "" +"La :rfc:`3454` définit une procédure pour \"préparer\" des chaines de " +"caractères Unicode dans les protocoles internet. Avant de passer des chaines " +"de caractères sur le câble, elles sont traitées avec la procédure de " +"préparation, après laquelle ils obtiennent une certaines forme normalisée. " +"Les RFC définissent un lot de tables, qui peuvent être combinées en profils. " +"Chaque profil doit définir quelles tables il utilise et quelles autres " +"parties optionnelles de la procédure *stringprep* font partie du profil. Un " +"exemple de profil *stringprep* est *nameprep*, qui est utilisé pour les noms " +"de domaine internationalisés." #: ../Doc/library/stringprep.rst:29 msgid "" @@ -54,6 +70,11 @@ msgid "" "the module uses the Unicode character database internally. The module source " "code itself was generated using the ``mkstringprep.py`` utility." msgstr "" +"Le module :mod:`stringprep` expose uniquement les tables de la :rfc:`3454`. " +"Comme ces tables seraient très grandes à représenter en tant que " +"dictionnaires ou listes, le module utilise, en interne, la base de données " +"des caractères Unicode. Le code source du module, lui-même, a été généré en " +"utilisant l'utilitaire ``mkstringprep.py``." #: ../Doc/library/stringprep.rst:34 msgid "" @@ -64,100 +85,135 @@ msgid "" "the mapping function: given the key, it returns the associated value. Below " "is a list of all functions available in the module." msgstr "" +"En conséquence, ces tables sont exposées en tant que fonctions et non en " +"structures de données. Il y a deux types de tables dans la RFC : les " +"ensemble et les mises en correspondance. Pour un ensemble, :mod:`stringprep` " +"fournit la \"fonction caractéristique\", c'est-à-dire une fonction qui " +"renvoie vrai si le paramètre fait partie de l'ensemble. Pour les mises en " +"correspondance, il fournit la fonction de mise en correspondance : ayant " +"obtenu la clé, il renvoie la valeur associée. Ci-dessous se trouve une liste " +"de toutes les fonctions disponibles dans le module." #: ../Doc/library/stringprep.rst:44 msgid "" "Determine whether *code* is in tableA.1 (Unassigned code points in Unicode " "3.2)." msgstr "" +"Détermine si le code est en table A.1 (points de code non-assigné dans " +"Unicode 3.2)." #: ../Doc/library/stringprep.rst:49 msgid "Determine whether *code* is in tableB.1 (Commonly mapped to nothing)." msgstr "" +"Détermine si le code est en table B.1 (habituellement mis en correspondance " +"avec rien)." #: ../Doc/library/stringprep.rst:54 msgid "" "Return the mapped value for *code* according to tableB.2 (Mapping for case-" "folding used with NFKC)." msgstr "" +"Renvoie la valeur correspondante à *code* selon la table B.2 (mise en " +"correspondance pour la gestion de la casse utilisée avec *NFKC*)." #: ../Doc/library/stringprep.rst:60 msgid "" "Return the mapped value for *code* according to tableB.3 (Mapping for case-" "folding used with no normalization)." msgstr "" +"Renvoie la valeur correspondante à *code* dans la table B.3 (mise en " +"correspondance pour la gestion de la casse utilisée sans normalisation)." #: ../Doc/library/stringprep.rst:66 msgid "Determine whether *code* is in tableC.1.1 (ASCII space characters)." msgstr "" +"Détermine si le code est dans la table C.1.1 (caractères d'espacement ASCII)." #: ../Doc/library/stringprep.rst:71 msgid "" "Determine whether *code* is in tableC.1.2 (Non-ASCII space characters)." msgstr "" +"Détermine si le code est dans la table C.1.2 (caractères d'espacement non " +"ASCII)." #: ../Doc/library/stringprep.rst:76 msgid "" "Determine whether *code* is in tableC.1 (Space characters, union of C.1.1 " "and C.1.2)." msgstr "" +"Détermine si le code est dans la table C.1 (caractères d'espacement, union " +"de C.1.1 et C.1.2)." #: ../Doc/library/stringprep.rst:82 msgid "Determine whether *code* is in tableC.2.1 (ASCII control characters)." msgstr "" +"Détermine si le code est dans la table C.2.1 (caractères de contrôle ASCII)." #: ../Doc/library/stringprep.rst:87 msgid "" "Determine whether *code* is in tableC.2.2 (Non-ASCII control characters)." msgstr "" +"Détermine si le code est en table C.2.2 (caractères de contrôle non ASCII)." #: ../Doc/library/stringprep.rst:92 msgid "" "Determine whether *code* is in tableC.2 (Control characters, union of C.2.1 " "and C.2.2)." msgstr "" +"Détermine si le code est dans la table C.2 (caractères de contrôle, union de " +"C.2.1 et C.2.2)." #: ../Doc/library/stringprep.rst:98 msgid "Determine whether *code* is in tableC.3 (Private use)." -msgstr "" +msgstr "Détermine si le code est en table C.3 (usage privé)." #: ../Doc/library/stringprep.rst:103 msgid "Determine whether *code* is in tableC.4 (Non-character code points)." msgstr "" +"Détermine si le code est dans la table C.4 (points de code non-caractère)." #: ../Doc/library/stringprep.rst:108 msgid "Determine whether *code* is in tableC.5 (Surrogate codes)." -msgstr "" +msgstr "Détermine si le code est en table C.5 (codes substituts)." #: ../Doc/library/stringprep.rst:113 msgid "" "Determine whether *code* is in tableC.6 (Inappropriate for plain text)." msgstr "" +"Détermine si le code est dans la table C.6 (Inapproprié pour texte brut)." #: ../Doc/library/stringprep.rst:118 msgid "" "Determine whether *code* is in tableC.7 (Inappropriate for canonical " "representation)." msgstr "" +"Détermine si le code est dans la table C.7 (inapproprié pour les " +"représentations *canonics1*)." #: ../Doc/library/stringprep.rst:124 msgid "" "Determine whether *code* is in tableC.8 (Change display properties or are " "deprecated)." msgstr "" +"Détermine si le code est dans la table C.8 (change de propriétés d'affichage " +"ou sont obsolètes)." #: ../Doc/library/stringprep.rst:130 msgid "Determine whether *code* is in tableC.9 (Tagging characters)." -msgstr "" +msgstr "Détermine si le code est dans la table C.9 (caractères de marquage)." #: ../Doc/library/stringprep.rst:135 msgid "" "Determine whether *code* is in tableD.1 (Characters with bidirectional " "property \"R\" or \"AL\")." msgstr "" +"Détermine si le code est en table D.1 (caractères avec propriété " +"bidirectionnelle \"R\" ou \"AL\")." #: ../Doc/library/stringprep.rst:141 msgid "" "Determine whether *code* is in tableD.2 (Characters with bidirectional " "property \"L\")." msgstr "" +"Détermine si le code est dans la table D.2 (caractères avec propriété " +"bidirectionnelle \"L\")." diff --git a/library/sysconfig.po b/library/sysconfig.po index 034c53b43..28707d132 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -291,7 +291,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:181 msgid "Examples of returned values:" -msgstr "" +msgstr "Exemples de valeurs renvoyées :" #: ../Doc/library/sysconfig.rst:183 msgid "linux-i586" diff --git a/library/tarfile.po b/library/tarfile.po index c0f3bba6e..1706cdffb 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -649,6 +649,8 @@ msgstr "" #: ../Doc/library/tarfile.rst:402 ../Doc/library/tarfile.rst:433 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/tarfile.rst:408 msgid "" @@ -891,7 +893,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:670 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/tarfile.rst:674 msgid "" @@ -907,7 +909,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:684 msgid "Passing a directory is also acceptable:" -msgstr "" +msgstr "Passer un répertoire est aussi possible :" #: ../Doc/library/tarfile.rst:690 msgid "" @@ -927,7 +929,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:712 msgid "Command-line options" -msgstr "" +msgstr "Options de la ligne de commande" #: ../Doc/library/tarfile.rst:717 msgid "List files in a tarfile." diff --git a/library/telnetlib.po b/library/telnetlib.po index 1455b22c4..a3d99a20a 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -188,7 +188,7 @@ msgstr "" #: ../Doc/library/telnetlib.rst:160 msgid "Close the connection." -msgstr "" +msgstr "Ferme la connexion." #: ../Doc/library/telnetlib.rst:165 msgid "Return the socket object used internally." diff --git a/library/tempfile.po b/library/tempfile.po index dab02879c..2fb1e568b 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tempfile.rst:2 msgid ":mod:`tempfile` --- Generate temporary files and directories" -msgstr "" +msgstr ":mod:`tempfile` — Génération de fichiers et répertoires temporaires" #: ../Doc/library/tempfile.rst:9 msgid "**Source code:** :source:`Lib/tempfile.py`" @@ -34,6 +34,13 @@ msgid "" "managers. :func:`mkstemp` and :func:`mkdtemp` are lower-level functions " "which require manual cleanup." msgstr "" +"Ce module crée des fichiers et répertoires temporaires. Il fonctionne sur " +"toutes les plateformes supportées. :class:`TemporaryFile`, :class:" +"`NamedTemporaryFile`, :class:`TemporaryDirectory`, et :class:" +"`SpooledTemporaryFile` sont des interfaces haut-niveau qui fournissent un " +"nettoyage automatique et peuvent être utilisées comme gestionnaire de " +"contexte. :func:`mkstemp` et :func:`mkdtemp` sont des fonctions bas-niveau " +"qui nécessitent un nettoyage manuel." #: ../Doc/library/tempfile.rst:24 msgid "" @@ -45,10 +52,20 @@ msgid "" "order is somewhat odd; it is recommended to use keyword arguments for " "clarity." msgstr "" +"Toutes les fonctions et constructeurs appelables par l'utilisateur ont des " +"arguments additionnels qui permettent de contrôler directement le chemin et " +"le nom des répertoires et fichiers. Les noms de fichiers utilisés par ce " +"module incluent une chaîne de caractères aléatoires qui leur permet d'être " +"créés de manière sécurisée dans des répertoires temporaires partagés. Afin " +"de maintenir la compatibilité descendante, l'ordre des arguments est quelque " +"peu étrange ; pour des questions de clarté, il est recommandé d'utiliser les " +"arguments nommés." #: ../Doc/library/tempfile.rst:32 msgid "The module defines the following user-callable items:" msgstr "" +"Le module définit les éléments suivants pouvant être appelés par " +"l'utilisateur :" #: ../Doc/library/tempfile.rst:36 msgid "" @@ -61,6 +78,15 @@ msgid "" "rely on a temporary file created using this function having or not having a " "visible name in the file system." msgstr "" +"Renvoie un :term:`objet fichier ` qui peut être utilisé " +"comme une zone de stockage temporaire. Le fichier est créé de manière " +"sécurisé, utilisant les mêmes règles que :func:`mkstemp`. Il sera détruit " +"dès qu'il sera fermé (y compris lorsque le fichier est implicitement fermé " +"quand il est collecté par le ramasse-miette). Sous Unix, l'entrée du " +"répertoire n'est soit pas du tout créée, ou est supprimée immédiatement " +"après sa création. Les autres plateformes ne gèrent pas cela, votre code ne " +"doit pas compter sur un fichier temporaire créé en utilisant cette fonction " +"ayant ou non un nom visible sur le système de fichier." #: ../Doc/library/tempfile.rst:44 msgid "" @@ -68,6 +94,9 @@ msgid "" "examples`). On completion of the context or destruction of the file object " "the temporary file will be removed from the filesystem." msgstr "" +"L'objet résultat peut être utilisé comme un gestionnaire de contexte (voir :" +"ref:`tempfile-examples`). Une fois le contexte ou la destruction de l'objet " +"fichier terminé, le fichier temporaire sera supprimé du système de fichiers." #: ../Doc/library/tempfile.rst:49 msgid "" @@ -77,12 +106,19 @@ msgid "" "stored. *buffering*, *encoding* and *newline* are interpreted as for :func:" "`open`." msgstr "" +"Le paramètre *mode* vaut par défaut ``'w+b'`` afin que le fichier créé " +"puisse être lu et écrit sans être fermé. Le mode binaire est utilisé afin " +"que le comportement soit le même sur toutes les plateformes quelque soit la " +"donnée qui est stockée. *buffering*, *encoding* et *newline* sont " +"interprétés de la même façon que pour :func:`open`." #: ../Doc/library/tempfile.rst:55 msgid "" "The *dir*, *prefix* and *suffix* parameters have the same meaning and " "defaults as with :func:`mkstemp`." msgstr "" +"Les paramètres *dir*, *prefix* et *suffix* ont la même signification et même " +"valeur par défaut que :func:`mkstemp`." #: ../Doc/library/tempfile.rst:58 msgid "" @@ -90,16 +126,21 @@ msgid "" "platforms, it is a file-like object whose :attr:`!file` attribute is the " "underlying true file object." msgstr "" +"L'objet renvoyé est un véritable fichier sur les plateformes POSIX. Sur les " +"autres plateformes, un objet fichier-compatible est retourné où l'attribut :" +"attr:`!file` est le véritable fichier." #: ../Doc/library/tempfile.rst:62 msgid "" "The :py:data:`os.O_TMPFILE` flag is used if it is available and works (Linux-" "specific, requires Linux kernel 3.11 or later)." msgstr "" +"L'option :py:data:`os.O_TMPFILE` est utilisé s'il est disponible et " +"fonctionne (Linux exclusivement, nécessite un noyau Linux 3.11 ou plus)." #: ../Doc/library/tempfile.rst:67 msgid "The :py:data:`os.O_TMPFILE` flag is now used if available." -msgstr "" +msgstr "L'option :py:data:`os.O_TMPFILE` est maintenant utilisé si disponible." #: ../Doc/library/tempfile.rst:72 msgid "" @@ -115,6 +156,19 @@ msgid "" "This file-like object can be used in a :keyword:`with` statement, just like " "a normal file." msgstr "" +"Cette fonction fonctionne exactement comme :func:`TemporaryFile`, à la " +"différence qu'il est garanti que le fichier soit visible dans le système de " +"fichier (sur Unix, l'entrée du répertoire est supprimée). Le nom peut être " +"récupéré depuis l'attribut :attr:`name` de l'objet fichier-compatible " +"retourné. Le fait que le nom puisse être utilisé pour ouvrir le fichier une " +"seconde fois, tant que le fichier temporaire nommé est toujours ouvert, " +"varie entre les plateformes (cela peut l'être sur Unix, mais c'est " +"impossible sur Windows NT et plus). Si *delete* est vrai (valeur par " +"défaut), le fichier est supprimé dès qu'il est fermé. L'objet retourné est " +"toujours un objet fichier-compatible où l'attribut :attr:`!file` est le " +"véritable fichier. L'objet fichier-compatible peut être utilisé dans un " +"gestionnaire de contexte (instruction :keyword:`with`), juste comme un " +"fichier normal." #: ../Doc/library/tempfile.rst:88 msgid "" @@ -123,12 +177,19 @@ msgid "" "the file's :func:`fileno` method is called, at which point the contents are " "written to disk and operation proceeds as with :func:`TemporaryFile`." msgstr "" +"Cette fonction se comporte exactement comme :func:`TemporaryFile`, à " +"l'exception que les données sont stockées en mémoire jusqu'à ce que leur " +"taille dépasse *max_size*, ou que la méthode :func:`fileno` soit appelée. À " +"ce moment, le contenu est écrit sur disque et le fonctionnement redevient " +"similaire à celui de :func:`TemporaryFile`." #: ../Doc/library/tempfile.rst:94 msgid "" "The resulting file has one additional method, :func:`rollover`, which causes " "the file to roll over to an on-disk file regardless of its size." msgstr "" +"Le fichier renvoyé a une méthode supplémentaire, :func:`rollover`, qui " +"provoque la mise en écriture sur disque quelque soit la taille du fichier." #: ../Doc/library/tempfile.rst:97 msgid "" @@ -138,10 +199,16 @@ msgid "" "depending on whether :func:`rollover` has been called. This file-like " "object can be used in a :keyword:`with` statement, just like a normal file." msgstr "" +"L'objet renvoyé est un objet fichier-compatible où l'attribut :attr:`_file` " +"est soit un objet :class:`io.BytesIO` soit un objet :class:`io.StringIO` (en " +"fonction du *mode*) soit un véritable fichier, si la fonction :func:" +"`rollover` a été appelée. Cet objet fichier-compatible peut être utilisé " +"dans un gestionnaire de contexte (instruction :keyword:`with`), comme un " +"fichier normal." #: ../Doc/library/tempfile.rst:104 msgid "the truncate method now accepts a ``size`` argument." -msgstr "" +msgstr "la méthode de troncature accepte maintenant un argument ``size``." #: ../Doc/library/tempfile.rst:110 msgid "" @@ -151,6 +218,11 @@ msgid "" "of the temporary directory object the newly created temporary directory and " "all its contents are removed from the filesystem." msgstr "" +"Cette fonction crée un répertoire temporaire de manière sécurisée utilisant " +"les mêmes règles que :func:`mkdtemp`. L'objet renvoyé peut être utilisé " +"comme un gestionnaire de contexte (voir :ref:`tempfile-examples`). À la " +"sortie du contexte d’exécution ou à la destruction de l'objet, le répertoire " +"temporaire et tout son contenu sont supprimés du système de fichiers." #: ../Doc/library/tempfile.rst:116 msgid "" @@ -165,6 +237,8 @@ msgid "" "The directory can be explicitly cleaned up by calling the :func:`cleanup` " "method." msgstr "" +"Le répertoire peut être explicitement nettoyé en appelant la méthode :func:" +"`cleanup`." #: ../Doc/library/tempfile.rst:129 msgid "" @@ -176,12 +250,23 @@ msgid "" "executable by no one. The file descriptor is not inherited by child " "processes." msgstr "" +"Crée un fichier temporaire de la manière la plus sécurisée qui soit. Il n'y " +"a pas d'accès concurrent (``race condition``) au moment de la création du " +"fichier, en supposant que la plateforme implémente correctement l'option :" +"const:`os.O_EXCL` pour :func:`os.open`. Le fichier est seulement accessible " +"en lecture et écriture par l'ID de l'utilisateur créateur. Si la plateforme " +"utilise des bits de permissions pour indiquer si le fichier est exécutable, " +"alors le fichier n'est exécutable par personne. Le descripteur de fichier " +"n'est pas hérité par les processus fils." #: ../Doc/library/tempfile.rst:137 msgid "" "Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " "deleting the temporary file when done with it." msgstr "" +"À la différence de :func:`TemporaryFile`, l'utilisateur de :func:`mkstemp` " +"est responsable de la suppression du fichier temporaire quand il n'en a plus " +"besoin." #: ../Doc/library/tempfile.rst:140 msgid "" @@ -190,6 +275,10 @@ msgid "" "between the file name and the suffix; if you need one, put it at the " "beginning of *suffix*." msgstr "" +"Si *suffix* ne vaut pas ``None``, le nom de fichier se terminera avec ce " +"suffixe, sinon il n'y aura pas de suffixe. :func:`mkstemp` ne met pas de " +"point entre le nom du fichier et le suffixe. Si vous en avez besoin, mettez " +"le point au début de *suffix*." #: ../Doc/library/tempfile.rst:145 msgid "" @@ -197,6 +286,9 @@ msgid "" "otherwise, a default prefix is used. The default is the return value of :" "func:`gettempprefix` or :func:`gettempprefixb`, as appropriate." msgstr "" +"Si *prefix* ne vaut pas ``None``, le nom de fichier commencera avec ce " +"préfixe, sinon un préfixe par défaut est utilisé. La valeur par défaut est " +"la valeur retournée par :func:`gettempprefix` ou :func:`gettempprefixb`." #: ../Doc/library/tempfile.rst:149 msgid "" @@ -208,6 +300,14 @@ msgid "" "any nice properties, such as not requiring quoting when passed to external " "commands via ``os.popen()``." msgstr "" +"Si *dir* ne vaut pas ``None``, le fichier sera créé dans ce répertoire, " +"autrement, un répertoire par défaut sera utilisé. Le répertoire par défaut " +"est choisi depuis une liste dépendante de la plateforme, mais l'utilisateur " +"de l'application peut contrôler l'emplacement du répertoire en spécifiant " +"les variables d'environnement *TMPDIR*, *TEMP* ou *TMP*. Il n'y a pas de " +"garantie que le nom de fichier généré aura de bonnes propriétés telles que " +"ne pas avoir besoin de le mettre entre guillemets lorsque celui-ci est passé " +"à des commandes externes via ``os.popen()``." #: ../Doc/library/tempfile.rst:157 msgid "" @@ -216,12 +316,19 @@ msgid "" "str. If you want to force a bytes return value with otherwise default " "behavior, pass ``suffix=b''``." msgstr "" +"Si l'un des paramètres *suffix*, *prefix* et *dir* n'est pas ``None``, ils " +"doivent être du même type. S'ils sont de type ``bytes``, le nom renvoyée " +"sera de type ``bytes`` plutôt que de type ``str``. Si vous voulez forcer la " +"valeur renvoyée en ``bytes``, passez ``suffix=b''``." #: ../Doc/library/tempfile.rst:163 msgid "" "If *text* is specified, it indicates whether to open the file in binary mode " "(the default) or text mode. On some platforms, this makes no difference." msgstr "" +"Si *text* est spécifié, cela indique si le fichier doit être ouvert en mode " +"binaire (par défaut) ou en mode texte. Sur certaines plateformes, cela ne " +"fait aucune différence." #: ../Doc/library/tempfile.rst:167 msgid "" @@ -229,6 +336,10 @@ msgid "" "file (as would be returned by :func:`os.open`) and the absolute pathname of " "that file, in that order." msgstr "" +":func:`mkstemp` renvoie un n-uplet contenant un descripteur (*handle* en " +"anglais) au niveau du système d'exploitation vers un fichier ouvert (le même " +"que renvoie :func:`os.open`) et le chemin d'accès absolu de ce fichier, dans " +"cet ordre." #: ../Doc/library/tempfile.rst:171 ../Doc/library/tempfile.rst:192 msgid "" @@ -237,6 +348,10 @@ msgid "" "and *prefix* now accept and default to ``None`` to cause an appropriate " "default value to be used." msgstr "" +"*suffix*, *prefix*, et *dir* peuvent maintenant être spécifiés en ``bytes`` " +"pour obtenir un résultat en ``bytes``. Avant cela, le type ``str`` était le " +"seul autorisé. *suffix* et *prefix* acceptent maintenant la valeur par " +"défaut ``None`` pour que la valeur par défaut appropriée soit utilisée." #: ../Doc/library/tempfile.rst:180 msgid "" @@ -244,86 +359,111 @@ msgid "" "no race conditions in the directory's creation. The directory is readable, " "writable, and searchable only by the creating user ID." msgstr "" +"Crée un répertoire temporaire de la manière la plus sécurisée qu'il soit. Il " +"n'y a pas d'accès concurrent (``race condition``) au moment de la création " +"du répertoire. Le répertoire est accessible en lecture, en écriture, et son " +"contenu lisible uniquement pour l'ID de l'utilisateur créateur." #: ../Doc/library/tempfile.rst:184 msgid "" "The user of :func:`mkdtemp` is responsible for deleting the temporary " "directory and its contents when done with it." msgstr "" +"L'utilisateur de :func:`mkdtemp` est responsable de la suppression du " +"répertoire temporaire et de son contenu lorsqu'il n'en a plus besoin." #: ../Doc/library/tempfile.rst:187 msgid "" "The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" "`mkstemp`." msgstr "" +"Les arguments *prefix*, *suffix*, et *dir* sont les mêmes que pour :func:" +"`mkstemp`." #: ../Doc/library/tempfile.rst:190 msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." -msgstr "" +msgstr ":func:`mkdtemp` renvoie le chemin absolu du nouveau répertoire." #: ../Doc/library/tempfile.rst:201 msgid "" "Return the name of the directory used for temporary files. This defines the " "default value for the *dir* argument to all functions in this module." msgstr "" +"Renvoie le nom du répertoire utilisé pour les fichiers temporaires. C'est la " +"valeur par défaut pour l'argument *dir* de toutes les fonctions de ce module." #: ../Doc/library/tempfile.rst:205 msgid "" "Python searches a standard list of directories to find one which the calling " "user can create files in. The list is:" msgstr "" +"Python cherche un répertoire parmi une liste standard de répertoires dans " +"lequel l'utilisateur final peut créer des fichiers. La liste est :" #: ../Doc/library/tempfile.rst:208 msgid "The directory named by the :envvar:`TMPDIR` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMPDIR`." #: ../Doc/library/tempfile.rst:210 msgid "The directory named by the :envvar:`TEMP` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TEMP`." #: ../Doc/library/tempfile.rst:212 msgid "The directory named by the :envvar:`TMP` environment variable." msgstr "" +"Le répertoire correspondant à la variable d'environnement :envvar:`TMP`." #: ../Doc/library/tempfile.rst:214 msgid "A platform-specific location:" -msgstr "" +msgstr "Un emplacement dépendant à la plateforme :" #: ../Doc/library/tempfile.rst:216 msgid "" "On Windows, the directories :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" "\\TEMP`, and :file:`\\\\TMP`, in that order." msgstr "" +"Sur Windows, les répertoires :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" +"\\TEMP`, et :file:`\\\\TMP`, dans cet ordre." #: ../Doc/library/tempfile.rst:219 msgid "" "On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" "file:`/usr/tmp`, in that order." msgstr "" +"Sur toutes les autres plate-formes, les répertoires :file:`/tmp`, :file:`/" +"var/tmp`, et :file:`/usr/tmp`, dans cet ordre." #: ../Doc/library/tempfile.rst:222 msgid "As a last resort, the current working directory." -msgstr "" +msgstr "En dernier ressort, le répertoire de travail courant." #: ../Doc/library/tempfile.rst:224 msgid "" "The result of this search is cached, see the description of :data:`tempdir` " "below." msgstr "" +"Le résultat de cette recherche est mis en cache, voir la description de :" +"data:`tempdir` dessous." #: ../Doc/library/tempfile.rst:229 msgid "Same as :func:`gettempdir` but the return value is in bytes." msgstr "" +"Similaire à :func:`gettempdir` mais la valeur retournée est en *bytes*." #: ../Doc/library/tempfile.rst:235 msgid "" "Return the filename prefix used to create temporary files. This does not " "contain the directory component." msgstr "" +"Renvoie le préfixe de nom de fichier utilisé pour créer les fichiers " +"temporaires. Cela ne contient pas le nom du répertoire." #: ../Doc/library/tempfile.rst:240 msgid "Same as :func:`gettempprefix` but the return value is in bytes." msgstr "" +"Similaire à :func:`gettempprefix` mais la valeur retournée est en *bytes*." #: ../Doc/library/tempfile.rst:244 msgid "" @@ -333,12 +473,21 @@ msgid "" "this module take a *dir* argument which can be used to specify the directory " "and this is the recommended approach." msgstr "" +"Le module utilise une variable globale pour stocker le nom du répertoire " +"utilisé pour les fichiers temporaires renvoyés par :func:`gettempdir`. Vous " +"pouvez directement utiliser la variable globale pour surcharger le processus " +"de sélection, mais ceci est déconseillé. Toutes les fonctions de ce module " +"prennent un argument *dir* qui peut être utilisé pour spécifier le " +"répertoire. Il s'agit de la méthode recommandée." #: ../Doc/library/tempfile.rst:252 msgid "" "When set to a value other than ``None``, this variable defines the default " "value for the *dir* argument to the functions defined in this module." msgstr "" +"Quand une valeur autre que ``None`` est spécifiée, cette variable définit la " +"valeur par défaut pour l'argument *dir* des fonctions définies dans ce " +"module." #: ../Doc/library/tempfile.rst:256 msgid "" @@ -354,10 +503,11 @@ msgstr "Exemples" #: ../Doc/library/tempfile.rst:265 msgid "Here are some examples of typical usage of the :mod:`tempfile` module::" msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`tempfile` ::" #: ../Doc/library/tempfile.rst:296 msgid "Deprecated functions and variables" -msgstr "" +msgstr "Fonctions et variables obsolètes" #: ../Doc/library/tempfile.rst:298 msgid "" @@ -369,10 +519,18 @@ msgid "" "to combine the two steps and create the file immediately. This approach is " "used by :func:`mkstemp` and the other functions described above." msgstr "" +"Historiquement, la méthode pour créer des fichiers temporaires consistait à " +"générer un nom de fichier avec la fonction :func:`mktemp` puis créer un " +"fichier en utilisant ce nom. Malheureusement, cette méthode n'est pas fiable " +"car un autre processus peut créer un fichier avec ce nom entre l'appel à la " +"fonction :func:`mktemp` et la tentative de création de fichier par le " +"premier processus en cours. La solution est de combiner les deux étapes et " +"de créer le fichier immédiatement. Cette approche est utilisée par :func:" +"`mkstemp` et les autres fonctions décrites plus haut." #: ../Doc/library/tempfile.rst:309 msgid "Use :func:`mkstemp` instead." -msgstr "" +msgstr "Utilisez :func:`mkstemp` à la place." #: ../Doc/library/tempfile.rst:312 msgid "" @@ -381,6 +539,10 @@ msgid "" "those of :func:`mkstemp`, except that bytes file names, ``suffix=None`` and " "``prefix=None`` are not supported." msgstr "" +"Renvoie le chemin absolu d'un fichier qui n'existe pas lorsque l'appel est " +"fait. Les arguments *prefix*, *suffix*, et *dir* sont similaires à ceux de :" +"func:`mkstemp` mais les noms de fichiers en _bytes_, ``sufix=None`` et " +"``prefix=None`` ne sont pas implémentées." #: ../Doc/library/tempfile.rst:319 msgid "" @@ -390,3 +552,8 @@ msgid "" "easily with :func:`NamedTemporaryFile`, passing it the ``delete=False`` " "parameter::" msgstr "" +"Utiliser cette fonction peut introduire une faille de sécurité dans votre " +"programme. Avant que vous n'ayez le temps de faire quoi que ce soit avec le " +"nom de fichier renvoyé, quelqu'un peut l'utiliser. L'utilisation de :func:" +"`mktemp` peut être remplacée facilement avec :func:`NamedTemporaryFile` en y " +"passant le paramètre ``delete=False`` ::" diff --git a/library/textwrap.po b/library/textwrap.po index 5da6c5421..4d576fcd1 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/textwrap.rst:2 msgid ":mod:`textwrap` --- Text wrapping and filling" -msgstr "" +msgstr ":mod:`textwrap` --- Encapsulation et remplissage de texte" #: ../Doc/library/textwrap.rst:10 msgid "**Source code:** :source:`Lib/textwrap.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/textwrap.py`" #: ../Doc/library/textwrap.rst:14 msgid "" @@ -33,6 +33,11 @@ msgid "" "should be good enough; otherwise, you should use an instance of :class:" "`TextWrapper` for efficiency." msgstr "" +"Le module :mod:`textwrap` fournit quelques fonctions pratiques, comme :class:" +"`TextWrapper`, la classe qui fait tout le travail. Si vous ne faites que " +"formater ou ajuster une ou deux chaînes de texte, les fonctions de commodité " +"devraient être assez bonnes ; sinon, nous vous conseillons d'utiliser une " +"instance de :class:`TextWrapper` pour une meilleure efficacité." #: ../Doc/library/textwrap.rst:22 msgid "" @@ -40,34 +45,48 @@ msgid "" "*width* characters long. Returns a list of output lines, without final " "newlines." msgstr "" +"Reformate le paragraphe simple dans *text* (une chaîne de caractères) de " +"sorte que chaque ligne ait au maximum *largeur* caractères. Renvoie une " +"liste de lignes de sortie, sans ligne vide ou caractère de fin de ligne à la " +"fin." #: ../Doc/library/textwrap.rst:26 msgid "" "Optional keyword arguments correspond to the instance attributes of :class:" "`TextWrapper`, documented below. *width* defaults to ``70``." msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. *width* vaut ``70`` par " +"défaut." #: ../Doc/library/textwrap.rst:29 msgid "" "See the :meth:`TextWrapper.wrap` method for additional details on how :func:" "`wrap` behaves." msgstr "" +"Consultez la méthode :meth:`TextWrapper.wrap` pour plus de détails sur le " +"comportement de :func:`wrap`." #: ../Doc/library/textwrap.rst:35 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph. :func:`fill` is shorthand for ::" msgstr "" +"Formate le paragraphe unique dans *text* et renvoie une seule chaîne dont le " +"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour : :" #: ../Doc/library/textwrap.rst:40 msgid "" "In particular, :func:`fill` accepts exactly the same keyword arguments as :" "func:`wrap`." msgstr "" +"En particulier, :func:`fill` accepte exactement les mêmes arguments par mot-" +"clé que :func:`wrap`." #: ../Doc/library/textwrap.rst:46 msgid "Collapse and truncate the given *text* to fit in the given *width*." msgstr "" +"Réduit et tronque le *text* donné pour l'adapter à la *largeur* donnée." #: ../Doc/library/textwrap.rst:48 msgid "" @@ -76,6 +95,11 @@ msgid "" "Otherwise, enough words are dropped from the end so that the remaining words " "plus the :attr:`placeholder` fit within :attr:`width`::" msgstr "" +"Tout d'abord, les espaces dans *text* sont réduites (toutes les espaces " +"blancs sont remplacées par des espaces simples). Si le résultat tient dans " +"la *width*, il est renvoyé. Sinon, suffisamment de mots sont supprimés en " +"fin de chaîne de manière à ce que les mots restants plus le :attr:" +"`placeholder` tiennent dans :attr:`width`: :" #: ../Doc/library/textwrap.rst:60 msgid "" @@ -85,16 +109,25 @@ msgid "" "so changing the value of :attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`." "drop_whitespace`, and :attr:`.replace_whitespace` will have no effect." msgstr "" +"Les arguments par mot-clé optionnels correspondent aux attributs d'instance " +"de :class:`TextWrapper`, documentés ci-dessous. Notez que l'espace blanc " +"est réduit avant que le texte ne soit passé à la fonction :meth:`fill` de :" +"class:`TextWrapper`, donc changer la valeur de :attr:`.tabsize`, :attr:`." +"expand_tabs`, :attr:`.drop_whitespace`, et :attr:`.replace_whitespace` est " +"sans effet." #: ../Doc/library/textwrap.rst:71 msgid "Remove any common leading whitespace from every line in *text*." -msgstr "" +msgstr "Supprime toutes les espaces en de tête de chaque ligne dans *text*." #: ../Doc/library/textwrap.rst:73 msgid "" "This can be used to make triple-quoted strings line up with the left edge of " "the display, while still presenting them in the source code in indented form." msgstr "" +"Ceci peut être utilisé pour aligner les chaînes à trois guillemets avec le " +"bord gauche de l'affichage, tout en les présentant sous forme indentée dans " +"le code source." #: ../Doc/library/textwrap.rst:76 msgid "" @@ -102,6 +135,9 @@ msgid "" "equal: the lines ``\" hello\"`` and ``\"\\thello\"`` are considered to have " "no common leading whitespace." msgstr "" +"Notez que les tabulations et les espaces sont traitées comme des espaces, " +"mais qu'elles ne sont pas égales : les lignes ``\" hello\"`` et ``\"\\thello" +"\"`` sont considérées comme n'ayant pas d'espaces de tête communes." #: ../Doc/library/textwrap.rst:80 ../Doc/library/textwrap.rst:101 msgid "For example::" @@ -109,17 +145,19 @@ msgstr "Par exemple ::" #: ../Doc/library/textwrap.rst:94 msgid "Add *prefix* to the beginning of selected lines in *text*." -msgstr "" +msgstr "Ajoute *prefix* au début des lignes sélectionnées dans *text*." #: ../Doc/library/textwrap.rst:96 msgid "Lines are separated by calling ``text.splitlines(True)``." -msgstr "" +msgstr "Les lignes sont séparées en appelant ``text.splitlines(True)``." #: ../Doc/library/textwrap.rst:98 msgid "" "By default, *prefix* is added to all lines that do not consist solely of " "whitespace (including any line endings)." msgstr "" +"Par défaut, *prefix* est ajouté à toutes les lignes qui ne sont pas " +"constituées uniquement d'espaces (y compris les fins de ligne)." #: ../Doc/library/textwrap.rst:107 msgid "" @@ -127,6 +165,9 @@ msgid "" "indented. For example, it is easy to add *prefix* to even empty and " "whitespace-only lines::" msgstr "" +"L'argument optionnel *predicate* peut être utilisé pour contrôler quelles " +"lignes sont en retrait. Par exemple, il est facile d'ajouter *prefix* aux " +"lignes vides et aux lignes blanches seulement : :" #: ../Doc/library/textwrap.rst:120 msgid "" @@ -136,6 +177,12 @@ msgid "" "`wrap` and/or :func:`fill`, it may be more efficient to create your own :" "class:`TextWrapper` object." msgstr "" +":func:`wrap`, :func:`fill` et :func:`shorten` travaillent en créant une " +"instance :class:`TextWrapper` et en appelant une méthode unique sur celle-" +"ci. Cette instance n'est pas réutilisée, donc pour les applications qui " +"traitent plusieurs chaînes de texte en utilisant :func:`wrap` et/ou :func:" +"`fill`, il peut être plus efficace de créer votre propre objet :class:" +"`TextWrapper`." #: ../Doc/library/textwrap.rst:126 msgid "" @@ -143,6 +190,10 @@ msgid "" "hyphenated words; only then will long words be broken if necessary, unless :" "attr:`TextWrapper.break_long_words` is set to false." msgstr "" +"Le formatage du texte s'effectue en priorité sur les espaces puis juste " +"après les traits d'union dans des mots séparés par des traits d'union ; ce " +"n'est qu'alors que les mots longs seront cassés si nécessaire, à moins que :" +"attr:`TextWrapper.break_long_words` soit défini sur *False*." #: ../Doc/library/textwrap.rst:132 msgid "" @@ -150,10 +201,13 @@ msgid "" "arguments. Each keyword argument corresponds to an instance attribute, so " "for example ::" msgstr "" +"Le constructeur :class:`TextWrapper` accepte un certain nombre d'arguments " +"par mots-clés optionnels. Chaque argument par mot-clé correspond à un " +"attribut d'instance, donc par exemple : :" #: ../Doc/library/textwrap.rst:138 msgid "is the same as ::" -msgstr "" +msgstr "est identique à ::" #: ../Doc/library/textwrap.rst:143 msgid "" @@ -161,12 +215,17 @@ msgid "" "change any of its options through direct assignment to instance attributes " "between uses." msgstr "" +"Vous pouvez réutiliser le même objet :class:`TextWrapper` plusieurs fois et " +"vous pouvez changer n'importe laquelle de ses options par assignation " +"directe aux attributs d'instance entre les utilisations." #: ../Doc/library/textwrap.rst:147 msgid "" "The :class:`TextWrapper` instance attributes (and keyword arguments to the " "constructor) are as follows:" msgstr "" +"Les attributs d'instance de la classe :class:`TextWrapper` (et les arguments " +"par mot-clé au constructeur) sont les suivants :" #: ../Doc/library/textwrap.rst:153 msgid "" @@ -175,12 +234,19 @@ msgid "" "`TextWrapper` guarantees that no output line will be longer than :attr:" "`width` characters." msgstr "" +"(par défaut : ``70```) Longueur maximale des lignes reformatées. Tant qu'il " +"n'y a pas de mots individuels dans le texte d'entrée plus longs que :attr:" +"`width`, :class:`TextWrapper` garantit qu'aucune ligne de sortie n'est plus " +"longue que :attr:`width` caractères." #: ../Doc/library/textwrap.rst:161 msgid "" "(default: ``True``) If true, then all tab characters in *text* will be " "expanded to spaces using the :meth:`expandtabs` method of *text*." msgstr "" +"(par défaut : ``True``) Si `true`, alors tous les caractères de tabulation " +"dans *text* sont transformés en espaces en utilisant la méthode :meth:" +"`expandtabs` de *text*." #: ../Doc/library/textwrap.rst:167 msgid "" @@ -188,6 +254,9 @@ msgid "" "*text* will be expanded to zero or more spaces, depending on the current " "column and the given tab size." msgstr "" +"(par défaut : ``8``) Si :attr:`expand_tabs` est `true`, alors tous les " +"caractères de tabulation dans *text* sont transformés en zéro ou plus " +"d'espaces, selon la colonne courante et la taille de tabulation donnée." #: ../Doc/library/textwrap.rst:176 msgid "" @@ -196,6 +265,11 @@ msgid "" "space. The whitespace characters replaced are as follows: tab, newline, " "vertical tab, formfeed, and carriage return (``'\\t\\n\\v\\f\\r'``)." msgstr "" +"(par défaut : ``True``) Si `true`, après l'expansion des tabulations mais " +"avant le formatage, la méthode :meth:`wrap` remplace chaque *blanc* par une " +"espace unique. Les *blancs* remplacés sont les suivants : tabulation, " +"nouvelle ligne, tabulation verticale, saut de page et retour chariot (``'\\t" +"\\n\\v\\f\\r'``)." #: ../Doc/library/textwrap.rst:184 msgid "" @@ -203,6 +277,9 @@ msgid "" "tab character will be replaced by a single space, which is *not* the same as " "tab expansion." msgstr "" +"Si :attr:`expand_tabs` est *False* et :attr:`replace_whitespace` est vrai, " +"chaque caractère de tabulation est remplacé par une espace unique, ce qui " +"*n'est pas* la même chose que l'extension des tabulations." #: ../Doc/library/textwrap.rst:190 msgid "" @@ -211,6 +288,10 @@ msgid "" "paragraphs (using :meth:`str.splitlines` or similar) which are wrapped " "separately." msgstr "" +"Si :attr:`replace_whitespace` est faux, de nouvelles lignes peuvent " +"apparaître au milieu d'une ligne et provoquer une sortie étrange. Pour cette " +"raison, le texte doit être divisé en paragraphes (en utilisant :meth:`str." +"splitlines` ou similaire) qui sont formatés séparément." #: ../Doc/library/textwrap.rst:198 msgid "" @@ -220,6 +301,11 @@ msgid "" "follows it. If whitespace being dropped takes up an entire line, the whole " "line is dropped." msgstr "" +"(par défaut : ``True``) Si *True*, l'espace au début et à la fin de chaque " +"ligne (après le formatage mais avant l'indentation) est supprimée. L'espace " +"au début du paragraphe n'est cependant pas supprimée si elle n'est pas " +"suivie par une espace. Si les espaces en cours de suppression occupent une " +"ligne entière, la ligne entière est supprimée." #: ../Doc/library/textwrap.rst:207 msgid "" @@ -227,6 +313,9 @@ msgid "" "output. Counts towards the length of the first line. The empty string is " "not indented." msgstr "" +"(par défaut : ```''```) Chaîne qui est ajoutée à la première ligne de la " +"sortie formatée. Elle compte pour le calcul de la longueur de la première " +"ligne. La chaîne vide n'est pas indentée." #: ../Doc/library/textwrap.rst:214 msgid "" @@ -234,6 +323,9 @@ msgid "" "output except the first. Counts towards the length of each line except the " "first." msgstr "" +"(par défaut : ```''```) Chaîne qui préfixe toutes les lignes de la sortie " +"formatée sauf la première. Elle compte pour le calcul de la longueur de " +"chaque ligne à l'exception de la première." #: ../Doc/library/textwrap.rst:221 msgid "" @@ -246,14 +338,23 @@ msgid "" "followed by a space. One problem with this is algorithm is that it is " "unable to detect the difference between \"Dr.\" in ::" msgstr "" +"(par défaut : ``Faux``) Si `true`, :class:`TextWrapper` tente de détecter " +"les fins de phrases et de s'assurer que les phrases sont toujours séparées " +"par exactement deux espaces. Ceci est généralement souhaité pour un texte " +"en police à chasse fixe. Cependant, l'algorithme de détection de phrase est " +"imparfait : il suppose qu'une fin de phrase consiste en une lettre minuscule " +"suivie de l'une des lettres suivantes : ``'.'``, ``'!'``, ou ``'?'``, " +"éventuellement suivie d'une des lettres ``'\"'`` ou ``\"'\"``, suivie par " +"une espace. Un problème avec cet algorithme est qu'il est incapable de " +"détecter la différence entre \"Dr\" dans : :" #: ../Doc/library/textwrap.rst:232 msgid "and \"Spot.\" in ::" -msgstr "" +msgstr "et \"Spot.\" dans ::" #: ../Doc/library/textwrap.rst:236 msgid ":attr:`fix_sentence_endings` is false by default." -msgstr "" +msgstr ":attr:`fix_sentence_endings` est *False* par défaut." #: ../Doc/library/textwrap.rst:238 msgid "" @@ -262,6 +363,11 @@ msgid "" "after a period to separate sentences on the same line, it is specific to " "English-language texts." msgstr "" +"Étant donné que l'algorithme de détection de phrases repose sur ``string." +"lowercase`` pour la définition de \"lettres minuscules\" et sur une " +"convention consistant à utiliser deux espaces après un point pour séparer " +"les phrases sur la même ligne, ceci est spécifique aux textes de langue " +"anglaise." #: ../Doc/library/textwrap.rst:246 msgid "" @@ -271,6 +377,12 @@ msgid "" "than :attr:`width`. (Long words will be put on a line by themselves, in " "order to minimize the amount by which :attr:`width` is exceeded.)" msgstr "" +"(par défaut : ``True``) Si *True*, alors les mots plus longs que :attr:" +"`width` sont cassés afin de s'assurer qu'aucune ligne ne soit plus longue " +"que :attr:`width`. Si c'est *False*, les mots longs ne sont pas cassés et " +"certaines lignes peuvent être plus longues que :attr:`width` (les mots longs " +"seront mis sur une ligne qui leur est propre, afin de minimiser le " +"dépassement de :attr:`width`)." #: ../Doc/library/textwrap.rst:255 msgid "" @@ -281,24 +393,37 @@ msgid "" "want truly insecable words. Default behaviour in previous versions was to " "always allow breaking hyphenated words." msgstr "" +"(par défaut : ``True``) Si c'est vrai, le formatage se fait de préférence " +"sur les espaces et juste après sur les traits d'union des mots composés, " +"comme il est d'usage en anglais. Si *False*, seuls les espaces sont " +"considérées comme de bons endroits pour les sauts de ligne, mais vous devez " +"définir :attr:`break_long_words` à *False* si vous voulez des mots vraiment " +"insécables. Le comportement par défaut dans les versions précédentes était " +"de toujours permettre de couper les mots avec trait d'union." #: ../Doc/library/textwrap.rst:265 msgid "" "(default: ``None``) If not ``None``, then the output will contain at most " "*max_lines* lines, with *placeholder* appearing at the end of the output." msgstr "" +"(par défaut : ``None```) Si ce n'est pas ``None```, alors la sortie contient " +"au maximum *max_lines* lignes, avec *placeholder* à la fin de la sortie." #: ../Doc/library/textwrap.rst:273 msgid "" "(default: ``' [...]'``) String that will appear at the end of the output " "text if it has been truncated." msgstr "" +"(par défaut : ``'' [...]'``) Chaîne qui apparaît à la fin du texte de sortie " +"s'il a été tronqué." #: ../Doc/library/textwrap.rst:279 msgid "" ":class:`TextWrapper` also provides some public methods, analogous to the " "module-level convenience functions:" msgstr "" +":class:`TextWrapper` fournit également quelques méthodes publiques, " +"analogues aux fonctions de commodité au niveau du module :" #: ../Doc/library/textwrap.rst:284 msgid "" @@ -308,9 +433,17 @@ msgid "" "lines, without final newlines. If the wrapped output has no content, the " "returned list is empty." msgstr "" +"Formate le paragraphe unique dans *text* (une chaîne de caractères) de sorte " +"que chaque ligne ait au maximum :attr:`width` caractères. Toutes les " +"options de formatage sont tirées des attributs d'instance de l'instance de " +"classe :class:`TextWrapper`. Renvoie une liste de lignes de sortie, sans " +"nouvelles lignes finales. Si la sortie formatée n'a pas de contenu, la liste " +"vide est renvoyée." #: ../Doc/library/textwrap.rst:293 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph." msgstr "" +"Formate le paragraphe unique de *text* et renvoie une seule chaîne contenant " +"le paragraphe formaté." diff --git a/library/threading.po b/library/threading.po index 50f0a6f5d..5e888ff9c 100644 --- a/library/threading.po +++ b/library/threading.po @@ -20,6 +20,7 @@ msgstr "" #: ../Doc/library/threading.rst:2 msgid ":mod:`threading` --- Thread-based parallelism" msgstr "" +":mod:`threading` — Parallélisme basé sur les fils d’exécution (*threads*)" #: ../Doc/library/threading.rst:7 msgid "**Source code:** :source:`Lib/threading.py`" @@ -30,6 +31,9 @@ msgid "" "This module constructs higher-level threading interfaces on top of the lower " "level :mod:`_thread` module. See also the :mod:`queue` module." msgstr "" +"Ce module élabore des interfaces haut-niveau de fils d'exécutions multiples " +"(*threading*) conçues en s'appuyant sur le module bas-niveau :mod:`_thread`. " +"Voir aussi le module :mod:`queue`." #: ../Doc/library/threading.rst:14 msgid "" @@ -43,16 +47,21 @@ msgid "" "methods and functions in this module in the Python 2.x series are still " "supported by this module." msgstr "" +"Bien qu'ils ne soient pas listés ci-dessous, ce module gère toujours les " +"noms en ``camelCase`` utilisés pour certaines méthodes et fonctions de ce " +"module dans la série Python 2.x." #: ../Doc/library/threading.rst:24 msgid "This module defines the following functions:" -msgstr "" +msgstr "Ce module définit les fonctions suivantes :" #: ../Doc/library/threading.rst:29 msgid "" "Return the number of :class:`Thread` objects currently alive. The returned " "count is equal to the length of the list returned by :func:`.enumerate`." msgstr "" +"Renvoie le nombre d'objets :class:`Thread` actuellement vivants. Le compte " +"renvoyé est égal à la longueur de la liste renvoyée par :func:`.enumerate`." #: ../Doc/library/threading.rst:35 msgid "" @@ -61,6 +70,10 @@ msgid "" "through the :mod:`threading` module, a dummy thread object with limited " "functionality is returned." msgstr "" +"Renvoie l'objet :class:`Thread` courant, correspondant au fil de contrôle de " +"l'appelant. Si le fil de contrôle de l'appelant n'a pas été créé via le " +"module :mod:`Thread`, un objet *thread* factice aux fonctionnalités limitées " +"est renvoyé." #: ../Doc/library/threading.rst:43 msgid "" @@ -70,6 +83,11 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" +"Renvoie l'\"identificateur de fil\" du fil d'exécution courant. C'est un " +"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " +"à être utilisé comme valeur magique opaque, par exemple comme clef de " +"dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " +"être recyclés lorsqu'un fil se termine et qu'un autre fil est créé." #: ../Doc/library/threading.rst:54 msgid "" @@ -78,12 +96,19 @@ msgid "" "`current_thread`, and the main thread. It excludes terminated threads and " "threads that have not yet been started." msgstr "" +"Renvoie une liste de tous les objets fil d'exécution :class:`Thread` " +"actuellement vivants. La liste inclut les fils démons, les fils factices " +"créés par :func:`current_thread` et le fil principal. Elle exclut les fils " +"terminés et les fils qui n'ont pas encore été lancés." #: ../Doc/library/threading.rst:62 msgid "" "Return the main :class:`Thread` object. In normal conditions, the main " "thread is the thread from which the Python interpreter was started." msgstr "" +"Renvoie l'objet fil d'exécution :class:`Thread` principal. Dans des " +"conditions normales, le fil principal est le fil à partir duquel " +"l'interpréteur Python a été lancé." #: ../Doc/library/threading.rst:73 msgid "" @@ -91,6 +116,10 @@ msgid "" "module. The *func* will be passed to :func:`sys.settrace` for each thread, " "before its :meth:`~Thread.run` method is called." msgstr "" +"Attache une fonction de traçage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Thread`. La fonction *func* est passée à :func:`sys." +"settrace` pour chaque fil, avant que sa méthode :meth:`~Thread.run` soit " +"appelée." #: ../Doc/library/threading.rst:82 msgid "" @@ -98,6 +127,10 @@ msgid "" "module. The *func* will be passed to :func:`sys.setprofile` for each " "thread, before its :meth:`~Thread.run` method is called." msgstr "" +"Attache une fonction de profilage pour tous les fils d'exécution démarrés " +"depuis le module :mod:`Threading`. La fonction *func* est passée à :func:" +"`sys.setprofile` pour chaque fil, avant que sa méthode :meth:`~Thread.run` " +"soit appelée." #: ../Doc/library/threading.rst:89 msgid "" @@ -120,7 +153,7 @@ msgstr "" #: ../Doc/library/threading.rst:106 msgid "This module also defines the following constant:" -msgstr "" +msgstr "Ce module définit également la constante suivante :" #: ../Doc/library/threading.rst:110 msgid "" @@ -129,12 +162,18 @@ msgid "" "Specifying a timeout greater than this value will raise an :exc:" "`OverflowError`." msgstr "" +"La valeur maximale autorisée pour le paramètre *timeout* des fonctions " +"bloquantes (:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition." +"wait`, etc.). Spécifier un délai d'attente supérieur à cette valeur lève " +"une :exc:`OverflowError`." #: ../Doc/library/threading.rst:118 msgid "" "This module defines a number of classes, which are detailed in the sections " "below." msgstr "" +"Ce module définit un certain nombre de classes, qui sont détaillées dans les " +"sections ci-dessous." #: ../Doc/library/threading.rst:121 msgid "" @@ -146,14 +185,24 @@ msgid "" "stopped, suspended, resumed, or interrupted. The static methods of Java's " "Thread class, when implemented, are mapped to module-level functions." msgstr "" +"La conception de ce module est librement basée sur le modèle des fils " +"d'exécution de Java. Cependant, là où Java fait des verrous et des variables " +"de condition le comportement de base de chaque objet, ils sont des objets " +"séparés en Python. La classe Python :class:`Thread` prend en charge un sous-" +"ensemble du comportement de la classe *Thread* de Java ; actuellement, il " +"n'y a aucune priorité, aucun groupe de fils d'exécution, et les fils ne " +"peuvent être détruits, arrêtés, suspendus, repris ni interrompus. Les " +"méthodes statiques de la classe *Thread* de Java, lorsqu'elles sont " +"implémentées, correspondent à des fonctions au niveau du module." #: ../Doc/library/threading.rst:129 msgid "All of the methods described below are executed atomically." msgstr "" +"Toutes les méthodes décrites ci-dessous sont exécutées de manière atomique." #: ../Doc/library/threading.rst:133 msgid "Thread-Local Data" -msgstr "" +msgstr "Données locales au fil d'exécution" #: ../Doc/library/threading.rst:135 msgid "" @@ -161,24 +210,31 @@ msgid "" "thread-local data, just create an instance of :class:`local` (or a subclass) " "and store attributes on it::" msgstr "" +"Les données locales au fil d'exécution (*thread-local data*) sont des " +"données dont les valeurs sont propres à chaque fil. Pour gérer les données " +"locales au fil, il suffit de créer une instance de :class:`local` (ou une " +"sous-classe) et d'y stocker des données : ::" #: ../Doc/library/threading.rst:142 msgid "The instance's values will be different for separate threads." msgstr "" +"Les valeurs dans l'instance sont différentes pour des *threads* différents." #: ../Doc/library/threading.rst:147 msgid "A class that represents thread-local data." -msgstr "" +msgstr "Classe qui représente les données locales au fil d'exécution." #: ../Doc/library/threading.rst:149 msgid "" "For more details and extensive examples, see the documentation string of " "the :mod:`_threading_local` module." msgstr "" +"Pour plus de détails et de nombreux exemples, voir la chaîne de " +"documentation du module :mod:`_threading_local`." #: ../Doc/library/threading.rst:156 msgid "Thread Objects" -msgstr "" +msgstr "Objets *Threads*" #: ../Doc/library/threading.rst:158 msgid "" @@ -189,6 +245,13 @@ msgid "" "be overridden in a subclass. In other words, *only* override the :meth:" "`~Thread.__init__` and :meth:`~Thread.run` methods of this class." msgstr "" +"La classe fil d'exécution :class:`Thread` représente une activité qui est " +"exécutée dans un fil d'exécution séparé. Il y a deux façons de spécifier " +"l'activité : en passant un objet appelable au constructeur, ou en ré-" +"implémentant la méthode :meth:`~Thread.run` dans une sous-classe. Aucune " +"autre méthode (à l'exception du constructeur) ne doit être remplacée dans " +"une sous-classe. En d'autres termes, réimplémentez *seulement* les méthodes :" +"meth:`~Thread.__init__` et :meth:`~Thread.run` de cette classe." #: ../Doc/library/threading.rst:165 msgid "" @@ -196,6 +259,9 @@ msgid "" "thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " "method in a separate thread of control." msgstr "" +"Une fois qu'un objet fil d'exécution est créé, son activité doit être lancée " +"en appelant la méthode :meth:`~Thread.start` du fil. Ceci invoque la " +"méthode :meth:`~Thread.run` dans un fil d'exécution séparé." #: ../Doc/library/threading.rst:169 msgid "" @@ -204,6 +270,10 @@ msgid "" "normally, or by raising an unhandled exception. The :meth:`~Thread." "is_alive` method tests whether the thread is alive." msgstr "" +"Une fois que l'activité du fil d'exécution est lancée, le fil est considéré " +"comme « vivant ». Il cesse d'être vivant lorsque sa méthode :meth:`~Thread." +"run` se termine – soit normalement, soit en levant une exception non gérée. " +"La méthode :meth:`~Thread.is_alive` teste si le fil est vivant." #: ../Doc/library/threading.rst:174 msgid "" @@ -211,12 +281,17 @@ msgid "" "the calling thread until the thread whose :meth:`~Thread.join` method is " "called is terminated." msgstr "" +"D'autres fils d'exécution peuvent appeler la méthode :meth:`~Thread.join` " +"d'un fil. Ceci bloque le fil appelant jusqu'à ce que le fil dont la méthode :" +"meth:`~Thread.join` est appelée soit terminé." #: ../Doc/library/threading.rst:178 msgid "" "A thread has a name. The name can be passed to the constructor, and read or " "changed through the :attr:`~Thread.name` attribute." msgstr "" +"Un fil d'exécution a un nom. Le nom peut être passé au constructeur, et lu " +"ou modifié via l'attribut :attr:`~Thread.name`." #: ../Doc/library/threading.rst:181 msgid "" @@ -226,6 +301,11 @@ msgid "" "can be set through the :attr:`~Thread.daemon` property or the *daemon* " "constructor argument." msgstr "" +"Un fil d'exécution peut être marqué comme « fil démon ». Un programme Python " +"se termine quand il ne reste plus que des fils démons. La valeur initiale " +"est héritée du fil d'exécution qui l'a créé. Cette option peut être définie " +"par la propriété :attr:`~Thread.daemon` ou par l'argument *daemon* du " +"constructeur." #: ../Doc/library/threading.rst:188 msgid "" @@ -234,12 +314,20 @@ msgid "" "you want your threads to stop gracefully, make them non-daemonic and use a " "suitable signalling mechanism such as an :class:`Event`." msgstr "" +"Les fils d'exécution démons sont brusquement terminés à l'arrêt du programme " +"Python. Leurs ressources (fichiers ouverts, transactions de base de données, " +"etc.) peuvent ne pas être libérées correctement. Si vous voulez que vos fils " +"s'arrêtent proprement, faites en sorte qu'ils ne soient pas démoniques et " +"utilisez un mécanisme de signalisation approprié tel qu'un objet évènement :" +"class:`Event`." #: ../Doc/library/threading.rst:193 msgid "" "There is a \"main thread\" object; this corresponds to the initial thread of " "control in the Python program. It is not a daemon thread." msgstr "" +"Il y a un objet \"fil principal\", qui correspond au fil de contrôle initial " +"dans le programme Python. Ce n'est pas un fil démon." #: ../Doc/library/threading.rst:196 msgid "" @@ -250,41 +338,62 @@ msgid "" "alive and daemonic, and cannot be :meth:`~Thread.join`\\ ed. They are never " "deleted, since it is impossible to detect the termination of alien threads." msgstr "" +"Il y a une possibilité que des objets fil d'exécution « fictifs » soient " +"créés. Ce sont des objets correspondant à des fils d'exécution " +"« étrangers », qui sont des fils de contrôle démarrés en dehors du module de " +"*threading*, par exemple directement depuis du code C. Les objets fils " +"d'exécution fictifs ont des fonctionnalités limitées ; ils sont toujours " +"considérés comme vivants et démoniques, et ne peuvent pas être attendus via :" +"meth:`~Thread.join`. Ils ne sont jamais supprimés, car il est impossible de " +"détecter la fin des fils d'exécution étrangers." #: ../Doc/library/threading.rst:207 msgid "" "This constructor should always be called with keyword arguments. Arguments " "are:" msgstr "" +"Ce constructeur doit toujours être appelé avec des arguments nommés. Les " +"arguments sont :" #: ../Doc/library/threading.rst:210 msgid "" "*group* should be ``None``; reserved for future extension when a :class:" "`ThreadGroup` class is implemented." msgstr "" +"*group* doit être ``None`` ; cet argument est réservé pour une extension " +"future lorsqu'une classe :class:`ThreadGroup` sera implémentée." #: ../Doc/library/threading.rst:213 msgid "" "*target* is the callable object to be invoked by the :meth:`run` method. " "Defaults to ``None``, meaning nothing is called." msgstr "" +"*target* est l'objet appelable qui doit être invoqué par la méthode :meth:" +"`run`. La valeur par défaut est ``None``, ce qui signifie que rien n'est " +"appelé." #: ../Doc/library/threading.rst:216 msgid "" "*name* is the thread name. By default, a unique name is constructed of the " "form \"Thread-*N*\" where *N* is a small decimal number." msgstr "" +"*name* est le nom du fil d'exécution. Par défaut, un nom unique est " +"construit de la forme « Thread–*N* » où *N* est un petit nombre décimal." #: ../Doc/library/threading.rst:219 msgid "" "*args* is the argument tuple for the target invocation. Defaults to ``()``." msgstr "" +"*args* est le tuple d'arguments pour l'invocation de l'objet appelable. La " +"valeur par défaut est ``()``." #: ../Doc/library/threading.rst:221 msgid "" "*kwargs* is a dictionary of keyword arguments for the target invocation. " "Defaults to ``{}``." msgstr "" +"*kwargs* est un dictionnaire d'arguments nommés pour l'invocation de l'objet " +"appelable. La valeur par défaut est ``{}``." #: ../Doc/library/threading.rst:224 msgid "" @@ -292,6 +401,9 @@ msgid "" "``None`` (the default), the daemonic property is inherited from the current " "thread." msgstr "" +"S'il ne vaut pas ``None``, *daemon* définit explicitement si le fil " +"d'exécution est démonique ou pas. S'il vaut ``None`` (par défaut), la valeur " +"est héritée du fil courant." #: ../Doc/library/threading.rst:228 msgid "" @@ -299,14 +411,17 @@ msgid "" "base class constructor (``Thread.__init__()``) before doing anything else to " "the thread." msgstr "" +"Si la sous-classe réimplémente le constructeur, elle doit s'assurer " +"d'appeler le constructeur de la classe de base (``Thread.__init__()``) avant " +"de faire autre chose au fil d'exécution." #: ../Doc/library/threading.rst:232 msgid "Added the *daemon* argument." -msgstr "" +msgstr "Ajout de l'argument *daemon*." #: ../Doc/library/threading.rst:237 msgid "Start the thread's activity." -msgstr "" +msgstr "Lance l'activité du fil d'exécution." #: ../Doc/library/threading.rst:239 msgid "" @@ -314,16 +429,21 @@ msgid "" "object's :meth:`~Thread.run` method to be invoked in a separate thread of " "control." msgstr "" +"Elle ne doit être appelée qu'une fois par objet de fil. Elle fait en sorte " +"que la méthode :meth:`~Thread.run` de l'objet soit invoquée dans un fil " +"d'exécution." #: ../Doc/library/threading.rst:243 msgid "" "This method will raise a :exc:`RuntimeError` if called more than once on the " "same thread object." msgstr "" +"Cette méthode lève une :exc:`RuntimeError` si elle est appelée plus d'une " +"fois sur le même objet fil d'exécution." #: ../Doc/library/threading.rst:248 msgid "Method representing the thread's activity." -msgstr "" +msgstr "Méthode représentant l'activité du fil d'exécution." #: ../Doc/library/threading.rst:250 msgid "" @@ -340,6 +460,10 @@ msgid "" "normally or through an unhandled exception -- or until the optional timeout " "occurs." msgstr "" +"Attend que le fil d'exécution se termine. Ceci bloque le fil appelant " +"jusqu'à ce que le fil dont la méthode :meth:`~Thread.join` est appelée se " +"termine – soit normalement, soit par une exception non gérée – ou jusqu'à ce " +"que le délai optionnel *timeout* soit atteint." #: ../Doc/library/threading.rst:262 msgid "" @@ -350,16 +474,26 @@ msgid "" "whether a timeout happened -- if the thread is still alive, the :meth:" "`~Thread.join` call timed out." msgstr "" +"Lorsque l'argument *timeout* est présent et ne vaut pas ``None``, il doit " +"être un nombre en virgule flottante spécifiant un délai pour l'opération en " +"secondes (ou fractions de secondes). Comme :meth:`~Thread.join` renvoie " +"toujours ``None``, vous devez appeler :meth:`~Thread.is_alive` après :meth:" +"`~Thread.join` pour déterminer si le délai a expiré – si le fil d'exécution " +"est toujours vivant, c'est que l'appel à :meth:`~Thread.join` a expiré." #: ../Doc/library/threading.rst:269 msgid "" "When the *timeout* argument is not present or ``None``, the operation will " "block until the thread terminates." msgstr "" +"Lorsque l'argument *timeout* n'est pas présent ou vaut ``None``, l'opération " +"se bloque jusqu'à ce que le fil d'exécution se termine." #: ../Doc/library/threading.rst:272 msgid "A thread can be :meth:`~Thread.join`\\ ed many times." msgstr "" +"Un fil d'exécution peut être attendu via :meth:`~Thread.join` de nombreuses " +"fois." #: ../Doc/library/threading.rst:274 msgid "" @@ -368,6 +502,11 @@ msgid "" "to :meth:`~Thread.join` a thread before it has been started and attempts to " "do so raise the same exception." msgstr "" +":meth:`~Thread.join` lève une :exc:`RuntimeError` si une tentative est faite " +"pour attendre le fil d'exécution courant car cela conduirait à un " +"interblocage (*deadlock* en anglais). Attendre via :meth:`~Thread.join` un " +"fil d'exécution avant son lancement est aussi une erreur et, si vous tentez " +"de le faire, lève la même exception." #: ../Doc/library/threading.rst:281 msgid "" @@ -375,12 +514,17 @@ msgid "" "Multiple threads may be given the same name. The initial name is set by the " "constructor." msgstr "" +"Une chaîne de caractères utilisée à des fins d'identification seulement. " +"Elle n'a pas de sémantique. Plusieurs fils d'exécution peuvent porter le " +"même nom. Le nom initial est défini par le constructeur." #: ../Doc/library/threading.rst:288 msgid "" "Old getter/setter API for :attr:`~Thread.name`; use it directly as a " "property instead." msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.name` ; utilisez plutôt ce " +"dernier directement." #: ../Doc/library/threading.rst:293 msgid "" @@ -390,10 +534,15 @@ msgid "" "another thread is created. The identifier is available even after the " "thread has exited." msgstr "" +"« L'identificateur de fil d'exécution » de ce fil ou ``None`` si le fil n'a " +"pas été lancé. C'est un entier non nul. Voyez également la fonction :func:" +"`get_ident`. Les identificateurs de fils peuvent être recyclés lorsqu'un fil " +"se termine et qu'un autre fil est créé. L'identifiant est disponible même " +"après que le fil ait terminé." #: ../Doc/library/threading.rst:301 msgid "Return whether the thread is alive." -msgstr "" +msgstr "Renvoie si le fil d'exécution est vivant ou pas." #: ../Doc/library/threading.rst:303 msgid "" @@ -401,6 +550,10 @@ msgid "" "starts until just after the :meth:`~Thread.run` method terminates. The " "module function :func:`.enumerate` returns a list of all alive threads." msgstr "" +"Cette méthode renvoie ``True`` depuis juste avant le démarrage de la " +"méthode :meth:`~Thread.run` et jusqu'à juste après la terminaison de la " +"méthode :meth:`~Thread.run`. La fonction :func:`.enumerate` du module " +"renvoie une liste de tous les fils d'exécution vivants." #: ../Doc/library/threading.rst:309 msgid "" @@ -411,17 +564,27 @@ msgid "" "therefore all threads created in the main thread default to :attr:`~Thread." "daemon` = ``False``." msgstr "" +"Booléen indiquant si ce fil d'exécution est un fil démon (``True``) ou non " +"(``False``). Celui-ci doit être défini avant que :meth:`~Thread.start` ne " +"soit appelé, sinon :exc:`RuntimeError` est levée. Sa valeur initiale est " +"héritée du fil d'exécution créateur ; le fil principal n'est pas un fil " +"démon et donc tous les fils créés dans ce fil principal ont par défaut la " +"valeur :attr:`~Thread.daemon` = ``False``." #: ../Doc/library/threading.rst:316 msgid "" "The entire Python program exits when no alive non-daemon threads are left." msgstr "" +"Le programme Python se termine lorsqu'il ne reste plus de fils d'exécution " +"non-démons vivants." #: ../Doc/library/threading.rst:321 msgid "" "Old getter/setter API for :attr:`~Thread.daemon`; use it directly as a " "property instead." msgstr "" +"Anciens accesseur et mutateur pour :attr:`~Thread.daemon` ; utilisez plutôt " +"ce dernier directement." #: ../Doc/library/threading.rst:327 msgid "" @@ -433,6 +596,15 @@ msgid "" "ProcessPoolExecutor`. However, threading is still an appropriate model if " "you want to run multiple I/O-bound tasks simultaneously." msgstr "" +"En CPython, en raison du verrou global de l'interpréteur (:term:`Global " +"Interpreter Lock`), un seul fil d'exécution peut exécuter du code Python à " +"la fois (même si certaines bibliothèques orientées performance peuvent " +"surmonter cette limitation). Si vous voulez que votre application fasse un " +"meilleur usage des ressources de calcul des machines multi-cœurs, nous vous " +"conseillons d'utiliser :mod:`multiprocessing` ou :class:`concurrent.futures." +"ProcessPoolExecutor`. Néanmoins, les fils d'exécutions multiples restent un " +"modèle approprié si vous souhaitez exécuter simultanément plusieurs tâches " +"limitées par les performances des entrées-sorties." #: ../Doc/library/threading.rst:340 msgid "Lock Objects" @@ -492,7 +664,7 @@ msgstr "" #: ../Doc/library/threading.rst:381 ../Doc/library/threading.rst:455 msgid "Acquire a lock, blocking or non-blocking." -msgstr "" +msgstr "Acquiert un verrou, bloquant ou non bloquant." #: ../Doc/library/threading.rst:383 msgid "" @@ -1206,7 +1378,7 @@ msgstr "" #: ../Doc/library/threading.rst:986 msgid "is equivalent to::" -msgstr "" +msgstr "est équivalente à ::" #: ../Doc/library/threading.rst:994 msgid "" diff --git a/library/time.po b/library/time.po index 2f6397e9e..ba37a6224 100644 --- a/library/time.po +++ b/library/time.po @@ -19,13 +19,16 @@ msgstr "" #: ../Doc/library/time.rst:2 msgid ":mod:`time` --- Time access and conversions" -msgstr "" +msgstr ":mod:`time` — Accès au temps et conversions" #: ../Doc/library/time.rst:9 msgid "" "This module provides various time-related functions. For related " "functionality, see also the :mod:`datetime` and :mod:`calendar` modules." msgstr "" +"Ce module fournit différentes fonctions liées au temps. Pour les " +"fonctionnalités associées, voir aussi les modules :mod:`datetime` et :mod:" +"`calendar`." #: ../Doc/library/time.rst:12 msgid "" @@ -35,10 +38,17 @@ msgid "" "consult the platform documentation, because the semantics of these functions " "varies among platforms." msgstr "" +"Bien que ce module soit toujours disponible, toutes les fonctions ne sont " +"pas disponibles sur toutes les plateformes. La plupart des fonctions " +"définies dans ce module délèguent à des fonctions de même nom de la " +"bibliothèque C. Il peut parfois être utile de consulter la documentation de " +"la plate-forme, car la sémantique de ces fonctions peut varier." #: ../Doc/library/time.rst:18 msgid "An explanation of some terminology and conventions is in order." msgstr "" +"Vous trouvez ci-dessous, mises en ordre, quelques explications relative à la " +"terminologie et aux conventions." #: ../Doc/library/time.rst:24 msgid "" @@ -46,6 +56,10 @@ msgid "" "dependent. For Unix, the epoch is January 1, 1970, 00:00:00 (UTC). To find " "out what the epoch is on a given platform, look at ``time.gmtime(0)``." msgstr "" +"L':dfn:`epoch` est le point de départ du temps et dépend de la plate-forme. " +"Pour Unix, *epoch* est le 1er janvier 1970 à 00:00:00 (UTC). Pour savoir " +"comment est définie *epoch* sur une plate-forme donnée, regardez ``time." +"gmtime(0)``." #: ../Doc/library/time.rst:33 msgid "" @@ -53,6 +67,10 @@ msgid "" "elapsed seconds since the epoch, typically excluding `leap seconds`_. Leap " "seconds are excluded from this total on all POSIX-compliant platforms." msgstr "" +"Le terme :dfn:`secondes depuis *epoch*` désigne le nombre total de secondes " +"écoulées depuis *epoch*, souvent en excluant les secondes intercalaires " +"(`leap seconds`_). Les secondes intercalaires sont exclues de ce total sur " +"toutes les plates-formes conformes POSIX." #: ../Doc/library/time.rst:40 msgid "" @@ -60,6 +78,10 @@ msgid "" "or far in the future. The cut-off point in the future is determined by the " "C library; for 32-bit systems, it is typically in 2038." msgstr "" +"Les fonctions de ce module peuvent ne pas gérer les dates et heures " +"antérieures à *epoch* ou dans un avenir lointain. Le seuil du futur est " +"déterminé par la bibliothèque C ; pour les systèmes 32 bits, il s’agit " +"généralement de 2038." #: ../Doc/library/time.rst:50 msgid "" @@ -71,6 +93,14 @@ msgid "" "standards: values 69--99 are mapped to 1969--1999, and values 0--68 are " "mapped to 2000--2068." msgstr "" +"**Problèmes liés à l’an 2000 (Y2K)** : Python dépend de la bibliothèque C de " +"la plate-forme, qui n’a généralement pas de problèmes liés à l’an 2000, " +"étant donné que toutes les dates et heures sont représentées en interne en " +"secondes depuis *epoch*. La fonction :func:`strptime` peut analyser des " +"années à 2 chiffres lorsque le format ``%y`` est spécifié. Lorsque les " +"années à deux chiffres sont analysées, elles sont converties conformément " +"aux normes POSIX et ISO C : les valeurs 69—99 correspondent à 1969—1999 et " +"les valeurs 0—68 à 2000—2068." #: ../Doc/library/time.rst:62 msgid "" @@ -78,6 +108,9 @@ msgid "" "GMT). The acronym UTC is not a mistake but a compromise between English and " "French." msgstr "" +"UTC désigne le temps universel coordonné (*Coordinated Universal Time* en " +"anglais), anciennement l'heure de Greenwich (ou GMT). L'acronyme UTC n'est " +"pas une erreur mais un compromis entre l'anglais et le français." #: ../Doc/library/time.rst:68 msgid "" @@ -87,6 +120,12 @@ msgid "" "local rules (often it is read from a system file for flexibility) and is the " "only source of True Wisdom in this respect." msgstr "" +"Le DST (*Daylight Saving Time*) correspond à l’heure d’été, un ajustement du " +"fuseau horaire d’une heure (généralement) pendant une partie de l’année. Les " +"règles de DST sont magiques (déterminées par la loi locale) et peuvent " +"changer d’année en année. La bibliothèque C possède une table contenant les " +"règles locales (souvent, elle est lue dans un fichier système par souci de " +"souplesse) et constitue la seule source fiable." #: ../Doc/library/time.rst:74 msgid "" @@ -94,6 +133,10 @@ msgid "" "by the units in which their value or argument is expressed. E.g. on most " "Unix systems, the clock \"ticks\" only 50 or 100 times a second." msgstr "" +"La précision des diverses fonctions en temps réel peut être inférieure à " +"celle suggérée par les unités dans lesquelles leur valeur ou leur argument " +"est exprimé. Par exemple, sur la plupart des systèmes Unix, l’horloge ne « " +"bat » que 50 ou 100 fois par seconde." #: ../Doc/library/time.rst:78 msgid "" @@ -104,6 +147,12 @@ msgid "" "with a nonzero fraction (Unix :c:func:`select` is used to implement this, " "where available)." msgstr "" +"D’autre part, la précision de :func:`.time` et :func:`sleep` est meilleure " +"que leurs équivalents Unix : les temps sont exprimés en nombres à virgule " +"flottante, :func:`.time` renvoie le temps le plus précis disponible (en " +"utilisant :c:func:`gettimeofday` d'Unix si elle est disponible), et :func:" +"`sleep` accepte le temps avec une fraction non nulle (:c:func:`select` " +"d'Unix est utilisée pour l’implémenter, si elle est disponible)." #: ../Doc/library/time.rst:85 msgid "" @@ -113,10 +162,15 @@ msgid "" "`gmtime`, :func:`localtime`, and :func:`strptime` also offer attribute names " "for individual fields." msgstr "" +"La valeur temporelle renvoyée par :func:`gmtime`, :func:`localtime` et :func:" +"`strptime`, et acceptée par :func:`asctime`, :func:`mktime` et :func:" +"`strftime`, est une séquence de 9 nombres entiers. Les valeurs de retour de :" +"func:`gmtime`, :func:`localtime` et :func:`strptime` proposent également des " +"noms d’attributs pour des champs individuels." #: ../Doc/library/time.rst:91 msgid "See :class:`struct_time` for a description of these objects." -msgstr "" +msgstr "Voir :class:`struct_time` pour une description de ces objets." #: ../Doc/library/time.rst:93 msgid "" @@ -124,16 +178,23 @@ msgid "" "and :attr:`tm_zone` attributes when platform supports corresponding ``struct " "tm`` members." msgstr "" +"Le type :class:`struct_time` a été étendu pour fournir les attributs :attr:" +"`tm_gmtoff` et :attr:`tm_zone` lorsque la plateforme prend en charge les " +"membres ``struct tm`` correspondants." #: ../Doc/library/time.rst:98 msgid "" "The :class:`struct_time` attributes :attr:`tm_gmtoff` and :attr:`tm_zone` " "are now available on all platforms." msgstr "" +"Les attributs :class:`struct_time` :attr:`tm_gmtoff` et :attr:`tm_zone` sont " +"maintenant disponibles sur toutes les plateformes." #: ../Doc/library/time.rst:102 msgid "Use the following functions to convert between time representations:" msgstr "" +"Utilisez les fonctions suivantes pour convertir des représentations " +"temporelles :" #: ../Doc/library/time.rst:105 msgid "From" @@ -145,36 +206,36 @@ msgstr "À" #: ../Doc/library/time.rst:105 msgid "Use" -msgstr "" +msgstr "Utilisez" #: ../Doc/library/time.rst:107 ../Doc/library/time.rst:110 #: ../Doc/library/time.rst:113 ../Doc/library/time.rst:116 msgid "seconds since the epoch" -msgstr "" +msgstr "secondes depuis *epoch*" #: ../Doc/library/time.rst:107 ../Doc/library/time.rst:113 msgid ":class:`struct_time` in UTC" -msgstr "" +msgstr ":class:`struct_time` en UTC" #: ../Doc/library/time.rst:107 msgid ":func:`gmtime`" -msgstr "" +msgstr ":func:`gmtime`" #: ../Doc/library/time.rst:110 ../Doc/library/time.rst:116 msgid ":class:`struct_time` in local time" -msgstr "" +msgstr ":class:`struct_time` en heure locale" #: ../Doc/library/time.rst:110 msgid ":func:`localtime`" -msgstr "" +msgstr ":func:`localtime`" #: ../Doc/library/time.rst:113 msgid ":func:`calendar.timegm`" -msgstr "" +msgstr ":func:`calendar.timegm`" #: ../Doc/library/time.rst:116 msgid ":func:`mktime`" -msgstr "" +msgstr ":func:`mktime`" #: ../Doc/library/time.rst:124 msgid "Functions" @@ -188,12 +249,19 @@ msgid "" "returned by :func:`localtime` is used. Locale information is not used by :" "func:`asctime`." msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne de la forme suivante : " +"``'Sun Jun 20 23:21:05 1993'``. Si *t* n’est pas fourni, l’heure actuelle " +"renvoyée par :func:`localtime` est utilisée. Les informations sur les " +"paramètres régionaux ne sont pas utilisées par :func:`asctime`." #: ../Doc/library/time.rst:136 msgid "" "Unlike the C function of the same name, :func:`asctime` does not add a " "trailing newline." msgstr "" +"Contrairement à la fonction C du même nom, :func:`asctime` n’ajoute pas de " +"caractère de fin de ligne." #: ../Doc/library/time.rst:147 msgid "" @@ -202,6 +270,10 @@ msgid "" "meaning of \"processor time\", depends on that of the C function of the same " "name." msgstr "" +"Sous UNIX, renvoie le temps processeur actuel, en secondes, sous la forme " +"d'un nombre à virgule flottante exprimé en secondes. La précision, et en " +"fait la définition même de la signification de \"temps processeur\", dépend " +"de celle de la fonction C du même nom." #: ../Doc/library/time.rst:151 msgid "" @@ -210,6 +282,11 @@ msgid "" "function :c:func:`QueryPerformanceCounter`. The resolution is typically " "better than one microsecond." msgstr "" +"Sous Windows, cette fonction renvoie les secondes réelles (type horloge " +"murale) écoulées depuis le premier appel à cette fonction, en tant que " +"nombre à virgule flottante, en fonction de la fonction *Win32* :c:func:" +"`QueryPerformanceCounter`. La résolution est généralement meilleure qu'une " +"microseconde." #: ../Doc/library/time.rst:156 msgid "" @@ -217,12 +294,17 @@ msgid "" "`perf_counter` or :func:`process_time` instead, depending on your " "requirements, to have a well defined behaviour." msgstr "" +"Le comportement de cette fonction dépend de la plate-forme : utilisez " +"plutôt :func:`perf_counter` ou :func:`process_time`, selon vos besoins, pour " +"avoir un comportement bien défini." #: ../Doc/library/time.rst:164 msgid "" "Return the resolution (precision) of the specified clock *clk_id*. Refer " "to :ref:`time-clock-id-constants` for a list of accepted values for *clk_id*." msgstr "" +"Renvoie la résolution (précision) de l’horloge *clk_id*. Référez-vous à :ref:" +"`time-clock-id-constants` pour une liste des valeurs acceptées pour *clk_id*." #: ../Doc/library/time.rst:167 ../Doc/library/time.rst:177 #: ../Doc/library/time.rst:187 ../Doc/library/time.rst:551 @@ -236,12 +318,16 @@ msgid "" "Return the time of the specified clock *clk_id*. Refer to :ref:`time-clock-" "id-constants` for a list of accepted values for *clk_id*." msgstr "" +"Renvoie l’heure de l’horloge *clk_id*. Référez-vous à :ref:`time-clock-id-" +"constants` pour une liste des valeurs acceptées pour *clk_id*." #: ../Doc/library/time.rst:184 msgid "" "Set the time of the specified clock *clk_id*. Currently, :data:" "`CLOCK_REALTIME` is the only accepted value for *clk_id*." msgstr "" +"Définit l’heure de l’horloge *clk_id*. Actuellement, :data:`CLOCK_REALTIME` " +"est la seule valeur acceptée pour *clk_id*." #: ../Doc/library/time.rst:194 msgid "" @@ -251,12 +337,21 @@ msgid "" "``asctime(localtime(secs))``. Locale information is not used by :func:" "`ctime`." msgstr "" +"Convertit une heure exprimée en secondes depuis *epoch* en une chaîne " +"représentant l’heure locale. Si *secs* n’est pas fourni ou vaut :const:" +"`None`, l’heure actuelle renvoyée par :func:`.time` est utilisée. " +"``ctime(secs)`` est équivalent à ``asctime(localtime(secs))``. Les " +"informations sur les paramètres régionaux ne sont pas utilisées par :func:" +"`ctime`." #: ../Doc/library/time.rst:202 msgid "" "Get information on the specified clock as a namespace object. Supported " "clock names and the corresponding functions to read their value are:" msgstr "" +"Renvoie des informations sur l’horloge spécifiée en tant qu’objet d’espace " +"de nom. Les noms d’horloge pris en charge et les fonctions correspondantes " +"permettant de lire leur valeur sont les suivants :" #: ../Doc/library/time.rst:206 msgid "``'clock'``: :func:`time.clock`" @@ -280,28 +375,36 @@ msgstr "``'time'``: :func:`time.time`" #: ../Doc/library/time.rst:212 msgid "The result has the following attributes:" -msgstr "" +msgstr "Le résultat a les attributs suivants :" #: ../Doc/library/time.rst:214 msgid "" "*adjustable*: ``True`` if the clock can be changed automatically (e.g. by a " "NTP daemon) or manually by the system administrator, ``False`` otherwise" msgstr "" +"*adjustable* : ``True`` si l’horloge peut être changée automatiquement (par " +"exemple par un démon NTP) ou manuellement par l’administrateur système, " +"``False`` autrement" #: ../Doc/library/time.rst:216 msgid "" "*implementation*: The name of the underlying C function used to get the " "clock value. Refer to :ref:`time-clock-id-constants` for possible values." msgstr "" +"*implementation* : nom de la fonction C sous-jacente utilisée pour obtenir " +"la valeur d’horloge. Voir :ref:`time-clock-id-constants` pour les valeurs " +"possibles." #: ../Doc/library/time.rst:218 msgid "" "*monotonic*: ``True`` if the clock cannot go backward, ``False`` otherwise" msgstr "" +"*monotonic* : ``True`` si l’horloge ne peut pas revenir en arrière, " +"``False`` autrement" #: ../Doc/library/time.rst:220 msgid "*resolution*: The resolution of the clock in seconds (:class:`float`)" -msgstr "" +msgstr "*resolution* : La résolution de l’horloge en secondes (:class:`float`)" #: ../Doc/library/time.rst:227 msgid "" @@ -312,6 +415,12 @@ msgid "" "the :class:`struct_time` object. See :func:`calendar.timegm` for the inverse " "of this function." msgstr "" +"Convertit un temps exprimé en secondes depuis *epoch* en un :class:" +"`struct_time` au format UTC dans lequel le drapeau *dst* est toujours égal à " +"zéro. Si *secs* n’est pas fourni ou vaut :const:`None`, l’heure actuelle " +"renvoyée par :func:`.time` est utilisée. Les fractions de seconde sont " +"ignorées. Voir ci-dessus pour une description de l’objet :class:" +"`struct_time`. Voir :func:`calendar.timegm` pour l’inverse de cette fonction." #: ../Doc/library/time.rst:237 msgid "" @@ -319,6 +428,10 @@ msgid "" "or :const:`None`, the current time as returned by :func:`.time` is used. " "The dst flag is set to ``1`` when DST applies to the given time." msgstr "" +"Comme :func:`gmtime` mais convertit le résultat en heure locale. Si *secs* " +"n’est pas fourni ou vaut :const:`None`, l’heure actuelle renvoyée par :func:" +"`.time` est utilisée. Le drapeau *dst* est mis à ``1`` lorsque l’heure d’été " +"s’applique à l’heure indiquée." #: ../Doc/library/time.rst:244 msgid "" @@ -332,6 +445,15 @@ msgid "" "libraries). The earliest date for which it can generate a time is platform-" "dependent." msgstr "" +"C’est la fonction inverse de :func:`localtime`. Son argument est soit un :" +"class:`struct_time` soit un 9-tuple (puisque le drapeau *dst* est " +"nécessaire ; utilisez ``-1`` comme drapeau *dst* s’il est inconnu) qui " +"exprime le temps **local**, pas UTC. Il retourne un nombre à virgule " +"flottante, pour compatibilité avec :func:`.time`. Si la valeur d’entrée ne " +"peut pas être représentée comme une heure valide, soit :exc:`OverflowError` " +"ou :exc:`ValueError` sera levée (selon que la valeur non valide est " +"interceptée par Python ou par les bibliothèque C sous-jacentes). La date la " +"plus proche pour laquelle il peut générer une heure dépend de la plate-forme." #: ../Doc/library/time.rst:256 msgid "" @@ -340,6 +462,11 @@ msgid "" "updates. The reference point of the returned value is undefined, so that " "only the difference between the results of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’une horloge " +"monotone, c’est-à-dire une horloge qui ne peut pas revenir en arrière. " +"L’horloge n’est pas affectée par les mises à jour de l’horloge système. Le " +"point de référence de la valeur renvoyée n’est pas défini, de sorte que " +"seule la différence entre les résultats d’appels consécutifs est valide." #: ../Doc/library/time.rst:261 msgid "" @@ -364,6 +491,12 @@ msgid "" "point of the returned value is undefined, so that only the difference " "between the results of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) d’un compteur de " +"performance, c’est-à-dire une horloge avec la résolution disponible la plus " +"élevée possible pour mesurer une courte durée. Cela inclut le temps écoulé " +"pendant le sommeil et concerne l’ensemble du système. Le point de référence " +"de la valeur renvoyée n’est pas défini, de sorte que seule la différence " +"entre les résultats d’appels consécutifs est valide." #: ../Doc/library/time.rst:287 msgid "" @@ -373,6 +506,11 @@ msgid "" "returned value is undefined, so that only the difference between the results " "of consecutive calls is valid." msgstr "" +"Renvoie la valeur (en quelques fractions de secondes) de la somme des temps " +"système et utilisateur du processus en cours. Il ne comprend pas le temps " +"écoulé pendant le sommeil. C’est un processus par définition. Le point de " +"référence de la valeur renvoyée n’est pas défini, de sorte que seule la " +"différence entre les résultats d’appels consécutifs est valide." #: ../Doc/library/time.rst:297 msgid "" @@ -384,6 +522,14 @@ msgid "" "requested by an arbitrary amount because of the scheduling of other activity " "in the system." msgstr "" +"Suspend l’exécution du thread appelant pendant le nombre de secondes " +"indiqué. L’argument peut être un nombre à virgule flottante pour indiquer un " +"temps de sommeil plus précis. Le temps de suspension réel peut être " +"inférieur à celui demandé, car tout signal capturé mettra fin à la commande :" +"func:`sleep` après l’exécution de la routine de capture de ce signal. En " +"outre, le temps de suspension peut être plus long que celui demandé par un " +"montant arbitraire en raison de la planification d’une autre activité dans " +"le système." #: ../Doc/library/time.rst:305 msgid "" @@ -391,6 +537,9 @@ msgid "" "a signal, except if the signal handler raises an exception (see :pep:`475` " "for the rationale)." msgstr "" +"La fonction dort maintenant au moins *secondes* même si le sommeil est " +"interrompu par un signal, sauf si le gestionnaire de signaux lève une " +"exception (voir :pep:`475` pour la justification)." #: ../Doc/library/time.rst:313 msgid "" @@ -400,12 +549,20 @@ msgid "" "`localtime` is used. *format* must be a string. :exc:`ValueError` is " "raised if any field in *t* is outside of the allowed range." msgstr "" +"Convertit un *tuple* ou :class:`struct_time` représentant une heure renvoyée " +"par :func:`gmtime` ou :func:`localtime` en une chaîne spécifiée par " +"l’argument *format*. Si *t* n’est pas fourni, l’heure actuelle renvoyée par :" +"func:`localtime` est utilisée. *format* doit être une chaîne. Si l’un des " +"champs de *t* se situe en dehors de la plage autorisée, une :exc:" +"`ValueError` est levée ." #: ../Doc/library/time.rst:319 msgid "" "0 is a legal argument for any position in the time tuple; if it is normally " "illegal the value is forced to a correct one." msgstr "" +"0 est un argument légal pour toute position dans le *tuple* temporel ; s’il " +"est normalement illégal, la valeur est forcée à une valeur correcte." #: ../Doc/library/time.rst:322 msgid "" @@ -413,6 +570,10 @@ msgid "" "shown without the optional field width and precision specification, and are " "replaced by the indicated characters in the :func:`strftime` result:" msgstr "" +"Les directives suivantes peuvent être incorporées dans la chaîne *format*. " +"Ils sont affichés sans la spécification facultative de largeur de champ ni " +"de précision, et sont remplacés par les caractères indiqués dans le résultat " +"de :func:`strftime` :" #: ../Doc/library/time.rst:327 msgid "Directive" @@ -432,7 +593,7 @@ msgstr "``%a``" #: ../Doc/library/time.rst:329 msgid "Locale's abbreviated weekday name." -msgstr "" +msgstr "Nom abrégé du jour de la semaine selon les paramètres régionaux." #: ../Doc/library/time.rst:332 msgid "``%A``" @@ -440,7 +601,7 @@ msgstr "``%A``" #: ../Doc/library/time.rst:332 msgid "Locale's full weekday name." -msgstr "" +msgstr "Le nom de semaine complet de la région." #: ../Doc/library/time.rst:334 msgid "``%b``" @@ -448,7 +609,7 @@ msgstr "``%b``" #: ../Doc/library/time.rst:334 msgid "Locale's abbreviated month name." -msgstr "" +msgstr "Nom abrégé du mois de la région." #: ../Doc/library/time.rst:337 msgid "``%B``" @@ -456,7 +617,7 @@ msgstr "``%B``" #: ../Doc/library/time.rst:337 msgid "Locale's full month name." -msgstr "" +msgstr "Nom complet du mois de la région." #: ../Doc/library/time.rst:339 msgid "``%c``" @@ -472,7 +633,7 @@ msgstr "``%d``" #: ../Doc/library/time.rst:342 msgid "Day of the month as a decimal number [01,31]." -msgstr "" +msgstr "Jour du mois sous forme décimale [01,31]." #: ../Doc/library/time.rst:345 msgid "``%H``" @@ -480,7 +641,7 @@ msgstr "``%H``" #: ../Doc/library/time.rst:345 msgid "Hour (24-hour clock) as a decimal number [00,23]." -msgstr "" +msgstr "Heure (horloge sur 24 heures) sous forme de nombre décimal [00,23]." #: ../Doc/library/time.rst:348 msgid "``%I``" @@ -488,7 +649,7 @@ msgstr "``%I``" #: ../Doc/library/time.rst:348 msgid "Hour (12-hour clock) as a decimal number [01,12]." -msgstr "" +msgstr "Heure (horloge sur 12 heures) sous forme de nombre décimal [01,12]." #: ../Doc/library/time.rst:351 msgid "``%j``" @@ -496,7 +657,7 @@ msgstr "``%j``" #: ../Doc/library/time.rst:351 msgid "Day of the year as a decimal number [001,366]." -msgstr "" +msgstr "Jour de l’année sous forme de nombre décimal [001,366]." #: ../Doc/library/time.rst:354 msgid "``%m``" @@ -504,7 +665,7 @@ msgstr "``%m``" #: ../Doc/library/time.rst:354 msgid "Month as a decimal number [01,12]." -msgstr "" +msgstr "Mois sous forme décimale [01,12]." #: ../Doc/library/time.rst:357 msgid "``%M``" @@ -512,7 +673,7 @@ msgstr "``%M``" #: ../Doc/library/time.rst:357 msgid "Minute as a decimal number [00,59]." -msgstr "" +msgstr "Minutes sous forme décimale [00,59]." #: ../Doc/library/time.rst:360 msgid "``%p``" @@ -532,7 +693,7 @@ msgstr "``%S``" #: ../Doc/library/time.rst:363 msgid "Second as a decimal number [00,61]." -msgstr "" +msgstr "Deuxième sous forme de nombre décimal [00,61]." #: ../Doc/library/time.rst:363 msgid "\\(2)" @@ -548,6 +709,10 @@ msgid "" "number [00,53]. All days in a new year preceding the first Sunday are " "considered to be in week 0." msgstr "" +"Numéro de semaine de l’année (dimanche en tant que premier jour de la " +"semaine) sous forme décimale [00,53]. Tous les jours d’une nouvelle année " +"précédant le premier dimanche sont considérés comme appartenant à la semaine " +"0." #: ../Doc/library/time.rst:366 ../Doc/library/time.rst:377 msgid "\\(3)" @@ -559,7 +724,7 @@ msgstr "``%w``" #: ../Doc/library/time.rst:374 msgid "Weekday as a decimal number [0(Sunday),6]." -msgstr "" +msgstr "Jour de la semaine sous forme de nombre décimal [0 (dimanche), 6]." #: ../Doc/library/time.rst:377 msgid "``%W``" @@ -571,6 +736,9 @@ msgid "" "number [00,53]. All days in a new year preceding the first Monday are " "considered to be in week 0." msgstr "" +"Numéro de semaine de l’année (lundi comme premier jour de la semaine) sous " +"forme décimale [00,53]. Tous les jours d’une nouvelle année précédant le " +"premier lundi sont considérés comme appartenant à la semaine 0." #: ../Doc/library/time.rst:385 msgid "``%x``" @@ -594,7 +762,7 @@ msgstr "``%y``" #: ../Doc/library/time.rst:391 msgid "Year without century as a decimal number [00,99]." -msgstr "" +msgstr "Année sans siècle comme un nombre décimal [00, 99]." #: ../Doc/library/time.rst:394 msgid "``%Y``" @@ -614,6 +782,10 @@ msgid "" "GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M " "represents decimal minute digits [-23:59, +23:59]." msgstr "" +"Décalage de fuseau horaire indiquant une différence de temps positive ou " +"négative par rapport à UTC / GMT de la forme *+HHMM* ou *-HHMM*, où H " +"représente les chiffres des heures décimales et M, les chiffres des minutes " +"décimales [*-23:59*, *+23:59*]." #: ../Doc/library/time.rst:403 msgid "``%Z``" @@ -622,6 +794,7 @@ msgstr "``%Z``" #: ../Doc/library/time.rst:403 msgid "Time zone name (no characters if no time zone exists)." msgstr "" +"Nom du fuseau horaire (pas de caractères s’il n’y a pas de fuseau horaire)." #: ../Doc/library/time.rst:406 msgid "``%%``" @@ -641,6 +814,9 @@ msgid "" "affects the output hour field if the ``%I`` directive is used to parse the " "hour." msgstr "" +"Lorsqu’elle est utilisée avec la fonction :func:`strptime`, la directive ``" +"%p`` n’affecte le champ d’heure en sortie que si la directive ``%I`` est " +"utilisée pour analyser l’heure." #: ../Doc/library/time.rst:416 msgid "" @@ -648,18 +824,26 @@ msgid "" "representing `leap seconds`_ and value ``61`` is supported for historical " "reasons." msgstr "" +"La plage est en réalité de ``0`` à ``61`` ; La valeur ``60`` est valide dans " +"les *timestamps* représentant des `leap seconds`_ et la valeur ``61`` est " +"prise en charge pour des raisons historiques." #: ../Doc/library/time.rst:421 msgid "" "When used with the :func:`strptime` function, ``%U`` and ``%W`` are only " "used in calculations when the day of the week and the year are specified." msgstr "" +"Lorsqu’elles sont utilisées avec la fonction :func:`strptime`, ``%U`` et ``" +"%W`` ne sont utilisées que dans les calculs lorsque le jour de la semaine et " +"l’année sont spécifiés." #: ../Doc/library/time.rst:424 msgid "" "Here is an example, a format for dates compatible with that specified in " "the :rfc:`2822` Internet email standard. [#]_ ::" msgstr "" +"Voici un exemple de format de date compatible avec celui spécifié dans la " +"norme de courrier électronique Internet suivante :rfc:`2822`. [#]_ ::" #: ../Doc/library/time.rst:431 msgid "" @@ -668,6 +852,11 @@ msgid "" "of format codes supported on your platform, consult the :manpage:" "`strftime(3)` documentation." msgstr "" +"Des directives supplémentaires peuvent être prises en charge sur certaines " +"plates-formes, mais seules celles énumérées ici ont une signification " +"normalisée par ANSI C. Pour voir la liste complète des codes de format pris " +"en charge sur votre plate-forme, consultez la documentation :manpage:" +"`strftime(3)`." #: ../Doc/library/time.rst:436 msgid "" @@ -676,12 +865,19 @@ msgid "" "order; this is also not portable. The field width is normally 2 except for ``" "%j`` where it is 3." msgstr "" +"Sur certaines plates-formes, une spécification facultative de largeur et de " +"précision de champ peut suivre immédiatement le ``'%'`` initial d’une " +"directive dans l’ordre suivant ; ce n’est pas non plus portable. La largeur " +"du champ est normalement 2 sauf pour ``%j`` où il est 3." #: ../Doc/library/time.rst:444 msgid "" "Parse a string representing a time according to a format. The return value " "is a :class:`struct_time` as returned by :func:`gmtime` or :func:`localtime`." msgstr "" +"Analyse une chaîne représentant une heure selon un format. La valeur " +"renvoyée est une :class:`struct_time` tel que renvoyé par :func:`gmtime` ou :" +"func:`localtime`." #: ../Doc/library/time.rst:448 msgid "" @@ -693,6 +889,14 @@ msgid "" "accurate values cannot be inferred are ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``. " "Both *string* and *format* must be strings." msgstr "" +"Le paramètre *format* utilise les mêmes directives que celles utilisées par :" +"func:`strftime`; La valeur par défaut est ``\"%a %b %d %H:%M:%S %Y\"`` qui " +"correspond à la mise en forme renvoyée par :func:`ctime`. Si *string* ne " +"peut pas être analysé selon *format*, ou s’il contient trop de données après " +"l’analyse, une exception :exc:`ValueError` est levée. Les valeurs par défaut " +"utilisées pour renseigner les données manquantes lorsque des valeurs plus " +"précises ne peuvent pas être inférées sont ``(1900, 1, 1, 0, 0, 0, 0, 1, " +"-1)``. *string* et *format* doivent être des chaînes." #: ../Doc/library/time.rst:456 msgid "For example:" @@ -705,6 +909,11 @@ msgid "" "platform-specific except for recognizing UTC and GMT which are always known " "(and are considered to be non-daylight savings timezones)." msgstr "" +"La prise en charge de la directive ``%Z`` est basée sur les valeurs " +"contenues dans ``tzname`` et sur le fait de savoir si ``daylight`` est vrai. " +"Pour cette raison, il est spécifique à la plate-forme, à l’exception de la " +"reconnaissance des heures UTC et GMT, qui sont toujours connues (et " +"considérées comme des fuseaux horaires ne respectant pas l’heure d’été)." #: ../Doc/library/time.rst:468 msgid "" @@ -714,6 +923,12 @@ msgid "" "platform and thus does not necessarily support all directives available that " "are not documented as supported." msgstr "" +"Seules les directives spécifiées dans la documentation sont prises en " +"charge. Parce que ``strftime()`` peut être implémenté différemment sur " +"chaque plate-forme, il peut parfois offrir plus de directives que celles " +"listées. Mais ``strptime()`` est indépendant de toute plate-forme et ne " +"supporte donc pas nécessairement toutes les directives disponibles qui ne " +"sont pas documentées comme gérées." #: ../Doc/library/time.rst:477 msgid "" @@ -722,10 +937,14 @@ msgid "" "tuple` interface: values can be accessed by index and by attribute name. " "The following values are present:" msgstr "" +"Le type de la séquence de valeur temporelle renvoyé par :func:`gmtime`, :" +"func:`localtime` et :func:`strptime`. Semblable à un :term:`named tuple` : " +"ses valeurs sont accessibles par index et par nom d’attribut. Les valeurs " +"suivantes sont présentes :" #: ../Doc/library/time.rst:483 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/time.rst:483 msgid "Attribute" @@ -745,7 +964,7 @@ msgstr ":attr:`tm_year`" #: ../Doc/library/time.rst:485 msgid "(for example, 1993)" -msgstr "" +msgstr "(par exemple, 1993)" #: ../Doc/library/time.rst:487 msgid "1" @@ -757,7 +976,7 @@ msgstr ":attr:`tm_mon`" #: ../Doc/library/time.rst:487 msgid "range [1, 12]" -msgstr "" +msgstr "plage [1, 12]" #: ../Doc/library/time.rst:489 msgid "2" @@ -769,7 +988,7 @@ msgstr ":attr:`tm_mday`" #: ../Doc/library/time.rst:489 msgid "range [1, 31]" -msgstr "" +msgstr "plage [1, 31]" #: ../Doc/library/time.rst:491 msgid "3" @@ -781,7 +1000,7 @@ msgstr ":attr:`tm_hour`" #: ../Doc/library/time.rst:491 msgid "range [0, 23]" -msgstr "" +msgstr "plage [0, 23]" #: ../Doc/library/time.rst:493 msgid "4" @@ -793,7 +1012,7 @@ msgstr ":attr:`tm_min`" #: ../Doc/library/time.rst:493 msgid "range [0, 59]" -msgstr "" +msgstr "plage [0, 59]" #: ../Doc/library/time.rst:495 msgid "5" @@ -805,7 +1024,7 @@ msgstr ":attr:`tm_sec`" #: ../Doc/library/time.rst:495 msgid "range [0, 61]; see **(2)** in :func:`strftime` description" -msgstr "" +msgstr "plage [0, 61]; voir **(2)** dans la description :func:`strftime`" #: ../Doc/library/time.rst:498 msgid "6" @@ -817,7 +1036,7 @@ msgstr ":attr:`tm_wday`" #: ../Doc/library/time.rst:498 msgid "range [0, 6], Monday is 0" -msgstr "" +msgstr "plage [0, 6], Lundi valant 0" #: ../Doc/library/time.rst:500 msgid "7" @@ -829,7 +1048,7 @@ msgstr ":attr:`tm_yday`" #: ../Doc/library/time.rst:500 msgid "range [1, 366]" -msgstr "" +msgstr "plage [1, 366]" #: ../Doc/library/time.rst:502 msgid "8" @@ -841,7 +1060,7 @@ msgstr ":attr:`tm_isdst`" #: ../Doc/library/time.rst:502 msgid "0, 1 or -1; see below" -msgstr "" +msgstr "``0``, ``1`` or ``-1`` ; voir en bas" #: ../Doc/library/time.rst:504 ../Doc/library/time.rst:506 msgid "N/A" @@ -853,7 +1072,7 @@ msgstr ":attr:`tm_zone`" #: ../Doc/library/time.rst:504 msgid "abbreviation of timezone name" -msgstr "" +msgstr "abréviation du nom du fuseau horaire" #: ../Doc/library/time.rst:506 msgid ":attr:`tm_gmtoff`" @@ -861,13 +1080,15 @@ msgstr ":attr:`tm_gmtoff`" #: ../Doc/library/time.rst:506 msgid "offset east of UTC in seconds" -msgstr "" +msgstr "décalage à l’est de UTC en secondes" #: ../Doc/library/time.rst:509 msgid "" "Note that unlike the C structure, the month value is a range of [1, 12], not " "[0, 11]." msgstr "" +"Notez que contrairement à la structure C, la valeur du mois est une plage de " +"[1, 12], pas de [0, 11]." #: ../Doc/library/time.rst:512 msgid "" @@ -876,6 +1097,10 @@ msgid "" "that this is not known, and will usually result in the correct state being " "filled in." msgstr "" +"Dans les appels à :func:`mktime`, :attr:`tm_isdst` peut être défini sur 1 " +"lorsque l’heure d'été est en vigueur et sur 0 lorsque ce n’est pas le cas. " +"Une valeur de ``-1`` indique que cela n’est pas connu et entraînera " +"généralement le remplissage de l’état correct." #: ../Doc/library/time.rst:516 msgid "" @@ -883,6 +1108,9 @@ msgid "" "class:`struct_time`, or having elements of the wrong type, a :exc:" "`TypeError` is raised." msgstr "" +"Lorsqu’un *tuple* de longueur incorrecte est passé à une fonction acceptant " +"une :class:`struct_time`, ou comportant des éléments de type incorrect, une " +"exception :exc:`TypeError` est levé." #: ../Doc/library/time.rst:522 msgid "" @@ -894,6 +1122,14 @@ msgid "" "wikipedia.org/wiki/Unix_time>`_. To find out what the epoch is on a given " "platform, look at ``gmtime(0)``." msgstr "" +"Renvoie le temps en secondes depuis epoch_ sous forme de nombre à virgule " +"flottante. La date spécifique de *epoch* et le traitement des secondes " +"intercalaires (`leap seconds`_) dépendent de la plate-forme. Sous Windows et " +"la plupart des systèmes Unix, *epoch* est le 1er janvier 1970, 00:00:00 " +"(UTC) et les secondes intercalaires ne sont pas comptées dans le temps en " +"secondes depuis *epoch*. Ceci est communément appelé `Heure Unix `_. Pour savoir quelle est *epoch* sur une " +"plate-forme donnée, consultez ``gmtime(0)``." #: ../Doc/library/time.rst:532 msgid "" @@ -903,6 +1139,12 @@ msgid "" "lower value than a previous call if the system clock has been set back " "between the two calls." msgstr "" +"Notez que même si l’heure est toujours renvoyée sous forme de nombre à " +"virgule flottante, tous les systèmes ne fournissent pas l’heure avec une " +"précision supérieure à 1 seconde. Bien que cette fonction renvoie " +"normalement des valeurs croissantes, elle peut renvoyer une valeur " +"inférieure à celle d’un appel précédent si l’horloge système a été réglée " +"entre les deux appels." #: ../Doc/library/time.rst:538 msgid "" @@ -913,6 +1155,12 @@ msgid "" "returned, from which the components of the calendar date may be accessed as " "attributes." msgstr "" +"Le nombre renvoyé par :func:`.time` peut être converti en un format d’heure " +"plus courant (année, mois, jour, heure, etc.) en UTC en le transmettant à la " +"fonction :func:`gmtime` ou dans heure locale en le transmettant à la " +"fonction :func:`localtime`. Dans les deux cas, un objet :class:`struct_time` " +"est renvoyé, à partir duquel les composants de la date du calendrier peuvent " +"être consultés en tant qu’attributs." #: ../Doc/library/time.rst:548 msgid "" @@ -926,20 +1174,27 @@ msgid "" "affect the output of functions like :func:`localtime` without calling :func:" "`tzset`, this behavior should not be relied on." msgstr "" +"Bien que dans de nombreux cas, la modification de la variable " +"d’environnement :envvar:`TZ` puisse affecter la sortie de fonctions telles " +"que :func:`localtime` sans appeler :func:`tzset`, ce comportement n'est pas " +"garanti." #: ../Doc/library/time.rst:559 msgid "The :envvar:`TZ` environment variable should contain no whitespace." msgstr "" +"La variable d’environnement :envvar:`TZ` ne doit contenir aucun espace." #: ../Doc/library/time.rst:561 msgid "" "The standard format of the :envvar:`TZ` environment variable is (whitespace " "added for clarity)::" msgstr "" +"Le format standard de la variable d’environnement :envvar:`TZ` est (espaces " +"ajoutés pour plus de clarté)::" #: ../Doc/library/time.rst:566 msgid "Where the components are:" -msgstr "" +msgstr "Où les composants sont :" #: ../Doc/library/time.rst:570 msgid "``std`` and ``dst``" @@ -950,6 +1205,8 @@ msgid "" "Three or more alphanumerics giving the timezone abbreviations. These will be " "propagated into time.tzname" msgstr "" +"Trois alphanumériques ou plus donnant les abréviations du fuseau horaire. " +"Ceux-ci seront propagés dans *time.tzname*" #: ../Doc/library/time.rst:576 msgid "``offset``" @@ -962,6 +1219,11 @@ msgid "" "of the Prime Meridian; otherwise, it is west. If no offset follows dst, " "summer time is assumed to be one hour ahead of standard time." msgstr "" +"Le décalage a la forme suivante : ``± hh[:mm[:ss]]``. Cela indique la valeur " +"ajoutée à l’heure locale pour arriver à UTC. S'il est précédé d’un ``'-'``, " +"le fuseau horaire est à l’est du Premier Méridien ; sinon, c’est l’ouest. Si " +"aucun décalage ne suit *dst*, l’heure d’été est supposée être en avance " +"d’une heure sur l’heure standard." #: ../Doc/library/time.rst:598 msgid "``start[/time], end[/time]``" @@ -972,6 +1234,8 @@ msgid "" "Indicates when to change to and back from DST. The format of the start and " "end dates are one of the following:" msgstr "" +"Indique quand passer à DST et en revenir. Le format des dates de début et de " +"fin est l’un des suivants :" #: ../Doc/library/time.rst:584 msgid ":samp:`J{n}`" @@ -982,6 +1246,9 @@ msgid "" "The Julian day *n* (1 <= *n* <= 365). Leap days are not counted, so in all " "years February 28 is day 59 and March 1 is day 60." msgstr "" +"Le jour Julien *n* (1 <= *n* <= 365). Les jours bissextiles ne sont pas " +"comptabilisés. Par conséquent, le 28 février est le 59\\ :sup:`e` jour et le " +"1\\ :sup:`er` Mars est le 60\\ :sup:`e` jour de toutes les années." #: ../Doc/library/time.rst:588 msgid ":samp:`{n}`" @@ -992,6 +1259,8 @@ msgid "" "The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and it " "is possible to refer to February 29." msgstr "" +"Le jour Julien de base zéro (0 <= *n* <= 365). Les jours bissextiles sont " +"comptés et il est possible de se référer au 29 février." #: ../Doc/library/time.rst:595 msgid ":samp:`M{m}.{n}.{d}`" @@ -1004,12 +1273,20 @@ msgid "" "\" which may occur in either the fourth or the fifth week). Week 1 is the " "first week in which the *d*'th day occurs. Day zero is a Sunday." msgstr "" +"Le *d* jour (0 <= *d* <= 6) de la semaine *n* du mois *m* de l’année (1 <= " +"*n* <= 5, 1 <= *m* <= 12, où semaine 5 signifie “le *dernier* jour du mois " +"*m*” pouvant se produire au cours de la quatrième ou de la cinquième " +"semaine). La semaine 1 est la première semaine au cours de laquelle le " +"*jour* se produit. Le jour zéro est un dimanche." #: ../Doc/library/time.rst:597 msgid "" "``time`` has the same format as ``offset`` except that no leading sign ('-' " "or '+') is allowed. The default, if time is not given, is 02:00:00." msgstr "" +"``time`` a le même format que ``offset`` sauf qu’aucun signe de direction " +"(``'-'`` ou ``'+'``) n’est autorisé. La valeur par défaut, si l’heure n’est " +"pas spécifiée, est 02:00:00." #: ../Doc/library/time.rst:611 msgid "" @@ -1021,16 +1298,26 @@ msgid "" "located at :file:`/usr/share/zoneinfo`. For example, ``'US/Eastern'``, " "``'Australia/Melbourne'``, ``'Egypt'`` or ``'Europe/Amsterdam'``. ::" msgstr "" +"Sur de nombreux systèmes Unix (y compris \\*BSD, Linux, Solaris et Darwin), " +"il est plus pratique d’utiliser la base de données *zoneinfo* (:manpage:" +"`tzfile (5)`) du système pour spécifier les règles de fuseau horaire. Pour " +"ce faire, définissez la variable d’environnement :envvar:`TZ` sur le chemin " +"du fichier de fuseau horaire requis, par rapport à la racine de la base de " +"données du système *zoneinfo*, généralement situé à :file:`/usr/share/" +"zoneinfo`. Par exemple, ``'US/Eastern'``, ``'Australia/Melbourne'``, " +"``'Egypt'`` ou ``'Europe/Amsterdam'``. ::" #: ../Doc/library/time.rst:632 msgid "Clock ID Constants" -msgstr "" +msgstr "Constantes d’identification d’horloge" #: ../Doc/library/time.rst:634 msgid "" "These constants are used as parameters for :func:`clock_getres` and :func:" "`clock_gettime`." msgstr "" +"Ces constantes sont utilisées comme paramètres pour :func:`clock_getres` et :" +"func:`clock_gettime`." #: ../Doc/library/time.rst:639 msgid "" @@ -1038,6 +1325,10 @@ msgid "" "hardware source, and may give close to nanosecond resolution. " "``CLOCK_HIGHRES`` is the nonadjustable, high-resolution clock." msgstr "" +"Le système d’exploitation Solaris dispose d’une horloge ``CLOCK_HIGHRES`` " +"qui tente d’utiliser une source matérielle optimale et peut donner une " +"résolution proche de la nanoseconde. ``CLOCK_HIGHRES`` est l’horloge haute " +"résolution non ajustable." #: ../Doc/library/time.rst:643 msgid "Availability: Solaris." @@ -1048,12 +1339,16 @@ msgid "" "Clock that cannot be set and represents monotonic time since some " "unspecified starting point." msgstr "" +"Horloge qui ne peut pas être réglée et représente l’heure monotone depuis un " +"point de départ non spécifié." #: ../Doc/library/time.rst:660 msgid "" "Similar to :data:`CLOCK_MONOTONIC`, but provides access to a raw hardware-" "based time that is not subject to NTP adjustments." msgstr "" +"Similaire à :data:`CLOCK_MONOTONIC`, mais donne accès à une heure matérielle " +"brute qui n’est pas soumise aux ajustements NTP." #: ../Doc/library/time.rst:663 msgid "Availability: Linux 2.6.28 or later." @@ -1061,27 +1356,31 @@ msgstr "" #: ../Doc/library/time.rst:670 msgid "High-resolution per-process timer from the CPU." -msgstr "" +msgstr "Minuterie haute résolution par processus du CPU." #: ../Doc/library/time.rst:679 msgid "Thread-specific CPU-time clock." -msgstr "" +msgstr "Horloge de temps CPU spécifique au thread." #: ../Doc/library/time.rst:686 msgid "" "The following constant is the only parameter that can be sent to :func:" "`clock_settime`." msgstr "" +"La constante suivante est le seul paramètre pouvant être envoyé à :func:" +"`clock_settime`." #: ../Doc/library/time.rst:691 msgid "" "System-wide real-time clock. Setting this clock requires appropriate " "privileges." msgstr "" +"Horloge en temps réel à l’échelle du système. Le réglage de cette horloge " +"nécessite des privilèges appropriés." #: ../Doc/library/time.rst:702 msgid "Timezone Constants" -msgstr "" +msgstr "Constantes de fuseau horaire" #: ../Doc/library/time.rst:706 msgid "" @@ -1090,10 +1389,14 @@ msgid "" "Western Europe, including the UK). Only use this if ``daylight`` is " "nonzero. See note below." msgstr "" +"Décalage du fuseau horaire DST local, en secondes à l’ouest de UTC, s’il en " +"est défini un. Cela est négatif si le fuseau horaire DST local est à l’est " +"de UTC (comme en Europe occidentale, y compris le Royaume-Uni). Utilisez " +"ceci uniquement si ``daylight`` est différent de zéro. Voir note ci-dessous." #: ../Doc/library/time.rst:712 msgid "Nonzero if a DST timezone is defined. See note below." -msgstr "" +msgstr "Non nul si un fuseau horaire DST est défini. Voir note ci-dessous." #: ../Doc/library/time.rst:716 msgid "" @@ -1101,6 +1404,9 @@ msgid "" "in most of Western Europe, positive in the US, zero in the UK). See note " "below." msgstr "" +"Décalage du fuseau horaire local (hors heure d’été), en secondes à l’ouest " +"de l’UTC (négatif dans la plupart des pays d’Europe occidentale, positif aux " +"États-Unis, nul au Royaume-Uni). Voir note ci-dessous." #: ../Doc/library/time.rst:721 msgid "" @@ -1108,6 +1414,10 @@ msgid "" "the second is the name of the local DST timezone. If no DST timezone is " "defined, the second string should not be used. See note below." msgstr "" +"Un *tuple* de deux chaînes : la première est le nom du fuseau horaire local " +"autre que DST, la seconde est le nom du fuseau horaire DST local. Si aucun " +"fuseau horaire DST n’est défini, la deuxième chaîne ne doit pas être " +"utilisée. Voir note ci-dessous." #: ../Doc/library/time.rst:727 msgid "" @@ -1118,6 +1428,13 @@ msgid "" "attr:`tm_gmtoff` and :attr:`tm_zone` results from :func:`localtime` to " "obtain timezone information." msgstr "" +"Pour les constantes de fuseau horaire ci-dessus ( :data:`altzone`, :data:" +"`daylight`, :data:`timezone` et :data:`tzname`), la valeur est déterminée " +"par les règles de fuseau horaire en vigueur au moment du chargement du " +"module ou la dernière fois :func:`tzset` est appelé et peut être incorrect " +"pour des temps passés. Il est recommandé d’utiliser :attr:`tm_gmtoff` et :" +"attr:`tm_zone` résulte de :func:`localtime` pour obtenir des informations " +"sur le fuseau horaire." #: ../Doc/library/time.rst:737 msgid "Module :mod:`datetime`" @@ -1125,7 +1442,7 @@ msgstr "Module :mod:`datetime`" #: ../Doc/library/time.rst:737 msgid "More object-oriented interface to dates and times." -msgstr "" +msgstr "Interface plus orientée objet vers les dates et les heures." #: ../Doc/library/time.rst:741 msgid "Module :mod:`locale`" @@ -1137,6 +1454,9 @@ msgid "" "interpretation of many format specifiers in :func:`strftime` and :func:" "`strptime`." msgstr "" +"Services d’internationalisation. Les paramètres régionaux affectent " +"l’interprétation de nombreux spécificateurs de format dans :func:`strftime` " +"et :func:`strptime`." #: ../Doc/library/time.rst:744 msgid "Module :mod:`calendar`" @@ -1147,6 +1467,8 @@ msgid "" "General calendar-related functions. :func:`~calendar.timegm` is the " "inverse of :func:`gmtime` from this module." msgstr "" +"Fonctions générales liées au calendrier. :func:`~calendar.timegm` est " +"l’inverse de :func:`gmtime` à partir de ce module." #: ../Doc/library/time.rst:748 msgid "Footnotes" @@ -1162,3 +1484,11 @@ msgid "" "digit year has been first recommended by :rfc:`1123` and then mandated by :" "rfc:`2822`." msgstr "" +"L'utilisation de ``%Z`` est maintenant obsolète, mais l'échappement ``%z`` " +"qui donne le décalage horaire jusqu'à la minute et dépendant des paramètres " +"régionaux n'est pas pris en charge par toutes les bibliothèques C ANSI. En " +"outre, une lecture stricte du standard :rfc:`822` de 1982 milite pour une " +"année à deux chiffres (%y plutôt que %Y), mais la pratique a migré vers des " +"années à 4 chiffres de long avant l'année 2000. Après cela, la :rfc:`822` " +"est devenue obsolète et l'année à 4 chiffres a été recommandée pour la " +"première fois par la :rfc:`1123` puis rendue obligatoire par la :rfc:`2822`." diff --git a/library/timeit.po b/library/timeit.po index a331e6437..76c9e7f82 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -209,7 +209,7 @@ msgstr "" #: ../Doc/library/timeit.rst:196 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/timeit.rst:198 msgid "" diff --git a/library/tkinter.po b/library/tkinter.po index dc9cdf3d3..c81af3508 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -682,7 +682,7 @@ msgstr "" #: ../Doc/library/tkinter.rst:435 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/tkinter.rst:435 msgid "Meaning" @@ -698,7 +698,7 @@ msgstr "0" #: ../Doc/library/tkinter.rst:437 msgid "option name" -msgstr "" +msgstr "Nom des options" #: ../Doc/library/tkinter.rst:437 ../Doc/library/tkinter.rst:439 msgid "``'relief'``" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index d6e902b2c..3bcdfeba2 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -152,7 +152,7 @@ msgstr "" #: ../Doc/library/tracemalloc.rst:256 msgid "API" -msgstr "" +msgstr "API" #: ../Doc/library/tracemalloc.rst:259 msgid "Functions" diff --git a/library/turtle.po b/library/turtle.po index f4b77910c..0cc507c30 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/turtle.rst:3 msgid ":mod:`turtle` --- Turtle graphics" -msgstr "" +msgstr ":mod:`turtle` — Tortue graphique" #: ../Doc/library/turtle.rst:10 msgid "**Source code:** :source:`Lib/turtle.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/turtle.py`" #: ../Doc/library/turtle.rst:20 msgid "Introduction" @@ -35,6 +35,9 @@ msgid "" "was part of the original Logo programming language developed by Wally " "Feurzig and Seymour Papert in 1966." msgstr "" +"Une façon populaire pour initier les enfants au monde du développement est " +"le module Tortue graphique. Ce dernier faisait partie du langage de " +"programmation Logo créé par Wally Feurzig et Seymout Papert en 1966." #: ../Doc/library/turtle.rst:26 msgid "" @@ -44,23 +47,33 @@ msgid "" "moves. Give it the command ``turtle.right(25)``, and it rotates in-place 25 " "degrees clockwise." msgstr "" +"Imaginez un robot sous forme de tortue partant au centre (0, 0) d'un plan " +"cartésien x-y. Après un ``import turtle``, exécutez la commande ``turtle." +"forward(15)`` et la tortue se déplace (sur l'écran) de 15 pixels en face " +"d'elle, en dessinant une ligne." #: ../Doc/library/turtle.rst:33 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" +"La tortue permet de dessiner des formes complexes en utilisant un programme " +"qui répète des actions élémentaires." #: ../Doc/library/turtle.rst:41 msgid "" "By combining together these and similar commands, intricate shapes and " "pictures can easily be drawn." msgstr "" +"On peut donc facilement construire des formes et images à partir de " +"commandes simples." #: ../Doc/library/turtle.rst:44 msgid "" "The :mod:`turtle` module is an extended reimplementation of the same-named " "module from the Python standard distribution up to version Python 2.5." msgstr "" +"Le module :mod:`turtle` est une version étendue du module homonyme " +"appartenant à la distribution standard de Python jusqu'à la version 2.5." #: ../Doc/library/turtle.rst:47 msgid "" @@ -69,6 +82,11 @@ msgid "" "programmer to use all the commands, classes and methods interactively when " "using the module from within IDLE run with the ``-n`` switch." msgstr "" +"Cette bibliothèque essaye de garder les avantages de l'ancien module et " +"d'être (presque) 100% compatible avec celui-ci. Cela permet à l'apprenti " +"développeur d'utiliser toutes les commandes, classes et méthodes de façon " +"interactive pendant qu'il utilise le module depuis IDLE lancé avec l'option " +"``-n``." #: ../Doc/library/turtle.rst:52 msgid "" @@ -77,10 +95,15 @@ msgid "" "the underlying graphics, it needs a version of Python installed with Tk " "support." msgstr "" +"*Turtle* permet d'utiliser des primitives graphiques en utilisant un style " +"de programmation orienté objet ou procédural. Du fait qu'il utilise la " +"bibliothèque graphique :mod:`tkinter`, *Turtle* a besoin d'une version de " +"python implémentant *Tk*." #: ../Doc/library/turtle.rst:56 msgid "The object-oriented interface uses essentially two+two classes:" msgstr "" +"L'interface orientée objet utilise essentiellement deux + deux classes :" #: ../Doc/library/turtle.rst:58 msgid "" @@ -89,6 +112,11 @@ msgid "" "class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is " "used as part of some application." msgstr "" +"La classe :class:`TurtleScreen` définit une fenêtre graphique utilisé comme " +"un terrain de jeu pour les dessins de la tortue. Le constructeur de cette " +"classe a besoin d'un :class:`tkinter.Canvas` ou :class:`ScrolledCanvas` " +"comme argument. Cette classe doit être utilisée seulement si :mod:`turtle` " +"fait partie intégrante d'une autre application." #: ../Doc/library/turtle.rst:63 msgid "" @@ -97,12 +125,19 @@ msgid "" "used as a standalone tool for doing graphics. As a singleton object, " "inheriting from its class is not possible." msgstr "" +"La fonction :func:`Screen` renvoie un singleton d'une sous-classe de :class:" +"`TurtleScreen`. Elle doit être utilisée quand le module :mod:`turtle` est " +"utilisé de façon autonome pour dessiner. Le singleton renvoyé ne peut " +"hériter de sa classe." #: ../Doc/library/turtle.rst:68 msgid "" "All methods of TurtleScreen/Screen also exist as functions, i.e. as part of " "the procedure-oriented interface." msgstr "" +"Toutes les méthodes de *TurtleScreen*/*Screen* existent également sous la " +"forme de fonctions, c'est-à-dire que ces dernières peuvent être utilisées " +"dans un style procédural." #: ../Doc/library/turtle.rst:71 msgid "" @@ -111,6 +146,10 @@ msgid "" "ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " "where to draw." msgstr "" +"La classe :class:`RawTurtle` (alias :class:`RawPen`) définit des objets " +"*Turtle* qui peuvent dessiner sur la classe :class:`TurtleScreen`. Son " +"constructeur prend en paramètre un *Canvas*, un *ScrolledCanvas* ou un " +"*TurtleScreen* permettant à l'objet *RawTurtle* de savoir où écrire." #: ../Doc/library/turtle.rst:75 msgid "" @@ -118,12 +157,18 @@ msgid "" "`Pen`), which draws on \"the\" :class:`Screen` instance which is " "automatically created, if not already present." msgstr "" +"La sous-classe :class:`Turtle` (alias: :class:`Pen`), dérivée de " +"*RawTurtle*, dessine sur l'instance :class:`Screen` qui est créée " +"automatiquement si elle n'est pas déjà présente." #: ../Doc/library/turtle.rst:79 msgid "" "All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " "procedure-oriented interface." msgstr "" +"Toutes les méthodes de *RawTurtle*/*Turtle* existent également sous la forme " +"de fonctions, c'est-à-dire que ces dernières pourront être utilisées en " +"style procédural." #: ../Doc/library/turtle.rst:82 msgid "" @@ -134,12 +179,20 @@ msgid "" "(unnamed) turtle object is automatically created whenever any of the " "functions derived from a Turtle method is called." msgstr "" +"L'interface procédurale met à disposition des fonctions équivalentes à " +"celles des méthodes des classes :class:`Screen` et :class:`Turtle`. Le nom " +"d'une fonction est le même que la méthode équivalente. Un objet *Screen* est " +"créé automatiquement dès qu'une fonction dérivée d'une méthode *Screen* est " +"appelée. Un objet *Turtle* (sans nom) est créé automatiquement dès qu'une " +"fonction dérivée d'une méthode *Turtle* est appelée." #: ../Doc/library/turtle.rst:89 msgid "" "To use multiple turtles on a screen one has to use the object-oriented " "interface." msgstr "" +"Afin de pouvoir utiliser plusieurs tortues simultanément sur l'écran, vous " +"devez utiliser l'interface orientée-objet." #: ../Doc/library/turtle.rst:92 msgid "" @@ -147,22 +200,25 @@ msgid "" "Methods, of course, have the additional first argument *self* which is " "omitted here." msgstr "" +"La liste des paramètres des fonctions est donnée dans cette documentation. " +"Les méthodes ont, évidemment, le paramètre *self* comme premier argument, " +"mais ce dernier n'est pas indiqué ici." #: ../Doc/library/turtle.rst:98 msgid "Overview of available Turtle and Screen methods" -msgstr "" +msgstr "Résumé des méthodes de *Turtle* et *Screen*" #: ../Doc/library/turtle.rst:101 msgid "Turtle methods" -msgstr "" +msgstr "Les méthodes du module *Turtle*" #: ../Doc/library/turtle.rst:132 ../Doc/library/turtle.rst:242 msgid "Turtle motion" -msgstr "" +msgstr "Les mouvements dans le module *Turtle*" #: ../Doc/library/turtle.rst:120 msgid "Move and draw" -msgstr "" +msgstr "Bouger et dessiner" #: ../Doc/library/turtle.rst:0 msgid ":func:`forward` | :func:`fd`" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 06e9c1ef2..589d684ca 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -287,6 +287,9 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." #: ../Doc/library/unittest.mock-examples.rst:310 msgid "" @@ -352,6 +355,9 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" #: ../Doc/library/unittest.mock-examples.rst:410 msgid "" diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 384e3f14b..0dfef3648 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/unittest.mock.rst:3 msgid ":mod:`unittest.mock` --- mock object library" -msgstr "" +msgstr ":mod:`unittest.mock` — Bibliothèque d'objets simulacres" #: ../Doc/library/unittest.mock.rst:13 msgid "**Source code:** :source:`Lib/unittest/mock.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/unittest/mock.py`" #: ../Doc/library/unittest.mock.rst:17 msgid "" @@ -31,6 +31,9 @@ msgid "" "replace parts of your system under test with mock objects and make " "assertions about how they have been used." msgstr "" +":mod:`unittest.mock` est une bibliothèque pour tester en Python. Elle permet " +"de remplacer des parties du système sous tests par des objets simulacres et " +"faire des assertions sur la façon dont ces objets ont été utilisés." #: ../Doc/library/unittest.mock.rst:21 msgid "" @@ -40,6 +43,12 @@ msgid "" "and arguments they were called with. You can also specify return values and " "set needed attributes in the normal way." msgstr "" +":mod:`unittest.mock` fournit une classe :class:`Mock` pour ne pas avoir " +"besoin de créer manuellement des objets factices dans la suite de tests. " +"Après avoir effectué une action, on peut faire des assertions sur les " +"méthodes / attributs utilisés et les arguments avec lesquels ils ont été " +"appelés. On peut également spécifier des valeurs renvoyées et définir les " +"attributs nécessaires aux tests." #: ../Doc/library/unittest.mock.rst:27 msgid "" @@ -49,6 +58,11 @@ msgid "" "some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" "`patch`." msgstr "" +"De plus, *mock* fournit un décorateur :func:`patch` qui est capable de " +"*patcher* les modules et les classes dans la portée d'un test, ainsi que :" +"const:`sentinel` pour créer des objets uniques. Voir le guide rapide `quick " +"guide`_ pour quelques exemples d'utilisation de :class:`Mock`, :class:" +"`MagicMock` et :func:`patch`." #: ../Doc/library/unittest.mock.rst:33 msgid "" @@ -56,16 +70,22 @@ msgid "" "is based on the 'action -> assertion' pattern instead of 'record -> replay' " "used by many mocking frameworks." msgstr "" +"*Mock* est très facile à utiliser et est conçu pour être utilisé avec :mod:" +"`unittest`. *Mock* est basé sur le modèle *action -> assertion* au lieu de " +"*enregistrement -> rejouer* utilisé par de nombreux cadriciels d'objets " +"simulacres." #: ../Doc/library/unittest.mock.rst:37 msgid "" "There is a backport of :mod:`unittest.mock` for earlier versions of Python, " "available as `mock on PyPI `_." msgstr "" +"Il y a un portage de :mod:`unittest.mock` pour les versions antérieures de " +"Python, disponible `sur PyPI `_." #: ../Doc/library/unittest.mock.rst:42 msgid "Quick Guide" -msgstr "" +msgstr "Guide rapide" #: ../Doc/library/unittest.mock.rst:44 msgid "" @@ -74,12 +94,19 @@ msgid "" "can configure them, to specify return values or limit what attributes are " "available, and then make assertions about how they have been used:" msgstr "" +"Les classes :class:`Mock` et :class:`MagicMock` créent tous les attributs et " +"méthodes au fur et à mesure des accès et stockent les détails de la façon " +"dont ils ont été utilisés. On peut les configurer, pour spécifier des " +"valeurs de renvoi ou limiter les attributs utilisables, puis faire des " +"assertions sur la façon dont ils ont été utilisés ::" #: ../Doc/library/unittest.mock.rst:56 msgid "" ":attr:`side_effect` allows you to perform side effects, including raising an " "exception when a mock is called:" msgstr "" +"L'attribut :attr:`side_effect` permet de spécifier des effets de bords, y " +"compris la levée d'une exception lorsqu'un objet simulacre est appelé ::" #: ../Doc/library/unittest.mock.rst:76 msgid "" @@ -88,6 +115,11 @@ msgid "" "from another object. Attempting to access attributes or methods on the mock " "that don't exist on the spec will fail with an :exc:`AttributeError`." msgstr "" +"Il existe beaucoup d'autres façons de configurer et de contrôler le " +"comportement de *Mock*. Par exemple, l'argument *spec* configure le *mock* " +"pour qu'il utilise les spécifications d'un autre objet. Tenter d'accéder à " +"des attributs ou méthodes sur le *mock* qui n'existent pas sur l'objet " +"*spec* lève une :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:81 msgid "" @@ -96,6 +128,10 @@ msgid "" "with a mock (or other object) during the test and restored when the test " "ends:" msgstr "" +"Le décorateur / gestionnaire de contexte :func:`patch` permet de simuler " +"facilement des classes ou des objets dans un module sous tests. L'objet " +"spécifié est remplacé par un objet simulacre (ou autre) pendant le test et " +"est restauré à la fin du test ::" #: ../Doc/library/unittest.mock.rst:100 msgid "" @@ -111,12 +147,17 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Avec :func:`patch`, il est important de *patcher* les objets dans l'espace " +"de nommage où ils sont recherchés. C'est ce qui se fait normalement, mais " +"pour un guide rapide, lisez :ref:`où patcher `." #: ../Doc/library/unittest.mock.rst:109 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" msgstr "" +"Comme tout décorateur, :func:`patch` peut être utilisé comme gestionnaire de " +"contexte avec une instruction *with* ::" #: ../Doc/library/unittest.mock.rst:119 msgid "" @@ -124,6 +165,9 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"Il existe également :func:`patch.dict` pour définir des valeurs d'un " +"dictionnaire au sein d'une portée et restaurer ce dictionnaire à son état " +"d'origine lorsque le test se termine ::" #: ../Doc/library/unittest.mock.rst:130 msgid "" @@ -131,6 +175,9 @@ msgid "" "The easiest way of using magic methods is with the :class:`MagicMock` class. " "It allows you to do things like:" msgstr "" +"*Mock* gère le remplacement des :ref:`méthodes magiques ` de " +"Python. La façon la plus simple d'utiliser les méthodes magiques est la " +"classe :class:`MagicMock`. Elle permet de faire des choses comme ::" #: ../Doc/library/unittest.mock.rst:140 msgid "" @@ -139,12 +186,18 @@ msgid "" "is just a Mock variant that has all of the magic methods pre-created for you " "(well, all the useful ones anyway)." msgstr "" +"*Mock* permet d'assigner des fonctions (ou d'autres instances *Mock*) à des " +"méthodes magiques et elles seront appelées correctement. La classe :class:" +"`MagicMock` est juste une variante de *Mock* qui a toutes les méthodes " +"magiques pré-créées (enfin, toutes les méthodes utiles)." #: ../Doc/library/unittest.mock.rst:145 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" msgstr "" +"L'exemple suivant est un exemple de création de méthodes magiques avec la " +"classe *Mock* ordinaire ::" #: ../Doc/library/unittest.mock.rst:153 msgid "" @@ -156,12 +209,21 @@ msgid "" "replacing, and any functions and methods (including constructors) have the " "same call signature as the real object." msgstr "" +"Pour être sûr que les objets simulacres dans vos tests ont la même API que " +"les objets qu'ils remplacent, utilisez :ref:`l'auto-spécification `. L'auto-spécification peut se faire via l'argument *autospec* de " +"patch ou par la fonction :func:`create_autospec`. L'auto-spécification crée " +"des objets simulacres qui ont les mêmes attributs et méthodes que les objets " +"qu'ils remplacent, et toutes les fonctions et méthodes (y compris les " +"constructeurs) ont les mêmes signatures d'appel que l'objet réel." #: ../Doc/library/unittest.mock.rst:161 msgid "" "This ensures that your mocks will fail in the same way as your production " "code if they are used incorrectly:" msgstr "" +"Ceci garantit que vos objets simulacres échouent de la même manière que " +"votre code de production s'ils ne sont pas utilisés correctement ::" #: ../Doc/library/unittest.mock.rst:177 msgid "" @@ -169,10 +231,13 @@ msgid "" "signature of the ``__init__`` method, and on callable objects where it " "copies the signature of the ``__call__`` method." msgstr "" +"La fonction :func:`create_autospec` peut aussi être utilisée sur les " +"classes, où elle copie la signature de la méthode ``__init__``, et sur les " +"objets appelables où elle copie la signature de la méthode ``__call__``." #: ../Doc/library/unittest.mock.rst:184 msgid "The Mock Class" -msgstr "" +msgstr "La classe *Mock*" #: ../Doc/library/unittest.mock.rst:187 msgid "" @@ -182,6 +247,12 @@ msgid "" "attribute will always return the same mock. Mocks record how you use them, " "allowing you to make assertions about what your code has done to them." msgstr "" +"La classe :class:`Mock` est un objet simulacre flexible destiné à remplacer " +"l'utilisation d'objets bouchons et factices dans votre code. Les Mocks sont " +"appelables et créent des attributs comme de nouveaux *Mocks* lorsque l'on y " +"accède [#]_. L'accès au même attribut renvoie toujours le même *mock*. Les " +"simulacres enregistrent la façon dont ils sont utilisés, ce qui permet de " +"faire des assertions sur ce que le code leur a fait." #: ../Doc/library/unittest.mock.rst:193 msgid "" @@ -190,6 +261,11 @@ msgid "" "when you are mocking out objects that aren't callable: :class:" "`NonCallableMock` and :class:`NonCallableMagicMock`" msgstr "" +"La classe :class:`MagicMock` est une sous-classe de :class:`Mock` avec " +"toutes les méthodes magiques pré-créées et prête à l'emploi. Il existe " +"également des variantes non appelables, utiles lorsque l'on simule des " +"objets qui ne sont pas appelables : :class:`NonCallableMock` et :class:" +"`NonCallableMagicMock`" #: ../Doc/library/unittest.mock.rst:198 msgid "" @@ -198,12 +274,18 @@ msgid "" "will create a :class:`MagicMock` for you. You can specify an alternative " "class of :class:`Mock` using the *new_callable* argument to :func:`patch`." msgstr "" +"Le décorateur :func:`patch` facilite le remplacement temporaire de classes " +"d'un module avec un objet :class:`Mock`. Par défaut :func:`patch` crée un :" +"class:`MagicMock`. On peut spécifier une classe alternative de :class:`Mock` " +"en utilisant le paramètre *new_callable* de :func:`patch`." #: ../Doc/library/unittest.mock.rst:206 msgid "" "Create a new :class:`Mock` object. :class:`Mock` takes several optional " "arguments that specify the behaviour of the Mock object:" msgstr "" +"Crée un nouvel objet :class:`Mock`. :class:`Mock` prend plusieurs arguments " +"optionnels qui spécifient le comportement de l'objet *Mock* ::" #: ../Doc/library/unittest.mock.rst:209 msgid "" @@ -213,6 +295,12 @@ msgid "" "(excluding unsupported magic attributes and methods). Accessing any " "attribute not in this list will raise an :exc:`AttributeError`." msgstr "" +"*spec* : une liste de chaînes de caractères ou un objet existant (une classe " +"ou une instance) qui sert de spécification pour l'objet simulacre. Si on " +"passe un objet, alors une liste de chaînes de caractères est formée en " +"appelant la fonction *dir* sur l'objet (à l'exclusion des attributs et " +"méthodes magiques non pris en charge). L'accès à un attribut qui n'est pas " +"dans cette liste entraîne la levée d'une exception :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:215 msgid "" @@ -220,6 +308,9 @@ msgid "" "__class__` returns the class of the spec object. This allows mocks to pass :" "func:`isinstance` tests." msgstr "" +"Si *spec* est un objet (plutôt qu'une liste de chaînes de caractères) alors :" +"attr:`~instance.__class__` renvoie la classe de l'objet spécifié. Ceci " +"permet aux *mocks* de passer les tests :func:`isinstance`." #: ../Doc/library/unittest.mock.rst:219 msgid "" @@ -227,6 +318,10 @@ msgid "" "get an attribute on the mock that isn't on the object passed as *spec_set* " "will raise an :exc:`AttributeError`." msgstr "" +"*spec_set* : variante plus stricte de *spec*. S'il est utilisé, essayer " +"d'utiliser la fonction *set* ou tenter d’accéder à un attribut sur le *mock* " +"qui n'est pas sur l'objet passé comme *spec_set* lève une exception :exc:" +"`AttributeError`." #: ../Doc/library/unittest.mock.rst:223 msgid "" @@ -236,22 +331,32 @@ msgid "" "arguments as the mock, and unless it returns :data:`DEFAULT`, the return " "value of this function is used as the return value." msgstr "" +"*side_effect* : fonction à appeler à chaque fois que le *Mock* est appelé. " +"Voir l'attribut :attr:`~Mock.side_effect`. Utile pour lever des exceptions " +"ou modifier dynamiquement les valeurs de retour. La fonction est appelée " +"avec les mêmes arguments que la fonction simulée et, à moins qu'elle ne " +"renvoie :data:`DEFAULT`, la valeur de retour de cette fonction devient la " +"valeur de retour de la fonction simulée." #: ../Doc/library/unittest.mock.rst:229 msgid "" "Alternatively *side_effect* can be an exception class or instance. In this " "case the exception will be raised when the mock is called." msgstr "" +"*side_effect* peut être soit une classe, soit une instance d'exception. Dans " +"ce cas, l'exception est levée lors de l'appel de l'objet simulacre." #: ../Doc/library/unittest.mock.rst:232 msgid "" "If *side_effect* is an iterable then each call to the mock will return the " "next value from the iterable." msgstr "" +"Si *side_effect* est un itérable alors chaque appel au *mock* renvoie la " +"valeur suivante de l’itérable." #: ../Doc/library/unittest.mock.rst:235 msgid "A *side_effect* can be cleared by setting it to ``None``." -msgstr "" +msgstr "Utilisez ``None`` pour remettre à zéro un *side_effect*." #: ../Doc/library/unittest.mock.rst:237 msgid "" @@ -259,6 +364,9 @@ msgid "" "is a new Mock (created on first access). See the :attr:`return_value` " "attribute." msgstr "" +"*return_value* : valeur renvoyée lors de l'appel de l'objet simulacre. Par " +"défaut, il s'agit d'un nouveau *Mock* (créé lors du premier accès). Voir " +"l'attribut :attr:`return_value`." #: ../Doc/library/unittest.mock.rst:241 msgid "" @@ -266,6 +374,9 @@ msgid "" "raise an :exc:`AttributeError`. Passing ``unsafe=True`` will allow access to " "these attributes." msgstr "" +"*unsafe* : par défaut, si un attribut commence par *assert* ou *assret*, une " +"exception :exc:`AttributeError` est levée. Le fait de passer ``unsafe=True`` " +"permet d'accéder à ces attributs." #: ../Doc/library/unittest.mock.rst:247 msgid "" @@ -276,18 +387,30 @@ msgid "" "to access an attribute that doesn't exist will raise an :exc:" "`AttributeError`)." msgstr "" +"*wraps* : élément que le simulacre doit simuler. Si *wraps* n'est pas " +"``None`` alors appeler *Mock* passe l'appel à l'objet simulé (renvoyant le " +"résultat réel). L'accès à un attribut sur le *mock* renvoie un objet *Mock* " +"qui simule l'attribut correspondant de l'objet simulé (donc essayer " +"d'accéder à un attribut qui n'existe pas lève une exception :exc:" +"`AttributeError`)." #: ../Doc/library/unittest.mock.rst:254 msgid "" "If the mock has an explicit *return_value* set then calls are not passed to " "the wrapped object and the *return_value* is returned instead." msgstr "" +"Si l'objet simulacre a un ensemble explicite de *return_value* alors les " +"appels ne sont pas passés à l'objet simulé et c'est *return_value* qui est " +"renvoyée à la place." #: ../Doc/library/unittest.mock.rst:257 msgid "" "*name*: If the mock has a name then it will be used in the repr of the mock. " "This can be useful for debugging. The name is propagated to child mocks." msgstr "" +"*name* : Si le *mock* a un nom, il est alors utilisé par la fonction *repr* " +"du *mock*. C'est utile pour le débogage. Le nom est propagé aux enfants de " +"l'objet *mock*." #: ../Doc/library/unittest.mock.rst:261 msgid "" @@ -295,30 +418,38 @@ msgid "" "used to set attributes on the mock after it is created. See the :meth:" "`configure_mock` method for details." msgstr "" +"Les *mocks* peuvent aussi être appelés avec des arguments par mots-clés " +"arbitraires. Ceux-ci sont utilisés pour définir les attributs sur le *mock* " +"après sa création. Voir la méthode :meth:`configure_mock` pour plus de " +"détails." #: ../Doc/library/unittest.mock.rst:267 msgid "Assert that the mock was called at least once." -msgstr "" +msgstr "Asserter que le *mock* a été appelé au moins une fois." #: ../Doc/library/unittest.mock.rst:278 msgid "Assert that the mock was called exactly once." -msgstr "" +msgstr "Asserter que le *mock* a été appelé exactement une fois." #: ../Doc/library/unittest.mock.rst:296 msgid "" "This method is a convenient way of asserting that calls are made in a " "particular way:" msgstr "" +"Cette méthode est un moyen pratique d'asserter que les appels sont effectués " +"d'une manière particulière ::" #: ../Doc/library/unittest.mock.rst:306 msgid "" "Assert that the mock was called exactly once and that that call was with the " "specified arguments." msgstr "" +"Asserter que le simulacre a été appelé exactement une fois et que cet appel " +"était avec les arguments spécifiés." #: ../Doc/library/unittest.mock.rst:321 msgid "assert the mock has been called with the specified arguments." -msgstr "" +msgstr "Asserter que le simulacre a été appelé avec les arguments spécifiés." #: ../Doc/library/unittest.mock.rst:323 msgid "" @@ -327,36 +458,50 @@ msgid "" "the call is the most recent one, and in the case of :meth:" "`assert_called_once_with` it must also be the only call." msgstr "" +"Asserter que le simulacre a *bien* été appelé avec les arguments au cours de " +"la vie du simulacre. Contrairement à :meth:`assert_called_with` et :meth:" +"`assert_called_once_with` qui passent seulement si l'appel demandé " +"correspond bien au dernier appel, et dans le cas de :meth:" +"`assert_called_once_with` l'appel au simulacre doit être unique." #: ../Doc/library/unittest.mock.rst:336 msgid "" "assert the mock has been called with the specified calls. The :attr:" "`mock_calls` list is checked for the calls." msgstr "" +"Asserter que le simulacre a été appelé avec les appels spécifiés. " +"L'attribut :attr:`mock_calls` est comparé à la liste des appels." #: ../Doc/library/unittest.mock.rst:339 msgid "" "If *any_order* is false (the default) then the calls must be sequential. " "There can be extra calls before or after the specified calls." msgstr "" +"Si *any_order* est faux (la valeur par défaut) alors les appels doivent être " +"séquentiels. Il peut y avoir des appels supplémentaires avant ou après les " +"appels spécifiés." #: ../Doc/library/unittest.mock.rst:343 msgid "" "If *any_order* is true then the calls can be in any order, but they must all " "appear in :attr:`mock_calls`." msgstr "" +"Si *any_order* est vrai alors les appels peuvent être dans n'importe quel " +"ordre, mais ils doivent tous apparaître dans :attr:`mock_calls`." #: ../Doc/library/unittest.mock.rst:358 msgid "Assert the mock was never called." -msgstr "" +msgstr "Asserter que le simulacre n'a jamais été appelé." #: ../Doc/library/unittest.mock.rst:373 msgid "The reset_mock method resets all the call attributes on a mock object:" msgstr "" +"La méthode *reset_mock* réinitialise tous les attributs d'appel sur un " +"simulacre :" #: ../Doc/library/unittest.mock.rst:383 msgid "Added two keyword only argument to the reset_mock function." -msgstr "" +msgstr "Ajout de deux arguments nommés à la fonction *reset_mock*." #: ../Doc/library/unittest.mock.rst:386 msgid "" @@ -367,20 +512,34 @@ msgid "" "`side_effect`, then pass the corresponding parameter as ``True``. Child " "mocks and the return value mock (if any) are reset as well." msgstr "" +"Utile pour faire une série d'assertions qui réutilisent le même objet. " +"Attention :meth:`reset_mock` *ne réinitialise pas* la valeur de retour, les :" +"attr:`side_effect` ou tout attribut enfant que vous avez défini en utilisant " +"l'affectation normale par défaut. Pour réinitialiser *return_value* ou :attr:" +"`side_effect`, utiliser les paramètres correspondants avec la valeur " +"``True``. Les simulacres enfants et le simulacre de valeur de retour (le cas " +"échéant) seront également réinitialisés." #: ../Doc/library/unittest.mock.rst:394 msgid "*return_value*, and :attr:`side_effect` are keyword only argument." msgstr "" +"*return_value*, et :attr:`side_effect` sont utilisable uniquement par " +"arguments nommés." #: ../Doc/library/unittest.mock.rst:400 msgid "" "Add a spec to a mock. *spec* can either be an object or a list of strings. " "Only attributes on the *spec* can be fetched as attributes from the mock." msgstr "" +"Ajoute une spécification à un simulacre. *spec* peut être un objet ou une " +"liste de chaînes de caractères. Seuls les attributs de la spécification " +"*spec* peuvent être récupérés en tant qu'attributs du simulacre." #: ../Doc/library/unittest.mock.rst:404 msgid "If *spec_set* is true then only attributes on the spec can be set." msgstr "" +"Si *spec_set* est vrai, seuls les attributs de la spécification peuvent être " +"définis." #: ../Doc/library/unittest.mock.rst:409 msgid "" @@ -388,26 +547,37 @@ msgid "" "Calls to the attached mock will be recorded in the :attr:`method_calls` and :" "attr:`mock_calls` attributes of this one." msgstr "" +"Attache un simulacre comme attribut de l'instance courante, en remplaçant " +"son nom et son parent. Les appels au simulacre attaché sont enregistrés dans " +"les attributs :attr:`method_calls` et :attr:`mock_calls` de l'instance " +"courante." #: ../Doc/library/unittest.mock.rst:416 msgid "Set attributes on the mock through keyword arguments." -msgstr "" +msgstr "Définir les attributs sur le simulacre à l'aide d'arguments nommés." #: ../Doc/library/unittest.mock.rst:418 msgid "" "Attributes plus return values and side effects can be set on child mocks " "using standard dot notation and unpacking a dictionary in the method call:" msgstr "" +"Les attributs, les valeurs de retour et les effets de bords peuvent être " +"définis sur des simulacres enfants en utilisant la notation par points " +"standard et en dépaquetant un dictionnaire dans l'appel de méthode :" #: ../Doc/library/unittest.mock.rst:432 msgid "The same thing can be achieved in the constructor call to mocks:" msgstr "" +"La même chose peut être réalisée en utilisant le constructeur des " +"simulacres :" #: ../Doc/library/unittest.mock.rst:445 msgid "" ":meth:`configure_mock` exists to make it easier to do configuration after " "the mock has been created." msgstr "" +":meth:`configure_mock` existe pour faciliter la configuration après la " +"création du simulacre." #: ../Doc/library/unittest.mock.rst:451 msgid "" @@ -415,12 +585,17 @@ msgid "" "results. For mocks with a *spec* this includes all the permitted attributes " "for the mock." msgstr "" +"Les objets :class:`Mock` limitent les résultats de ``dir(un_mock)`` à des " +"résultats utiles. Pour les simulacres avec une spécification *spec*, cela " +"inclut tous les attributs autorisés du simulacre." #: ../Doc/library/unittest.mock.rst:455 msgid "" "See :data:`FILTER_DIR` for what this filtering does, and how to switch it " "off." msgstr "" +"Voir :data:`FILTER_DIR` pour savoir ce que fait ce filtrage, et comment le " +"désactiver." #: ../Doc/library/unittest.mock.rst:461 msgid "" @@ -428,40 +603,53 @@ msgid "" "mocks will be the same type as the parent. Subclasses of Mock may want to " "override this to customize the way child mocks are made." msgstr "" +"Crée les simulacres enfants pour les attributs et la valeur de retour. Par " +"défaut, les objets simulacre enfants sont du même type que le parent. Les " +"sous-classes de *Mock* peuvent surcharger cette méthode pour personnaliser " +"la façon dont les simulacres enfants sont créés." #: ../Doc/library/unittest.mock.rst:466 msgid "" "For non-callable mocks the callable variant will be used (rather than any " "custom subclass)." msgstr "" +"Pour les simulacres non appelables, la variante appelable est utilisée " +"(plutôt qu'une sous-classe personnalisée)." #: ../Doc/library/unittest.mock.rst:472 msgid "A boolean representing whether or not the mock object has been called:" -msgstr "" +msgstr "Un booléen représentant si le simulacre a bien été appelé ou non :" #: ../Doc/library/unittest.mock.rst:483 msgid "An integer telling you how many times the mock object has been called:" -msgstr "" +msgstr "Un entier indiquant combien de fois le simulacre a été appelé :" #: ../Doc/library/unittest.mock.rst:496 msgid "Set this to configure the value returned by calling the mock:" msgstr "" +"Définir cette option pour configurer la valeur renvoyé par appel du " +"simulacre :" #: ../Doc/library/unittest.mock.rst:503 msgid "" "The default return value is a mock object and you can configure it in the " "normal way:" msgstr "" +"La valeur de revoie par défaut est un simulacre configurable normalement :" #: ../Doc/library/unittest.mock.rst:512 msgid ":attr:`return_value` can also be set in the constructor:" msgstr "" +"L'attribut :attr:`return_value` peut également être défini dans le " +"constructeur :" #: ../Doc/library/unittest.mock.rst:523 msgid "" "This can either be a function to be called when the mock is called, an " "iterable or an exception (class or instance) to be raised." msgstr "" +"C'est soit une fonction à appeler lors de l'appel du simulacre, soit une " +"exception (classe ou instance) à lever." #: ../Doc/library/unittest.mock.rst:526 msgid "" @@ -471,6 +659,11 @@ msgid "" "returns :data:`DEFAULT` then the mock will return its normal value (from " "the :attr:`return_value`)." msgstr "" +"Si vous passez une fonction, elle est appelée avec les mêmes arguments que " +"la fonction simulée et à moins que la fonction ne renvoie le singleton :data:" +"`DEFAULT` l'appel le la fonction simulée renvoie ce que la fonction renvoie. " +"Si la fonction renvoie :data:`DEFAULT` alors le simulacre renvoie sa valeur " +"normale (celle de :attr:`return_value`)." #: ../Doc/library/unittest.mock.rst:532 msgid "" @@ -479,30 +672,39 @@ msgid "" "to be raised, or a value to be returned from the call to the mock (:data:" "`DEFAULT` handling is identical to the function case)." msgstr "" +"Si vous passez un itérable, il est utilisé pour récupérer un itérateur qui " +"doit renvoyer une valeur à chaque appel. Cette valeur peut être soit une " +"instance d'exception à lever, soit une valeur à renvoyer à l'appel au " +"simulacre (le traitement :data:`DEFAULT` est identique au renvoie de la " +"fonction simulée)." #: ../Doc/library/unittest.mock.rst:537 msgid "" "An example of a mock that raises an exception (to test exception handling of " "an API):" msgstr "" +"Un exemple d'un simulacre qui lève une exception (pour tester la gestion des " +"exceptions d'une API) :" #: ../Doc/library/unittest.mock.rst:547 msgid "Using :attr:`side_effect` to return a sequence of values:" -msgstr "" +msgstr "Utiliser :attr:`side_effect` pour renvoyer une séquence de valeurs :" #: ../Doc/library/unittest.mock.rst:554 msgid "Using a callable:" -msgstr "" +msgstr "Utilisation d'un objet appelable :" #: ../Doc/library/unittest.mock.rst:564 msgid "" ":attr:`side_effect` can be set in the constructor. Here's an example that " "adds one to the value the mock is called with and returns it:" msgstr "" +"Un attribut :attr:`side_effect` peut être défini dans le constructeur. Voici " +"un exemple qui ajoute un à la valeur du simulacre appelé et qui le renvoie :" #: ../Doc/library/unittest.mock.rst:574 msgid "Setting :attr:`side_effect` to ``None`` clears it:" -msgstr "" +msgstr "Positionner :attr:`side_effect` sur ``None`` l'efface :" #: ../Doc/library/unittest.mock.rst:588 msgid "" @@ -512,6 +714,11 @@ msgid "" "tuple) and the second member is any keyword arguments (or an empty " "dictionary)." msgstr "" +"C'est soit ``None`` (si le simulacre n'a pas été appelé), soit les arguments " +"avec lesquels le simulacre a été appelé en dernier. Le retour est sous la " +"forme d'un tuple : le premier élément est l'ensemble des arguments ordonnés " +"avec lequel le simulacre a été appelé (ou un tuple vide) et le second " +"élément est l'ensemble des arguments nommés (ou un dictionnaire vide)." #: ../Doc/library/unittest.mock.rst:611 msgid "" @@ -520,6 +727,11 @@ msgid "" "are tuples, so they can be unpacked to get at the individual arguments and " "make more complex assertions. See :ref:`calls as tuples `." msgstr "" +"L'attribut :attr:`call_args`, ainsi que les éléments des listes :attr:" +"`call_args_list`, :attr:`method_calls` et :attr:`mock_calls` sont des " +"objets :data:`call`. Ce sont des tuples, que l'on peut dépaqueter afin de " +"faire des affirmations plus complexes sur chacun des arguments. Voir :ref:" +"`appels comme tuples `." #: ../Doc/library/unittest.mock.rst:620 msgid "" diff --git a/library/unittest.po b/library/unittest.po index 02400e750..5d3b0b579 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -295,23 +295,30 @@ msgstr "" #: ../Doc/library/unittest.rst:158 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/unittest.rst:160 msgid "" "The unittest module can be used from the command line to run tests from " "modules, classes or even individual test methods::" msgstr "" +"Le module *unittest* est utilisable depuis la ligne de commande pour " +"exécuter des tests à partir de modules, de classes ou même de méthodes de " +"test individuelles  ::" #: ../Doc/library/unittest.rst:167 msgid "" "You can pass in a list with any combination of module names, and fully " "qualified class or method names." msgstr "" +"La commande accepte en argument une liste de n'importe quelle combinaison de " +"noms de modules et de noms de classes ou de méthodes entièrement qualifiés." #: ../Doc/library/unittest.rst:170 msgid "Test modules can be specified by file path as well::" msgstr "" +"Les modules de test peuvent également être spécifiés par un chemin de " +"fichier  ::" #: ../Doc/library/unittest.rst:174 msgid "" @@ -321,35 +328,48 @@ msgid "" "separators into '.'. If you want to execute a test file that isn't " "importable as a module you should execute the file directly instead." msgstr "" +"Cette fonctionnalité permet d'utiliser la complétion de l'interpréteur de " +"commandes système (*le shell*) pour spécifier le module de test. Le chemin " +"est converti en nom de module en supprimant le '.py' et en convertissant les " +"séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test qui " +"n'est pas importable en tant que module, exécutez directement le fichier." #: ../Doc/library/unittest.rst:180 msgid "" "You can run tests with more detail (higher verbosity) by passing in the -v " "flag::" msgstr "" +"Pour obtenir plus de détails lors de l'exécution utilisez l'option `-v` " +"(plus de verbosité) ::" #: ../Doc/library/unittest.rst:184 msgid "" "When executed without arguments :ref:`unittest-test-discovery` is started::" msgstr "" +"Quand la commande est exécutée sans arguments :ref:`unittest-test-discovery` " +"est lancée ::" #: ../Doc/library/unittest.rst:188 msgid "For a list of all the command-line options::" msgstr "" +"Pour afficher la liste de toutes les options de la commande utilisez " +"l'option `-h` ::" #: ../Doc/library/unittest.rst:192 msgid "" "In earlier versions it was only possible to run individual test methods and " "not modules or classes." msgstr "" +"Dans les versions antérieures, il était seulement possible d'exécuter des " +"méthodes de test individuelles et non des modules ou des classes." #: ../Doc/library/unittest.rst:198 msgid "Command-line options" -msgstr "" +msgstr "Options de la ligne de commande" #: ../Doc/library/unittest.rst:200 msgid ":program:`unittest` supports these command-line options:" -msgstr "" +msgstr "Le programme : `unittest` gère ces options de la ligne de commande :" #: ../Doc/library/unittest.rst:206 msgid "" @@ -357,6 +377,10 @@ msgid "" "run. Output during a passing test is discarded. Output is echoed normally on " "test fail or error and is added to the failure messages." msgstr "" +"Les flux de sortie et d'erreur standards sont mis en mémoire tampon pendant " +"l'exécution des tests. L'affichage produit par un test réussi n'est pas pris " +"en compte. Les sorties d'affichages d'un test en échec ou en erreur sont " +"conservés et ajoutés aux messages d'erreur." #: ../Doc/library/unittest.rst:212 msgid "" @@ -364,37 +388,46 @@ msgid "" "then reports all the results so far. A second :kbd:`Control-C` raises the " "normal :exc:`KeyboardInterrupt` exception." msgstr "" +"Utiliser :kbd:`Control-C` pendant l'exécution des tests attend que le test " +"en cours se termine, puis affiche tous les résultats obtenus jusqu'ici. Une " +"seconde utilisation de :kbd:`Control-C` provoque l'exception normale :exc:" +"`KeyboardInterrupt`." #: ../Doc/library/unittest.rst:216 msgid "" "See `Signal Handling`_ for the functions that provide this functionality." msgstr "" +"Voir `Signal Handling`_ pour les fonctions qui utilisent cette " +"fonctionnalité." #: ../Doc/library/unittest.rst:220 msgid "Stop the test run on the first error or failure." -msgstr "" +msgstr "Arrête l'exécution des tests lors du premier cas d'erreur ou d'échec." #: ../Doc/library/unittest.rst:224 msgid "Show local variables in tracebacks." -msgstr "" +msgstr "Affiche les variables locales dans les traces d'appels." #: ../Doc/library/unittest.rst:226 msgid "The command-line options ``-b``, ``-c`` and ``-f`` were added." msgstr "" +"Les options de ligne de commande ``-b``, ``-c`` et ``-f`` ont été ajoutées." #: ../Doc/library/unittest.rst:229 msgid "The command-line option ``--locals``." -msgstr "" +msgstr "Ajout de l'option de ligne de commande ``--locals``." #: ../Doc/library/unittest.rst:232 msgid "" "The command line can also be used for test discovery, for running all of the " "tests in a project or just a subset." msgstr "" +"La ligne de commande peut également être utilisée pour découvrir les tests, " +"pour exécuter tous les tests dans un projet ou juste un sous-ensemble." #: ../Doc/library/unittest.rst:239 msgid "Test Discovery" -msgstr "" +msgstr "Découverte des tests" #: ../Doc/library/unittest.rst:243 msgid "" @@ -405,12 +438,21 @@ msgid "" "(this means that their filenames must be valid :ref:`identifiers " "`)." msgstr "" +"*Unittest* prend en charge une découverte simple des tests. Afin d'être " +"compatible avec le système de découverte de tests, tous les fichiers de test " +"doivent être des :ref:`modules ` ou des :ref:`paquets ` (incluant des :term:`paquets-espaces de nommage `) importables du répertoire du projet (cela signifie que leurs noms " +"doivent être des :ref:`identifiants ` valables)." #: ../Doc/library/unittest.rst:250 msgid "" "Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "be used from the command line. The basic command-line usage is::" msgstr "" +"La découverte de tests est implémentée dans :meth:`TestLoader.discover`, " +"mais peut également être utilisée depuis la ligne de commande. Par exemple " +" ::" #: ../Doc/library/unittest.rst:258 msgid "" @@ -418,26 +460,29 @@ msgid "" "unittest discover``. If you want to pass arguments to test discovery the " "``discover`` sub-command must be used explicitly." msgstr "" +"Comme raccourci, ``python -m unittest`` est l'équivalent de ``python -m " +"unittest discover``. Pour passer des arguments au système de découverte des " +"tests, la sous-commande ``discover`` doit être utilisée explicitement." #: ../Doc/library/unittest.rst:262 msgid "The ``discover`` sub-command has the following options:" -msgstr "" +msgstr "La sous-commande ``discover`` a les options suivantes  ::" #: ../Doc/library/unittest.rst:268 msgid "Verbose output" -msgstr "" +msgstr "Affichage plus détaillé" #: ../Doc/library/unittest.rst:272 msgid "Directory to start discovery (``.`` default)" -msgstr "" +msgstr "Répertoire racine pour démarrer la découverte (``.`` par défaut)." #: ../Doc/library/unittest.rst:276 msgid "Pattern to match test files (``test*.py`` default)" -msgstr "" +msgstr "Motif de détection des fichiers de test (``test*.py`` par défaut)" #: ../Doc/library/unittest.rst:280 msgid "Top level directory of project (defaults to start directory)" -msgstr "" +msgstr "Dossier du premier niveau du projet (Par défaut le dossier de départ)" #: ../Doc/library/unittest.rst:282 msgid "" @@ -445,6 +490,9 @@ msgid "" "positional arguments in that order. The following two command lines are " "equivalent::" msgstr "" +"Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées " +"en arguments positionnels dans cet ordre. Les deux lignes de commande " +"suivantes sont équivalentes  ::" #: ../Doc/library/unittest.rst:289 msgid "" @@ -453,6 +501,10 @@ msgid "" "supply will then be imported and its location on the filesystem will be used " "as the start directory." msgstr "" +"Il est aussi possible de passer un nom de paquet plutôt qu'un chemin, par " +"exemple ``monprojet.souspaquet.test``, comme répertoire racine. Le nom du " +"paquet fourni est alors importé et son emplacement sur le système de " +"fichiers est utilisé comme répertoire racine." #: ../Doc/library/unittest.rst:296 msgid "" @@ -461,6 +513,11 @@ msgid "" "into package names to import. For example :file:`foo/bar/baz.py` will be " "imported as ``foo.bar.baz``." msgstr "" +"Le mécanisme de découverte charge les tests en les important. Une fois que " +"le système a trouvé tous les fichiers de tests du répertoire de démarrage " +"spécifié, il transforme les chemins en noms de paquets à importer. Par " +"exemple :file:`truc/bidule/machin.py` est importé sous ``truc.bidule." +"machin``." #: ../Doc/library/unittest.rst:301 msgid "" @@ -468,6 +525,10 @@ msgid "" "different copy of the package then the import *could* happen from the wrong " "place. If this happens test discovery will warn you and exit." msgstr "" +"Si un paquet est installé globalement et que le mécanisme de découverte de " +"tests est effectué sur une copie différente du paquet, l'importation *peut* " +"se produire à partir du mauvais endroit. Si cela arrive, le système émet un " +"avertissement et se termine." #: ../Doc/library/unittest.rst:305 msgid "" @@ -475,20 +536,28 @@ msgid "" "directory then discover assumes that whichever location it imports from is " "the location you intended, so you will not get the warning." msgstr "" +"Si vous donnez le répertoire racine sous la forme d'un nom de paquet plutôt " +"que d'un chemin d'accès à un répertoire, alors Python suppose que " +"l'emplacement à partir duquel il importe est l'emplacement que vous voulez, " +"vous ne verrez donc pas l'avertissement." #: ../Doc/library/unittest.rst:310 msgid "" "Test modules and packages can customize test loading and discovery by " "through the `load_tests protocol`_." msgstr "" +"Les modules de test et les paquets peuvent adapter le chargement et la " +"découverte des tests en utilisant le protocole `load_tests protocol`_." #: ../Doc/library/unittest.rst:313 msgid "Test discovery supports :term:`namespace packages `." msgstr "" +"La découverte de tests prend en charge :term:`les paquets-espaces de nommage " +"`." #: ../Doc/library/unittest.rst:320 msgid "Organizing test code" -msgstr "" +msgstr "Organiser le code de test" #: ../Doc/library/unittest.rst:322 msgid "" @@ -498,6 +567,12 @@ msgid "" "instances. To make your own test cases you must write subclasses of :class:" "`TestCase` or use :class:`FunctionTestCase`." msgstr "" +"Les éléments de base des tests unitaires sont les :dfn:`scénarios de tests` " +"(*test cases* en anglais) --- Des scénarios uniques qui sont mis en place et " +"exécutés pour vérifier qu'ils sont corrects. Dans :mod:`unittest`, les " +"scénarios de test sont représentés par des instances de :class:`unittest." +"TestCase`. Pour créer vos propres scénarios de test, vous devez écrire des " +"sous-classes de :class:`TestCase` ou utiliser :class:`FunctionTestCase`." #: ../Doc/library/unittest.rst:328 msgid "" @@ -505,6 +580,9 @@ msgid "" "contained, such that it can be run either in isolation or in arbitrary " "combination with any number of other test cases." msgstr "" +"Le code de test d'une instance de :class:`TestCase` doit être entièrement " +"autonome, de sorte qu'il puisse être exécuté soit de manière isolée, soit en " +"combinaison arbitraire avec un nombre quelconque d'autres scénarios de test." #: ../Doc/library/unittest.rst:332 msgid "" @@ -512,6 +590,9 @@ msgid "" "(i.e. a method whose name starts with ``test``) in order to perform specific " "testing code::" msgstr "" +"La sous-classe :class:`TestCase` la plus simple va tout simplement " +"implémenter une méthode de test (c'est-à-dire une méthode dont le nom " +"commence par ``test``) afin d'exécuter un code de test spécifique  ::" #: ../Doc/library/unittest.rst:343 msgid "" @@ -521,6 +602,11 @@ msgid "" "will identify the test case as a :dfn:`failure`. Any other exceptions will " "be treated as :dfn:`errors`." msgstr "" +"Notez que pour tester quelque chose, on utilise l'une des méthodes :meth:" +"`assert\\*` fournies par la classe de base :class:`TestCase`. Si le test " +"échoue, une exception est levée avec un message explicatif, et :mod:" +"`unittest` identifie ce scénario de test comme un :dfn:`échec`. Toute autre " +"exception est traitée comme une :dfn:`erreur`." #: ../Doc/library/unittest.rst:349 msgid "" @@ -529,12 +615,19 @@ msgid "" "setUp`, which the testing framework will automatically call for every single " "test we run::" msgstr "" +"Les tests peuvent être nombreux et leur mise en place peut être répétitive. " +"Heureusement, on peut factoriser le code de mise en place en implémentant " +"une méthode appelée :meth:`~TestCase.setUp`, que le système de test appelle " +"automatiquement pour chaque test exécuté  ::" #: ../Doc/library/unittest.rst:370 msgid "" "The order in which the various tests will be run is determined by sorting " "the test method names with respect to the built-in ordering for strings." msgstr "" +"L'ordre dans lequel les différents tests sont exécutés est déterminé en " +"classant les noms des méthodes de test en fonction de la relation d'ordre " +"des chaines de caractères ." #: ../Doc/library/unittest.rst:374 msgid "" @@ -542,18 +635,25 @@ msgid "" "running, the framework will consider the test to have suffered an error, and " "the test method will not be executed." msgstr "" +"Si la méthode :meth:`~TestCase.setUp` lève une exception pendant l'exécution " +"du test, le système considère que le test a subi une erreur, et la méthode " +"test n'est pas exécutée." #: ../Doc/library/unittest.rst:378 msgid "" "Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " "after the test method has been run::" msgstr "" +"De même, on peut fournir une méthode :meth:`~TestCase.tearDown` qui nettoie " +"après l'exécution de la méthode de test  ::" #: ../Doc/library/unittest.rst:390 msgid "" "If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " "whether the test method succeeded or not." msgstr "" +"Si :meth:`~TestCase.setUp` a réussi, :meth:`~TestCase.tearDown` est " +"exécutée, que la méthode de test ait réussi ou non." #: ../Doc/library/unittest.rst:393 msgid "" @@ -572,12 +672,20 @@ msgid "" "do the right thing and collect all the module's test cases for you and " "execute them." msgstr "" +"Il est recommandé d'utiliser *TestCase* pour regrouper les tests en fonction " +"des fonctionnalités qu'ils testent. :mod:`unittest` fournit un mécanisme " +"pour cela : la :dfn:`suite de tests`, représentée par :class:`TestSuite` du " +"module :mod:`unittest`. Dans la plupart des cas, appeler :func:`unittest." +"main` fait correctement les choses et trouve tous les scénarios de test du " +"module pour vous et les exécute." #: ../Doc/library/unittest.rst:406 msgid "" "However, should you want to customize the building of your test suite, you " "can do it yourself::" msgstr "" +"Cependant, si vous voulez personnaliser la construction de votre suite de " +"tests, vous pouvez le faire vous-même  ::" #: ../Doc/library/unittest.rst:419 msgid "" @@ -586,44 +694,58 @@ msgid "" "are several advantages to placing the test code in a separate module, such " "as :file:`test_widget.py`:" msgstr "" +"Vous pouvez placer les définitions des scénarios de test et des suites de " +"test dans le même module que le code à tester (tel que :file:`composant." +"py`), mais il y a plusieurs avantages à placer le code de test dans un " +"module séparé, tel que :file:`test_composant.py` :" #: ../Doc/library/unittest.rst:424 msgid "The test module can be run standalone from the command line." msgstr "" +"Le module de test peut être exécuté indépendamment depuis la ligne de " +"commande." #: ../Doc/library/unittest.rst:426 msgid "The test code can more easily be separated from shipped code." -msgstr "" +msgstr "Le code de test est plus facilement séparable du code livré." #: ../Doc/library/unittest.rst:428 msgid "" "There is less temptation to change test code to fit the code it tests " "without a good reason." msgstr "" +"La tentation est moins grande de changer le code de test pour l'adapter au " +"code qu'il teste sans avoir une bonne raison." #: ../Doc/library/unittest.rst:431 msgid "" "Test code should be modified much less frequently than the code it tests." msgstr "" +"Le code de test doit être modifié beaucoup moins souvent que le code qu'il " +"teste." #: ../Doc/library/unittest.rst:433 msgid "Tested code can be refactored more easily." -msgstr "" +msgstr "Le code testé peut être réusiné plus facilement." #: ../Doc/library/unittest.rst:435 msgid "" "Tests for modules written in C must be in separate modules anyway, so why " "not be consistent?" msgstr "" +"Les tests pour les modules écrits en C doivent de toute façon être dans des " +"modules séparés, alors pourquoi ne pas être cohérent ?" #: ../Doc/library/unittest.rst:438 msgid "" "If the testing strategy changes, there is no need to change the source code." msgstr "" +"Si la stratégie de test change, il n'est pas nécessaire de changer le code " +"source." #: ../Doc/library/unittest.rst:444 msgid "Re-using old test code" -msgstr "" +msgstr "Réutilisation d'ancien code de test" #: ../Doc/library/unittest.rst:446 msgid "" @@ -631,6 +753,9 @@ msgid "" "to run from :mod:`unittest`, without converting every old test function to " "a :class:`TestCase` subclass." msgstr "" +"Certains utilisateurs constatent qu'ils ont du code de test existant qu'ils " +"souhaitent exécuter à partir de :mod:`unittest`, sans convertir chaque " +"ancienne fonction de test en une sous-classe de :class:`TestCase`." #: ../Doc/library/unittest.rst:450 msgid "" @@ -638,16 +763,23 @@ msgid "" "This subclass of :class:`TestCase` can be used to wrap an existing test " "function. Set-up and tear-down functions can also be provided." msgstr "" +"Pour cette raison, :mod:`unittest` fournit une classe :class:" +"`FunctionTestCase`. Cette sous-classe de :class:`TestCase` peut être " +"utilisée pour encapsuler une fonction de test existante. Des fonctions de " +"mise en place (*setUp*) et de démantèlement (*tearDown*) peuvent également " +"être fournies." #: ../Doc/library/unittest.rst:454 msgid "Given the following test function::" -msgstr "" +msgstr "Étant donnée la fonction de test suivante  ::" #: ../Doc/library/unittest.rst:461 msgid "" "one can create an equivalent test case instance as follows, with optional " "set-up and tear-down methods::" msgstr "" +"on peut créer une instance de scénario de test équivalente, avec des " +"méthodes optionnelles de mise en place et de démantèlement  ::" #: ../Doc/library/unittest.rst:470 msgid "" @@ -656,6 +788,11 @@ msgid "" "is not recommended. Taking the time to set up proper :class:`TestCase` " "subclasses will make future test refactorings infinitely easier." msgstr "" +"Même si la classe :class:`FunctionTestCase` peut être utilisée pour " +"convertir rapidement une base de test existante vers un système basé sur :" +"mod:`unittest`, cette approche n'est pas recommandée. Prendre le temps de " +"bien configurer les sous-classes de :class:`TestCase` simplifiera " +"considérablement les futurs réusinages des tests." #: ../Doc/library/unittest.rst:475 msgid "" @@ -664,10 +801,15 @@ msgid "" "class that can automatically build :class:`unittest.TestSuite` instances " "from the existing :mod:`doctest`\\ -based tests." msgstr "" +"Dans certains cas, les tests déjà existants ont pu être écrits avec le " +"module :mod:`doctest`. Dans ce cas, :mod:`doctest` fournit une classe :" +"class:`DocTestSuite` qui peut construire automatiquement des instances de la " +"classe :class:`unittest.TestSuite` depuis des tests basés sur le module :mod:" +"`doctest`." #: ../Doc/library/unittest.rst:484 msgid "Skipping tests and expected failures" -msgstr "" +msgstr "Ignorer des tests et des erreurs prévisibles" #: ../Doc/library/unittest.rst:488 msgid "" @@ -676,34 +818,46 @@ msgid "" "a test that is broken and will fail, but shouldn't be counted as a failure " "on a :class:`TestResult`." msgstr "" +"*Unittest* permet d'ignorer des méthodes de test individuelles et même des " +"classes entières de tests. De plus, il prend en charge le marquage d'un test " +"comme étant une \"erreur prévue\". Un test qui est cassé et qui échoue, mais " +"qui ne doit pas être considéré comme un échec dans la classe :class:" +"`TestResult`." #: ../Doc/library/unittest.rst:493 msgid "" "Skipping a test is simply a matter of using the :func:`skip` :term:" "`decorator` or one of its conditional variants." msgstr "" +"Ignorer un test consiste à utiliser le :term:`décorateur ` :func:" +"`skip` ou une de ses variantes conditionnelles." #: ../Doc/library/unittest.rst:496 msgid "Basic skipping looks like this::" -msgstr "" +msgstr "Un exemple de tests à ignorer  ::" #: ../Doc/library/unittest.rst:515 msgid "This is the output of running the example above in verbose mode::" msgstr "" +"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux " +" ::" #: ../Doc/library/unittest.rst:526 msgid "Classes can be skipped just like methods::" -msgstr "" +msgstr "Les classes peuvent être ignorées tout comme les méthodes  ::" #: ../Doc/library/unittest.rst:533 msgid "" ":meth:`TestCase.setUp` can also skip the test. This is useful when a " "resource that needs to be set up is not available." msgstr "" +"La méthode :meth:`TestCase.setUp` permet également d'ignorer le test. Ceci " +"est utile lorsqu'une ressource qui doit être configurée n'est pas disponible." #: ../Doc/library/unittest.rst:536 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "" +"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure`  ::" #: ../Doc/library/unittest.rst:543 msgid "" @@ -711,24 +865,32 @@ msgid "" "calls :func:`skip` on the test when it wants it to be skipped. This " "decorator skips the test unless the passed object has a certain attribute::" msgstr "" +"Il est facile de faire ses propres décorateurs en créant un décorateur qui " +"appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce " +"décorateur ignore le test à moins que l'objet passé ne possède un certain " +"attribut  ::" #: ../Doc/library/unittest.rst:552 msgid "The following decorators implement test skipping and expected failures:" msgstr "" +"Les décorateurs suivants implémentent le système d'omission des tests et les " +"erreurs prévisibles  ::" #: ../Doc/library/unittest.rst:556 msgid "" "Unconditionally skip the decorated test. *reason* should describe why the " "test is being skipped." msgstr "" +"Ignore sans condition le test décoré. *La raison* doit décrire la raison " +"pour laquelle le test est omis." #: ../Doc/library/unittest.rst:561 msgid "Skip the decorated test if *condition* is true." -msgstr "" +msgstr "Ignore le test décoré si la *condition* est vraie." #: ../Doc/library/unittest.rst:565 msgid "Skip the decorated test unless *condition* is true." -msgstr "" +msgstr "Ignore le test décoré sauf si la *condition* est vraie." #: ../Doc/library/unittest.rst:569 msgid "" @@ -738,13 +900,15 @@ msgstr "" #: ../Doc/library/unittest.rst:574 msgid "This exception is raised to skip a test." -msgstr "" +msgstr "Cette exception est levée pour ignorer un test." #: ../Doc/library/unittest.rst:576 msgid "" "Usually you can use :meth:`TestCase.skipTest` or one of the skipping " "decorators instead of raising this directly." msgstr "" +"Habituellement, on utilise :meth:`TestCase.skipTest` ou l'un des décorateurs " +"d'omission au lieu de le lever une exception directement." #: ../Doc/library/unittest.rst:579 msgid "" @@ -753,10 +917,14 @@ msgid "" "setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " "have :func:`setUpModule` or :func:`tearDownModule` run." msgstr "" +"Les tests ignorés ne lancent ni :meth:`~TestCase.setUp` ni :meth:`~TestCase." +"tearDown`. Les classes ignorées ne lancent ni :meth:`~TestCase.setUpClass` " +"ni :meth:`~TestCase.tearDownClass`. Les modules sautés n'ont pas :func:" +"`setUpModule` ou :func:`tearDownModule` d'exécutés." #: ../Doc/library/unittest.rst:587 msgid "Distinguishing test iterations using subtests" -msgstr "" +msgstr "Distinguer les itérations de test à l'aide de sous-tests" #: ../Doc/library/unittest.rst:591 msgid "" @@ -767,11 +935,11 @@ msgstr "" #: ../Doc/library/unittest.rst:595 msgid "For example, the following test::" -msgstr "" +msgstr "Par exemple, le test suivant  ::" #: ../Doc/library/unittest.rst:607 msgid "will produce the following output::" -msgstr "" +msgstr "produit le résultat suivant  ::" #: ../Doc/library/unittest.rst:633 msgid "" @@ -779,18 +947,21 @@ msgid "" "the error would be less easy to diagnose because the value of ``i`` wouldn't " "be displayed::" msgstr "" +"Sans l'utilisation d'un sous-test, l'exécution se termine après le premier " +"échec, et l'erreur est moins facile à diagnostiquer car la valeur de ``i`` " +"ne s'affiche pas  ::" #: ../Doc/library/unittest.rst:649 msgid "Classes and functions" -msgstr "" +msgstr "Classes et fonctions" #: ../Doc/library/unittest.rst:651 msgid "This section describes in depth the API of :mod:`unittest`." -msgstr "" +msgstr "Cette section décrit en détail l'API de :mod:`unittest`." #: ../Doc/library/unittest.rst:657 msgid "Test cases" -msgstr "" +msgstr "Scénarios de tests" #: ../Doc/library/unittest.rst:661 msgid "" @@ -801,6 +972,13 @@ msgid "" "drive the tests, and methods that the test code can use to check for and " "report various kinds of failure." msgstr "" +"Les instances de la classe :class:`TestCase` représentent des tests logiques " +"unitaires dans l'univers :mod:`unittest`. Cette classe est conçue pour être " +"utilisée comme classe de base. Les scénarios de tests sont à implémenter en " +"héritant de cette classe. La classe implémente l'interface nécessaire au " +"lanceur de tests pour lui permettre de les exécuter ainsi que les méthodes " +"que le code de test peut utiliser pour vérifier et signaler les différents " +"types d'erreurs." #: ../Doc/library/unittest.rst:668 msgid "" @@ -808,6 +986,10 @@ msgid "" "named *methodName*. In most uses of :class:`TestCase`, you will neither " "change the *methodName* nor reimplement the default ``runTest()`` method." msgstr "" +"Chaque instance de la classe :class:`TestCase` n'exécute qu'une seule " +"méthode de base : la méthode nommée *methodName* . Dans la plupart des " +"utilisations de la classe :class:`TestCase`, vous n'avez pas à changer le " +"nom de la méthode, ni à réimplémenter la méthode ``runTest()``." #: ../Doc/library/unittest.rst:673 msgid "" @@ -815,6 +997,9 @@ msgid "" "*methodName*. This makes it easier to experiment with :class:`TestCase` from " "the interactive interpreter." msgstr "" +"La classe :class:`TestCase` peut désormais être utilisée sans passer de " +"paramètre *methodName*. Cela facilite l'usage de :class:`TestCase` dans " +"l'interpréteur interactif." #: ../Doc/library/unittest.rst:678 msgid "" @@ -823,10 +1008,15 @@ msgid "" "and report failures, and some inquiry methods allowing information about the " "test itself to be gathered." msgstr "" +"Les instances de la classe :class:`TestCase` fournissent trois groupes de " +"méthodes : un groupe utilisé pour exécuter le test, un autre utilisé par " +"l'implémentation du test pour vérifier les conditions et signaler les " +"échecs, et quelques méthodes de recherche permettant de recueillir des " +"informations sur le test lui-même." #: ../Doc/library/unittest.rst:683 msgid "Methods in the first group (running the test) are:" -msgstr "" +msgstr "Les méthodes du premier groupe (exécution du test) sont :" #: ../Doc/library/unittest.rst:687 msgid "" @@ -835,6 +1025,11 @@ msgid "" "`SkipTest`, any exception raised by this method will be considered an error " "rather than a test failure. The default implementation does nothing." msgstr "" +"Méthode appelée pour réaliser la mise en place du test. Elle est exécutée " +"immédiatement avant l'appel de la méthode de test ; à l'exception de :exc:" +"`AssertionError` ou :exc:`SkipTest`, toute exception levée par cette méthode " +"est considérée comme une erreur et non pas comme un échec du test. " +"L'implémentation par défaut ne fait rien." #: ../Doc/library/unittest.rst:695 msgid "" @@ -848,6 +1043,16 @@ msgid "" "the :meth:`setUp` succeeds, regardless of the outcome of the test method. " "The default implementation does nothing." msgstr "" +"Méthode appelée immédiatement après l'appel de la méthode de test et " +"l'enregistrement du résultat. Elle est appelée même si la méthode de test a " +"levé une exception. De fait, l'implémentation d'un sous-classes doit être " +"fait avec précaution si vous vérifiez l'état interne de la classe. Toute " +"exception, autre que :exc:`AssertionError` ou :exc:`SkipTest`, levée par " +"cette méthode est considérée comme une erreur supplémentaire plutôt que " +"comme un échec du test (augmentant ainsi le nombre total des erreurs " +"signalées). Cette méthode est appelée uniquement si l'exécution de :meth:" +"`setUp` est réussie quel que soit le résultat de la méthode de test. " +"L'implémentation par défaut ne fait rien." #: ../Doc/library/unittest.rst:708 msgid "" @@ -858,7 +1063,7 @@ msgstr "" #: ../Doc/library/unittest.rst:716 ../Doc/library/unittest.rst:731 msgid "See `Class and Module Fixtures`_ for more details." -msgstr "" +msgstr "Voir `Class and Module Fixtures`_ pour plus de détails." #: ../Doc/library/unittest.rst:723 msgid "" @@ -866,6 +1071,9 @@ msgid "" "``tearDownClass`` is called with the class as the only argument and must be " "decorated as a :meth:`classmethod`::" msgstr "" +"Méthode de classe appelée après l'exécution des tests de la classe en " +"question. ``tearDownClass`` est appelée avec la classe comme seul argument " +"et doit être décorée comme une :meth:`classmethod`  ::" #: ../Doc/library/unittest.rst:738 msgid "" @@ -874,23 +1082,35 @@ msgid "" "object is created (by calling the :meth:`defaultTestResult` method) and " "used. The result object is returned to :meth:`run`'s caller." msgstr "" +"Exécute le test, en collectant le résultat dans l'objet :class:`TestResult` " +"passé comme *result*. Si *result* est omis ou vaut ``None``, un objet " +"temporaire de résultat est créé (en appelant la méthode :meth:" +"`defaultTestResult`) et utilisé. L'objet résultat est renvoyé à l'appelant " +"de :meth:`run`." #: ../Doc/library/unittest.rst:744 msgid "" "The same effect may be had by simply calling the :class:`TestCase` instance." msgstr "" +"Le même effet peut être obtenu en appelant simplement l'instance :class:" +"`TestCase`." #: ../Doc/library/unittest.rst:747 msgid "" "Previous versions of ``run`` did not return the result. Neither did calling " "an instance." msgstr "" +"Les versions précédentes de ``run`` ne renvoyaient pas le résultat. Pas plus " +"que l'appel d'une instance." #: ../Doc/library/unittest.rst:753 msgid "" "Calling this during a test method or :meth:`setUp` skips the current test. " "See :ref:`unittest-skipping` for more information." msgstr "" +"Appeler cette fonction pendant l'exécution d'une méthode de test ou de :meth:" +"`setUp` permet d'ignorer le test en cours. Voir :ref:`unittest-skipping` " +"pour plus d'informations." #: ../Doc/library/unittest.rst:761 msgid "" @@ -898,16 +1118,22 @@ msgid "" "subtest. *msg* and *params* are optional, arbitrary values which are " "displayed whenever a subtest fails, allowing you to identify them clearly." msgstr "" +"Renvoie un gestionnaire de contexte qui exécute le bloc de code du contexte " +"comme un sous-test. *msg* et *params* sont des valeurs optionnelles et " +"arbitraires qui sont affichées chaque fois qu'un sous-test échoue, " +"permettant de les identifier clairement." #: ../Doc/library/unittest.rst:766 msgid "" "A test case can contain any number of subtest declarations, and they can be " "arbitrarily nested." msgstr "" +"Un scénario de test peut contenir un nombre quelconque de déclarations de " +"sous-test, et elles peuvent être imbriquées librement." #: ../Doc/library/unittest.rst:769 msgid "See :ref:`subtests` for more information." -msgstr "" +msgstr "Voir :ref:`subtests` pour plus d'informations." #: ../Doc/library/unittest.rst:776 msgid "" @@ -915,6 +1141,9 @@ msgid "" "by the test to be propagated to the caller, and can be used to support " "running tests under a debugger." msgstr "" +"Lance le test sans collecter le résultat. Ceci permet aux exceptions levées " +"par le test d'être propagées à l'appelant, et donc peut être utilisé pour " +"exécuter des tests sous un débogueur." #: ../Doc/library/unittest.rst:782 msgid "" @@ -922,6 +1151,10 @@ msgid "" "report failures. The following table lists the most commonly used methods " "(see the tables below for more assert methods):" msgstr "" +"La classe :class:`TestCase` fournit plusieurs méthodes d'assertion pour " +"vérifier et signaler les échecs. Le tableau suivant énumère les méthodes " +"les plus couramment utilisées (voir les tableaux ci-dessous pour plus de " +"méthodes d'assertion) :" #: ../Doc/library/unittest.rst:787 ../Doc/library/unittest.rst:909 #: ../Doc/library/unittest.rst:1101 ../Doc/library/unittest.rst:1228 @@ -931,12 +1164,12 @@ msgstr "Méthode" #: ../Doc/library/unittest.rst:787 ../Doc/library/unittest.rst:909 #: ../Doc/library/unittest.rst:1101 msgid "Checks that" -msgstr "" +msgstr "Vérifie que" #: ../Doc/library/unittest.rst:787 ../Doc/library/unittest.rst:909 #: ../Doc/library/unittest.rst:1101 ../Doc/library/unittest.rst:1228 msgid "New in" -msgstr "" +msgstr "Disponible en" #: ../Doc/library/unittest.rst:789 msgid ":meth:`assertEqual(a, b) `" @@ -1060,12 +1293,20 @@ msgid "" "`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` only when " "they are used as a context manager." msgstr "" +"Toutes les méthodes *assert* prennent en charge un argument *msg* qui, s'il " +"est spécifié, est utilisé comme message d'erreur en cas d'échec (voir aussi :" +"data:`longMessage`). Notez que l'argument mot-clé *msg* peut être passé à :" +"meth:`assertRaises`, :meth:`assertRaisesRegex`, :meth:`assertWarns`, :meth:" +"`assertWarnsRegex`, seulement quand elles sont utilisées comme gestionnaire " +"de contexte." #: ../Doc/library/unittest.rst:834 msgid "" "Test that *first* and *second* are equal. If the values do not compare " "equal, the test will fail." msgstr "" +"Vérifie que *first* et *second* sont égaux. Si les valeurs ne sont pas " +"égales, le test échouera." #: ../Doc/library/unittest.rst:837 msgid "" @@ -1076,26 +1317,37 @@ msgid "" "message (see also the :ref:`list of type-specific methods `)." msgstr "" +"En outre, si *first* et *second* ont exactement le même type et sont de type " +"*liste*, *tuple*, *dict*, *set*, *frozenset* ou *str* ou tout autre type de " +"sous classe enregistrée dans :meth:`addTypeEqualityFunc`. La fonction " +"égalité spécifique au type sera appelée pour générer une erreur plus utile " +"(voir aussi :ref:`liste des méthodes spécifiques de type `)." #: ../Doc/library/unittest.rst:844 msgid "Added the automatic calling of type-specific equality function." msgstr "" +"Ajout de l'appel automatique de la fonction d'égalité spécifique au type." #: ../Doc/library/unittest.rst:847 msgid "" ":meth:`assertMultiLineEqual` added as the default type equality function for " "comparing strings." msgstr "" +"Ajout de :meth:`assertMultiLineEqual` comme fonction d'égalité de type par " +"défaut pour comparer les chaînes." #: ../Doc/library/unittest.rst:854 msgid "" "Test that *first* and *second* are not equal. If the values do compare " "equal, the test will fail." msgstr "" +"Vérifie que *first* et *second* ne sont pas égaux. Si les valeurs sont " +"égales, le test échouera." #: ../Doc/library/unittest.rst:860 msgid "Test that *expr* is true (or false)." -msgstr "" +msgstr "Vérifie que *expr* est vraie (ou fausse)." #: ../Doc/library/unittest.rst:862 msgid "" @@ -1105,20 +1357,27 @@ msgid "" "``assertEqual(a, b)`` instead of ``assertTrue(a == b)``), because they " "provide a better error message in case of failure." msgstr "" +"Notez que cela revient à utiliser ``bool(expr) is True`` et non à ``expr is " +"True`` (utilisez ``assertIs(expr, True)`` pour cette dernière). Cette " +"méthode doit également être évitée lorsque des méthodes plus spécifiques " +"sont disponibles (par exemple ``assertEqual(a, b)`` au lieu de " +"``assertTrue(a == b)``), car elles fournissent un meilleur message d'erreur " +"en cas d' échec." #: ../Doc/library/unittest.rst:872 msgid "" "Test that *first* and *second* evaluate (or don't evaluate) to the same " "object." msgstr "" +"Vérifie que *first* et *second* évaluent (ou n'évaluent pas) le même objet." #: ../Doc/library/unittest.rst:881 msgid "Test that *expr* is (or is not) ``None``." -msgstr "" +msgstr "Vérifie que *expr* est (ou n'est pas) la valeur ``None``." #: ../Doc/library/unittest.rst:889 msgid "Test that *first* is (or is not) in *second*." -msgstr "" +msgstr "Vérifie que *first* est (ou n'est pas) dans *second*." #: ../Doc/library/unittest.rst:897 msgid "" @@ -1126,56 +1385,72 @@ msgid "" "a tuple of classes, as supported by :func:`isinstance`). To check for the " "exact type, use :func:`assertIs(type(obj), cls) `." msgstr "" +"Vérifie que *obj* est (ou n'est pas) une instance de *cls* (Ce qui peut être " +"une classe ou un tuple de classes, comme utilisée par :func:`isinstance`). " +"Pour vérifier le type exact, utilisez :func:`assertIs(type(obj), cls) " +"`." #: ../Doc/library/unittest.rst:905 msgid "" "It is also possible to check the production of exceptions, warnings, and log " "messages using the following methods:" msgstr "" +"Il est également possible de vérifier la production des exceptions, des " +"avertissements et des messages de journaux à l'aide des méthodes suivantes :" #: ../Doc/library/unittest.rst:911 msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertRaises(exc, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:911 msgid "``fun(*args, **kwds)`` raises *exc*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lève bien l'exception *exc*" #: ../Doc/library/unittest.rst:914 msgid "" ":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:914 msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" msgstr "" +"``fun(*args, **kwds)`` lève bien l'exception *exc* et que le message " +"correspond au motif de l'expression régulière *r*" #: ../Doc/library/unittest.rst:917 msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertWarns(warn, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:917 msgid "``fun(*args, **kwds)`` raises *warn*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lève bien l'avertissement *warn*" #: ../Doc/library/unittest.rst:920 msgid "" ":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:920 msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" msgstr "" +"``fun(*args, **kwds)`` lève bien l'avertissement *warn* et que le message " +"correspond au motif de l'expression régulière *r*" #: ../Doc/library/unittest.rst:923 msgid ":meth:`assertLogs(logger, level) `" -msgstr "" +msgstr ":meth:`assertLogs(logger, level) `" #: ../Doc/library/unittest.rst:923 msgid "The ``with`` block logs on *logger* with minimum *level*" msgstr "" +"Le bloc ``with`` écrit dans le *logger* avec un niveau minimum égal à " +"*level*" #: ../Doc/library/unittest.rst:923 msgid "3.4" @@ -1190,6 +1465,12 @@ msgid "" "any of a group of exceptions, a tuple containing the exception classes may " "be passed as *exception*." msgstr "" +"Vérifie qu'une exception est levée lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertRaises`. Le test réussit si *exception* est levée, est en " +"erreur si une autre exception est levée, ou en échec si aucune exception " +"n'est levée. Pour capturer une exception d'un groupe d'exceptions, un couple " +"contenant les classes d'exceptions peut être passé à *exception*." #: ../Doc/library/unittest.rst:937 msgid "" @@ -1197,12 +1478,17 @@ msgid "" "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si seuls les arguments *exception* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code sous test puisse être " +"écrit en ligne plutôt que comme une fonction  ::" #: ../Doc/library/unittest.rst:944 msgid "" "When used as a context manager, :meth:`assertRaises` accepts the additional " "keyword argument *msg*." msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertRaises` " +"accepte l'argument de mot-clé supplémentaire *msg*." #: ../Doc/library/unittest.rst:947 msgid "" @@ -1210,19 +1496,26 @@ msgid "" "`exception` attribute. This can be useful if the intention is to perform " "additional checks on the exception raised::" msgstr "" +"Le gestionnaire de contexte enregistre l'exception capturée dans son " +"attribut :attr:`exception`. Ceci est particulièrement utile si l'intention " +"est d'effectuer des contrôles supplémentaires sur l'exception levée  ::" #: ../Doc/library/unittest.rst:957 msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" +"Ajout de la possibilité d'utiliser :meth:`assertRaises` comme gestionnaire " +"de contexte." #: ../Doc/library/unittest.rst:960 msgid "Added the :attr:`exception` attribute." -msgstr "" +msgstr "Ajout de l'attribut :attr:`exception`." #: ../Doc/library/unittest.rst:963 ../Doc/library/unittest.rst:989 #: ../Doc/library/unittest.rst:1030 ../Doc/library/unittest.rst:1053 msgid "Added the *msg* keyword argument when used as a context manager." msgstr "" +"Ajout de l'argument *msg* comme mot-clé lorsqu'il est utilisé comme " +"gestionnaire de contexte." #: ../Doc/library/unittest.rst:970 msgid "" @@ -1231,6 +1524,11 @@ msgid "" "object or a string containing a regular expression suitable for use by :func:" "`re.search`. Examples::" msgstr "" +"Comme :meth:`assertRaises` mais vérifie aussi que *regex* correspond à la " +"représentation de la chaîne de caractères de l'exception levée. *regex* " +"peut être un objet d'expression rationnelle ou une chaîne contenant une " +"expression rationnelle appropriée pour être utilisée par :func:`re.search`. " +"Exemples  ::" #: ../Doc/library/unittest.rst:978 ../Doc/library/unittest.rst:1046 msgid "or::" @@ -1242,7 +1540,7 @@ msgstr "" #: ../Doc/library/unittest.rst:986 msgid "Renamed to :meth:`assertRaisesRegex`." -msgstr "" +msgstr "Renommé en :meth:`assertRaisesRegex`." #: ../Doc/library/unittest.rst:996 msgid "" @@ -1252,6 +1550,12 @@ msgid "" "isn't. Any exception is an error. To catch any of a group of warnings, a " "tuple containing the warning classes may be passed as *warnings*." msgstr "" +"Test qu'un avertissement est déclenché lorsque *callable* est appelé avec " +"n'importe quel argument positionnel ou mot-clé qui est également passé à :" +"meth:`assertWarns`. Le test passe si *warning* est déclenché et échoue s'il " +"ne l'est pas. Toute exception est une erreur. Pour capturer un avertissement " +"dans un ensemble d'avertissements, un couple contenant les classes " +"d'avertissement peut être passé à *warnings*." #: ../Doc/library/unittest.rst:1003 msgid "" @@ -1259,12 +1563,17 @@ msgid "" "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si seuls les arguments * warning* et éventuellement *msg* sont donnés, " +"renvoie un gestionnaire de contexte pour que le code testé puisse être écrit " +"en ligne plutôt que comme une fonction  ::" #: ../Doc/library/unittest.rst:1010 msgid "" "When used as a context manager, :meth:`assertWarns` accepts the additional " "keyword argument *msg*." msgstr "" +"Lorsqu'il est utilisé comme gestionnaire de contexte, :meth:`assertWarns` " +"accepte l'argument de mot-clé supplémentaire *msg*." #: ../Doc/library/unittest.rst:1013 msgid "" @@ -1273,12 +1582,19 @@ msgid "" "the :attr:`filename` and :attr:`lineno` attributes. This can be useful if " "the intention is to perform additional checks on the warning caught::" msgstr "" +"Le gestionnaire de contexte stocke l'avertissement capturé dans son " +"attribut :attr:`warning`, et la ligne source qui a déclenché les " +"avertissements dans les attributs :attr:`filename` et :attr:`lineno`. Cette " +"fonction peut être utile si l'intention est d'effectuer des contrôles " +"supplémentaires sur l'avertissement capturé  ::" #: ../Doc/library/unittest.rst:1025 msgid "" "This method works regardless of the warning filters in place when it is " "called." msgstr "" +"Cette méthode fonctionne indépendamment des filtres d'avertissement en place " +"lorsqu'elle est appelée." #: ../Doc/library/unittest.rst:1037 msgid "" @@ -1287,12 +1603,19 @@ msgid "" "string containing a regular expression suitable for use by :func:`re." "search`. Example::" msgstr "" +"Comme :meth:`assertWarns` mais vérifie aussi qu'une *regex* corresponde au " +"message de l'avertissement. *regex* peut être un objet d'expression " +"régulière ou une chaîne contenant une expression régulière appropriée pour " +"être utilisée par :func:`re.search`. Exemple  ::" #: ../Doc/library/unittest.rst:1058 msgid "" "A context manager to test that at least one message is logged on the " "*logger* or one of its children, with at least the given *level*." msgstr "" +"Un gestionnaire de contexte pour tester qu'au moins un message est " +"enregistré sur le *logger* ou un de ses enfants, avec au moins le *niveau* " +"donné." #: ../Doc/library/unittest.rst:1062 msgid "" @@ -1300,6 +1623,9 @@ msgid "" "`str` giving the name of a logger. The default is the root logger, which " "will catch all messages." msgstr "" +"Si donné, *logger* doit être une classe :class:`logging.logger` objet ou une " +"classe :class:`str` donnant le nom d'un journal. La valeur par défaut est le " +"journal racine *root*, qui capture tous les messages." #: ../Doc/library/unittest.rst:1066 msgid "" @@ -1307,29 +1633,41 @@ msgid "" "equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " "default is :attr:`logging.INFO`." msgstr "" +"S'il est donné, *level* doit être soit un entier, soit son équivalent sous " +"forme de chaîne (par exemple ``\"ERROR\"`` ou :attr:`logging.ERROR`). La " +"valeur par défaut est :attr:`logging.INFO`." #: ../Doc/library/unittest.rst:1070 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." msgstr "" +"Le test passe si au moins un message émis à l'intérieur du bloc ``with`` " +"correspond aux conditions *logger* et *level*, sinon il échoue." #: ../Doc/library/unittest.rst:1073 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" msgstr "" +"L'objet retourné par le gestionnaire de contexte est une aide à " +"l'enregistrement qui garde la trace des messages de journal correspondants. " +"Il a deux attributs  ::" #: ../Doc/library/unittest.rst:1079 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" +"Une liste d'objets :class:`logging.LogRecord` de messages de log " +"correspondants." #: ../Doc/library/unittest.rst:1084 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." msgstr "" +"Une liste d'objets :class:`str` avec la sortie formatée des messages " +"correspondants." #: ../Doc/library/unittest.rst:1087 msgid "Example::" @@ -1339,6 +1677,8 @@ msgstr "Exemple ::" msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" +"Il existe également d'autres méthodes utilisées pour effectuer des contrôles " +"plus spécifiques, telles que  ::" #: ../Doc/library/unittest.rst:1103 msgid ":meth:`assertAlmostEqual(a, b) `" @@ -1350,7 +1690,7 @@ msgstr "``round(a-b, 7) == 0``" #: ../Doc/library/unittest.rst:1106 msgid ":meth:`assertNotAlmostEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertNotAlmostEqual(a, b) `" #: ../Doc/library/unittest.rst:1106 msgid "``round(a-b, 7) != 0``" @@ -1422,12 +1762,20 @@ msgid "" "the values to the given number of *decimal places* (i.e. like the :func:" "`round` function) and not *significant digits*." msgstr "" +"Vérifie que *first* et *second* sont approximativement (ou pas " +"approximativement) égaux en calculant la différence, en arrondissant au " +"nombre donné de décimales *places* (par défaut 7), et en comparant à zéro. " +"Notez que ces méthodes arrondissent les valeurs au nombre donné de " +"*décimales* (par exemple comme la fonction :func:`round`) et non aux " +"*chiffres significatifs*." #: ../Doc/library/unittest.rst:1142 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." msgstr "" +"Si *delta* est fourni au lieu de *places*, la différence entre *first* et " +"*second* doit être inférieure ou égale (ou supérieure) à *delta*." #: ../Doc/library/unittest.rst:1145 msgid "Supplying both *delta* and *places* raises a ``TypeError``." @@ -1439,12 +1787,18 @@ msgid "" "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " "objects compare equal. Added the *delta* keyword argument." msgstr "" +":meth:`assertAlmostEqual` considère automatiquement des objets presque égaux " +"qui se comparent égaux. :meth:`assertNotNotAlmostEqual` échoue " +"automatiquement si les objets qui se comparent sont égaux. Ajout de " +"l'argument mot-clé *delta*." #: ../Doc/library/unittest.rst:1158 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" msgstr "" +"Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " +"le nom de la méthode. Sinon, le test échouera  ::" #: ../Doc/library/unittest.rst:1170 msgid "" @@ -1454,6 +1808,12 @@ msgid "" "regular expression object or a string containing a regular expression " "suitable for use by :func:`re.search`." msgstr "" +"Vérifie qu'une recherche par motif *regex* correspond (ou ne correspond " +"pas) à *text*. En cas d'échec, le message d'erreur inclura le motif et le " +"*texte* (ou le motif et la partie du *texte* qui correspond de manière " +"inattendue). *regex* peut être un objet d'expression régulière ou une " +"chaîne contenant une expression régulière appropriée pour être utilisée par :" +"func:`re.search`." #: ../Doc/library/unittest.rst:1176 msgid "under the name ``assertRegexpMatches``." @@ -1464,6 +1824,7 @@ msgid "" "The method ``assertRegexpMatches()`` has been renamed to :meth:`." "assertRegex`." msgstr "" +"La méthode ``assertRegexpMatches()`` a été renommé en :meth:`.assertRegex`." #: ../Doc/library/unittest.rst:1181 msgid ":meth:`.assertNotRegex`." @@ -1474,6 +1835,8 @@ msgid "" "The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." "assertNotRegex`." msgstr "" +"Le nom ``assertNotRegexpMatches``` est un alias obsolète pour :meth:`." +"assertNotRegex`." #: ../Doc/library/unittest.rst:1190 msgid "" @@ -1481,6 +1844,9 @@ msgid "" "regardless of their order. When they don't, an error message listing the " "differences between the sequences will be generated." msgstr "" +"Vérifie que la séquence *first* contient les mêmes éléments que *second*, " +"quel que soit leur ordre. Si ce n'est pas le cas, un message d'erreur " +"indiquant les différences entre les séquences est généré." #: ../Doc/library/unittest.rst:1194 msgid "" @@ -1489,6 +1855,11 @@ msgid "" "Equivalent to: ``assertEqual(Counter(list(first)), Counter(list(second)))`` " "but works with sequences of unhashable objects as well." msgstr "" +"Les éléments en double ne sont *pas* ignorés lors de la comparaison entre " +"*first* et *second*. Il vérifie si chaque élément a le même nombre dans les " +"deux séquences. Équivalent à : ``assertEqual(Counter(list(first))), " +"Counter(list(second)))`` mais fonctionne aussi avec des séquences d'objets " +"non *hachables*." #: ../Doc/library/unittest.rst:1205 msgid "" @@ -1497,6 +1868,11 @@ msgid "" "implemented for most of the built-in types, but it's also possible to " "register new methods using :meth:`addTypeEqualityFunc`:" msgstr "" +"La méthode :meth:`assertEqual` envoie le contrôle d'égalité pour les objets " +"du même type à différentes méthodes spécifiques au type. Ces méthodes sont " +"déjà implémentées pour la plupart des types intégrés, mais il est également " +"possible d'enregistrer de nouvelles méthodes en utilisant :meth:" +"`addTypeEqualityFunc`  ::" #: ../Doc/library/unittest.rst:1212 msgid "" @@ -1508,6 +1884,14 @@ msgid "" "two parameters is detected -- possibly providing useful information and " "explaining the inequalities in details in the error message." msgstr "" +"Enregistre une méthode spécifique appelée par :meth:`assertEqual` pour " +"vérifier si deux objets exactement du même *typeobj* (et non leurs sous-" +"classes) sont égaux. *function* doit prendre deux arguments positionnels et " +"un troisième argument mot-clé *msg=None* tout comme :meth:`assertEqual` le " +"fait. Il doit lever :data:`self.failureException(msg) ` " +"lorsqu'une inégalité entre les deux premiers paramètres est détectée en " +"fournissant éventuellement des informations utiles et expliquant l'inégalité " +"en détail dans le message d'erreur." #: ../Doc/library/unittest.rst:1223 msgid "" @@ -1515,10 +1899,13 @@ msgid "" "assertEqual` are summarized in the following table. Note that it's usually " "not necessary to invoke these methods directly." msgstr "" +"La liste des méthodes spécifiques utilisées automatiquement par :meth:" +"`~TestCase.assertEqual` est résumée dans le tableau suivant. Notez qu'il " +"n'est généralement pas nécessaire d'invoquer ces méthodes directement." #: ../Doc/library/unittest.rst:1228 msgid "Used to compare" -msgstr "" +msgstr "Utilisé pour comparer" #: ../Doc/library/unittest.rst:1230 msgid ":meth:`assertMultiLineEqual(a, b) `" @@ -1542,7 +1929,7 @@ msgstr ":meth:`assertListEqual(a, b) `" #: ../Doc/library/unittest.rst:1236 msgid "lists" -msgstr "" +msgstr "listes" #: ../Doc/library/unittest.rst:1239 msgid ":meth:`assertTupleEqual(a, b) `" @@ -1550,7 +1937,7 @@ msgstr ":meth:`assertTupleEqual(a, b) `" #: ../Doc/library/unittest.rst:1239 msgid "tuples" -msgstr "" +msgstr "n-uplets" #: ../Doc/library/unittest.rst:1242 msgid ":meth:`assertSetEqual(a, b) `" @@ -1558,7 +1945,7 @@ msgstr ":meth:`assertSetEqual(a, b) `" #: ../Doc/library/unittest.rst:1242 msgid "sets or frozensets" -msgstr "" +msgstr "*sets* ou *frozensets*" #: ../Doc/library/unittest.rst:1245 msgid ":meth:`assertDictEqual(a, b) `" @@ -1566,7 +1953,7 @@ msgstr ":meth:`assertDictEqual(a, b) `" #: ../Doc/library/unittest.rst:1245 msgid "dicts" -msgstr "" +msgstr "dictionnaires" #: ../Doc/library/unittest.rst:1253 msgid "" @@ -1575,6 +1962,11 @@ msgid "" "included in the error message. This method is used by default when comparing " "strings with :meth:`assertEqual`." msgstr "" +"Vérifie que la chaîne sur plusieurs lignes *first* est égale à la chaîne " +"*second*. Si les deux chaînes de caractères ne sont pas égales, un *diff* " +"mettant en évidence les différences est inclus dans le message d'erreur. " +"Cette méthode est utilisée par défaut pour comparer les chaînes avec :meth:" +"`assertEqual`." #: ../Doc/library/unittest.rst:1263 msgid "" @@ -1583,12 +1975,18 @@ msgid "" "raised. If the sequences are different an error message is constructed that " "shows the difference between the two." msgstr "" +"Vérifie que deux séquences sont égales. Si un *seq_type* est fourni, *first* " +"et *second* doivent tous deux être des instances de *seq_type* ou un échec " +"est levé. Si les séquences sont différentes, un message d'erreur indiquant " +"la différence entre les deux est généré." #: ../Doc/library/unittest.rst:1268 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." msgstr "" +"Cette méthode n'est pas appelée directement par :meth:`assertEqual`, mais " +"sert à implémenter :meth:`assertListEqual` et :meth:`assertTupleEqual`." #: ../Doc/library/unittest.rst:1278 msgid "" @@ -1597,6 +1995,11 @@ msgid "" "also raised if either of the parameters are of the wrong type. These methods " "are used by default when comparing lists or tuples with :meth:`assertEqual`." msgstr "" +"Vérifie que deux listes ou deux n-uplets sont égaux. Si ce n'est pas le " +"cas, un message d'erreur qui ne montre que les différences entre les deux " +"est généré. Une erreur est également signalée si l'un ou l'autre des " +"paramètres n'est pas du bon type. Ces méthodes sont utilisées par défaut " +"pour comparer des listes ou des couples avec :meth:`assertEqual`." #: ../Doc/library/unittest.rst:1289 msgid "" @@ -1604,12 +2007,18 @@ msgid "" "lists the differences between the sets. This method is used by default when " "comparing sets or frozensets with :meth:`assertEqual`." msgstr "" +"Vérifie que deux ensembles sont égaux. Si ce n'est pas le cas, un message " +"d'erreur s'affiche et indique les différences entre les *sets*. Cette " +"méthode est utilisée par défaut lors de la comparaison de *sets* ou de " +"*frozensets* avec :meth:`assertEqual`." #: ../Doc/library/unittest.rst:1293 msgid "" "Fails if either of *first* or *second* does not have a :meth:`set." "difference` method." msgstr "" +"Échoue si l'un des objets *first* ou *second* n'a pas de méthode :meth:`set." +"difference`." #: ../Doc/library/unittest.rst:1301 msgid "" @@ -1617,17 +2026,25 @@ msgid "" "constructed that shows the differences in the dictionaries. This method will " "be used by default to compare dictionaries in calls to :meth:`assertEqual`." msgstr "" +"Vérifie que deux dictionnaires sont égaux. Si ce n'est pas le cas, un " +"message d'erreur qui montre les différences dans les dictionnaires est " +"généré. Cette méthode est utilisée par défaut pour comparer les " +"dictionnaires dans les appels à :meth:`assertEqual`." #: ../Doc/library/unittest.rst:1312 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" +"Enfin, la classe :class:`TestCase` fournit les méthodes et attributs " +"suivants :" #: ../Doc/library/unittest.rst:1317 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." msgstr "" +"Indique un échec du test sans condition, avec *msg* ou ``None`` pour le " +"message d'erreur." #: ../Doc/library/unittest.rst:1323 msgid "" @@ -1637,6 +2054,11 @@ msgid "" "fair\" with the framework. The initial value of this attribute is :exc:" "`AssertionError`." msgstr "" +"Cet attribut de classe donne l'exception levée par la méthode de test. Si " +"un *framework* de tests doit utiliser une exception spécialisée, " +"probablement pour enrichir l'exception d'informations additionnels., il doit " +"hériter de cette classe d'exception pour *bien fonctionner* avec le " +"*framework*. La valeur initiale de cet attribut est :exc:`AssertionError`." #: ../Doc/library/unittest.rst:1332 msgid "" @@ -1646,6 +2068,12 @@ msgid "" "of the standard failure message. When set to ``False``, the custom message " "replaces the standard message." msgstr "" +"Cet attribut de classe détermine ce qui se passe lorsqu'un message d'échec " +"personnalisé est passé en argument au paramètre *msg* à un appel " +"*assertXYYY* qui échoue. ``True`` est la valeur par défaut. Dans ce cas, le " +"message personnalisé est ajouté à la fin du message d'erreur standard. " +"Lorsqu'il est réglé sur ``False``, le message personnalisé remplace le " +"message standard." #: ../Doc/library/unittest.rst:1338 msgid "" @@ -1653,10 +2081,13 @@ msgid "" "an instance attribute, self.longMessage, to ``True`` or ``False`` before " "calling the assert methods." msgstr "" +"Le paramétrage de la classe peut être écrasé dans les méthodes de test " +"individuelles en assignant un attribut d'instance, *self.longMessage*, à " +"``True`` ou ``False`` avant d'appeler les méthodes d'assertion." #: ../Doc/library/unittest.rst:1342 msgid "The class setting gets reset before each test call." -msgstr "" +msgstr "Le réglage de la classe est réinitialisé avant chaque appel de test." #: ../Doc/library/unittest.rst:1349 msgid "" @@ -1666,24 +2097,36 @@ msgid "" "the sequence comparison methods that delegate to it), :meth:" "`assertDictEqual` and :meth:`assertMultiLineEqual`." msgstr "" +"Cet attribut contrôle la longueur maximale des *diffs* en sortie des " +"méthodes qui génèrent des *diffs* en cas d'échec. La valeur par défaut est " +"80*8 caractères. Les méthodes d'assertions affectées par cet attribut sont :" +"meth:`assertSequenceEqual` (y compris toutes les méthodes de comparaison de " +"séquences qui lui sont déléguées), :meth:`assertDictEqual` et :meth:" +"`assertMultiLineEqual`." #: ../Doc/library/unittest.rst:1356 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." msgstr "" +"Régler ``maxDiff`` sur ``None``` signifie qu'il n'y a pas de longueur " +"maximale pour les *diffs*." #: ../Doc/library/unittest.rst:1362 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" msgstr "" +"Les *frameworks* de test peuvent utiliser les méthodes suivantes pour " +"recueillir des informations sur le test :" #: ../Doc/library/unittest.rst:1368 msgid "" "Return the number of tests represented by this test object. For :class:" "`TestCase` instances, this will always be ``1``." msgstr "" +"Renvoie le nombre de tests représentés par cet objet test. Pour les " +"instances de :class:`TestCase`, c'est toujours ``1``." #: ../Doc/library/unittest.rst:1374 msgid "" @@ -1691,6 +2134,9 @@ msgid "" "test case class (if no other result instance is provided to the :meth:`run` " "method)." msgstr "" +"Retourne une instance de la classe de résultat de test qui doit être " +"utilisée pour cette classe de cas de test (si aucune autre instance de " +"résultat n'est fournie à la méthode :meth:`run`)." #: ../Doc/library/unittest.rst:1378 msgid "" @@ -1698,12 +2144,18 @@ msgid "" "`TestResult`; subclasses of :class:`TestCase` should override this as " "necessary." msgstr "" +"Pour les instances de :class:`TestCase`, c'est toujours une instance de :" +"class:`TestResult` ; les sous-classes de :class:`TestCase` peuvent la " +"remplacer au besoin." #: ../Doc/library/unittest.rst:1385 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." msgstr "" +"Retourne une chaîne identifiant le cas de test spécifique. Il s'agit " +"généralement du nom complet de la méthode de test, y compris le nom du " +"module et de la classe." #: ../Doc/library/unittest.rst:1391 msgid "" @@ -1711,6 +2163,9 @@ msgid "" "provided. The default implementation of this method returns the first line " "of the test method's docstring, if available, or ``None``." msgstr "" +"Renvoie une description du test, ou ``None`` si aucune description n'a été " +"fournie. L'implémentation par défaut de cette méthode renvoie la première " +"ligne de la *docstring* de la méthode de test, si disponible, ou ``None``." #: ../Doc/library/unittest.rst:1396 msgid "" @@ -1719,6 +2174,10 @@ msgid "" "unittest extensions and adding the test name was moved to the :class:" "`TextTestResult` in Python 3.2." msgstr "" +"En 3.1, ceci a été modifié pour ajouter le nom du test à la description " +"courte, même en présence d'une *docstring*. Cela a causé des problèmes de " +"compatibilité avec les extensions *unittest* et l'ajout du nom du test a été " +"déplacé dans la classe :class:`TextTestResult` dans Python 3.2." #: ../Doc/library/unittest.rst:1405 msgid "" @@ -1728,18 +2187,29 @@ msgid "" "arguments and keyword arguments passed into :meth:`addCleanup` when they are " "added." msgstr "" +"Ajout d'une fonction à appeler après :meth:`tearDown` pour nettoyer les " +"ressources utilisées pendant le test. Les fonctions seront appelées dans " +"l'ordre inverse de l'ordre dans lequel elles ont été ajoutées (:abbr:`LIFO " +"(dernier entré, premier sorti)`). Elles sont appelées avec tous les " +"arguments et arguments de mots-clés passés à :meth:`addCleanup` quand elles " +"sont ajoutées." #: ../Doc/library/unittest.rst:1411 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." msgstr "" +"Si :meth:`setUp` échoue, cela signifie que :meth:`tearDown` n'est pas " +"appelé, alors que les fonctions de nettoyage ajoutées seront toujours " +"appelées." #: ../Doc/library/unittest.rst:1419 msgid "" "This method is called unconditionally after :meth:`tearDown`, or after :meth:" "`setUp` if :meth:`setUp` raises an exception." msgstr "" +"Cette méthode est appelée sans conditions après :meth:`tearDown`, ou après :" +"meth:`setUp` si :meth:`setUp` lève une exception." #: ../Doc/library/unittest.rst:1422 msgid "" @@ -1747,12 +2217,19 @@ msgid "" "`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" "`tearDown` then you can call :meth:`doCleanups` yourself." msgstr "" +"Cette méthode est chargée d'appeler toutes les fonctions de nettoyage " +"ajoutées par :meth:`addCleanup`. Si vous avez besoin de fonctions de " +"nettoyage à appeler *avant* l'appel à :meth:`tearDown` alors vous pouvez " +"appeler :meth:`doCleanups` vous-même." #: ../Doc/library/unittest.rst:1427 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." msgstr "" +":meth:`doCleanups` extrait les méthodes de la pile des fonctions de " +"nettoyage une à la fois, de sorte qu'elles peuvent être appelées à tout " +"moment." #: ../Doc/library/unittest.rst:1435 msgid "" @@ -1762,10 +2239,16 @@ msgid "" "test cases using legacy test code, allowing it to be integrated into a :mod:" "`unittest`-based test framework." msgstr "" +"Cette classe implémente la partie de l'interface :class:`TestCase` qui " +"permet au lanceur de test de piloter le scénario de test, mais ne fournit " +"pas les méthodes que le code test peut utiliser pour vérifier et signaler " +"les erreurs. Ceci est utilisé pour créer des scénario de test utilisant du " +"code de test existant afin de faciliter l'intégration dans un *framework* de " +"test basé sur :mod:`unittest`." #: ../Doc/library/unittest.rst:1445 msgid "Deprecated aliases" -msgstr "" +msgstr "Alias obsolètes" #: ../Doc/library/unittest.rst:1447 msgid "" @@ -1773,6 +2256,9 @@ msgid "" "more aliases that are now deprecated. The following table lists the correct " "names along with their deprecated aliases:" msgstr "" +"Pour des raisons historiques, certaines méthodes de la classe :class:" +"`TestCase` avaient un ou plusieurs alias qui sont maintenant obsolètes. Le " +"tableau suivant énumère les noms corrects ainsi que leurs alias obsolètes  ::" #: ../Doc/library/unittest.rst:1452 msgid "Method Name" @@ -1780,7 +2266,7 @@ msgstr "Nom de méthode" #: ../Doc/library/unittest.rst:1452 msgid "Deprecated alias" -msgstr "" +msgstr "Alias obsolètes" #: ../Doc/library/unittest.rst:1454 msgid ":meth:`.assertEqual`" @@ -1895,6 +2381,8 @@ msgid "" "``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" "meth:`.assertRegex` and :meth:`.assertRaisesRegex`." msgstr "" +"Les expressions ``assertRegexpMatches`` et ``assertRaisesRegexp`` ont été " +"renommées en :meth:`.assertRegex` et :meth:`.assertRaisesRegex`." #: ../Doc/library/unittest.rst:1473 msgid "" @@ -1903,7 +2391,7 @@ msgstr "``assertNotRegexpMatches`` en faveur de :meth:`.assertNotRegex`." #: ../Doc/library/unittest.rst:1479 msgid "Grouping tests" -msgstr "" +msgstr "Regroupement des tests" #: ../Doc/library/unittest.rst:1483 msgid "" @@ -1912,6 +2400,11 @@ msgid "" "it to be run as any other test case. Running a :class:`TestSuite` instance " "is the same as iterating over the suite, running each test individually." msgstr "" +"Cette classe représente une agrégation de cas de test individuels et de " +"suites de tests. La classe présente l'interface requise par le lanceur de " +"test pour être exécutée comme tout autre cas de test. L'exécution d'une " +"instance de :class:`TestSuite` est identique à l'itération sur la suite, en " +"exécutant chaque test indépendamment." #: ../Doc/library/unittest.rst:1488 msgid "" @@ -1919,6 +2412,10 @@ msgid "" "other test suites that will be used to build the suite initially. Additional " "methods are provided to add test cases and suites to the collection later on." msgstr "" +"Si *tests* est fourni, il doit s'agir d'un itérable de cas de test " +"individuels ou d'autres suites de test qui seront utilisés pour construire " +"la suite initial. Des méthodes supplémentaires sont fournies pour ajouter " +"ultérieurement des cas de test et des suites à la collection." #: ../Doc/library/unittest.rst:1492 msgid "" @@ -1928,26 +2425,37 @@ msgid "" "additional methods are available to add tests to :class:`TestSuite` " "instances:" msgstr "" +"Les objets :class:`TestSuite` se comportent comme les objets :class:" +"`TestCase`, sauf qu'ils n'implémentent pas réellement un test. Au lieu de " +"cela, ils sont utilisés pour regrouper les tests en groupes de tests qui " +"doivent être exécutés ensemble. Des méthodes supplémentaires sont " +"disponibles pour ajouter des tests aux instances de :class:`TestSuite` :" #: ../Doc/library/unittest.rst:1500 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." msgstr "" +"Ajouter un objet :class:`TestCase` ou :class:`TestSuite` à la suite de tests." #: ../Doc/library/unittest.rst:1505 msgid "" "Add all the tests from an iterable of :class:`TestCase` and :class:" "`TestSuite` instances to this test suite." msgstr "" +"Ajouter tous les tests d'un itérable d'instances de :class:`TestCase` et de :" +"class:`TestSuite` à cette suite de tests." #: ../Doc/library/unittest.rst:1508 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." msgstr "" +"C'est l'équivalent d'une itération sur *tests*, appelant :meth:`addTest` " +"pour chaque élément." #: ../Doc/library/unittest.rst:1511 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" +":class:`TestSuite` partage les méthodes suivantes avec :class:`TestCase` :" #: ../Doc/library/unittest.rst:1516 msgid "" @@ -1955,6 +2463,10 @@ msgid "" "test result object passed as *result*. Note that unlike :meth:`TestCase." "run`, :meth:`TestSuite.run` requires the result object to be passed in." msgstr "" +"Exécute les tests associés à cette suite, en collectant le résultat dans " +"l'objet de résultat de test passé par *result*. Remarquer que contrairement " +"à :meth:`TestCase.run`, :meth:`TestSuite.run` nécessite que l'objet résultat " +"soit passé." #: ../Doc/library/unittest.rst:1524 msgid "" @@ -1962,12 +2474,17 @@ msgid "" "allows exceptions raised by the test to be propagated to the caller and can " "be used to support running tests under a debugger." msgstr "" +"Exécute les tests associés à cette suite sans collecter le résultat. Ceci " +"permet aux exceptions levées par le test d'être propagées à l'appelant et " +"peut être utilisé pour exécuter des tests sous un débogueur." #: ../Doc/library/unittest.rst:1531 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." msgstr "" +"Renvoie le nombre de tests représentés par cet objet de test, y compris tous " +"les tests individuels et les sous-suites." #: ../Doc/library/unittest.rst:1537 msgid "" @@ -1980,6 +2497,16 @@ msgid "" "tests returned by this method unless the caller uses a subclass that " "overrides :meth:`TestSuite._removeTestAtIndex` to preserve test references." msgstr "" +"Les tests groupés par une classe :class:`TestSuite` sont toujours " +"accessibles par itération. Les sous-classes peuvent fournir paresseusement " +"des tests en surchargeant :meth:`__iter__`. Notez que cette méthode peut " +"être appelée plusieurs fois sur une même suite (par exemple lors du comptage " +"des tests ou de la comparaison pour l'égalité) et que les tests retournés " +"par itérations répétées avant :meth:`TestSuite.run` doivent être les mêmes " +"pour chaque itération. Après :meth:`TestSuite.run`, les appelants ne " +"devraient pas se fier aux tests retournés par cette méthode à moins qu'ils " +"n'utilisent une sous-classe qui remplace :meth:`TestSuite." +"_removeTestAtIndex` pour préserver les références des tests." #: ../Doc/library/unittest.rst:1547 msgid "" @@ -1987,6 +2514,9 @@ msgid "" "than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " "providing tests." msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` accédait aux " +"tests directement plutôt que par itération, donc surcharger la méthode :meth:" +"`__iter__` n'était pas suffisante pour fournir les tests." #: ../Doc/library/unittest.rst:1552 msgid "" @@ -1994,16 +2524,23 @@ msgid "" "`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " "by overriding :meth:`TestSuite._removeTestAtIndex`." msgstr "" +"Dans les versions précédentes, la classe :class:`TestSuite` contenait des " +"références à chaque :class:`TestCase` après l'appel à :meth:`TestSuite.run`. " +"Les sous-classes peuvent restaurer ce comportement en surchargeant :meth:" +"`TestSuite._removeTestAtIndex`." #: ../Doc/library/unittest.rst:1557 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." msgstr "" +"Dans l'utilisation typique de l'objet :class:`TestSuite`, la méthode :meth:" +"`run` est invoquée par une classe :class:`TestRunner` plutôt que par le " +"système de test de l'utilisateur." #: ../Doc/library/unittest.rst:1562 msgid "Loading and running tests" -msgstr "" +msgstr "Chargement et exécution des tests" #: ../Doc/library/unittest.rst:1566 msgid "" @@ -2013,10 +2550,17 @@ msgid "" "`unittest.defaultTestLoader`. Using a subclass or instance, however, allows " "customization of some configurable properties." msgstr "" +"La classe :class:`TestLoader` est utilisée pour créer des suites de tests à " +"partir de classes et de modules. Normalement, il n'est pas nécessaire de " +"créer une instance de cette classe ; le module :mod:`unittest` fournit une " +"instance qui peut être partagée comme :data:`unittest.defaultTestLoader`. " +"L'utilisation d'une sous-classe ou d'une instance permet cependant de " +"personnaliser certaines propriétés configurables." #: ../Doc/library/unittest.rst:1572 msgid ":class:`TestLoader` objects have the following attributes:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" #: ../Doc/library/unittest.rst:1577 msgid "" @@ -2025,16 +2569,24 @@ msgid "" "raising an exception to the caller. Non-fatal errors are also indicated by a " "synthetic test that will raise the original error when run." msgstr "" +"Une liste des erreurs non fatales rencontrées lors du chargement des tests. " +"Il est impossible de faire une remise à zéro pendant le chargement. Les " +"erreurs fatales sont signalées par la méthode correspondante qui lève une " +"exception à l'appelant. Les erreurs non fatales sont également indiquées par " +"un test synthétique qui lève l'erreur initiale lors de l'exécution." #: ../Doc/library/unittest.rst:1586 msgid ":class:`TestLoader` objects have the following methods:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" #: ../Doc/library/unittest.rst:1591 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" "derived :class:`testCaseClass`." msgstr "" +"Renvoie une suite de tous les cas de test contenus dans la classe :class:" +"`TestCaseClass`\\ dérivée de :class:`testCase`." #: ../Doc/library/unittest.rst:1594 msgid "" @@ -2044,6 +2596,11 @@ msgid "" "`runTest` method is implemented, a single test case is created for that " "method instead." msgstr "" +"Une instance de cas de test est créée pour chaque méthode nommée par :meth:" +"`getTestCaseNames`. Par défaut, ce sont les noms des méthodes commençant par " +"\"test\". Si :meth:`getTestTestCaseNames` ne renvoie aucune méthode, mais " +"que la méthode :meth:`runTest` est implémentée, un seul cas de test est créé " +"pour cette méthode à la place." #: ../Doc/library/unittest.rst:1603 msgid "" @@ -2051,6 +2608,10 @@ msgid "" "searches *module* for classes derived from :class:`TestCase` and creates an " "instance of the class for each test method defined for the class." msgstr "" +"Renvoie une suite de tous les cas de test contenus dans le module donné. " +"Cette méthode recherche *module* pour les classes dérivées de :class:" +"`TestCase` et crée une instance de la classe pour chaque méthode de test " +"définie pour cette classe." #: ../Doc/library/unittest.rst:1610 msgid "" @@ -2060,6 +2621,12 @@ msgid "" "play well with this method. Doing so, however, can be useful when the " "fixtures are different and defined in subclasses." msgstr "" +"Bien que l'utilisation d'une hiérarchie de classes :class:`TestCase` (les " +"classes dérivées de *TestCase*) peut être un moyen pratique de partager des " +"*fixtures* et des fonctions utilitaires, définir une méthode de test pour " +"des classes de base non destinées à être directement instanciée ne marche " +"pas bien avec cette méthode. Cela peut toutefois s'avérer utile lorsque les " +"*fixtures* sont différentes et définies dans des sous-classes." #: ../Doc/library/unittest.rst:1616 msgid "" @@ -2068,10 +2635,14 @@ msgid "" "`load_tests protocol`_. The *pattern* argument is passed as the third " "argument to ``load_tests``." msgstr "" +"Si un module fournit une fonction ``load_tests``, il est appelé pour charger " +"les tests. Cela permet aux modules de personnaliser le chargement des tests. " +"C'est le protocole `load_tests protocol`_. L'argument *pattern* est passé " +"comme troisième argument à ``load_tests``." #: ../Doc/library/unittest.rst:1621 msgid "Support for ``load_tests`` added." -msgstr "" +msgstr "Ajout de la prise en charge de ``load_tests``." #: ../Doc/library/unittest.rst:1624 msgid "" @@ -2080,10 +2651,16 @@ msgid "" "compatibility. The method also now accepts a keyword-only argument " "*pattern* which is passed to ``load_tests`` as the third argument." msgstr "" +"L'argument par défaut non documenté et non officiel *use_load_tests* est " +"déprécié et ignoré, bien qu'il soit toujours accepté pour la compatibilité " +"descendante. La méthode accepte aussi maintenant un argument *pattern* qui " +"est passé à ``load_tests`` comme troisième argument." #: ../Doc/library/unittest.rst:1633 msgid "Return a suite of all test cases given a string specifier." msgstr "" +"Renvoie une suite de tous les cas de test en fonction d'un spécificateur de " +"chaîne de caractères." #: ../Doc/library/unittest.rst:1635 msgid "" @@ -2095,6 +2672,14 @@ msgid "" "up as \"a test method within a test case class\", rather than \"a callable " "object\"." msgstr "" +"Le spécificateur *name* est un \"nom pointillé\" qui peut être résolu soit " +"par un module, une classe de cas de test, une méthode de test dans une " +"classe de cas de test, une instance de :class:`TestSuite`, ou un objet " +"appelable qui retourne une instance de classe :class:`TestCase` ou de " +"classe :class:`TestSuite`. Ces contrôles sont appliqués dans l'ordre indiqué " +"ici, c'est-à-dire qu'une méthode sur une classe de cas de test possible sera " +"choisie comme \"méthode de test dans une classe de cas de test\", plutôt que " +"comme \"un objet appelable\"." #: ../Doc/library/unittest.rst:1643 msgid "" @@ -2108,10 +2693,19 @@ msgid "" "modules and packages which have not been imported; they will be imported as " "a side-effect." msgstr "" +"Par exemple, si vous avez un module :mod:`SampleTests` contenant une classe :" +"class:`TestCase` (classe dérivée de la classe :class:`SampleTestCase`) avec " +"trois méthodes de test (:meth:`test_one`, :meth:`test_two` et :meth:" +"`test_three`), l'élément spécificateur `SampleTests.sampleTestCase` renvoie " +"une suite qui va exécuter les trois méthodes de tests. L'utilisation du " +"spécificateur `SampleTests.SampleTestCase.test_two` permettrait de retourner " +"une suite de tests qui ne lancerait que la méthode test :meth:`test_two`. Le " +"spécificateur peut se référer à des modules et packages qui n'ont pas été " +"importés. Ils seront importés par un effet de bord." #: ../Doc/library/unittest.rst:1653 msgid "The method optionally resolves *name* relative to the given *module*." -msgstr "" +msgstr "La méthode résout facultativement *name* relatif au *module* donné." #: ../Doc/library/unittest.rst:1655 msgid "" @@ -2119,6 +2713,10 @@ msgid "" "*name* then a synthetic test that raises that error when run will be " "returned. These errors are included in the errors accumulated by self.errors." msgstr "" +"Si une :exc:`ImportError` ou :exc:`AttributeError` se produit pendant la " +"traversée de *name*, un test synthétique qui enrichie l'erreur produite lors " +"de l'exécution est renvoyé. Ces erreurs sont incluses dans les erreurs " +"accumulées par *self.errors*." #: ../Doc/library/unittest.rst:1664 msgid "" @@ -2126,12 +2724,17 @@ msgid "" "than a single name. The return value is a test suite which supports all the " "tests defined for each name." msgstr "" +"Similaire à :meth:`loadTestsFromName`, mais prend une séquence de noms " +"plutôt qu'un seul nom. La valeur renvoyée est une suite de tests qui gère " +"tous les tests définis pour chaque nom." #: ../Doc/library/unittest.rst:1671 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." msgstr "" +"Renvoie une séquence triée de noms de méthodes trouvés dans " +"*testCaseClass* ; ceci doit être une sous-classe de :class:`TestCase`." #: ../Doc/library/unittest.rst:1677 msgid "" @@ -2141,6 +2744,11 @@ msgid "" "pattern matching.) Only module names that are importable (i.e. are valid " "Python identifiers) will be loaded." msgstr "" +"Trouve tous les modules de test en parcourant les sous-répertoires du " +"répertoire de démarrage spécifié, et renvoie un objet *TestSuite* qui les " +"contient. Seuls les fichiers de test qui correspondent à *pattern* sont " +"chargés. Seuls les noms de modules qui sont importables (c'est-à-dire qui " +"sont des identifiants Python valides) sont chargés." #: ../Doc/library/unittest.rst:1683 msgid "" @@ -2148,6 +2756,9 @@ msgid "" "the start directory is not the top level directory then the top level " "directory must be specified separately." msgstr "" +"Tous les modules de test doivent être importables depuis la racine du " +"projet. Si le répertoire de démarrage n'est pas la racine, le répertoire " +"racine doit être spécifié séparément." #: ../Doc/library/unittest.rst:1687 msgid "" @@ -2156,6 +2767,11 @@ msgid "" "import failure is due to :exc:`SkipTest` being raised, it will be recorded " "as a skip instead of an error." msgstr "" +"Si l'importation d'un module échoue, par exemple en raison d'une erreur de " +"syntaxe, celle-ci est alors enregistrée comme une erreur unique et la " +"découverte se poursuit. Si l'échec de l'importation est dû au fait que :exc:" +"`SkipTest` est levé, il est enregistré comme un saut plutôt que comme un " +"message d'erreur." #: ../Doc/library/unittest.rst:1692 msgid "" @@ -2166,12 +2782,21 @@ msgid "" "checked for tests once during an invocation, even if the load_tests function " "itself calls ``loader.discover``." msgstr "" +"Si un paquet (un répertoire contenant un fichier nommé :file:`__init__.py`) " +"est trouvé, le paquet est alors vérifié pour une fonction ``load_tests``. Si " +"elle existe, elle s'appellera ``package.load_tests(loader, tests, " +"pattern)``. Le mécanisme de découverte de test prend soin de s'assurer qu'un " +"paquet n'est vérifié qu'une seule fois au cours d'une invocation, même si la " +"fonction *load_tests* appelle elle-même ``loader.discover``." #: ../Doc/library/unittest.rst:1700 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." msgstr "" +"Si ``load_tests`` existe alors la découverte ne poursuit pas la récursion " +"dans le paquet, ``load_tests`` a la responsabilité de charger tous les tests " +"dans le paquet." #: ../Doc/library/unittest.rst:1704 msgid "" @@ -2180,10 +2805,14 @@ msgid "" "``load_tests`` does not need to pass this argument in to ``loader." "discover()``." msgstr "" +"Le motif n'est délibérément pas stocké en tant qu'attribut du chargeur afin " +"que les paquets puissent continuer à être découverts eux-mêmes. " +"*top_level_dir* est stocké de sorte que ``load_tests`` n'a pas besoin de " +"passer cet argument a ``loader. discover()``." #: ../Doc/library/unittest.rst:1709 msgid "*start_dir* can be a dotted module name as well as a directory." -msgstr "" +msgstr "*start_dir* peut être un nom de module ainsi qu'un répertoire." #: ../Doc/library/unittest.rst:1713 msgid "" @@ -2193,6 +2822,12 @@ msgid "" "even if the underlying file system's ordering is not dependent on file " "name." msgstr "" +"Les modules qui lèvent :exc:`SkipTest` lors de l'importation sont " +"enregistrés comme des sauts et non des erreurs. Le mécanisme de découverte " +"fonctionne pour les :term:`paquets-espaces de nommage `. " +"Les chemins sont triés avant d'être importés pour que l'ordre d'exécution " +"soit le même, même si l'ordre du système de fichiers sous-jacent ne dépend " +"pas du nom du fichier." #: ../Doc/library/unittest.rst:1721 msgid "" @@ -2200,30 +2835,43 @@ msgid "" "their path matches *pattern*, because it is impossible for a package name to " "match the default pattern." msgstr "" +"Les paquets trouvés sont maintenant vérifiés pour ``load_tests`` " +"indépendamment du fait que leur chemin d'accès corresponde ou non à " +"*pattern*, car il est impossible pour un nom de paquet de correspondre au " +"motif par défaut." #: ../Doc/library/unittest.rst:1727 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" msgstr "" +"Les attributs suivants d'une classe :class:`TestLoader` peuvent être " +"configurés soit par héritage, soit par affectation sur une instance  ::" #: ../Doc/library/unittest.rst:1733 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." msgstr "" +"Chaîne donnant le préfixe des noms de méthodes qui seront interprétés comme " +"méthodes de test. La valeur par défaut est ``'test'``." #: ../Doc/library/unittest.rst:1736 msgid "" "This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " "methods." msgstr "" +"Ceci affecte les méthodes :meth:`getTestCaseNames` et toutes les méthodes :" +"meth:`loadTestsFrom\\*`." #: ../Doc/library/unittest.rst:1742 msgid "" "Function to be used to compare method names when sorting them in :meth:" "`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." msgstr "" +"Fonction à utiliser pour comparer les noms de méthodes lors de leur tri dans " +"les méthodes :meth:`getTestCaseNames` et toutes les méthodes :meth:" +"`loadTestsFrom\\*`." #: ../Doc/library/unittest.rst:1748 msgid "" @@ -2231,16 +2879,21 @@ msgid "" "methods on the resulting object are needed. The default value is the :class:" "`TestSuite` class." msgstr "" +"Objet appelable qui construit une suite de tests à partir d'une liste de " +"tests. Aucune méthode sur l'objet résultant n'est nécessaire. La valeur par " +"défaut est la classe :class:`TestSuite`." #: ../Doc/library/unittest.rst:1752 msgid "This affects all the :meth:`loadTestsFrom\\*` methods." -msgstr "" +msgstr "Cela affecte toutes les méthodes :meth:`loadTestsFrom\\*`." #: ../Doc/library/unittest.rst:1757 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." msgstr "" +"Cette classe est utilisée pour compiler des informations sur les tests qui " +"ont réussi et ceux qui ont échoué." #: ../Doc/library/unittest.rst:1760 msgid "" @@ -2249,6 +2902,10 @@ msgid "" "properly recorded; test authors do not need to worry about recording the " "outcome of tests." msgstr "" +"Un objet :class:`TestResult` stocke les résultats d'un ensemble de tests. " +"Les classes :class:`TestCase` et :class:`TestSuite` s'assurent que les " +"résultats sont correctement enregistrés. Les auteurs du test n'ont pas à se " +"soucier de l'enregistrement des résultats des tests." #: ../Doc/library/unittest.rst:1765 msgid "" @@ -2257,12 +2914,20 @@ msgid "" "purposes; a :class:`TestResult` instance is returned by the :meth:" "`TestRunner.run` method for this purpose." msgstr "" +"Les cadriciels de test construits sur :mod:`unittest` peuvent nécessiter " +"l'accès à l'objet :class:`TestResult` généré en exécutant un ensemble de " +"tests à des fins de génération de comptes-rendu. Une instance de :class:" +"`TestResult` est alors renvoyée par la méthode :meth:`TestRunner.run` à " +"cette fin." #: ../Doc/library/unittest.rst:1770 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" msgstr "" +"Les instance de :class:`TestResult` ont les attributs suivants qui sont " +"intéressant pour l'inspection des résultats de l'exécution d'un ensemble de " +"tests  ::" #: ../Doc/library/unittest.rst:1776 msgid "" @@ -2270,6 +2935,9 @@ msgid "" "holding formatted tracebacks. Each tuple represents a test which raised an " "unexpected exception." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque couple " +"représente un test qui a levé une exception inattendue." #: ../Doc/library/unittest.rst:1782 msgid "" @@ -2277,12 +2945,18 @@ msgid "" "holding formatted tracebacks. Each tuple represents a test where a failure " "was explicitly signalled using the :meth:`TestCase.assert\\*` methods." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant des traces formatées. Chaque tuple " +"représente un test où un échec a été explicitement signalé en utilisant les " +"méthodes :meth:`TestCase.assert\\*`." #: ../Doc/library/unittest.rst:1788 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." msgstr "" +"Une liste contenant un couple d'instances de :class:`TestCase` et une " +"chaînes de caractères contenant la raison de l'omission du test." #: ../Doc/library/unittest.rst:1795 msgid "" @@ -2290,21 +2964,28 @@ msgid "" "holding formatted tracebacks. Each tuple represents an expected failure of " "the test case." msgstr "" +"Une liste contenant un couple d'instance :class:`TestCase` et une chaînes de " +"caractères contenant des traces formatées. Chaque coulpe représente un échec " +"attendu du scénario de test." #: ../Doc/library/unittest.rst:1801 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." msgstr "" +"Une liste contenant les instances :class:`TestCase` qui ont été marquées " +"comme des échecs attendus, mais qui ont réussi." #: ../Doc/library/unittest.rst:1806 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" +"A positionner sur ``True`` quand l'exécution des tests doit être arrêter " +"par :meth:`stop`." #: ../Doc/library/unittest.rst:1810 msgid "The total number of tests run so far." -msgstr "" +msgstr "Le nombre total de tests effectués jusqu'à présent." #: ../Doc/library/unittest.rst:1814 msgid "" @@ -2314,28 +2995,41 @@ msgid "" "if the test fails or errors. Any output is also attached to the failure / " "error message." msgstr "" +"S'il est défini sur *true*, ``sys.stdout`` et ``sys.stderr`` sont mis dans " +"un tampon entre les appels de :meth:`startTest` et :meth:`stopTest`. La " +"sortie collectée est répercutée sur les sorties ``sys.stdout`` et ``sys." +"stderr`` réels uniquement en cas d'échec ou d'erreur du test. Toute sortie " +"est également attachée au message d'erreur." #: ../Doc/library/unittest.rst:1823 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." msgstr "" +"Si la valeur est *true* :meth:`stop` est appelée lors de la première " +"défaillance ou erreur, ce qui interrompt le test en cours d'exécution." #: ../Doc/library/unittest.rst:1830 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" +"Si la valeur est *true*, les variables locales sont affichées dans les " +"traces d'appels." #: ../Doc/library/unittest.rst:1836 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." msgstr "" +"Renvoie ``True`` si tous les tests effectués jusqu'à présent ont réussi, " +"sinon renvoie ``False``." #: ../Doc/library/unittest.rst:1839 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." msgstr "" +"Renvoie ``False`` s'il y a eu des :attr:`unexpectedSuccesses` dans les tests " +"annotés avec le décorateur :func:`expectedFailure`." #: ../Doc/library/unittest.rst:1845 msgid "" @@ -2344,6 +3038,10 @@ msgid "" "`TestRunner` objects should respect this flag and return without running any " "additional tests." msgstr "" +"Cette méthode peut être appelée pour signaler que l'ensemble des tests en " +"cours d'exécution doit être annulé en définissant l'attribut :attr:" +"`shouldStop` sur ``True``. Les instances de :class:`TestRunner` doivent " +"respecter ce signal et se terminer sans exécuter de tests supplémentaires." #: ../Doc/library/unittest.rst:1850 msgid "" @@ -2352,6 +3050,10 @@ msgid "" "keyboard. Interactive tools which provide :class:`TestRunner` " "implementations can use this in a similar manner." msgstr "" +"Par exemple, cette fonctionnalité est utilisée par la classe :class:" +"`TextTestRunner` pour arrêter le cadriciel de test lorsque l'utilisateur " +"lance une interruption clavier. Les outils interactifs qui fournissent des " +"implémentations de :class:`TestRunner` peuvent l'utiliser de la même manière." #: ../Doc/library/unittest.rst:1855 msgid "" @@ -2360,24 +3062,32 @@ msgid "" "additional reporting requirements. This is particularly useful in building " "tools which support interactive reporting while tests are being run." msgstr "" +"Les méthodes suivantes de la classe :class:`TestResult` sont utilisées pour " +"maintenir les structures de données internes, et peuvent être étendues dans " +"des sous-classes pour gérer des exigences supplémentaires en termes de " +"compte-rendu. Cette fonction est particulièrement utile pour créer des " +"outils qui prennent en charge la génération de rapports interactifs pendant " +"l'exécution des tests." #: ../Doc/library/unittest.rst:1863 msgid "Called when the test case *test* is about to be run." msgstr "" +"Appelé lorsque le scénario de test *test* est sur le point d'être exécuté." #: ../Doc/library/unittest.rst:1867 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." msgstr "" +"Appelé après l'exécution du cas de test *test*, quel qu'en soit le résultat." #: ../Doc/library/unittest.rst:1872 msgid "Called once before any tests are executed." -msgstr "" +msgstr "Appelé une fois avant l'exécution des tests." #: ../Doc/library/unittest.rst:1879 msgid "Called once after all tests are executed." -msgstr "" +msgstr "Appelé une fois après l'exécution des tests." #: ../Doc/library/unittest.rst:1886 msgid "" @@ -2385,6 +3095,9 @@ msgid "" "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " "traceback)``." msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un couple du formulaire renvoyé par :func:`sys.exc_info` : ``(type, " +"valeur, traceback)``." #: ../Doc/library/unittest.rst:1890 msgid "" @@ -2392,12 +3105,18 @@ msgid "" "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." #: ../Doc/library/unittest.rst:1897 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Appelé lorsque le cas de test *test* soulève une exception inattendue. *err* " +"est un triplet de la même forme que celui renvoyé par :func:`sys.exc_info` : " +"``(type, valeur, traceback)``." #: ../Doc/library/unittest.rst:1900 msgid "" @@ -2405,32 +3124,41 @@ msgid "" "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." #: ../Doc/library/unittest.rst:1907 msgid "Called when the test case *test* succeeds." -msgstr "" +msgstr "Appelé lorsque le scénario de test *test* réussit." #: ../Doc/library/unittest.rst:1909 msgid "The default implementation does nothing." -msgstr "" +msgstr "L'implémentation par défaut ne fait rien." #: ../Doc/library/unittest.rst:1914 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." msgstr "" +"Appelé lorsque le scénario de test *test* est ignoré. *raison* est la raison " +"pour laquelle le test donné à été ignoré." #: ../Doc/library/unittest.rst:1917 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, raison)`` à " +"l'attribut :attr:`skipped` de l'instance." #: ../Doc/library/unittest.rst:1923 msgid "" "Called when the test case *test* fails, but was marked with the :func:" "`expectedFailure` decorator." msgstr "" +"Appelé lorsque le scénario de test *test* échoue, mais qui a été marqué avec " +"le décorateur :func:`expectedFailure`." #: ../Doc/library/unittest.rst:1926 msgid "" @@ -2438,18 +3166,25 @@ msgid "" "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " "formatted traceback derived from *err*." msgstr "" +"L'implémentation par défaut ajoute un couple ``(test, formatted_err)`` à " +"l'attribut :attr:`errors` de l'instance, où *formatted_err* est une trace " +"formatée à partir de *err*." #: ../Doc/library/unittest.rst:1933 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." msgstr "" +"Appelé lorsque le scénario de test *test* réussit, mais que ce scénario a " +"été marqué avec le décorateur :func:`expectedFailure`." #: ../Doc/library/unittest.rst:1936 msgid "" "The default implementation appends the test to the instance's :attr:" "`unexpectedSuccesses` attribute." msgstr "" +"L'implémentation par défaut ajoute le test à l'attribut :attr:" +"`unexpectedSuccesses` de l'instance." #: ../Doc/library/unittest.rst:1942 msgid "" @@ -2457,6 +3192,9 @@ msgid "" "the test method. *subtest* is a custom :class:`TestCase` instance " "describing the subtest." msgstr "" +"Appelé à la fin d'un sous-test. *test* est le cas de test correspondant à la " +"méthode de test. *subtest* est une instance dérivée de :class:`TestCase` " +"décrivant le sous-test." #: ../Doc/library/unittest.rst:1946 msgid "" @@ -2464,24 +3202,33 @@ msgid "" "with an exception where *outcome* is a tuple of the form returned by :func:" "`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Si *outcome* est :const:`None`, le sous-test a réussi. Sinon, il a échoué " +"avec une exception où *outcome* est un triplet du formulaire renvoyé par :" +"func:`sys.exc_info` : ``(type, valeur, traceback)``." #: ../Doc/library/unittest.rst:1950 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." msgstr "" +"L'implémentation par défaut ne fait rien lorsque le résultat est un succès, " +"et enregistre les échecs de sous-test comme des échecs normaux." #: ../Doc/library/unittest.rst:1958 msgid "" "A concrete implementation of :class:`TestResult` used by the :class:" "`TextTestRunner`." msgstr "" +"Une implémentation concrète de :class:`TestResult` utilisé par la classe :" +"class:`TextTestRunner`." #: ../Doc/library/unittest.rst:1961 msgid "" "This class was previously named ``_TextTestResult``. The old name still " "exists as an alias but is deprecated." msgstr "" +"Cette classe s'appelait auparavant ``_TextTestResult``. L'ancien nom existe " +"toujours en tant qu'alias, mais il est obsolète." #: ../Doc/library/unittest.rst:1968 msgid "" @@ -2489,6 +3236,10 @@ msgid "" "customization of the :class:`TestLoader` is needed, this instance can be " "used instead of repeatedly creating new instances." msgstr "" +"Instance de la classe :class:`TestLoader` destinée à être partagée. Si " +"aucune personnalisation de la classe :class:`TestLoader` n'est nécessaire, " +"cette instance peut être utilisée au lieu de créer plusieurs fois de " +"nouvelles instances." #: ../Doc/library/unittest.rst:1976 msgid "" @@ -2500,6 +3251,14 @@ msgid "" "as the interface to construct runners changes when features are added to " "unittest." msgstr "" +"Une implémentation de base d'un lanceur de test qui fournit les résultats " +"dans un flux. Si *stream* est ``None``, par défaut, :data:`sys.stderr` est " +"utilisé comme flux de sortie. Cette classe a quelques paramètres " +"configurables, mais est essentiellement très simple. Les applications " +"graphiques qui exécutent des suites de tests doivent fournir des " +"implémentations alternatives. De telles implémentations doivent accepter " +"``**kwargs`` car l'interface pour construire les lanceurs change lorsque des " +"fonctionnalités sont ajoutées à *unittest*." #: ../Doc/library/unittest.rst:1983 msgid "" @@ -2513,20 +3272,32 @@ msgid "" "option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``." msgstr "" +"Par défaut, ce lanceur affiche :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` et :exc:`ImportWarning` " +"même si elles sont :ref:`ignorées par défaut `. Les " +"avertissements causés par :ref:`des méthodes *unittest* dépréciées " +"` sont également spéciaux et, lorsque les filtres " +"d'avertissement sont ``default`` ou ``always``, ils n'apparaissent qu'une " +"fois par module, afin d'éviter trop de messages d'alerte. Ce comportement " +"peut être annulé en utilisant les options :option:`!-Wd` ou :option:`!-Wa` " +"de Python (voir :ref:`Gestion des avertissements `) et en " +"laissant *warnings* à ``None``." #: ../Doc/library/unittest.rst:1994 msgid "Added the ``warnings`` argument." -msgstr "" +msgstr "Ajout du paramètre ``warnings``." #: ../Doc/library/unittest.rst:1997 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." msgstr "" +"Le flux par défaut est défini sur :data:`sys.stderr` au moment de " +"l'instanciation plutôt qu'à l'importation." #: ../Doc/library/unittest.rst:2001 msgid "Added the tb_locals parameter." -msgstr "" +msgstr "Ajout du paramètre *tb_locals*." #: ../Doc/library/unittest.rst:2006 msgid "" @@ -2534,6 +3305,9 @@ msgid "" "is not intended to be called directly, but can be overridden in subclasses " "to provide a custom ``TestResult``." msgstr "" +"Cette méthode renvoie l'instance de ``TestResult`` utilisée par :meth:`run`. " +"Il n'est pas destiné à être appelé directement, mais peut être surchargée " +"dans des sous-classes pour fournir un ``TestResult`` personnalisé." #: ../Doc/library/unittest.rst:2010 msgid "" @@ -2542,6 +3316,10 @@ msgid "" "to :class:`TextTestResult` if no ``resultclass`` is provided. The result " "class is instantiated with the following arguments::" msgstr "" +"``_makeResult()`` instancie la classe ou l'appelable passé dans le " +"constructeur ``TextTestRunner`` comme argument ``resultclass``. Il vaut par " +"défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " +"classe de résultat est instanciée avec les arguments suivants  ::" #: ../Doc/library/unittest.rst:2019 msgid "" @@ -2558,12 +3336,19 @@ msgid "" "simplest use for this function is to include the following line at the end " "of a test script::" msgstr "" +"Un programme en ligne de commande qui charge un ensemble de tests à partir " +"du *module* et les exécute. L'utilisation principale est de rendre les " +"modules de test facilement exécutables. L'utilisation la plus simple pour " +"cette fonction est d'inclure la ligne suivante à la fin d'un script de test " +" ::" #: ../Doc/library/unittest.rst:2038 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" msgstr "" +"Vous pouvez exécuter des tests avec des informations plus détaillées en " +"utilisant l'option de verbosité  ::" #: ../Doc/library/unittest.rst:2044 msgid "" @@ -2572,6 +3357,10 @@ msgid "" "not specified or ``None`` and no test names are provided via *argv*, all " "tests found in *module* are run." msgstr "" +"L'argument *defaultTest* est soit le nom d'un seul test, soit un itérable de " +"noms de test à exécuter si aucun nom de test n'est spécifié via *argv*. Si " +"aucun nom de test n'est fourni via *argv*, tous les tests trouvés dans " +"*module* sont exécutés." #: ../Doc/library/unittest.rst:2049 msgid "" @@ -2579,6 +3368,9 @@ msgid "" "first element being the program name. If not specified or ``None``, the " "values of :data:`sys.argv` are used." msgstr "" +"L'argument *argv* peut être une liste d'options passées au programme, le " +"premier élément étant le nom du programme. S'il n'est pas spécifié ou vaut " +"``None``, les valeurs de :data:`sys.argv` sont utilisées." #: ../Doc/library/unittest.rst:2053 msgid "" @@ -2586,12 +3378,18 @@ msgid "" "created instance of it. By default ``main`` calls :func:`sys.exit` with an " "exit code indicating success or failure of the tests run." msgstr "" +"L'argument *testRunner* peut être soit une classe de lanceur de test, soit " +"une instance déjà créée de celle-ci. Par défaut, ``main`` appelle :func:`sys." +"exit` avec un code de sortie indiquant le succès ou l'échec des tests " +"exécutés." #: ../Doc/library/unittest.rst:2057 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." msgstr "" +"L'argument *testLoader* doit être une instance de :class:`TestLoader`, et " +"par défaut de :data:`defaultTestLoader`." #: ../Doc/library/unittest.rst:2060 msgid "" @@ -2599,12 +3397,17 @@ msgid "" "the argument ``exit=False``. This displays the result on standard output " "without calling :func:`sys.exit`::" msgstr "" +"Les ``main`` sont utilisés à partir de l'interpréteur interactif en passant " +"dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " +"standard sans appeler :func:`sys.exit`  ::" #: ../Doc/library/unittest.rst:2067 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." msgstr "" +"Les paramètres *failfast*, *catchbreak* et *buffer* ont le même effet que la " +"même option en ligne de commande `command-line options`_." #: ../Doc/library/unittest.rst:2070 msgid "" @@ -2614,32 +3417,45 @@ msgid "" "(see :ref:`Warning control `), otherwise it will be set " "to ``'default'``." msgstr "" +"L'argument *warnings* spécifie l'argument :ref:`filtre d'avertissement " +"` qui doit être utilisé lors de l'exécution des tests. Si " +"elle n'est pas spécifiée, elle reste réglée sur ``None`` si une option :" +"option:`!-W'` est passée à :program:`python` (voir :ref:`Utilisation des " +"avertissements `), sinon elle sera réglée sur " +"``'default'``." #: ../Doc/library/unittest.rst:2076 msgid "" "Calling ``main`` actually returns an instance of the ``TestProgram`` class. " "This stores the result of the tests run as the ``result`` attribute." msgstr "" +"L'appel de ``main`` renvoie en fait une instance de la classe " +"``TestProgram``. Le résultat des tests effectués est enregistré sous " +"l'attribut ``result``." #: ../Doc/library/unittest.rst:2079 msgid "The *exit* parameter was added." -msgstr "" +msgstr "Ajout du paramètre *exit*." #: ../Doc/library/unittest.rst:2082 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." msgstr "" +"Ajout des paramètres *verbosity*, *failfast*, *catchbreak*, *buffer* et " +"*warnings*." #: ../Doc/library/unittest.rst:2086 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." msgstr "" +"Le paramètre *defaultTest* a été modifié pour accepter également un itérable " +"de noms de test." #: ../Doc/library/unittest.rst:2092 msgid "load_tests Protocol" -msgstr "" +msgstr "Protocole de chargement des tests (*load_tests Protocol*)" #: ../Doc/library/unittest.rst:2096 msgid "" @@ -2647,22 +3463,29 @@ msgid "" "normal test runs or test discovery by implementing a function called " "``load_tests``." msgstr "" +"Les modules ou paquets peuvent personnaliser la façon dont les tests sont " +"chargés à partir de ceux-ci pendant l'exécution des tests ou pendant la " +"découverte de tests en implémentant une fonction appelée ``load_tests``." #: ../Doc/library/unittest.rst:2099 msgid "" "If a test module defines ``load_tests`` it will be called by :meth:" "`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" +"Si un module de test définit ``load_tests`` il est appelé par :meth:" +"`TestLoader.loadTestsFromModule` avec les arguments suivants  ::" #: ../Doc/library/unittest.rst:2104 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." msgstr "" +"où *pattern* est passé directement depuis ``loadTestsFromModule``. La valeur " +"par défaut est ``None``." #: ../Doc/library/unittest.rst:2107 msgid "It should return a :class:`TestSuite`." -msgstr "" +msgstr "Elle doit renvoyer une classe :class:`TestSuite`." #: ../Doc/library/unittest.rst:2109 msgid "" @@ -2672,12 +3495,20 @@ msgid "" "from the standard set of tests. The third argument is used when loading " "packages as part of test discovery." msgstr "" +"*loader* est l'instance de :class:`TestLoader` qui effectue le chargement. " +"*standard_tests* sont les tests qui sont chargés par défaut depuis le " +"module. Il est courant que les modules de test veuillent seulement ajouter " +"ou supprimer des tests de l'ensemble standard de tests. Le troisième " +"argument est utilisé lors du chargement de paquets dans le cadre de la " +"découverte de tests." #: ../Doc/library/unittest.rst:2115 msgid "" "A typical ``load_tests`` function that loads tests from a specific set of :" "class:`TestCase` classes may look like::" msgstr "" +"Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " +"spécifique de classes :class:`TestCase` peut ressembler à  ::" #: ../Doc/library/unittest.rst:2127 msgid "" @@ -2688,6 +3519,13 @@ msgid "" "just another directory. Otherwise, discovery of the package's tests will be " "left up to ``load_tests`` which is called with the following arguments::" msgstr "" +"Si la découverte est lancée dans un répertoire contenant un paquet, soit à " +"partir de la ligne de commande, soit en appelant :meth:`TestLoader." +"discover`, alors le système recherche dans le fichier du paquet :file:" +"`__init__.py` la fonction ``load_tests``. Si cette fonction n'existe pas, la " +"découverte se poursuit dans le paquet comme si c'était juste un autre " +"répertoire. Sinon, la découverte des tests du paquet est effectuée par " +"``load_tests`` qui est appelé avec les arguments suivants  ::" #: ../Doc/library/unittest.rst:2136 msgid "" @@ -2695,6 +3533,9 @@ msgid "" "package. (``standard_tests`` will only contain tests collected from :file:" "`__init__.py`.)" msgstr "" +"Doit retourner une classe :class:`TestSuite` représentant tous les tests du " +"paquet. (``standard_tests`` ne contient que les tests collectés dans le " +"fichier :file:`__init__.py`)." #: ../Doc/library/unittest.rst:2140 msgid "" @@ -2702,16 +3543,22 @@ msgid "" "continue (and potentially modify) test discovery. A 'do nothing' " "``load_tests`` function for a test package would look like::" msgstr "" +"Comme le motif est passé à ``load_tests``, le paquet est libre de continuer " +"(et potentiellement de modifier) la découverte des tests. Une fonction « ne " +"rien faire » ``load_tests`` pour un paquet de test ressemblerait à  ::" #: ../Doc/library/unittest.rst:2151 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." msgstr "" +"La découverte de test ne vérifie plus que les noms de paquets correspondent " +"à *pattern* en raison de l'impossibilité de trouver des noms de paquets " +"correspondant au motif par défaut." #: ../Doc/library/unittest.rst:2158 msgid "Class and Module Fixtures" -msgstr "" +msgstr "Classes et modules d'aménagements des tests" #: ../Doc/library/unittest.rst:2160 msgid "" @@ -2720,6 +3567,10 @@ msgid "" "from the previous class (if there is one) is called, followed by :meth:" "`setUpClass` from the new class." msgstr "" +"Les classes et modules d'aménagements des tests sont implémentés dans :class:" +"`TestSuite`. Lorsque la suite de tests rencontre un test d'une nouvelle " +"classe, alors :meth:`tearDownClass` de la classe précédente (s'il y en a " +"une) est appelé, suivi de :meth:`setUpClass` de la nouvelle classe." #: ../Doc/library/unittest.rst:2165 msgid "" @@ -2727,12 +3578,17 @@ msgid "" "``tearDownModule`` from the previous module is run, followed by " "``setUpModule`` from the new module." msgstr "" +"De même, si un test provient d'un module différent du test précédent, alors " +"``tearDownModule`` du module précédent est exécuté, suivi par " +"``setUpModule`` du nouveau module." #: ../Doc/library/unittest.rst:2169 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." msgstr "" +"Après que tous les tests ont été exécutés, les ``tearDownClass`` et " +"``tearDownModule`` finaux sont exécutés." #: ../Doc/library/unittest.rst:2172 msgid "" @@ -2740,6 +3596,9 @@ msgid "" "test parallelization and they break test isolation. They should be used with " "care." msgstr "" +"Notez que les aménagements de tests partagés ne fonctionnent pas bien avec " +"de « potentielles » fonctions comme la parallélisation de test et qu'ils " +"brisent l'isolation des tests. Ils doivent être utilisés avec parcimonie." #: ../Doc/library/unittest.rst:2175 msgid "" @@ -2750,6 +3609,13 @@ msgid "" "modules and classes are adjacent to each other, then these shared fixture " "functions may be called multiple times in a single test run." msgstr "" +"L'ordre par défaut des tests créés par les chargeurs de tests unitaires est " +"de regrouper tous les tests des mêmes modules et classes. Cela à pour " +"conséquence que ``setUpClass`` / ``setUpModule`` (etc) sont appelé " +"exactement une fois par classe et module. Si vous rendez l'ordre aléatoire, " +"de sorte que les tests de différents modules et classes soient adjacents les " +"uns aux autres, alors ces fonctions d'aménagements partagées peuvent être " +"appelées plusieurs fois dans un même test." #: ../Doc/library/unittest.rst:2182 msgid "" @@ -2757,6 +3623,10 @@ msgid "" "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " "support shared fixtures." msgstr "" +"Les aménagements de tests partagés ne sont pas conçus pour fonctionner avec " +"des suites dont la commande n'est pas standard. Une ``BaseTestSuite`` existe " +"toujours pour les cadriciels qui ne veulent pas gérer les aménagements de " +"tests partagés." #: ../Doc/library/unittest.rst:2186 msgid "" @@ -2767,14 +3637,23 @@ msgid "" "are just using the standard unittest test runner then this detail doesn't " "matter, but if you are a framework author it may be relevant." msgstr "" +"S'il y a des exceptions levées pendant l'une des fonctions d'aménagement de " +"tests partagés, le test est signalé comme étant en erreur. Parce qu'il n'y a " +"pas d'instance de test correspondante, un objet ``_ErrorHolder`` (qui a la " +"même interface qu'une classe :class:`TestCase`) est créé pour représenter " +"l'erreur. Si vous n'utilisez que le lanceur de test unitaire standard, ce " +"détail n'a pas d'importance, mais si vous êtes un auteur de cadriciel de " +"test, il peut être pertinent." #: ../Doc/library/unittest.rst:2195 msgid "setUpClass and tearDownClass" msgstr "" +"Classes de mise en place (*setUpClass*) et de démantèlement des tests " +"(*tearDownClass*)" #: ../Doc/library/unittest.rst:2197 msgid "These must be implemented as class methods::" -msgstr "" +msgstr "Elles doivent être implémentées en tant que méthodes de classe  ::" #: ../Doc/library/unittest.rst:2210 msgid "" @@ -2782,6 +3661,9 @@ msgid "" "then you must call up to them yourself. The implementations in :class:" "`TestCase` are empty." msgstr "" +"Si vous voulez que les classes de base ``setUpClass`` et ``tearDownClass`` " +"soient appelées, vous devez les appeler vous-même. Les implémentations dans :" +"class:`TestCase` sont vides." #: ../Doc/library/unittest.rst:2214 msgid "" @@ -2791,14 +3673,22 @@ msgid "" "`SkipTest` exception then the class will be reported as having been skipped " "instead of as an error." msgstr "" +"Si une exception est levée pendant l'exécution de ``setUpClass`` alors les " +"tests dans la classe ne sont pas exécutés et la classe ``tearDownClass`` " +"n'est pas exécutée. Les classes ignorées n'auront pas d'exécution de " +"``setUpClass`` ou ``tearDownClass``. Si l'exception est une exception :exc:" +"`SkipTest` alors la classe est signalée comme ayant été ignorée au lieu " +"d'être en échec." #: ../Doc/library/unittest.rst:2222 msgid "setUpModule and tearDownModule" msgstr "" +"Module de mise en place (*setUpModule*) et de démantèlement des tests " +"(*tearDownModule*)" #: ../Doc/library/unittest.rst:2224 msgid "These should be implemented as functions::" -msgstr "" +msgstr "Elles doivent être implémentées en tant que fonctions  ::" #: ../Doc/library/unittest.rst:2232 msgid "" @@ -2807,10 +3697,15 @@ msgid "" "exception is a :exc:`SkipTest` exception then the module will be reported as " "having been skipped instead of as an error." msgstr "" +"Si une exception est levée pendant l'exécution de la fonction " +"``setUpModule`` alors aucun des tests du module ne sera exécuté et la " +"fonction ``tearDownModule`` ne sera pas exécutée. Si l'exception est une " +"exception :exc:`SkipTest` alors le module est signalé comme ayant été ignoré " +"au lieu d'être en échec." #: ../Doc/library/unittest.rst:2239 msgid "Signal Handling" -msgstr "" +msgstr "Traitement des signaux" #: ../Doc/library/unittest.rst:2243 msgid "" @@ -2821,6 +3716,13 @@ msgid "" "complete, and the test run will then end and report all the results so far. " "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" +"L'option :option:`-c/--catch ` en ligne de commande pour " +"*unittest*, ainsi que le paramètre ``catchbreak`` vers :func:`unittest." +"main()`, permettent une utilisation simplifiée du contrôle-C pendant un " +"test. Avec l'activation de ``catchbreak``, l'utilisation du contrôle-C " +"permet de terminer le test en cours d'exécution, et le test se termine et " +"rapporte tous les résultats obtenus jusqu'à présent. Un deuxième contrôle-C " +"lève une exception classique :exc:`KeyboardInterrupt`." #: ../Doc/library/unittest.rst:2250 msgid "" @@ -2833,12 +3735,24 @@ msgid "" "to it. For individual tests that need ``unittest`` control-c handling " "disabled the :func:`removeHandler` decorator can be used." msgstr "" +"Le gestionnaire du signal *contrôle-C* tente de rester compatible avec le " +"code ou les tests qui installent leur propre gestionnaire :const:`signal." +"SIGINT`. Si le gestionnaire ``unittest`` est appelé mais *n'est pas* le " +"gestionnaire installé :const:`signal.SIGINT`, c'est-à-dire qu'il a été " +"remplacé par le système sous test et délégué, alors il appelle le " +"gestionnaire par défaut. C'est normalement le comportement attendu par un " +"code qui remplace un gestionnaire installé et lui délègue. Pour les tests " +"individuels qui ont besoin que le signal *contrôle-C* \"*unittest*\" soit " +"désactivée, le décorateur :func:`removeHandler` peut être utilisé." #: ../Doc/library/unittest.rst:2259 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" +"Il existe quelques fonctions de support pour les auteurs de cadriciel afin " +"d'activer la fonctionnalité de gestion des *contrôle-C* dans les cadriciels " +"de test." #: ../Doc/library/unittest.rst:2264 msgid "" @@ -2846,6 +3760,10 @@ msgid "" "(usually in response to the user pressing control-c) all registered results " "have :meth:`~TestResult.stop` called." msgstr "" +"Installe le gestionnaire *contrôle-c*. Quand un :const:`signal.SIGINT` est " +"reçu (généralement en réponse à l'utilisateur appuyant sur *contrôle-c*) " +"tous les résultats enregistrés vont appeler la méthode :meth:`~TestResult." +"stop`." #: ../Doc/library/unittest.rst:2271 msgid "" @@ -2853,6 +3771,10 @@ msgid "" "result stores a weak reference to it, so it doesn't prevent the result from " "being garbage collected." msgstr "" +"Enregistre un objet :class:`TestResult` pour la gestion du *contrôle-C*. " +"L'enregistrement d'un résultat stocke une référence faible sur celui-ci, de " +"sorte qu'il n'empêche pas que le résultat soit collecté par le ramasse-" +"miette." #: ../Doc/library/unittest.rst:2275 msgid "" @@ -2860,6 +3782,10 @@ msgid "" "handling is not enabled, so test frameworks can unconditionally register all " "results they create independently of whether or not handling is enabled." msgstr "" +"L'enregistrement d'un objet :class:`TestResult` n'a pas d'effets de bord si " +"la gestion du *contrôle-c* n'est pas activée, donc les cadriciels de test " +"peuvent enregistrer sans condition tous les résultats qu'ils créent " +"indépendamment du fait que la gestion soit activée ou non." #: ../Doc/library/unittest.rst:2282 msgid "" @@ -2867,6 +3793,9 @@ msgid "" "`~TestResult.stop` will no longer be called on that result object in " "response to a control-c." msgstr "" +"Supprime un résultat enregistré. Une fois qu'un résultat a été supprimé, :" +"meth:`~TestResult.stop` n'est plus appelé sur cet objet résultat en réponse " +"à un *contrôle-c*." #: ../Doc/library/unittest.rst:2289 msgid "" @@ -2874,3 +3803,7 @@ msgid "" "it has been installed. This function can also be used as a test decorator to " "temporarily remove the handler while the test is being executed::" msgstr "" +"Lorsqu'elle est appelée sans arguments, cette fonction supprime le " +"gestionnaire *contrôle-c* s'il a été installé. Cette fonction peut également " +"être utilisée comme décorateur de test pour supprimer temporairement le " +"gestionnaire pendant l'exécution du test  ::" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index c8322adba..43606b130 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -109,7 +109,7 @@ msgstr "Attribut" #: ../Doc/library/urllib.parse.rst:92 ../Doc/library/urllib.parse.rst:216 #: ../Doc/library/urllib.parse.rst:304 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/urllib.parse.rst:92 ../Doc/library/urllib.parse.rst:216 #: ../Doc/library/urllib.parse.rst:304 @@ -223,7 +223,7 @@ msgstr "" #: ../Doc/library/urllib.parse.rst:228 ../Doc/library/urllib.parse.rst:230 #: ../Doc/library/urllib.parse.rst:232 ../Doc/library/urllib.parse.rst:234 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" #: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:230 msgid ":attr:`password`" diff --git a/library/venv.po b/library/venv.po index 6bdbbf174..2b8b20283 100644 --- a/library/venv.po +++ b/library/venv.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/venv.rst:2 msgid ":mod:`venv` --- Creation of virtual environments" -msgstr "" +msgstr ":mod:`venv` — Création d'environnements virtuels" #: ../Doc/library/venv.rst:12 msgid "**Source code:** :source:`Lib/venv/`" -msgstr "" +msgstr "**Code source :** :source:`Lib/venv/`" #: ../Doc/library/venv.rst:18 msgid "" @@ -38,6 +38,8 @@ msgstr "" #: ../Doc/library/venv.rst:24 msgid "See :pep:`405` for more information about Python virtual environments." msgstr "" +"Voir la :pep:`405` pour plus d'informations à propos des environnements " +"virtuels Python." #: ../Doc/library/venv.rst:27 msgid "" @@ -45,6 +47,8 @@ msgid "" "``python3 -m venv`` to help prevent any potential confusion as to which " "Python interpreter a virtual environment will be based on." msgstr "" +"Le script ``pyenv`` est obsolète depuis Python 3.6 et a été remplacé par " +"``python3 -m venv``." #: ../Doc/library/venv.rst:33 msgid "Creating virtual environments" @@ -55,6 +59,8 @@ msgid "" "Creation of :ref:`virtual environments ` is done by executing the " "command ``venv``::" msgstr "" +"La création d':ref:`environnements virtuels ` est faite en " +"exécutant la commande ``venv`` ::" #: ../Doc/using/venv-create.inc:6 msgid "" @@ -96,29 +102,36 @@ msgstr "" #: ../Doc/using/venv-create.inc:30 msgid "On Windows, invoke the ``venv`` command as follows::" -msgstr "" +msgstr "Sur Windows, appelez la commande ``venv`` comme suit ::" #: ../Doc/using/venv-create.inc:34 msgid "" "Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for " "your :ref:`Python installation `::" msgstr "" +"Alternativement, si vous avez configuré les variables ``PATH`` et " +"``PATHEXT`` pour votre :ref:`installation Python ` ::" #: ../Doc/using/venv-create.inc:39 msgid "The command, if run with ``-h``, will show the available options::" msgstr "" +"La commande, si lancée avec ``-h``, montrera les options disponibles ::" #: ../Doc/using/venv-create.inc:69 msgid "" "Installs pip by default, added the ``--without-pip`` and ``--copies`` " "options" msgstr "" +"Installe pip par défaut, ajout des options ``--without-pip`` et ``--copies``" #: ../Doc/using/venv-create.inc:73 msgid "" "In earlier versions, if the target directory already existed, an error was " "raised, unless the ``--clear`` or ``--upgrade`` option was provided." msgstr "" +"Dans les versions précédentes, si le dossier de destination existait déjà, " +"une erreur était levée, sauf si l'option ``--clear`` ou ``--upgrade`` était " +"incluse." #: ../Doc/using/venv-create.inc:77 msgid "" @@ -126,12 +139,17 @@ msgid "" "packages`` key, set to ``true`` if ``venv`` is run with the ``--system-site-" "packages`` option, ``false`` otherwise." msgstr "" +"Le fichier crée ``pyenv.cfg`` inclus aussi la clé ``include-system-site-" +"packages``, dont la valeur est ``true`` si ``venv`` est lancé avec l'option " +"``--system-site-packages``, sinon sa valeur est ``false``." #: ../Doc/using/venv-create.inc:81 msgid "" "Unless the ``--without-pip`` option is given, :mod:`ensurepip` will be " "invoked to bootstrap ``pip`` into the virtual environment." msgstr "" +"Sauf si l'option ``--without-pip`` est incluse, :mod:`ensurepip` sera " +"invoqué pour amorcer ``pip`` dans l'environnement virtuel." #: ../Doc/using/venv-create.inc:84 msgid "" @@ -139,6 +157,9 @@ msgid "" "environment will be created, according to the given options, at each " "provided path." msgstr "" +"Plusieurs chemins peuvent être donnés à ``venv``, et dans ce cas un " +"environnement virtuel sera créé, en fonction des options incluses, à chaque " +"chemin donné." #: ../Doc/using/venv-create.inc:88 msgid "" @@ -153,7 +174,7 @@ msgstr "Plateforme" #: ../Doc/using/venv-create.inc:93 msgid "Shell" -msgstr "" +msgstr "Invite de commande" #: ../Doc/using/venv-create.inc:93 msgid "Command to activate virtual environment" @@ -197,7 +218,7 @@ msgstr "cmd.exe" #: ../Doc/using/venv-create.inc:101 msgid "C:\\\\> \\\\Scripts\\\\activate.bat" -msgstr "" +msgstr "``C:\\\\{venv}\\\\Scripts\\\\activate.bat``" #: ../Doc/using/venv-create.inc:103 msgid "PowerShell" @@ -205,7 +226,7 @@ msgstr "PowerShell" #: ../Doc/using/venv-create.inc:103 msgid "PS C:\\\\> \\\\Scripts\\\\Activate.ps1" -msgstr "" +msgstr "``PS C:\\\\> \\\\Scripts\\\\Activate.ps1``" #: ../Doc/using/venv-create.inc:106 msgid "" @@ -216,6 +237,13 @@ msgid "" "scripts installed in a virtual environment should be runnable without " "activating it, and run with the virtual environment's Python automatically." msgstr "" +"Vous ne devez pas spécialement activer un environnement ; l'activation " +"ajoute juste le chemin du dossier de binaires de votre environnement virtuel " +"à votre PATH, pour que \"python\" invoque l’interpréteur Python de " +"l'environnement virtuel et que vous puissiez lancer des scripts installés " +"sans avoir à utiliser leur chemin complet. Cependant, tous les scripts " +"installés dans un environnement virtuel devraient être exécutables sans " +"l'activer, et se lancer avec l'environnement virtuel Python automatiquement." #: ../Doc/using/venv-create.inc:113 msgid "" @@ -225,10 +253,16 @@ msgid "" "there are separate scripts called ``deactivate.bat`` and ``Deactivate.ps1`` " "which are installed when the virtual environment is created." msgstr "" +"Vous pouvez désactiver un environnement virtuel en écrivant \"**deactivate**" +"\" dans votre shell. Le mécanisme est spécifique à chaque plateforme : Par " +"exemple, le script d'activation pour Bash défini une fonction " +"\"**deactivate**\", alors que sur Windows il y a des scripts séparés appelés " +"``deactivate.bat`` et ``Deactivate.ps1`` qui sont installés quand " +"l'environnement virtuel est créé." #: ../Doc/using/venv-create.inc:119 msgid "``fish`` and ``csh`` activation scripts." -msgstr "" +msgstr "Les scripts d'activation pour ``fish`` et ``csh``." #: ../Doc/library/venv.rst:40 msgid "" @@ -238,12 +272,20 @@ msgid "" "installed in a \"system\" Python, i.e., one which is installed as part of " "your operating system." msgstr "" +"Un environnement virtuel est un environnement Python tel que l'interpréteur " +"Python, les bibliothèques et les scripts installés sont isolés de ceux " +"installés dans d'autres environnements virtuels, et (par défaut) de toutes " +"autres bibliothèques installées dans un Python \"système\", par exemple " +"celui qui est installé avec votre système d'exploitation." #: ../Doc/library/venv.rst:46 msgid "" "A virtual environment is a directory tree which contains Python executable " "files and other files which indicate that it is a virtual environment." msgstr "" +"Un environnement virtuel est une arborescence de dossiers qui contiens les " +"fichiers exécutables Python et autres fichiers qui indiquent que c'est un " +"environnement virtuel." #: ../Doc/library/venv.rst:49 msgid "" @@ -252,6 +294,11 @@ msgid "" "environment is active, they install Python packages into the virtual " "environment without needing to be told to do so explicitly." msgstr "" +"Les outils d'installations communs comme ``Setuptools`` et ``pip`` " +"fonctionnent comme prévu avec des environnements virtuels. En d'autres " +"termes, quand un environnement virtuel est actif, ils installent les paquets " +"Python dans l'environnement virtuel sans avoir besoin de leur préciser " +"explicitement." #: ../Doc/library/venv.rst:54 msgid "" @@ -265,6 +312,16 @@ msgid "" "is the same as :attr:`sys.base_exec_prefix` (they all point to a non-virtual " "environment Python installation)." msgstr "" +"Quand un environnement virtuel est actif (Par exemple quand l’interpréteur " +"Python de l'environnement virtuel est lancé), les attributs :attr:`sys." +"prefix` et :attr:`sys.exec_prefix` pointent vers le dossier racine de " +"l'environnement virtuel, alors que :attr:`sys.base_prefix` et :attr:`sys." +"base_exec_prefix` pointent vers l'installation de Python qui n'est pas celle " +"de l'environnement virtuel et qui a été utilisée pour créer l'environnement " +"virtuel. Si un environnement virtuel n'est pas actif, alors :attr:`sys." +"prefix` est égal à :attr:`sys.base_prefix` et :attr:`sys.exec_prefix` est " +"égal à :attr:`sys.base_exec_prefix` (ils pointent tous sur une installation " +"Python qui n'est pas un environnement virtuel)." #: ../Doc/library/venv.rst:65 msgid "" @@ -273,6 +330,10 @@ msgid "" "prevent projects being inadvertently installed outside of the virtual " "environment." msgstr "" +"Quand un environnement virtuel est actif, toute option qui change le chemin " +"d'installation sera ignoré de tous les fichiers de configuration " +"**distutils** pour éviter que des projets soient accidentellement installés " +"en dehors de l'environnement virtuel." #: ../Doc/library/venv.rst:70 msgid "" @@ -291,10 +352,25 @@ msgid "" "window should run the script with the correct interpreter without there " "needing to be any reference to its virtual environment in ``PATH``." msgstr "" +"Quand vous travaillez dans une invite de commande **shell**, les " +"utilisateurs peuvent activer un environnement virtuel en lançant un script " +"``activate`` situé dans le dossier des exécutables de l'environnement " +"virtuel (le nom de fichier précis dépends du shell utilisé), ce qui ajoute " +"le dossier des exécutables de l'environnement virtuel dans la variable " +"d'environnement ``PATH``. Il ne devrait jamais y avoir besoin dans d'autre " +"circonstances d'activer un environnement virtuel. Des scripts installés dans " +"un environnement virtuel ont un **shebang** qui pointe vers l’interpréteur " +"Python de l'environnement virtuel. Cela veux dire que le script sera lancé " +"avec cet interpréteur peut importe la valeur de ``PATH``. Sur Windows, le " +"**shebang** est interprété si vous avez le Lanceur Python pour Windows " +"installé (Cela a été ajouté à Python 3.3 -- Voir :pep:`397` pour plus de " +"détails). De ce fait, double cliquer un script installé dans une fenêtre de " +"l'Explorateur Windows devrai lancer le script avec le bon interpréteur sans " +"avoir besoin de référencer son environnement virtuel dans ``PATH``." #: ../Doc/library/venv.rst:89 msgid "API" -msgstr "" +msgstr "API" #: ../Doc/library/venv.rst:93 msgid "" @@ -303,12 +379,18 @@ msgid "" "customize environment creation according to their needs, the :class:" "`EnvBuilder` class." msgstr "" +"La méthode haut niveau décrite au dessus utilise une API simple qui permet à " +"des créateurs d'environnements virtuels externes de personnaliser la " +"création d'environnements virtuels basés sur leurs besoins, la classe :class:" +"`EnvBuilder`." #: ../Doc/library/venv.rst:101 msgid "" "The :class:`EnvBuilder` class accepts the following keyword arguments on " "instantiation:" msgstr "" +"La classe :class:`EnvBuilder` accepte les arguments suivants lors de " +"l'instanciation :" #: ../Doc/library/venv.rst:104 msgid "" @@ -316,12 +398,17 @@ msgid "" "Python site-packages should be available to the environment (defaults to " "``False``)." msgstr "" +"``system_site_packages`` -- Une valeur booléenne qui indique que les site-" +"packages du système Python devraient être disponibles dans l'environnement " +"virtuel (par défaut à ``False``)." #: ../Doc/library/venv.rst:107 msgid "" "``clear`` -- a Boolean value which, if true, will delete the contents of any " "existing target directory, before creating the environment." msgstr "" +"``clear`` -- Une valeur booléenne qui, si vraie, supprimera le contenu de " +"n'importe quel dossier existant cible, avant de créer l'environnement." #: ../Doc/library/venv.rst:110 msgid "" @@ -336,6 +423,9 @@ msgid "" "environment with the running Python - for use when that Python has been " "upgraded in-place (defaults to ``False``)." msgstr "" +"``upgrade`` -- Une valeur booléenne qui, si vraie, mettra à jour un " +"environnement existant avec le Python lancé -- utilisé quand Python à été " +"mis a jour sur place (par défaut à ``False``)." #: ../Doc/library/venv.rst:118 msgid "" @@ -343,6 +433,9 @@ msgid "" "the virtual environment. This uses :mod:`ensurepip` with the ``--default-" "pip`` option." msgstr "" +"``with_pip`` -- Une valeur booléenne qui, si vraie, assure que pip est " +"installé dans l'environnement virtuel. Cela utilise :mod:`ensurepip` avec " +"l'option ``--default-pip``." #: ../Doc/library/venv.rst:122 msgid "" @@ -350,24 +443,30 @@ msgid "" "(defaults to ``None`` which means directory name of the environment would be " "used)." msgstr "" +"``prompt`` -- Une chaine utilisée après que l'environnement virtuel est " +"activé (par défaut à ``None`` ce qui veux dire qu'il utilisera le nom du " +"dossier de l'environnement)." #: ../Doc/library/venv.rst:126 ../Doc/library/venv.rst:234 msgid "Added the ``with_pip`` parameter" -msgstr "" +msgstr "Ajout du paramètre ``with_pip``" #: ../Doc/library/venv.rst:129 msgid "Added the ``prompt`` parameter" -msgstr "" +msgstr "Ajout du paramètre ``prompt``" #: ../Doc/library/venv.rst:133 msgid "" "Creators of third-party virtual environment tools will be free to use the " "provided ``EnvBuilder`` class as a base class." msgstr "" +"Les créateurs des outils de création d'environnement virtuel externes seront " +"libres d'utiliser la classe ``EnvBuilder`` en tant que classe de base." #: ../Doc/library/venv.rst:136 msgid "The returned env-builder is an object which has a method, ``create``:" msgstr "" +"Le **env-builder** retourné est un objet qui a une méthode, ``create`` :" #: ../Doc/library/venv.rst:140 msgid "" @@ -376,12 +475,18 @@ msgid "" "environment. The ``create`` method will either create the environment in " "the specified directory, or raise an appropriate exception." msgstr "" +"Cette méthode prends en argument obligatoire le chemin (absolu ou relatif " +"par rapport au dossier courant) du dossier cible qui doit contenir " +"l'environnement virtuel. La méthode ``create`` doit soit créer un " +"environnement dans le dossier spécifié, soit lever une exception." #: ../Doc/library/venv.rst:146 msgid "" "The ``create`` method of the ``EnvBuilder`` class illustrates the hooks " "available for subclass customization::" msgstr "" +"La méthode ``create`` de la classe ``EnvBuilder`` illustre les points " +"d'entrées disponibles pour la personnalisation de sous-classes ::" #: ../Doc/library/venv.rst:161 msgid "" @@ -389,6 +494,9 @@ msgid "" "`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` and :" "meth:`post_setup` can be overridden." msgstr "" +"Chacune des méthodes :meth:`ensure_directories`, :meth:" +"`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` et :meth:" +"`post_setup` peuvent être écrasés." #: ../Doc/library/venv.rst:167 msgid "" @@ -398,10 +506,15 @@ msgid "" "long as either ``clear`` or ``upgrade`` were specified to allow operating on " "an existing environment directory." msgstr "" +"Crée un dossier d'environnement et tous les dossiers nécessaires, et " +"retourne un objet contexte. C'est juste un conteneur pour des attributs " +"(comme des chemins), qui sera utilisé par d'autres méthodes. Ces dossiers " +"peuvent déjà exister. tant que ``clear`` ou ``upgrade`` ont été spécifiés " +"pour permettre de telles opérations dans un dossier d'environnement existant." #: ../Doc/library/venv.rst:175 msgid "Creates the ``pyvenv.cfg`` configuration file in the environment." -msgstr "" +msgstr "Crée le fichier de configuration ``pyenv.cfg`` dans l'environnement." #: ../Doc/library/venv.rst:179 msgid "" @@ -416,6 +529,8 @@ msgid "" "Installs activation scripts appropriate to the platform into the virtual " "environment." msgstr "" +"Installe les scripts d'activation appropriés à la plateforme dans " +"l'environnement virtuel." #: ../Doc/library/venv.rst:192 msgid "" @@ -423,6 +538,9 @@ msgid "" "to pre-install packages in the virtual environment or perform other post-" "creation steps." msgstr "" +"Une méthode qui n'est la que pour se faire surcharger dans des " +"implémentation externes pour pré installer des paquets dans l'environnement " +"virtuel ou pour exécuter des étapes post-création." #: ../Doc/library/venv.rst:196 msgid "" @@ -430,6 +548,10 @@ msgid "" "called from :meth:`setup_scripts` or :meth:`post_setup` in subclasses to " "assist in installing custom scripts into the virtual environment." msgstr "" +"De plus, :class:`EnvBuilder` propose cette méthode utilitaire qui peut être " +"appelée de :meth:`setup_scripts` ou :meth:`post_setup` dans des sous classes " +"pour assister dans l'installation de scripts customs dans l'environnement " +"virtuel." #: ../Doc/library/venv.rst:202 msgid "" @@ -439,56 +561,75 @@ msgid "" "corresponding to :data:`os.name` are copied after some text replacement of " "placeholders:" msgstr "" +"*path* corresponds au chemin vers le dossier qui contiens les sous dossiers " +"\"**common**\", \"**posix**\", \"**nt**\", chacun contenant des scripts " +"destinés pour le dossier \"**bin**\" dans l'environnement. Le contenu du " +"dossier \"**common**\" et le dossier correspondant à :data:`os.name` sont " +"copiés après quelque remplacement de texte temporaires :" #: ../Doc/library/venv.rst:208 msgid "" "``__VENV_DIR__`` is replaced with the absolute path of the environment " "directory." msgstr "" +"``__VENV_DIR__`` est remplacé avec le chemin absolu du dossier de " +"l'environnement." #: ../Doc/library/venv.rst:211 msgid "" "``__VENV_NAME__`` is replaced with the environment name (final path segment " "of environment directory)." msgstr "" +"``__VENV_NAME__`` est remplacé avec le nom de l'environnement (le dernier " +"segment du chemin vers le dossier de l'environnement)." #: ../Doc/library/venv.rst:214 msgid "" "``__VENV_PROMPT__`` is replaced with the prompt (the environment name " "surrounded by parentheses and with a following space)" msgstr "" +"``__VENV_PROMPT__`` est remplacé par le prompt (nom de l'environnement " +"entouré de parenthèses et avec un espace le suivant)." #: ../Doc/library/venv.rst:217 msgid "" "``__VENV_BIN_NAME__`` is replaced with the name of the bin directory (either " "``bin`` or ``Scripts``)." msgstr "" +"``__VENV_BIN_NAME__`` est remplacé par le nom du dossier **bin** (soit " +"``bin`` soit ``Scripts``)." #: ../Doc/library/venv.rst:220 msgid "" "``__VENV_PYTHON__`` is replaced with the absolute path of the environment's " "executable." msgstr "" +"``__VENV_PYTHON__`` est remplacé avec le chemin absolu de l’exécutable de " +"l'environnement." #: ../Doc/library/venv.rst:223 msgid "" "The directories are allowed to exist (for when an existing environment is " "being upgraded)." msgstr "" +"Les dossiers peuvent exister (pour quand un environnement existant est mis à " +"jour)." #: ../Doc/library/venv.rst:226 msgid "There is also a module-level convenience function:" -msgstr "" +msgstr "Il y a aussi une fonction pratique au niveau du module :" #: ../Doc/library/venv.rst:231 msgid "" "Create an :class:`EnvBuilder` with the given keyword arguments, and call " "its :meth:`~EnvBuilder.create` method with the *env_dir* argument." msgstr "" +"Crée une :class:`EnvBuilder` avec les arguments donnés, et appelle sa " +"méthode :meth:`~EnvBuilder.create` avec l'argument *env_dir*." #: ../Doc/library/venv.rst:238 msgid "An example of extending ``EnvBuilder``" -msgstr "" +msgstr "Un exemple d'extension de ``EnvBuilder``" #: ../Doc/library/venv.rst:240 msgid "" @@ -496,6 +637,9 @@ msgid "" "a subclass which installs setuptools and pip into a created virtual " "environment::" msgstr "" +"Le script qui suis montre comment étendre :class:`EnvBuilder` en " +"implémentant une sous-classe qui installe **setuptools** et **pip** dans un " +"environnement créé ::" #: ../Doc/library/venv.rst:459 msgid "" diff --git a/library/warnings.po b/library/warnings.po index 3b04c3d5e..1e36578fd 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/warnings.rst:2 msgid ":mod:`warnings` --- Warning control" -msgstr "" +msgstr ":mod:`warnings` --- Contrôle des alertes" #: ../Doc/library/warnings.rst:7 msgid "**Source code:** :source:`Lib/warnings.py`" @@ -33,6 +33,11 @@ msgid "" "program. For example, one might want to issue a warning when a program uses " "an obsolete module." msgstr "" +"Les messages d'avertissement sont généralement émis dans les situations où " +"il est utile d'alerter l'utilisateur d'un problème dans un programme, mais " +"qu'il n'est pas justifié de lever une exception et de le terminer. Par " +"exemple, on peut vouloir émettre un avertissement lorsqu'un programme " +"utilise un module obsolète." #: ../Doc/library/warnings.rst:18 msgid "" @@ -40,6 +45,9 @@ msgid "" "defined in this module. (C programmers use :c:func:`PyErr_WarnEx`; see :ref:" "`exceptionhandling` for details)." msgstr "" +"Les développeurs Python émettent des avertissements en appelant la fonction :" +"func:`warn` définie dans ce module. (Les développeurs C utilisent :c:func:" +"`PyErr_WarnEx` ; voir :ref:`exceptionhandling` pour plus d'informations)." #: ../Doc/library/warnings.rst:22 msgid "" @@ -50,6 +58,12 @@ msgid "" "source location where it is issued. Repetitions of a particular warning for " "the same source location are typically suppressed." msgstr "" +"Les messages d'avertissement sont normalement écrits sur ``sys.stderr``, " +"mais leurs effets peuvent être modifiés, il est possible d'ignorer tous les " +"avertissements ou au contraire les transformer en exceptions. L'effet des " +"avertissements peut varier en fonction de la catégorie d'avertissement (voir " +"ci-dessous), de son texte et d'où il est émis. Les répétitions d'un même " +"avertissement d'une même source sont généralement ignorés." #: ../Doc/library/warnings.rst:29 msgid "" @@ -58,6 +72,10 @@ msgid "" "next, if a message is to be issued, it is formatted and printed using a user-" "settable hook." msgstr "" +"La gestion des avertissements se fait en deux étapes : premièrement, chaque " +"fois qu'un avertissement est émis, le module détermine si un message doit " +"être émis ou non ; ensuite, si un message doit être émis, il est formaté et " +"affiché en utilisant une fonction qui peut être définie par l'utilisateur." #: ../Doc/library/warnings.rst:33 msgid "" @@ -66,6 +84,10 @@ msgid "" "be added to the filter by calling :func:`filterwarnings` and reset to its " "default state by calling :func:`resetwarnings`." msgstr "" +"Un filtre (une séquence de règles) est utilisé pour décider si un message " +"d'avertissement doit être émis ou non. Des règles peuvent être ajoutées au " +"filtre en appelant :func:`filterwarnings` et remises à leur état par défaut " +"en appelant :func:`resetwarnings`." #: ../Doc/library/warnings.rst:38 msgid "" @@ -74,16 +96,22 @@ msgid "" "the message by calling :func:`formatwarning`, which is also available for " "use by custom implementations." msgstr "" +"L'affichage des messages d'avertissement se fait en appelant la fonction :" +"func:`showwarning`, qui peut être redéfinie ; l'implémentation par défaut " +"formate le message en appelant :func:`formatwarning`, qui peut également " +"être réutilisée par une implémentation personnalisée." #: ../Doc/library/warnings.rst:44 msgid "" ":func:`logging.captureWarnings` allows you to handle all warnings with the " "standard logging infrastructure." msgstr "" +":func:`logging.captureWarnings` vous permet de gérer tous les avertissements " +"avec l'infrastructure de journalisation standard." #: ../Doc/library/warnings.rst:51 msgid "Warning Categories" -msgstr "" +msgstr "Catégories d'avertissement" #: ../Doc/library/warnings.rst:53 msgid "" @@ -94,7 +122,7 @@ msgstr "" #: ../Doc/library/warnings.rst:60 msgid "Class" -msgstr "" +msgstr "Classe" #: ../Doc/library/warnings.rst:60 msgid "Description" @@ -109,6 +137,8 @@ msgid "" "This is the base class of all warning category classes. It is a subclass " "of :exc:`Exception`." msgstr "" +"Il s'agit de la classe de base de toutes les classes de catégories " +"d'avertissement. C'est une sous-classe de :exc:`Exception`." #: ../Doc/library/warnings.rst:66 msgid ":exc:`UserWarning`" @@ -116,7 +146,7 @@ msgstr ":exc:`UserWarning`" #: ../Doc/library/warnings.rst:66 msgid "The default category for :func:`warn`." -msgstr "" +msgstr "Catégorie par défaut pour :func:`warn`." #: ../Doc/library/warnings.rst:68 msgid ":exc:`DeprecationWarning`" @@ -134,6 +164,7 @@ msgstr ":exc:`SyntaxWarning`" #: ../Doc/library/warnings.rst:71 msgid "Base category for warnings about dubious syntactic features." msgstr "" +"Catégorie de base pour les avertissements concernant les syntaxes douteuses." #: ../Doc/library/warnings.rst:74 msgid ":exc:`RuntimeWarning`" @@ -142,6 +173,8 @@ msgstr ":exc:`RuntimeWarning`" #: ../Doc/library/warnings.rst:74 msgid "Base category for warnings about dubious runtime features." msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités " +"douteuses à l'exécution." #: ../Doc/library/warnings.rst:77 msgid ":exc:`FutureWarning`" @@ -162,6 +195,8 @@ msgid "" "Base category for warnings about features that will be deprecated in the " "future (ignored by default)." msgstr "" +"Catégorie de base pour les avertissements concernant les fonctionnalités qui " +"seront obsolètes dans le futur (ignorée par défaut)." #: ../Doc/library/warnings.rst:84 msgid ":exc:`ImportWarning`" @@ -172,6 +207,8 @@ msgid "" "Base category for warnings triggered during the process of importing a " "module (ignored by default)." msgstr "" +"Catégorie de base pour les avertissements déclenchés lors de l'importation " +"d'un module (ignoré par défaut)." #: ../Doc/library/warnings.rst:88 msgid ":exc:`UnicodeWarning`" @@ -179,7 +216,7 @@ msgstr ":exc:`UnicodeWarning`" #: ../Doc/library/warnings.rst:88 msgid "Base category for warnings related to Unicode." -msgstr "" +msgstr "Catégorie de base pour les avertissements relatifs à Unicode." #: ../Doc/library/warnings.rst:91 msgid ":exc:`BytesWarning`" @@ -189,6 +226,8 @@ msgstr ":exc:`BytesWarning`" msgid "" "Base category for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" +"Catégorie de base pour les avertissements relatifs à :class:`bytes` et :" +"class:`bytearray`." #: ../Doc/library/warnings.rst:94 msgid ":exc:`ResourceWarning`" @@ -197,6 +236,8 @@ msgstr ":exc:`ResourceWarning`" #: ../Doc/library/warnings.rst:94 msgid "Base category for warnings related to resource usage." msgstr "" +"Catégorie de base pour les avertissements relatifs à l'utilisation des " +"ressources." #: ../Doc/library/warnings.rst:99 msgid "" @@ -210,16 +251,22 @@ msgid "" "standard warning categories. A warning category must always be a subclass " "of the :exc:`Warning` class." msgstr "" +"Le code utilisateur peut définir des catégories d'avertissement " +"supplémentaires en héritant l'une des catégories d'avertissement standard. " +"Une catégorie d'avertissement doit toujours hériter de la classe :exc:" +"`Warning`." #: ../Doc/library/warnings.rst:110 msgid "The Warnings Filter" -msgstr "" +msgstr "Le filtre des avertissements" #: ../Doc/library/warnings.rst:112 msgid "" "The warnings filter controls whether warnings are ignored, displayed, or " "turned into errors (raising an exception)." msgstr "" +"Le filtre des avertissements contrôle si les avertissements sont ignorés, " +"affichés ou transformés en erreurs (ce qui lève une exception)." #: ../Doc/library/warnings.rst:115 msgid "" @@ -232,7 +279,7 @@ msgstr "" #: ../Doc/library/warnings.rst:121 msgid "*action* is one of the following strings:" -msgstr "" +msgstr "*action* est l'une des chaînes de caractères suivantes :" #: ../Doc/library/warnings.rst:124 msgid "Value" @@ -240,7 +287,7 @@ msgstr "Valeur" #: ../Doc/library/warnings.rst:124 msgid "Disposition" -msgstr "" +msgstr "Action" #: ../Doc/library/warnings.rst:126 msgid "``\"error\"``" @@ -248,7 +295,7 @@ msgstr "``\"error\"``" #: ../Doc/library/warnings.rst:126 msgid "turn matching warnings into exceptions" -msgstr "" +msgstr "transforme les avertissements correspondants en exceptions" #: ../Doc/library/warnings.rst:128 msgid "``\"ignore\"``" @@ -256,7 +303,7 @@ msgstr "``\"ignore\"``" #: ../Doc/library/warnings.rst:128 msgid "never print matching warnings" -msgstr "" +msgstr "ignore les avertissements correspondants" #: ../Doc/library/warnings.rst:130 msgid "``\"always\"``" @@ -264,7 +311,7 @@ msgstr "``\"always\"``" #: ../Doc/library/warnings.rst:130 msgid "always print matching warnings" -msgstr "" +msgstr "affiche toujours les avertissements correspondants" #: ../Doc/library/warnings.rst:132 msgid "``\"default\"``" @@ -294,6 +341,8 @@ msgstr "``\"once\"``" msgid "" "print only the first occurrence of matching warnings, regardless of location" msgstr "" +"n'affiche que la première occurrence des avertissements correspondants, quel " +"que soit l'endroit où ils se trouvent" #: ../Doc/library/warnings.rst:144 msgid "" @@ -301,30 +350,43 @@ msgid "" "warning message must match. The expression is compiled to always be case-" "insensitive." msgstr "" +"*message* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le début du message d'avertissement doit correspondre. " +"L'expression est compilée pour être toujours insensible à la casse." #: ../Doc/library/warnings.rst:148 msgid "" "*category* is a class (a subclass of :exc:`Warning`) of which the warning " "category must be a subclass in order to match." msgstr "" +"*category* est une classe (une sous-classe de :exc:`Warning`) dont la " +"catégorie d'avertissement doit être une sous-classe afin de correspondre." #: ../Doc/library/warnings.rst:151 msgid "" "*module* is a string containing a regular expression that the module name " "must match. The expression is compiled to be case-sensitive." msgstr "" +"*module* est une chaîne de caractères contenant une expression régulière " +"avec laquelle le nom du module doit correspondre. L'expression est compilée " +"pour être sensible à la casse." #: ../Doc/library/warnings.rst:154 msgid "" "*lineno* is an integer that the line number where the warning occurred must " "match, or ``0`` to match all line numbers." msgstr "" +"*lineno* est le numéro de ligne d'où l'avertissement doit provenir, ou ``0`` " +"pour correspondre à tous les numéros de ligne." #: ../Doc/library/warnings.rst:157 msgid "" "Since the :exc:`Warning` class is derived from the built-in :exc:`Exception` " "class, to turn a warning into an error we simply raise ``category(message)``." msgstr "" +"Puisque que la classe :exc:`Warning` hérite de la classe :exc:`Exception`, " +"pour transformer un avertissement en erreur, il suffit de lever " +"``category(message)``." #: ../Doc/library/warnings.rst:160 msgid "" @@ -369,10 +431,12 @@ msgid "" ":exc:`DeprecationWarning` is now ignored by default in addition to :exc:" "`PendingDeprecationWarning`." msgstr "" +":exc:`DeprecationWarning` est maintenant ignoré par défaut en plus de :exc:" +"`PendingDeprecationWarning`." #: ../Doc/library/warnings.rst:191 msgid "Temporarily Suppressing Warnings" -msgstr "" +msgstr "Suppression temporaire des avertissements" #: ../Doc/library/warnings.rst:193 msgid "" @@ -390,10 +454,18 @@ msgid "" "threaded application. If two or more threads use the :class:`catch_warnings` " "context manager at the same time, the behavior is undefined." msgstr "" +"Dans le gestionnaire de contexte, tous les avertissements sont simplement " +"ignorés. Ceci vous permet d'utiliser du code déclaré obsolète sans voir " +"l'avertissement tout en ne supprimant pas l'avertissement pour un autre code " +"qui pourrait ne pas être conscient de son utilisation de code déprécié. " +"Remarque : ceci ne peut être garanti que dans une application utilisant un " +"seul fil d'exécution. Si deux ou plusieurs *threads* utilisent le " +"gestionnaire de contexte :class:`catch_warnings` en même temps, le " +"comportement est indéfini." #: ../Doc/library/warnings.rst:218 msgid "Testing Warnings" -msgstr "" +msgstr "Tester les avertissements" #: ../Doc/library/warnings.rst:220 msgid "" @@ -402,6 +474,10 @@ msgid "" "facilitate your testing. For instance, do the following to capture all " "raised warnings to check::" msgstr "" +"Pour tester les avertissements générés par le code, utilisez le gestionnaire " +"de contexte :class:`catch_warnings`. Avec lui, vous pouvez temporairement " +"modifier le filtre d'avertissements pour faciliter votre test. Par exemple, " +"procédez comme suit pour capturer tous les avertissements levés à vérifier ::" #: ../Doc/library/warnings.rst:240 msgid "" @@ -411,6 +487,12 @@ msgid "" "filters are set the warning will not be seen again unless the warnings " "registry related to the warning has been cleared." msgstr "" +"Vous pouvez aussi faire en sorte que tous les avertissements soient des " +"exceptions en utilisant ``error`` au lieu de ``always``. Il faut savoir que " +"si un avertissement a déjà été émis à cause d'une règle ``once`` ou " +"``default``, quel que soit le filtre activé, l'avertissement ne sera pas " +"revu à moins que le registre des avertissements lié à l'avertissement ait " +"été vidé." #: ../Doc/library/warnings.rst:246 msgid "" @@ -422,6 +504,15 @@ msgid "" "application. If two or more threads use the :class:`catch_warnings` context " "manager at the same time, the behavior is undefined." msgstr "" +"A sa sortie, le gestionnaire de contexte restaure le filtre des " +"avertissements dans l'état où il était au démarrage du contexte. Cela " +"empêche les tests de changer le filtre d'avertissements de manière " +"inattendue entre les tests et d'aboutir à des résultats de test " +"indéterminés. La fonction :func:`showwarning` du module est également " +"restaurée à sa valeur originale. Remarque : ceci ne peut être garanti que " +"dans une application *mono-threadées*. Si deux ou plusieurs fils d'exécution " +"utilisent le gestionnaire de contexte :class:`catch_warnings` en même temps, " +"le comportement est indéfini." #: ../Doc/library/warnings.rst:254 msgid "" @@ -432,6 +523,14 @@ msgid "" "continues to increase after each operation, or else delete the previous " "entries from the warnings list before each new operation)." msgstr "" +"Lorsque vous testez plusieurs opérations qui provoquent le même type " +"d'avertissement, il est important de les tester d'une manière qui confirme " +"que chaque opération provoque un nouvel avertissement (par exemple, " +"définissez les avertissements comme exceptions et vérifiez que les " +"opérations provoquent des exceptions, vérifiez que la longueur de la liste " +"des avertissements continue à augmenter après chaque opération, ou bien " +"supprimez les entrées précédentes de la liste des avertissements avant " +"chaque nouvelle opération)." #: ../Doc/library/warnings.rst:265 msgid "Updating Code For New Versions of Python" @@ -483,7 +582,7 @@ msgstr "" #: ../Doc/library/warnings.rst:301 msgid "Available Functions" -msgstr "" +msgstr "Fonctions disponibles" #: ../Doc/library/warnings.rst:306 msgid "" @@ -497,6 +596,15 @@ msgid "" "The *stacklevel* argument can be used by wrapper functions written in " "Python, like this::" msgstr "" +"Émet, ignore, ou transforme en exception un avertissement. L'argument " +"*category*, s'il est donné, doit être une classe de catégorie " +"d'avertissement (voir ci-dessus) ; et vaut par défaut :exc:`UserWarning`. " +"Aussi *message* peut être une instance de :exc:`Warning', auquel cas " +"*category* sera ignoré et ``message.__class__`` sera utilisé. Dans ce cas, " +"le texte du message sera ``str(message)``. Cette fonction lève une exception " +"si cet avertissement particulier émis est transformé en erreur par le filtre " +"des avertissements, voir ci-dessus. L'argument *stacklevel* peut être " +"utilisé par les fonctions *wrapper* écrites en Python, comme ceci ::" #: ../Doc/library/warnings.rst:318 msgid "" @@ -504,16 +612,21 @@ msgid "" "the source of :func:`deprecation` itself (since the latter would defeat the " "purpose of the warning message)." msgstr "" +"Fait en sorte que l'avertissement se réfère à l'appelant de :func:" +"`deprecation` plutôt qu'à la source de :func:`deprecation` elle-même " +"(puisque celle-ci irait à l'encontre du but du message d'avertissement)." #: ../Doc/library/warnings.rst:322 ../Doc/library/warnings.rst:345 msgid "" "*source*, if supplied, is the destroyed object which emitted a :exc:" "`ResourceWarning`." msgstr "" +"*source*, s'il est fourni, est l'objet détruit qui a émis un :exc:" +"`ResourceWarning`." #: ../Doc/library/warnings.rst:325 msgid "Added *source* parameter." -msgstr "" +msgstr "Ajout du paramètre *source*." #: ../Doc/library/warnings.rst:331 msgid "" @@ -526,6 +639,15 @@ msgid "" "of :exc:`Warning` or *message* may be a :exc:`Warning` instance, in which " "case *category* will be ignored." msgstr "" +"Il s'agit d'une interface de bas niveau pour la fonctionnalité de :func:" +"`warn`, en passant explicitement le message, la catégorie, le nom de fichier " +"et le numéro de ligne, et éventuellement le nom du module et le registre " +"(qui devrait être le dictionnaire ``__warningregistry__`` du module). Le " +"nom de module par défaut est le nom de fichier sans ``.py`` ; si aucun " +"registre n'est passé, l'avertissement n'est jamais supprimé. *message* doit " +"être une chaîne de caractères et *category* une sous-classe de :exc:" +"`Warning` ou *message* peut être une instance de :exc:`Warning`, auquel cas " +"*category* sera ignoré." #: ../Doc/library/warnings.rst:340 msgid "" @@ -534,10 +656,14 @@ msgid "" "displaying source for modules found in zipfiles or other non-filesystem " "import sources)." msgstr "" +"*module_globals*, s'il est fourni, doit être l'espace de nommage global " +"utilisé par le code pour lequel l'avertissement est émis. (Cet argument est " +"utilisé pour afficher les sources des modules trouvés dans les fichiers zip " +"ou d'autres sources d'importation hors du système de fichiers)." #: ../Doc/library/warnings.rst:348 msgid "Add the *source* parameter." -msgstr "" +msgstr "Ajout du paramètre *source*." #: ../Doc/library/warnings.rst:354 msgid "" @@ -549,6 +675,13 @@ msgid "" "message; if *line* is not supplied, :func:`showwarning` will try to read the " "line specified by *filename* and *lineno*." msgstr "" +"Écrit un avertissement dans un fichier. L'implémentation par défaut appelle " +"``format warning(message, category, filename, lineno, line)``et écrit la " +"chaîne résultante dans *file*, qui par défaut est ``sys.stderr``. Vous " +"pouvez remplacer cette fonction par n'importe quel appelable en l'affectant " +"à ``warnings.showwarning``. *line* est une ligne de code source à inclure " +"dans le message d'avertissement ; si *line* n'est pas fourni, :func:`show " +"warning` essaiera de lire la ligne spécifiée par *filename* et *lineno*." #: ../Doc/library/warnings.rst:365 msgid "" @@ -558,6 +691,11 @@ msgid "" "`formatwarning` will try to read the line specified by *filename* and " "*lineno*." msgstr "" +"Formate un avertissement de la manière standard. Ceci renvoie une chaîne " +"pouvant contenir des retours à la ligne se termine par un retour à la " +"ligne. *line* est une ligne de code source à inclure dans le message " +"d'avertissement ; si *line* n'est pas fourni, :func:`formatwarning` essaiera " +"de lire la ligne spécifiée par *filename* et *lineno*." #: ../Doc/library/warnings.rst:374 msgid "" @@ -570,6 +708,13 @@ msgid "" "particular warning. Omitted arguments default to a value that matches " "everything." msgstr "" +"Insère une entrée dans la liste de :ref:`warning filter specifications " +"`. L'entrée est insérée à l'avant par défaut ; si *append* " +"est vrai, elle est insérée à la fin. Il vérifie le type des arguments, " +"compile les expressions régulières *message* et *module*, et les insère sous " +"forme de tuple dans la liste des filtres d'avertissements. Les entrées plus " +"proches du début de la liste ont priorité sur les entrées plus loin dans la " +"liste. Les arguments omis ont par défaut une valeur qui correspond à tout." #: ../Doc/library/warnings.rst:386 msgid "" @@ -579,6 +724,12 @@ msgid "" "inserted always matches any message in any module as long as the category " "and line number match." msgstr "" +"Insère une entrée simple dans la liste de :ref:`spécifications du filtre " +"d'avertissements `. La signification des paramètres de " +"fonction est la même que pour :func:`filterwarnings`, mais les expressions " +"régulières ne sont pas nécessaires car le filtre inséré correspond toujours " +"à n'importe quel message dans n'importe quel module tant que la catégorie et " +"le numéro de ligne correspondent." #: ../Doc/library/warnings.rst:395 msgid "" @@ -586,10 +737,14 @@ msgid "" "to :func:`filterwarnings`, including that of the :option:`-W` command line " "options and calls to :func:`simplefilter`." msgstr "" +"Réinitialise le filtre des avertissements. Ceci supprime l'effet de tous " +"les appels précédents à :func:`filterwarnings`, y compris celui de l'option :" +"option:`-W` des options de ligne de commande et des appels à :func:" +"`simplefilter`." #: ../Doc/library/warnings.rst:401 msgid "Available Context Managers" -msgstr "" +msgstr "Gestionnaires de contexte disponibles" #: ../Doc/library/warnings.rst:405 msgid "" @@ -601,6 +756,14 @@ msgid "" "(which also suppresses output to ``sys.stdout``). Each object in the list " "has attributes with the same names as the arguments to :func:`showwarning`." msgstr "" +"Un gestionnaire de contexte qui copie et, à la sortie, restaure le filtre " +"des avertissements et la fonction :func:`showwarning`. Si l'argument " +"*record* est :const:`False` (par défaut), le gestionnaire de contexte " +"retourne :class:`None` en entrant. Si *record* est :const:`True`, une liste " +"est renvoyée qui est progressivement remplie d'objets comme vus par une " +"fonction custom :func:`showwarning' (qui supprime également la sortie vers " +"``sys.stdout``). Chaque objet de la liste a des attributs avec les mêmes " +"noms que les arguments de :func:`showwarning`." #: ../Doc/library/warnings.rst:414 msgid "" @@ -608,6 +771,10 @@ msgid "" "returned when you import :mod:`warnings` whose filter will be protected. " "This argument exists primarily for testing the :mod:`warnings` module itself." msgstr "" +"L'argument *module* prend un module qui sera utilisé à la place du module " +"renvoyé lors de l'importation :mod:`warnings` dont le filtre sera protégé. " +"Cet argument existe principalement pour tester le module :mod:`warnings` lui-" +"même." #: ../Doc/library/warnings.rst:421 msgid "" @@ -616,3 +783,8 @@ msgid "" "filter specifications. This means the context manager is modifying global " "state and therefore is not thread-safe." msgstr "" +"Le gestionnaire :class:`catch_warnings` fonctionne en remplaçant puis en " +"restaurant plus tard la fonction :func:`showwarning` du module et la liste " +"interne des spécifications du filtre. Cela signifie que le gestionnaire de " +"contexte modifie l'état global et n'est donc pas prévisible avec plusieurs " +"fils d'exécution." diff --git a/library/weakref.po b/library/weakref.po index 300c3504f..da70398d1 100644 --- a/library/weakref.po +++ b/library/weakref.po @@ -397,7 +397,7 @@ msgstr "" #: ../Doc/library/weakref.rst:341 msgid "Weak Reference Objects" -msgstr "" +msgstr "Objets à références faibles" #: ../Doc/library/weakref.rst:343 msgid "" diff --git a/library/webbrowser.po b/library/webbrowser.po index 46601ab4c..7c205923b 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -78,7 +78,7 @@ msgstr "" #: ../Doc/library/webbrowser.rst:51 msgid "The following functions are defined:" -msgstr "" +msgstr "Les fonctions suivantes sont définies :" #: ../Doc/library/webbrowser.rst:56 msgid "" diff --git a/library/winreg.po b/library/winreg.po index fec8f1bd6..2f29bff1e 100644 --- a/library/winreg.po +++ b/library/winreg.po @@ -224,7 +224,7 @@ msgstr "" #: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:317 #: ../Doc/library/winreg.rst:361 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/winreg.rst:210 ../Doc/library/winreg.rst:317 #: ../Doc/library/winreg.rst:361 diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index acd15802b..87a198dec 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -307,7 +307,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:408 msgid "Syntax" -msgstr "" +msgstr "Syntaxe" #: ../Doc/library/xml.etree.elementtree.rst:408 msgid "Meaning" @@ -423,7 +423,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:456 msgid "Reference" -msgstr "" +msgstr "Référence" #: ../Doc/library/xml.etree.elementtree.rst:461 msgid "Functions" @@ -585,7 +585,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:615 #: ../Doc/library/xml.etree.elementtree.rst:942 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "Le paramètre *short_empty_elements*." #: ../Doc/library/xml.etree.elementtree.rst:603 msgid "" diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index d08ffc77f..dc1edfdcd 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/xml.sax.utils.rst:2 msgid ":mod:`xml.sax.saxutils` --- SAX Utilities" -msgstr "" +msgstr ":mod:`xml.sax.saxutils` — Utilitaires SAX" #: ../Doc/library/xml.sax.utils.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/saxutils.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/xml/sax/saxutils.py`" #: ../Doc/library/xml.sax.utils.rst:14 msgid "" @@ -31,10 +31,15 @@ msgid "" "functions that are commonly useful when creating SAX applications, either in " "direct use, or as base classes." msgstr "" +"Le module :mod:`xml.sax.saxutils` contient des classes et fonctions qui " +"sont fréquemment utiles en créant des applications SAX, soit en utilisation " +"directe, soit en classes de base." #: ../Doc/library/xml.sax.utils.rst:21 msgid "Escape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" +"Échappe ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères de " +"données." #: ../Doc/library/xml.sax.utils.rst:23 msgid "" @@ -43,10 +48,17 @@ msgid "" "will be replaced with its corresponding value. The characters ``'&'``, " "``'<'`` and ``'>'`` are always escaped, even if *entities* is provided." msgstr "" +"Vous pouvez échapper d'autres chaines de caractères de données en passant un " +"dictionnaire au paramètre optionnel *entities*. Les clés et valeurs doivent " +"toutes être des chaines de caractères ; chaque clé sera remplacée par sa " +"valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` sont " +"toujours échappés même si *entities* est donné en paramètre." #: ../Doc/library/xml.sax.utils.rst:31 msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" +"*Parse* ``'&'``, ``'<'``, et ``'>'`` dans une chaine de caractères " +"de données." #: ../Doc/library/xml.sax.utils.rst:33 msgid "" @@ -56,6 +68,11 @@ msgid "" "``'<'``, and ``'>'`` are always unescaped, even if *entities* is " "provided." msgstr "" +"Vous pouvez dé-échapper d'autres chaines de caractères de données en passant " +"un dictionnaire au paramètre optionnel *entities*. Les clés et valeurs " +"doivent toutes être des chaines de caractères ; chaque clé sera remplacée " +"par sa valeur correspondante. Les caractères ``'&'``, ``'<'`` et ``'>'`` " +"sont toujours dé-échappés même si *entities* est donné en paramètre." #: ../Doc/library/xml.sax.utils.rst:41 msgid "" @@ -68,12 +85,23 @@ msgid "" "*data* will be wrapped in double-quotes. The resulting string can be used " "directly as an attribute value::" msgstr "" +"Similaire à :func:`escape`, mais prépare aussi *data* pour être utilisé " +"comme une valeur d'attribut. La valeur renvoyée est une version entre " +"guillemets de *data* avec tous les remplacements supplémentaires " +"nécessaires. :func:`quoteattr` va sélectionner un caractère guillemet basé " +"sur le contenu de *data*, en essayant d’éviter d'encoder tous les caractères " +"guillemets dans la chaine de caractères. Si les caractères guillemet simple " +"et guillemets sont déjà dans *data*, les caractères guillemets simples " +"seront encodés et *data* sera entouré de guillemets. La chaine de caractères " +"résultante pourra être utilisée en tant que valeur d'attribut ::" #: ../Doc/library/xml.sax.utils.rst:53 msgid "" "This function is useful when generating attribute values for HTML or any " "SGML using the reference concrete syntax." msgstr "" +"Cette fonction est utile quand vous générez des valeurs d'attributs pour du " +"HTML ou n'importe quel SGML en utilisant la syntaxe concrète de référence." #: ../Doc/library/xml.sax.utils.rst:59 msgid "" @@ -87,10 +115,20 @@ msgid "" "emitted as a pair of start/end tags, if set to ``True`` they are emitted as " "a single self-closed tag." msgstr "" +"Cette classe implémente l'interface :class:`~xml.sax.handler.ContentHandler` " +"en écrivant les événements SAX dans un document XML. En d'autres termes, " +"utiliser un :class:`XMLGenerator` en tant que gestionnaire de contenu " +"reproduira le document original qui était analysé. *out* devrait être un " +"objet de type fichier qui est par défaut *sys.stdout*. *encoding* est " +"l'encodage du flux de sortie qui est par défaut ``'iso-8859-1'``. " +"*short_empty_elements* contrôle le formatage des éléments qui ne contiennent " +"rien : si ``False`` (par défaut), ils sont émis comme une paire de balises " +"(début, fin). Si la valeur est ``True``, ils sont émis comme une balise " +"seule auto-fermante." #: ../Doc/library/xml.sax.utils.rst:69 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "Le paramètre *short_empty_elements*." #: ../Doc/library/xml.sax.utils.rst:75 msgid "" @@ -100,6 +138,12 @@ msgid "" "unmodified, but subclasses can override specific methods to modify the event " "stream or the configuration requests as they pass through." msgstr "" +"Cette classe est faite pour être entre :class:`~xml.sax.xmlreader.XMLReader` " +"et le gestionnaire des événements de l'application client. Par défaut, elle " +"ne fait rien mais passe les requêtes au lecteur et les événements au " +"gestionnaire sans les modifier, mais des sous-classes peuvent surcharger des " +"méthodes spécifiques pour modifier le flux d’événements ou la configuration " +"des requêtes à leur passage." #: ../Doc/library/xml.sax.utils.rst:85 msgid "" @@ -110,3 +154,9 @@ msgid "" "function to implement the polymorphic *source* argument to their :meth:" "`parse` method." msgstr "" +"Cette fonction prend en entrée une source et une URL de base optionnelle et " +"retourne un objet complétement résolue :class:`~xml.sax.xmlreader." +"InputSource` prêt pour être lu. La source d'entrée peut être donnée comme " +"une chaine de caractère, un objet type fichier, ou un objet :class:`~xml.sax." +"xmlreader.InputSource` ; Les analyseurs utiliseront cette fonction pour " +"gérer le polymorphisme de l'argument *source* à leur méthode :meth:`parse`." diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 138204735..3b804d0e0 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -148,7 +148,7 @@ msgstr "" #: ../Doc/library/xmlrpc.client.rst:99 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" #: ../Doc/library/xmlrpc.client.rst:101 msgid "``array``" diff --git a/library/zipapp.po b/library/zipapp.po index 76770a147..69a59716e 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -47,7 +47,7 @@ msgstr "" #: ../Doc/library/zipapp.rst:40 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/zipapp.rst:42 msgid "" diff --git a/library/zipfile.po b/library/zipfile.po index 2d7da2010..e00eaf646 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/zipfile.rst:2 msgid ":mod:`zipfile` --- Work with ZIP archives" -msgstr "" +msgstr ":mod:`zipfile` — Travailler avec des archives ZIP" #: ../Doc/library/zipfile.rst:10 msgid "**Source code:** :source:`Lib/zipfile.py`" @@ -32,6 +32,11 @@ msgid "" "Any advanced use of this module will require an understanding of the format, " "as defined in `PKZIP Application Note`_." msgstr "" +"Le format de fichier ZIP est une archive et un standard de compression " +"couramment utilisés. Ce module fournit des outils pour créer, écrire, " +"ajouter des données à et lister un fichier ZIP. L'utilisation avancée de ce " +"module requiert une certaine compréhension du format, comme défini dans " +"`PKZIP Application Note`_." #: ../Doc/library/zipfile.rst:19 msgid "" @@ -41,6 +46,12 @@ msgid "" "archives, but it currently cannot create an encrypted file. Decryption is " "extremely slow as it is implemented in native Python rather than C." msgstr "" +"Ce module ne gère pas pour l'instant les fichiers ZIP multi-disque. Il gère " +"les fichiers ZIP qui utilisent les extensions ZIP64 (c'est-à-dire des " +"fichiers d'une taille supérieure à 4 Go). Il gère le chiffrement d'archives " +"ZIP chiffrées, mais il ne peut pas pour l'instant créer de fichier chiffré. " +"Le déchiffrement est extrêmement lent car il est implémenté uniquement en " +"Python plutôt qu'en C." #: ../Doc/library/zipfile.rst:26 msgid "The module defines the following items:" @@ -48,28 +59,34 @@ msgstr "Le module définit les éléments suivants :" #: ../Doc/library/zipfile.rst:30 msgid "The error raised for bad ZIP files." -msgstr "" +msgstr "Erreur levée en cas de fichier ZIP non valide." #: ../Doc/library/zipfile.rst:37 msgid "" "Alias of :exc:`BadZipFile`, for compatibility with older Python versions." msgstr "" +"Alias de :exc:`BadZipFile`, pour la compatibilité avec les versions de " +"Python précédentes." #: ../Doc/library/zipfile.rst:44 msgid "" "The error raised when a ZIP file would require ZIP64 functionality but that " "has not been enabled." msgstr "" +"Erreur levée quand un fichier ZIP nécessite la fonctionnalité ZIP64 mais " +"qu'elle n'a pas été activée." #: ../Doc/library/zipfile.rst:51 msgid "" "The class for reading and writing ZIP files. See section :ref:`zipfile-" "objects` for constructor details." msgstr "" +"Classe pour lire et écrire des fichiers ZIP. Voir la section :ref:`zipfile-" +"objects` pour les détails du constructeur." #: ../Doc/library/zipfile.rst:58 msgid "Class for creating ZIP archives containing Python libraries." -msgstr "" +msgstr "Classe pour créer des archives ZIP contenant des bibliothèques Python." #: ../Doc/library/zipfile.rst:63 msgid "" @@ -82,6 +99,14 @@ msgid "" "of the last modification to the file; the fields are described in section :" "ref:`zipinfo-objects`." msgstr "" +"Classe utilisée pour représenter les informations d'un membre d'une archive. " +"Les instances de cette classe sont retournées par les méthodes :meth:`." +"getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. La plupart des " +"utilisateurs du module :mod:`zipfile` n'ont pas besoin de créer ces " +"instances mais d'utiliser celles créées par ce module. *filename* doit être " +"le nom complet du membre de l'archive et *date_time* doit être un *tuple* " +"contenant six champs qui décrit la date de dernière modification du " +"fichier ; les champs sont décrits dans la section :ref:`zipinfo-objects`." #: ../Doc/library/zipfile.rst:75 msgid "" @@ -89,32 +114,41 @@ msgid "" "number, otherwise returns ``False``. *filename* may be a file or file-like " "object too." msgstr "" +"Retourne ``True`` si *filename* est un fichier ZIP valide basé sur son " +"nombre magique, sinon retourne ``False``. *filename* peut aussi être un " +"fichier ou un objet fichier-compatible." #: ../Doc/library/zipfile.rst:78 msgid "Support for file and file-like objects." -msgstr "" +msgstr "Gestion des objets fichier et fichier-compatibles." #: ../Doc/library/zipfile.rst:84 msgid "The numeric constant for an uncompressed archive member." -msgstr "" +msgstr "Constante numérique pour un membre d'une archive décompressée." #: ../Doc/library/zipfile.rst:89 msgid "" "The numeric constant for the usual ZIP compression method. This requires " "the :mod:`zlib` module." msgstr "" +"Constante numérique pour la méthode habituelle de compression de ZIP. " +"Nécessite le module :mod:`zlib`." #: ../Doc/library/zipfile.rst:95 msgid "" "The numeric constant for the BZIP2 compression method. This requires the :" "mod:`bz2` module." msgstr "" +"Constante numérique pour la méthode de compressions BZIP2. Nécessite le " +"module :mod:`bz2`." #: ../Doc/library/zipfile.rst:102 msgid "" "The numeric constant for the LZMA compression method. This requires the :" "mod:`lzma` module." msgstr "" +"Constante numérique pour la méthode de compressions LZMA. Nécessite le " +"module :mod:`lzma`." #: ../Doc/library/zipfile.rst:109 msgid "" @@ -124,16 +158,23 @@ msgid "" "and may either refuse to process the ZIP file altogether, or fail to extract " "individual files." msgstr "" +"La spécification du format de fichier ZIP inclut la gestion de la " +"compression BZIP2 depuis 2001 et LZMA depuis 2006. Néanmoins, certains " +"outils (comme certaines versions de Python) ne gèrent pas ces méthodes de " +"compression et peuvent soit totalement refuser de traiter le fichier ZIP " +"soit ne pas extraire certains fichiers." #: ../Doc/library/zipfile.rst:120 msgid "`PKZIP Application Note`_" -msgstr "" +msgstr "`PKZIP Application Note`_" #: ../Doc/library/zipfile.rst:119 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." #: ../Doc/library/zipfile.rst:123 msgid "`Info-ZIP Home Page `_" @@ -144,10 +185,12 @@ msgid "" "Information about the Info-ZIP project's ZIP archive programs and " "development libraries." msgstr "" +"Informations sur les programmes et les bibliothèques de développement " +"d'archivage ZIP du projet Info-ZIP." #: ../Doc/library/zipfile.rst:130 msgid "ZipFile Objects" -msgstr "" +msgstr "Objets ZipFile" #: ../Doc/library/zipfile.rst:135 msgid "" @@ -181,6 +224,9 @@ msgid "" "`closed ` without adding any files to the archive, the appropriate " "ZIP structures for an empty archive will be written to the file." msgstr "" +"Si le fichier est créé avec le mode ``'w'``, ``'x'`` ou ``'a'`` et ensuite :" +"meth:`fermé ` sans ajouter de fichiers à l'archive, la structure " +"appropriée pour un fichier archive ZIP vide sera écrite dans le fichier." #: ../Doc/library/zipfile.rst:163 msgid "" @@ -192,36 +238,47 @@ msgstr "" #: ../Doc/library/zipfile.rst:170 msgid "Added the ability to use :class:`ZipFile` as a context manager." msgstr "" +"Ajout de la possibilité d'utiliser :class:`ZipFile` comme un gestionnaire de " +"contexte." #: ../Doc/library/zipfile.rst:173 msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." msgstr "" +"Ajout de la gestion de la compression :mod:`bzip2 ` et :mod:`lzma`." #: ../Doc/library/zipfile.rst:176 ../Doc/library/zipfile.rst:449 msgid "ZIP64 extensions are enabled by default." -msgstr "" +msgstr "Les extensions ZIP64 sont activées par défaut." #: ../Doc/library/zipfile.rst:179 msgid "" "Added support for writing to unseekable streams. Added support for the " "``'x'`` mode." msgstr "" +"Ajout de la gestion de l'écriture dans des flux non navigables. Ajout de la " +"gestion du mode ``x``." #: ../Doc/library/zipfile.rst:183 msgid "" "Previously, a plain :exc:`RuntimeError` was raised for unrecognized " "compression values." msgstr "" +"Auparavant, une simple exception :exc:`RuntimeError` était levée pour des " +"valeurs de compression non reconnues." #: ../Doc/library/zipfile.rst:187 msgid "The *file* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *file* accepte un objet fichier-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:193 msgid "" "Close the archive file. You must call :meth:`close` before exiting your " "program or essential records will not be written." msgstr "" +"Ferme l'archive. Vous devez appeler :meth:`close` avant de terminer votre " +"programme ou des informations essentielles n'y seront pas enregistrées." #: ../Doc/library/zipfile.rst:199 msgid "" @@ -229,6 +286,9 @@ msgid "" "*name*. Calling :meth:`getinfo` for a name not currently contained in the " "archive will raise a :exc:`KeyError`." msgstr "" +"Retourne un objet :class:`ZipInfo` avec les informations du membre *name* de " +"l'archive. Appeler :meth:`getinfo` pour un nom non contenu dans l'archive " +"lève une exception :exc:`KeyError`." #: ../Doc/library/zipfile.rst:206 msgid "" @@ -236,10 +296,13 @@ msgid "" "archive. The objects are in the same order as their entries in the actual " "ZIP file on disk if an existing archive was opened." msgstr "" +"Retourne une liste contenant un objet :class:`ZipInfo` pour chaque membre de " +"l'archive. Les objets ont le même ordre que leurs entrées dans le fichier " +"ZIP présent sur disque s'il s'agissait d'une archive préexistante." #: ../Doc/library/zipfile.rst:213 msgid "Return a list of archive members by name." -msgstr "" +msgstr "Retourne une liste des membres de l'archive indexés par leur nom." #: ../Doc/library/zipfile.rst:218 msgid "" @@ -248,12 +311,19 @@ msgid "" "The *mode* parameter, if included, must be ``'r'`` (the default) or " "``'w'``. *pwd* is the password used to decrypt encrypted ZIP files." msgstr "" +"Accède un membre de l'archive en tant qu'objet fichier-compatible binaire. " +"*name* peut être soit le nom d'un fichier au sein de l'archive soit un " +"objet :class:`ZipInfo`. Le paramètre *mode*, si inclus, doit être défini à " +"``'r'`` (valeur par défaut) ou ``'w'``. *pwd* est le mot de passe utilisé " +"pour déchiffrer des fichiers ZIP chiffrés." #: ../Doc/library/zipfile.rst:223 msgid "" ":meth:`~ZipFile.open` is also a context manager and therefore supports the :" "keyword:`with` statement::" msgstr "" +":meth:`~ZipFile.open` est aussi un gestionnaire de contexte et gère ainsi la " +"déclaration :keyword:`with` : ::" #: ../Doc/library/zipfile.rst:230 msgid "" @@ -271,6 +341,10 @@ msgid "" "open, attempting to read or write other files in the ZIP file will raise a :" "exc:`ValueError`." msgstr "" +"Avec ``mode='w'`` un descripteur de fichier en écriture est retourné, gérant " +"la méthode :meth:`~io.BufferedIOBase.write`. Quand le descripteur d'un " +"fichier inscriptible est ouvert, tenter de lire ou écrire d'autres fichiers " +"dans le fichier ZIP lève une exception :exc:`ValueError`." #: ../Doc/library/zipfile.rst:242 msgid "" @@ -280,6 +354,12 @@ msgid "" "a :class:`ZipInfo` object with :attr:`~ZipInfo.file_size` set, and use that " "as the *name* parameter." msgstr "" +"Lors de l'écriture d'un fichier, si la taille du fichier n'est pas connue " +"mais peut être supérieure à 2 GiO, spécifiez ``force_zip64=True`` afin de " +"vous assurer que le format d'en-tête est capable de supporter des fichiers " +"volumineux. Si la taille du fichier est connue à l'avance, instanciez un " +"objet :class:`ZipInfo` avec l'attribut :attr:`~ZipInfo.file_size` défini et " +"utilisez-le en tant que paramètre *name*." #: ../Doc/library/zipfile.rst:250 msgid "" @@ -287,24 +367,35 @@ msgid "" "filename or a :class:`ZipInfo` object. You will appreciate this when trying " "to read a ZIP file that contains members with duplicate names." msgstr "" +"Les méthodes :meth:`.open`, :meth:`read` et :meth:`extract` peuvent prendre " +"un nom de fichier ou un objet :class:`ZipInfo`. Cela est appréciable " +"lorsqu'on essaie de lire un fichier ZIP qui contient des membres avec des " +"noms en double." #: ../Doc/library/zipfile.rst:254 msgid "" "Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " "compressed text files in :term:`universal newlines` mode." msgstr "" +"Suppression de la gestion de ``mode='U'``. Utilisez :class:`io." +"TextIOWrapper` pour lire des fichiers texte compressés en mode :term:" +"`universal newlines`." #: ../Doc/library/zipfile.rst:258 msgid "" ":meth:`open` can now be used to write files into the archive with the " "``mode='w'`` option." msgstr "" +"La méthode :meth:`open` peut désormais être utilisée pour écrire des " +"fichiers dans l'archive avec l'option ``mode='w'``." #: ../Doc/library/zipfile.rst:262 msgid "" "Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.open` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:269 msgid "" @@ -314,10 +405,16 @@ msgid "" "to extract to. *member* can be a filename or a :class:`ZipInfo` object. " "*pwd* is the password used for encrypted files." msgstr "" +"Extrait un membre de l'archive dans le répertoire courant ; *member* doit " +"être son nom complet ou un objet :class:`ZipInfo`. Ses propriétés de fichier " +"sont extraites le plus fidèlement possible. *path* spécifie un répertoire " +"différent où l'extraire. *member* peut être un nom de fichier ou un objet :" +"class:`ZipInfo`. *pwd* est le mot de passe utilisé pour les fichiers " +"chiffrés." #: ../Doc/library/zipfile.rst:275 msgid "Returns the normalized path created (a directory or new file)." -msgstr "" +msgstr "Retourne le chemin normalisé créé (un dossier ou un nouveau fichier)." #: ../Doc/library/zipfile.rst:279 msgid "" @@ -329,16 +426,27 @@ msgid "" "``<``, ``>``, ``|``, ``\"``, ``?``, and ``*``) replaced by underscore " "(``_``)." msgstr "" +"Si le nom de fichier d'un membre est un chemin absolu, le disque/partage UNC " +"et les (anti)slashes de départ seront supprimés, par exemple `///foo/bar`` " +"devient ``foo/bar`` sous Unix et ``C:\\foo\\bar`` devient ``foo\\bar`` sous " +"Windows. Et tous les composants ``\"..\"`` dans le nom de fichier d'un " +"membre seront supprimés, par exemple ``../../foo../../ba..r`` devient " +"``foo../ba..r``. Sous Windows les caractères illégaux (``:``, ``<``, ``>``, " +"``|``, ``\"``, ``?`` et ``*``) sont remplacés par un *underscore* (``_``)." #: ../Doc/library/zipfile.rst:287 msgid "" "Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.extract` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:291 ../Doc/library/zipfile.rst:314 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *path* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:297 msgid "" @@ -347,6 +455,10 @@ msgid "" "and must be a subset of the list returned by :meth:`namelist`. *pwd* is the " "password used for encrypted files." msgstr "" +"Extrait tous les membres de l'archive dans le répertoire courant. *path* " +"spécifie un dossier de destination différent. *members* est optionnel et " +"doit être un sous-ensemble de la liste retournée par :meth:`namelist`. *pwd* " +"est le mot de passe utilisé pour les fichiers chiffrés." #: ../Doc/library/zipfile.rst:304 msgid "" @@ -355,20 +467,29 @@ msgid "" "absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." "\"``. This module attempts to prevent that. See :meth:`extract` note." msgstr "" +"N'extrayez jamais d'archives depuis des sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*path*, par exemple des membres qui ont des chemins de fichier absolus " +"commençant par ``\"/\"`` ou des noms de fichier avec deux points ``\".." +"\"``. Ce module essaie de prévenir ceci. Voir la note de :meth:`extract`." #: ../Doc/library/zipfile.rst:310 msgid "" "Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" "`ValueError`. Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.extractall` sur un fichier ZipFile fermé lève une erreur :" +"exc:`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:320 msgid "Print a table of contents for the archive to ``sys.stdout``." -msgstr "" +msgstr "Affiche la liste des contenus de l'archive sur ``sys.stdout``." #: ../Doc/library/zipfile.rst:325 msgid "Set *pwd* as default password to extract encrypted files." msgstr "" +"Définit *pwd* comme mot de passe par défait pour extraire des fichiers " +"chiffrés." #: ../Doc/library/zipfile.rst:330 msgid "" @@ -382,18 +503,31 @@ msgid "" "error will also be raised if the corresponding compression module is not " "available." msgstr "" +"Retourne les octets du fichier *name* dans l'archive. *name* est le nom du " +"fichier dans l'archive ou un objet :class:`ZipInfo`. L'archive doit être " +"ouverte en mode lecture ou ajout de données. *pwd* est le mot de passe " +"utilisé pour les fichiers chiffrés et, si spécifié, écrase le mot de passe " +"par défaut défini avec :meth:`setpassword`. Appeler :meth:`.read` sur un " +"fichier ZipFile qui utilise une méthode de compression différente de :const:" +"`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2` ou :const:`ZIP_LZMA` " +"lève une erreur :exc:`NotImplementedError`. Une erreur est également levée " +"si le module de compression n'est pas disponible." #: ../Doc/library/zipfile.rst:339 msgid "" "Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." msgstr "" +"Appeler :meth:`.read` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:346 msgid "" "Read all the files in the archive and check their CRC's and file headers. " "Return the name of the first bad file, or else return ``None``." msgstr "" +"Lit tous les fichiers de l'archive et vérifie leurs sommes CRC et leurs en-" +"têtes. Retourne le nom du premier fichier mauvais ou retourne ``None`` sinon." #: ../Doc/library/zipfile.rst:349 msgid "" @@ -418,12 +552,19 @@ msgid "" "before passing them to :meth:`write`. WinZip interprets all file names as " "encoded in CP437, also known as DOS Latin." msgstr "" +"Il n'y a pas d'encodage de nom de fichier officiel pour les fichiers ZIP. Si " +"vous avez des noms de fichier *unicode*, vous devez les convertir en chaînes " +"d'octets dans l'encodage désiré avant de les passer à :meth:`write`. " +"*WinZip* interprète tous les noms de fichier comme encodés en CP437, aussi " +"connu sous le nom de DOS Latin." #: ../Doc/library/zipfile.rst:372 msgid "" "Archive names should be relative to the archive root, that is, they should " "not start with a path separator." msgstr "" +"Les noms d'archive doivent être relatifs à la racine de l'archive, c'est-à-" +"dire qu'ils ne doivent pas commencer par un séparateur de chemin." #: ../Doc/library/zipfile.rst:377 msgid "" @@ -431,6 +572,8 @@ msgid "" "null byte, the name of the file in the archive will be truncated at the null " "byte." msgstr "" +"Si ``arcname`` (ou ``filename`` si ``arcname`` n'est pas donné) contient un " +"octet nul, le nom du fichier dans l'archive sera tronqué à l'octet nul." #: ../Doc/library/zipfile.rst:380 msgid "" @@ -438,6 +581,8 @@ msgid "" "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" +"Appeler :meth:`.write` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:388 msgid "" @@ -462,10 +607,15 @@ msgid "" "*compress_type* member of the given :class:`ZipInfo` instance. By default, " "the :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`." msgstr "" +"Lorsque l'on passe une instance de :class:`ZipInfo` dans le paramètre " +"*zinfo_or_arcname*, la méthode de compression utilisée sera celle spécifiée " +"dans le membre *compress_type* de l'instance :class:`ZipInfo` donnée. Par " +"défaut, le constructeur de la classe :class:`ZipInfo` définit ce membre à :" +"const:`ZIP_STORED`." #: ../Doc/library/zipfile.rst:405 msgid "The *compress_type* argument." -msgstr "" +msgstr "L'argument *compress_type*." #: ../Doc/library/zipfile.rst:408 msgid "" @@ -473,14 +623,16 @@ msgid "" "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " "was raised." msgstr "" +"Appeler :meth:`.writestr` sur un fichier ZipFile fermé lève une erreur :exc:" +"`ValueError`. Précédemment, une erreur :exc:`RuntimeError` était levée." #: ../Doc/library/zipfile.rst:414 msgid "The following data attributes are also available:" -msgstr "" +msgstr "Les attributs suivants sont aussi disponibles :" #: ../Doc/library/zipfile.rst:418 msgid "Name of the ZIP file." -msgstr "" +msgstr "Nom du fichier ZIP." #: ../Doc/library/zipfile.rst:422 msgid "" @@ -488,6 +640,9 @@ msgid "" "no output) to ``3`` (the most output). Debugging information is written to " "``sys.stdout``." msgstr "" +"Le niveau d'affichage de *debug* à utiliser. Peut être défini de ``0`` (par " +"défaut, pas d'affichage) à ``3`` (affichage le plus bavard). Les " +"informations de débogage sont affichées sur ``sys.stdout``." #: ../Doc/library/zipfile.rst:428 msgid "" @@ -499,34 +654,43 @@ msgstr "" #: ../Doc/library/zipfile.rst:438 msgid "PyZipFile Objects" -msgstr "" +msgstr "Objets *PyZipFile*" #: ../Doc/library/zipfile.rst:440 msgid "" "The :class:`PyZipFile` constructor takes the same parameters as the :class:" "`ZipFile` constructor, and one additional parameter, *optimize*." msgstr "" +"Le constructeur de :class:`PyZipFile` prend les mêmes paramètres que le " +"constructeur de :class:`ZipFile` avec un paramètre additionnel *optimize*." #: ../Doc/library/zipfile.rst:446 msgid "The *optimize* parameter." -msgstr "" +msgstr "Le paramètre *optimize*." #: ../Doc/library/zipfile.rst:452 msgid "" "Instances have one method in addition to those of :class:`ZipFile` objects:" msgstr "" +"Les instances ont une méthode supplémentaire par rapport aux objets :class:" +"`ZipFile` :" #: ../Doc/library/zipfile.rst:456 msgid "" "Search for files :file:`\\*.py` and add the corresponding file to the " "archive." msgstr "" +"Cherche les fichiers :file:`\\*.py` et ajoute le fichier correspondant à " +"l'archive." #: ../Doc/library/zipfile.rst:459 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was not given or ``-1``, " "the corresponding file is a :file:`\\*.pyc` file, compiling if necessary." msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` n'a pas été " +"donné ou est à ``-1``, le fichier correspondant est un fichier :file:`\\*." +"pyc`, à compiler si nécessaire." #: ../Doc/library/zipfile.rst:462 msgid "" @@ -534,6 +698,9 @@ msgid "" "only files with that optimization level (see :func:`compile`) are added to " "the archive, compiling if necessary." msgstr "" +"Si le paramètre *optimize* du constructeur de :class:`PyZipFile` est à " +"``0``, ``1`` ou ``2``, ne sont ajoutés dans l'archive que les fichiers avec " +"ce niveau d'optimisation (voir :func:`compile`), à compiler si nécessaire." #: ../Doc/library/zipfile.rst:466 msgid "" @@ -549,7 +716,7 @@ msgstr "" #: ../Doc/library/zipfile.rst:476 msgid "*basename* is intended for internal use only." -msgstr "" +msgstr "*basename* n'est sensé être utilisé qu'en interne." #: ../Doc/library/zipfile.rst:478 msgid "" @@ -561,22 +728,34 @@ msgid "" "directories or start with the string ``test_``, we can use a *filterfunc* to " "exclude them::" msgstr "" +"*filterfunc*, si donné, doit être une fonction prenant une seule chaîne de " +"caractères en argument. Il lui sera passé chaque chemin (incluant chaque " +"chemin de fichier complet individuel) avant d'être ajouté à l'archive. Si " +"*filterfunc* retourne une valeur fausse, le chemin n'est pas ajouté et si " +"c'est un répertoire son contenu est ignoré. Par exemple, si nos fichiers de " +"test sont tous soit dans des répertoires ``test`` ou commencent par " +"``test_``, nous pouvons utiliser une fonction *filterfunc* pour les " +"exclure : ::" #: ../Doc/library/zipfile.rst:492 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" +"La méthode :meth:`writepy` crée des archives avec des noms de fichier comme " +"suit : ::" #: ../Doc/library/zipfile.rst:501 msgid "The *filterfunc* parameter." -msgstr "" +msgstr "Le paramètre *filterfunc*." #: ../Doc/library/zipfile.rst:504 msgid "The *pathname* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *pathname* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:511 msgid "ZipInfo Objects" -msgstr "" +msgstr "Objets *ZipInfo*" #: ../Doc/library/zipfile.rst:513 msgid "" @@ -584,22 +763,31 @@ msgid "" "and :meth:`.infolist` methods of :class:`ZipFile` objects. Each object " "stores information about a single member of the ZIP archive." msgstr "" +"Des instances de la classe :class:`ZipInfo` sont retournées par les " +"méthodes :meth:`.getinfo` et :meth:`.infolist` des objets :class:`ZipFile`. " +"Chaque objet stocke des informations sur un seul membre de l'archive ZIP." #: ../Doc/library/zipfile.rst:517 msgid "" "There is one classmethod to make a :class:`ZipInfo` instance for a " "filesystem file:" msgstr "" +"Il y a une méthode de classe pour créer une instance de :class:`ZipInfo` " +"pour un fichier du système de fichiers :" #: ../Doc/library/zipfile.rst:522 msgid "" "Construct a :class:`ZipInfo` instance for a file on the filesystem, in " "preparation for adding it to a zip file." msgstr "" +"Construit une instance de :class:`ZipInfo` pour le fichier du système de " +"fichiers, en préparation de l'ajouter à un fichier ZIP." #: ../Doc/library/zipfile.rst:525 msgid "*filename* should be the path to a file or directory on the filesystem." msgstr "" +"*filename* doit être un chemin vers un fichier ou un répertoire dans le " +"système de fichiers." #: ../Doc/library/zipfile.rst:527 msgid "" @@ -607,36 +795,45 @@ msgid "" "*arcname* is not specified, the name will be the same as *filename*, but " "with any drive letter and leading path separators removed." msgstr "" +"Si *arcname* est spécifié, il est utilisé en tant que nom dans l'archive. Si " +"*arcname* n'est pas spécifié, le nom sera le même que *filename* mais sans " +"lettre de disque et sans séparateur de chemin en première position." #: ../Doc/library/zipfile.rst:533 msgid "The *filename* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " +"object`." #: ../Doc/library/zipfile.rst:537 msgid "Instances have the following methods and attributes:" -msgstr "" +msgstr "Les instances ont les méthodes et attributs suivants :" #: ../Doc/library/zipfile.rst:541 msgid "Return ``True`` if this archive member is a directory." -msgstr "" +msgstr "Retourne ``True`` si le membre d'archive est un répertoire." #: ../Doc/library/zipfile.rst:543 msgid "This uses the entry's name: directories should always end with ``/``." msgstr "" +"Utilise le nom de l'entrée : les répertoires doivent toujours se terminer " +"par ``/``." #: ../Doc/library/zipfile.rst:550 msgid "Name of the file in the archive." -msgstr "" +msgstr "Nom du fichier dans l'archive." #: ../Doc/library/zipfile.rst:555 msgid "" "The time and date of the last modification to the archive member. This is a " "tuple of six values:" msgstr "" +"Date et heure de dernière modification pour le membre de l'archive. *Tuple* " +"de six valeurs :" #: ../Doc/library/zipfile.rst:559 msgid "Index" -msgstr "" +msgstr "Index" #: ../Doc/library/zipfile.rst:559 msgid "Value" @@ -648,7 +845,7 @@ msgstr "``0``" #: ../Doc/library/zipfile.rst:561 msgid "Year (>= 1980)" -msgstr "" +msgstr "Année (>= 1980)" #: ../Doc/library/zipfile.rst:563 msgid "``1``" @@ -656,7 +853,7 @@ msgstr "``1``" #: ../Doc/library/zipfile.rst:563 msgid "Month (one-based)" -msgstr "" +msgstr "Mois (indexé à partir de 1)" #: ../Doc/library/zipfile.rst:565 msgid "``2``" @@ -664,7 +861,7 @@ msgstr "``2``" #: ../Doc/library/zipfile.rst:565 msgid "Day of month (one-based)" -msgstr "" +msgstr "Jour du mois (indexé à partir de 1)" #: ../Doc/library/zipfile.rst:567 msgid "``3``" @@ -672,7 +869,7 @@ msgstr "``3``" #: ../Doc/library/zipfile.rst:567 msgid "Hours (zero-based)" -msgstr "" +msgstr "Heures (indexées à partir de 0)" #: ../Doc/library/zipfile.rst:569 msgid "``4``" @@ -680,7 +877,7 @@ msgstr "``4``" #: ../Doc/library/zipfile.rst:569 msgid "Minutes (zero-based)" -msgstr "" +msgstr "Minutes (indexées à partir de 0)" #: ../Doc/library/zipfile.rst:571 msgid "``5``" @@ -688,15 +885,15 @@ msgstr "``5``" #: ../Doc/library/zipfile.rst:571 msgid "Seconds (zero-based)" -msgstr "" +msgstr "Secondes (indexées à partir de 0)" #: ../Doc/library/zipfile.rst:576 msgid "The ZIP file format does not support timestamps before 1980." -msgstr "" +msgstr "Le format de fichier ZIP ne gère pas les horodatages avant 1980." #: ../Doc/library/zipfile.rst:581 msgid "Type of compression for the archive member." -msgstr "" +msgstr "Type de compression du membre d'archive." #: ../Doc/library/zipfile.rst:586 msgid "Comment for the individual archive member." @@ -710,98 +907,107 @@ msgstr "" #: ../Doc/library/zipfile.rst:597 msgid "System which created ZIP archive." -msgstr "" +msgstr "Système ayant créé l'archive ZIP." #: ../Doc/library/zipfile.rst:602 msgid "PKZIP version which created ZIP archive." -msgstr "" +msgstr "Version de PKZIP ayant créé l'archive ZIP." #: ../Doc/library/zipfile.rst:607 msgid "PKZIP version needed to extract archive." -msgstr "" +msgstr "Version de PKZIP nécessaire à l'extraction de l'archive ZIP." #: ../Doc/library/zipfile.rst:612 msgid "Must be zero." -msgstr "" +msgstr "Doit être à zéro." #: ../Doc/library/zipfile.rst:617 msgid "ZIP flag bits." -msgstr "" +msgstr "Bits d'options ZIP." #: ../Doc/library/zipfile.rst:622 msgid "Volume number of file header." -msgstr "" +msgstr "Numéro de volume de l'entête du fichier." #: ../Doc/library/zipfile.rst:627 msgid "Internal attributes." -msgstr "" +msgstr "Attributs internes." #: ../Doc/library/zipfile.rst:632 msgid "External file attributes." -msgstr "" +msgstr "Attributs de fichier externes." #: ../Doc/library/zipfile.rst:637 msgid "Byte offset to the file header." -msgstr "" +msgstr "Longueur de l'entête du fichier en octets." #: ../Doc/library/zipfile.rst:642 msgid "CRC-32 of the uncompressed file." -msgstr "" +msgstr "CRC-32 du fichier décompressé." #: ../Doc/library/zipfile.rst:647 msgid "Size of the compressed data." -msgstr "" +msgstr "Taille des données décompressées." #: ../Doc/library/zipfile.rst:652 msgid "Size of the uncompressed file." -msgstr "" +msgstr "Taille du fichier décompressé." #: ../Doc/library/zipfile.rst:659 msgid "Command-Line Interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/zipfile.rst:661 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." msgstr "" +"Le module :mod:`zipfile` fournit une interface en ligne de commande simple " +"pour interagir avec des archives ZIP." #: ../Doc/library/zipfile.rst:664 msgid "" "If you want to create a new ZIP archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" msgstr "" +"Si vous voulez créer une nouvelle archive ZIP, spécifiez son nom après " +"l'option :option:`-c` et listez ensuite le(s) nom(s) de fichier à inclure :" #: ../Doc/library/zipfile.rst:671 msgid "Passing a directory is also acceptable:" -msgstr "" +msgstr "Passer un répertoire est aussi possible :" #: ../Doc/library/zipfile.rst:677 msgid "" "If you want to extract a ZIP archive into the specified directory, use the :" "option:`-e` option:" msgstr "" +"Si vous voulez extraire une archive ZIP dans un répertoire donné, utilisez " +"l'option :option:`-e` :" #: ../Doc/library/zipfile.rst:684 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" +"Pour une liste des fichiers dans une archive ZIP, utilisez l'option :option:" +"`-l` :" #: ../Doc/library/zipfile.rst:692 msgid "Command-line options" -msgstr "" +msgstr "Options de la ligne de commande" #: ../Doc/library/zipfile.rst:696 msgid "List files in a zipfile." -msgstr "" +msgstr "Liste les fichiers dans un fichier ZIP *zipfile*." #: ../Doc/library/zipfile.rst:700 msgid "Create zipfile from source files." -msgstr "" +msgstr "Crée un fichier ZIP *zipfile* à partir des fichiers *source*." #: ../Doc/library/zipfile.rst:704 msgid "Extract zipfile into target directory." msgstr "" +"Extrait le fichier ZIP *zipfile* vers le répertoire cible *output_dir*." #: ../Doc/library/zipfile.rst:708 msgid "Test whether the zipfile is valid or not." -msgstr "" +msgstr "Teste si le fichier zip est valide." diff --git a/library/zipimport.po b/library/zipimport.po index 3e1e174e8..30ede58aa 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -66,6 +66,8 @@ msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." msgstr "" +"Documentation sur le format de fichier ZIP par Phil Katz, créateur du format " +"et des algorithmes utilisés." #: ../Doc/library/zipimport.rst:42 msgid ":pep:`273` - Import Modules from Zip Archives" diff --git a/reference/import.po b/reference/import.po index e95a199e4..debc83693 100644 --- a/reference/import.po +++ b/reference/import.po @@ -1888,7 +1888,7 @@ msgstr "" #: ../Doc/reference/import.rst:945 msgid "Open issues" -msgstr "" +msgstr "Idées d'amélioration" #: ../Doc/reference/import.rst:947 msgid "XXX It would be really nice to have a diagram." @@ -1900,24 +1900,34 @@ msgid "" "attributes of modules and packages, perhaps expanding upon or supplanting " "the related entries in the data model reference page?" msgstr "" +"XXX * (``import_machinery.rst``) Pourquoi pas une section dédiée aux " +"attributs des modules et paquets, développant ou remplaçant les entrées " +"associées dans la page de référence du modèle de données ?" #: ../Doc/reference/import.rst:953 msgid "" "XXX runpy, pkgutil, et al in the library manual should all get \"See Also\" " "links at the top pointing to the new import system section." msgstr "" +"XXX *runpy*, *pkgutil* et autres dans le manuel de la bibliothèque devraient " +"comporter un lien \"Lisez aussi\" en début de page pointant vers la section " +"du nouveau mécanisme d'import." #: ../Doc/reference/import.rst:956 msgid "" "XXX Add more explanation regarding the different ways in which ``__main__`` " "is initialized?" msgstr "" +"XXX Ajouter des explications sur les différentes manières dont ``__main__`` " +"est initialisé ?" #: ../Doc/reference/import.rst:959 msgid "" "XXX Add more info on ``__main__`` quirks/pitfalls (i.e. copy from :pep:" "`395`)." msgstr "" +"XXX Ajouter des informations sur les pièges et bizarreries de ``__main__`` " +"(c-à-d des extraits de la :pep:`395`)." #: ../Doc/reference/import.rst:964 msgid "References" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 9a0f4b48b..963387c67 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -816,7 +816,7 @@ msgstr "barre oblique inversée et retour à la ligne ignorés" #: ../Doc/reference/lexical_analysis.rst:486 msgid "``\\\\``" -msgstr "" +msgstr "``\\\\``" #: ../Doc/reference/lexical_analysis.rst:486 msgid "Backslash (``\\``)" @@ -824,7 +824,7 @@ msgstr "barre oblique inversée (``\\``)" #: ../Doc/reference/lexical_analysis.rst:488 msgid "``\\'``" -msgstr "" +msgstr "``\\'``" #: ../Doc/reference/lexical_analysis.rst:488 msgid "Single quote (``'``)" @@ -832,7 +832,7 @@ msgstr "guillemet simple (``'``)" #: ../Doc/reference/lexical_analysis.rst:490 msgid "``\\\"``" -msgstr "" +msgstr "``\\\"``" #: ../Doc/reference/lexical_analysis.rst:490 msgid "Double quote (``\"``)" @@ -840,7 +840,7 @@ msgstr "guillemet double (``\"``)" #: ../Doc/reference/lexical_analysis.rst:492 msgid "``\\a``" -msgstr "" +msgstr "``\\a``" #: ../Doc/reference/lexical_analysis.rst:492 msgid "ASCII Bell (BEL)" @@ -856,7 +856,7 @@ msgstr "retour arrière ASCII (BS)" #: ../Doc/reference/lexical_analysis.rst:496 msgid "``\\f``" -msgstr "" +msgstr "``\\f``" #: ../Doc/reference/lexical_analysis.rst:496 msgid "ASCII Formfeed (FF)" @@ -880,7 +880,7 @@ msgstr "retour à la ligne ASCII (CR)" #: ../Doc/reference/lexical_analysis.rst:502 msgid "``\\t``" -msgstr "" +msgstr "``\\t``" #: ../Doc/reference/lexical_analysis.rst:502 msgid "ASCII Horizontal Tab (TAB)" @@ -888,7 +888,7 @@ msgstr "tabulation horizontale ASCII (TAB)" #: ../Doc/reference/lexical_analysis.rst:504 msgid "``\\v``" -msgstr "" +msgstr "``\\v``" #: ../Doc/reference/lexical_analysis.rst:504 msgid "ASCII Vertical Tab (VT)" @@ -896,7 +896,7 @@ msgstr "tabulation verticale ASCII (VT)" #: ../Doc/reference/lexical_analysis.rst:506 msgid "``\\ooo``" -msgstr "" +msgstr "``\\ooo``" #: ../Doc/reference/lexical_analysis.rst:506 msgid "Character with octal value *ooo*" @@ -904,11 +904,11 @@ msgstr "caractère dont le code est *ooo* en octal" #: ../Doc/reference/lexical_analysis.rst:506 msgid "(1,3)" -msgstr "" +msgstr "(1,3)" #: ../Doc/reference/lexical_analysis.rst:509 msgid "``\\xhh``" -msgstr "" +msgstr "``\\xhh``" #: ../Doc/reference/lexical_analysis.rst:509 msgid "Character with hex value *hh*" @@ -916,7 +916,7 @@ msgstr "caractère dont le code est *ooo* en hexadécimal" #: ../Doc/reference/lexical_analysis.rst:509 msgid "(2,3)" -msgstr "" +msgstr "(2,3)" #: ../Doc/reference/lexical_analysis.rst:512 msgid "Escape sequences only recognized in string literals are:" @@ -938,7 +938,7 @@ msgstr "\\(4)" #: ../Doc/reference/lexical_analysis.rst:520 msgid "``\\uxxxx``" -msgstr "" +msgstr "``\\uxxxx``" #: ../Doc/reference/lexical_analysis.rst:520 msgid "Character with 16-bit hex value *xxxx*" diff --git a/using/cmdline.po b/using/cmdline.po index 8b0e2a8fb..a86f408ce 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -226,7 +226,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:111 msgid ":func:`runpy.run_module`" -msgstr "" +msgstr ":func:`runpy.run_module`" #: ../Doc/using/cmdline.rst:111 ../Doc/using/cmdline.rst:153 msgid "Equivalent functionality directly available to Python code" @@ -303,7 +303,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:152 msgid ":func:`runpy.run_path`" -msgstr "" +msgstr ":func:`runpy.run_path`" #: ../Doc/using/cmdline.rst:156 msgid "" @@ -321,7 +321,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:162 msgid ":ref:`tut-invoking`" -msgstr "" +msgstr ":ref:`tut-invoking`" #: ../Doc/using/cmdline.rst:164 msgid "Automatic enabling of tab-completion and history editing." @@ -440,10 +440,14 @@ msgid "" "adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). See also :" "envvar:`PYTHONOPTIMIZE`." msgstr "" +"Enlève les instructions *assert* et tout le code qui dépend de la valeur de :" +"const:`__debug__`. Ajoute ``.opt-1`` au nom de fichier du code intermédiaire " +"(:term:`bytecode`), avant l'extension ``.pyc`` (voir la :pep:`488`). Voir " +"aussi :envvar:`PYTHONOPTIMIZE`." #: ../Doc/using/cmdline.rst:258 ../Doc/using/cmdline.rst:268 msgid "Modify ``.pyc`` filenames according to :pep:`488`." -msgstr "" +msgstr "modifie les noms de fichiers ``.pyc`` suivant la :pep:`488`." #: ../Doc/using/cmdline.rst:264 msgid "" @@ -451,6 +455,9 @@ msgid "" "compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " "extension (see :pep:`488`)." msgstr "" +"Agit comme :option:`-O` et ignore aussi les *docstrings*. Ajoute ``.opt-2`` " +"au nom de fichier du code intermédiaire (:term:`bytecode`), avant " +"l'extension ``.pyc`` (voir la :pep:`488`)." #: ../Doc/using/cmdline.rst:274 msgid "" diff --git a/using/mac.po b/using/mac.po index c5efc5cb8..0288d5591 100644 --- a/using/mac.po +++ b/using/mac.po @@ -27,7 +27,7 @@ msgstr "Auteur" #: ../Doc/using/mac.rst:8 msgid "Bob Savage " -msgstr "" +msgstr "Bob Savage " #: ../Doc/using/mac.rst:11 msgid "" @@ -71,6 +71,12 @@ msgid "" "Python scripts from the Finder; and the \"Build Applet\" tool, which allows " "you to package Python scripts as standalone applications on your system." msgstr "" +"Un dossier :file:`MacPython 3.6` dans votre dossier :file:`Applications`. " +"Dedans vous trouverez **IDLE**, l'environnement de développement qui fait " +"partie des distributions Python officielles ; **PythonLauncher**, qui gère " +"le lancement de scripts Python depuis le ``Finder`` ; et l'outil **\"Build " +"Applet\"**, qui permets d'empaqueter des scripts Python en tant " +"qu'applications à part entière sur votre système." #: ../Doc/using/mac.rst:34 msgid "" @@ -79,6 +85,11 @@ msgid "" "shell path. To uninstall MacPython, you can simply remove these three " "things. A symlink to the Python executable is placed in /usr/local/bin/." msgstr "" +"Un **framework** :file:`/Library/Frameworks/Python.framework`, qui inclut " +"l’exécutable Python et ses bibliothèques. L’installateur ajoute ce chemin à " +"votre **PATH**. Pour désinstaller MacPython, vous pouvez simplement " +"supprimer ces trois choses. Un lien symbolique vers l'exécutable Python est " +"placé dans ``/usr/local/bin/``." #: ../Doc/using/mac.rst:39 msgid "" @@ -90,6 +101,14 @@ msgid "" "but functional Python installations on your computer, so it will be " "important that your paths and usages are consistent with what you want to do." msgstr "" +"Le **build** Python fourni par Apple est installé dans :file:`/System/" +"Library/Frameworks/Python.framework` et :file:`/usr/bin/python`. Vous ne " +"devriez jamais les modifier ou supprimer, car ils sont contrôlés et utilisés " +"par Apple (ou d'autres logiciels). Rappelez vous que si vous choisissez " +"d'installer un Python plus récent depuis python.org, vous aurez deux " +"installations de Python différentes et fonctionnelles sur votre ordinateur, " +"il est donc important que vos chemins et utilisations soit cohérentes avec " +"ce que vous voulez faire." #: ../Doc/using/mac.rst:47 msgid "" @@ -97,16 +116,22 @@ msgid "" "you are completely new to Python you should start reading the tutorial " "introduction in that document." msgstr "" +"**IDLE** inclut un menu d'aide qui vous permet d’accéder à la documentation " +"Python. Si vous êtes entièrement novice, vous devriez commencer par lire le " +"tutoriel d'introduction dans ce document." #: ../Doc/using/mac.rst:51 msgid "" "If you are familiar with Python on other Unix platforms you should read the " "section on running Python scripts from the Unix shell." msgstr "" +"Si vous êtes familier avec Python sur d'autres plateformes Unix, vous " +"devriez lire la section sur comment exécuter des scripts Python depuis un " +"shell Unix." #: ../Doc/using/mac.rst:56 msgid "How to run a Python script" -msgstr "" +msgstr "Comment exécuter un script Python" #: ../Doc/using/mac.rst:58 msgid "" @@ -114,6 +139,9 @@ msgid "" "integrated development environment, see section :ref:`ide` and use the Help " "menu when the IDE is running." msgstr "" +"Le meilleur moyen de démarrer avec Python sur Max OS X est d'utiliser " +"l'environnement de développement intégré **IDLE**, voir la section :ref:" +"`ide` et utilisez le menu d'aide (**Help**) quand l'``IDE`` est lancé." #: ../Doc/using/mac.rst:62 msgid "" @@ -133,14 +161,17 @@ msgid "" "To run your script from the Terminal window you must make sure that :file:`/" "usr/local/bin` is in your shell search path." msgstr "" +"Pour exécuter votre script depuis la fenêtre Terminal, vous devez vous " +"assurer que :file:`/usr/local/bin` est dans le chemin de recherche de votre " +"shell (**PATH**)." #: ../Doc/using/mac.rst:75 msgid "To run your script from the Finder you have two options:" -msgstr "" +msgstr "Pour exécuter votre script depuis le Finder vous avez deux options :" #: ../Doc/using/mac.rst:77 msgid "Drag it to :program:`PythonLauncher`" -msgstr "" +msgstr "Glissez-le vers :program:`PythonLauncher`" #: ../Doc/using/mac.rst:79 msgid "" @@ -150,10 +181,17 @@ msgid "" "script is launched. Option-dragging allows you to change these for one " "invocation, or use its Preferences menu to change things globally." msgstr "" +"Sélectionnez :program:`PythonLauncher` en tant qu'application par défaut " +"pour ouvrir votre script (ou n'importe quel script ``.py``) depuis la " +"fenêtre **info** de votre Finder puis double-cliquez votre script. :program:" +"`PythonLauncher` a des préférences variées pour contrôler comment votre " +"script est exécuté. Glisser des options permets de les changer pour une " +"invocation, ou utilisez le menu Préférences pour changer les choses " +"globalement." #: ../Doc/using/mac.rst:89 msgid "Running scripts with a GUI" -msgstr "" +msgstr "Lancer des scripts avec une interface graphique" #: ../Doc/using/mac.rst:91 msgid "" @@ -162,15 +200,23 @@ msgid "" "anything that has a GUI) need to be run in a special way. Use :program:" "`pythonw` instead of :program:`python` to start such scripts." msgstr "" +"Avec les anciennes versions de Python, il y a une bizarrerie Max OS X dont " +"vous devez être au courant : les programmes qui communiquent avec le " +"gestionnaires de fenêtre **Aqua** (en d'autres termes, tout ce qui a une " +"interface graphique) doivent être exécutés de façon spécifique. Utilisez :" +"program:`pythonw` au lieu de :program:`python` pour exécuter ce genre de " +"scripts." #: ../Doc/using/mac.rst:96 msgid "" "With Python 3.6, you can use either :program:`python` or :program:`pythonw`." msgstr "" +"Avec Python 3.6, vous pouvez utilisez :program:`python` ou :program:" +"`pythonw`." #: ../Doc/using/mac.rst:100 msgid "Configuration" -msgstr "" +msgstr "Configuration" #: ../Doc/using/mac.rst:102 msgid "" @@ -180,16 +226,24 @@ msgid "" "or :file:`.cshrc` at startup. You need to create a file :file:`~/.MacOSX/" "environment.plist`. See Apple's Technical Document QA1067 for details." msgstr "" +"Python sur OS X respecte tous les standards Unix pour les variables " +"d'environnement comme :envvar:`PYTHONPATH`, mais définir ces variables pour " +"des programmes exécutés depuis le Finder n'est pas standard car le Finder ne " +"lit pas votre :file:`.profile` ou :file:`.cshrc` au démarrage. Vous devez " +"créer un fichier :file:`~/.MacOSX/environment.plist`. Voir le document " +"technique d'Apple QA1067 pour plus de détails." #: ../Doc/using/mac.rst:109 msgid "" "For more information on installation Python packages in MacPython, see " "section :ref:`mac-package-manager`." msgstr "" +"Pour plus d'informations sur l'installation de paquets Python dans " +"**MacPython**, voir la section :ref:`mac-package-manager`." #: ../Doc/using/mac.rst:116 msgid "The IDE" -msgstr "" +msgstr "L'*IDE*" #: ../Doc/using/mac.rst:118 msgid "" @@ -200,33 +254,40 @@ msgstr "" #: ../Doc/using/mac.rst:126 msgid "Installing Additional Python Packages" -msgstr "" +msgstr "Installation de paquets Python additionnels" #: ../Doc/using/mac.rst:128 msgid "There are several methods to install additional Python packages:" msgstr "" +"Il y a plusieurs méthodes pour installer des paquets Python supplémentaires :" #: ../Doc/using/mac.rst:130 msgid "" "Packages can be installed via the standard Python distutils mode (``python " "setup.py install``)." msgstr "" +"Les paquets peuvent être installés en utilisant **distutils** (``python " +"setup.py install``)." #: ../Doc/using/mac.rst:133 msgid "" "Many packages can also be installed via the :program:`setuptools` extension " "or :program:`pip` wrapper, see https://pip.pypa.io/." msgstr "" +"Beaucoup de paquets peuvent aussi être installés via l'extension :program:" +"`setuptools` ou :program:`pip`, voir https://pip.pypa.io/." #: ../Doc/using/mac.rst:138 msgid "GUI Programming on the Mac" -msgstr "" +msgstr "Programmation d'interface graphique sur le Mac" #: ../Doc/using/mac.rst:140 msgid "" "There are several options for building GUI applications on the Mac with " "Python." msgstr "" +"Il y a plusieurs options pour construire des applications avec interface " +"graphique sur le Mac avec Python." #: ../Doc/using/mac.rst:142 msgid "" @@ -234,6 +295,10 @@ msgid "" "is the foundation of most modern Mac development. Information on PyObjC is " "available from https://pythonhosted.org/pyobjc/." msgstr "" +"*PyObjC* est un **binding** Python vers le **framework** Objective-C/Cocoa " +"d'Apple, qui est la base de la plupart des développements modernes sur Mac. " +"Des informations sur PyObjC sont disponible à https://pythonhosted.org/" +"pyobjc/." #: ../Doc/using/mac.rst:146 msgid "" @@ -242,6 +307,12 @@ msgid "" "bundled with OS X by Apple, and the latest version can be downloaded and " "installed from https://www.activestate.com; it can also be built from source." msgstr "" +"La boîte à outils standard de Python pour des interfaces graphique est :mod:" +"`tkinter`, basé sur la boite a outils multi-plateformes **Tk** (https://www." +"tcl.tk). Une version native **Aqua** de **Tk** est empaquetée avec OS X par " +"Apple, et la dernière version peut être téléchargée et installée depuis " +"https://www.activestate.com ; elle peut aussi être construite depuis les " +"sources." #: ../Doc/using/mac.rst:151 msgid "" @@ -256,10 +327,13 @@ msgid "" "Mac OS X. More information can be found at https://riverbankcomputing.com/" "software/pyqt/intro." msgstr "" +"*PyQt* est une boîte à outils multi-plateformes pour interfaces graphique " +"populaire qui tourne nativement sur Mac OS X. Plus d'informations disponible " +"sur https://riverbankcomputing.com/software/pyqt/intro." #: ../Doc/using/mac.rst:160 msgid "Distributing Python Applications on the Mac" -msgstr "" +msgstr "Distribuer des Applications Python sur le Mac" #: ../Doc/using/mac.rst:162 msgid "" @@ -268,6 +342,11 @@ msgid "" "Mac application. This tool, however, is not robust enough to distribute " "Python applications to other users." msgstr "" +"L'outil \"Build Applet\" qui est placé dans le dossier MacPython 3.6 est " +"suffisant pour empaqueter des petits scripts Python sur votre propre machine " +"et pour les exécuter en tant qu'application Mac standard. Cependant, cet " +"outil n'est pas assez robuste pour distribuer des applications Python à " +"d'autres utilisateurs." #: ../Doc/using/mac.rst:167 msgid "" @@ -275,6 +354,9 @@ msgid "" "is :program:`py2app`. More information on installing and using py2app can be " "found at http://undefined.org/python/#py2app." msgstr "" +"L'outil standard pour déployer des applications Python sur le Mac est :" +"program:`py2app`. Plus d'information sur l'installation et l'utilisation de " +"**py2app** sur http://undefined.org/python/#py2app." #: ../Doc/using/mac.rst:173 msgid "Other Resources" @@ -285,15 +367,17 @@ msgid "" "The MacPython mailing list is an excellent support resource for Python users " "and developers on the Mac:" msgstr "" +"La liste de diffusion courriel **MacPython** est une excellente ressource " +"support pour les utilisateurs et développeurs Python sur Mac :" #: ../Doc/using/mac.rst:178 msgid "https://www.python.org/community/sigs/current/pythonmac-sig/" -msgstr "" +msgstr "https://www.python.org/community/sigs/current/pythonmac-sig/" #: ../Doc/using/mac.rst:180 msgid "Another useful resource is the MacPython wiki:" -msgstr "" +msgstr "Une autre ressource utile est le wiki **MacPython** :" #: ../Doc/using/mac.rst:182 msgid "https://wiki.python.org/moin/MacPython" -msgstr "" +msgstr "https://wiki.python.org/moin/MacPython" diff --git a/using/unix.po b/using/unix.po index 81526a791..b4bdfc40b 100644 --- a/using/unix.po +++ b/using/unix.po @@ -19,15 +19,15 @@ msgstr "" #: ../Doc/using/unix.rst:7 msgid "Using Python on Unix platforms" -msgstr "" +msgstr "Utilisation de Python sur les plateformes Unix" #: ../Doc/using/unix.rst:13 msgid "Getting and installing the latest version of Python" -msgstr "" +msgstr "Récupérer et installer la dernière version de Python" #: ../Doc/using/unix.rst:16 msgid "On Linux" -msgstr "" +msgstr "Sur Linux" #: ../Doc/using/unix.rst:18 msgid "" @@ -36,6 +36,11 @@ msgid "" "use that are not available on your distro's package. You can easily compile " "the latest version of Python from source." msgstr "" +"Python est pré-installé sur la plupart des distributions Linux, et est " +"disponible en paquet sur toutes les autres. Cependant, il y a certaines " +"fonctionnalités que vous voudrez utiliser qui ne seront pas disponibles sur " +"le paquet de votre distribution. Vous pouvez facilement compiler la dernière " +"version de Python depuis les sources." #: ../Doc/using/unix.rst:23 msgid "" @@ -43,22 +48,25 @@ msgid "" "repositories as well, you can easily make packages for your own distro. " "Have a look at the following links:" msgstr "" +"Dans le cas où Python n'est pas pré-installé et n'est pas dans les dépôts " +"non plus, vous pouvez facilement faire les paquets pour votre propre " +"distribution. Jetez un œil à ces liens :" #: ../Doc/using/unix.rst:29 msgid "https://www.debian.org/doc/manuals/maint-guide/first.en.html" -msgstr "" +msgstr "https://www.debian.org/doc/manuals/maint-guide/first.fr.html" #: ../Doc/using/unix.rst:30 msgid "for Debian users" -msgstr "" +msgstr "pour les utilisateurs de Debian" #: ../Doc/using/unix.rst:31 msgid "https://en.opensuse.org/Portal:Packaging" -msgstr "" +msgstr "https://en.opensuse.org/Portal:Packaging" #: ../Doc/using/unix.rst:32 msgid "for OpenSuse users" -msgstr "" +msgstr "pour les utilisateurs d'OpenSuse" #: ../Doc/using/unix.rst:33 msgid "" @@ -68,35 +76,37 @@ msgstr "" #: ../Doc/using/unix.rst:34 msgid "for Fedora users" -msgstr "" +msgstr "pour les utilisateurs de Fedora" #: ../Doc/using/unix.rst:35 msgid "http://www.slackbook.org/html/package-management-making-packages.html" -msgstr "" +msgstr "http://www.slackbook.org/html/package-management-making-packages.html" #: ../Doc/using/unix.rst:36 msgid "for Slackware users" -msgstr "" +msgstr "pour les utilisateurs de Slackware" #: ../Doc/using/unix.rst:40 msgid "On FreeBSD and OpenBSD" -msgstr "" +msgstr "Sur FreeBSD et OpenBSD" #: ../Doc/using/unix.rst:42 msgid "FreeBSD users, to add the package use::" -msgstr "" +msgstr "Utilisateurs de FreeBSD, pour installer le paquet, utilisez ::" #: ../Doc/using/unix.rst:46 msgid "OpenBSD users, to add the package use::" -msgstr "" +msgstr "Utilisateurs d'OpenBSD, pour installer le paquet, utilisez ::" #: ../Doc/using/unix.rst:52 msgid "For example i386 users get the 2.5.1 version of Python using::" msgstr "" +"Par exemple les utilisateurs d'``i386`` récupèrent la version 2.5.1 de " +"Python en faisant ::" #: ../Doc/using/unix.rst:58 msgid "On OpenSolaris" -msgstr "" +msgstr "Sur OpenSolaris" #: ../Doc/using/unix.rst:60 msgid "" @@ -104,10 +114,13 @@ msgid "" "versions of Python are available and can be installed with e.g. ``pkgutil -i " "python27``." msgstr "" +"Vous pouvez récupérer Python depuis `OpenCSW `_. " +"Différentes versions de Python sont disponibles et peuvent être installées. " +"Exemple : ``pkgutil -i python27``." #: ../Doc/using/unix.rst:67 msgid "Building Python" -msgstr "" +msgstr "Compiler Python" #: ../Doc/using/unix.rst:69 msgid "" @@ -117,10 +130,15 @@ msgid "" "devguide.python.org/setup/#getting-the-source-code>`_. (If you want to " "contribute patches, you will need a clone.)" msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est de " +"récupérer le `code source `_. Vous " +"pouvez télécharger la dernière version ou faire un `clone `_. (Si vous voulez contribuer à " +"des correctifs, il vous faut un clone.)" #: ../Doc/using/unix.rst:75 msgid "The build process consists in the usual ::" -msgstr "" +msgstr "Le processus de compilation est le suivant ::" #: ../Doc/using/unix.rst:81 msgid "" @@ -128,6 +146,9 @@ msgid "" "are extensively documented in the :source:`README.rst` file in the root of " "the Python source tree." msgstr "" +"Les options de configuration et mises en garde pour certaines plateformes " +"Unix spécifiques sont largement documentées dans le fichier :source:`README." +"rst` à la racine du dossier des sources Python." #: ../Doc/using/unix.rst:87 msgid "" @@ -135,10 +156,13 @@ msgid "" "``make altinstall`` is therefore recommended instead of ``make install`` " "since it only installs :file:`{exec_prefix}/bin/python{version}`." msgstr "" +"``make install`` peut écraser ou cacher le binaire :file:`python3`. ``make " +"altinstall`` est donc recommandé à la place de ``make install`` puisqu'il " +"installe seulement :file:`{exec_prefix}/bin/python{version}`." #: ../Doc/using/unix.rst:93 msgid "Python-related paths and files" -msgstr "" +msgstr "Fichiers et chemins liés à Python" #: ../Doc/using/unix.rst:95 msgid "" @@ -147,15 +171,21 @@ msgid "" "${exec_prefix}``) are installation-dependent and should be interpreted as " "for GNU software; they may be the same." msgstr "" +"Ceux-ci sont sujets à des différences en fonction des conventions locales " +"d'installation ; :envvar:`prefix` (``${prefix}``) et :envvar:`exec_prefix` " +"(``${exec_prefix}``) sont dépendants de l’installation et doivent être " +"interprétés comme pour des logiciels GNU ; ils peuvent être égaux." #: ../Doc/using/unix.rst:100 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" +"Par exemple, sur la plupart des systèmes Linux, leur valeur par défaut est :" +"file:`/usr`." #: ../Doc/using/unix.rst:103 msgid "File/directory" -msgstr "" +msgstr "Fichier/dossier" #: ../Doc/using/unix.rst:103 msgid "Meaning" @@ -163,50 +193,60 @@ msgstr "Signification" #: ../Doc/using/unix.rst:105 msgid ":file:`{exec_prefix}/bin/python3`" -msgstr "" +msgstr ":file:`{exec_prefix}/bin/python3`" #: ../Doc/using/unix.rst:105 msgid "Recommended location of the interpreter." -msgstr "" +msgstr "Emplacement recommandé de l'interpréteur." #: ../Doc/using/unix.rst:107 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" msgstr "" +":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" +"python{version}`" #: ../Doc/using/unix.rst:107 msgid "" "Recommended locations of the directories containing the standard modules." -msgstr "" +msgstr "Emplacements recommandés des dossiers contenant les modules standards." #: ../Doc/using/unix.rst:110 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" msgstr "" +":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" +"python{version}`" #: ../Doc/using/unix.rst:110 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." msgstr "" +"Emplacements recommandés des dossiers contenant les entêtes nécessaires au " +"développement d'extensions Python et à l'intégration de l'interpréteur." #: ../Doc/using/unix.rst:118 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" #: ../Doc/using/unix.rst:120 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with" msgstr "" +"Pour utiliser facilement des scripts Python sur Unix, vous devez les rendre " +"exécutables, par exemple avec" #: ../Doc/using/unix.rst:127 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" msgstr "" +"et mettre un *shebang* approprié en haut du script. Un bon choix est " +"généralement ::" #: ../Doc/using/unix.rst:132 msgid "" @@ -214,16 +254,22 @@ msgid "" "However, some Unices may not have the :program:`env` command, so you may " "need to hardcode ``/usr/bin/python3`` as the interpreter path." msgstr "" +"qui cherche l’interpréteur Python dans le :envvar:`PATH` complet. Cependant, " +"certains systèmes Unix peuvent ne pas avoir la commande :program:`env`, donc " +"vous devrez littéralement écrire ``/usr/bin/python3`` en tant que chemin " +"d’interpréteur." #: ../Doc/using/unix.rst:136 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." msgstr "" +"Pour utiliser des commandes *shell* dans vos scripts Python, regardez le " +"module :mod:`subprocess`." #: ../Doc/using/unix.rst:140 msgid "Editors and IDEs" -msgstr "" +msgstr "Éditeurs et IDEs" #: ../Doc/using/unix.rst:142 msgid "" @@ -238,3 +284,7 @@ msgid "" "and `Integrated Development Environments `_ for a comprehensive list." msgstr "" +"Merci d'aller sur `Python Editors `_ et `Integrated Development Environments `_ pour une liste " +"exhaustive." diff --git a/using/windows.po b/using/windows.po index 496d3c478..040679437 100644 --- a/using/windows.po +++ b/using/windows.po @@ -26,6 +26,9 @@ msgid "" "This document aims to give an overview of Windows-specific behaviour you " "should know about when using Python on Microsoft Windows." msgstr "" +"Ce document a pour but de donner une vue d'ensemble des comportements " +"spécifiques à Windows dont vous devriez être au courant si vous utilisez " +"Python sur Microsoft Windows." #: ../Doc/using/windows.rst:16 msgid "Installing Python" @@ -42,6 +45,15 @@ msgid "" "able to install for all users of a single machine, and a separate ZIP file " "is available for application-local distributions." msgstr "" +"Contrairement à la plupart des systèmes Unix, Windows n'inclut pas " +"d'installation de Python par défaut. Pour rendre Python disponible, l’équipe " +"CPython a compilé des installateurs (paquets MSI) pour chaque `release " +"`_ depuis plusieurs années. Ces " +"installateurs sont principalement destinés à une installation par " +"utilisateur de Python, avec l’interpréteur et la bibliothèque standard " +"utilisés par un seul utilisateur. Cet installateur peut aussi installer " +"Python pour tous les utilisateurs sur une seule machine et un fichier ZIP " +"séparé est disponible pour intégrer Python dans d'autres applications." #: ../Doc/using/windows.rst:28 msgid "Supported Versions" @@ -54,6 +66,11 @@ msgid "" "that Python |version| supports Windows Vista and newer. If you require " "Windows XP support then please install Python 3.4." msgstr "" +"Comme spécifié dans la :pep:`11`, une *release* Python ne gère qu'une " +"plateforme Windows alors que Microsoft considère la plateforme sous support " +"étendu. Ce qui veut dire que Python |version| supporte Windows Vista et " +"plus. Si vous avez besoin de compatibilité Windows XP, vous devez utiliser " +"Python 3.4." #: ../Doc/using/windows.rst:36 msgid "Installation Steps" @@ -69,20 +86,31 @@ msgid "" "connection for optional features. See :ref:`install-layout-option` for other " "ways to avoid downloading during installation." msgstr "" +"Quatre installateurs Python |version| sont disponibles au téléchargement — " +"deux de chaque pour les versions 32-bit et 64-bit de l'interpréteur. " +"L'**installateur web** est léger, et téléchargera automatiquement les " +"composants nécessaires. L'**installateur hors-ligne** inclut les composants " +"nécessaires pour une installation par défaut et n'a besoin d'une connexion " +"internet que pour des fonctionnalités optionnelles. Voir :ref:`install-" +"layout-option` pour d'autres moyens d’éviter des téléchargements durant " +"l'installation." #: ../Doc/using/windows.rst:46 msgid "After starting the installer, one of two options may be selected:" -msgstr "" +msgstr "Après avoir lancé l'installateur, deux options s'affichent :" #: ../Doc/using/windows.rst:50 msgid "If you select \"Install Now\":" -msgstr "" +msgstr "Si vous sélectionnez \"Installer Maintenant\" (``Install Now``):" #: ../Doc/using/windows.rst:52 msgid "" "You will *not* need to be an administrator (unless a system update for the C " "Runtime Library is required or you install the :ref:`launcher` for all users)" msgstr "" +"Vous n'aurez *pas* besoin d'avoir les droits d'administrateur (sauf si une " +"mise à jour de la bibliothèque d'exécution C est nécessaire ou si vous " +"installez le :ref:`launcher` pour tous les utilisateurs)" #: ../Doc/using/windows.rst:55 msgid "Python will be installed into your user directory" @@ -93,18 +121,23 @@ msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" msgstr "" +"Le :ref:`launcher` sera installé suivant l'option en bas de la première page" #: ../Doc/using/windows.rst:58 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" +"La bibliothèque standard, la suite de tests, le lanceur et *pip* seront " +"installés" #: ../Doc/using/windows.rst:59 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" +"Si l'option est cochée, le dossier d'installation sera ajouté à votre :" +"envvar:`PATH`" #: ../Doc/using/windows.rst:60 msgid "Shortcuts will only be visible for the current user" -msgstr "" +msgstr "Les raccourcis ne seront visibles que pour l'utilisateur actuel" #: ../Doc/using/windows.rst:62 msgid "" @@ -113,51 +146,66 @@ msgid "" "actions. To install debugging symbols or binaries, you will need to use this " "option." msgstr "" +"Sélectionner \"Personnaliser l'installation\" (``Customize installation``) " +"vous permettra de sélectionner les fonctionnalités à installer, le chemin " +"d'installation et d'autres options ou des options post-installation. Pour " +"installer des binaires ou symboles de débogage, vous devrez utiliser cette " +"option." #: ../Doc/using/windows.rst:66 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" msgstr "" +"Pour effectuer une installation pour tous les utilisateurs, vous devez " +"sélectionner \"Personnaliser l'installation\". Dans ce cas :" #: ../Doc/using/windows.rst:69 msgid "You may be required to provide administrative credentials or approval" msgstr "" +"Vous pouvez avoir à donner une approbation ou des identifiants administrateur" #: ../Doc/using/windows.rst:70 msgid "Python will be installed into the Program Files directory" -msgstr "" +msgstr "Python sera installé dans le dossier *Program Files*" #: ../Doc/using/windows.rst:71 msgid "The :ref:`launcher` will be installed into the Windows directory" -msgstr "" +msgstr "Le :ref:`launcher` sera installé dans le dossier *Windows*" #: ../Doc/using/windows.rst:72 msgid "Optional features may be selected during installation" msgstr "" +"Des fonctionnalités optionnelles peuvent être sélectionnées durant " +"l'installation" #: ../Doc/using/windows.rst:73 msgid "The standard library can be pre-compiled to bytecode" -msgstr "" +msgstr "La bibliothèque standard peut être pré-compilée en *bytecode*" #: ../Doc/using/windows.rst:74 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" +"Si sélectionné, le chemin d'installation sera ajouté au :envvar:`PATH` " +"système" #: ../Doc/using/windows.rst:75 msgid "Shortcuts are available for all users" -msgstr "" +msgstr "Les raccourcis sont disponibles pour tous les utilisateurs" #: ../Doc/using/windows.rst:80 msgid "Removing the MAX_PATH Limitation" -msgstr "" +msgstr "Suppression de la limitation `MAX_PATH`" #: ../Doc/using/windows.rst:82 msgid "" "Windows historically has limited path lengths to 260 characters. This meant " "that paths longer than this would not resolve and errors would result." msgstr "" +"Historiquement les chemins sous Windows étaient limités 260 caractères. Cela " +"impliquait que les chemins plus longs n'étaient pas résolus, et seraient une " +"cause d'erreurs." #: ../Doc/using/windows.rst:85 msgid "" @@ -167,6 +215,11 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" "\\FileSystem@LongPathsEnabled`` to ``1``." msgstr "" +"Dans les dernières versions de Windows, cette limitation peut être étendue à " +"approximativement 32.000 caractères. Votre administrateur devra activer la " +"stratégie de groupe \"**Enable Win32 long paths**\" ou mettre la valeur du " +"registre ``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" +"\\FileSystem@LongPathsEnabled`` à ``1``." #: ../Doc/using/windows.rst:91 msgid "" @@ -175,18 +228,25 @@ msgid "" "when using strings. (Use of bytes as paths is deprecated on Windows, and " "this feature is not available when using bytes.)" msgstr "" +"Ceci permet à la fonction :func:`open`, le module :mod:`os` et la plupart " +"des autres fonctionnalités utilisant des chemins d'accepter et de renvoyer " +"des chemins plus longs que 260 caractères quand vous utilisez des chaînes. " +"(L'utilisation de chemins sous forme de `bytes` obsolète sur Windows, et " +"cette fonctionnalité n'est pas disponible quand vous utilisez des `bytes`.)" #: ../Doc/using/windows.rst:96 msgid "After changing the above option, no further configuration is required." msgstr "" +"Après avoir changé l'option si-dessus, aucune configuration supplémentaire " +"n'est requise." #: ../Doc/using/windows.rst:100 msgid "Support for long paths was enabled in Python." -msgstr "" +msgstr "Gestion des chemins longs." #: ../Doc/using/windows.rst:105 msgid "Installing Without UI" -msgstr "" +msgstr "Installation sans l'interface utilisateur" #: ../Doc/using/windows.rst:107 msgid "" @@ -195,6 +255,11 @@ msgid "" "on many machines without user interaction. These options may also be set " "without suppressing the UI in order to change some of the defaults." msgstr "" +"Toutes les options disponibles dans l'installateur graphique peuvent aussi " +"être spécifiées dans l'invite de commande, permettant à des installateurs " +"scriptés de répliquer une installation sur plusieurs machines sans " +"interaction humaine. Ces options peuvent aussi être ajoutées sans enlever " +"l'interface graphique pour changer les valeurs par défauts." #: ../Doc/using/windows.rst:112 msgid "" @@ -203,6 +268,11 @@ msgid "" "and errors, pass the ``/passive`` option. The ``/uninstall`` option may be " "passed to immediately begin removing Python - no prompt will be displayed." msgstr "" +"Pour complétement cacher l'interface de l'installateur et installer Python " +"silencieusement, passez l'option ``/quiet``. Pour sauter les interactions " +"utilisateur mais afficher la progression et les erreurs, passez l'option ``/" +"passive``. L'option ``/uninstall`` peut être passée pour immédiatement " +"démarrer la suppression de Python -- Aucune confirmation ne sera demandée." #: ../Doc/using/windows.rst:118 msgid "" @@ -210,6 +280,10 @@ msgid "" "``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " "list of available options is shown below." msgstr "" +"Toutes les autres options sont passées sous la forme ``name=value``, ou " +"``value`` est normalement soit ``0`` pour désactiver une fonctionnalité, " +"soit ``1`` pour activer une fonctionnalité, soit un chemin. Ci-dessous la " +"liste complète des options." #: ../Doc/using/windows.rst:123 msgid "Name" @@ -221,15 +295,15 @@ msgstr "Description" #: ../Doc/using/windows.rst:123 msgid "Default" -msgstr "" +msgstr "Valeur par défaut" #: ../Doc/using/windows.rst:125 msgid "InstallAllUsers" -msgstr "" +msgstr "InstallAllUsers" #: ../Doc/using/windows.rst:125 msgid "Perform a system-wide installation." -msgstr "" +msgstr "Effectue une installation pour tous les utilisateurs." #: ../Doc/using/windows.rst:125 ../Doc/using/windows.rst:146 #: ../Doc/using/windows.rst:149 ../Doc/using/windows.rst:158 @@ -240,37 +314,42 @@ msgstr "0" #: ../Doc/using/windows.rst:127 msgid "TargetDir" -msgstr "" +msgstr "TargetDir" #: ../Doc/using/windows.rst:127 msgid "The installation directory" -msgstr "" +msgstr "Le dossier d'installation" #: ../Doc/using/windows.rst:127 msgid "Selected based on InstallAllUsers" -msgstr "" +msgstr "Sélection basée sur InstallAllUsers" #: ../Doc/using/windows.rst:130 msgid "DefaultAllUsersTargetDir" -msgstr "" +msgstr "DefaultAllUsersTargetDir" #: ../Doc/using/windows.rst:130 msgid "The default installation directory for all-user installs" msgstr "" +"Le dossier d'installation par défaut pour les installations pour tous les " +"utilisateurs" #: ../Doc/using/windows.rst:130 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" msgstr "" +":file:`%ProgramFiles%\\\\\\ Python X.Y` ou :file:`\\ %ProgramFiles(x86)%\\\\" +"\\ Python X.Y`" #: ../Doc/using/windows.rst:135 msgid "DefaultJustForMeTargetDir" -msgstr "" +msgstr "DefaultJustForMeTargetDir" #: ../Doc/using/windows.rst:135 msgid "The default install directory for just-for-me installs" msgstr "" +"Le dossier d'installation par défaut pour des installations juste pour soi" #: ../Doc/using/windows.rst:135 msgid "" @@ -280,23 +359,25 @@ msgstr "" #: ../Doc/using/windows.rst:140 msgid "DefaultCustomTargetDir" -msgstr "" +msgstr "DefaultCustomTargetDir" #: ../Doc/using/windows.rst:140 msgid "The default custom install directory displayed in the UI" msgstr "" +"Le dossier d'installation personnalisé par défaut affiché par l'interface " +"utilisateur" #: ../Doc/using/windows.rst:140 ../Doc/using/windows.rst:189 msgid "(empty)" -msgstr "" +msgstr "(vide)" #: ../Doc/using/windows.rst:143 msgid "AssociateFiles" -msgstr "" +msgstr "AssociateFiles" #: ../Doc/using/windows.rst:143 msgid "Create file associations if the launcher is also installed." -msgstr "" +msgstr "Crée les associations de fichiers si le lanceur est aussi installé." #: ../Doc/using/windows.rst:143 ../Doc/using/windows.rst:153 #: ../Doc/using/windows.rst:156 ../Doc/using/windows.rst:160 @@ -309,15 +390,15 @@ msgstr "1" #: ../Doc/using/windows.rst:146 msgid "CompileAll" -msgstr "" +msgstr "CompileAll" #: ../Doc/using/windows.rst:146 msgid "Compile all ``.py`` files to ``.pyc``." -msgstr "" +msgstr "Compile tous les fichiers ``.py`` en ``.pyc``." #: ../Doc/using/windows.rst:149 msgid "PrependPath" -msgstr "" +msgstr "PrependPath" #: ../Doc/using/windows.rst:149 msgid "" @@ -327,138 +408,146 @@ msgstr "" #: ../Doc/using/windows.rst:153 msgid "Shortcuts" -msgstr "" +msgstr "Shortcuts" #: ../Doc/using/windows.rst:153 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" +"Crée des raccourcis pour l'interpréteur, la documentation et IDLE si " +"installé." #: ../Doc/using/windows.rst:156 msgid "Include_doc" -msgstr "" +msgstr "Include_doc" #: ../Doc/using/windows.rst:156 msgid "Install Python manual" -msgstr "" +msgstr "Installe le manuel Python" #: ../Doc/using/windows.rst:158 msgid "Include_debug" -msgstr "" +msgstr "Include_debug" #: ../Doc/using/windows.rst:158 msgid "Install debug binaries" -msgstr "" +msgstr "Installe les binaires de débogage" #: ../Doc/using/windows.rst:160 msgid "Include_dev" -msgstr "" +msgstr "Include_dev" #: ../Doc/using/windows.rst:160 msgid "Install developer headers and libraries" -msgstr "" +msgstr "Installe les fichiers d'en-tête et les bibliothèques développeur" #: ../Doc/using/windows.rst:163 msgid "Include_exe" -msgstr "" +msgstr "Include_exe" #: ../Doc/using/windows.rst:163 msgid "Install :file:`python.exe` and related files" -msgstr "" +msgstr "Installe :file:`python.exe` et les fichiers connexes" #: ../Doc/using/windows.rst:166 msgid "Include_launcher" -msgstr "" +msgstr "Include_launcher" #: ../Doc/using/windows.rst:166 msgid "Install :ref:`launcher`." -msgstr "" +msgstr "Installe le :ref:`launcher`." #: ../Doc/using/windows.rst:168 msgid "InstallLauncherAllUsers" -msgstr "" +msgstr "InstallLauncherAllUsers" #: ../Doc/using/windows.rst:168 msgid "Installs :ref:`launcher` for all users." -msgstr "" +msgstr "Installe le :ref:`launcher` pour tous les utilisateurs." #: ../Doc/using/windows.rst:171 msgid "Include_lib" -msgstr "" +msgstr "Include_lib" #: ../Doc/using/windows.rst:171 msgid "Install standard library and extension modules" -msgstr "" +msgstr "Installe la bibliothèque standard et les modules d'extension" #: ../Doc/using/windows.rst:174 msgid "Include_pip" -msgstr "" +msgstr "Include_pip" #: ../Doc/using/windows.rst:174 msgid "Install bundled pip and setuptools" -msgstr "" +msgstr "Installe ``pip`` et ``setuptools``" #: ../Doc/using/windows.rst:176 msgid "Include_symbols" -msgstr "" +msgstr "Include_symbols" #: ../Doc/using/windows.rst:176 msgid "Install debugging symbols (`*`.pdb)" -msgstr "" +msgstr "Installe les symboles de débogage (``*.pdb``)" #: ../Doc/using/windows.rst:178 msgid "Include_tcltk" -msgstr "" +msgstr "Include_tcltk" #: ../Doc/using/windows.rst:178 msgid "Install Tcl/Tk support and IDLE" -msgstr "" +msgstr "Installe Tcl/Tk et IDLE" #: ../Doc/using/windows.rst:180 msgid "Include_test" -msgstr "" +msgstr "Include_test" #: ../Doc/using/windows.rst:180 msgid "Install standard library test suite" -msgstr "" +msgstr "Installe la suite de tests de la bibliothèque standard" #: ../Doc/using/windows.rst:182 msgid "Include_tools" -msgstr "" +msgstr "Include_tools" #: ../Doc/using/windows.rst:182 msgid "Install utility scripts" -msgstr "" +msgstr "Installe les scripts utilitaires" #: ../Doc/using/windows.rst:184 msgid "LauncherOnly" -msgstr "" +msgstr "LauncherOnly" #: ../Doc/using/windows.rst:184 msgid "Only installs the launcher. This will override most other options." msgstr "" +"Installe seulement le lanceur. Ceci écrasera la plupart des autres options." #: ../Doc/using/windows.rst:187 msgid "SimpleInstall" -msgstr "" +msgstr "SimpleInstall" #: ../Doc/using/windows.rst:187 msgid "Disable most install UI" -msgstr "" +msgstr "Désactive la plupart de l'interface d'installation" #: ../Doc/using/windows.rst:189 msgid "SimpleInstallDescription" -msgstr "" +msgstr "SimpleInstallDescription" #: ../Doc/using/windows.rst:189 msgid "A custom message to display when the simplified install UI is used." msgstr "" +"Un message personnalisé à afficher quand l'interface d'installation " +"simplifiée est utilisée." #: ../Doc/using/windows.rst:193 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" msgstr "" +"Par exemple, pour installer silencieusement Python sur tout le système, vous " +"pourriez utilisez la commande suivante (depuis une invite de commande " +"administrateur) ::" #: ../Doc/using/windows.rst:198 msgid "" @@ -466,6 +555,10 @@ msgid "" "suite, you could provide a shortcut with the following command. This will " "display a simplified initial page and disallow customization::" msgstr "" +"Pour permettre à l'utilisateur d'installer facilement une copie de Python " +"sans la suite de tests, vous pouvez proposer un raccourci avec la commande " +"suivante. Cela affichera une page initiale simplifiée et interdira la " +"personnalisation ::" #: ../Doc/using/windows.rst:205 msgid "" @@ -473,6 +566,9 @@ msgid "" "recommended for per-user installs when there is also a system-wide " "installation that included the launcher.)" msgstr "" +"(Notez qu'omettre le lanceur omet aussi les associations de fichiers, et " +"n'est recommandé que pour les installations par utilisateur quand il y a " +"aussi une installation complète sur le système qui a inclus de lanceur.)" #: ../Doc/using/windows.rst:209 msgid "" @@ -485,7 +581,7 @@ msgstr "" #: ../Doc/using/windows.rst:228 msgid "Installing Without Downloading" -msgstr "" +msgstr "Installation sans téléchargement" #: ../Doc/using/windows.rst:230 msgid "" @@ -497,6 +593,15 @@ msgid "" "be bigger than required, but where a large number of installations are going " "to be performed it is very useful to have a locally cached copy." msgstr "" +"Comme certaines fonctionnalités de Python ne sont pas incluses dans " +"l'installateur initial, la sélection de certaines de ces fonctionnalités " +"peut demander une connexion Internet. Pour éviter ce besoin, tous les " +"composants nécessaires peuvent être téléchargés à la demande pour créer un " +"installateur complet qui ne demandera plus de connexion Internet " +"indépendamment des options sélectionnées. Notez que ce téléchargement peut " +"être plus gros que nécessaire, mais lorsqu'un un grand nombre " +"d'installations doivent être faites, il est très utile d'avoir une copie " +"locale." #: ../Doc/using/windows.rst:238 msgid "" @@ -510,10 +615,11 @@ msgstr "" msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" +"Vous pouvez aussi spécifier l'option ``/quiet`` pour masquer la progression." #: ../Doc/using/windows.rst:250 msgid "Modifying an install" -msgstr "" +msgstr "Modification d'une installation" #: ../Doc/using/windows.rst:252 msgid "" @@ -521,6 +627,11 @@ msgid "" "Programs and Features tool that is part of Windows. Select the Python entry " "and choose \"Uninstall/Change\" to open the installer in maintenance mode." msgstr "" +"Une fois Python installé, vous pouvez ajouter ou supprimer des " +"fonctionnalités depuis l'outil Windows *Programs and Features* (Programmes " +"et Fonctionnalités). Sélectionnez la ligne `Python` et choisissez " +"\"Uninstall/Change\" (Désinstaller/Modifier) pour ouvrir l'installateur en " +"mode maintenance." #: ../Doc/using/windows.rst:256 msgid "" @@ -529,22 +640,32 @@ msgid "" "cannot be changed in this mode, such as the install directory; to modify " "these, you will need to remove and then reinstall Python completely." msgstr "" +"\"Modify\" vous permet d'ajouter ou d'enlever des fonctionnalités en " +"modifiant les cases à cocher (les cases inchangées n'installeront ou ne " +"supprimeront rien). Certaines options ne peuvent pas être modifiées dans ce " +"mode, comme le dossier d'installation. Pour modifier ces options, vous " +"devrez ré-installer Python entièrement." #: ../Doc/using/windows.rst:261 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." msgstr "" +"\"Repair\" vérifiera tous les fichiers qui doivent être installés avec les " +"paramètres actuels le sont, et remplacera ceux qui ont étés supprimés ou " +"modifiés." #: ../Doc/using/windows.rst:264 msgid "" "\"Uninstall\" will remove Python entirely, with the exception of the :ref:" "`launcher`, which has its own entry in Programs and Features." msgstr "" +"\"Uninstall\" désinstallera Python entièrement, à l'exception du :ref:" +"`launcher` qui à sa propre ligne dans *Programs and Features*." #: ../Doc/using/windows.rst:268 msgid "Other Platforms" -msgstr "" +msgstr "Autres plateformes" #: ../Doc/using/windows.rst:270 msgid "" @@ -552,10 +673,15 @@ msgid "" "earlier are no longer supported (due to the lack of users or developers). " "Check :pep:`11` for details on all unsupported platforms." msgstr "" +"Avec le développement continu de Python, certaines plateformes qui étaient " +"auparavant prises en charge ne sont plus prises en charge (en raison du " +"manque d'utilisateurs ou de développeurs). Voir :pep:`11` pour plus de " +"détails sur toutes les plateformes non prises en charge." #: ../Doc/using/windows.rst:274 msgid "`Windows CE `_ is still supported." msgstr "" +"`Windows CE `_ est toujours pris en charge." #: ../Doc/using/windows.rst:275 msgid "" @@ -564,12 +690,19 @@ msgid "" "pub/pc/gnuwin32/cygwin/mirrors/cygnus/ release/python>`_, `Maintainer " "releases `_)" msgstr "" +"L’installateur `Cygwin `_ offre d’installer " +"l’interpréteur Python (cf. `Cygwin package source `_, `Maintainer " +"releases `_)" #: ../Doc/using/windows.rst:281 msgid "" "See `Python for Windows `_ for " "detailed information about platforms with pre-compiled installers." msgstr "" +"Voir `Python pour Windows `_ pour " +"des instructions détaillées sur les plateformes avec installateurs pré-" +"compilés." #: ../Doc/using/windows.rst:288 msgid "" @@ -607,7 +740,7 @@ msgstr "" #: ../Doc/using/windows.rst:303 msgid "Alternative bundles" -msgstr "" +msgstr "Paquets alternatifs" #: ../Doc/using/windows.rst:305 msgid "" @@ -615,14 +748,19 @@ msgid "" "including additional functionality. The following is a list of popular " "versions and their key features:" msgstr "" +"À part la distribution standard CPython, il y a des paquets modifiés " +"incluant des fonctionnalités additionnelles. La liste qui suit est une liste " +"de versions populaires et de leurs fonctionnalités principales :" #: ../Doc/using/windows.rst:310 msgid "`ActivePython `_" -msgstr "" +msgstr "`ActivePython `_" #: ../Doc/using/windows.rst:310 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" +"Installeur avec une compatibilité multi-plateforme, de la documentation, et " +"*PyWin32*" #: ../Doc/using/windows.rst:314 msgid "`Anaconda `_" @@ -633,6 +771,8 @@ msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." msgstr "" +"Des modules scientifiques populaires (comme *numpy*, *scipy* et *pandas*) et " +"le gestionnaire de paquets ``conda``." #: ../Doc/using/windows.rst:318 msgid "`Canopy `_" @@ -643,26 +783,33 @@ msgid "" "A \"comprehensive Python analysis environment\" with editors and other " "development tools." msgstr "" +"Un \"environnement d'analyse complet Python\" avec des éditeurs et autres " +"outils de développement." #: ../Doc/using/windows.rst:322 msgid "`WinPython `_" -msgstr "" +msgstr "`WinPython `_" #: ../Doc/using/windows.rst:321 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." msgstr "" +"Distribution spécifique à Windows avec des paquets scientifiques pré-" +"compilés et des outils pour construire des paquets." #: ../Doc/using/windows.rst:324 msgid "" "Note that these packages may not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" +"Notez que ces paquets peuvent ne pas inclure la dernière version de Python " +"ou d'autres bibliothèques, et ne sont pas maintenus ni supportés par les " +"*core devs* Python." #: ../Doc/using/windows.rst:330 msgid "Configuring Python" -msgstr "" +msgstr "Configurer Python" #: ../Doc/using/windows.rst:332 msgid "" @@ -672,28 +819,43 @@ msgid "" "is only reliable for a single, system-wide installation. If you regularly " "use multiple versions of Python, consider using the :ref:`launcher`." msgstr "" +"Pour exécuter Python confortablement à partir d'une invite de commandes, " +"vous pouvez envisager de modifier certaines variables d'environnement par " +"défaut dans Windows. Bien que l'installateur offre une option pour " +"configurer les variables ``PATH`` et ``PATHEXT`` pour vous, ce n'est fiable " +"que pour une seule installation à l'échelle du système. Si vous utilisez " +"régulièrement plusieurs versions de Python, pensez à utiliser le :ref:" +"`launcher`." #: ../Doc/using/windows.rst:342 msgid "Excursus: Setting environment variables" -msgstr "" +msgstr "Digression : Définition des variables d'environnement" #: ../Doc/using/windows.rst:344 msgid "" "Windows allows environment variables to be configured permanently at both " "the User level and the System level, or temporarily in a command prompt." msgstr "" +"Windows permet de configurer les variables d'environnement de façon " +"permanente au niveau de l'utilisateur et du système, ou temporairement dans " +"une invite de commandes." #: ../Doc/using/windows.rst:347 msgid "" "To temporarily set environment variables, open Command Prompt and use the :" "command:`set` command:" msgstr "" +"Pour définir temporairement les variables d'environnement, ouvrez l'invite " +"de commandes et utilisez la commande :command:`set` :" #: ../Doc/using/windows.rst:356 msgid "" "These changes will apply to any further commands executed in that console, " "and will be inherited by any applications started from the console." msgstr "" +"Ces modifications s'appliqueront à toutes les autres commandes exécutées " +"dans cette console et seront héritées par toutes les applications démarrées " +"à partir de cette console." #: ../Doc/using/windows.rst:359 msgid "" @@ -703,6 +865,10 @@ msgid "" "exe` to the start is a common way to ensure the correct version of Python is " "launched." msgstr "" +"Un nom de variable entre des signes pour cent sera remplacé par sa valeur, " +"vous permettant d'ajouter votre nouvelle valeur au début ou à la fin. " +"Ajouter :program:`python.exe` au début de :envvar:`PATH` est un moyen " +"courant de s'assurer que la version correcte de Python est lancée." #: ../Doc/using/windows.rst:365 msgid "" @@ -713,12 +879,23 @@ msgid "" "variables. To change System variables, you need non-restricted access to " "your machine (i.e. Administrator rights)." msgstr "" +"Pour modifier définitivement les variables d'environnement par défaut, " +"recherchez « modifier les variables d'environnement », via le menu démarrer, " +"ou ouvrez « Propriétés Système », :guilabel:`Paramètres Système Avancés` et " +"cliquez sur le bouton :guilabel:`Variables d'Environnement`. Dans cette " +"boîte de dialogue, vous pouvez ajouter ou modifier des variables " +"utilisateurs et systèmes. Pour modifier les variables systèmes, vous avez " +"besoin d'un accès non restreint à votre ordinateur (c'est-à-dire aux droits " +"d'administrateur)." #: ../Doc/using/windows.rst:374 msgid "" "Windows will concatenate User variables *after* System variables, which may " "cause unexpected results when modifying :envvar:`PATH`." msgstr "" +"Windows va concaténer les variables utilisateurs *après* les variables " +"systèmes, ce qui peut provoquer des résultats inattendus lors de la " +"modification de :envvar:`PATH`." #: ../Doc/using/windows.rst:377 msgid "" @@ -727,6 +904,10 @@ msgid "" "only includes code that is compatible with all of your installed Python " "versions." msgstr "" +"La variable :envvar:`PYTHONPATH` est utilisée par toutes les versions de " +"Python 2 et Python 3, vous ne devez donc pas configurer cette variable de " +"façon permanente à moins qu'elle n'ajoute que du code compatible avec toutes " +"les versions de Python installées." #: ../Doc/using/windows.rst:385 msgid "https://support.microsoft.com/kb/100843" @@ -734,23 +915,26 @@ msgstr "" #: ../Doc/using/windows.rst:385 msgid "Environment variables in Windows NT" -msgstr "" +msgstr "Variables d'environnement dans Windows NT" #: ../Doc/using/windows.rst:388 msgid "https://technet.microsoft.com/en-us/library/cc754250.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc754250.aspx" #: ../Doc/using/windows.rst:388 msgid "The SET command, for temporarily modifying environment variables" msgstr "" +"La commande SET, pour modifier temporairement les variables d'environnement" #: ../Doc/using/windows.rst:391 msgid "https://technet.microsoft.com/en-us/library/cc755104.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc755104.aspx" #: ../Doc/using/windows.rst:391 msgid "The SETX command, for permanently modifying environment variables" msgstr "" +"La commande SETX, pour modifier de façon permanente les variables " +"d'environnement" #: ../Doc/using/windows.rst:394 msgid "https://support.microsoft.com/kb/310519" @@ -762,7 +946,7 @@ msgstr "Comment gérer les variables d'environnement sous Windows XP" #: ../Doc/using/windows.rst:396 msgid "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" -msgstr "" +msgstr "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" #: ../Doc/using/windows.rst:397 msgid "Setting Environment variables, Louis J. Farrugia" @@ -778,6 +962,10 @@ msgid "" "interpreter, you might want to start Python in the command prompt. The " "installer has an option to set that up for you." msgstr "" +"En plus d'utiliser l'entrée du menu Démarrer automatiquement créée pour " +"l'interpréteur Python, vous souhaiterez peut-être démarrer Python depuis " +"l'invite de commandes. L'installateur a une option pour installer cela pour " +"vous." #: ../Doc/using/windows.rst:410 msgid "" @@ -789,6 +977,14 @@ msgid "" "your scripts with command line options, see :ref:`using-on-cmdline` " "documentation." msgstr "" +"Sur la première page de l'installateur, une option intitulée \"Ajouter " +"Python au *PATH*\" peut être sélectionnée pour que l'installateur ajoute " +"l'emplacement d'installation dans le :envvar:`PATH`. L'emplacement du " +"dossier :file:`Scripts\\\\` y est également ajouté. Cela vous permet de " +"taper :command:`Python` pour exécuter l'interpréteur, et :command:`pip` pour " +"l'installateur de paquets. Ainsi, vous pouvez également exécuter vos scripts " +"avec les options de ligne de commande, voir la documentation :ref:`using-on-" +"cmdline`." #: ../Doc/using/windows.rst:417 msgid "" @@ -800,10 +996,18 @@ msgid "" "entries. An example variable could look like this (assuming the first two " "entries already existed)::" msgstr "" +"Si vous n'activez pas cette option au moment de l'installation, vous pouvez " +"toujours ré-exécuter l'installateur, sélectionner Modifier et l'activer. " +"Vous pouvez également modifier manuellement le :envvar:`PATH` à l'aide des " +"instructions de :ref:`setting-envvars`. Vous devez définir votre variable " +"d'environnement :envvar:`PATH` pour inclure le répertoire de votre " +"installation Python, délimité par un point-virgule des autres entrées. Une " +"variable d'exemple pourrait ressembler à ceci (en supposant que les deux " +"premières entrées existaient déjà) ::" #: ../Doc/using/windows.rst:430 msgid "Python Launcher for Windows" -msgstr "" +msgstr "Lanceur Python pour Windows" #: ../Doc/using/windows.rst:434 msgid "" @@ -812,6 +1016,10 @@ msgid "" "line) to indicate a preference for a specific Python version, and will " "locate and execute that version." msgstr "" +"Le lanceur Python pour Windows est un utilitaire qui facilite la recherche " +"et l'exécution de différentes versions de Python. Il permet aux scripts (ou " +"à la ligne de commande) d'indiquer une préférence pour une version Python " +"spécifique, cherchera et exécutera cette version." #: ../Doc/using/windows.rst:439 msgid "" @@ -820,10 +1028,14 @@ msgid "" "over system-wide ones, and orders by language version rather than using the " "most recently installed version." msgstr "" +"Contrairement à la variable :envvar:`PATH`, le lanceur sélectionne " +"correctement la version la plus appropriée de Python. Il préfère les " +"installations par utilisateur sur celles du système, et les trie par version " +"plutôt que d'utiliser la version la plus récente installée." #: ../Doc/using/windows.rst:445 msgid "Getting started" -msgstr "" +msgstr "Pour commencer" #: ../Doc/using/windows.rst:448 msgid "From the command-line" @@ -836,6 +1048,11 @@ msgid "" "of Python, so it does not matter which version is installed. To check that " "the launcher is available, execute the following command in Command Prompt:" msgstr "" +"Les installations systèmes de Python 3.3 et ultérieur mettent le lanceur " +"dans votre :envvar:`PATH`. Le lanceur est compatible avec toutes les " +"versions disponibles de Python, peu importe lesquelles sont installées. Pour " +"vérifier que le lanceur est disponible, exécutez la commande suivante dans " +"l'invite de commandes :" #: ../Doc/using/windows.rst:461 msgid "" @@ -843,6 +1060,9 @@ msgid "" "started - it can be exited as normal, and any additional command-line " "arguments specified will be sent directly to Python." msgstr "" +"Vous devriez voir se lancer la dernière version de Python installée — il " +"peut être quitté normalement, et tous les arguments de ligne de commande " +"supplémentaires spécifiés seront envoyés directement à Python." #: ../Doc/using/windows.rst:465 msgid "" @@ -850,30 +1070,37 @@ msgid "" "you will have noticed that Python |version| was started - to launch Python " "2.7, try the command:" msgstr "" +"Si plusieurs versions de Python sont installées (par exemple, 2.7 et |" +"version|), vous aurez remarqué que Python |version| se lance -- pour lancer " +"Python 2.7, essayez la commande :" #: ../Doc/using/windows.rst:473 msgid "" "If you want the latest version of Python 2.x you have installed, try the " "command:" msgstr "" +"Si vous voulez que la dernière version de Python 2.x que vous avez installé, " +"essayez la commande :" #: ../Doc/using/windows.rst:480 msgid "You should find the latest version of Python 2.x starts." -msgstr "" +msgstr "Remarquez que la dernière version de Python 2.x démarre." #: ../Doc/using/windows.rst:482 msgid "If you see the following error, you do not have the launcher installed:" -msgstr "" +msgstr "Si vous voyez l'erreur suivante, le lanceur n'est pas installé :" #: ../Doc/using/windows.rst:489 msgid "" "Per-user installations of Python do not add the launcher to :envvar:`PATH` " "unless the option was selected on installation." msgstr "" +"Les installations par utilisateur de Python n'ajoutent pas le lanceur à :" +"envvar:`PATH` sauf si l'option a été sélectionnée lors de l'installation." #: ../Doc/using/windows.rst:493 msgid "Virtual environments" -msgstr "" +msgstr "Environnements virtuels" #: ../Doc/using/windows.rst:497 msgid "" @@ -884,26 +1111,38 @@ msgid "" "interpreter, either deactivate the virtual environment, or explicitly " "specify the global Python version." msgstr "" +"Si le lanceur est exécuté sans version de Python explicite et qu'un " +"environnement virtuel (créé avec le module de la bibliothèque standard :mod:" +"`venv` ou l'outil externe ``virtualenv``) est actif, le lanceur exécute " +"l'interpréteur de l'environnement virtuel plutôt que l'interpréteur global. " +"Pour exécuter l'interpréteur global, désactivez l'environnement virtuel ou " +"spécifiez explicitement la version Python globale." #: ../Doc/using/windows.rst:505 msgid "From a script" -msgstr "" +msgstr "À partir d'un script" #: ../Doc/using/windows.rst:507 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" msgstr "" +"Créons un script Python de test, créez un fichier appelé ``hello.py`` avec " +"le contenu suivant" #: ../Doc/using/windows.rst:516 msgid "From the directory in which hello.py lives, execute the command:" msgstr "" +"À partir du répertoire dans lequel se trouve ``hello.py``, exécutez la " +"commande :" #: ../Doc/using/windows.rst:522 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" msgstr "" +"Vous devriez voir le numéro de version du Python 2.x le plus récemment " +"installé. Maintenant, essayez de changer la première ligne en :" #: ../Doc/using/windows.rst:529 msgid "" @@ -913,6 +1152,12 @@ msgid "" "first line to ``#! python2.6`` and you should find the 2.6 version " "information printed." msgstr "" +"La commande doit maintenant afficher les dernières informations de Python 3." +"x. Comme pour les exemples de ligne de commande ci-dessus, vous pouvez " +"spécifier un qualificateur de version plus explicite. En supposant que vous " +"avez installé Python 2.6, essayez de changer la première ligne à ``#! " +"python2.6`` et vous devriez trouver les informations de version 2.6 " +"imprimées." #: ../Doc/using/windows.rst:535 msgid "" @@ -921,10 +1166,14 @@ msgid "" "compatibility and for compatibility with Unix, where the command ``python`` " "typically refers to Python 2." msgstr "" +"Notez que, contrairement à l'utilisation interactive, un \"python\" nu " +"utilisera la dernière version de Python 2.x que vous avez installé. C'est " +"pour la compatibilité ascendante et pour la compatibilité avec UNIX, où la " +"commande ``python`` fait généralement référence à Python 2." #: ../Doc/using/windows.rst:541 msgid "From file associations" -msgstr "" +msgstr "À partir d'associations de fichiers" #: ../Doc/using/windows.rst:543 msgid "" @@ -934,16 +1183,25 @@ msgid "" "be used, and therefore you can use the same facilities described above to " "have the script specify the version which should be used." msgstr "" +"Le lanceur aurait dû être associé à des fichiers Python (des fichiers comme " +"``.py``, ``.pyw``, ``.pyc``) lorsqu'il a été installé. Cela signifie que " +"lorsque vous double-cliquez sur l'un de ces fichiers à partir de " +"l'Explorateur Windows, le lanceur sera utilisé, et donc vous pouvez utiliser " +"les mêmes installations décrites ci-dessus pour que le script spécifie la " +"version qui doit être utilisée." #: ../Doc/using/windows.rst:549 msgid "" "The key benefit of this is that a single launcher can support multiple " "Python versions at the same time depending on the contents of the first line." msgstr "" +"L'avantage principal de ceci est qu'un seul lanceur peut prendre en charge " +"plusieurs versions de Python en même temps en fonction du contenu de la " +"première ligne." #: ../Doc/using/windows.rst:553 msgid "Shebang Lines" -msgstr "" +msgstr "Lignes Shebang" #: ../Doc/using/windows.rst:555 msgid "" @@ -954,6 +1212,13 @@ msgid "" "facilities to be used with Python scripts on Windows and the examples above " "demonstrate their use." msgstr "" +"Si la première ligne d'un fichier de script commence par ``#!``, elle est " +"connue sous le nom de ligne \"*shebang*\". Linux et d'autres systèmes basés " +"sur Unix ont une prise en charge native de ces lignes et les *shebangs* sont " +"couramment utilisés sur ces systèmes pour indiquer comment un script doit " +"être exécuté. Ce lanceur permet aux mêmes installations d'être utilisés avec " +"des scripts Python sur Windows et les exemples ci-dessus démontrent leur " +"utilisation." #: ../Doc/using/windows.rst:562 msgid "" @@ -961,26 +1226,30 @@ msgid "" "Windows, this launcher supports a number of 'virtual' commands to specify " "which interpreter to use. The supported virtual commands are:" msgstr "" +"Pour permettre aux *shebang* dans les scripts Python d'être portables entre " +"UNIX et Windows, ce lanceur prend en charge un certain nombre de commandes " +"« virtuelles » pour spécifier l'interpréteur à utiliser. Les commandes " +"virtuelles prises en charge sont :" #: ../Doc/using/windows.rst:566 msgid "``/usr/bin/env python``" -msgstr "" +msgstr "``/usr/bin/env python``" #: ../Doc/using/windows.rst:567 msgid "``/usr/bin/python``" -msgstr "" +msgstr "``/usr/bin/python``" #: ../Doc/using/windows.rst:568 msgid "``/usr/local/bin/python``" -msgstr "" +msgstr "``/usr/local/bin/python``" #: ../Doc/using/windows.rst:569 msgid "``python``" -msgstr "" +msgstr "``python``" #: ../Doc/using/windows.rst:571 msgid "For example, if the first line of your script starts with" -msgstr "" +msgstr "Par exemple, si la première ligne de votre script commence par" #: ../Doc/using/windows.rst:577 msgid "" @@ -990,6 +1259,11 @@ msgid "" "script on Windows which you hope will be useful on Unix, you should use one " "of the shebang lines starting with ``/usr``." msgstr "" +"Le Python par défaut sera trouvé et utilisé. Comme de nombreux scripts " +"Python écrits pour fonctionner sur UNIX auront déjà cette ligne, ils " +"devraient fonctionner avec le lanceur sans modification. Si vous écrivez un " +"nouveau script sur Windows et que vous pensez qu'il sera utile sur UNIX, " +"vous devez utiliser l'une des lignes *shebang* commençant par ``/usr``." #: ../Doc/using/windows.rst:583 msgid "" @@ -1007,28 +1281,36 @@ msgid "" "behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` " "search." msgstr "" +"La forme ``/usr/bin/env`` de ligne *shebang* possède une autre propriété " +"spéciale. Avant de rechercher les interpréteurs Python installés, cette " +"forme recherche d'abord l'exécutable dans le :envvar:`PATH`. Cela correspond " +"au comportement du programme Unix ``env``, qui effectue une recherche dans :" +"envvar:`PATH`." #: ../Doc/using/windows.rst:594 msgid "Arguments in shebang lines" -msgstr "" +msgstr "Arguments dans les lignes *shebang*" #: ../Doc/using/windows.rst:596 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" msgstr "" +"Les lignes *shebang* peuvent également spécifier des options supplémentaires " +"à passer à l'interpréteur Python. Par exemple, si vous avez une ligne " +"*shebang* :" #: ../Doc/using/windows.rst:603 msgid "Then Python will be started with the ``-v`` option" -msgstr "" +msgstr "Alors, Python sera démarré avec l'option ``-v``" #: ../Doc/using/windows.rst:606 msgid "Customization" -msgstr "" +msgstr "Personnalisation" #: ../Doc/using/windows.rst:609 msgid "Customization via INI files" -msgstr "" +msgstr "Personnalisation via des fichiers INI" #: ../Doc/using/windows.rst:611 msgid "" @@ -1050,7 +1332,7 @@ msgstr "" #: ../Doc/using/windows.rst:623 msgid "Customizing default Python versions" -msgstr "" +msgstr "Personnalisation des versions Python par défaut" #: ../Doc/using/windows.rst:625 msgid "" @@ -1067,6 +1349,9 @@ msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." msgstr "" +"Par exemple, une ligne *shebang* valant ``#!python`` n'a pas de " +"qualificateur de version, tandis que ``#!python3`` a un qualificateur de " +"version qui ne spécifie qu'une version majeure." #: ../Doc/using/windows.rst:635 msgid "" @@ -1087,6 +1372,13 @@ msgid "" "is likely, although not guaranteed, to be the most recently installed " "version in that family." msgstr "" +"Si aucun qualificateur de version mineure n'est trouvé, la variable " +"d'environnement ``PY_PYTHON{major}`` (où ``{major}`` est le qualificateur de " +"version principale actuelle tel que déterminé ci-dessus) peut être définie " +"pour spécifier la version complète. Si aucune option de ce type n'est " +"trouvée, le lanceur énumérera les versions de Python installées et utilisera " +"la dernière version mineure trouvée pour la version principale, qui est " +"probablement la plus récemment installée dans cette famille." #: ../Doc/using/windows.rst:648 msgid "" @@ -1112,18 +1404,25 @@ msgid "" "use the latest Python 2.x version installed and the command ``python3`` will " "use the latest Python 3.x installed." msgstr "" +"Si aucune option pertinente n'est définie, les commandes ``python`` et " +"``python2`` utiliseront la dernière version de Python 2.x installée et la " +"commande ``python3`` utilisera le dernier Python 3.x installé." #: ../Doc/using/windows.rst:665 msgid "" "The commands ``python3.1`` and ``python2.7`` will not consult any options at " "all as the versions are fully specified." msgstr "" +"Les commandes ``python3.1`` et ``python2.7`` ne consultent aucune option du " +"tout car les versions sont entièrement spécifiées." #: ../Doc/using/windows.rst:668 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." msgstr "" +"Si ``PY_PYTHON=3``, les commandes ``python`` et ``python3`` utiliseront la " +"dernière version de Python 3 installée." #: ../Doc/using/windows.rst:671 msgid "" @@ -1132,12 +1431,18 @@ msgid "" "installed Python (PY_PYTHON was not considered at all as a major version was " "specified.)" msgstr "" +"Si ``PY_PYTHON=3.1-32``, la commande ``python`` utilisera l'implémentation " +"32-bits de 3.1 alors que la commande ``python3`` utilisera le dernier Python " +"installé (*PY_PYTHON* n'a pas été considéré du tout comme une version " +"majeure a été spécifiée.)" #: ../Doc/using/windows.rst:676 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands ``python`` and " "``python3`` will both use specifically 3.1" msgstr "" +"Si ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1``, les commandes ``python`` et " +"``python3`` utiliseront spécifiquement 3.1" #: ../Doc/using/windows.rst:679 msgid "" @@ -1148,6 +1453,13 @@ msgid "" "the INI file are case insensitive.) The contents of an environment variable " "will override things specified in the INI file." msgstr "" +"En plus des variables d'environnement, les mêmes paramètres peuvent être " +"configurés dans le ``.INI`` utilisé par le lanceur. La section dans le " +"fichier INI est appelée ``[defaults]`` et le nom de la clé sera le même que " +"les variables d'environnement sans le préfixe ``PY_`` principal (et notez " +"que les noms de clés dans le fichier **INI** sont insensibles à la case.) Le " +"contenu d'une variable d'environnement remplacera les éléments spécifiés " +"dans le fichier *INI*." #: ../Doc/using/windows.rst:686 msgid "For example:" @@ -1155,17 +1467,19 @@ msgstr "Par exemple ::" #: ../Doc/using/windows.rst:688 msgid "Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:" -msgstr "" +msgstr "Le paramètre ``PY_PYTHON=3.1`` équivaut au fichier **INI** contenant :" #: ../Doc/using/windows.rst:695 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file " "containing:" msgstr "" +"Le paramètre ``PY_PYTHON=3`` et ``PY_PYTHON3=3.1`` équivaut au fichier *INI* " +"contenant :" #: ../Doc/using/windows.rst:705 msgid "Diagnostics" -msgstr "" +msgstr "Diagnostics" #: ../Doc/using/windows.rst:707 msgid "" @@ -1176,10 +1490,17 @@ msgid "" "particular version was chosen and the exact command-line used to execute the " "target Python." msgstr "" +"Si une variable d'environnement ``PYLAUNCH_DEBUG`` est définie (à n'importe " +"quelle valeur), le lanceur affichera des informations de diagnostic sur " +"*stderr* (c'est-à-dire sur la console). Bien que ces informations " +"parviennent à être en même temps nombreuses et concises, elles devraient " +"vous permettre de voir quelles versions de Python ont été trouvées, pourquoi " +"une version particulière a été choisie et la ligne de commande exacte " +"utilisée pour exécuter le Python cible." #: ../Doc/using/windows.rst:719 msgid "Finding modules" -msgstr "" +msgstr "Recherche de modules" #: ../Doc/using/windows.rst:721 msgid "" @@ -1189,6 +1510,11 @@ msgid "" "\\\\` and third-party modules should be stored in :file:`C:\\\\Python\\\\Lib" "\\\\site-packages\\\\`." msgstr "" +"Python stocke généralement sa bibliothèque (et donc votre dossier ``site-" +"packages``) dans le répertoire d'installation. Donc, si vous aviez installé " +"Python dans :file:`C:\\\\Python\\\\`, la bibliothèque par défaut résiderait " +"dans :file:`C:\\\\Python\\\\Lib\\\\` et les modules tiers devraient être " +"stockés dans :file:`C:\\\\Python\\\\Lib\\\\site-packages\\\\`." #: ../Doc/using/windows.rst:727 msgid "" @@ -1208,6 +1534,13 @@ msgid "" "the file. Import statements other than to ``site`` are not permitted, and " "arbitrary code cannot be specified." msgstr "" +"Lorsque le fichier existe, toutes les variables de registre et " +"d'environnement sont ignorées, le mode isolé est activé et :mod:`site` n'est " +"pas importé, sauf si une ligne du fichier spécifie ``import site``. Les " +"chemins et les lignes vides commençant par ``#`` sont ignorés. Chaque chemin " +"d'accès peut être absolu ou relatif à l'emplacement du fichier. Les imports " +"autre que vers *site* ne sont pas autorisés, ni n'importe quelle instruction " +"Python." #: ../Doc/using/windows.rst:740 msgid "" @@ -1220,12 +1553,15 @@ msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" msgstr "" +"Lorsque aucun fichier ``._pth`` n'est trouvé, voilà comment :data:`sys.path` " +"est construit sur Windows :" #: ../Doc/using/windows.rst:746 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." msgstr "" +"Une entrée vide est ajoutée au début, qui correspond au répertoire courant." #: ../Doc/using/windows.rst:749 msgid "" @@ -1234,6 +1570,11 @@ msgid "" "paths in this variable must be separated by semicolons, to distinguish them " "from the colon used in drive identifiers (``C:\\`` etc.)." msgstr "" +"Si la variable d'environnement :envvar:`PYTHONPATH` existe, comme décrit " +"dans :ref:`using-on-envvars`, ses entrées sont ajoutées ensuite. Notez que " +"sur Windows, les chemins d'accès de cette variable doivent être séparés par " +"des points-virgules, pour les distinguer des deux points utilisés dans les " +"identificateurs de lecteur (``C:\\`` etc.)." #: ../Doc/using/windows.rst:754 msgid "" @@ -1244,6 +1585,14 @@ msgid "" "cause each path to be added to :data:`sys.path`. (Note that all known " "installers only use HKLM, so HKCU is typically empty.)" msgstr "" +"Des \"chemins d'accès d'application\" supplémentaires peuvent être ajoutés " +"dans le registre en tant que sous-clés de :samp:`\\\\SOFTWARE\\\\Python\\" +"\\PythonCore\\\\{version}\\\\PythonPath` sous les ruches " +"``HKEY_CURRENT_USER`` et ``HKEY_LOCAL_MACHINE``. Les sous-clés qui ont des " +"chaînes de chemin délimitées par des points-virgules comme valeur par défaut " +"entraînent l'ajout de chaque chemin d'accès à :data:`sys.path`. (Notez que " +"tous les installateurs connus utilisent seulement HKLM, donc HKCU est " +"généralement vide.)" #: ../Doc/using/windows.rst:761 msgid "" @@ -1255,6 +1604,14 @@ msgid "" "on that folder. Otherwise, the core Python path is constructed from the " "PythonPath stored in the registry." msgstr "" +"Si la variable d'environnement :envvar:`PYTHONHOME` est définie, elle est " +"supposée comme \"Python Home\". Sinon, le chemin de l'exécutable principal " +"de Python est utilisé pour chercher un \"fichier de repère\" (soit ``Lib\\os." +"py`` ou ``pythonXY.zip``) pour déduire le \"Python Home\". Si un \"Python " +"Home\" est trouvé, les sous-répertoires correspondants ajoutés à :data:`sys." +"path` (``Lib``, ``plat-win``, etc) sont basés sur ce dossier. Sinon, le " +"chemin d'accès Python principal est construit à partir du PythonPath stocké " +"dans le registre." #: ../Doc/using/windows.rst:769 msgid "" @@ -1262,12 +1619,19 @@ msgid "" "in the environment, and no registry entries can be found, a default path " "with relative entries is used (e.g. ``.\\Lib;.\\plat-win``, etc)." msgstr "" +"Si le \"Python Home\" ne peut pas être trouvé, :envvar:`PYTHONPATH` n'est " +"pas spécifié dans l'environnement et aucune entrée de registre ne peut être " +"trouvée, un chemin par défaut avec des entrées relatives est utilisé (par " +"exemple ``.\\Lib`` ; ``.\\plat-win``, etc.)." #: ../Doc/using/windows.rst:773 msgid "" "If a ``pyvenv.cfg`` file is found alongside the main executable or in the " "directory one level above the executable, the following variations apply:" msgstr "" +"Si un fichier ``pyvenv.cfg`` se trouve à côté de l'exécutable principal ou " +"dans le répertoire un niveau au-dessus de l'exécutable, les variantes " +"suivantes s'appliquent :" #: ../Doc/using/windows.rst:776 msgid "" @@ -1275,10 +1639,13 @@ msgid "" "path is used instead of the path to the main executable when deducing the " "home location." msgstr "" +"Si ``home`` est un chemin absolu et :envvar:`PYTHONHOME` n'est pas défini, " +"ce chemin d'accès est utilisé au lieu du chemin d'accès à l'exécutable " +"principal lors de la déduction de l'emplacement du `home`." #: ../Doc/using/windows.rst:780 msgid "The end result of all this is:" -msgstr "" +msgstr "Le résultat final de tout ceci est :" #: ../Doc/using/windows.rst:782 msgid "" @@ -1287,6 +1654,11 @@ msgid "" "directory), the core path is deduced, and the core paths in the registry are " "ignored. Other \"application paths\" in the registry are always read." msgstr "" +"Lors de l'exécution de :file:`python.exe`, ou tout autre ``.exe`` dans le " +"répertoire principal de Python (soit une version installée, soit directement " +"à partir du répertoire PCbuild), le chemin principal est déduit et les " +"chemins d'accès principaux dans le Registre sont ignorés. D'autres \"chemins " +"d'application\" dans le registre sont toujours lus." #: ../Doc/using/windows.rst:787 msgid "" @@ -1295,6 +1667,10 @@ msgid "" "the registry is used. Other \"application paths\" in the registry are " "always read." msgstr "" +"Lorsque Python est hébergé dans un autre fichier ``.exe`` (répertoire " +"différent, intégré via COM, etc.), le \"Python Home\" ne sera pas déduit, de " +"sorte que le chemin d'accès principal du registre est utilisé. D'autres " +"\"chemins d'application\" dans le registre sont toujours lus." #: ../Doc/using/windows.rst:791 msgid "" @@ -1302,12 +1678,18 @@ msgid "" "some very strange installation setup) you get a path with some default, but " "relative, paths." msgstr "" +"Si Python ne peut pas trouver son \"home\" et il n'y a pas de valeur de " +"registre (*.exe* gelé, une installation très étrange) vous obtenez un chemin " +"d'accès avec certains chemins par défaut, mais relatif." #: ../Doc/using/windows.rst:795 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" msgstr "" +"Pour ceux qui veulent intégrer Python dans leur application ou leur " +"distribution, les conseils suivants empêcheront les conflits avec d'autres " +"installations :" #: ../Doc/using/windows.rst:798 msgid "" @@ -1316,6 +1698,10 @@ msgid "" "environment variables, and also ignore :mod:`site` unless ``import site`` is " "listed." msgstr "" +"Incluez un fichier ``._pth`` à côté de votre exécutable contenant les " +"répertoires à inclure. Ceci ignorera les chemins répertoriés dans le " +"registre et les variables d'environnement, et ignorera également :mod:`site` " +"à moins que ``import site`` soit listé." #: ../Doc/using/windows.rst:803 msgid "" @@ -1329,6 +1715,8 @@ msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." msgstr "" +"Effacer et/ou écraser :envvar:`PYTHONPATH` et configurez :envvar:" +"`PYTHONHOME` avant de lancer le :file:`python.exe` de votre application." #: ../Doc/using/windows.rst:810 msgid "" @@ -1338,6 +1726,12 @@ msgid "" "directory. (Note that it will not be detected inside a ZIP file, but a " "correctly named ZIP file will be detected instead.)" msgstr "" +"Si vous ne pouvez pas utiliser les suggestions précédentes (par exemple, " +"vous êtes une distribution qui permet aux gens d'exécuter :file:`python.exe` " +"directement), assurez-vous que le point de repère :file:`Lib\\\\os.py` " +"existe dans votre répertoire d'installation. (Notez qu'il ne sera pas " +"détecté à l'intérieur d'un fichier ZIP, mais un fichier ZIP correctement " +"nommé sera détecté à la place.)" #: ../Doc/using/windows.rst:816 msgid "" @@ -1354,12 +1748,16 @@ msgid "" "Adds ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." msgstr "" +"Ajout de la gestion des ``._pth`` et suppression de l'option ``applocal`` de " +"``pyvenv.cfg``." #: ../Doc/using/windows.rst:827 msgid "" "Adds ``pythonXX.zip`` as a potential landmark when directly adjacent to the " "executable." msgstr "" +"Ajout de ``pythonXX.zip`` comme point de repère potentiel lorsqu'il est " +"directement adjacent à l'exécutable." #: ../Doc/using/windows.rst:833 msgid "" @@ -1368,10 +1766,15 @@ msgid "" "finder is enabled on Windows in 3.6.0 and earlier, but may need to be " "explicitly added to :attr:`sys.meta_path` in the future." msgstr "" +"Les modules spécifiés dans le registre sous ``Modules`` (pas ``PythonPath``) " +"peuvent être importés par :class:`importlib.machinery." +"WindowsRegistryFinder`. Ce Finder est activé sur Windows dans 3.6.0 et plus " +"récent, mais il pourrait être nécessaire de l'ajouter explicitement à :attr:" +"`sys.meta_path` à l'avenir." #: ../Doc/using/windows.rst:839 msgid "Additional modules" -msgstr "" +msgstr "Modules supplémentaires" #: ../Doc/using/windows.rst:841 msgid "" @@ -1379,12 +1782,18 @@ msgid "" "features that are unique to Windows. A couple of modules, both in the " "standard library and external, and snippets exist to use these features." msgstr "" +"Même si Python a l'ambition d'être portable parmi toutes les plates-formes, " +"il existe des fonctionnalités propres à Windows. Certains modules, à la fois " +"dans la bibliothèque standard et externe, et des exemples existent pour " +"utiliser ces fonctionnalités." #: ../Doc/using/windows.rst:845 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." msgstr "" +"Les modules standard de Windows sont documentés dans :ref:`mswin-specific-" +"services`." #: ../Doc/using/windows.rst:849 msgid "PyWin32" @@ -1438,6 +1847,7 @@ msgstr "" msgid "" "`Win32 How Do I...? `_" msgstr "" +"`Win32 How Do I...? `_" #: ../Doc/using/windows.rst:869 msgid "by Tim Golden" @@ -1445,7 +1855,7 @@ msgstr "par Tim Golden" #: ../Doc/using/windows.rst:871 msgid "`Python and COM `_" -msgstr "" +msgstr "`Python and COM `_" #: ../Doc/using/windows.rst:872 msgid "by David and Paul Boddie" @@ -1453,7 +1863,7 @@ msgstr "par David et Paul Boddie" #: ../Doc/using/windows.rst:876 msgid "cx_Freeze" -msgstr "" +msgstr "cx_Freeze" #: ../Doc/using/windows.rst:878 msgid "" @@ -1474,12 +1884,18 @@ msgid "" "restricted to Unix-like systems, there is a library exclusive to Windows as " "well: Windows Console I/O for Python." msgstr "" +"Depuis la couche avancée de gestion de terminal de Python, :mod:`curses`, " +"est limité aux systèmes de type UNIX, il existe une bibliothèque exclusive à " +"Windows : *Windows Console I/O for Python*." #: ../Doc/using/windows.rst:892 msgid "" "`WConio `_ is a wrapper " "for Turbo-C's :file:`CONIO.H`, used to create text user interfaces." msgstr "" +"`WConio `_ est un " +"*wrapper* pour les fichiers Turbo-C :file:`CONIO.H`, utilisé pour créer des " +"interfaces texte utilisateur." #: ../Doc/using/windows.rst:898 msgid "Compiling Python on Windows" @@ -1492,6 +1908,10 @@ msgid "" "either the latest release's source or just grab a fresh `checkout `_." msgstr "" +"Si vous voulez compiler CPython vous-même, la première chose à faire est " +"obtenir la `source `_. Vous pouvez " +"télécharger soit la source de la dernière version ou tout simplement prendre " +"un `checkout `_." #: ../Doc/using/windows.rst:905 msgid "" @@ -1499,6 +1919,10 @@ msgid "" "Visual Studio 2015, which is the compiler used to build the official Python " "releases. These files are in the :file:`PCbuild` directory." msgstr "" +"L'arborescence source contient une solution de compilation et des fichiers " +"projet pour Microsoft Visual Studio 2015, qui est le compilateur utilisé " +"pour générer les versions officielles de Python. Ces fichiers se trouvent " +"dans le répertoire :file:`PCbuild`." #: ../Doc/using/windows.rst:909 msgid "" @@ -1510,13 +1934,15 @@ msgstr "" #: ../Doc/using/windows.rst:912 msgid "For extension modules, consult :ref:`building-on-windows`." -msgstr "" +msgstr "Pour les modules d'extension, consultez :ref:`building-on-windows`." #: ../Doc/using/windows.rst:919 msgid "" "`Python + Windows + distutils + SWIG + gcc MinGW `_" msgstr "" +"`Python + Windows + distutils + SWIG + gcc MinGW `_" #: ../Doc/using/windows.rst:917 msgid "" @@ -1524,12 +1950,17 @@ msgid "" "MinGW gcc under Windows\" or \"Installing Python extension with distutils " "and without Microsoft Visual C++\" by Sébastien Sauvage, 2003" msgstr "" +"ou \"*Creating Python extensions in C/C++ with SWIG and compiling them with " +"MinGW gcc under Windows*\" ou \"*Installing Python extension with distutils " +"and without Microsoft Visual C++*\" par Sébastien Sauvage, 2003" #: ../Doc/using/windows.rst:921 msgid "" "`MingW -- Python extensions `_" msgstr "" +"`MingW -- Python extensions `_" #: ../Doc/using/windows.rst:922 msgid "by Trent Apted et al, 2007" @@ -1545,6 +1976,9 @@ msgid "" "environment. It is intended for acting as part of another application, " "rather than being directly accessed by end-users." msgstr "" +"La distribution embarquée est un fichier ZIP contenant un environnement " +"Python minimal. Il est destiné à agir dans le cadre d'une autre application, " +"plutôt que d'être directement accessible par les utilisateurs finaux." #: ../Doc/using/windows.rst:934 msgid "" @@ -1566,6 +2000,12 @@ msgid "" "via Windows Update, and can be detected by finding ``ucrtbase.dll`` in the " "system directory." msgstr "" +"La distribution intégrée n'inclut pas le `Microsoft C Runtime `_ et il est de la " +"responsabilité de l'installateur d'application de le fournir. Le *runtime* " +"peut avoir déjà été installé sur le système d'un utilisateur précédemment ou " +"automatiquement via Windows Update, et peut être détecté en trouvant " +"``ucrtbase.dll`` dans le répertoire système." #: ../Doc/using/windows.rst:950 msgid "" @@ -1577,15 +2017,26 @@ msgid "" "part of the application (\"vendoring\") so that the developer can ensure " "compatibility with newer versions before providing updates to users." msgstr "" +"Les paquets tiers doivent être installés par le programme d'installation de " +"l'application parallèlement à la distribution embarquée. L'utilisation de " +"pip pour gérer les dépendances comme pour une installation Python régulière " +"n'est pas prise en charge avec cette distribution, mais il reste possible " +"d'inclure et d'utiliser pip pour les mises à jour automatiques. En général, " +"les paquets tiers doivent être traités dans le cadre de l'application " +"(*vendoring*) afin que le développeur puisse assurer la compatibilité avec " +"les versions plus récentes avant de fournir des mises à jour aux " +"utilisateurs." #: ../Doc/using/windows.rst:958 msgid "" "The two recommended use cases for this distribution are described below." msgstr "" +"Les deux cas d'utilisation recommandés pour cette distribution sont décrits " +"ci-dessous." #: ../Doc/using/windows.rst:961 msgid "Python Application" -msgstr "" +msgstr "Application Python" #: ../Doc/using/windows.rst:963 msgid "" @@ -1595,6 +2046,12 @@ msgid "" "transparent it should be (or conversely, how professional it should appear), " "there are two options." msgstr "" +"Une application écrite en Python n'exige pas nécessairement que les " +"utilisateurs soient au courant de ce fait. La distribution embarquée peut " +"être utilisée dans ce cas pour inclure une version privée de Python dans un " +"package d'installation. Selon la façon dont il devrait être transparent (ou " +"inversement, à quel point il doit paraître professionnel), il y a deux " +"options." #: ../Doc/using/windows.rst:969 msgid "" @@ -1606,6 +2063,14 @@ msgid "" "launcher should simply be able to call ``Py_Main`` with a hard-coded command " "line." msgstr "" +"L'utilisation d'un exécutable spécialisé en tant que lanceur nécessite de la " +"programmation, mais fournit l'expérience la plus transparente pour les " +"utilisateurs. Avec un lanceur personnalisé, il n'y a pas d'indications " +"évidentes que le programme s'exécute sur Python : les icônes peuvent être " +"personnalisées, les informations de la société et de la version peuvent être " +"spécifiées, et les associations de fichiers se comportent correctement. Dans " +"la plupart des cas, un lanceur personnalisé devrait simplement pouvoir " +"appeler ``Py_Main`` avec une ligne de commande codée en dur." #: ../Doc/using/windows.rst:976 msgid "" @@ -1615,6 +2080,12 @@ msgid "" "Python and not its actual name, and users may have trouble distinguishing it " "from other running Python processes or file associations." msgstr "" +"L'approche la plus simple consiste à fournir un fichier batch ou un " +"raccourci généré qui appelle directement le ``python.exe`` ou ``pythonw." +"exe`` avec les arguments de ligne de commande requis. Dans ce cas, " +"l'application semble être Python et non son nom réel, et les utilisateurs " +"peuvent avoir du mal à le distinguer des autres processus Python en cours " +"d'exécution ou des associations de fichiers." #: ../Doc/using/windows.rst:982 msgid "" @@ -1624,10 +2095,15 @@ msgid "" "there is an opportunity to specify the search path before launching the " "application." msgstr "" +"Avec cette dernière approche, les packages doivent être installés en tant " +"que répertoires à côté de l'exécutable Python pour s'assurer qu'ils soient " +"visibles par Python. Avec le lanceur spécialisé, les paquets peuvent être " +"installés dans d'autres emplacements car il y a une possibilité de spécifier " +"le chemin de recherche avant de lancer l'application." #: ../Doc/using/windows.rst:988 msgid "Embedding Python" -msgstr "" +msgstr "Embarquer Python" #: ../Doc/using/windows.rst:990 msgid "" @@ -1639,6 +2115,13 @@ msgid "" "application installation is sufficient to provide a loadable Python " "interpreter." msgstr "" +"Les applications écrites en code natif nécessitent souvent une certaine " +"forme de langage de *scripting*, et la distribution Python intégrée peut " +"être utilisée à cette fin. En général, la majorité de l'application est dans " +"le code natif, qui soit invoque ``python.exe`` soit utilise directement " +"``python3.dll``. Dans les deux cas, l'extraction de la distribution intégrée " +"dans un sous-répertoire de l'installation de l'application est suffisante " +"pour fournir un interpréteur Python chargeable." #: ../Doc/using/windows.rst:997 msgid "" @@ -1647,6 +2130,11 @@ msgid "" "interpreter. Otherwise, there is no fundamental differences between using " "the embedded distribution and a regular installation." msgstr "" +"Comme pour l'utilisation de l'application, les paquets peuvent être " +"installés sur n'importe quel emplacement, car il est possible de spécifier " +"des chemins de recherche avant d'initialiser l'interpréteur. Sinon, il n'y a " +"pas de différences fondamentales entre l'utilisation de la distribution " +"embarquée et une installation classique." #: ../Doc/using/windows.rst:1003 msgid "Other resources" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index 8b4136056..46ce33b50 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -2309,6 +2309,13 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite est une bibliothèque C qui fournit une base de données légère sur " +"disque ne nécessitant pas de processus serveur et qui utilise une variante " +"(non standard) du langage de requête SQL pour accéder aux données. Certaines " +"applications peuvent utiliser SQLite pour le stockage de données internes. " +"Il est également possible de créer une application prototype utilisant " +"SQLite, puis de modifier le code pour utiliser une base de données plus " +"robuste telle que PostgreSQL ou Oracle." #: ../Doc/whatsnew/2.5.rst:1943 msgid "" @@ -2337,6 +2344,8 @@ msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " +"base de données dans la mémoire vive." #: ../Doc/whatsnew/2.5.rst:1959 msgid "" @@ -2371,7 +2380,7 @@ msgstr "" #: ../Doc/whatsnew/2.5.rst:2002 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Cet exemple utilise la forme itérateur ::" #: ../Doc/whatsnew/2.5.rst:2015 msgid "" @@ -2389,13 +2398,15 @@ msgstr "" #: ../Doc/whatsnew/2.5.rst:2026 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/whatsnew/2.5.rst:2025 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " +"de données disponibles qui sont pris en charge par cette variante SQL." #: ../Doc/whatsnew/2.5.rst:2028 msgid "The documentation for the :mod:`sqlite3` module." @@ -2403,11 +2414,11 @@ msgstr "" #: ../Doc/whatsnew/2.5.rst:2030 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" #: ../Doc/whatsnew/2.5.rst:2031 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP écrite par Marc-André Lemburg." #: ../Doc/whatsnew/2.5.rst:2039 msgid "The wsgiref package" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 44665c60f..2cf235d28 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -1486,7 +1486,7 @@ msgstr "C’est équivalent à ::" #: ../Doc/whatsnew/2.6.rst:1382 msgid ":pep:`3129` - Class Decorators" -msgstr "" +msgstr ":pep:`3129` -- Décorateurs de classes" #: ../Doc/whatsnew/2.6.rst:1383 msgid "PEP written by Collin Winter." diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 536d5eae9..e1adfc45e 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -710,7 +710,7 @@ msgstr "" #: ../Doc/whatsnew/2.7.rst:717 msgid "is equivalent to::" -msgstr "" +msgstr "est équivalente à ::" #: ../Doc/whatsnew/2.7.rst:723 msgid "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index 81bb3f66c..7fe167ce2 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -700,7 +700,7 @@ msgstr "" #: ../Doc/whatsnew/3.4.rst:526 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.4.rst:528 msgid "" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index 32adacf49..21b0d7fe2 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -287,6 +287,9 @@ msgid "" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" +"À partir de CPython 3.5.2, ``__aiter__`` peut directement renvoyer des :term:" +"`itérateurs asynchrones `. Renvoyer un objet :term:" +"`awaitable` entraine un avertissement :exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/3.5.rst:259 msgid "See more details in the :ref:`async-iterators` documentation section." @@ -1835,7 +1838,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:1522 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.5.rst:1524 msgid "" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index c98ab0d45..6a95d3093 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -769,6 +769,8 @@ msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." msgstr "" +"Reportez-vous à la fonction :c:func:`PyMem_SetupDebugHooks` pour ce qui " +"concerne les fonctions de débogage de l'allocateur mémoire de Python." #: ../Doc/whatsnew/3.6.rst:660 msgid "" @@ -1616,7 +1618,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:1282 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.6.rst:1284 msgid "" From 010f7ed5ca3d411e3feb5536b2fcd06cd35270bf Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 6 Dec 2019 14:19:13 +0100 Subject: [PATCH 2/5] Backport from 3.8 --- c-api/buffer.po | 2 +- distutils/packageindex.po | 2 +- distutils/setupscript.po | 2 +- extending/extending.po | 21 +- faq/extending.po | 152 ++++++- faq/gui.po | 88 +++- faq/library.po | 398 +++++++++++++++-- faq/programming.po | 608 +++++++++++++++++++++++--- faq/windows.po | 84 +++- howto/cporting.po | 94 +++- howto/functional.po | 700 ++++++++++++++++++++++++++++-- howto/logging.po | 14 + howto/pyporting.po | 383 +++++++++++++++- howto/unicode.po | 256 ++++++++++- library/_thread.po | 46 ++ library/aifc.po | 3 + library/asyncio-eventloops.po | 2 +- library/base64.po | 154 ++++++- library/contextlib.po | 275 +++++++++++- library/curses.po | 12 +- library/dis.po | 109 ++++- library/enum.po | 415 +++++++++++++++--- library/getopt.po | 78 +++- library/heapq.po | 173 +++++++- library/idle.po | 517 +++++++++++++++++----- library/io.po | 2 +- library/ipaddress.po | 2 +- library/numbers.po | 87 +++- library/os.path.po | 43 +- library/parser.po | 16 +- library/pickle.po | 2 +- library/pickletools.po | 2 +- library/random.po | 2 +- library/secrets.po | 75 +++- library/shutil.po | 44 +- library/socket.po | 2 +- library/sunau.po | 29 +- library/sysconfig.po | 2 +- library/threading.po | 1 + library/timeit.po | 123 +++++- library/tkinter.po | 620 +++++++++++++++++++++----- library/tkinter.ttk.po | 8 +- library/unittest.mock-examples.po | 48 +- library/wave.po | 112 ++++- library/zipapp.po | 240 +++++++++- library/zipimport.po | 76 +++- whatsnew/2.3.po | 4 +- whatsnew/2.5.po | 3 + whatsnew/3.0.po | 2 +- 49 files changed, 5467 insertions(+), 666 deletions(-) diff --git a/c-api/buffer.po b/c-api/buffer.po index 9c1f88b6f..27729832b 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -530,7 +530,7 @@ msgstr "" #: ../Doc/c-api/buffer.rst:321 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 #: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 diff --git a/distutils/packageindex.po b/distutils/packageindex.po index 15f2c05e1..af21089c2 100644 --- a/distutils/packageindex.po +++ b/distutils/packageindex.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/distutils/packageindex.rst:9 msgid "The Python Package Index (PyPI)" -msgstr "" +msgstr "L'index de paquets Python (*Python Package Index* : PyPI)" #: ../Doc/distutils/packageindex.rst:11 msgid "" diff --git a/distutils/setupscript.po b/distutils/setupscript.po index 06de0937c..acedbe15e 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -381,7 +381,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:335 msgid "Other options" -msgstr "" +msgstr "Autres options" #: ../Doc/distutils/setupscript.rst:337 msgid "" diff --git a/extending/extending.po b/extending/extending.po index ccb83ef2a..ba32dfac8 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -564,13 +564,16 @@ msgstr "" #: ../Doc/extending/extending.rst:307 msgid "The Module's Method Table and Initialization Function" -msgstr "" +msgstr "La fonction d'initialisation et le tableau des méthodes du module" #: ../Doc/extending/extending.rst:309 msgid "" "I promised to show how :c:func:`spam_system` is called from Python programs. " "First, we need to list its name and address in a \"method table\"::" msgstr "" +"Nous avons promis de montrer comment :c:func:`spam_system` est appelée " +"depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et " +"son adresse dans un « tableau des méthodes » ::" #: ../Doc/extending/extending.rst:320 msgid "" @@ -580,6 +583,11 @@ msgid "" "value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` " "is used." msgstr "" +"Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type de " +"convention à utiliser pour la fonction C, à destination de l'interpréteur. " +"Il doit valoir normalement ``METH_VARARGS`` ou ``METH_VARARGS | " +"METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:" +"func:`PyArg_ParseTuple` est utilisée." #: ../Doc/extending/extending.rst:325 msgid "" @@ -587,6 +595,10 @@ msgid "" "level parameters to be passed in as a tuple acceptable for parsing via :c:" "func:`PyArg_ParseTuple`; more information on this function is provided below." msgstr "" +"Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que les " +"paramètres Python soient passés comme un n-uplet que l'on peut analyser " +"*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont " +"fournies plus bas." #: ../Doc/extending/extending.rst:329 msgid "" @@ -596,11 +608,18 @@ msgid "" "keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " "to such a function." msgstr "" +"Le bit :const:`METH_KEYWORDS` peut être mis à un dans le troisième champ si " +"des arguments par mot-clés doivent être passés à la fonction. Dans ce cas, " +"la fonction C doit accepter un troisième paramètre ``PyObject *`` qui est un " +"dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` " +"pour analyser les arguments d'une telle fonction." #: ../Doc/extending/extending.rst:335 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" +"Le tableau des méthodes doit être référencé dans la structure de définition " +"du module ::" #: ../Doc/extending/extending.rst:346 msgid "" diff --git a/faq/extending.po b/faq/extending.po index 6f8564136..eb627b4ef 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -35,10 +35,15 @@ msgid "" "exceptions and even new types in C. This is explained in the document :ref:" "`extending-index`." msgstr "" +"Oui, vous pouvez créer des modules intégrés contenant des fonctions, des " +"variables, des exceptions et même de nouveaux types en C. Ceci est expliqué " +"dans le document :ref:`extending-index`." #: ../Doc/faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." msgstr "" +"La plupart des livres Python intermédiaires ou avancés couvrent également ce " +"sujet." #: ../Doc/faq/extending.rst:26 msgid "Can I create my own functions in C++?" @@ -77,6 +82,11 @@ msgid "" "Cython and Pyrex make it possible to write an extension without having to " "learn Python's C API." msgstr "" +"`Cython `_ et son cousin `Pyrex `_ sont des compilateurs qui " +"acceptent une forme légèrement modifiée de Python et produisent du code C " +"correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " +"à connaître l'API C de Python." #: ../Doc/faq/extending.rst:50 msgid "" @@ -88,10 +98,19 @@ msgid "" "html>`_, or `Weave `_ are also alternatives " "for wrapping C++ libraries." msgstr "" +"Si vous avez besoin d'accéder à l'interface d'une bibliothèque C ou C++ pour " +"laquelle aucune extension Python n'existe à ce jour, vous pouvez essayer " +"d'encapsuler les types de données et fonctions de la bibliothèque avec un " +"outil tel que `SWIG `_. `SIP `__, `CXX `_, `Boost `_ ou " +"`Weave `_ sont également des alternatives " +"pour encapsuler des bibliothèques C++." #: ../Doc/faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" msgstr "" +"Comment puis-je exécuter des instructions quelconques Python à partir de C ?" #: ../Doc/faq/extending.rst:63 msgid "" @@ -106,6 +125,7 @@ msgstr "" #: ../Doc/faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "" +"Comment puis-je évaluer une expression quelconque de Python à partir de C ?" #: ../Doc/faq/extending.rst:74 msgid "" @@ -113,10 +133,13 @@ msgid "" "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" +"Appelez la fonction :c:func:`PyRun_String` de la question précédente avec le " +"symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " +"l'évalue et renvoie sa valeur." #: ../Doc/faq/extending.rst:80 msgid "How do I extract C values from a Python object?" -msgstr "" +msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" #: ../Doc/faq/extending.rst:82 msgid "" @@ -125,6 +148,10 @@ msgid "" "specified index. Lists have similar functions, :c:func:`PyListSize` and :c:" "func:`PyList_GetItem`." msgstr "" +"Cela dépend du type d'objet. Si c'est un tuple, :c:func:`PyTuple_Size` " +"renvoie sa longueur et :c:func:`PyTuple_GetItem` renvoie l'élément à l'index " +"spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :" +"c:func:`PyList_GetItem`." #: ../Doc/faq/extending.rst:87 msgid "" @@ -133,6 +160,10 @@ msgid "" "Note that Python bytes objects may contain null bytes so C's :c:func:" "`strlen` should not be used." msgstr "" +"Pour les bytes, :c:func:`PyBytes_Size` renvoie sa longueur et :c:func:" +"`PyBytes_AsStringAndSize` fournit un pointeur vers sa valeur et sa longueur. " +"Notez que les objets bytes en Python peuvent contenir des valeurs nulles, " +"c'est pourquoi il ne faut pas utiliser la fonction C :c:func:`strlen`." #: ../Doc/faq/extending.rst:92 msgid "" @@ -150,18 +181,26 @@ msgid "" "as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " "al.) and mappings in the PyMapping APIs." msgstr "" +"Il y a aussi une API de haut niveau pour les objets Python qui est fournie " +"par l'interface dite « abstraite » — voir ``Include/abstract.h`` pour plus " +"de détails. Elle permet l'interfaçage avec tout type de séquence Python en " +"utilisant des appels tels que :c:func:`PySequence_Length`, :c:func:" +"`PySequence_GetItem`, etc. ainsi que de nombreux autres protocoles utiles " +"tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " +"correspondances dans les APIs PyMapping." #: ../Doc/faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" msgstr "" +"Comment utiliser Py_BuildValue() pour créer un tuple de longueur définie ?" #: ../Doc/faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "" +msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." #: ../Doc/faq/extending.rst:110 msgid "How do I call an object's method from C?" -msgstr "" +msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" #: ../Doc/faq/extending.rst:112 msgid "" @@ -170,6 +209,10 @@ msgid "" "to call, a format string like that used with :c:func:`Py_BuildValue`, and " "the argument values::" msgstr "" +"La fonction :c:func:`PyObject_CallMethod` peut être utilisée pour appeler la " +"méthode d'un objet. Les paramètres sont l'objet, le nom de la méthode à " +"appeler, une chaîne de caractères comme celle utilisée pour :c:func:" +"`Py_BuildValue` et les valeurs des arguments ::" #: ../Doc/faq/extending.rst:121 msgid "" @@ -177,12 +220,17 @@ msgid "" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " "return value." msgstr "" +"Cela fonctionne pour tous les objets qui ont des méthodes — qu'elles soient " +"intégrées ou définies par l'utilisateur. Vous êtes responsable de « :c:func:" +"`Py_DECREF`\\ *er* » la valeur de retour à la fin." #: ../Doc/faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" msgstr "" +"Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments " +"10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::" #: ../Doc/faq/extending.rst:135 msgid "" @@ -191,12 +239,18 @@ msgid "" "format, and to call a function with one argument, surround the argument in " "parentheses, e.g. \"(i)\"." msgstr "" +"Notez que :c:func:`PyObject_CallObject` veut *toujours* un tuple comme liste " +"d'arguments. Aussi, pour appeler une fonction sans arguments, utilisez " +"\"()\" pour être conforme au type et, pour appeler une fonction avec un " +"paramètre, entourez-le de parenthèses, p. ex. \"(i)\"." #: ../Doc/faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" msgstr "" +"Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui " +"s'affiche sur *stdout*/*stderr*) ?" #: ../Doc/faq/extending.rst:144 msgid "" @@ -205,22 +259,29 @@ msgid "" "print_error, or just allow the standard traceback mechanism to work. Then, " "the output will go wherever your ``write()`` method sends it." msgstr "" +"Dans le code Python, définissez un objet qui possède la méthode ``write()``. " +"Affectez cet objet à :data:`sys.stdout` et :data:`sys.stderr`. Appelez " +"*print_error* ou faites simplement en sorte que le mécanisme standard de " +"remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers " +"l'endroit où votre méthode ``write()`` écrit." #: ../Doc/faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" +"La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" #: ../Doc/faq/extending.rst:161 msgid "A custom object to do the same would look like this:" msgstr "" +"Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" #: ../Doc/faq/extending.rst:182 msgid "How do I access a module written in Python from C?" -msgstr "" +msgstr "Comment accéder à un module écrit en Python à partir de C ?" #: ../Doc/faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" -msgstr "" +msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" #: ../Doc/faq/extending.rst:188 msgid "" @@ -230,22 +291,32 @@ msgid "" "module into any namespace -- it only ensures it has been initialized and is " "stored in :data:`sys.modules`." msgstr "" +"Si le module n'a pas encore été importé (c.-à-d. qu'il n'est pas encore " +"présent dans :data:`sys.modules`), cela initialise le module ; sinon il " +"renvoie simplement la valeur de ``sys.modules[\"\"]``. Notez " +"qu'il n'inscrit le module dans aucun espace de nommage — il s'assure " +"seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys." +"modules`." #: ../Doc/faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" msgstr "" +"Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini " +"dans le module) comme suit ::" #: ../Doc/faq/extending.rst:199 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." msgstr "" +"Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " +"variables du module fonctionne également." #: ../Doc/faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" -msgstr "" +msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" #: ../Doc/faq/extending.rst:206 msgid "" @@ -256,14 +327,22 @@ msgid "" "building a new Python type around a C structure (pointer) type will also " "work for C++ objects." msgstr "" +"Selon vos besoins, de nombreuses approches sont possibles. Pour le faire " +"manuellement, commencez par lire :ref:`le document \"Extension et intégration" +"\" `. Sachez que pour le système d'exécution Python, il n'y " +"a pas beaucoup de différence entre C et C++ — donc la méthode pour " +"construire un nouveau type Python à partir d'une structure C (pointeur) " +"fonctionne également avec des objets en C++." #: ../Doc/faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." -msgstr "" +msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." #: ../Doc/faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" msgstr "" +"J'ai ajouté un module en utilisant le fichier *Setup* et la compilation " +"échoue ; pourquoi ?" #: ../Doc/faq/extending.rst:218 msgid "" @@ -271,30 +350,40 @@ msgid "" "fails. (Fixing this requires some ugly shell script hackery, and this bug " "is so minor that it doesn't seem worth the effort.)" msgstr "" +"Le fichier *Setup* doit se terminer par une ligne vide, s'il n'y a pas de " +"ligne vide, le processus de compilation échoue (ce problème peut se régler " +"en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite " +"pas qu'on s'y attarde)." #: ../Doc/faq/extending.rst:224 msgid "How do I debug an extension?" -msgstr "" +msgstr "Comment déboguer une extension ?" #: ../Doc/faq/extending.rst:226 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." msgstr "" +"Lorsque vous utilisez GDB avec des extensions chargées dynamiquement, vous " +"ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci " +"n'est pas chargée." #: ../Doc/faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" msgstr "" +"Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" #: ../Doc/faq/extending.rst:235 msgid "Then, when you run GDB:" -msgstr "" +msgstr "Ensuite, lorsque vous exécutez GDB :" #: ../Doc/faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" msgstr "" +"Je veux compiler un module Python sur mon système Linux, mais il manque " +"certains fichiers. Pourquoi ?" #: ../Doc/faq/extending.rst:249 msgid "" @@ -302,18 +391,25 @@ msgid "" "{x}/config/` directory, which contains various files required for compiling " "Python extensions." msgstr "" +"La plupart des versions pré-compilées de Python n'incluent pas le " +"répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents " +"fichiers nécessaires à la compilation des extensions Python." #: ../Doc/faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." msgstr "" +"Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers " +"nécessaires." #: ../Doc/faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." -msgstr "" +msgstr "Pour Debian, exécutez ``apt-get install python-dev``." #: ../Doc/faq/extending.rst:259 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" msgstr "" +"Comment distinguer une « entrée incomplète » (*incomplete input*) d'une " +"« entrée invalide » (*invalid input*) ?" #: ../Doc/faq/extending.rst:261 msgid "" @@ -323,12 +419,19 @@ msgid "" "parentheses or triple string quotes), but it gives you a syntax error " "message immediately when the input is invalid." msgstr "" +"Parfois vous souhaitez émuler le comportement de l'interpréteur interactif " +"Python, quand il vous donne une invite de continuation lorsque l'entrée est " +"incomplète (par exemple, vous avez tapé le début d'une instruction \"if\" ou " +"vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous " +"renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte." #: ../Doc/faq/extending.rst:267 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." msgstr "" +"En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche " +"assez du comportement de l'analyseur. Par exemple, IDLE l'utilise." #: ../Doc/faq/extending.rst:270 msgid "" @@ -338,6 +441,12 @@ msgid "" "to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" +"La façon la plus simple de le faire en C est d'appeler :c:func:" +"`PyRun_InteractiveLoop` (peut-être dans un autre fil d'exécution) et laisser " +"l'interpréteur Python gérer l'entrée pour vous. Vous pouvez également " +"définir :c:func:`PyOS_ReadlineFunctionPointer` pour pointer vers votre " +"fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/" +"myreadline.c`` pour plus de conseils." #: ../Doc/faq/extending.rst:276 msgid "" @@ -360,10 +469,21 @@ msgid "" "\". Here is a complete example using the GNU readline library (you may want " "to ignore **SIGINT** while calling readline())::" msgstr "" +"Une autre solution est d'essayer de compiler la chaîne reçue avec :c:func:" +"`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter " +"l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, " +"enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez s'il " +"s'agit d'une erreur ou s'il faut juste plus de données — en extrayant la " +"chaîne de message du tuple d'exception et en la comparant à la chaîne *" +"\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation de " +"la bibliothèque *readline* de GNU (il vous est possible d'ignorer **SIGINT** " +"lors de l'appel à ``readline()``) ::" #: ../Doc/faq/extending.rst:430 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" msgstr "" +"Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou " +"``__pure_virtual`` ?" #: ../Doc/faq/extending.rst:432 msgid "" @@ -371,18 +491,27 @@ msgid "" "it using g++ (change LINKCC in the Python Modules Makefile), and link your " "extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." msgstr "" +"Pour charger dynamiquement les modules d'extension g++, vous devez " +"recompiler Python, effectuer l'édition de liens en utilisant g++ (modifiez " +"*LINKCC* dans le *Python Modules Makefile*), et effectuer l'édition de liens " +"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule." +"so mymodule.o``)." #: ../Doc/faq/extending.rst:438 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" msgstr "" +"Puis-je créer une classe d'objets avec certaines méthodes implémentées en C " +"et d'autres en Python (p. ex. en utilisant l'héritage) ?" #: ../Doc/faq/extending.rst:440 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." msgstr "" +"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :" +"class:`list`, :class:`dict`, etc." #: ../Doc/faq/extending.rst:443 msgid "" @@ -390,3 +519,6 @@ msgid "" "html) provides a way of doing this from C++ (i.e. you can inherit from an " "extension class written in C++ using the BPL)." msgstr "" +"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/" +"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que " +"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)." diff --git a/faq/gui.po b/faq/gui.po index 2bf1ca5b8..7c398c894 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -57,6 +57,14 @@ msgid "" "tk>`_. Tcl/Tk is fully portable to the Mac OS X, Windows, and Unix " "platforms." msgstr "" +"Les versions standards de Python incluent une interface orientée objet pour " +"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter `. " +"C'est probablement la plus facile à installer (puisqu'elle est incluse avec " +"la plupart des `distributions binaires `_ " +"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les " +"liens vers les sources, voir la page d'accueil `Tcl/Tk `_. *Tcl/Tk* est entièrement portable sur les plates-formes Mac OS X, " +"Windows et Unix." #: ../Doc/faq/gui.rst:38 msgid "wxWidgets" @@ -70,6 +78,11 @@ msgid "" "targets. Language bindings are available for a number of languages " "including Python, Perl, Ruby, etc." msgstr "" +"`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG " +"portable et gratuite écrite en C++ qui fournit une apparence native sur un " +"certain nombre de plates-formes, elle est notamment en version stable pour " +"Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un certain " +"nombre de langages, y compris Python, Perl, Ruby, etc." #: ../Doc/faq/gui.rst:46 msgid "" @@ -91,10 +104,14 @@ msgid "" "licences that allow their use in commercial products as well as in freeware " "or shareware." msgstr "" +"*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open source, " +"avec des licences permissives qui permettent leur utilisation dans des " +"produits commerciaux ainsi que dans des logiciels gratuits ou contributifs " +"(*shareware*)." #: ../Doc/faq/gui.rst:58 msgid "Qt" -msgstr "" +msgstr "*Qt*" #: ../Doc/faq/gui.rst:60 msgid "" @@ -106,16 +123,26 @@ msgid "" "com/commercial/license-faq>`_ if you want to write proprietary " "applications. PySide is free for all applications." msgstr "" +"Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant " +"soit `PyQt `_ ou `PySide " +"`_) et pour *KDE* (`PyKDE4 `__). *PyQt* est actuellement plus mûre " +"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank " +"Computing `_ si " +"vous voulez écrire des applications propriétaires. *PySide* est gratuit " +"pour toutes les applications." #: ../Doc/faq/gui.rst:67 msgid "" "Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses " "are available from `The Qt Company `_." msgstr "" +"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont " +"disponibles auprès de `The Qt Company `_." #: ../Doc/faq/gui.rst:71 msgid "Gtk+" -msgstr "" +msgstr "*Gtk+*" #: ../Doc/faq/gui.rst:73 msgid "" @@ -133,7 +160,7 @@ msgstr "" #: ../Doc/faq/gui.rst:81 msgid "Kivy" -msgstr "" +msgstr "*Kivy*" #: ../Doc/faq/gui.rst:83 msgid "" @@ -142,15 +169,20 @@ msgid "" "(Android, iOS). It is written in Python and Cython, and can use a range of " "windowing backends." msgstr "" +"`*Kivy* `_ est une bibliothèque GUI multi-plateformes " +"disponible à la fois sur les systèmes d'exploitation de bureau (Windows, " +"MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite en " +"Python et Cython, et peut utiliser une série de fenêtres de *backends*." #: ../Doc/faq/gui.rst:88 msgid "" "Kivy is free and open source software distributed under the MIT license." msgstr "" +"*Kivy* est un logiciel libre et open source distribué sous licence MIT." #: ../Doc/faq/gui.rst:91 msgid "FLTK" -msgstr "" +msgstr "*FLTK*" #: ../Doc/faq/gui.rst:93 msgid "" @@ -158,18 +190,24 @@ msgid "" "powerful and mature cross-platform windowing system, are available from `the " "PyFLTK project `_." msgstr "" +"Les liaisons Python pour `the FLTK toolkit `_, un " +"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont " +"disponibles auprès de `the PyFLTK project `_." #: ../Doc/faq/gui.rst:98 msgid "OpenGL" -msgstr "" +msgstr "*OpenGL*" #: ../Doc/faq/gui.rst:100 msgid "For OpenGL bindings, see `PyOpenGL `_." msgstr "" +"Pour les clients OpenGL, voir `PyOpenGL `_." #: ../Doc/faq/gui.rst:104 msgid "What platform-specific GUI toolkits exist for Python?" msgstr "" +"Quelles boîtes à outils IUG spécifiques à la plate-forme existent pour " +"Python ?" #: ../Doc/faq/gui.rst:106 msgid "" @@ -183,14 +221,17 @@ msgid "" "Microsoft Foundation Classes and a Python programming environment that's " "written mostly in Python using the MFC classes." msgstr "" +":ref:`Pythonwin ` de Mark Hammond inclut une interface vers les " +"classes `Microsoft Foundation Classes` et un environnement de programmation " +"Python qui est écrit principalement en Python utilisant les classes *MFC*." #: ../Doc/faq/gui.rst:116 msgid "Tkinter questions" -msgstr "" +msgstr "Questions à propos de *Tkinter*" #: ../Doc/faq/gui.rst:119 msgid "How do I freeze Tkinter applications?" -msgstr "" +msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?" #: ../Doc/faq/gui.rst:121 msgid "" @@ -198,6 +239,10 @@ msgid "" "applications, the applications will not be truly stand-alone, as the " "application will still need the Tcl and Tk libraries." msgstr "" +"*Freeze* est un outil pour créer des applications autonomes. Lors du " +"*freezage* des applications Tkinter, les applications ne seront pas vraiment " +"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et " +"Tk." #: ../Doc/faq/gui.rst:125 msgid "" @@ -205,6 +250,9 @@ msgid "" "point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:" "`TK_LIBRARY` environment variables." msgstr "" +"Une solution consiste à empaqueter les bibliothèques *Tcl* et *Tk* dans " +"l'application et de les retrouver à l'exécution en utilisant les variables " +"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`." #: ../Doc/faq/gui.rst:129 msgid "" @@ -213,6 +261,10 @@ msgid "" "is SAM (stand-alone modules), which is part of the Tix distribution (http://" "tix.sourceforge.net/)." msgstr "" +"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui " +"forment la bibliothèque doivent également être intégrés dans l'application. " +"Un outil supportant cela est *SAM* (modules autonomes), qui fait partie de " +"la distribution *Tix* (http://tix.sourceforge.net/)." #: ../Doc/faq/gui.rst:134 msgid "" @@ -220,10 +272,14 @@ msgid "" "`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " "with libtclsam and libtksam (you might include the Tix libraries as well)." msgstr "" +"Compilez Tix avec SAM activé, exécutez l'appel approprié à :c:func:" +"`Tclsam_init`, etc. dans le fichier :file:`Modules/tkappinit.c` de Python, " +"et liez avec *libtclsam* et *libtksam* (il est également possible d'inclure " +"les bibliothèques *Tix*)." #: ../Doc/faq/gui.rst:141 msgid "Can I have Tk events handled while waiting for I/O?" -msgstr "" +msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?" #: ../Doc/faq/gui.rst:143 msgid "" @@ -233,10 +289,18 @@ msgid "" "function which will be called from the Tk mainloop when I/O is possible on a " "file descriptor. See :ref:`tkinter-file-handlers`." msgstr "" +"Sur d'autres plates-formes que Windows, oui, et vous n'avez même pas besoin " +"de fils d'exécution multiples ! Mais vous devrez restructurer un peu votre " +"code *E/S*. *Tk* possède l'équivalent de l'appel :c:func:`XtAddInput()` de " +"*Xt*, qui vous permet d'enregistrer une fonction de *callback* qui sera " +"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur " +"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`." #: ../Doc/faq/gui.rst:151 msgid "I can't get key bindings to work in Tkinter: why?" msgstr "" +"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : " +"pourquoi ?" #: ../Doc/faq/gui.rst:153 msgid "" @@ -244,6 +308,9 @@ msgid "" "meth:`bind` method don't get handled even when the appropriate key is " "pressed." msgstr "" +"Une raison récurrente est que les gestionnaires d’évènements liés à des " +"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même " +"lorsque la touche appropriée est activée." #: ../Doc/faq/gui.rst:156 msgid "" @@ -252,3 +319,8 @@ msgid "" "focus command. Usually a widget is given the keyboard focus by clicking in " "it (but not for labels; see the takefocus option)." msgstr "" +"La cause la plus fréquente est que l'objet graphique auquel s'applique la " +"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour " +"la commande *focus*. Habituellement, un objet graphique reçoit le focus du " +"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option " +"*takefocus*)." diff --git a/faq/library.po b/faq/library.po index 9911af123..6579e8302 100644 --- a/faq/library.po +++ b/faq/library.po @@ -41,6 +41,9 @@ msgid "" "relevant standard library module. (Eventually you'll learn what's in the " "standard library and will be able to skip this step.)" msgstr "" +"Regardez si la :ref:`bibliothèque standard ` contient un " +"module approprié (avec l'expérience, vous connaitrez le contenu de la " +"bibliothèque standard et pourrez sauter cette étape)." #: ../Doc/faq/library.rst:21 msgid "" @@ -49,6 +52,11 @@ msgid "" "engine. Searching for \"Python\" plus a keyword or two for your topic of " "interest will usually find something helpful." msgstr "" +"Pour des paquets tiers, regardez dans `l'index des paquets Python `_ ou essayez `Google `_ ou un autre moteur " +"de recherche (NDT : comme le moteur français `Qwant `_). Rechercher « Python » accompagné d'un ou deux mots-clés se " +"rapportant à ce qui vous intéresse donne souvent de bons résultats." #: ../Doc/faq/library.rst:28 msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" @@ -63,6 +71,12 @@ msgid "" "file:`mathmodule.c`, somewhere in a C source directory (not on the Python " "Path)." msgstr "" +"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-" +"être parce que celui-ci est un module natif ou bien un module implémenté en " +"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, " +"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité " +"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas " +"dans le chemin Python), comme par exemple :file:`mathmodule.c`." #: ../Doc/faq/library.rst:35 msgid "There are (at least) three kinds of modules in Python:" @@ -84,10 +98,12 @@ msgid "" "modules written in C and linked with the interpreter; to get a list of " "these, type::" msgstr "" +"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, " +"entrez ::" #: ../Doc/faq/library.rst:47 msgid "How do I make a Python script executable on Unix?" -msgstr "" +msgstr "Comment rendre un script Python exécutable sous Unix ?" #: ../Doc/faq/library.rst:49 msgid "" @@ -95,24 +111,31 @@ msgid "" "first line must begin with ``#!`` followed by the path of the Python " "interpreter." msgstr "" +"Deux conditions doivent être remplies : les droits d'accès au fichier " +"doivent permettre son exécution et la première ligne du script doit " +"commencer par ``#!`` suivi du chemin vers l'interpréteur Python." #: ../Doc/faq/library.rst:53 msgid "" "The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " "755 scriptfile``." msgstr "" +"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou " +"``chmod 755 scriptfile``." #: ../Doc/faq/library.rst:56 msgid "" "The second can be done in a number of ways. The most straightforward way is " "to write ::" msgstr "" +"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à " +"écrire au tout début du fichier ::" #: ../Doc/faq/library.rst:61 msgid "" "as the very first line of your file, using the pathname for where the Python " "interpreter is installed on your platform." -msgstr "" +msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine." #: ../Doc/faq/library.rst:64 msgid "" @@ -121,6 +144,11 @@ msgid "" "variants support the following, assuming the Python interpreter is in a " "directory on the user's :envvar:`PATH`::" msgstr "" +"Pour rendre ce script indépendant de la localisation de l'interpréteur " +"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous " +"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que " +"l'interpréteur Python soit dans un dossier référencé dans la variable :" +"envvar:`PATH` de l'utilisateur ::" #: ../Doc/faq/library.rst:71 msgid "" @@ -128,6 +156,9 @@ msgid "" "scripts is often very minimal, so you need to use the actual absolute " "pathname of the interpreter." msgstr "" +"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des " +"scripts CGI est souvent très succincte, il faut par conséquent préciser le " +"chemin absolu réel de l'interpréteur." #: ../Doc/faq/library.rst:75 msgid "" @@ -135,16 +166,22 @@ msgid "" "env` program fails; or there's no env program at all. In that case, you can " "try the following hack (due to Alex Rezinsky):" msgstr "" +"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le " +"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* " +"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, " +"élaborée par Alex Rezinsky :" #: ../Doc/faq/library.rst:86 msgid "" "The minor disadvantage is that this defines the script's __doc__ string. " "However, you can fix that by adding ::" msgstr "" +"Le léger inconvénient est que cela définit la variable *__doc__* du script. " +"Cependant, il est possible de corriger cela en ajoutant ::" #: ../Doc/faq/library.rst:94 msgid "Is there a curses/termcap package for Python?" -msgstr "" +msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?" #: ../Doc/faq/library.rst:98 msgid "" @@ -153,6 +190,10 @@ msgid "" "compiled by default. (Note that this is not available in the Windows " "distribution -- there is no curses module for Windows.)" msgstr "" +"Pour les dérivés d'Unix : la distribution standard de Python contient un " +"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit " +"pas compilé par défaut. Il n'est pas disponible en Windows — le module " +"*curses* n'existant pas en Windows." #: ../Doc/faq/library.rst:103 msgid "" @@ -163,44 +204,57 @@ msgid "" "but there don't seem to be any currently maintained OSes that fall into this " "category." msgstr "" +"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et " +"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de " +"*SYSV curses* comme la couleur, la gestion des ensembles de caractères " +"alternatifs, la prise en charge du pavé tactile et de la souris. Cela " +"implique que le module n'est pas compatible avec des systèmes d'exploitation " +"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes " +"d'exploitation ne semblent plus exister ou être maintenus." #: ../Doc/faq/library.rst:109 msgid "" "For Windows: use `the consolelib module `_." msgstr "" +"Pour Windows : utilisez le module `consolelib `_." #: ../Doc/faq/library.rst:114 msgid "Is there an equivalent to C's onexit() in Python?" -msgstr "" +msgstr "Existe-t'il un équivalent à la fonction C ``onexit()`` en Python ?" #: ../Doc/faq/library.rst:116 msgid "" "The :mod:`atexit` module provides a register function that is similar to " "C's :c:func:`onexit`." msgstr "" +"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la " +"fonction C :c:func:`onexit`." #: ../Doc/faq/library.rst:121 msgid "Why don't my signal handlers work?" -msgstr "" +msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-t'ils pas ?" #: ../Doc/faq/library.rst:123 msgid "" "The most common problem is that the signal handler is declared with the " "wrong argument list. It is called as ::" msgstr "" +"Le problème le plus courant est d'appeler le gestionnaire de signaux avec " +"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::" #: ../Doc/faq/library.rst:128 msgid "so it should be declared with two arguments::" -msgstr "" +msgstr "donc il doit être déclaré avec deux paramètres ::" #: ../Doc/faq/library.rst:135 msgid "Common tasks" -msgstr "" +msgstr "Tâches fréquentes" #: ../Doc/faq/library.rst:138 msgid "How do I test a Python program or component?" -msgstr "" +msgstr "Comment tester un programme ou un composant Python ?" #: ../Doc/faq/library.rst:140 msgid "" @@ -208,12 +262,17 @@ msgid "" "examples in the docstrings for a module and runs them, comparing the output " "with the expected output given in the docstring." msgstr "" +"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des " +"exemples dans les *docstrings* d'un module et les exécute. Il compare alors " +"la sortie avec la sortie attendue, telle que définie dans la *docstring*." #: ../Doc/faq/library.rst:144 msgid "" "The :mod:`unittest` module is a fancier testing framework modelled on Java " "and Smalltalk testing frameworks." msgstr "" +"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les " +"cadriciels de test de Java et de Smalltalk." #: ../Doc/faq/library.rst:147 msgid "" @@ -225,14 +284,23 @@ msgid "" "avoid depending on mutating global variables, since this makes testing much " "more difficult to do." msgstr "" +"Pour rendre le test plus aisé, il est nécessaire de bien découper le code " +"d'un programme. Votre programme doit avoir la quasi-totalité des " +"fonctionnalités dans des fonctions ou des classes — et ceci a parfois " +"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, " +"les accès aux variables locales étant en effet plus rapides que les accès " +"aux variables globales. De plus le programme doit éviter au maximum de " +"manipuler des variables globales, car ceci rend le test beaucoup plus " +"difficile." #: ../Doc/faq/library.rst:155 msgid "The \"global main logic\" of your program may be as simple as ::" msgstr "" +"La « logique générale » d'un programme devrait être aussi simple que ::" #: ../Doc/faq/library.rst:160 msgid "at the bottom of the main module of your program." -msgstr "" +msgstr "à la fin du module principal du programme." #: ../Doc/faq/library.rst:162 msgid "" @@ -245,12 +313,24 @@ msgid "" "the \"production code\", since this makes it easy to find bugs and even " "design flaws earlier." msgstr "" +"Une fois que la logique du programme est implémentée par un ensemble de " +"fonctions et de comportements de classes, il faut écrire des fonctions de " +"test qui vont éprouver cette logique. À chaque module, il est possible " +"d'associer une suite de tests qui joue de manière automatique un ensemble de " +"tests. Au premier abord, il semble qu'il faille fournir un effort " +"conséquent, mais comme Python est un langage concis et flexible, c'est " +"surprenamment aisé. Écrire simultanément le code « de production » et les " +"fonctions de test associées rend le développement plus agréable et plus " +"amusant, car ceci permet de trouver des bogues, voire des défauts de " +"conception, plus facilement." #: ../Doc/faq/library.rst:170 msgid "" "\"Support modules\" that are not intended to be the main module of a program " "may include a self-test of the module. ::" msgstr "" +"Les « modules auxiliaires » qui n'ont pas vocation à être le module " +"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::" #: ../Doc/faq/library.rst:176 msgid "" @@ -258,10 +338,13 @@ msgid "" "when the external interfaces are unavailable by using \"fake\" interfaces " "implemented in Python." msgstr "" +"Les programmes qui interagissent avec des interfaces externes complexes " +"peuvent être testés même quand ces interfaces ne sont pas disponibles, en " +"utilisant des interfaces « simulacres » implémentées en Python." #: ../Doc/faq/library.rst:182 msgid "How do I create documentation from doc strings?" -msgstr "" +msgstr "Comment générer la documentation à partir des *docstrings* ?" #: ../Doc/faq/library.rst:184 msgid "" @@ -270,24 +353,32 @@ msgid "" "docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." msgstr "" +"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du " +"code source Python. Il est aussi possible de documenter une API uniquement à " +"partir des *docstrings* à l'aide de `epydoc `_. `Sphinx `_ peut également inclure du contenu " +"provenant de *docstrings*." #: ../Doc/faq/library.rst:191 msgid "How do I get a single keypress at a time?" -msgstr "" +msgstr "Comment détecter qu'une touche est pressée ?" #: ../Doc/faq/library.rst:193 msgid "" "For Unix variants there are several solutions. It's straightforward to do " "this using curses, but curses is a fairly large module to learn." msgstr "" +"Pour les dérivés d'Unix, plusieurs solutions s'offrent à vous. C'est facile " +"en utilisant le module *curses*, mais *curses* est un module assez " +"conséquent à apprendre." #: ../Doc/faq/library.rst:237 msgid "Threads" -msgstr "" +msgstr "Fils d'exécution" #: ../Doc/faq/library.rst:240 msgid "How do I program using threads?" -msgstr "" +msgstr "Comment programmer avec des fils d'exécution ?" #: ../Doc/faq/library.rst:242 msgid "" @@ -295,28 +386,38 @@ msgid "" "module. The :mod:`threading` module builds convenient abstractions on top of " "the low-level primitives provided by the :mod:`_thread` module." msgstr "" +"Veillez à bien utiliser le module :mod:`threading` et non le module :mod:" +"`_thread`. Le module :mod:`threading` fournit une abstraction plus facile à " +"manipuler que les primitives de bas-niveau du module :mod:`_thread`." #: ../Doc/faq/library.rst:246 msgid "" "Aahz has a set of slides from his threading tutorial that are helpful; see " "http://www.pythoncraft.com/OSCON2001/." msgstr "" +"Un ensemble de diapositives issues du didacticiel de Aahz sur les fils " +"d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/." #: ../Doc/faq/library.rst:251 msgid "None of my threads seem to run: why?" -msgstr "" +msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?" #: ../Doc/faq/library.rst:253 msgid "" "As soon as the main thread exits, all threads are killed. Your main thread " "is running too quickly, giving the threads no time to do any work." msgstr "" +"Dès que le fil d'exécution principal se termine, tous les fils sont tués. Le " +"fil principal s'exécute trop rapidement, sans laisser le temps aux autres " +"fils de faire quoi que ce soit." #: ../Doc/faq/library.rst:256 msgid "" "A simple fix is to add a sleep to the end of the program that's long enough " "for all the threads to finish::" msgstr "" +"Une correction simple consiste à ajouter un temps d'attente suffisamment " +"long à la fin du programme pour que tous les fils puissent se terminer ::" #: ../Doc/faq/library.rst:271 msgid "" @@ -324,10 +425,16 @@ msgid "" "run sequentially, one at a time! The reason is that the OS thread scheduler " "doesn't start a new thread until the previous thread is blocked." msgstr "" +"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas " +"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après " +"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne " +"démarre pas de nouveau fil avant que le précédent ne soit bloqué." #: ../Doc/faq/library.rst:275 msgid "A simple fix is to add a tiny sleep to the start of the run function::" msgstr "" +"Une correction simple consiste à ajouter un petit temps d'attente au début " +"de la fonction ::" #: ../Doc/faq/library.rst:288 msgid "" @@ -337,16 +444,27 @@ msgid "" "the queue when it finishes, and let the main thread read as many tokens from " "the queue as there are threads." msgstr "" +"Au lieu d'essayer de trouver une bonne valeur d'attente pour la fonction :" +"func:`time.sleep`, il vaut mieux utiliser un mécanisme basé sur les " +"sémaphores. Une solution consiste à utiliser le module :mod:`queue` pour " +"créer un objet file, faire en sorte que chaque fil ajoute un jeton à la file " +"quand il se termine, et que le fil principal retire autant de jetons de la " +"file qu'il y a de fils." #: ../Doc/faq/library.rst:296 msgid "How do I parcel out work among a bunch of worker threads?" msgstr "" +"Comment découper et répartir une tâche au sein d'un ensemble de fils " +"d'exécutions ?" #: ../Doc/faq/library.rst:298 msgid "" "The easiest way is to use the new :mod:`concurrent.futures` module, " "especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" +"La manière la plus simple est d'utiliser le nouveau module :mod:`concurrent." +"futures`, en particulier la classe :mod:`~concurrent.futures." +"ThreadPoolExecutor`." #: ../Doc/faq/library.rst:301 msgid "" @@ -357,24 +475,35 @@ msgid "" "``.get()`` method to return them. The class will take care of the locking " "necessary to ensure that each job is handed out exactly once." msgstr "" +"Ou bien, si vous désirez contrôler plus finement l'algorithme de " +"distribution, vous pouvez écrire votre propre logique « à la main ». " +"Utilisez le module :mod:`queue` pour créer une file de tâches ; la classe :" +"class:`~queue.Queue` gère une liste d'objets et a une méthode ``." +"put(objet)`` pour ajouter un élément à la file, et une méthode ``.get()`` " +"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque " +"tâche soit exécutée une et une seule fois." #: ../Doc/faq/library.rst:308 msgid "Here's a trivial example::" -msgstr "" +msgstr "Voici un exemple trivial ::" #: ../Doc/faq/library.rst:346 msgid "When run, this will produce the following output:" -msgstr "" +msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :" #: ../Doc/faq/library.rst:364 msgid "" "Consult the module's documentation for more details; the :class:`~queue." "Queue` class provides a featureful interface." msgstr "" +"Consultez la documentation du module pour plus de détails ; la classe :class:" +"`~queue.Queue` fournit une interface pleine de fonctionnalités." #: ../Doc/faq/library.rst:369 msgid "What kinds of global value mutation are thread-safe?" msgstr "" +"Quels types de mutations sur des variables globales sont compatibles avec " +"les programmes à fils d'exécution multiples ? sécurisé ?" #: ../Doc/faq/library.rst:371 msgid "" @@ -385,6 +514,14 @@ msgid "" "instruction and therefore all the C implementation code reached from each " "instruction is therefore atomic from the point of view of a Python program." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL " +"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la " +"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De " +"manière générale, Python ne change de fil qu'entre les instructions du code " +"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la " +"fréquence de bascule entre les fils. Chaque instruction du code " +"intermédiaire, et, par conséquent, tout le code C appelé par cette " +"instruction est donc atomique du point de vue d'un programme Python." #: ../Doc/faq/library.rst:378 msgid "" @@ -393,16 +530,24 @@ msgid "" "shared variables of built-in data types (ints, lists, dicts, etc) that " "\"look atomic\" really are." msgstr "" +"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance " +"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les " +"opérations sur des variables partagées de type natif (les entier, les " +"listes, les dictionnaires etc.) qui « semblent atomiques » le sont " +"réellement." #: ../Doc/faq/library.rst:383 msgid "" "For example, the following operations are all atomic (L, L1, L2 are lists, " "D, D1, D2 are dicts, x, y are objects, i, j are ints)::" msgstr "" +"Par exemple, les opérations suivantes sont toutes atomiques (*L*, *L1* et " +"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* " +"sont des objets, *i* et *j* des entiers) ::" #: ../Doc/faq/library.rst:398 msgid "These aren't::" -msgstr "" +msgstr "Les suivantes ne le sont pas ::" #: ../Doc/faq/library.rst:405 msgid "" @@ -411,10 +556,15 @@ msgid "" "affect things. This is especially true for the mass updates to dictionaries " "and lists. When in doubt, use a mutex!" msgstr "" +"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :" +"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, " +"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les " +"des changements massifs sur des dictionnaires ou des listes. En cas de " +"doute, il vaut mieux utiliser un mutex." #: ../Doc/faq/library.rst:412 msgid "Can't we get rid of the Global Interpreter Lock?" -msgstr "" +msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?" #: ../Doc/faq/library.rst:416 msgid "" @@ -423,6 +573,12 @@ msgid "" "multi-threaded Python program effectively only uses one CPU, due to the " "insistence that (almost) all Python code can only run while the GIL is held." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL) " +"est souvent vu comme un obstacle au déploiement de code Python sur des " +"serveurs puissants avec de nombreux processeurs, car un programme Python à " +"fils d'exécutions multiples n'utilise en réalité qu'un seul processeur. " +"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL " +"acquis." #: ../Doc/faq/library.rst:421 msgid "" @@ -446,6 +602,13 @@ msgid "" "module provides a lower-level API in case you want more control over " "dispatching of tasks." msgstr "" +"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des " +"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le " +"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils " +"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du " +"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; " +"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un " +"meilleur contrôle sur la distribution des tâches." #: ../Doc/faq/library.rst:437 msgid "" @@ -455,6 +618,11 @@ msgid "" "work done. Some standard library modules such as :mod:`zlib` and :mod:" "`hashlib` already do this." msgstr "" +"Des extensions C appropriées peuvent aussi aider ; en utilisant une " +"extension C pour effectuer une tâche longue, l'extension peut relâcher le " +"GIL pendant que le fil est en train d'exécuter ce code et laisser les autres " +"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` " +"ou :mod:`hashlib` utilisent cette technique." #: ../Doc/faq/library.rst:443 msgid "" @@ -467,6 +635,15 @@ msgid "" "types have their own free list; these free lists would have to be moved to " "the interpreter state. And so on." msgstr "" +"On a déjà proposé de restreindre le GIL par interpréteur, et non plus d'être " +"complétement global ; les interpréteurs ne seraient plus en mesure de " +"partager des objets. Malheureusement, cela n'a pas beaucoup de chance non " +"plus d'arriver. Cela nécessiterait un travail considérable, car la façon " +"dont beaucoup d'objets sont implémentés rend leur état global. Par exemple, " +"les entiers et les chaînes de caractères courts sont mis en cache ; ces " +"caches devraient être déplacés au niveau de l'interpréteur. D'autres objets " +"ont leur propre liste de suppression, ces listes devraient être déplacées au " +"niveau de l'interpréteur et ainsi de suite." #: ../Doc/faq/library.rst:452 msgid "" @@ -475,12 +652,19 @@ msgid "" "extensions are being written at a faster rate than you can convert them to " "store all their global state in the interpreter state." msgstr "" +"C'est une tâche sans fin, car les extensions tierces ont le même problème, " +"et il est probable que les extensions tierces soient développées plus vite " +"qu'il ne soit possible de les corriger pour les faire stocker leur état au " +"niveau de l'interpréteur et non plus au niveau global." #: ../Doc/faq/library.rst:457 msgid "" "And finally, once you have multiple interpreters not sharing any state, what " "have you gained over running each interpreter in a separate process?" msgstr "" +"Et enfin, quel intérêt y-a t'il à avoir plusieurs interpréteurs qui ne " +"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans " +"un processus différent ?" #: ../Doc/faq/library.rst:462 msgid "Input and Output" @@ -488,7 +672,7 @@ msgstr "Les entrées/sorties" #: ../Doc/faq/library.rst:465 msgid "How do I delete a file? (And other file questions...)" -msgstr "" +msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)" #: ../Doc/faq/library.rst:467 msgid "" @@ -496,6 +680,10 @@ msgid "" "see the :mod:`os` module. The two functions are identical; :func:`~os." "unlink` is simply the name of the Unix system call for this function." msgstr "" +"Utilisez ``os.remove(filename)`` ou ``os.unlink(filename)`` ; pour la " +"documentation, référez-vous au module :mod:`os`. Ces deux fonctions sont " +"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel " +"système à cette fonction sous Unix." #: ../Doc/faq/library.rst:471 msgid "" @@ -505,10 +693,16 @@ msgid "" "directories as long as they're empty; if you want to delete an entire " "directory tree and its contents, use :func:`shutil.rmtree`." msgstr "" +"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour " +"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers " +"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` " +"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer " +"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`." #: ../Doc/faq/library.rst:477 msgid "To rename a file, use ``os.rename(old_path, new_path)``." msgstr "" +"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier." #: ../Doc/faq/library.rst:479 msgid "" @@ -517,6 +711,11 @@ msgid "" "There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os." "open`, where *fd* is the file descriptor (a small integer)." msgstr "" +"Pour supprimer le contenu d'un fichier, ouvrez celui-ci avec ``f = " +"open(nom_du_fichier, \"rb+\")``, puis exécutez ``f.truncate(décalage)`` où " +"*décalage* est par défaut la position actuelle de la tête de lecture. Il " +"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts avec :" +"func:`os.open`, où *df* est le descripteur de fichier (un entier court)." #: ../Doc/faq/library.rst:484 msgid "" @@ -524,20 +723,26 @@ msgid "" "files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" "func:`~shutil.rmtree`." msgstr "" +"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour " +"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :" +"func:`~shutil.copytree` et :func:`~shutil.rmtree`." #: ../Doc/faq/library.rst:490 msgid "How do I copy a file?" -msgstr "" +msgstr "Comment copier un fichier ?" #: ../Doc/faq/library.rst:492 msgid "" "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " "that on MacOS 9 it doesn't copy the resource fork and Finder info." msgstr "" +"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous " +"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations " +"du chercheur." #: ../Doc/faq/library.rst:497 msgid "How do I read (or write) binary data?" -msgstr "" +msgstr "Comment lire (ou écrire) des données binaires ?" #: ../Doc/faq/library.rst:499 msgid "" @@ -545,12 +750,18 @@ msgid "" "`struct` module. It allows you to take a string containing binary data " "(usually numbers) and convert it to Python objects; and vice versa." msgstr "" +"Pour lire ou écrire des formats de données complexes en binaire, il est " +"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir " +"une chaîne de caractères qui contient des données binaires, souvent des " +"nombres, en objets Python, et vice-versa." #: ../Doc/faq/library.rst:503 msgid "" "For example, the following code reads two 2-byte integers and one 4-byte " "integer in big-endian format from a file::" msgstr "" +"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur " +"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::" #: ../Doc/faq/library.rst:512 msgid "" @@ -558,12 +769,18 @@ msgid "" "one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " "bytes) from the string." msgstr "" +"« > » dans la chaîne de formatage indique que la donnée doit être lue en " +"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la " +"lettre « l » indique un entier long (4 octets)." #: ../Doc/faq/library.rst:516 msgid "" "For data that is more regular (e.g. a homogeneous list of ints or floats), " "you can also use the :mod:`array` module." msgstr "" +"Pour une donnée plus régulière (p. ex. une liste homogène d'entiers ou de " +"nombres à virgule flottante), il est possible d'utiliser le module :mod:" +"`array`." #: ../Doc/faq/library.rst:521 msgid "" @@ -572,10 +789,17 @@ msgid "" "instead (the default), the file will be open in text mode and ``f.read()`` " "will return :class:`str` objects rather than :class:`bytes` objects." msgstr "" +"Pour lire et écrire de la donnée binaire, il est obligatoire d'ouvrir le " +"fichier en mode binaire également (ici, en passant ``\"rb\"`` à :func:" +"`open`). En utilisant ``\"r\"`` (valeur par défaut), le fichier est ouvert " +"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu " +"d'objets :class:`bytes`." #: ../Doc/faq/library.rst:529 msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" msgstr "" +"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os." +"popen()`` ; pourquoi ?" #: ../Doc/faq/library.rst:531 msgid "" @@ -585,36 +809,47 @@ msgid "" "function. Thus, to read *n* bytes from a pipe *p* created with :func:`os." "popen`, you need to use ``p.read(n)``." msgstr "" +":func:`os.read` est une fonction de bas niveau qui prend en paramètre un " +"descripteur de fichier — un entier court qui représente le fichier ouvert. :" +"func:`os.popen` crée un objet fichier de haut niveau, du même type que celui " +"renvoyé par la fonction native :func:`open`. Par conséquent, pour lire *n* " +"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p." +"read(n)``." #: ../Doc/faq/library.rst:618 msgid "How do I access the serial (RS232) port?" -msgstr "" +msgstr "Comment accéder au port de transmission en série (RS-232) ?" #: ../Doc/faq/library.rst:620 msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:" -msgstr "" +msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :" #: ../Doc/faq/library.rst:622 msgid "http://pyserial.sourceforge.net" -msgstr "" +msgstr "http://pyserial.sourceforge.net" #: ../Doc/faq/library.rst:624 msgid "For Unix, see a Usenet post by Mitch Chapman:" msgstr "" +"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :" #: ../Doc/faq/library.rst:626 msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" -msgstr "" +msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" #: ../Doc/faq/library.rst:630 msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" msgstr "" +"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas " +"réellement ?" #: ../Doc/faq/library.rst:632 msgid "" "Python :term:`file objects ` are a high-level layer of " "abstraction on low-level C file descriptors." msgstr "" +"Les :term:`objets fichiers ` en Python sont des abstractions de " +"haut niveau sur les descripteurs de fichier C de bas niveau." #: ../Doc/faq/library.rst:635 msgid "" @@ -624,6 +859,11 @@ msgid "" "descriptor. This also happens automatically in ``f``'s destructor, when " "``f`` becomes garbage." msgstr "" +"Pour la plupart des objets fichiers créés en Python avec la fonction native :" +"func:`open`, ``f.close()`` marque le fichier comme fermé du point de vue de " +"Python et ferme aussi le descripteur C sous-jacent. Le même mécanisme est " +"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est " +"recyclé." #: ../Doc/faq/library.rst:641 msgid "" @@ -632,6 +872,10 @@ msgid "" "marks the Python-level file object as being closed, but does *not* close the " "associated C file descriptor." msgstr "" +"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en " +"Python, car leur statut en C est lui-aussi spécial. Exécuter ``sys.stdout." +"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais " +"le descripteur de fichier C associé n'est *pas* fermé." #: ../Doc/faq/library.rst:646 msgid "" @@ -639,18 +883,24 @@ msgid "" "first be sure that's what you really want to do (e.g., you may confuse " "extension modules trying to do I/O). If it is, use :func:`os.close`::" msgstr "" +"Pour fermer le descripteur de fichier sous-jacent C de l'une de ces trois " +"sorties, demandez-vous avant tout si vous êtes sûr de vous (cela peut, par " +"exemple, perturber le bon fonctionnement de modules qui font des opérations " +"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::" #: ../Doc/faq/library.rst:654 msgid "Or you can use the numeric constants 0, 1 and 2, respectively." msgstr "" +"Il est aussi possible de fermer respectivement les constantes numériques 0, " +"1 ou 2." #: ../Doc/faq/library.rst:658 msgid "Network/Internet Programming" -msgstr "" +msgstr "Programmation réseau et Internet" #: ../Doc/faq/library.rst:661 msgid "What WWW tools are there for Python?" -msgstr "" +msgstr "Quels sont les outils Python dédiés à la Toile ?" #: ../Doc/faq/library.rst:663 msgid "" @@ -658,32 +908,42 @@ msgid "" "Reference Manual. Python has many modules that will help you build server-" "side and client-side web systems." msgstr "" +"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans " +"le manuel de référence de la bibliothèque. Python a de nombreux modules pour " +"construire des applications de Toile côté client comme côté serveur." #: ../Doc/faq/library.rst:669 msgid "" "A summary of available frameworks is maintained by Paul Boddie at https://" "wiki.python.org/moin/WebProgramming\\ ." msgstr "" +"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à " +"l'adresse https://wiki.python.org/moin/WebProgramming\\ ." #: ../Doc/faq/library.rst:672 msgid "" "Cameron Laird maintains a useful set of pages about Python web technologies " "at http://phaseit.net/claird/comp.lang.python/web_python." msgstr "" +"Cameron Laird maintient un ensemble intéressant d'articles sur les " +"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/" +"comp.lang.python/web_python." #: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" -msgstr "" +msgstr "Comment reproduire un envoi de formulaire CGI (METHOD=POST) ?" #: ../Doc/faq/library.rst:679 msgid "" "I would like to retrieve web pages that are the result of POSTing a form. Is " "there existing code that would let me do this easily?" msgstr "" +"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la " +"Toile. Existe-t'il déjà du code qui pourrait m'aider à le faire facilement ?" #: ../Doc/faq/library.rst:682 msgid "Yes. Here's a simple example that uses urllib.request::" -msgstr "" +msgstr "Oui. Voici un exemple simple d'utilisation de *urllib.request* ::" #: ../Doc/faq/library.rst:697 msgid "" @@ -691,34 +951,42 @@ msgid "" "be quoted using :func:`urllib.parse.urlencode`. For example, to send " "``name=Guy Steele, Jr.``::" msgstr "" +"Remarquez qu'en général, la chaîne de caractères d'une requête POST encodée " +"avec des des signes « % » doit être mise entre guillemets à l'aide de :func:" +"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr." +"`` ::" #: ../Doc/faq/library.rst:705 msgid ":ref:`urllib-howto` for extensive examples." -msgstr "" +msgstr ":ref:`urllib-howto` pour des exemples complets." #: ../Doc/faq/library.rst:709 msgid "What module should I use to help with generating HTML?" -msgstr "" +msgstr "Quel module utiliser pour générer du HTML ?" #: ../Doc/faq/library.rst:713 msgid "" "You can find a collection of useful links on the `Web Programming wiki page " "`_." msgstr "" +"La `page wiki de la programmation Toile `_ (en anglais) répertorie un ensemble de liens pertinents." #: ../Doc/faq/library.rst:718 msgid "How do I send mail from a Python script?" -msgstr "" +msgstr "Comment envoyer un courriel avec un script Python ?" #: ../Doc/faq/library.rst:720 msgid "Use the standard library module :mod:`smtplib`." -msgstr "" +msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard." #: ../Doc/faq/library.rst:722 msgid "" "Here's a very simple interactive mail sender that uses it. This method will " "work on any host that supports an SMTP listener. ::" msgstr "" +"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette " +"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::" #: ../Doc/faq/library.rst:742 msgid "" @@ -727,16 +995,24 @@ msgid "" "usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " "some sample code::" msgstr "" +"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de " +"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/" +"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut " +"vous aider. Par exemple ::" #: ../Doc/faq/library.rst:762 msgid "How do I avoid blocking in the connect() method of a socket?" msgstr "" +"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur " +"réseau ?" #: ../Doc/faq/library.rst:764 msgid "" "The :mod:`select` module is commonly used to help with asynchronous I/O on " "sockets." msgstr "" +"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-" +"sorties asynchrones sur des connecteurs réseaux." #: ../Doc/faq/library.rst:767 msgid "" @@ -747,6 +1023,13 @@ msgid "" "progress, but hasn't finished yet. Different OSes will return different " "values, so you're going to have to check what's returned on your system." msgstr "" +"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le " +"connecteur en mode lecture seule. Avec cela, au moment du ``connect()``, la " +"connexion pourra être immédiate (peu probable) ou bien vous obtiendrez une " +"exception qui contient le numéro d'erreur dans ``.errno``. ``errno." +"EINPROGRESS`` indique que la connexion est en cours, mais qu'elle n'a pas " +"encore aboutie. La valeur dépend du système d'exploitation, donc renseignez-" +"vous sur la valeur utilisée par votre système." #: ../Doc/faq/library.rst:774 msgid "" @@ -755,6 +1038,12 @@ msgid "" "again later -- ``0`` or ``errno.EISCONN`` indicate that you're connected -- " "or you can pass this socket to select to check if it's writable." msgstr "" +"``connect_ex()`` permet d'éviter la création de l'exception, et de ne " +"renvoyer que la valeur de *errno*. Pour vérifier l'état de la connexion, " +"utilisez encore une fois ``connect_ex()`` — ``0`` ou ``errno.EISCONN`` " +"indiquent que la connexion est active — ou passez le connecteur en argument " +"de ``select()`` pour vérifier si le connecteur est prêt à recevoir des " +"entrées." #: ../Doc/faq/library.rst:780 msgid "" @@ -762,14 +1051,19 @@ msgid "" "of writing non-blocking networking code. The third-party `Twisted `_ library is a popular and feature-rich alternative." msgstr "" +"Le module :mod:`asyncore` propose une approche en cadriciel pour écrire du " +"code réseau non-bloquant. La bibliothèque tierce `Twisted `_ en est une alternative plébiscitée, avec un grand " +"nombre de fonctionnalités." #: ../Doc/faq/library.rst:787 msgid "Databases" -msgstr "" +msgstr "Bases de données" #: ../Doc/faq/library.rst:790 msgid "Are there any interfaces to database packages in Python?" msgstr "" +"Existe-t'il des modules Python pour s'interfacer avec des bases de données ?" #: ../Doc/faq/library.rst:792 msgid "Yes." @@ -782,6 +1076,10 @@ msgid "" "`sqlite3` module, which provides a lightweight disk-based relational " "database." msgstr "" +"La distribution standard de Python fournit aussi des interfaces à des bases " +"de données comme :mod:`DBM ` ou :mod:`GDBM `. Il existe " +"aussi le module :mod:`sqlite3` qui implémente une base de données " +"relationelle légère sur disque." #: ../Doc/faq/library.rst:799 msgid "" @@ -789,10 +1087,13 @@ msgid "" "`DatabaseProgramming wiki page `_ for details." msgstr "" +"La gestion de la plupart des bases de données relationnelles est assurée. " +"Voir la page wiki `DatabaseProgramming `_ pour plus de détails." #: ../Doc/faq/library.rst:805 msgid "How do you implement persistent objects in Python?" -msgstr "" +msgstr "Comment implémenter la persistance d'objets en Python ?" #: ../Doc/faq/library.rst:807 msgid "" @@ -801,57 +1102,72 @@ msgid "" "mod:`shelve` library module uses pickle and (g)dbm to create persistent " "mappings containing arbitrary Python objects." msgstr "" +"Le module :mod:`pickle` répond à cela de manière large (bien qu'il ne soit " +"pas possible de stocker des fichiers ouverts, des connecteurs ou des " +"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise " +"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python." #: ../Doc/faq/library.rst:814 msgid "Mathematics and Numerics" -msgstr "" +msgstr "Mathématiques et calcul numérique" #: ../Doc/faq/library.rst:817 msgid "How do I generate random numbers in Python?" -msgstr "" +msgstr "Comment générer des nombres aléatoires en Python ?" #: ../Doc/faq/library.rst:819 msgid "" "The standard module :mod:`random` implements a random number generator. " "Usage is simple::" msgstr "" +"Le module :mod:`random` de la bibliothèque standard comprend un générateur " +"de nombres aléatoires. Son utilisation est simple ::" #: ../Doc/faq/library.rst:825 msgid "This returns a random floating point number in the range [0, 1)." msgstr "" +"Le code précédent renvoie un nombre à virgule flottante aléatoire dans " +"l'intervalle [0, 1[." #: ../Doc/faq/library.rst:827 msgid "" "There are also many other specialized generators in this module, such as:" -msgstr "" +msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :" #: ../Doc/faq/library.rst:829 msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." -msgstr "" +msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[." #: ../Doc/faq/library.rst:830 msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)." msgstr "" +"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans " +"l'intervalle [a, b[." #: ../Doc/faq/library.rst:831 msgid "" "``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." -msgstr "" +msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)." #: ../Doc/faq/library.rst:833 msgid "Some higher-level functions operate on sequences directly, such as:" msgstr "" +"Des fonctions de haut niveau opèrent directement sur des séquences comme :" #: ../Doc/faq/library.rst:835 msgid "``choice(S)`` chooses random element from a given sequence" -msgstr "" +msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée" #: ../Doc/faq/library.rst:836 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly" msgstr "" +"``shuffle(L)`` mélange une liste en-place, c-à-d lui applique une " +"permutation aléatoire" #: ../Doc/faq/library.rst:838 msgid "" "There's also a ``Random`` class you can instantiate to create independent " "multiple random number generators." msgstr "" +"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour " +"créer des générateurs aléatoires indépendants." diff --git a/faq/programming.po b/faq/programming.po index d7df5c8be..98588c27b 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/faq/programming.rst:5 msgid "Programming FAQ" -msgstr "" +msgstr "FAQ de programmation" #: ../Doc/faq/programming.rst:8 msgid "Contents" @@ -27,13 +27,15 @@ msgstr "Sommaire" #: ../Doc/faq/programming.rst:12 msgid "General Questions" -msgstr "" +msgstr "Questions générales" #: ../Doc/faq/programming.rst:15 msgid "" "Is there a source code level debugger with breakpoints, single-stepping, " "etc.?" msgstr "" +"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"à-pas, etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 msgid "Yes." @@ -46,6 +48,10 @@ msgid "" "Library Reference Manual `. You can also write your own debugger by " "using the code for pdb as an example." msgstr "" +"Le module pdb est un débogueur console simple, mais parfaitement adapté à " +"Python. Il fait partie de la bibliothèque standard de Python, sa " +"documentation se trouve dans le :mod:`manuel de référence `. Vous " +"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur." #: ../Doc/faq/programming.rst:24 msgid "" @@ -53,6 +59,9 @@ msgid "" "Python distribution (normally available as Tools/scripts/idle), includes a " "graphical debugger." msgstr "" +"L'environnement de développement interactif IDLE, qui est fourni avec la " +"distribution standard de Python (normalement disponible dans Tools/scripts/" +"idle) contient un débogueur graphique." #: ../Doc/faq/programming.rst:28 msgid "" @@ -63,6 +72,13 @@ msgid "" ">`__ project and as a part of the ActivePython distribution (see https://www." "activestate.com/activepython\\ )." msgstr "" +"PythonWin est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore " +"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme " +"la possibilité de déboguer des programmes développés sans PythonWin. " +"PythonWin est disponible dans le projet `Extensions Python pour Windows " +"`__ et fait partie de la " +"distribution ActivePython (voir https://www.activestate.com/activepython\\ )." #: ../Doc/faq/programming.rst:35 msgid "" @@ -72,12 +88,21 @@ msgid "" "browsers, inheritance hierarchies, doc string generated html documentation, " "an advanced debugger, integrated help, and Zope support." msgstr "" +"`Boa Constructor `_ est un EDI et " +"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " +"création et la manipulation de fenêtres, un inspecteur d'objets, de " +"nombreuses façons de visualiser des sources comme un navigateur d'objets, " +"les hiérarchies d'héritage, la documentation html générée par les " +"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " +"Zope." #: ../Doc/faq/programming.rst:41 msgid "" "`Eric `_ is an IDE built on PyQt and " "the Scintilla editing component." msgstr "" +"`Eric `_ est un EDI basé sur PyQt et " +"l'outil d'édition Scintilla." #: ../Doc/faq/programming.rst:44 msgid "" @@ -86,28 +111,36 @@ msgid "" "can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " "https://www.gnu.org/software/ddd." msgstr "" +"Pydb est une version du débogueur standard Python pdb, modifié pour être " +"utilisé avec DDD (Data Display Debugger), un célèbre débogueur graphique. " +"Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ et DDD est " +"disponible sur https://www.gnu.org/software/ddd." #: ../Doc/faq/programming.rst:49 msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" msgstr "" +"Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " +"graphique. Notamment :" #: ../Doc/faq/programming.rst:52 msgid "Wing IDE (https://wingware.com/)" -msgstr "" +msgstr "Wing IDE (https://wingware.com/)" #: ../Doc/faq/programming.rst:53 msgid "Komodo IDE (https://komodoide.com/)" -msgstr "" +msgstr "Komodo IDE (https://komodoide.com/)" #: ../Doc/faq/programming.rst:54 msgid "PyCharm (https://www.jetbrains.com/pycharm/)" -msgstr "" +msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:58 msgid "Is there a tool to help find bugs or perform static analysis?" msgstr "" +"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " +"statique de code ?" #: ../Doc/faq/programming.rst:62 msgid "" @@ -115,6 +148,10 @@ msgid "" "and warns about code complexity and style. You can get PyChecker from " "http://pychecker.sourceforge.net/." msgstr "" +"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " +"source Python et émet des avertissements relatifs à la complexité et au " +"style du code. PyChecker est disponible sur http://pychecker.sourceforge." +"net/." #: ../Doc/faq/programming.rst:66 msgid "" @@ -126,10 +163,18 @@ msgid "" "standard, whether declared interfaces are fully implemented, and more. " "https://docs.pylint.org/ provides a full list of Pylint's features." msgstr "" +"Pylint `_ est un autre outil qui vérifie si un " +"module satisfait aux normes de développement, et qui permet en plus d'écrire " +"des greffons pour ajouter des fonctionnalités personnalisées. En plus de la " +"vérification des bogues effectuée par PyChecker, Pylint effectue quelques " +"vérifications supplémentaires comme la longueur des lignes, les conventions " +"de nommage des variables, que les interfaces déclarées sont implémentées en " +"totalité, et plus encore. https://docs.pylint.org/ fournit la liste complète " +"des fonctionnalités de Pylint." #: ../Doc/faq/programming.rst:76 msgid "How can I create a stand-alone binary from a Python script?" -msgstr "" +msgstr "Comment créer un binaire autonome à partir d'un script Python ?" #: ../Doc/faq/programming.rst:78 msgid "" @@ -139,6 +184,12 @@ msgid "" "determine the set of modules required by a program and bind these modules " "together with a Python binary to produce a single executable." msgstr "" +"Pour créer un programme autonome, c'est-à-dire un programme que n'importe " +"qui peut télécharger et exécuter sans avoir à installer une distribution " +"Python au préalable, il n'est pas nécessaire de compiler du code Python en " +"code C. Il existe en effet plusieurs outils qui déterminent les modules " +"requis par un programme et lient ces modules avec un binaire Python pour " +"produire un seul exécutable." #: ../Doc/faq/programming.rst:84 msgid "" @@ -147,6 +198,11 @@ msgid "" "you can embed all your modules into a new program, which is then linked with " "the standard Python modules." msgstr "" +"Un de ces outils est freeze, qui se trouve dans ``Tools/freeze`` de " +"l'arborescence des sources de Python. Il convertit le code intermédiaire " +"(*bytecode*) Python en tableaux C ; un compilateur C permet d'intégrer tous " +"vos modules dans un nouveau programme, qui est ensuite lié aux modules " +"standards Python." #: ../Doc/faq/programming.rst:89 msgid "" @@ -160,16 +216,29 @@ msgid "" "rest of the Python interpreter to form a self-contained binary which acts " "exactly like your script." msgstr "" +"Il fonctionne en cherchant de manière récursive les instructions d'import " +"(sous les deux formes) dans le code source et en recherchant ces modules " +"dans le chemin Python standard ainsi que dans le répertoire source (pour les " +"modules natifs). Il transforme ensuite le code intermédiaire des modules " +"écrits en Python en code C (des tableaux pré-remplis qui peuvent être " +"transformés en objets code à l'aide du module *marshal*) et crée un fichier " +"de configuration personnalisé qui contient uniquement les modules natifs qui " +"sont réellement utilisés dans le programme. Il compile ensuite le code C " +"généré et le lie au reste de l'interpréteur Python pour former un binaire " +"autonome qui fait exactement la même chose que le script." #: ../Doc/faq/programming.rst:98 msgid "" "Obviously, freeze requires a C compiler. There are several other utilities " "which don't. One is Thomas Heller's py2exe (Windows only) at" msgstr "" +"Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres " +"outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " +"(pour Windows uniquement) disponible sur" #: ../Doc/faq/programming.rst:101 msgid "http://www.py2exe.org/" -msgstr "" +msgstr "http://www.py2exe.org/" #: ../Doc/faq/programming.rst:103 msgid "" @@ -180,20 +249,25 @@ msgstr "" #: ../Doc/faq/programming.rst:107 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" +"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"programmes Python ?" #: ../Doc/faq/programming.rst:109 msgid "" "Yes. The coding style required for standard library modules is documented " "as :pep:`8`." msgstr "" +"Oui. Le style de développement que les modules de la bibliothèque standard " +"doivent obligatoirement respecter est documenté dans la :pep:`8`." #: ../Doc/faq/programming.rst:114 msgid "Core Language" -msgstr "" +msgstr "Fondamentaux" #: ../Doc/faq/programming.rst:117 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" +"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" #: ../Doc/faq/programming.rst:119 msgid "" @@ -201,18 +275,21 @@ msgid "" "when it is modified by adding an assignment statement somewhere in the body " "of a function." msgstr "" +"Il est parfois surprenant d'obtenir une UnboundLocalError dans du code " +"jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " +"instruction d'affectation quelque part dans le corps d'une fonction." #: ../Doc/faq/programming.rst:123 msgid "This code:" -msgstr "" +msgstr "Le code suivant :" #: ../Doc/faq/programming.rst:131 msgid "works, but this code:" -msgstr "" +msgstr "fonctionne, mais le suivant :" #: ../Doc/faq/programming.rst:138 msgid "results in an UnboundLocalError:" -msgstr "" +msgstr "lève une UnboundLocalError :" #: ../Doc/faq/programming.rst:145 msgid "" @@ -223,12 +300,20 @@ msgid "" "Consequently when the earlier ``print(x)`` attempts to print the " "uninitialized local variable and an error results." msgstr "" +"Cela est dû au fait que, quand une variable est affectée dans un contexte, " +"cette variable devient locale à ce contexte et remplace toute variable du " +"même nom du contexte appelant. Vu que la dernière instruction dans *foo* " +"affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " +"nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " +"la variable non initialisée, une erreur se produit." #: ../Doc/faq/programming.rst:152 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" msgstr "" +"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " +"en la déclarant globale :" #: ../Doc/faq/programming.rst:163 msgid "" @@ -236,16 +321,23 @@ msgid "" "the superficially analogous situation with class and instance variables) you " "are actually modifying the value of the variable in the outer scope:" msgstr "" +"Cette déclaration explicite est obligatoire pour se rappeler que " +"(contrairement au cas à peu près similaire avec des variables de classe et " +"d'instance), c'est la valeur de la variable du contexte appelant qui est " +"modifiée :" #: ../Doc/faq/programming.rst:170 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" msgstr "" +"Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" +"keyword:`nonlocal` :" #: ../Doc/faq/programming.rst:187 msgid "What are the rules for local and global variables in Python?" msgstr "" +"Quelles sont les règles pour les variables locales et globales en Python ?" #: ../Doc/faq/programming.rst:189 msgid "" @@ -254,6 +346,10 @@ msgid "" "function's body, it's assumed to be a local unless explicitly declared as " "global." msgstr "" +"En Python, si une variable n'est pas modifiée dans une fonction mais " +"seulement lue, elle est implicitement considérée comme globale. Si une " +"valeur lui est affectée, elle est considérée locale (sauf si elle est " +"explicitement déclarée globale)." #: ../Doc/faq/programming.rst:193 msgid "" @@ -265,18 +361,30 @@ msgid "" "a component of an imported module. This clutter would defeat the usefulness " "of the ``global`` declaration for identifying side-effects." msgstr "" +"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une " +"part, exiger :keyword:`global` pour des variables affectées est une " +"protection contre des effets de bord inattendus. D'autre part, si ``global`` " +"était obligatoire pour toutes les références à des objets globaux, il " +"faudrait mettre ``global`` partout, car il faudrait dans ce cas déclarer " +"globale chaque référence à une fonction native ou à un composant d'un module " +"importé. Le codé serait alors truffé de déclarations ``global``, ce qui " +"nuirait à leur raison d'être : identifier les effets de bords." #: ../Doc/faq/programming.rst:203 msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" msgstr "" +"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " +"différentes retournent-elles le même résultat ?" #: ../Doc/faq/programming.rst:205 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" msgstr "" +"Supposons que l'on utilise une boucle itérative pour définir des expressions " +"lambda (voire même des fonctions) différentes, par exemple ::" #: ../Doc/faq/programming.rst:212 msgid "" @@ -285,6 +393,9 @@ msgid "" "``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " "see that they all return ``16``::" msgstr "" +"Le code précédent crée une liste de 5 expressions lambda qui calculent " +"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" #: ../Doc/faq/programming.rst:222 msgid "" @@ -294,12 +405,21 @@ msgid "" "the functions now return ``4**2``, i.e. ``16``. You can also verify this by " "changing the value of ``x`` and see how the results of the lambdas change::" msgstr "" +"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " +"expressions, mais est définie dans le contexte appelant. Elle est lue à " +"l'appel de l'expression lambda – et non au moment où cette expression est " +"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " +"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en constatant que les résultats sont modifiés :" #: ../Doc/faq/programming.rst:232 msgid "" "In order to avoid this, you need to save the values in variables local to " "the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" +"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " +"variables locales aux expressions lambda pour que celles-ci ne se basent " +"plus sur la variable globale ``x`` :" #: ../Doc/faq/programming.rst:239 msgid "" @@ -309,16 +429,24 @@ msgid "" "the first lambda, ``1`` in the second, ``2`` in the third, and so on. " "Therefore each lambda will now return the correct result::" msgstr "" +"Dans ce code, ``n=x`` crée une nouvelle variable ``n``, locale à " +"l'expression. Cette variable est évaluée quand l'expression est définie donc " +"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " +"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " +"troisième et ainsi de suite. Chaque expression lambda renvoie donc le " +"résultat correct :" #: ../Doc/faq/programming.rst:250 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." msgstr "" +"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " +"aussi aux fonctions normales." #: ../Doc/faq/programming.rst:255 msgid "How do I share global variables across modules?" -msgstr "" +msgstr "Comment partager des variables globales entre modules ?" #: ../Doc/faq/programming.rst:257 msgid "" @@ -329,28 +457,37 @@ msgid "" "each module, any changes made to the module object get reflected " "everywhere. For example:" msgstr "" +"La manière standard de partager des informations entre modules d'un même " +"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " +"et de l'importer dans tous les modules de l'application ; le module devient " +"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance " +"de chaque module, tout changement dans l'instance est propagé partout. Par " +"exemple :" #: ../Doc/faq/programming.rst:263 msgid "config.py::" -msgstr "" +msgstr "*config.py* ::" #: ../Doc/faq/programming.rst:267 msgid "mod.py::" -msgstr "" +msgstr "*mod.py* ::" #: ../Doc/faq/programming.rst:272 msgid "main.py::" -msgstr "" +msgstr "*main.py* ::" #: ../Doc/faq/programming.rst:278 msgid "" "Note that using a module is also the basis for implementing the Singleton " "design pattern, for the same reason." msgstr "" +"Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " +"l'implémentation du patron de conception singleton." #: ../Doc/faq/programming.rst:283 msgid "What are the \"best practices\" for using import in a module?" msgstr "" +"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" #: ../Doc/faq/programming.rst:285 msgid "" @@ -358,6 +495,9 @@ msgid "" "importer's namespace, and makes it much harder for linters to detect " "undefined names." msgstr "" +"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " +"encombre l'espace de nommage de l'importateur et rend la détection de noms " +"non-définis beaucoup plus ardue pour les analyseurs de code." #: ../Doc/faq/programming.rst:289 msgid "" @@ -366,30 +506,42 @@ msgid "" "is in scope. Using one import per line makes it easy to add and delete " "module imports, but using multiple imports per line uses less screen space." msgstr "" +"Les modules doivent être importés au début d'un fichier. Ceci permet " +"d'afficher clairement de quels modules le code à besoin et évite de se " +"demander si le module est dans le contexte. Faire un seul `import` par ligne " +"rend l'ajout et la suppression d'une importation de module plus aisé, mais " +"importer plusieurs modules sur une même ligne prend moins d'espace." #: ../Doc/faq/programming.rst:294 msgid "It's good practice if you import modules in the following order:" -msgstr "" +msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" #: ../Doc/faq/programming.rst:296 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" +"les modules de la bibliothèque standard — e.g. ``sys``, ``os``, ``getopt``, " +"``re``" #: ../Doc/faq/programming.rst:297 msgid "" "third-party library modules (anything installed in Python's site-packages " "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." msgstr "" +"les modules externes (tout ce qui est installé dans le dossier *site-" +"packages* de Python) — e.g. *mx.DateTime, ZODB, PIL.Image*, etc." #: ../Doc/faq/programming.rst:299 msgid "locally-developed modules" -msgstr "" +msgstr "les modules développés en local" #: ../Doc/faq/programming.rst:301 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" msgstr "" +"Il est parfois nécessaire de déplacer des importations dans une fonction ou " +"une classe pour éviter les problèmes d'importations circulaires. Comme le " +"souligne Gordon McMillan :" #: ../Doc/faq/programming.rst:304 msgid "" @@ -399,6 +551,12 @@ msgid "" "That's because names in the 1st are not yet available, because the first " "module is busy importing the 2nd." msgstr "" +"Il n'y a aucun souci à faire des importations circulaires tant que les deux " +"modules utilisent la forme \"import \" . Ça ne pose problème que si " +"le second module cherche à récupérer un nom du premier module (*\"from " +"module import name\"*) et que l'importation est dans l'espace de nommage du " +"fichier. Les noms du premier module ne sont en effet pas encore disponibles " +"car le premier module est occupé à importer le second." #: ../Doc/faq/programming.rst:310 msgid "" @@ -407,6 +565,10 @@ msgid "" "called, the first module will have finished initializing, and the second " "module can do its import." msgstr "" +"Dans ce cas, si le second module n'est utilisé que dans une fonction, " +"l'importation peut facilement être déplacée dans cette fonction. Au moment " +"où l'importation sera appelée, le premier module aura fini de s'initialiser " +"et le second pourra faire son importation." #: ../Doc/faq/programming.rst:315 msgid "" @@ -416,6 +578,12 @@ msgid "" "importing the correct modules in the corresponding platform-specific code is " "a good option." msgstr "" +"Il peut parfois être nécessaire de déplacer des importations de modules hors " +"de l'espace de plus haut niveau du code si certains de ces modules dépendent " +"de la machine utilisée. Dans ce cas de figure, il est parfois impossible " +"d'importer tous les modules au début du fichier. Dans ce cas, il est " +"recommandé d'importer les modules adéquats dans le code spécifique à la " +"machine." #: ../Doc/faq/programming.rst:320 msgid "" @@ -430,16 +598,30 @@ msgid "" "only a couple of dictionary lookups. Even if the module name has gone out " "of scope, the module is probably available in :data:`sys.modules`." msgstr "" +"Les imports ne devraient être déplacés dans un espace local, comme dans la " +"définition d'une fonction, que si cela est nécessaire pour résoudre un " +"problème comme éviter des dépendances circulaires ou réduire le temps " +"d'initialisation d'un module. Cette technique est particulièrement utile si " +"la majorité des imports est superflue selon le flux d'exécution du " +"programme. Il est également pertinent de déplacer des importations dans une " +"fonction si le module n'est utilisé qu'au sein de cette fonction. Le premier " +"chargement d'un module peut être coûteux à cause du coût fixe " +"d'initialisation d'un module, mais charger un module plusieurs fois est " +"quasiment gratuit, cela ne coûte que quelques indirections dans un " +"dictionnaire. Même si le nom du module est sorti du contexte courant, le " +"module est probablement disponible dans :data:`sys.modules`." #: ../Doc/faq/programming.rst:333 msgid "Why are default values shared between objects?" -msgstr "" +msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" #: ../Doc/faq/programming.rst:335 msgid "" "This type of bug commonly bites neophyte programmers. Consider this " "function::" msgstr "" +"C'est un problème que rencontrent souvent les programmeurs débutants. " +"Examinons la fonction suivante ::" #: ../Doc/faq/programming.rst:342 msgid "" @@ -447,6 +629,9 @@ msgid "" "The second time, ``mydict`` contains two items because when ``foo()`` begins " "executing, ``mydict`` starts out with an item already in it." msgstr "" +"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " +"élément. Au second appel, ``mydict`` contient deux éléments car quand " +"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." #: ../Doc/faq/programming.rst:346 msgid "" @@ -456,6 +641,11 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" +"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " +"défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " +"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " +"appels suivants à cette fonction font référence à l'objet ainsi modifié." #: ../Doc/faq/programming.rst:351 msgid "" @@ -463,6 +653,10 @@ msgid "" "``None``, are safe from change. Changes to mutable objects such as " "dictionaries, lists, and class instances can lead to confusion." msgstr "" +"Par définition, les objets immuables comme les nombres, les chaînes de " +"caractères, les n-uplets et ``None`` ne sont pas modifiés. Les changements " +"sur des objets muables comme les dictionnaires, les listes et les instances " +"de classe peuvent porter à confusion." #: ../Doc/faq/programming.rst:355 msgid "" @@ -471,10 +665,15 @@ msgid "" "inside the function, check if the parameter is ``None`` and create a new " "list/dictionary/whatever if it is. For example, don't write::" msgstr "" +"En raison de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " +"muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " +"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " +"est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " +"échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:363 msgid "but::" -msgstr "" +msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:369 msgid "" @@ -484,17 +683,25 @@ msgid "" "value is requested again. This is called \"memoizing\", and can be " "implemented like this::" msgstr "" +"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " +"paramètres et la valeur de retour de chacun des appels d'une fonction " +"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " +"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " +"s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:384 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." msgstr "" +"Il est possible d'utiliser une variable globale contenant un dictionnaire à " +"la place de la valeur par défaut ; ce n'est qu'une question de goût." #: ../Doc/faq/programming.rst:389 msgid "" "How can I pass optional or keyword parameters from one function to another?" msgstr "" +"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" #: ../Doc/faq/programming.rst:391 msgid "" @@ -503,10 +710,15 @@ msgid "" "tuple and the keyword arguments as a dictionary. You can then pass these " "arguments when calling another function by using ``*`` and ``**``::" msgstr "" +"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " +"dans la liste des paramètres de la fonction ; ceci donne les arguments " +"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " +"de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " +"utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:410 msgid "What is the difference between arguments and parameters?" -msgstr "" +msgstr "Quelle est la différence entre les arguments et les paramètres ?" #: ../Doc/faq/programming.rst:412 msgid "" @@ -516,20 +728,27 @@ msgid "" "of arguments a function can accept. For example, given the function " "definition::" msgstr "" +"Les :term:`paramètres ` sont les noms qui apparaissent dans une " +"définition de fonction, alors que les :term:`arguments ` sont les " +"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" +"ci. Les paramètres définissent les types des arguments qu'une fonction " +"accepte. Ainsi, avec la définition de fonction suivante ::" #: ../Doc/faq/programming.rst:420 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" +"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " +"``func`` avec, par exemple ::" #: ../Doc/faq/programming.rst:425 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." -msgstr "" +msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." #: ../Doc/faq/programming.rst:429 msgid "Why did changing list 'y' also change list 'x'?" -msgstr "" +msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" #: ../Doc/faq/programming.rst:431 msgid "If you wrote code like::" @@ -539,10 +758,12 @@ msgstr "Si vous avez écrit du code comme : ::" msgid "" "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" +"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " +"changé ``x``." #: ../Doc/faq/programming.rst:443 msgid "There are two factors that produce this result:" -msgstr "" +msgstr "Il y a deux raisons qui conduisent à ce comportement :" #: ../Doc/faq/programming.rst:445 msgid "" @@ -551,11 +772,17 @@ msgid "" "the same object ``x`` refers to. This means that there is only one object " "(the list), and both ``x`` and ``y`` refer to it." msgstr "" +"Les variables ne sont que des noms qui font référence à des objets. La ligne " +"``y = x`` ne crée pas une copie de la liste — elle crée une nouvelle " +"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " +"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." #: ../Doc/faq/programming.rst:449 msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" +"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " +"être modifié." #: ../Doc/faq/programming.rst:451 msgid "" @@ -563,10 +790,14 @@ msgid "" "has changed from ``[]`` to ``[10]``. Since both the variables refer to the " "same object, using either name accesses the modified value ``[10]``." msgstr "" +"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " +"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " +"des noms." #: ../Doc/faq/programming.rst:455 msgid "If we instead assign an immutable object to ``x``::" -msgstr "" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:465 msgid "" @@ -578,6 +809,14 @@ msgid "" "objects (the ints ``6`` and ``5``) and two variables that refer to them " "(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." msgstr "" +"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des " +"immuables (:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` " +"en incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " +"``6``) et affecté à ``x`` (c'est à dire qu'on change l'objet auquel fait " +"référence ``x``). Après cette affectation on a deux objets (les entiers " +"``6`` et ``5``) et deux variables qui font référence à ces deux objets " +"(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " +"``5``)." #: ../Doc/faq/programming.rst:473 msgid "" @@ -590,6 +829,14 @@ msgid "" "copy of ``y``, you'll instead end up with ``None``, which will likely cause " "your program to generate an easily diagnosed error." msgstr "" +"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " +"modifient l'objet, alors que des opérations identiques en apparence (par " +"exemple ``y = y + [10]`` et ``sorted(y)``) créent un nouvel objet. En " +"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " +"même systématique dans la bibliothèque standard) pour éviter la confusion " +"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " +"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " +"le programme à générer une erreur facile à diagnostiquer." #: ../Doc/faq/programming.rst:482 msgid "" @@ -600,10 +847,16 @@ msgid "" "mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " "1`` create new objects)." msgstr "" +"Il existe cependant une classe d'opérations qui se comporte différemment " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" +"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " +"alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " +"nouveaux objets)." #: ../Doc/faq/programming.rst:489 msgid "In other words:" -msgstr "" +msgstr "En d'autres termes :" #: ../Doc/faq/programming.rst:491 msgid "" @@ -611,6 +864,9 @@ msgid "" "etc.), we can use some specific operations to mutate it and all the " "variables that refer to it will see the change." msgstr "" +"Il est possible d'appliquer des opérations qui modifient un objet muable (:" +"class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " +"y font référence verront le changement." #: ../Doc/faq/programming.rst:494 msgid "" @@ -619,16 +875,24 @@ msgid "" "but operations that transform that value into a new value always return a " "new object." msgstr "" +"Toutes les variables qui font référence à un objet immuable (:class:`str`, :" +"class:`int`, :class:`tuple`, etc.) renvoient la même valeur, mais les " +"opérations qui transforment cette valeur en une nouvelle valeur renvoient " +"toujours un nouvel objet." #: ../Doc/faq/programming.rst:499 msgid "" "If you want to know if two variables refer to the same object or not, you " "can use the :keyword:`is` operator, or the built-in function :func:`id`." msgstr "" +"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " +"savoir si deux variables font référence au même objet." #: ../Doc/faq/programming.rst:504 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" +"Comment écrire une fonction qui modifie ses paramètres ? (passage par " +"référence)" #: ../Doc/faq/programming.rst:506 msgid "" @@ -637,14 +901,19 @@ msgid "" "argument name in the caller and callee, and so no call-by-reference per se. " "You can achieve the desired effect in a number of ways." msgstr "" +"En Python, les arguments sont passés comme des affectations de variables. Vu " +"qu'une affectation crée des références à des objets, il n'y pas de lien " +"entre un argument dans l'appel de la fonction et sa définition, et donc pas " +"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"émuler un." #: ../Doc/faq/programming.rst:511 msgid "By returning a tuple of the results::" -msgstr "" +msgstr "En renvoyant un n-uplet de résultats ::" #: ../Doc/faq/programming.rst:522 msgid "This is almost always the clearest solution." -msgstr "" +msgstr "C'est presque toujours la meilleure solution." #: ../Doc/faq/programming.rst:524 msgid "" @@ -882,6 +1151,8 @@ msgid "" "Before this syntax was introduced in Python 2.5, a common idiom was to use " "logical operators::" msgstr "" +"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " +"d'utiliser les opérateurs de logique ::" #: ../Doc/faq/programming.rst:727 msgid "" @@ -889,6 +1160,9 @@ msgid "" "has a false boolean value. Therefore, it is always better to use the ``... " "if ... else ...`` form." msgstr "" +"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* a " +"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " +"if ... else ...``." #: ../Doc/faq/programming.rst:733 msgid "Is it possible to write obfuscated one-liners in Python?" @@ -1045,6 +1319,13 @@ msgid "" "``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." "format(1.0/3.0)`` yields ``'0.333'``." msgstr "" +"Pour transformer, par exemple, le nombre 144 en la chaîne de caractères " +"'144', il faut utiliser la fonction native :func:`str`. Pour obtenir la " +"représentation hexadécimale ou octale, il faut utiliser les fonctions " +"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" +"conventionnelles, se référer aux sections :ref:`f-strings` et :ref:" +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" +"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." #: ../Doc/faq/programming.rst:847 msgid "How do I modify a string in place?" @@ -1058,6 +1339,11 @@ msgid "" "unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " "module::" msgstr "" +"C'est impossible car les chaînes de caractères sont immuables. Dans la " +"plupart des cas, il faut tout simplement construire une nouvelle chaîne à " +"partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " +"capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:879 msgid "How do I use strings to call functions/methods?" @@ -1191,41 +1477,53 @@ msgstr "Regardez :ref:`unicode-howto`." #: ../Doc/faq/programming.rst:977 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/faq/programming.rst:980 msgid "My program is too slow. How do I speed it up?" -msgstr "" +msgstr "Mon programme est trop lent. Comment l'accélérer ?" #: ../Doc/faq/programming.rst:982 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" msgstr "" +"Question difficile en général. Il faut garder en tête les points suivants " +"avant d'aller plus loin :" #: ../Doc/faq/programming.rst:985 msgid "" "Performance characteristics vary across Python implementations. This FAQ " "focusses on :term:`CPython`." msgstr "" +"Les performances varient en fonction des implémentations de Python. Cette " +"FAQ ne traite que de :term:`CPython`." #: ../Doc/faq/programming.rst:987 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." msgstr "" +"Les comportements peuvent différer d'un système d'exploitation à l'autre, " +"tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " +"multiples." #: ../Doc/faq/programming.rst:989 msgid "" "You should always find the hot spots in your program *before* attempting to " "optimize any code (see the :mod:`profile` module)." msgstr "" +"Il faut toujours essayer de trouver où sont les points de contention d'un " +"programme *avant* d'essayer d'optimiser du code (voir le module :mod:" +"`profile`)." #: ../Doc/faq/programming.rst:991 msgid "" "Writing benchmark scripts will allow you to iterate quickly when searching " "for improvements (see the :mod:`timeit` module)." msgstr "" +"Écrire des scripts d'évaluation de performances permet de progresser " +"rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." #: ../Doc/faq/programming.rst:993 msgid "" @@ -1233,6 +1531,9 @@ msgid "" "any other technique) before potentially introducing regressions hidden in " "sophisticated optimizations." msgstr "" +"Il est très fortement recommandé d'avoir une bonne couverture de code (avec " +"des tests unitaires ou autre) avant d'ajouter des erreurs dans des " +"optimisations sophistiquées." #: ../Doc/faq/programming.rst:997 msgid "" @@ -1240,6 +1541,9 @@ msgid "" "some general principles which go a long way towards reaching acceptable " "performance levels:" msgstr "" +"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. " +"Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " +"de performance satisfaisants :" #: ../Doc/faq/programming.rst:1001 msgid "" @@ -1247,12 +1551,17 @@ msgid "" "larger benefits than trying to sprinkle micro-optimization tricks all over " "your code." msgstr "" +"Améliorer les algorithmes (ou en changer pour des plus performants) peut " +"produire de bien meilleurs résultats que d'optimiser ça et là de petites " +"portions du code." #: ../Doc/faq/programming.rst:1005 msgid "" "Use the right data structures. Study documentation for the :ref:`bltin-" "types` and the :mod:`collections` module." msgstr "" +"Utiliser les structures de données adaptées. Se référer à la documentation " +"des :ref:`bltin-types` et du module :mod:`collections`." #: ../Doc/faq/programming.rst:1008 msgid "" @@ -1264,6 +1573,14 @@ msgid "" "do sorting (and see the :ref:`sortinghowto` for examples of moderately " "advanced usage)." msgstr "" +"Quand la bibliothèque standard fournit une implémentation pour quelque " +"chose, il y a de fortes chances (même si ce n'est pas systématique) que " +"cette implémentation soit plus rapide que la votre. C'est d'autant plus vrai " +"pour les routines écrites en C, comme les routines natives et certaines " +"extensions de types. Par exemple, il faut utiliser la méthode native :meth:" +"`list.sort` ou la fonction :func:`sorted` similaire pour classer (et se " +"référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " +"courante)." #: ../Doc/faq/programming.rst:1016 msgid "" @@ -1273,6 +1590,11 @@ msgid "" "especially under the form of tiny functions or methods (which are also often " "detrimental to readability)." msgstr "" +"Les abstractions ont tendance à créer des indirections et obligent " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " +"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"éviter trop d'indirections, en particulier sous la forme de fonctions ou " +"méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." #: ../Doc/faq/programming.rst:1022 msgid "" @@ -1285,16 +1607,29 @@ msgid "" "skills, you can also :ref:`write a C extension module ` " "yourself." msgstr "" +"Si vous atteignez les limites de ce que du Python « pur » permet de faire, " +"il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " +"`_ peut compiler une version légèrement modifiée de code " +"Python en une extension C et est disponible sur de nombreuses plate-formes. " +"Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " +"des types) pour rendre votre code beaucoup plus rapide que s'il était " +"interprété. Si vous avez confiance en vos capacités de programmation en C, " +"vous pouvez aussi :ref:`écrire un module d'extension en C` " +"vous-même." #: ../Doc/faq/programming.rst:1032 msgid "" "The wiki page devoted to `performance tips `_." msgstr "" +"La page wiki dédiée aux `astuces de performance `_." #: ../Doc/faq/programming.rst:1038 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" +"Quelle est la manière la plus efficace de concaténer un grand nombre de " +"chaînes de caractères ?" #: ../Doc/faq/programming.rst:1040 msgid "" @@ -1303,16 +1638,26 @@ msgid "" "creates a new object. In the general case, the total runtime cost is " "quadratic in the total string length." msgstr "" +"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent " +"concaténer un grand nombre de chaînes de caractères entre elles n'est pas " +"très efficace car chaque concaténation crée un nouvel objet. Dans le cas " +"général, la complexité est quadratique par rapport à la taille totale de la " +"chaîne." #: ../Doc/faq/programming.rst:1045 msgid "" "To accumulate many :class:`str` objects, the recommended idiom is to place " "them into a list and call :meth:`str.join` at the end::" msgstr "" +"Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " +"recommandée consiste à toutes les mettre dans une liste et appeler la " +"méthode :meth:`str.join` à la fin ::" #: ../Doc/faq/programming.rst:1053 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" +"(une autre technique relativement efficace consiste à utiliser :class:`io." +"StringIO`)" #: ../Doc/faq/programming.rst:1055 msgid "" @@ -1320,6 +1665,9 @@ msgid "" "extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " "operator)::" msgstr "" +"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " +"recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " +"concaténation en-place (l'opérateur ``+=``) ::" #: ../Doc/faq/programming.rst:1064 msgid "Sequences (Tuples/Lists)" @@ -1427,7 +1775,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1118 msgid "https://code.activestate.com/recipes/52560/" -msgstr "" +msgstr "https://code.activestate.com/recipes/52560/" #: ../Doc/faq/programming.rst:1120 msgid "" @@ -1518,7 +1866,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1175 msgid "This looks correct if you print it:" -msgstr "" +msgstr "Elle semble correcte si on l'affiche :" #: ../Doc/faq/programming.rst:1186 msgid "But when you assign a value, it shows up in multiple places:" @@ -1559,6 +1907,8 @@ msgid "" "Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." msgstr "" +"Vous pouvez aussi utiliser une extension qui fournit un type matriciel " +"natif ; `NumPy `_ est la plus répandue." #: ../Doc/faq/programming.rst:1221 msgid "How do I apply a method to a sequence of objects?" @@ -1572,6 +1922,8 @@ msgstr "Utilisez une compréhension de liste ::" msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" +"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que " +"l'addition fonctionne ?" #: ../Doc/faq/programming.rst:1232 msgid "" @@ -1579,6 +1931,9 @@ msgid "" "operators are *assignment* operators, and the difference between mutable and " "immutable objects in Python." msgstr "" +"Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " +"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " +"différence entre les objets muables et immuables en Python." #: ../Doc/faq/programming.rst:1236 msgid "" @@ -1586,6 +1941,9 @@ msgid "" "applied to elements of a tuple that point to mutable objects, but we'll use " "a ``list`` and ``+=`` as our exemplar." msgstr "" +"Cette discussion est valable, en général, quand des opérateurs d'affectation " +"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"objets muables, mais on prendra ``list`` et ``+=`` comme exemple." #: ../Doc/faq/programming.rst:1240 msgid "If you wrote::" @@ -1599,28 +1957,39 @@ msgid "" "to element ``0`` of the tuple, we get an error because we can't change what " "an element of a tuple points to." msgstr "" +"La cause de l'exception est claire : ``1`` est ajouté à l'objet " +"``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " +"``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " +"l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " +"modifier la cible sur laquelle pointe un élément d'un n-uplet." #: ../Doc/faq/programming.rst:1254 msgid "" "Under the covers, what this augmented assignment statement is doing is " "approximately this::" msgstr "" +"Sous le capot, une instruction d'affectation incrémentale fait à peu près " +"ceci :" #: ../Doc/faq/programming.rst:1263 msgid "" "It is the assignment part of the operation that produces the error, since a " "tuple is immutable." msgstr "" +"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " +"qu'un n-uplet est immuable." #: ../Doc/faq/programming.rst:1266 msgid "When you write something like::" -msgstr "" +msgstr "Quand vous écrivez un code du style :" #: ../Doc/faq/programming.rst:1274 msgid "" "The exception is a bit more surprising, and even more surprising is the fact " "that even though there was an error, the append worked::" msgstr "" +"L'exception est un peu plus surprenante et, chose encore plus étrange, " +"malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1280 msgid "" @@ -1631,6 +2000,13 @@ msgid "" "calling ``extend`` on the list and returning the list. That's why we say " "that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" msgstr "" +"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un " +"objet implémente la méthode magique c, celle-ci est appelée quand " +"l'affectation incrémentale ``+=`` est exécutée et sa valeur de retour est " +"utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " +"listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " +"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " +"``+=`` est un \"raccourci\" pour ``list.extend``::" #: ../Doc/faq/programming.rst:1292 msgid "This is equivalent to::" @@ -1643,10 +2019,16 @@ msgid "" "assignment is a no-op, since it is a pointer to the same object that " "``a_list`` was previously pointing to, but the assignment still happens." msgstr "" +"L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " +"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne " +"change rien, puisque c'est un pointeur vers le même objet que sur lequel " +"pointait ``a_list``, mais l'affectation a tout de même lieu." #: ../Doc/faq/programming.rst:1302 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" +"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " +"équivalent à ::" #: ../Doc/faq/programming.rst:1310 msgid "" @@ -1655,6 +2037,9 @@ msgid "" "that final assignment still results in an error, because tuples are " "immutable." msgstr "" +"L'appel à ``__iadd__`` réussit et la liste est étendue, mais bien que " +"``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " +"échoue car les n-uplets ne sont pas muables." #: ../Doc/faq/programming.rst:1316 msgid "Dictionaries" @@ -1687,6 +2072,10 @@ msgid "" "value\". In Python, use the ``key`` argument for the :meth:`list.sort` " "method::" msgstr "" +"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " +"les éléments d'une liste à l'aide une transformation qui fait correspondre " +"chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " +"l'argument ``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1335 msgid "How can I sort one list by values from another list?" @@ -2137,6 +2526,18 @@ msgid "" "run :func:`gc.collect` to force a collection, but there *are* pathological " "cases where objects will never be collected." msgstr "" +"Si la structure de données contient des références circulaires (e.g. un " +"arbre dans lequel chaque fils référence son père, et chaque père garde une " +"liste de ses fils), le compteur de références n'arrivera jamais à zéro. " +"Python exécute périodiquement un algorithme pour détecter ce genre de " +"cycles, mais il peut se passer un certain temps entre le moment où la " +"structure est référencée pour la dernière fois et l'appel du ramasse-" +"miettes, donc la méthode :meth:`__del__` peut être appelée à un moment " +"aléatoire et pas opportun. C'est gênant pour essayer reproduire un problème. " +"Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets sont " +"appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" +"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " +"les objets ne seront jamais nettoyés." #: ../Doc/faq/programming.rst:1639 msgid "" @@ -2147,6 +2548,13 @@ msgid "" "``close()`` and ``close()`` should make sure that it can be called more than " "once for the same object." msgstr "" +"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " +"de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " +"quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " +"supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " +"pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" +"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"être appelée plusieurs fois sur le même objet." #: ../Doc/faq/programming.rst:1646 msgid "" @@ -2155,16 +2563,23 @@ msgid "" "reference count. Tree data structures, for instance, should use weak " "references for their parent and sibling references (if they need them!)." msgstr "" +"Une alternative pour éviter les références cycliques consiste à utiliser le " +"module :mod:`weakref`, qui permet de faire référence à des objets sans " +"incrémenter leur compteur de références. Par exemple, les structures " +"d'arbres devraient utiliser des références faibles entre pères et fils (si " +"nécessaire !)." #: ../Doc/faq/programming.rst:1659 msgid "" "Finally, if your :meth:`__del__` method raises an exception, a warning " "message is printed to :data:`sys.stderr`." msgstr "" +"Enfin, si la méthode :meth:`__del__` lève une exception, un message " +"d'avertissement s'affiche dans :data:`sys.stderr`." #: ../Doc/faq/programming.rst:1664 msgid "How do I get a list of all instances of a given class?" -msgstr "" +msgstr "Comment obtenir toutes les instances d'une classe ?" #: ../Doc/faq/programming.rst:1666 msgid "" @@ -2172,10 +2587,16 @@ msgid "" "type). You can program the class's constructor to keep track of all " "instances by keeping a list of weak references to each instance." msgstr "" +"Python ne tient pas de registre de toutes les instances d'une classe (ni de " +"n'importe quel type natif). Il est cependant possible de programmer le " +"constructeur de la classe de façon à tenir un tel registre, en maintenant " +"une liste de références faibles vers chaque instance." #: ../Doc/faq/programming.rst:1672 msgid "Why does the result of ``id()`` appear to be not unique?" msgstr "" +"Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " +"différents ?" #: ../Doc/faq/programming.rst:1674 msgid "" @@ -2185,6 +2606,11 @@ msgid "" "memory, the next freshly created object is allocated at the same position in " "memory. This is illustrated by this example:" msgstr "" +"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie " +"durant toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité " +"l'adresse mémoire de l'objet, il est fréquent qu'un nouvel objet soit alloué " +"à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " +"Comme l'illustre le code suivant :" #: ../Doc/faq/programming.rst:1685 msgid "" @@ -2193,6 +2619,10 @@ msgid "" "objects whose id you want to examine are still alive, create another " "reference to the object:" msgstr "" +"Les deux identifiants appartiennent à des objets entiers créés juste avant " +"l'appel à ``id()`` et détruits immédiatement après. Pour s'assurer que les " +"objets dont on veut examiner les identifiants sont toujours en vie, créons " +"une nouvelle référence à l'objet :" #: ../Doc/faq/programming.rst:1698 msgid "Modules" @@ -2200,7 +2630,7 @@ msgstr "Modules" #: ../Doc/faq/programming.rst:1701 msgid "How do I create a .pyc file?" -msgstr "" +msgstr "Comment créer des fichiers ``.pyc`` ?" #: ../Doc/faq/programming.rst:1703 msgid "" @@ -2212,6 +2642,13 @@ msgid "" "file, and ends with ``.pyc``, with a middle component that depends on the " "particular ``python`` binary that created it. (See :pep:`3147` for details.)" msgstr "" +"Quand un module est importé pour la première fois (ou si le fichier source a " +"été modifié depuis la création du fichier compilé), un fichier ``.pyc`` " +"contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " +"du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " +"identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " +"centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " +"pour de plus amples précisions)." #: ../Doc/faq/programming.rst:1711 msgid "" @@ -2221,6 +2658,12 @@ msgid "" "example, if you develop as one user but run as another, such as if you are " "testing with a web server." msgstr "" +"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " +"est un problème de droits sur le dossier qui contient le fichier source, ce " +"qui veut dire qu'il est impossible de créer le sous-dossier ``__pycache__``. " +"Ceci peut arriver, par exemple, si vous développez en tant qu'un certain " +"utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " +"par exemple pour tester un serveur Web." #: ../Doc/faq/programming.rst:1716 msgid "" @@ -2230,6 +2673,11 @@ msgid "" "``__pycache__`` subdirectory and write the compiled module to that " "subdirectory." msgstr "" +"La création du fichier ``.pyc`` est automatique durant l'import d'un module " +"si Python est capable (en termes de droits, d'espace disque, etc) de créer " +"un sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé dans ce " +"sous-répertoire, à moins que la variable d'environnement :envvar:" +"`PYTHONDONTWRITEBYTECODE` soit définie." #: ../Doc/faq/programming.rst:1721 msgid "" @@ -2240,6 +2688,12 @@ msgid "" "``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " "for ``foo`` since ``foo.py`` isn't being imported." msgstr "" +"Exécuter du Python dans un script de plus haut niveau n'est pas considéré " +"comme un import et le fichier ``.pyc`` n'est pas créé. Par exemple, si un " +"module de plus haut niveau ``foo.py`` importe un autre module ``xyz.py``, " +"alors à l'exécution de ``foo`` (en tapant ``python foo.py`` dans la " +"console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " +"car ``foo.py`` n'est pas importé." #: ../Doc/faq/programming.rst:1728 msgid "" @@ -2247,12 +2701,18 @@ msgid "" "pyc`` file for a module that is not imported -- you can, using the :mod:" "`py_compile` and :mod:`compileall` modules." msgstr "" +"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un fichier " +"``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" +"`py_compile` et :mod:`compileall`." #: ../Doc/faq/programming.rst:1732 msgid "" "The :mod:`py_compile` module can manually compile any module. One way is to " "use the ``compile()`` function in that module interactively::" msgstr "" +"Le module :mod:`py_compile` peut compiler n'importe quel module " +"manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " +"manière interactive :" #: ../Doc/faq/programming.rst:1738 msgid "" @@ -2260,6 +2720,9 @@ msgid "" "location as ``foo.py`` (or you can override that with the optional parameter " "``cfile``)." msgstr "" +"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté " +"de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " +"comportement)." #: ../Doc/faq/programming.rst:1742 msgid "" @@ -2268,10 +2731,14 @@ msgid "" "running ``compileall.py`` and providing the path of a directory containing " "Python files to compile::" msgstr "" +"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " +"avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " +"en exécutant ``compileall.py`` avec le chemin du dossier contenant les " +"fichiers Python à compiler ::" #: ../Doc/faq/programming.rst:1751 msgid "How do I find the current module name?" -msgstr "" +msgstr "Comment obtenir le nom du module actuel ?" #: ../Doc/faq/programming.rst:1753 msgid "" @@ -2281,75 +2748,87 @@ msgid "" "importing them also provide a command-line interface or a self-test, and " "only execute this code after checking ``__name__``::" msgstr "" +"Un module peut déterminer son propre nom en examinant la variable globale " +"prédéfinie ``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le " +"programme est exécuté comme un script. Beaucoup de modules qui doivent " +"normalement être importés pour pouvoir être utilisés fournissent aussi une " +"interface en ligne de commande ou un test automatique. Ils n'exécutent cette " +"portion du code qu'après avoir vérifié la valeur de ``__name__``::" #: ../Doc/faq/programming.rst:1768 msgid "How can I have modules that mutually import each other?" -msgstr "" +msgstr "Comment avoir des modules qui s'importent mutuellement ?" #: ../Doc/faq/programming.rst:1770 msgid "Suppose you have the following modules:" -msgstr "" +msgstr "Considérons les modules suivants :" #: ../Doc/faq/programming.rst:1772 msgid "foo.py::" -msgstr "" +msgstr "*foo.py* ::" #: ../Doc/faq/programming.rst:1777 msgid "bar.py::" -msgstr "" +msgstr "*bar.py* ::" #: ../Doc/faq/programming.rst:1782 msgid "The problem is that the interpreter will perform the following steps:" -msgstr "" +msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" #: ../Doc/faq/programming.rst:1784 msgid "main imports foo" -msgstr "" +msgstr "*main* importe *foo*" #: ../Doc/faq/programming.rst:1785 msgid "Empty globals for foo are created" -msgstr "" +msgstr "Les variables globales (vides) de *foo* sont créées" #: ../Doc/faq/programming.rst:1786 msgid "foo is compiled and starts executing" -msgstr "" +msgstr "*foo* est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1787 msgid "foo imports bar" -msgstr "" +msgstr "*foo* importe *bar*" #: ../Doc/faq/programming.rst:1788 msgid "Empty globals for bar are created" -msgstr "" +msgstr "Les variables globales (vides) de *bar* sont créées" #: ../Doc/faq/programming.rst:1789 msgid "bar is compiled and starts executing" -msgstr "" +msgstr "*bar* est compilé et commence à s'exécuter" #: ../Doc/faq/programming.rst:1790 msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" +"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " +"appelé *foo*)" #: ../Doc/faq/programming.rst:1791 msgid "bar.foo_var = foo.foo_var" -msgstr "" +msgstr "bar.foo_var = foo.foo_var" #: ../Doc/faq/programming.rst:1793 msgid "" "The last step fails, because Python isn't done with interpreting ``foo`` yet " "and the global symbol dictionary for ``foo`` is still empty." msgstr "" +"La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " +"dictionnaire global des symboles de ``foo`` est encore vide." #: ../Doc/faq/programming.rst:1796 msgid "" "The same thing happens when you use ``import foo``, and then try to access " "``foo.foo_var`` in global code." msgstr "" +"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " +"ensuite d'accéder à ``foo.foo_var`` dans le code global." #: ../Doc/faq/programming.rst:1799 msgid "There are (at least) three possible workarounds for this problem." -msgstr "" +msgstr "Il y a (au moins) trois façons de contourner ce problème." #: ../Doc/faq/programming.rst:1801 msgid "" @@ -2359,58 +2838,77 @@ msgid "" "only. This means everything from an imported module is referenced as " "``.``." msgstr "" +"Guido van Rossum déconseille d'utiliser ``from import ...`` et de " +"mettre tout le code dans des fonctions. L'initialisation des variables " +"globales et des variables de classe ne doit utiliser que des constantes ou " +"des fonctions natives. Ceci implique que tout ce qui est fourni par un " +"module soit référencé par ``.``." #: ../Doc/faq/programming.rst:1806 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" +"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " +"chaque module :" #: ../Doc/faq/programming.rst:1808 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" msgstr "" +"les exportations (variables globales, fonctions et les classes qui ne " +"nécessitent d'importer des classes de base)" #: ../Doc/faq/programming.rst:1810 msgid "``import`` statements" -msgstr "" +msgstr "les instructions ``import``" #: ../Doc/faq/programming.rst:1811 msgid "" "active code (including globals that are initialized from imported values)." msgstr "" +"le code (avec les variables globales qui sont initialisées à partir de " +"valeurs importées)." #: ../Doc/faq/programming.rst:1813 msgid "" "van Rossum doesn't like this approach much because the imports appear in a " "strange place, but it does work." msgstr "" +"van Rossum désapprouve cette approche car les importations se trouvent à un " +"endroit bizarre, mais cela fonctionne." #: ../Doc/faq/programming.rst:1816 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." msgstr "" +"Matthias Urlichs conseille de restructurer le code pour éviter les " +"importations récursives." #: ../Doc/faq/programming.rst:1819 msgid "These solutions are not mutually exclusive." -msgstr "" +msgstr "Ces solutions peuvent être combinées." #: ../Doc/faq/programming.rst:1823 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "" +msgstr "__import__('x.y.z') renvoie ; comment accéder à z ?" #: ../Doc/faq/programming.rst:1825 msgid "" "Consider using the convenience function :func:`~importlib.import_module` " "from :mod:`importlib` instead::" msgstr "" +"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" +"`importlib` ::" #: ../Doc/faq/programming.rst:1832 msgid "" "When I edit an imported module and reimport it, the changes don't show up. " "Why does this happen?" msgstr "" +"Quand j'édite un module et que je le réimporte, je ne vois pas les " +"changements. Pourquoi ?" #: ../Doc/faq/programming.rst:1834 msgid "" @@ -2420,12 +2918,20 @@ msgid "" "module, the basic module would be parsed and re-parsed many times. To force " "re-reading of a changed module, do this::" msgstr "" +"Pour des raisons de performance et de cohérence, Python ne lit le fichier " +"d'un module que la première fois où celui-ci est importé. Si ce n'était pas " +"le cas, dans un programme composé d'un très grand nombre de modules qui " +"importent tous le même module de base, ce module de base serait analysé et " +"ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " +"module, il faut faire ::" #: ../Doc/faq/programming.rst:1844 msgid "" "Warning: this technique is not 100% fool-proof. In particular, modules " "containing statements like ::" msgstr "" +"Attention, cette technique ne marche pas systématiquement. En particulier, " +"les modules qui contiennent des instructions comme ::" #: ../Doc/faq/programming.rst:1849 msgid "" diff --git a/faq/windows.po b/faq/windows.po index 69d454c3f..579a63d9c 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -313,6 +313,13 @@ msgid "" "``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " "as that would cause Windows to require the DLL to be present." msgstr "" +"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques " +"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une " +"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import " +"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et " +"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour " +"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " +"Windows aura besoin de la DLL." #: ../Doc/faq/windows.rst:202 msgid "" @@ -324,16 +331,26 @@ msgid "" "``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of " "available functions." msgstr "" +"Notez que le chemin de recherche pour *foo.pyd* est *PYTHONPATH*, il est " +"différent de celui qu'utilise Windows pour rechercher *foo.dll*. De plus, " +"*foo.pyd* n'a pas besoin d'être présent pour que votre programme s'exécute " +"alors que si vous avez lié votre programme avec une *dll* celle-ci est " +"requise. Bien sûr *foo.pyd* est nécessaire si vous écrivez ``import foo``. " +"Dans une *DLL* le lien est déclaré dans le code source avec " +"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " +"liste de fonctions disponibles." #: ../Doc/faq/windows.rst:211 msgid "How can I embed Python into a Windows application?" -msgstr "" +msgstr "Comment puis-je intégrer Python dans une application Windows ?" #: ../Doc/faq/windows.rst:213 msgid "" "Embedding the Python interpreter in a Windows app can be summarized as " "follows:" msgstr "" +"L'intégration de l'interpréteur Python dans une application Windows peut se " +"résumer comme suit :" #: ../Doc/faq/windows.rst:215 msgid "" @@ -343,6 +360,12 @@ msgid "" "it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " "version, a number such as \"33\" for Python 3.3." msgstr "" +"Ne compilez _pas_ Python directement dans votre fichier *.exe*. Sous " +"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " +"eux-mêmes des DLL (ceci constitue une information de première importance non " +"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " +"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " +"Python, par exemple « 33 » pour Python 3.3." #: ../Doc/faq/windows.rst:221 msgid "" @@ -352,6 +375,12 @@ msgid "" "the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It " "merely defines symbols for the linker.)" msgstr "" +"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien " +"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis " +"qu'un lien au moment de l'exécution signifie pointer vers :file:`python{NN}." +"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import " +"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des " +"liens symboliques pour l'éditeur de liens.)" #: ../Doc/faq/windows.rst:227 msgid "" @@ -363,12 +392,22 @@ msgid "" "these pointers transparent to any C code that calls routines in Python's C " "API." msgstr "" +"La liaison en temps réel simplifie grandement les options de liaison ; tout " +"se passe au moment de l'exécution. Votre code doit charger :file:" +"`python{NN}.dll` en utilisant la routine Windows ``LoadLibraryEx()``. Le " +"code doit aussi utiliser des routines d'accès et des données dans :file:" +"`python{NN}.dll` (c'est-à-dire les API C de Python) en utilisant des " +"pointeurs obtenus par la routine Windows ``GetProcAddress()``. Les macros " +"peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui " +"appelle des routines dans l'API C de Python." #: ../Doc/faq/windows.rst:234 msgid "" "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf." "exe first." msgstr "" +"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant " +"*Coff2Omf.exe* en premier." #: ../Doc/faq/windows.rst:239 msgid "" @@ -378,6 +417,12 @@ msgid "" "link *into* your .exe file (!) You do _not_ have to create a DLL file, and " "this also simplifies linking." msgstr "" +"Si vous utilisez SWIG, il est facile de créer un « module d'extension » " +"Python qui rendra les données et les méthodes de l'application disponibles " +"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le " +"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous " +"n'avez _pas_ besoin de créer un fichier DLL, et cela simplifie également la " +"liaison." #: ../Doc/faq/windows.rst:245 msgid "" @@ -387,6 +432,12 @@ msgid "" "classes, as you should, the init function will be called initleoc(). This " "initializes a mostly hidden helper class used by the shadow class." msgstr "" +"SWIG va créer une fonction d'initialisation (fonction en C) dont le nom " +"dépend du nom du module d'extension. Par exemple, si le nom du module est " +"*leo*, la fonction *init* sera appelée *initleo()*. Si vous utilisez des " +"classes *shadow* SWIG, comme vous le devriez, la fonction *init* sera " +"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " +"utilisée par la classe *shadow*." #: ../Doc/faq/windows.rst:251 msgid "" @@ -394,18 +445,26 @@ msgid "" "calling the initialization function is equivalent to importing the module " "into Python! (This is the second key undocumented fact.)" msgstr "" +"La raison pour laquelle vous pouvez lier le code C à l'étape 2 dans votre " +"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à " +"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)" #: ../Doc/faq/windows.rst:255 msgid "" "In short, you can use the following code to initialize the Python " "interpreter with your extension module." msgstr "" +"En bref, vous pouvez utiliser le code suivant pour initialiser " +"l'interpréteur Python avec votre module d'extension." #: ../Doc/faq/windows.rst:266 msgid "" "There are two problems with Python's C API which will become apparent if you " "use a compiler other than MSVC, the compiler used to build pythonNN.dll." msgstr "" +"Il y a deux problèmes avec l'API C de Python qui apparaîtront si vous " +"utilisez un compilateur autre que MSVC, le compilateur utilisé pour " +"construire *pythonNN.dll*." #: ../Doc/faq/windows.rst:269 msgid "" @@ -414,12 +473,19 @@ msgid "" "compiler's notion of a struct FILE will be different. From an " "implementation standpoint these are very _low_ level functions." msgstr "" +"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les " +"arguments FILE * ne fonctionneront pas dans un environnement multi-" +"compilateur car chaque compilateur aura une notion différente de la " +"structure de FILE. Du point de vue de l'implémentation, il s'agit de " +"fonctions de très bas niveau." #: ../Doc/faq/windows.rst:274 msgid "" "Problem 2: SWIG generates the following code when generating wrappers to " "void functions:" msgstr "" +"Problème 2 : SWIG génère le code suivant lors de la génération " +"*d'encapsuleurs* pour annuler les fonctions :" #: ../Doc/faq/windows.rst:283 msgid "" @@ -427,6 +493,10 @@ msgid "" "structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " "fail in a mult-compiler environment. Replace such code by:" msgstr "" +"Hélas, *Py_None* est une macro qui se développe en référence à une structure " +"de données complexe appelée *_Py_NoneStruct* dans *pythonNN.dll*. Encore " +"une fois, ce code échouera dans un environnement multi-compilateur. " +"Remplacez ce code par :" #: ../Doc/faq/windows.rst:291 msgid "" @@ -434,6 +504,9 @@ msgid "" "automatically, though I have not been able to get this to work (I'm a " "complete SWIG newbie)." msgstr "" +"Il est possible d'utiliser la commande ``%typemap`` de SWIG pour effectuer " +"le changement automatiquement, bien que je n'ai pas réussi à le faire " +"fonctionner (je suis un débutant complet avec SWIG)." #: ../Doc/faq/windows.rst:295 msgid "" @@ -446,6 +519,15 @@ msgid "" "is a Python object (defined in your extension module) that contains read() " "and write() methods." msgstr "" +"Utiliser un script shell Python pour créer une fenêtre d'interpréteur Python " +"depuis votre application Windows n'est pas une bonne idée ; la fenêtre " +"résultante sera indépendante du système de fenêtrage de votre application. " +"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre " +"d'interpréteur « native ». Il est facile de connecter cette fenêtre à " +"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers " +"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce " +"dont vous avez besoin est un objet Python (défini dans votre module " +"d'extension) qui contient les méthodes *read()* et *write()*." #: ../Doc/faq/windows.rst:304 msgid "How do I keep editors from inserting tabs into my Python source?" diff --git a/howto/cporting.po b/howto/cporting.po index ca5c7b828..c443d538e 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/cporting.rst:7 msgid "Porting Extension Modules to Python 3" -msgstr "" +msgstr "Portage des modules d'extension vers Python 3" #: ../Doc/howto/cporting.rst:0 msgid "author" @@ -41,6 +41,12 @@ msgid "" "obvious on the C level. This document endeavors to document " "incompatibilities and how they can be worked around." msgstr "" +"Changer l'API C n'était pas l'un des objectifs de Python 3, cependant les " +"nombreux changements au niveau Python ont rendu impossible de garder l'API " +"de Python 2 comme elle était. Certains changements tels que l'unification " +"de :func:`int` et :func:`long` sont plus apparents au niveau C. Ce document " +"s'efforce de documenter les incompatibilités et la façon dont elles peuvent " +"être contournées." #: ../Doc/howto/cporting.rst:23 msgid "Conditional compilation" @@ -51,26 +57,33 @@ msgid "" "The easiest way to compile only some code for Python 3 is to check if :c:" "macro:`PY_MAJOR_VERSION` is greater than or equal to 3. ::" msgstr "" +"La façon la plus simple de compiler seulement une section de code pour " +"Python 3 est de vérifier si :c:macro:`PY_MAJOR_VERSION` est supérieur ou " +"égal à 3. ::" #: ../Doc/howto/cporting.rst:32 msgid "" "API functions that are not present can be aliased to their equivalents " "within conditional blocks." msgstr "" +"Les fonctions manquantes dans l'API peuvent être remplacées par des alias à " +"leurs équivalents dans des blocs conditionnels." #: ../Doc/howto/cporting.rst:37 msgid "Changes to Object APIs" -msgstr "" +msgstr "Modifications apportées aux API des objets" #: ../Doc/howto/cporting.rst:39 msgid "" "Python 3 merged together some types with similar functions while cleanly " "separating others." msgstr "" +"Python 3 a fusionné certains types avec des fonctions identiques tout en " +"séparant de façon propre, d'autres." #: ../Doc/howto/cporting.rst:44 msgid "str/unicode Unification" -msgstr "" +msgstr "Unification de *str* et *unicode*" #: ../Doc/howto/cporting.rst:46 msgid "" @@ -86,10 +99,23 @@ msgid "" "shows best practices with regards to :c:type:`PyUnicode`, :c:type:" "`PyString`, and :c:type:`PyBytes`. ::" msgstr "" +"Le type :func:`str` de Python 3 est l'équivalent de :func:`unicode` sous " +"Python 2 ; Les fonctions C sont appelées ``PyUnicode_*`` pour les deux " +"versions. L'ancien type de chaîne de caractères de 8 bits est devenue :func:" +"`bytes`, avec des fonctions C nommées ``PyBytes_*``. Python 2.6 et toutes " +"les versions supérieures fournissent un en-tête de compatibilité, :file:" +"`bytesobject.h`, faisant correspondre les noms ``PyBytes`` aux ``PyString``. " +"Pour une meilleure compatibilité avec Python 3, :c:type:`PyUnicode` doit " +"être utilisé seulement pour des données textuelles et :c:type:`PyBytes` pour " +"des données binaires. Il est important de noter que :c:type:`PyBytes` et :c:" +"type:`PyUnicode` en Python 3 ne sont pas remplaçables contrairement à :c:" +"type:`PyString` et :c:type:`PyUnicode` dans Python 2. L'exemple suivant " +"montre l'utilisation optimale de :c:type:`PyUnicode`, :c:type:`PyString`, " +"et :c:type:`PyBytes`. ::" #: ../Doc/howto/cporting.rst:95 msgid "long/int Unification" -msgstr "" +msgstr "Unification de *long* et *int*" #: ../Doc/howto/cporting.rst:97 msgid "" @@ -98,10 +124,14 @@ msgid "" "Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced by " "their ``PyLong_*`` equivalents." msgstr "" +"Python 3 n'a qu'un type d'entier, :func:`int`. Mais il correspond au type :" +"func:`long` de Python 2 — le type :func:`int` utilisé dans Python 2 a été " +"supprimé. Dans l'API C, les fonctions ``PyInt_*`` sont remplacées par leurs " +"équivalents ``PyLong_*``." #: ../Doc/howto/cporting.rst:104 msgid "Module initialization and state" -msgstr "" +msgstr "Initialisation et état du module" #: ../Doc/howto/cporting.rst:106 msgid "" @@ -111,10 +141,16 @@ msgid "" "in both Python 2 and Python 3 is tricky. The following simple example " "demonstrates how. ::" msgstr "" +"Python 3 a remanié son système d'initialisation des modules d'extension " +"(Voir :pep:`3121`.). Au lieu de stocker les états de module dans les " +"variables globales, les états doivent être stockés dans une structure " +"spécifique à l'interpréteur. Créer des modules qui ont un fonctionnement " +"correct en Python 2 et Python 3 est délicat. L'exemple suivant montre " +"comment. ::" #: ../Doc/howto/cporting.rst:197 msgid "CObject replaced with Capsule" -msgstr "" +msgstr "CObject remplacé par Capsule" #: ../Doc/howto/cporting.rst:199 msgid "" @@ -125,6 +161,13 @@ msgid "" "APIs relied on undefined behavior in C. (For further reading on the " "rationale behind Capsules, please see :issue:`5630`.)" msgstr "" +"L'objet :c:type:`Capsule` a été introduit dans Python 3.1 et 2.7 pour " +"remplacer :c:type:`CObject`. Le type :c:type:`CObject` était utile, mais son " +"API posait des soucis : elle ne permettait pas la distinction entre les " +"objets C valides, ce qui permettait aux objets C assortis incorrectement de " +"planter l'interpréteur, et certaines des API s'appuyaient sur un " +"comportement indéfini en C. (Pour plus de détails sur la logique de " +"Capsules, veuillez consulter :issue:`5630`)." #: ../Doc/howto/cporting.rst:206 msgid "" @@ -136,6 +179,14 @@ msgid "" "support both CObjects and Capsules. (Note that Python 3.0 is no longer " "supported, and it is not recommended for production use.)" msgstr "" +"Si vous utilisez actuellement CObjects et que vous voulez migrer vers la " +"version 3.1 ou plus récente, vous devrez passer à Capsules. :c:type:" +"`CObject` est déprécié dans 3.1 et 2.7 et est supprimé dans Python 3.2. Si " +"vous ne gérez que les versions 2.7, ou 3.1 et supérieures, vous pouvez " +"simplement passer à :c:type:`Capsule`. Si vous avez besoin de gérer Python " +"3.0, ou des versions de Python antérieures à 2.7, vous devez gérer CObjects " +"et Capsules. (Notez que Python 3.0 n'est plus maintenu, et qu'il n'est pas " +"recommandé pour une utilisation en production)." #: ../Doc/howto/cporting.rst:216 msgid "" @@ -145,6 +196,11 @@ msgid "" "automatically use Capsules in versions of Python with Capsules, and switch " "to CObjects when Capsules are unavailable." msgstr "" +"L'exemple suivant d'en-tête de fichier :file:`capsulethunk.h` peut résoudre " +"le problème. Il suffit d'écrire votre code dans l'API :c:type:`Capsule` et " +"d'inclure ce fichier d'en-tête après :file:`Python.h`. Votre code utilisera " +"automatiquement Capsules dans les versions de Python avec Capsules, et " +"passera à CObjects lorsque les Capsules ne sont pas disponibles." #: ../Doc/howto/cporting.rst:223 msgid "" @@ -153,10 +209,15 @@ msgid "" "the simulated :c:type:`Capsule` objects created by :file:`capsulethunk.h` " "behave slightly differently from real Capsules. Specifically:" msgstr "" +":file:`capsulethunk.h` reproduit le fonctionnement de Capsules en utilisant " +"CObjects. Cependant, :c:type:`CObject` ne permet pas de stocker le \"nom\" " +"de la capsule. Les objets simulés :c:type:`Capsule` créés par :file:" +"`capsulethunk.h` se comportent légèrement différemment des véritables " +"Capsules. Ainsi :" #: ../Doc/howto/cporting.rst:228 msgid "The name parameter passed in to :c:func:`PyCapsule_New` is ignored." -msgstr "" +msgstr "Le paramètre *name* passé à :c:func:`PyCapsule_New` est ignoré." #: ../Doc/howto/cporting.rst:230 msgid "" @@ -164,10 +225,13 @@ msgid "" "`PyCapsule_GetPointer` is ignored, and no error checking of the name is " "performed." msgstr "" +"Le paramètre *name* passé à :c:func:`PyCapsule_IsValid` et :c:func:" +"`PyCapsule_GetPointer` est ignoré et il n'y a pas de vérification d'erreur " +"du nom." #: ../Doc/howto/cporting.rst:234 msgid ":c:func:`PyCapsule_GetName` always returns NULL." -msgstr "" +msgstr ":c:func:`PyCapsule_GetName` renvoie toujours un NULL." #: ../Doc/howto/cporting.rst:236 msgid "" @@ -176,6 +240,11 @@ msgid "" "`PyCapsule_SetName` was deemed preferable to silent failure here. If this " "is inconvenient, feel free to modify your local copy as you see fit.)" msgstr "" +":c:func:`PyCapsule_SetName` lève toujours une exception et renvoie un échec. " +"Note : Puisqu'il n'y a aucun moyen de stocker un nom dans un CObject, " +"l'échec verbeux de :c:func:`PyCapsule_SetName` a été jugé préférable à un " +"échec non-verbeux dans ce cas. Si cela ne vous convenait pas, vous pouvez " +"modifier votre copie locale selon vos besoins." #: ../Doc/howto/cporting.rst:243 msgid "" @@ -183,10 +252,13 @@ msgid "" "source:`Doc/includes/capsulethunk.h`. We also include it here for your " "convenience:" msgstr "" +"Vous pouvez trouver :file:`capsulethunk.h` dans la distribution source de " +"Python comme :source:`Doc/includes/capsulethunk.h`. Nous l'incluons ici pour " +"votre confort :" #: ../Doc/howto/cporting.rst:252 msgid "Other options" -msgstr "" +msgstr "Autres options" #: ../Doc/howto/cporting.rst:254 msgid "" @@ -194,3 +266,7 @@ msgid "" "`_. It translates a Python-like language to C. The " "extension modules it creates are compatible with Python 3 and Python 2." msgstr "" +"Si vous écrivez un nouveau module d'extension, vous pouvez envisager " +"d'utiliser `Cython `_. Il traduit un langage de type " +"Python en C. Les modules d'extension qu'il crée sont compatibles avec Python " +"3 et Python 2." diff --git a/howto/functional.po b/howto/functional.po index fa6074ed2..41aa8987a 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -27,7 +27,7 @@ msgstr "Auteur" #: ../Doc/howto/functional.rst:5 msgid "A. M. Kuchling" -msgstr "" +msgstr "A. M. Kuchling" #: ../Doc/howto/functional.rst:0 msgid "Release" @@ -35,7 +35,7 @@ msgstr "Version" #: ../Doc/howto/functional.rst:6 msgid "0.32" -msgstr "" +msgstr "0.32" #: ../Doc/howto/functional.rst:8 msgid "" @@ -45,6 +45,11 @@ msgid "" "term:`iterator`\\s and :term:`generator`\\s and relevant library modules " "such as :mod:`itertools` and :mod:`functools`." msgstr "" +"Dans ce document, nous allons faire un tour des fonctionnalités de Python " +"adaptées à la réalisation d'un programme dans un style fonctionnel. Après " +"une introduction à la programmation fonctionnelle, nous aborderons des " +"outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " +"que les modules :mod:`itertools` et :mod:`functools`." #: ../Doc/howto/functional.rst:16 msgid "Introduction" @@ -56,11 +61,17 @@ msgid "" "just interested in learning about Python language features, skip to the next " "section on :ref:`functional-howto-iterators`." msgstr "" +"Cette section détaille les fondamentaux de la programmation fonctionnelle. " +"Si seules les fonctionnalités de Python vous intéressent, vous pouvez sauter " +"cette partie et lire la section suivante sur les :ref:`functional-howto-" +"iterators`." #: ../Doc/howto/functional.rst:22 msgid "" "Programming languages support decomposing problems in several different ways:" msgstr "" +"Les langages de programmation permettent de traiter des problèmes selon " +"différentes approches :" #: ../Doc/howto/functional.rst:24 msgid "" @@ -68,6 +79,11 @@ msgid "" "instructions that tell the computer what to do with the program's input. C, " "Pascal, and even Unix shells are procedural languages." msgstr "" +"La plupart des langages de programmation suivent une logique " +"**procédurale** : les programmes sont constitués de listes d'instructions " +"qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " +"programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " +"langages procéduraux." #: ../Doc/howto/functional.rst:28 msgid "" @@ -78,6 +94,13 @@ msgid "" "to retrieve, and the SQL engine decides whether to scan tables or use " "indexes, which subclauses should be performed first, etc." msgstr "" +"Les langages **déclaratifs** permettent d'écrire la spécification du " +"problème et laissent l'implémentation du langage trouver une façon efficace " +"de réaliser les calculs nécessaires à sa résolution. SQL est un langage " +"déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " +"le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " +"parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" +"clauses, etc." #: ../Doc/howto/functional.rst:35 msgid "" @@ -87,6 +110,11 @@ msgid "" "and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" +"Les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " +"possèdent un état interne et des méthodes qui interrogent ou modifient cet " +"état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " +"orientés objet. C++ et Python gèrent la programmation orientée objet mais " +"n'imposent pas l'utilisation de telles fonctionnalités." #: ../Doc/howto/functional.rst:41 msgid "" @@ -96,6 +124,12 @@ msgid "" "known functional languages include the ML family (Standard ML, OCaml, and " "other variants) and Haskell." msgstr "" +"La programmation **fonctionnelle** implique de décomposer un problème en un " +"ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " +"partir d'entrées et ne possède pas d'état interne qui soit susceptible de " +"modifier la sortie pour une entrée donnée. Les langages fonctionnels les " +"plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " +"Haskell." #: ../Doc/howto/functional.rst:47 msgid "" @@ -109,6 +143,16 @@ msgid "" "GUI might be object-oriented while the processing logic is procedural or " "functional, for example." msgstr "" +"Les personnes qui conçoivent des langages de programmation peuvent choisir " +"de privilégier une approche par rapport à une autre. Cela complexifie " +"l'écriture de programmes appliquant un paradigme différent de celui " +"considéré. Certains langages sont multi-paradigmes et gère plusieurs " +"approches différentes. Lisp, C++ et Python sont de tels langages ; vous " +"pouvez écrire des programmes ou des bibliothèques dans un style procédural, " +"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " +"d'une application peuvent être écrites selon des approches différentes ; par " +"exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " +"que la logique de traitement est procédurale ou fonctionnelle." #: ../Doc/howto/functional.rst:58 msgid "" @@ -120,6 +164,15 @@ msgid "" "side effects means not using data structures that get updated as a program " "runs; every function's output must only depend on its input." msgstr "" +"Dans un programme fonctionnel, l'entrée traverse un ensemble de fonctions. " +"Chaque fonction opère sur son entrée et produit une sortie. Le style " +"fonctionnel préconise de ne pas écrire de fonctions ayant des effets de " +"bord, c'est-à-dire qui modifient un état interne ou réalisent d'autres " +"changements qui ne sont pas visibles dans la valeur de sortie de la " +"fonction. Les fonctions qui ne présentent aucun effet de bord sont dites " +"**purement fonctionnelles**. L'interdiction des effets de bord signifie " +"qu'aucune structure de données n'est mise à jour lors de l'exécution du " +"programme ; chaque sortie d'une fonction ne dépend que de son entrée." #: ../Doc/howto/functional.rst:66 msgid "" @@ -131,6 +184,15 @@ msgid "" "called for their side effects of sending some text to the screen or pausing " "execution for a second." msgstr "" +"Certains langages sont très stricts en ce qui concerne la pureté des " +"fonctions et ne laissent même pas la possibilité d'assigner des variables " +"avec des expressions telles que ``a = 3`` ou ``c = a + b``, cependant il est " +"difficile d'éviter tous les effets de bord. Afficher un message sur l'écran " +"ou écrire un fichier sur le disque sont des effets de bord. Par exemple, un " +"appel aux fonctions :func:`print` ou :func:`time.sleep` en Python ne renvoie " +"aucune valeur utile ; ces fonctions ne sont appelées que pour leur effet de " +"bord (afficher du texte sur l'écran et mettre en pause l'exécution du " +"programme)." #: ../Doc/howto/functional.rst:74 msgid "" @@ -141,6 +203,13 @@ msgid "" "assignments to local variables, but won't modify global variables or have " "other side effects." msgstr "" +"Les programmes Python écrits dans un style fonctionnel ne poussent " +"généralement pas le curseur de la pureté à l'extrême en interdisant toute " +"entrée/sortie ou les assignations ; ils exhibent une interface fonctionnelle " +"en apparence mais utilisent des fonctionnalités impures en interne. Par " +"exemple, l'implémentation d'une fonction peut assigner dans des variables " +"locales mais ne modifiera pas de variable globale et n'aura pas d'autre " +"effet de bord." #: ../Doc/howto/functional.rst:80 msgid "" @@ -153,6 +222,15 @@ msgid "" "approaches by writing functions that take and return instances representing " "objects in your application (e-mail messages, transactions, etc.)." msgstr "" +"La programmation fonctionnelle peut être considérée comme l'opposé de la " +"programmation orientée objet. Les objets encapsulent un état interne ainsi " +"qu'une collection de méthodes qui permettent de modifier cet état. Les " +"programmes consistent à appliquer les bons changements à ces états. La " +"programmation fonctionnelle vous impose d'éviter au maximum ces changements " +"d'états en travaillant sur des données qui traversent un flux de fonctions. " +"En Python, vous pouvez combiner ces deux approches en écrivant des fonctions " +"qui prennent en argument et renvoient des instances représentants des objets " +"de votre application (courriers électroniques, transactions, etc.)." #: ../Doc/howto/functional.rst:89 msgid "" @@ -160,32 +238,37 @@ msgid "" "you avoid objects and side effects? There are theoretical and practical " "advantages to the functional style:" msgstr "" +"Programmer sous la contrainte du paradigme fonctionnel peut sembler étrange. " +"Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " +"avantages théoriques et pratiques au style fonctionnel :" #: ../Doc/howto/functional.rst:93 msgid "Formal provability." -msgstr "" +msgstr "Preuves formelles." #: ../Doc/howto/functional.rst:94 msgid "Modularity." -msgstr "" +msgstr "Modularité." #: ../Doc/howto/functional.rst:95 msgid "Composability." -msgstr "" +msgstr "Composabilité." #: ../Doc/howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "" +msgstr "Facilité de débogage et de test." #: ../Doc/howto/functional.rst:100 msgid "Formal provability" -msgstr "" +msgstr "Preuves formelles" #: ../Doc/howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." msgstr "" +"Un avantage théorique est qu'il plus facile de construire une preuve " +"mathématique de l'exactitude d'un programme fonctionnel." #: ../Doc/howto/functional.rst:105 msgid "" @@ -196,6 +279,12 @@ msgid "" "looks right; the goal is instead a rigorous proof that a program produces " "the right result for all possible inputs." msgstr "" +"Les chercheurs ont longtemps souhaité trouver des façons de prouver " +"mathématiquement qu'un programme est correct. Cela ne se borne pas à tester " +"si la sortie d'un programme est correcte sur de nombreuses entrées ou lire " +"le code source et en conclure que le celui-ci semble juste. L'objectif est " +"d'établir une preuve rigoureuse que le programme produit le bon résultat " +"pour toutes les entrées possibles." #: ../Doc/howto/functional.rst:112 msgid "" @@ -207,6 +296,14 @@ msgid "" "This continues until you reach the end of the program, at which point the " "invariants should match the desired conditions on the program's output." msgstr "" +"La technique utilisée pour prouver l'exactitude d'un programme est d'écrire " +"des **invariants**, c'est-à-dire des propriétés de l'entrée et des variables " +"du programme qui sont toujours vérifiées. Pour chaque ligne de code, il " +"suffit de montrer que si les invariants X et Y sont vrais **avant** " +"l'exécution de cette ligne, les invariants légèrement modifiés X' et Y' sont " +"vérifiés **après** son exécution. Ceci se répète jusqu'à atteindre la fin du " +"programme. À ce stade, les invariants doivent alors correspondre aux " +"propriétés que l'on souhaite que la sortie du programme vérifie." #: ../Doc/howto/functional.rst:120 msgid "" @@ -215,6 +312,10 @@ msgid "" "invariants that were true before the assignment without producing any new " "invariants that can be propagated onward." msgstr "" +"L'aversion du style fonctionnel envers les assignations de variable est " +"apparue car celles-ci sont difficiles à gérer avec cette méthode. Les " +"assignations peuvent rompre des invariants qui étaient vrais auparavant sans " +"pour autant produire de nouveaux invariants qui pourraient être propagés." #: ../Doc/howto/functional.rst:125 msgid "" @@ -227,10 +328,20 @@ msgid "" "the question of verifying the proof; maybe there's an error in it, and you " "wrongly believe you've proved the program correct." msgstr "" +"Malheureusement, prouver l'exactitude d'un programme est très peu commode et " +"ne concerne que rarement des logiciels en Python. Même des programmes " +"triviaux nécessitent souvent des preuves s'étalant sur plusieurs pages ; la " +"preuve de l'exactitude d'un programme relativement gros serait gigantesque. " +"Peu, voire aucun, des programmes que vous utilisez quotidiennement " +"(l'interpréteur Python, votre analyseur syntaxique XML, votre navigateur " +"web) ne peuvent être prouvés exacts. Même si vous écriviez ou généreriez une " +"preuve, il faudrait encore vérifier celle-ci. Peut-être qu'elle contient une " +"erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " +"programme est correct." #: ../Doc/howto/functional.rst:136 msgid "Modularity" -msgstr "" +msgstr "Modularité" #: ../Doc/howto/functional.rst:138 msgid "" @@ -240,14 +351,20 @@ msgid "" "thing than a large function that performs a complicated transformation. " "Small functions are also easier to read and to check for errors." msgstr "" +"Un intérêt plus pratique de la programmation fonctionnelle est qu'elle " +"impose de décomposer le problème en petits morceaux. Les programmes qui en " +"résultent sont souvent plus modulaires. Il est plus simple de spécifier et " +"d'écrire une petite fonction qui ne fait qu'une seule tâche plutôt qu'une " +"grosse fonction qui réalise une transformation complexe. Les petites " +"fonctions sont plus faciles à lire et à vérifier." #: ../Doc/howto/functional.rst:146 msgid "Ease of debugging and testing" -msgstr "" +msgstr "Facilité de débogage et de test" #: ../Doc/howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." -msgstr "" +msgstr "Tester et déboguer un programme fonctionnel est plus facile." #: ../Doc/howto/functional.rst:150 msgid "" @@ -257,6 +374,11 @@ msgid "" "intermediate inputs and outputs to quickly isolate the function that's " "responsible for a bug." msgstr "" +"Déboguer est plus simple car les fonctions sont généralement petites et bien " +"spécifiées. Lorsqu'un programme ne fonctionne pas, chaque fonction constitue " +"une étape intermédiaire au niveau de laquelle vous pouvez vérifier que les " +"valeurs sont justes. Vous pouvez observer les entrées intermédiaires et les " +"sorties afin d'isoler rapidement la fonction qui est à l'origine du bogue." #: ../Doc/howto/functional.rst:155 msgid "" @@ -265,10 +387,15 @@ msgid "" "before running a test; instead you only have to synthesize the right input " "and then check that the output matches expectations." msgstr "" +"Les tests sont plus faciles car chaque fonction est désormais un sujet " +"potentiel pour un test unitaire. Les fonctions ne dépendent pas d'un état " +"particulier du système qui devrait être répliqué avant d'exécuter un test ; " +"à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " +"le résultat correspond à ce que vous attendez." #: ../Doc/howto/functional.rst:162 msgid "Composability" -msgstr "" +msgstr "Composabilité" #: ../Doc/howto/functional.rst:164 msgid "" @@ -280,6 +407,14 @@ msgid "" "that takes a filename and returns its contents, can be applied to many " "different situations." msgstr "" +"En travaillant sur un programme dans le style fonctionnel, vous écrivez un " +"certain nombre de fonctions avec des entrées et des sorties variables. " +"Certaines de ces fonctions sont inévitablement spécifiques à une application " +"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. " +"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un " +"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le " +"contenu d'un fichier à partir de son nom peuvent être utiles dans de " +"nombreuses situations." #: ../Doc/howto/functional.rst:171 msgid "" @@ -287,6 +422,10 @@ msgid "" "assemble new programs by arranging existing functions in a new configuration " "and writing a few functions specialized for the current task." msgstr "" +"Au fur et à mesure, vous constituez ainsi une bibliothèque personnelle " +"d'utilitaires. Souvent, vous pourrez construire de nouveaux programmes en " +"agençant des fonctions existantes dans une nouvelle configuration et en " +"écrivant quelques fonctions spécifiques à votre objectif en cours." #: ../Doc/howto/functional.rst:179 msgid "Iterators" @@ -297,6 +436,8 @@ msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." msgstr "" +"Commençons par jeter un œil à une des fonctionnalités les plus importantes " +"pour écrire en style fonctionnel avec Python : les itérateurs." #: ../Doc/howto/functional.rst:184 msgid "" @@ -308,6 +449,13 @@ msgid "" "exception. Iterators don't have to be finite, though; it's perfectly " "reasonable to write an iterator that produces an infinite stream of data." msgstr "" +"Un itérateur est un objet qui représente un flux de données ; cet objet " +"renvoie les données un élément à la fois. Un itérateur Python doit posséder " +"une méthode :meth:`~iterator.__next__` qui ne prend pas d'argument et " +"renvoie toujours l'élément suivant du flux. S'il n'y plus d'élément dans le " +"flux, :meth:`~iterator.__next__` doit lever une exception :exc:" +"`StopIteration`. Toutefois, ce n'est pas indispensable ; il est envisageable " +"d'écrire un itérateur qui produit un flux infini de données." #: ../Doc/howto/functional.rst:192 msgid "" @@ -318,10 +466,16 @@ msgid "" "lists and dictionaries. An object is called :term:`iterable` if you can get " "an iterator for it." msgstr "" +"La fonction native :func:`iter` prend un objet arbitraire et tente de " +"construire un itérateur qui renvoie le contenu de l'objet (ou ses éléments) " +"en levant une exception :exc:`TypeError` si l'objet ne gère pas l'itération. " +"Plusieurs types de données natifs à Python gèrent l'itération, notamment les " +"listes et les dictionnaires. On appelle :term:`iterable` un objet pour " +"lequel il est possible de construire un itérateur." #: ../Doc/howto/functional.rst:199 msgid "You can experiment with the iteration interface manually:" -msgstr "" +msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" #: ../Doc/howto/functional.rst:217 msgid "" @@ -330,18 +484,27 @@ msgid "" "Y``, Y must be an iterator or some object for which :func:`iter` can create " "an iterator. These two statements are equivalent::" msgstr "" +"Python s'attend à travailler sur des objets itérables dans divers contextes " +"et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " +"``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" +"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" #: ../Doc/howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" msgstr "" +"Les itérateurs peuvent être transformés en listes ou en tuples en appelant " +"les constructeurs respectifs :func:`list` et :func:`tuple` :" #: ../Doc/howto/functional.rst:238 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" msgstr "" +"Le dépaquetage de séquences fonctionne également sur les itérateurs : si " +"vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " +"dans un n-uplet :" #: ../Doc/howto/functional.rst:247 msgid "" @@ -353,6 +516,14 @@ msgid "" "func:`min` will never return, and if the element X never appears in the " "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." msgstr "" +"Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " +"un itérateur en argument et en renvoie le plus grand ou le plus petit " +"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les " +"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " +"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " +"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " +"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``" +"\"not in\"`` non plus." #: ../Doc/howto/functional.rst:255 msgid "" @@ -364,10 +535,18 @@ msgid "" "need to do something different with the same stream, you'll have to create a " "new iterator." msgstr "" +"Notez qu'il n'est possible de parcourir un itérateur que vers l'avant et " +"qu'il est impossible de récupérer l'élément précédent, de réinitialiser " +"l'itérateur ou d'en créer une copie. Des objets itérateurs peuvent offrir " +"ces possibilités de façon facultative, mais le protocole d'itération ne " +"spécifie que la méthode :meth:`~iterator.__next__`. Certaines fonctions " +"peuvent ainsi consommer l'entièreté de la sortie d'un itérateur et, si vous " +"devez utiliser le même flux pour autre chose, vous devrez en créer un " +"nouveau." #: ../Doc/howto/functional.rst:265 msgid "Data Types That Support Iterators" -msgstr "" +msgstr "Types de données itérables" #: ../Doc/howto/functional.rst:267 msgid "" @@ -375,12 +554,17 @@ msgid "" "Python sequence type, such as strings, will automatically support creation " "of an iterator." msgstr "" +"Nous avons vu précédemment comment les listes et les *tuples* gèrent les " +"itérateurs. En réalité, n'importe quel type de séquence en Python, par " +"exemple les chaînes de caractères, sont itérables." #: ../Doc/howto/functional.rst:271 msgid "" "Calling :func:`iter` on a dictionary returns an iterator that will loop over " "the dictionary's keys::" msgstr "" +"Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " +"l'ensemble de ses clés ::" #: ../Doc/howto/functional.rst:291 msgid "" @@ -395,12 +579,19 @@ msgid "" "iterate over values or key/value pairs, you can explicitly call the :meth:" "`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." msgstr "" +"Appliquer :func:`iter` sur un dictionnaire produit un itérateur sur ses clés " +"mais il est possible d'obtenir d'autres itérateurs par d'autres méthodes. Si " +"vous souhaitez itérer sur les valeurs ou les paires clé/valeur du " +"dictionnaire, vous pouvez explicitement appeler les méthodes :meth:`~dict." +"values` ou :meth:`~dict.items` pour obtenir l'itérateur idoine." #: ../Doc/howto/functional.rst:300 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" msgstr "" +"Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " +"renvoie un flux fini de pairs ``(clé, valeur)`` :" #: ../Doc/howto/functional.rst:307 msgid "" @@ -408,16 +599,22 @@ msgid "" "method until there are no more lines in the file. This means you can read " "each line of a file like this::" msgstr "" +"Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io." +"TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le " +"fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " +"façon suivante ::" #: ../Doc/howto/functional.rst:315 msgid "" "Sets can take their contents from an iterable and let you iterate over the " "set's elements::" msgstr "" +"Les ensembles peuvent être créés à partir d'un itérable et autorisent " +"l'itération sur les éléments de l'ensemble ::" #: ../Doc/howto/functional.rst:325 msgid "Generator expressions and list comprehensions" -msgstr "" +msgstr "Expressions génératrices et compréhension de listes" #: ../Doc/howto/functional.rst:327 msgid "" @@ -427,6 +624,12 @@ msgid "" "strip off trailing whitespace from each line or extract all the strings " "containing a given substring." msgstr "" +"Deux opérations courantes réalisables sur la sortie d'un itérateur sont 1) " +"effectuer une opération pour chaque élément, 2) extraire le sous-ensemble " +"des éléments qui vérifient une certaine condition. Par exemple, pour une " +"liste de chaînes de caractères, vous pouvez choisir de retirer tous les " +"caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " +"contenant une sous-chaîne précise." #: ../Doc/howto/functional.rst:333 msgid "" @@ -435,11 +638,18 @@ msgid "" "functional programming language Haskell (https://www.haskell.org/). You can " "strip all the whitespace from a stream of strings with the following code::" msgstr "" +"Les compréhensions de listes et les expressions génératrices sont des façons " +"concises d'exprimer de telles opérations, inspirées du langage de " +"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " +"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " +"de caractères à l'aide du code suivant ::" #: ../Doc/howto/functional.rst:346 msgid "" "You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" +"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " +"« ``if`` » ::" #: ../Doc/howto/functional.rst:351 msgid "" @@ -451,6 +661,13 @@ msgid "" "infinite stream or a very large amount of data. Generator expressions are " "preferable in these situations." msgstr "" +"La compréhension de liste renvoie une liste Python ; ``stripped_list`` est " +"une liste contenant les lignes après transformation, pas un itérateur. Les " +"expressions génératrices renvoient un itérateur qui calcule les valeurs au " +"fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " +"que les compréhensions de listes ne sont pas très utiles si vous travaillez " +"sur des itérateurs infinis ou produisant une très grande quantité de " +"données. Les expressions génératrices sont préférables dans ce cas." #: ../Doc/howto/functional.rst:358 msgid "" @@ -458,12 +675,17 @@ msgid "" "comprehensions are surrounded by square brackets (\"[]\"). Generator " "expressions have the form::" msgstr "" +"Les expressions génératrices sont écrites entre parenthèses (« () ») et les " +"compréhensions de listes entre crochets (« [] »). Les expressions " +"génératrices sont de la forme ::" #: ../Doc/howto/functional.rst:371 msgid "" "Again, for a list comprehension only the outside brackets are different " "(square brackets instead of parentheses)." msgstr "" +"La compréhension de liste équivalente s'écrit de la même manière, utilisez " +"juste des crochets à la place des parenthèses." #: ../Doc/howto/functional.rst:374 msgid "" @@ -472,6 +694,9 @@ msgid "" "``expression`` is only evaluated and added to the result when ``condition`` " "is true." msgstr "" +"Les éléments de la sortie sont les valeurs successives de ``expression``. La " +"clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " +"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." #: ../Doc/howto/functional.rst:378 msgid "" @@ -479,6 +704,10 @@ msgid "" "parentheses signalling a function call also count. If you want to create an " "iterator that will be immediately passed to a function you can write::" msgstr "" +"Les expressions génératrices doivent toujours être écrites entre " +"parenthèses, mais les parenthèses qui encadrent un appel de fonction " +"comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " +"passé à une fonction, vous pouvez écrire ::" #: ../Doc/howto/functional.rst:384 msgid "" @@ -489,12 +718,20 @@ msgid "" "looped over for each resulting pair of elements from ``sequence1`` and " "``sequence2``." msgstr "" +"Les clauses ``for ... in`` indiquent les séquences sur lesquelles itérer. " +"Celles-ci peuvent être de longueurs différentes car l'itération est réalisée " +"de gauche à droite et non en parallèle. ``sequence2`` est parcourue " +"entièrement pour chaque élément de ``sequence1``. ``sequence3`` est ensuite " +"parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " +"et ``sequence2``." #: ../Doc/howto/functional.rst:390 msgid "" "To put it another way, a list comprehension or generator expression is " "equivalent to the following Python code::" msgstr "" +"Autrement dit, une compréhension de liste ou une expression génératrice est " +"équivalente au code Python ci-dessous ::" #: ../Doc/howto/functional.rst:407 msgid "" @@ -503,6 +740,10 @@ msgid "" "the lengths of all the sequences. If you have two lists of length 3, the " "output list is 9 elements long:" msgstr "" +"Ainsi lorsque plusieurs clauses ``for ... in`` sont présentes mais sans " +"condition ``if``, la longueur totale de la nouvelle séquence est égale au " +"produit des longueurs des séquences itérées. Si vous travaillez sur deux " +"listes de longueur 3, la sortie contiendra 9 éléments :" #: ../Doc/howto/functional.rst:419 msgid "" @@ -510,6 +751,10 @@ msgid "" "is creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" +"Afin de ne pas créer une ambiguïté dans la grammaire de Python, " +"``expression`` doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" #: ../Doc/howto/functional.rst:430 msgid "Generators" @@ -521,6 +766,10 @@ msgid "" "writing iterators. Regular functions compute a value and return it, but " "generators return an iterator that returns a stream of values." msgstr "" +"Les générateurs forment une classe spéciale de fonctions qui simplifie la " +"création d'itérateurs. Les fonctions habituelles calculent une valeur et la " +"renvoie, tandis que les générateurs renvoient un itérateur qui produit un " +"flux de valeurs." #: ../Doc/howto/functional.rst:436 msgid "" @@ -534,10 +783,22 @@ msgid "" "function where it left off? This is what generators provide; they can be " "thought of as resumable functions." msgstr "" +"Vous connaissez sans doute le fonctionnement des appels de fonctions en " +"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé " +"lui est associé pour ses variables locales. Lorsque le programme atteint une " +"instruction ``return``, les variables locales sont détruites et la valeur " +"est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " +"un nouvel espace de nommage privé et de nouvelles variables locales. " +"Cependant, que se passerait-il si les variables locales n'étaient pas " +"détruites lors de la sortie d'une fonction ? Et s'il était possible de " +"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les " +"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il " +"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " +"perdre leur progression." #: ../Doc/howto/functional.rst:445 msgid "Here's the simplest example of a generator function:" -msgstr "" +msgstr "Voici un exemple simple de fonction génératrice :" #: ../Doc/howto/functional.rst:451 msgid "" @@ -545,6 +806,9 @@ msgid "" "this is detected by Python's :term:`bytecode` compiler which compiles the " "function specially as a result." msgstr "" +"N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " +"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " +"prend en compte cette particularité de la fonction." #: ../Doc/howto/functional.rst:455 msgid "" @@ -557,10 +821,18 @@ msgid "" "preserved. On the next call to the generator's :meth:`~generator.__next__` " "method, the function will resume executing." msgstr "" +"Lorsque vous appelez une fonction génératrice, celle-ci ne renvoie pas une " +"unique valeur ; elle renvoie un objet générateur qui implémente le protocole " +"d'itération. Lorsque l'expression ``yield`` est exécutée, le générateur " +"renvoie la valeur de ``i``, d'une façon similaire à un ``return``. La " +"différence principale entre ``yield`` et ``return`` est qu'en atteignant " +"l'instruction ``yield``, l'état du générateur est suspendu et les variables " +"locales sont conservées. Lors de l'appel suivant à la méthode :meth:" +"`~generator.__next__` du générateur, la fonction reprend son exécution." #: ../Doc/howto/functional.rst:464 msgid "Here's a sample usage of the ``generate_ints()`` generator:" -msgstr "" +msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" #: ../Doc/howto/functional.rst:481 msgid "" @@ -575,6 +847,11 @@ msgid "" "method. Once this happens, or the bottom of the function is reached, the " "procession of values ends and the generator cannot yield any further values." msgstr "" +"Dans une fonction génératrice, une instruction ``return value`` entraine la " +"levée d'une exception ``StopIteration(value)`` dans la méthode :meth:" +"`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction " +"est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne " +"peut plus rien produire." #: ../Doc/howto/functional.rst:489 msgid "" @@ -585,6 +862,13 @@ msgid "" "method increment ``self.count`` and return it. However, for a moderately " "complicated generator, writing a corresponding class can be much messier." msgstr "" +"Vous pouvez obtenir le même comportement que celui des générateurs en " +"écrivant votre propre classe qui stocke les variables locales du générateur " +"comme variables d'instance. Pour renvoyer une liste d'entiers, par exemple, " +"vous pouvez initialiser ``self.count`` à 0 et écrire la méthode :meth:" +"`~iterator.__next__` de telle sorte qu'elle incrémente ``self.count`` puis " +"le renvoie. Cependant, cela devient beaucoup plus complexe pour des " +"générateurs relativement sophistiqués." #: ../Doc/howto/functional.rst:497 msgid "" @@ -593,6 +877,10 @@ msgid "" "one generator that implements an in-order traversal of a tree using " "generators recursively. ::" msgstr "" +":source:`Lib/test/test_generators.py`, la suite de test de la bibliothèque " +"Python, contient de nombreux exemples intéressants. Voici un générateur qui " +"implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " +"de façon récursive. ::" #: ../Doc/howto/functional.rst:513 msgid "" @@ -602,10 +890,16 @@ msgid "" "knight to every square of an NxN chessboard without visiting any square " "twice)." msgstr "" +"Deux autres exemples de ``test_generators.py`` permettent de résoudre le " +"problème des N Reines (placer *N* reines sur un échiquier de dimensions " +"*NxN* de telle sorte qu'aucune reine ne soit en position d'en prendre une " +"autre) et le problème du cavalier (trouver un chemin permettant au cavalier " +"de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " +"case deux fois)." #: ../Doc/howto/functional.rst:521 msgid "Passing values into a generator" -msgstr "" +msgstr "Transmettre des valeurs au générateur" #: ../Doc/howto/functional.rst:523 msgid "" @@ -616,6 +910,12 @@ msgid "" "variable or by passing in some mutable object that callers then modify, but " "these approaches are messy." msgstr "" +"Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " +"fois le code du générateur exécuté pour créer un itérateur, il était " +"impossible d'introduire de l'information nouvelle dans la fonction mise en " +"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le " +"générateur à consulter des variables globales ou en lui passant des objets " +"mutables modifiés hors du générateur, mais ces approches étaient compliquées." #: ../Doc/howto/functional.rst:530 msgid "" @@ -623,6 +923,10 @@ msgid "" "`yield` became an expression, returning a value that can be assigned to a " "variable or otherwise operated on::" msgstr "" +"À partir de Python 2.5, il existe une méthode simple pour transmettre des " +"valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " +"expression qui renvoie une valeur sur laquelle il est possible d'opérer et " +"que vous pouvez assigner à une variable ::" #: ../Doc/howto/functional.rst:536 msgid "" @@ -631,6 +935,12 @@ msgid "" "above example. The parentheses aren't always necessary, but it's easier to " "always add them instead of having to remember when they're needed." msgstr "" +"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** " +"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez " +"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux " +"vaut prévenir que guérir : il est plus facile de les ajouter " +"systématiquement que de prendre le risque de les oublier là où elles sont " +"requises." #: ../Doc/howto/functional.rst:541 msgid "" @@ -640,6 +950,11 @@ msgid "" "write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" +"(Les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " +"expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " +"l'expression la plus externe du côté droit d'une assignation. Cela signifie " +"que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " +"requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" #: ../Doc/howto/functional.rst:547 msgid "" @@ -648,16 +963,23 @@ msgid "" "``yield`` expression returns the specified value. If the regular :meth:" "`~generator.__next__` method is called, the ``yield`` returns ``None``." msgstr "" +"Des valeurs peuvent être transmises à un générateur en appelant sa méthode :" +"meth:`send(value) `. Celle-ci reprend l'exécution du " +"générateur et l'expression ``yield`` renvoie la valeur spécifiée. Si c'est " +"la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " +"``yield`` renvoie ``None``." #: ../Doc/howto/functional.rst:552 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." msgstr "" +"Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " +"de modifier le compte interne." #: ../Doc/howto/functional.rst:567 msgid "And here's an example of changing the counter:" -msgstr "" +msgstr "Et voici comment il est possible de modifier le compteur :" #: ../Doc/howto/functional.rst:584 msgid "" @@ -666,12 +988,18 @@ msgid "" "that the :meth:`~generator.send` method will be the only method used to " "resume your generator function." msgstr "" +"Puisque ``yield`` renvoie souvent ``None``, vous devez toujours vérifier si " +"c'est le cas. N'utilisez pas la valeur de retour à moins d'être certain que " +"seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " +"l'exécution de la fonction génératrice." #: ../Doc/howto/functional.rst:589 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" msgstr "" +"En plus de :meth:`~generator.send`, il existe deux autres méthodes " +"s'appliquant aux générateurs :" #: ../Doc/howto/functional.rst:592 msgid "" @@ -679,6 +1007,9 @@ msgid "" "raise an exception inside the generator; the exception is raised by the " "``yield`` expression where the generator's execution is paused." msgstr "" +":meth:`throw(type, value=None, traceback=None) ` permet de " +"lever une exception dans le générateur ; celle-ci est levée par l'expression " +"``yield`` à l'endroit où l'exécution a été mise en pause." #: ../Doc/howto/functional.rst:596 msgid "" @@ -690,6 +1021,13 @@ msgid "" "be called by Python's garbage collector when the generator is garbage-" "collected." msgstr "" +":meth:`~generator.close` lève une exception :exc:`GeneratorExit` dans le " +"générateur afin de terminer l'itération. Le code du générateur qui reçoit " +"cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:" +"`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi " +"que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque " +"le ramasse-miette de Python collecte le générateur, il appelle sa méthode :" +"meth:`~generator.close`." #: ../Doc/howto/functional.rst:604 msgid "" @@ -697,12 +1035,18 @@ msgid "" "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" +"Si vous devez exécuter du code pour faire le ménage lors d'une :exc:" +"`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... " +"finally`` plutôt que d'attraper :exc:`GeneratorExit`." #: ../Doc/howto/functional.rst:607 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." #: ../Doc/howto/functional.rst:610 msgid "" @@ -712,6 +1056,12 @@ msgid "" "can be entered, exited, and resumed at many different points (the ``yield`` " "statements)." msgstr "" +"Les générateurs sont également devenus des **coroutines**, une forme " +"généralisée de sous-routine. L'exécution des sous-routines démarre à un " +"endroit et se termine à un autre (au début de la fonction et au niveau de " +"l'instruction ``return``), tandis qu'il est possible d'entrer, de sortir ou " +"de reprendre une coroutine à différents endroits (les instructions " +"``yield``)." #: ../Doc/howto/functional.rst:617 msgid "Built-in functions" @@ -721,26 +1071,34 @@ msgstr "Fonctions natives" msgid "" "Let's look in more detail at built-in functions often used with iterators." msgstr "" +"Voyons un peu plus en détail les fonctions natives souvent utilisées de " +"concert avec les itérateurs." #: ../Doc/howto/functional.rst:621 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" msgstr "" +":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " +"clonent les propriétés des expressions génératrices :" #: ../Doc/howto/functional.rst:633 msgid "" ":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" msgstr "" +":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" #: ../Doc/howto/functional.rst:625 msgid "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." msgstr "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." #: ../Doc/howto/functional.rst:635 msgid "You can of course achieve the same effect with a list comprehension." msgstr "" +"Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " +"liste." #: ../Doc/howto/functional.rst:637 msgid "" @@ -750,10 +1108,16 @@ msgid "" "truth value of some condition; for use with :func:`filter`, the predicate " "must take a single value." msgstr "" +":func:`filter(predicate, iter) ` renvoie un itérateur sur l'ensemble " +"des éléments de la séquence qui vérifient une certaine condition. Son " +"comportement peut également être reproduit par une compréhension de liste. " +"Un **prédicat** est une fonction qui renvoie vrai ou faux en fonction d'une " +"certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " +"prendre qu'un seul argument." #: ../Doc/howto/functional.rst:650 msgid "This can also be written as a list comprehension:" -msgstr "" +msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" #: ../Doc/howto/functional.rst:656 msgid "" @@ -761,12 +1125,18 @@ msgid "" "iterable returning 2-tuples containing the count (from *start*) and each " "element. ::" msgstr "" +":func:`enumerate(iter, start=0) ` énumère les éléments de " +"l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " +"listés (depuis le *début*) et l'élément en cours ::" #: ../Doc/howto/functional.rst:666 msgid "" ":func:`enumerate` is often used when looping through a list and recording " "the indexes at which certain conditions are met::" msgstr "" +":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une " +"liste tout en listant les indices pour lesquels une certaine condition est " +"vérifiée ::" #: ../Doc/howto/functional.rst:674 msgid "" @@ -775,11 +1145,17 @@ msgid "" "result. The *key* and *reverse* arguments are passed through to the " "constructed list's :meth:`~list.sort` method. ::" msgstr "" +":func:`sorted(iterable, key=None, reverse=False) ` rassemble tous " +"les éléments de l'itérable dans une liste, les classe et renvoie le résultat " +"classé. Les arguments *key* et *reverse* sont passés à la méthode :meth:" +"`~list.sort` de la liste ainsi construite. ::" #: ../Doc/howto/functional.rst:689 msgid "" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" msgstr "" +"(Pour plus de détails sur les algorithmes de tri, se référer à :ref:" +"`sortinghowto`.)" #: ../Doc/howto/functional.rst:692 msgid "" @@ -788,12 +1164,19 @@ msgid "" "any element in the iterable is a true value, and :func:`all` returns " "``True`` if all of the elements are true values:" msgstr "" +"Les fonctions natives :func:`any(iter) ` et :func:`all(iter) ` " +"permettent d'observer les valeurs de vérité des éléments d'un itérable. :" +"func:`any` renvoie ``True`` si au moins un élément de l'itérable s'évalue " +"comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " +"comme vrai :" #: ../Doc/howto/functional.rst:711 msgid "" ":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " "and returns them in a tuple::" msgstr "" +":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " +"dans un n-uplet ::" #: ../Doc/howto/functional.rst:717 msgid "" @@ -802,6 +1185,11 @@ msgid "" "they're requested. (The technical term for this behaviour is `lazy " "evaluation `__.)" msgstr "" +"Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " +"d'entrée avant de renvoyer sa valeur ; en réalité les n-uplets sont " +"construits et renvoyés au fur et à mesure (il s'agit techniquement parlant " +"d'un comportement d'`évaluation paresseuse `__)." #: ../Doc/howto/functional.rst:722 msgid "" @@ -809,6 +1197,9 @@ msgid "" "length. If the iterables are of different lengths, the resulting stream " "will be the same length as the shortest iterable. ::" msgstr "" +"Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " +"longueur des itérables diffère, le flux résultant a la même longueur que le " +"plus court des itérables. ::" #: ../Doc/howto/functional.rst:729 msgid "" @@ -816,10 +1207,15 @@ msgid "" "the longer iterators and discarded. This means you can't go on to use the " "iterators further because you risk skipping a discarded element." msgstr "" +"Toutefois, vous devez éviter de dépendre de ce comportement. En effet un " +"élément d'un des itérables les plus longs peut être retiré puis jeté (car " +"l'autre itérable est trop court). Cela signifie que vous ne pouvez alors " +"plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " +"jeté." #: ../Doc/howto/functional.rst:735 msgid "The itertools module" -msgstr "" +msgstr "Le module *itertools*" #: ../Doc/howto/functional.rst:737 msgid "" @@ -827,30 +1223,38 @@ msgid "" "well as functions for combining several iterators. This section will " "introduce the module's contents by showing small examples." msgstr "" +"Le module :mod:`itertools` contient de nombreux itérateurs très utilisés, " +"ainsi que des fonctions pour combiner différents itérateurs. Cette section " +"présente le contenu du module au travers de quelques exemples." #: ../Doc/howto/functional.rst:741 msgid "The module's functions fall into a few broad classes:" -msgstr "" +msgstr "Les fonctions du module se divisent en quelques grandes catégories :" #: ../Doc/howto/functional.rst:743 msgid "Functions that create a new iterator based on an existing iterator." msgstr "" +"Les fonctions qui transforment un itérateur existant en un nouvel itérateur." #: ../Doc/howto/functional.rst:744 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" +"Les fonctions qui traitent les éléments d'un itérateur comme les arguments " +"d'une fonction." #: ../Doc/howto/functional.rst:745 msgid "Functions for selecting portions of an iterator's output." msgstr "" +"Les fonctions qui permettent de sélectionner des portions de la sortie d'un " +"itérateur." #: ../Doc/howto/functional.rst:746 msgid "A function for grouping an iterator's output." -msgstr "" +msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." #: ../Doc/howto/functional.rst:749 msgid "Creating new iterators" -msgstr "" +msgstr "Créer de nouveaux itérateurs" #: ../Doc/howto/functional.rst:751 msgid "" @@ -859,6 +1263,9 @@ msgid "" "number, which defaults to 0, and the interval between numbers, which " "defaults to 1::" msgstr "" +":func:`itertools.count(start, step) ` renvoie un flux " +"infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " +"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" #: ../Doc/howto/functional.rst:762 msgid "" @@ -867,6 +1274,9 @@ msgid "" "from first to last. The new iterator will repeat these elements " "infinitely. ::" msgstr "" +":func:`itertools.cycle(iter) ` sauvegarde une copie du " +"contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " +"produit tous les éléments du premier au dernier et se répète indéfiniment. ::" #: ../Doc/howto/functional.rst:769 msgid "" @@ -874,6 +1284,9 @@ msgid "" "element *n* times, or returns the element endlessly if *n* is not " "provided. ::" msgstr "" +":func:`itertools.repeat(elem, [n]) ` renvoie l'élément " +"passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " +"spécifié. ::" #: ../Doc/howto/functional.rst:777 msgid "" @@ -882,6 +1295,10 @@ msgid "" "first iterator, then all the elements of the second, and so on, until all of " "the iterables have been exhausted. ::" msgstr "" +":func:`itertools.chain(iterA, iterB, ...) ` reçoit un " +"nombre arbitraire d'itérables en entrée et les concatène, renvoyant tous les " +"éléments du premier itérateur, puis tous ceux du second et ainsi de suite " +"jusqu'à ce que tous les itérables aient été épuisés. ::" #: ../Doc/howto/functional.rst:785 msgid "" @@ -893,6 +1310,13 @@ msgid "" "and list slicing, you can't use negative values for *start*, *stop*, or " "*step*. ::" msgstr "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " +"il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " +"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une " +"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives " +"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " +"caractères de Python). ::" #: ../Doc/howto/functional.rst:799 msgid "" @@ -903,10 +1327,16 @@ msgid "" "iterator, so this can consume significant memory if the iterator is large " "and one of the new iterators is consumed more than the others. ::" msgstr "" +":func:`itertools.tee(iter, [n]) ` duplique un itérateur et " +"renvoie *n* itérateurs indépendants, chacun copiant le contenu de " +"l'itérateur source. La valeur par défaut pour *n* est 2. La réplication des " +"itérateurs nécessite la sauvegarde d'une partie du contenu de l'itérateur " +"source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " +"et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" #: ../Doc/howto/functional.rst:818 msgid "Calling functions on elements" -msgstr "" +msgstr "Appliquer des fonctions au contenu des itérateurs" #: ../Doc/howto/functional.rst:820 msgid "" @@ -916,6 +1346,11 @@ msgid "" "``a != b``), and :func:`operator.attrgetter('id') ` " "(returns a callable that fetches the ``.id`` attribute)." msgstr "" +"Le module :mod:`operator` rassemble des fonctions équivalentes aux " +"opérateurs Python. Par exemple, :func:`operator.add(a,b) ` " +"additionne deux valeurs, :func:`operator.ne(a, b) ` est " +"équivalent à ``a != b`` et :func:`operator.attrgetter('id') ` renvoie un objet appelable qui récupère l'attribut ``.id``." #: ../Doc/howto/functional.rst:826 msgid "" @@ -923,16 +1358,21 @@ msgid "" "iterable will return a stream of tuples, and calls *func* using these tuples " "as the arguments::" msgstr "" +":func:`itertools.starmap(func, iter) ` suppose que " +"l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant " +"tous les n-uplets comme arguments ::" #: ../Doc/howto/functional.rst:838 msgid "Selecting elements" -msgstr "" +msgstr "Sélectionner des éléments" #: ../Doc/howto/functional.rst:840 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." msgstr "" +"Une autre catégorie de fonctions est celle permettant de sélectionner un " +"sous-ensemble des éléments de l'itérateur selon un prédicat donné." #: ../Doc/howto/functional.rst:843 msgid "" @@ -940,6 +1380,9 @@ msgid "" "the opposite of :func:`filter`, returning all elements for which the " "predicate returns false::" msgstr "" +":func:`itertools.filterfalse(predicate, iter) ` est " +"l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " +"prédicat est faux ::" #: ../Doc/howto/functional.rst:850 msgid "" @@ -947,6 +1390,9 @@ msgid "" "elements for as long as the predicate returns true. Once the predicate " "returns false, the iterator will signal the end of its results. ::" msgstr "" +":func:`itertools.takewhile(predicate, iter) ` renvoie " +"les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " +"que le prédicat renvoie faux, l'itération s'arrête. ::" #: ../Doc/howto/functional.rst:863 msgid "" @@ -954,6 +1400,9 @@ msgid "" "elements while the predicate returns true, and then returns the rest of the " "iterable's results. ::" msgstr "" +":func:`itertools.dropwhile(predicate, iter) ` supprime " +"des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " +"éléments de l'itérable. ::" #: ../Doc/howto/functional.rst:873 msgid "" @@ -962,10 +1411,14 @@ msgid "" "corresponding element of *selectors* is true, stopping whenever either one " "is exhausted::" msgstr "" +":func:`itertools.compress(data, selectors) ` prend un " +"itérateur *data* et un itérateur *selectors* et renvoie les éléments de " +"*data* pour lesquels l'élément correspondant de *selectors* est évalué à " +"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" #: ../Doc/howto/functional.rst:882 msgid "Combinatoric functions" -msgstr "" +msgstr "Fonctions combinatoires" #: ../Doc/howto/functional.rst:884 msgid "" @@ -973,6 +1426,9 @@ msgid "" "returns an iterator giving all possible *r*-tuple combinations of the " "elements contained in *iterable*. ::" msgstr "" +":func:`itertools.combinations(iterable, r) ` renvoie " +"un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " +"éléments de *iterable*. ::" #: ../Doc/howto/functional.rst:899 msgid "" @@ -982,24 +1438,38 @@ msgid "" "permutations(iterable, r=None) `, removes this " "constraint on the order, returning all possible arrangements of length *r*::" msgstr "" +"Les éléments de chaque tuple sont ordonnés dans le même ordre que leur " +"apparition dans *iterable*. Ainsi, dans les exemples ci-dessus, le nombre 1 " +"se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools." +"permutations(iterable, r=None) ` supprime la " +"contrainte sur l'ordre et renvoie tous les arrangements possibles de " +"longueur *r* ::" #: ../Doc/howto/functional.rst:918 msgid "" "If you don't supply a value for *r* the length of the iterable is used, " "meaning that all the elements are permuted." msgstr "" +"Si vous ne spécifiez pas de valeur pour *r*, la longueur de l'itérable est " +"utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " +"sont renvoyées." #: ../Doc/howto/functional.rst:921 msgid "" "Note that these functions produce all of the possible combinations by " "position and don't require that the contents of *iterable* are unique::" msgstr "" +"Notez que ces fonctions génèrent toutes les combinaisons possibles en se " +"basant sur la position des éléments et ne requièrent pas que les éléments de " +"*iterable* soient uniques ::" #: ../Doc/howto/functional.rst:928 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." msgstr "" +"Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " +"caractères ``'a'`` proviennent de deux positions différentes." #: ../Doc/howto/functional.rst:931 msgid "" @@ -1009,10 +1479,15 @@ msgid "" "selected for the first position of each tuple and then is replaced before " "the second element is selected. ::" msgstr "" +"La fonction :func:`itertools.combinations_with_replacement(iterable, r) " +"` assouplit une autre contrainte : " +"les éléments peuvent être répétés au sein du même n-uplet. Il s'agit d'un " +"tirage avec remise : le premier élément sélectionné pour chaque n-uplet est " +"replacé dans la séquence avant le tirage du deuxième. ::" #: ../Doc/howto/functional.rst:946 msgid "Grouping elements" -msgstr "" +msgstr "Grouper les éléments" #: ../Doc/howto/functional.rst:948 msgid "" @@ -1022,6 +1497,12 @@ msgid "" "element returned by the iterable. If you don't supply a key function, the " "key is simply each element itself." msgstr "" +"La dernière fonction que allons voir, :func:`itertools.groupby(iter, " +"key_func=None) ` est la plus complexe. ``key_func(elem)`` " +"est une fonction qui produit une clé pour chaque élément renvoyé par " +"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est " +"l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " +"lui-même)." #: ../Doc/howto/functional.rst:953 msgid "" @@ -1029,6 +1510,9 @@ msgid "" "underlying iterable that have the same key value, and returns a stream of 2-" "tuples containing a key value and an iterator for the elements with that key." msgstr "" +":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " +"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " +"clé et un itérateur produisant la liste des éléments pour cette clé." #: ../Doc/howto/functional.rst:981 msgid "" @@ -1037,10 +1521,17 @@ msgid "" "also use the underlying iterable, so you have to consume the results of " "iterator-1 before requesting iterator-2 and its corresponding key." msgstr "" +":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " +"sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " +"itérateurs générés utilisent également l'itérable sous-jacent. Vous devez " +"donc consommer l'intégralité des résultats du premier itérateur renvoyé " +"(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième " +"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " +"est associé." #: ../Doc/howto/functional.rst:988 msgid "The functools module" -msgstr "" +msgstr "Le module *functools*" #: ../Doc/howto/functional.rst:990 msgid "" @@ -1049,6 +1540,10 @@ msgid "" "and returns a new function. The most useful tool in this module is the :" "func:`functools.partial` function." msgstr "" +"Le module :mod:`functools` introduit par Python 2.5 contient diverses " +"fonctions d'ordre supérieur. Une **fonction d'ordre supérieur** prend une ou " +"plusieurs fonctions en entrée et renvoie une fonction. L'outil le plus " +"important de ce module est la fonction :func:`functools.partial`." #: ../Doc/howto/functional.rst:995 msgid "" @@ -1059,6 +1554,12 @@ msgid "" "filling in a value for one of ``f()``'s parameters. This is called " "\"partial function application\"." msgstr "" +"En programmant dans un style fonctionnel, il est courant de vouloir " +"construire des variantes de fonctions existantes dont certains paramètres " +"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, " +"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, " +"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " +"``g()`` est une appelée « application partielle » de ``f()``." #: ../Doc/howto/functional.rst:1001 msgid "" @@ -1067,6 +1568,9 @@ msgid "" "resulting object is callable, so you can just call it to invoke ``function`` " "with the filled-in arguments." msgstr "" +"Le constructeur de :func:`~functools.partial` prend en argument ``(fonction, " +"arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " +"ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." #: ../Doc/howto/functional.rst:1006 msgid "Here's a small but realistic example::" @@ -1086,6 +1590,17 @@ msgid "" "If the initial value is supplied, it's used as a starting point and " "``func(initial_value, A)`` is the first calculation. ::" msgstr "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"applique une opération cumulative à tous les éléments d'un itérable et ne " +"peut donc être appliquée à des itérables infinis. *func* doit être une " +"fonction qui prend deux éléments et renvoie une seule valeur. :func:" +"`functools.reduce` prend les deux premiers éléments A et B renvoyés par " +"l'itérateur et calcule ``func(A, B)``. Elle extrait ensuite le troisième " +"élément C et calcule ``func(func(A, B), C)`` puis combine ce résultat avec " +"le quatrième élément renvoyé etc. jusqu'à épuisement de l'itérable. Une " +"exception :exc:`TypeError` est levée si l'itérable ne renvoie aucune valeur. " +"La valeur initiale *initial_value*, si spécifiée, est utilisée comme point " +"de départ et le premier calcul est alors ``func(inital_value, A)``. ::" #: ../Doc/howto/functional.rst:1042 msgid "" @@ -1093,12 +1608,19 @@ msgid "" "all the elements of the iterable. This case is so common that there's a " "special built-in called :func:`sum` to compute it:" msgstr "" +"Si vous combinez :func:`operator.add` avec :func:`functools.reduce`, vous " +"allez additionner tous les éléments de l'itérable. Ce cas est suffisamment " +"courant pour qu'il existe une fonction native :func:`sum` qui lui est " +"équivalent :" #: ../Doc/howto/functional.rst:1054 msgid "" "For many uses of :func:`functools.reduce`, though, it can be clearer to just " "write the obvious :keyword:`for` loop::" msgstr "" +"Cependant, il peut être plus lisible dans de nombreuses situations " +"impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" +"`for` ::" #: ../Doc/howto/functional.rst:1066 msgid "" @@ -1107,10 +1629,15 @@ msgid "" "of returning only the final result, :func:`accumulate` returns an iterator " "that also yields each partial result::" msgstr "" +":func:`itertools.accumulate(iterable, func=operator.add) ` est une fonction similaire qui réalise le même calcul mais, " +"plutôt que de renvoyer seulement le résultat final, :func:`accumulate` " +"renvoie un itérateur qui génère la séquence de tous les résultats " +"intermédiaires ::" #: ../Doc/howto/functional.rst:1079 msgid "The operator module" -msgstr "" +msgstr "Le module *operator*" #: ../Doc/howto/functional.rst:1081 msgid "" @@ -1119,53 +1646,68 @@ msgid "" "useful in functional-style code because they save you from writing trivial " "functions that perform a single operation." msgstr "" +"Le module :mod:`operator` mentionné précédemment contient un ensemble de " +"fonctions reproduisant les opérateurs de Python. Ces fonctions sont souvent " +"utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " +"écrire des fonctions triviales qui ne réalisent qu'une seule opération." #: ../Doc/howto/functional.rst:1086 msgid "Some of the functions in this module are:" -msgstr "" +msgstr "Voici quelques fonctions de ce module :" #: ../Doc/howto/functional.rst:1088 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" +"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``, ..." #: ../Doc/howto/functional.rst:1089 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "" +msgstr "Les opérations logiques : ``not_()``, ``truth()``." #: ../Doc/howto/functional.rst:1090 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "" +msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." #: ../Doc/howto/functional.rst:1091 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" +"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()``." #: ../Doc/howto/functional.rst:1092 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "" +msgstr "L'identification des objets : ``is_()``, ``is_not()``." #: ../Doc/howto/functional.rst:1094 msgid "Consult the operator module's documentation for a complete list." msgstr "" +"Veuillez vous référer à la documentation du module *operator* pour une liste " +"complète." #: ../Doc/howto/functional.rst:1098 msgid "Small functions and the lambda expression" -msgstr "" +msgstr "Expressions lambda et fonctions courtes" #: ../Doc/howto/functional.rst:1100 msgid "" "When writing functional-style programs, you'll often need little functions " "that act as predicates or that combine elements in some way." msgstr "" +"Dans un style de programmation fonctionnel, il est courant d'avoir besoin de " +"petites fonctions utilisées comme prédicats ou pour combiner des éléments " +"d'une façon ou d'une autre." #: ../Doc/howto/functional.rst:1103 msgid "" "If there's a Python built-in or a module function that's suitable, you don't " "need to define a new function at all::" msgstr "" +"S'il existe une fonction native Python ou une fonction d'un module qui " +"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" #: ../Doc/howto/functional.rst:1109 msgid "" @@ -1180,12 +1722,16 @@ msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" msgstr "" +"Une autre façon de faire est de simplement utiliser l'instruction ``def`` " +"afin de définir une fonction de la manière habituelle ::" #: ../Doc/howto/functional.rst:1127 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." msgstr "" +"La méthode à préférer est une question de style, en général l'auteur évite " +"l'utilisation de ``lambda``." #: ../Doc/howto/functional.rst:1130 msgid "" @@ -1196,6 +1742,13 @@ msgid "" "``lambda`` statement, you'll end up with an overly complicated expression " "that's hard to read. Quick, what's the following code doing? ::" msgstr "" +"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. " +"Le résultat doit pouvoir se calculer en une seule expression, ce qui " +"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " +"else`` à plusieurs branches ou des structures ``try ... except``. Si vous " +"essayez de trop en faire dans une expression ``lambda``, vous finirez avec " +"une expression illisible. Par exemple, pouvez-vous dire du premier coup " +"d’œil ce que fait le code ci-dessous ? ::" #: ../Doc/howto/functional.rst:1140 msgid "" @@ -1203,58 +1756,74 @@ msgid "" "figure out what's going on. Using a short nested ``def`` statements makes " "things a little bit better::" msgstr "" +"Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " +"de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " +"améliore la situation ::" #: ../Doc/howto/functional.rst:1150 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" +"Toutefois l'idéal aurait été de simplement se contenter d'une boucle " +"``for`` ::" #: ../Doc/howto/functional.rst:1156 msgid "Or the :func:`sum` built-in and a generator expression::" msgstr "" +"ou de la fonction native :func:`sum` et d'une expression génératrice ::" #: ../Doc/howto/functional.rst:1160 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." msgstr "" +"Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" +"`functools.reduce`." #: ../Doc/howto/functional.rst:1162 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" msgstr "" +"Frederik Lundh a suggéré quelques règles pour le réusinage de code " +"impliquant les expressions ``lambda`` :" #: ../Doc/howto/functional.rst:1165 msgid "Write a lambda function." -msgstr "" +msgstr "Écrire une fonction lambda." #: ../Doc/howto/functional.rst:1166 msgid "Write a comment explaining what the heck that lambda does." msgstr "" +"Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." #: ../Doc/howto/functional.rst:1167 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." msgstr "" +"Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " +"synthétise son essence." #: ../Doc/howto/functional.rst:1169 msgid "Convert the lambda to a def statement, using that name." msgstr "" +"Réécrire la fonction lambda en une définition *def* en utilisant ce nom." #: ../Doc/howto/functional.rst:1170 msgid "Remove the comment." -msgstr "" +msgstr "Effacer le commentaire." #: ../Doc/howto/functional.rst:1172 msgid "" "I really like these rules, but you're free to disagree about whether this " "lambda-free style is better." msgstr "" +"J'aime beaucoup ces règles mais vous êtes libre de ne pas être d'accord et " +"de ne pas préférer ce style sans lambda." #: ../Doc/howto/functional.rst:1177 msgid "Revision History and Acknowledgements" -msgstr "" +msgstr "Historique des modifications et remerciements" #: ../Doc/howto/functional.rst:1179 msgid "" @@ -1263,31 +1832,43 @@ msgid "" "Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " "Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" +"L'auteur souhaiterait remercier les personnes suivantes pour leurs " +"suggestions, leurs corrections et leur aide sur les premières versions de " +"cet article : Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " +"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " +"Winton." #: ../Doc/howto/functional.rst:1184 msgid "Version 0.1: posted June 30 2006." -msgstr "" +msgstr "Version 0.1 : publiée le 30 juin 2006." #: ../Doc/howto/functional.rst:1186 msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "" +msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." #: ../Doc/howto/functional.rst:1188 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." msgstr "" +"Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " +"*listcomp*. Correction orthographique." #: ../Doc/howto/functional.rst:1191 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" +"Version 0.21 : ajout de plusieurs références suggérées sur la liste de " +"diffusion *tutor*." #: ../Doc/howto/functional.rst:1193 msgid "" "Version 0.30: Adds a section on the ``functional`` module written by Collin " "Winter; adds short section on the operator module; a few other edits." msgstr "" +"Version 0.30 : ajout d'une section sur le module ``functional`` écrite par " +"Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " +"quelques autres modifications." #: ../Doc/howto/functional.rst:1198 msgid "References" @@ -1295,7 +1876,7 @@ msgstr "Références" #: ../Doc/howto/functional.rst:1201 msgid "General" -msgstr "" +msgstr "Général" #: ../Doc/howto/functional.rst:1203 msgid "" @@ -1307,6 +1888,13 @@ msgid "" "approaches described in these chapters are applicable to functional-style " "Python code." msgstr "" +"**Structure and Interpretation of Computer Programs** par Harold Abelson et " +"Gerald Jay Sussman avec Julie Sussman. Disponible à l'adresse https://" +"mitpress.mit.edu/sicp/. Ce livre est un classique en informatique. Les " +"chapitres 2 et 3 présentent l'utilisation des séquences et des flux pour " +"organiser le flot de données dans un programme. Les exemples du livre " +"utilisent le langage Scheme mais la plupart des approches décrites dans ces " +"chapitres s'appliquent au style fonctionnel de Python." #: ../Doc/howto/functional.rst:1211 msgid "" @@ -1314,25 +1902,33 @@ msgid "" "functional programming that uses Java examples and has a lengthy historical " "introduction." msgstr "" +"http://www.defmacro.org/ramblings/fp.html : une présentation générale à la " +"programmation fonctionnelle avec une longue introduction historique et des " +"exemples en Java." #: ../Doc/howto/functional.rst:1214 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." msgstr "" +"https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " +"Wikipédia qui décrit la programmation fonctionnelle." #: ../Doc/howto/functional.rst:1217 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "" +"https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." #: ../Doc/howto/functional.rst:1219 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" +"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " +"curryfication (création d'applications partielles)." #: ../Doc/howto/functional.rst:1222 msgid "Python-specific" -msgstr "" +msgstr "Spécifique à Python" #: ../Doc/howto/functional.rst:1224 msgid "" @@ -1341,6 +1937,10 @@ msgid "" "text processing, in the section titled \"Utilizing Higher-Order Functions in " "Text Processing\"." msgstr "" +"http://gnosis.cx/TPiP/ : le premier chapitre du livre de David Mertz :title-" +"reference:`Text Processing in Python` présente l'utilisation de la " +"programmation fonctionnelle pour le traitement de texte dans la section « " +"Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." #: ../Doc/howto/functional.rst:1229 msgid "" @@ -1350,29 +1950,37 @@ msgid "" "developerworks/linux/library/l-prog2/index.html>`__, and `part 3 `__," msgstr "" +"Mertz a également écrit une série de 3 articles (en anglais) sur la " +"programmation fonctionnelle pour le site de IBM *DeveloperWorks*, voir la " +"`partie 1 `__, la `partie 2 `__ et la `partie 3 `__." #: ../Doc/howto/functional.rst:1237 msgid "Python documentation" -msgstr "" +msgstr "Documentation Python" #: ../Doc/howto/functional.rst:1239 msgid "Documentation for the :mod:`itertools` module." -msgstr "" +msgstr "Documentation du module :mod:`itertools`." #: ../Doc/howto/functional.rst:1241 msgid "Documentation for the :mod:`functools` module." -msgstr "" +msgstr "Documentation du module :mod:`functools`." #: ../Doc/howto/functional.rst:1243 msgid "Documentation for the :mod:`operator` module." -msgstr "" +msgstr "Documentation du module :mod:`operator`." #: ../Doc/howto/functional.rst:1245 msgid ":pep:`289`: \"Generator Expressions\"" -msgstr "" +msgstr ":pep:`289`: *\"Generator Expressions\"*" #: ../Doc/howto/functional.rst:1247 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." msgstr "" +":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles " +"fonctionnalités des générateurs en Python 2.5." diff --git a/howto/logging.po b/howto/logging.po index 13cce2803..6fa1c5397 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -1110,6 +1110,8 @@ msgid "" "Creating a logging config file and reading it using the :func:`fileConfig` " "function." msgstr "" +"Créer un fichier de configuration de `logging` et le lire en employant la " +"fonction :func:`fileConfig`." #: ../Doc/howto/logging.rst:584 msgid "" @@ -1371,6 +1373,15 @@ msgid "" "library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', " "etc. then the code::" msgstr "" +"Un gestionnaire *ne-fait-rien* est inclus dans le paquet de " +"journalisation : :class:`~logging.NullHandler` (depuis Python 3.1). Une " +"instance de ce gestionnaire peut être ajoutée à l'enregistreur de niveau " +"supérieur de l'espace de nommage de journalisation utilisé par la " +"bibliothèque (*si* vous souhaitez empêcher la copie de la journalisation de " +"votre bibliothèque dans ``sys.stderr`` en l'absence de configuration de " +"journalisation). Si toute la journalisation par une bibliothèque *foo* est " +"effectuée en utilisant des enregistreurs avec des noms correspondant à *foo." +"x*, *foo.x.y*, etc., alors le code ::" #: ../Doc/howto/logging.rst:822 msgid "" @@ -1612,6 +1623,9 @@ msgid "" ":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " "files, rotating the log file at certain timed intervals." msgstr "" +"Les instances de :class:`~handlers.TimedRotatingFileHandler` envoient des " +"messages aux fichiers de disque, en permutant le fichier journal à " +"intervalles réguliers." #: ../Doc/howto/logging.rst:931 msgid "" diff --git a/howto/pyporting.po b/howto/pyporting.po index 6035de2b4..d9f0d4a6c 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "" +msgstr "Portage de code Python 2 vers Python 3" #: ../Doc/howto/pyporting.rst:0 msgid "author" @@ -27,7 +27,7 @@ msgstr "auteur" #: ../Doc/howto/pyporting.rst:7 msgid "Brett Cannon" -msgstr "" +msgstr "Brett Cannon" #: ../Doc/howto/pyporting.rst:None msgid "Abstract" @@ -40,12 +40,18 @@ msgid "" "Python. This guide is meant to help you figure out how best to support both " "Python 2 & 3 simultaneously." msgstr "" +"Python 3 étant le futur de Python tandis que Python 2 est encore activement " +"utilisé, il est préférable de faire en sorte que votre projet soit " +"disponible pour les deux versions majeures de Python. Ce guide est destiné à " +"vous aider à comprendre comment gérer simultanément Python 2 & 3." #: ../Doc/howto/pyporting.rst:16 msgid "" "If you are looking to port an extension module instead of pure Python code, " "please see :ref:`cporting-howto`." msgstr "" +"Si vous cherchez à porter un module d'extension plutôt que du pur Python, " +"veuillez consulter :ref:`cporting-howto`." #: ../Doc/howto/pyporting.rst:19 msgid "" @@ -53,54 +59,70 @@ msgid "" "came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " "Cannon's `Why Python 3 exists`_." msgstr "" +"Si vous souhaitez lire l'avis d'un développeur principal de Python sur ce " +"qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & A`_ " +"de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon." #: ../Doc/howto/pyporting.rst:23 msgid "" "For help with porting, you can email the python-porting_ mailing list with " "questions." msgstr "" +"Vous pouvez solliciter par courriel l'aide de la liste de diffusion python-" +"porting_ pour vos questions liées au portage." #: ../Doc/howto/pyporting.rst:27 msgid "The Short Explanation" -msgstr "" +msgstr "La version courte" #: ../Doc/howto/pyporting.rst:29 msgid "" "To make your project be single-source Python 2/3 compatible, the basic steps " "are:" msgstr "" +"Afin de rendre votre projet compatible Python 2/3 avec le même code source, " +"les étapes de base sont :" #: ../Doc/howto/pyporting.rst:32 msgid "Only worry about supporting Python 2.7" -msgstr "" +msgstr "Ne se préoccuper que du support de Python 2.7" #: ../Doc/howto/pyporting.rst:33 msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``pip install " "coverage``)" msgstr "" +"S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; ``pip " +"install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116 msgid "Learn the differences between Python 2 & 3" -msgstr "" +msgstr "Apprendre les différences entre Python 2 et 3" #: ../Doc/howto/pyporting.rst:36 msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install " "future``)" msgstr "" +"Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par " +"exemple ``pip install future``)" #: ../Doc/howto/pyporting.rst:37 msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``pip install pylint``)" msgstr "" +"Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre prise " +"en charge de Python 3 (``pip install pylint``)" #: ../Doc/howto/pyporting.rst:39 msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" +"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances " +"que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip " +"install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -108,6 +130,10 @@ msgid "" "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " "help test against multiple versions of Python; ``pip install tox``)" msgstr "" +"Une fois que vos dépendances ne sont plus un obstacle, utiliser " +"l'intégration continue pour s'assurer que votre code demeure compatible " +"Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec " +"plusieurs versions de Python; ``pip install tox``)" #: ../Doc/howto/pyporting.rst:44 msgid "" @@ -115,6 +141,9 @@ msgid "" "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "Python 2 & Python 3)." msgstr "" +"Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer " +"que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par " +"exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)." #: ../Doc/howto/pyporting.rst:50 msgid "Details" @@ -128,6 +157,12 @@ msgid "" "3. Most changes required to support Python 3 lead to cleaner code using " "newer practices even in Python 2 code." msgstr "" +"Un point clé du support simultané de Python 2 et 3 est qu'il vous est " +"possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont " +"pas encore compatibles Python 3, vous pouvez moderniser votre code **dès " +"maintenant** pour gérer Python 3. La plupart des modifications nécessaires à " +"la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe " +"plus récente, même dans du code Python 2." #: ../Doc/howto/pyporting.rst:58 msgid "" @@ -137,16 +172,25 @@ msgid "" "lower-level work is now mostly done for you and thus can at least benefit " "from the automated changes immediately." msgstr "" +"Un autre point important est que la modernisation de votre code Python 2 " +"pour le rendre compatible Python 3 est pratiquement automatique. Bien qu'il " +"soit possible d'avoir à effectuer des changements d'API compte-tenu de la " +"clarification de la gestion des données textuelles et binaires dans Python " +"3, le travail de bas niveau est en grande partie fait pour vous et vous " +"pouvez ainsi bénéficiez de ces modifications automatiques immédiatement." #: ../Doc/howto/pyporting.rst:64 msgid "" "Keep those key points in mind while you read on about the details of porting " "your code to support Python 2 & 3 simultaneously." msgstr "" +"Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous " +"concernant le portage de votre code vers une compatibilité simultanée Python " +"2 et 3." #: ../Doc/howto/pyporting.rst:69 msgid "Drop support for Python 2.6 and older" -msgstr "" +msgstr "Abandon de la compatibilité Python 2.6 et antérieures" #: ../Doc/howto/pyporting.rst:71 msgid "" @@ -156,6 +200,12 @@ msgid "" "simultaneously (``pip install six``). Do realize, though, that nearly all " "the projects listed in this HOWTO will not be available to you." msgstr "" +"Bien qu'il soit possible de rendre Python 2.5 compatible avec Python 3, il " +"est **beaucoup** plus simple de n'avoir qu'à travailler avec Python 2.7. Si " +"abandonner Python 2.5 n'est pas une option, alors le projet six_ peut vous " +"aider à gérer simultanément Python 2.5 et 3 (``pip install six``). " +"Néanmoins, soyez conscient que la quasi-totalité des projets listés dans ce " +"guide pratique ne seront pas applicables à votre situation." #: ../Doc/howto/pyporting.rst:77 msgid "" @@ -165,6 +215,12 @@ msgid "" "or have to import a function instead of using a built-in one, but otherwise " "the overall transformation should not feel foreign to you." msgstr "" +"Si vous pouvez ignorer Python 2.5 et antérieur, les changements nécessaires " +"à appliquer à votre code devraient encore ressembler à vos yeux à du code " +"Python idiomatique. Dans le pire cas, vous devrez utiliser une fonction " +"plutôt qu'une méthode dans certains cas, ou bien vous devrez importer une " +"fonction plutôt qu'utiliser une fonction native, mais le reste du temps le " +"code transformé devrait vous rester familier." #: ../Doc/howto/pyporting.rst:83 msgid "" @@ -176,11 +232,22 @@ msgid "" "simply be easier for you if you only support the versions of Python that you " "have to support." msgstr "" +"Mais nous vous conseillons de viser seulement un support de Python 2.7. " +"Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus " +"aucun correctif. Cela signifie que **vous** devrez trouver des solutions de " +"contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe " +"en outre des outils mentionnés dans ce guide pratique qui ne supportent pas " +"Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil " +"du temps. Il est simplement plus facile pour vous de n'assurer une " +"compatibilité qu'avec les versions de Python que vous avez l'obligation de " +"gérer." #: ../Doc/howto/pyporting.rst:92 msgid "" "Make sure you specify the proper version support in your ``setup.py`` file" msgstr "" +"Assurez vous de spécifier la bonne version supportée dans le fichier ``setup." +"py``" #: ../Doc/howto/pyporting.rst:94 msgid "" @@ -191,10 +258,16 @@ msgid "" "minor version of Python that you do support, e.g. ``Programming Language :: " "Python :: 2.7``." msgstr "" +"Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ " +"spécifiant les versions de Python avec lesquelles vous êtes compatible. " +"Comme votre projet ne supporte pas encore Python 3, vous devriez au moins " +"spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous " +"devriez indiquer chaque version majeure/mineure de Python que vous gérez, " +"par exemple ``Programming Language :: Python :: 2.7``." #: ../Doc/howto/pyporting.rst:103 msgid "Have good test coverage" -msgstr "" +msgstr "Obtenir une bonne couverture de code" #: ../Doc/howto/pyporting.rst:105 msgid "" @@ -207,6 +280,16 @@ msgid "" "get better than 90% coverage). If you don't already have a tool to measure " "test coverage then coverage.py_ is recommended." msgstr "" +"Une fois que votre code est compatible avec la plus ancienne version de " +"Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test " +"a une couverture suffisante. Une bonne règle empirique consiste à avoir " +"suffisamment confiance en la suite de test pour qu'une erreur apparaissant " +"après la réécriture du code par les outils automatiques résulte de bogues de " +"ces derniers et non de votre code. Si vous souhaitez une valeur cible, " +"essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable " +"si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne " +"disposez pas encore d'un outil pour mesurer la couverture de code, coverage." +"py_ est recommandé." #: ../Doc/howto/pyporting.rst:118 msgid "" @@ -218,10 +301,18 @@ msgid "" "and the `Porting to Python 3`_ book (which is free online). There is also a " "handy `cheat sheet`_ from the Python-Future project." msgstr "" +"Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " +"portage vers Python 3 ! Mais afin de comprendre comment votre code va " +"changer et à quoi s'intéresser spécifiquement pendant que vous codez, vous " +"aurez sûrement envie de découvrir quels sont les changements introduits par " +"Python 3 par rapport à Python 2. Pour atteindre cet objectif, les deux " +"meilleurs moyens sont de lire le document `\"What's New\"`_ de chaque " +"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne). " +"Il y a également une `cheat sheet`_ très pratique du projet Python-Future." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" -msgstr "" +msgstr "Mettre à jour votre code" #: ../Doc/howto/pyporting.rst:130 msgid "" @@ -237,6 +328,20 @@ msgid "" "future, it might be best to consider Futurize to begin adjusting to any new " "practices that Python 3 introduces which you are not accustomed to yet." msgstr "" +"Une fois que vous pensez en savoir suffisamment sur les différences entre " +"Python 3 et Python 2, il est temps de mettre à jour votre code ! Vous avez " +"le choix entre deux outils pour porter votre code automatiquement : " +"Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 " +"que vous souhaitez introduire dans votre code. Futurize_ s'efforce " +"d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple " +"en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la " +"sémantique soit identique entre les deux versions majeures de Python. En " +"revanche, Modernize_ est plus conservateur et vise un sous-ensemble " +"d'instructions Python 2/3, en s'appuyant directement sur six_ pour la " +"compatibilité. Python 3 étant le futur de Python, il pourrait être " +"préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles " +"pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore " +"habitué." #: ../Doc/howto/pyporting.rst:142 msgid "" @@ -249,6 +354,16 @@ msgid "" "transform your application code knowing that any tests which fail is a " "translation failure." msgstr "" +"Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à " +"jour votre code afin qu'il puisse être exécuté par Python 3 tout en " +"maintenant sa compatibilité avec la version de Python 2 dont vous êtes " +"parti. En fonction du niveau de prudence que vous visez, vous pouvez " +"exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement " +"la différence afin de vous assurer que la transformation est exacte. Après " +"avoir transformé votre suite de test et vérifié que tous les tests " +"s'exécutent comme attendu, vous pouvez transformer le code de votre " +"application avec l'assurance que chaque test qui échoue correspond à un " +"échec de traduction." #: ../Doc/howto/pyporting.rst:150 msgid "" @@ -263,6 +378,18 @@ msgid "" "watch out for which can be considered large issues that may be hard to debug " "if not watched for." msgstr "" +"Malheureusement les outils ne peuvent pas automatiser tous les changements " +"requis pour permettre à votre code de s'exécuter sous Python 3 et il y a " +"donc quelques points sur lesquels vous devrez travailler manuellement afin " +"d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent " +"varier en fonction de l'outil utilisé). Lisez la documentation de l'outil " +"que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui " +"peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non) " +"corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le " +"remplacement ``io.open()`` plutôt que la fonction native ``open()`` est " +"inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques " +"points à surveiller qui peuvent réellement être considérés comme des " +"problèmes difficiles à déboguer si vous n'y prêtez pas attention." #: ../Doc/howto/pyporting.rst:162 msgid "Division" @@ -278,16 +405,27 @@ msgid "" "Q`` flag. If you have not been doing this then you will need to go through " "your code and do two things:" msgstr "" +"Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des " +"valeurs ``int`` renvoient un ``float``. Ce changement était en réalité " +"planifié depuis Python 2.2, publié en 2002. Depuis cette date, les " +"utilisateurs ont été encouragés à ajouter ``from __future__ import " +"division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à " +"exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi cette " +"recommandation, vous devrez manuellement modifier votre code et effectuer " +"deux changements :" #: ../Doc/howto/pyporting.rst:172 msgid "Add ``from __future__ import division`` to your files" -msgstr "" +msgstr "Ajouter ``from __future__ import division`` à vos fichiers" #: ../Doc/howto/pyporting.rst:173 msgid "" "Update any division operator as necessary to either use ``//`` to use floor " "division or continue using ``/`` and expect a float" msgstr "" +"Remplacer tous les opérateurs de division par ``//`` pour la division " +"entière, le cas échant, ou utiliser ``/`` et vous attendre à un résultat " +"flottant" #: ../Doc/howto/pyporting.rst:176 msgid "" @@ -296,10 +434,16 @@ msgid "" "then your code would begin to fail (e.g. a user-defined class that uses ``/" "`` to signify some operation but not ``//`` for the same thing or at all)." msgstr "" +"La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " +"automatiquement est que si un objet définit une méthode ``__truediv__`` mais " +"pas de méthode ``__floordiv__``, alors votre code pourrait produire une " +"erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` " +"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du " +"tout la même signification, voire n'est pas utilisé du tout)." #: ../Doc/howto/pyporting.rst:183 msgid "Text versus binary data" -msgstr "" +msgstr "Texte et données binaires" #: ../Doc/howto/pyporting.rst:185 msgid "" @@ -312,6 +456,16 @@ msgid "" "supporting multiple languages as APIs wouldn't bother explicitly supporting " "``unicode`` when they claimed text data support." msgstr "" +"Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et " +"pour des données binaires. Malheureusement cet amalgame entre deux concepts " +"différents peut conduire à du code fragile pouvant parfois fonctionner pour " +"les deux types de données et parfois non. Cela a également conduit à des API " +"confuses si les auteurs ne déclaraient pas explicitement que quelque chose " +"qui acceptait ``str`` était compatible avec du texte ou des données binaires " +"et pas un seul des deux types. Cela a compliqué la situation pour les " +"personnes devant gérer plusieurs langages avec des API qui ne se " +"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être " +"compatibles avec des données au format texte." #: ../Doc/howto/pyporting.rst:194 msgid "" @@ -324,6 +478,15 @@ msgid "" "it does mean you might have to now care about when you are using text " "compared to binary data, which is why this cannot be entirely automated." msgstr "" +"Afin de rendre la distinction entre texte et données binaires claire et " +"prononcée, Python 3 a suivi la voie pavée par la plupart des langages créés " +"à l'ère d'Internet et a séparé les types texte et données binaires de telle " +"sorte qu'il ne soit plus possible de les confondre (Python est antérieur à " +"la démocratisation de l'accès à Internet). Cette séparation ne pose pas de " +"problème pour du code ne gérant soit que du texte, soit que des données " +"binaires. Cependant un code source devant gérer les deux doit désormais se " +"préoccuper du type des données manipulées, ce qui explique que ce processus " +"ne peut pas être entièrement automatisé." #: ../Doc/howto/pyporting.rst:203 msgid "" @@ -344,38 +507,57 @@ msgid "" "Python 3 doesn't have the method). Do note that as of Python 3.5 the " "``__mod__`` method was added to the bytes type." msgstr "" +"Pour commencer, vous devrez choisir quelles API travaillent sur du texte et " +"lesquelles travaillent avec des données binaires (il est **fortement** " +"recommandé de ne pas concevoir d'API qui gèrent les deux types compte-tenu " +"de la difficulté supplémentaire que cela induit). Dans Python 2, cela " +"signifie s'assurer que les API recevant du texte en entrée peuvent gérer " +"``unicode`` et celles qui reçoivent des données binaires fonctionnent avec " +"le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans " +"Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général, " +"le principal problème consiste à inventorier quelles méthodes existent et " +"opèrent sur quel type dans Python & 3 simultanément (pour le texte, il " +"s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le " +"binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans " +"Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque " +"type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` " +"peut être utilisée sur des données binaires équivalentes en Python 2 et 3, " +"mais ne peut pas être utilisée de la même façon sur le type texte en Python " +"2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). " +"Notez que depuis Python 3.5, la méthode ``__mod__`` a été ajoutée au type " +"*bytes*." #: ../Doc/howto/pyporting.rst:220 msgid "**Text data**" -msgstr "" +msgstr "**Format texte**" #: ../Doc/howto/pyporting.rst:220 msgid "**Binary data**" -msgstr "" +msgstr "**Format binaire**" #: ../Doc/howto/pyporting.rst:222 msgid "\\" -msgstr "" +msgstr "\\" #: ../Doc/howto/pyporting.rst:222 msgid "decode" -msgstr "" +msgstr "decode" #: ../Doc/howto/pyporting.rst:224 msgid "encode" -msgstr "" +msgstr "encode" #: ../Doc/howto/pyporting.rst:226 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/howto/pyporting.rst:228 msgid "isdecimal" -msgstr "" +msgstr "isdecimal" #: ../Doc/howto/pyporting.rst:230 msgid "isnumeric" -msgstr "" +msgstr "isnumeric" #: ../Doc/howto/pyporting.rst:233 msgid "" @@ -386,6 +568,14 @@ msgid "" "possible. This allows your code to work with only text internally and thus " "eliminates having to keep track of what type of data you are working with." msgstr "" +"Vous pouvez rendre le problème plus simple à gérer en réalisant les " +"opérations d'encodage et de décodage entre données binaires et texte aux " +"extrémités de votre code. Cela signifie que lorsque vous recevez du texte " +"dans un format binaire, vous devez immédiatement le décoder. À l'inverse si " +"votre code doit transmettre du texte sous forme binaire, encodez-le le plus " +"tard possible. Cela vous permet de ne manipuler que du texte à l'intérieur " +"de votre code et permet de ne pas se préoccuper du type des données sur " +"lesquelles vous travaillez." #: ../Doc/howto/pyporting.rst:240 msgid "" @@ -396,6 +586,14 @@ msgid "" "unspecified literals to be Unicode, but usage has shown it isn't as " "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" msgstr "" +"Le point suivant est de s'assurer que vous savez quelles chaînes de " +"caractères littérales de votre code correspondent à du texte ou à du " +"binaire. Vous devez préfixer par ``b`` tous les littéraux qui représentent " +"des données binaires et par ``u`` les littéraux qui représentent du texte " +"(il existe une importation du module :mod:`__future__` permettant de forcer " +"l'encodage de toutes les chaînes de caractères littérales non spécifiées en " +"Unicode, mais cette pratique s'est avérée moins efficace que l'ajout " +"explicite des préfixe ``b`` et ``u``)." #: ../Doc/howto/pyporting.rst:247 msgid "" @@ -414,6 +612,22 @@ msgid "" "`codecs.open` as that's only necessary for keeping compatibility with Python " "2.5." msgstr "" +"Une conséquence de cette dichotomie est que vous devez être prudents lors de " +"l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a " +"des chances pour que vous ne vous soyez jamais préoccupé de spécifier le " +"mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` " +"pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte " +"sont distincts et mutuellement incompatibles ; se référer au module :mod:" +"`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous ouvrez " +"un fichier si vous y accéderez en mode binaire (ce qui permet de lire et " +"écrire des données binaires) ou en mode texte (ce qui permet de lire et " +"écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir " +"des fichiers plutôt que la fonction native :func:`open` étant donné que le " +"module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la " +"fonction :func:`open` (en Python 3, il s'agit en réalité de :func:`io." +"open`). Ne cherchez pas à appliquer l'ancienne pratique consistant à " +"utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une " +"compatibilité avec Python 2.5." #: ../Doc/howto/pyporting.rst:261 msgid "" @@ -427,6 +641,16 @@ msgid "" "back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "representation of the bytes object: ``str(b'3') == \"b'3'\"``." msgstr "" +"Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique " +"différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à " +"``bytes`` sous Python 2 produit une représentation de cet entier en chaîne " +"de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument " +"entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier " +"spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. " +"La même prudence est nécessaire lorsque vous passez un objet *bytes* à " +"``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : " +"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en " +"chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``." #: ../Doc/howto/pyporting.rst:271 msgid "" @@ -439,14 +663,25 @@ msgid "" "``six.indexbytes()`` which will return an integer like in Python 3: ``six." "indexbytes(b'123', 1)``." msgstr "" +"Enfin, l'indiçage des données binaires exige une manipulation prudente (bien " +"que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention " +"particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 " +"``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une " +"collection de nombres en binaire, Python 3 renvoie la valeur entière de " +"l'octet indicé. Mais en Python 2, étant donné que ``bytes == str``, " +"l'indiçage renvoie une tranche de longueur 1 de *bytes*. Le projet six_ " +"dispose d'une fonction appelée ``six.indexbytes()`` qui renvoie un entier " +"comme en Python 3 : ``six.indexbytes(b'123', 1)``." #: ../Doc/howto/pyporting.rst:280 msgid "To summarize:" -msgstr "" +msgstr "Pour résumer :" #: ../Doc/howto/pyporting.rst:282 msgid "Decide which of your APIs take text and which take binary data" msgstr "" +"Décidez lesquelles de vos API travaillent sur du texte et lesquelles " +"travaillent sur des données binaires" #: ../Doc/howto/pyporting.rst:283 msgid "" @@ -454,32 +689,43 @@ msgid "" "and code for binary data works with ``bytes`` in Python 2 (see the table " "above for what methods you cannot use for each type)" msgstr "" +"Assurez vous que votre code travaillant sur du texte fonctionne aussi avec " +"le type ``unicode`` et que le code travaillant sur du binaire fonctionne " +"avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus pour la liste " +"des méthodes utilisables par chaque type)" #: ../Doc/howto/pyporting.rst:286 msgid "" "Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " "prefix" msgstr "" +"Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de " +"caractères littérales par ``u``" #: ../Doc/howto/pyporting.rst:288 msgid "" "Decode binary data to text as soon as possible, encode text as binary data " "as late as possible" msgstr "" +"Décodez les données binaires en texte dès que possible, encodez votre texte " +"au format binaire le plus tard possible" #: ../Doc/howto/pyporting.rst:290 msgid "" "Open files using :func:`io.open` and make sure to specify the ``b`` mode " "when appropriate" msgstr "" +"Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de " +"spécifier le mode ``b`` le cas échéant" #: ../Doc/howto/pyporting.rst:292 msgid "Be careful when indexing into binary data" -msgstr "" +msgstr "Utilisez avec prudence l'indiçage sur des données binaires" #: ../Doc/howto/pyporting.rst:296 msgid "Use feature detection instead of version detection" msgstr "" +"Utilisez la détection de fonctionnalités plutôt que la détection de version" #: ../Doc/howto/pyporting.rst:298 msgid "" @@ -490,6 +736,13 @@ msgid "" "version check be against Python 2 and not Python 3. To help explain this, " "let's look at an example." msgstr "" +"Vous rencontrerez inévitablement du code devant décider quoi faire en " +"fonction de la version de Python qui s'exécute. La meilleure façon de gérer " +"ce cas est de détecter si les fonctionnalités dont vous avez besoin sont " +"gérées par la version de Python sous laquelle le code s'exécute. Si pour " +"certaines raisons cela ne fonctionne pas, alors vous devez tester si votre " +"version est Python 2 et non Python 3. Afin de clarifier cette pratique, " +"voici un exemple." #: ../Doc/howto/pyporting.rst:305 msgid "" @@ -498,6 +751,11 @@ msgid "" "Python 2 through importlib2_ on PyPI. You might be tempted to write code to " "access e.g. the ``importlib.abc`` module by doing the following::" msgstr "" +"Supposons que vous avez besoin d'accéder à une fonctionnalité de importlib_ " +"qui n'est disponible dans la bibliothèque standard de Python que depuis la " +"version 3.3 et est disponible pour Python 2 via le module importlib2_ sur " +"PyPI. Vous pourriez être tenté d'écrire un code qui accède, par exemple, au " +"module ``importlib.abc`` avec l'approche suivante : ::" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -506,6 +764,10 @@ msgid "" "assume that future Python versions will be more compatible with Python 3 " "than Python 2::" msgstr "" +"Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " +"Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " +"Python 3 et de supposer que les versions futures de Python 2 seront plus " +"compatibles avec Python 3 qu'avec Python 2 : ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -513,10 +775,14 @@ msgid "" "rely on feature detection. That avoids any potential issues of getting the " "version detection wrong and helps keep you future-compatible::" msgstr "" +"Néanmoins la meilleure solution est de ne pas chercher à déterminer la " +"version de Python mais plutôt à détecter les fonctionnalités disponibles. " +"Cela évite les problèmes potentiels liés aux erreurs de détection de version " +"et facilite la compatibilité future : ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" -msgstr "" +msgstr "Prévenir les régressions de compatibilité" #: ../Doc/howto/pyporting.rst:342 msgid "" @@ -525,12 +791,19 @@ msgid "" "Python 3. This is especially true if you have a dependency which is blocking " "you from actually running under Python 3 at the moment." msgstr "" +"Une fois votre code traduit pour être compatible avec Python 3, vous devez " +"vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous " +"Python 3. Ceci est particulièrement important si une de vos dépendances vous " +"empêche de réellement exécuter le code sous Python 3 pour le moment." #: ../Doc/howto/pyporting.rst:347 msgid "" "To help with staying compatible, any new modules you create should have at " "least the following block of code at the top of it::" msgstr "" +"Afin de vous aider à maintenir la compatibilité, nous préconisons que tous " +"les nouveaux modules que vous créez aient au moins le bloc de code suivant " +"en en-tête : ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -539,6 +812,11 @@ msgid "" "warnings into errors with ``-Werror`` then you can make sure that you don't " "accidentally miss a warning." msgstr "" +"Vous pouvez également lancer Python 2 avec le paramètre ``-3`` afin d'être " +"alerté en cas de divers problèmes de compatibilité que votre code déclenche " +"durant son exécution. Si vous transformez les avertissements en erreur avec " +"``-Werror``, vous pouvez être certain que ne passez pas accidentellement à " +"côté d'un avertissement." #: ../Doc/howto/pyporting.rst:359 msgid "" @@ -549,10 +827,17 @@ msgid "" "does require you only support Python 2.7 and Python 3.4 or newer as that is " "Pylint's minimum Python version support." msgstr "" +"Vous pouvez également utiliser le projet Pylint_ et son option ``--py3k`` " +"afin de modifier votre code pour recevoir des avertissements lorsque celui-" +"ci dévie de la compatibilité Python 3. Cela vous évite par ailleurs " +"d'appliquer Modernize_ ou Futurize_ sur votre code régulièrement pour " +"détecter des régressions liées à la compatibilité. Cependant cela nécessite " +"de votre part le support de Python 2.7 et Python 3.4 ou ultérieur étant " +"donné qu'il s'agit de la version minimale gérée par Pylint." #: ../Doc/howto/pyporting.rst:368 msgid "Check which dependencies block your transition" -msgstr "" +msgstr "Vérifier quelles dépendances empêchent la migration" #: ../Doc/howto/pyporting.rst:370 msgid "" @@ -563,6 +848,12 @@ msgid "" "is both a command-line tool as well as a web interface at https://" "caniusepython3.com." msgstr "" +"**Après** avoir rendu votre code compatible avec Python 3, vous devez " +"commencer à vous intéresser au portage de vos dépendances. Le projet " +"caniusepython3_ a été créé afin de vous aider à déterminer quels projets " +"sont bloquants dans votre support de Python 3, directement ou indirectement. " +"Il existe un outil en ligne de commande ainsi qu'une interface web : https://" +"caniusepython3.com." #: ../Doc/howto/pyporting.rst:377 msgid "" @@ -572,10 +863,17 @@ msgid "" "manually check your dependencies and to be notified quickly when you can " "start running on Python 3." msgstr "" +"Le projet fournit également du code intégrable dans votre suite de test qui " +"déclenchera un échec de test lorsque plus aucune de vos dépendances n'est " +"bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à " +"vérifier manuellement vos dépendances et d'être notifié rapidement quand " +"vous pouvez exécuter votre application avec Python 3." #: ../Doc/howto/pyporting.rst:384 msgid "Update your ``setup.py`` file to denote Python 3 compatibility" msgstr "" +"Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité " +"avec Python 3" #: ../Doc/howto/pyporting.rst:386 msgid "" @@ -585,10 +883,16 @@ msgid "" "that you support Python 2 **and** 3. Ideally you will also want to add " "classifiers for each major/minor version of Python you now support." msgstr "" +"Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour " +"vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language :: " +"Python :: 3`` et non seulement le support de Python 2. Cela signifiera à " +"quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal " +"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de " +"Python que vous supportez désormais." #: ../Doc/howto/pyporting.rst:394 msgid "Use continuous integration to stay compatible" -msgstr "" +msgstr "Utiliser l'intégration continue pour maintenir la compatibilité" #: ../Doc/howto/pyporting.rst:396 msgid "" @@ -598,6 +902,12 @@ msgid "" "integrate tox with your continuous integration system so that you never " "accidentally break Python 2 or 3 support." msgstr "" +"Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous " +"devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_ " +"est vraisemblablement le meilleur outil pour exécuter vos tests avec " +"plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre " +"système d'intégration continue afin de ne jamais accidentellement casser " +"votre gestion de Python 2 ou 3." #: ../Doc/howto/pyporting.rst:402 msgid "" @@ -610,6 +920,15 @@ msgid "" "these kinds of comparisons occur, making the mistake much easier to track " "down." msgstr "" +"Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 " +"afin de déclencher une exception lorsque vous comparez des *bytes* à des " +"chaînes de caractères ou à un entier (cette deuxième possibilité est " +"disponible à partir de Python 3.5). Par défaut, des comparaisons entre types " +"différents renvoient simplement ``False`` mais si vous avez fait une erreur " +"dans votre séparation de la gestion texte/données binaires ou votre indiçage " +"des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa " +"identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 msgid "" @@ -618,10 +937,15 @@ msgid "" "don't accidentally break Python 2 or 3 compatibility regardless of which " "version you typically run your tests under while developing." msgstr "" +"Et c'est à peu près tout ! Une fois ceci fait, votre code source est " +"compatible avec Python 2 et 3 simultanément. Votre suite de test est " +"également en place de telle sorte que vous ne cassiez pas la compatibilité " +"Python 2 ou 3 indépendamment de la version que vous utilisez pendant le " +"développement." #: ../Doc/howto/pyporting.rst:417 msgid "Consider using optional static type checking" -msgstr "" +msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel" #: ../Doc/howto/pyporting.rst:419 msgid "" @@ -635,3 +959,14 @@ msgid "" "binary data, helping to make sure everything functions as expected in both " "versions of Python." msgstr "" +"Une autre façon de faciliter le portage de votre code est d'utiliser un " +"vérificateur de type statique comme mypy_ ou pytype_. Ces outils peuvent " +"être utilisés pour analyser votre code comme s'il était exécuté sous Python " +"2, puis une seconde fois comme s'il était exécuté sous Python 3. " +"L'utilisation double d'un vérificateur de type statique de cette façon " +"permet de détecter si, par exemple, vous faites une utilisation inappropriée " +"des types de données binaires dans une version de Python par rapport à " +"l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous " +"pouvez alors explicitement déclarer que vos API attendent des données " +"binaires ou du texte, ce qui facilite alors la vérification du comportement " +"de votre code dans les deux versions de Python." diff --git a/howto/unicode.po b/howto/unicode.po index a7db96cb4..e3695794c 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -487,17 +487,19 @@ msgstr "" #: ../Doc/howto/unicode.rst:233 msgid "Python's Unicode Support" -msgstr "" +msgstr "Prise en charge Unicode de Python" #: ../Doc/howto/unicode.rst:235 msgid "" "Now that you've learned the rudiments of Unicode, we can look at Python's " "Unicode features." msgstr "" +"Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons " +"regarder les fonctionnalités Unicode de Python." #: ../Doc/howto/unicode.rst:239 msgid "The String Type" -msgstr "" +msgstr "Le type *String*" #: ../Doc/howto/unicode.rst:241 msgid "" @@ -512,6 +514,8 @@ msgid "" "The default encoding for Python source code is UTF-8, so you can simply " "include a Unicode character in a string literal::" msgstr "" +"L'encodage par défaut pour le code source Python est UTF-8, il est donc " +"facile d'inclure des caractères Unicode dans une chaîne littérale ::" #: ../Doc/howto/unicode.rst:255 msgid "" @@ -523,6 +527,7 @@ msgstr "" msgid "" "Side note: Python 3 also supports using Unicode characters in identifiers::" msgstr "" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" #: ../Doc/howto/unicode.rst:266 msgid "" @@ -531,6 +536,12 @@ msgid "" "string literals. (Depending on your system, you may see the actual capital-" "delta glyph instead of a \\u escape.) ::" msgstr "" +"Si vous ne pouvez pas entrer un caractère particulier dans votre éditeur ou " +"si vous voulez garder le code source uniquement en ASCII pour une raison " +"quelconque, vous pouvez également utiliser des séquences d'échappement dans " +"les littéraux de chaîne (en fonction de votre système, il se peut que vous " +"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" #: ../Doc/howto/unicode.rst:278 msgid "" @@ -538,6 +549,10 @@ msgid "" "of :class:`bytes`. This method takes an *encoding* argument, such as " "``UTF-8``, and optionally an *errors* argument." msgstr "" +"De plus, une chaîne de caractères peut être créée en utilisant la méthode :" +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " +"*errors*." #: ../Doc/howto/unicode.rst:282 msgid "" @@ -549,6 +564,14 @@ msgid "" "``'backslashreplace'`` (inserts a ``\\xNN`` escape sequence). The following " "examples show the differences::" msgstr "" +"L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " +"pas être convertie selon les règles de l'encodage. Les valeurs autorisées " +"pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" +"`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " +"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " +"avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " +"exemples suivants illustrent les différences ::" #: ../Doc/howto/unicode.rst:302 msgid "" @@ -567,10 +590,15 @@ msgid "" "built-in :func:`ord` function that takes a one-character Unicode string and " "returns the code point value::" msgstr "" +"Des chaînes Unicode à un caractère peuvent également être créées avec la " +"fonction native :func:`chr`, qui prend des entiers et renvoie une chaîne " +"Unicode de longueur 1 qui contient le point de code correspondant. " +"L'opération inverse est la fonction native :func:`ord` qui prend une chaîne " +"Unicode d'un caractère et renvoie la valeur du point de code ::" #: ../Doc/howto/unicode.rst:320 msgid "Converting to Bytes" -msgstr "" +msgstr "Conversion en octets" #: ../Doc/howto/unicode.rst:322 msgid "" @@ -578,6 +606,9 @@ msgid "" "returns a :class:`bytes` representation of the Unicode string, encoded in " "the requested *encoding*." msgstr "" +"La méthode inverse de :meth:`bytes.decode` est :meth:`str.encode`, qui " +"renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " +"l’encodage *encoding* demandé." #: ../Doc/howto/unicode.rst:326 msgid "" @@ -589,10 +620,17 @@ msgid "" "``backslashreplace`` (inserts a ``\\uNNNN`` escape sequence) and " "``namereplace`` (inserts a ``\\N{...}`` escape sequence)." msgstr "" +"Le paramètre *errors* est le même que le paramètre de la méthode :meth:" +"`~bytes.decode` mais possède quelques gestionnaires supplémentaires. En plus " +"de ``'strict'``, ``'ignore'`` et ``'remplace'`` (qui dans ce cas insère un " +"point d'interrogation au lieu du caractère non codable), il y a aussi " +"``'xmlcharrefreplace'`` (insère une référence XML), ``backslashreplace`` " +"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``" +"\\N{...}``)." #: ../Doc/howto/unicode.rst:334 msgid "The following example shows the different results::" -msgstr "" +msgstr "L'exemple suivant montre les différents résultats ::" #: ../Doc/howto/unicode.rst:355 msgid "" @@ -603,10 +641,17 @@ msgid "" "is comfortable, and writing new encodings is a specialized task, so the " "module won't be covered in this HOWTO." msgstr "" +"Les routines de bas niveau pour enregistrer et accéder aux encodages " +"disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " +"nouveaux encodages nécessite également de comprendre le module :mod:" +"`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " +"ce module sont généralement de bas-niveau pour être facilement utilisées et " +"l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " +"module ne sera pas couvert dans ce HOWTO." #: ../Doc/howto/unicode.rst:364 msgid "Unicode Literals in Python Source Code" -msgstr "" +msgstr "Littéraux Unicode dans le code source Python" #: ../Doc/howto/unicode.rst:366 msgid "" @@ -615,6 +660,10 @@ msgid "" "code point. The ``\\U`` escape sequence is similar, but expects eight hex " "digits, not four::" msgstr "" +"Dans le code source Python, des points de code Unicode spécifiques peuvent " +"être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" +"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" #: ../Doc/howto/unicode.rst:378 msgid "" @@ -624,6 +673,12 @@ msgid "" "language. You can also assemble strings using the :func:`chr` built-in " "function, but this is even more tedious." msgstr "" +"L'utilisation de séquences d'échappement pour des points de code supérieurs " +"à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " +"beaucoup de caractères accentués, comme c'est le cas dans un programme avec " +"des messages en français ou dans une autre langue utilisant des lettres " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." #: ../Doc/howto/unicode.rst:384 msgid "" @@ -632,6 +687,10 @@ msgid "" "which would display the accented characters naturally, and have the right " "characters used at runtime." msgstr "" +"Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " +"naturel de votre langue. Vous pourriez alors éditer le code source de " +"Python avec votre éditeur favori qui affiche les caractères accentués " +"naturellement, et a les bons caractères utilisés au moment de l'exécution." #: ../Doc/howto/unicode.rst:389 msgid "" @@ -640,6 +699,10 @@ msgid "" "including a special comment as either the first or second line of the source " "file::" msgstr "" +"Python considère que le code source est écrit en UTF-8 par défaut, mais vous " +"pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"la deuxième ligne du fichier source ::" #: ../Doc/howto/unicode.rst:399 msgid "" @@ -649,16 +712,24 @@ msgid "" "special; they have no significance to Python but are a convention. Python " "looks for ``coding: name`` or ``coding=name`` in the comment." msgstr "" +"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables " +"locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " +"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs " +"que le commentaire est spécial ; ils n'ont aucune signification pour Python " +"mais sont une convention. Python cherche ``coding: name`` ou " +"``coding=name`` dans le commentaire." #: ../Doc/howto/unicode.rst:405 msgid "" "If you don't include such a comment, the default encoding used will be UTF-8 " "as already mentioned. See also :pep:`263` for more information." msgstr "" +"Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." #: ../Doc/howto/unicode.rst:410 msgid "Unicode Properties" -msgstr "" +msgstr "Propriétés Unicode" #: ../Doc/howto/unicode.rst:412 msgid "" @@ -675,10 +746,12 @@ msgid "" "The following program displays some information about several characters, " "and prints the numeric value of one particular character::" msgstr "" +"Le programme suivant affiche des informations sur plusieurs caractères et " +"affiche la valeur numérique d'un caractère particulier ::" #: ../Doc/howto/unicode.rst:433 msgid "When run, this prints:" -msgstr "" +msgstr "Si vous l'exécutez, cela affiche :" #: ../Doc/howto/unicode.rst:444 msgid "" @@ -692,10 +765,20 @@ msgid "" "unicode.org/reports/tr44/#General_Category_Values>`_ for a list of category " "codes." msgstr "" +"Les codes de catégorie sont des abréviations décrivant la nature du " +"caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " +"« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " +"autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " +"autre ». Voir la section `Valeurs générales des catégories de la " +"documentation de la base de données de caractères Unicode `_ (ressource en anglais) " +"pour une liste de codes de catégories." #: ../Doc/howto/unicode.rst:455 msgid "Unicode Regular Expressions" -msgstr "" +msgstr "Expressions régulières Unicode" #: ../Doc/howto/unicode.rst:457 msgid "" @@ -706,12 +789,20 @@ msgid "" "characters ``[0-9]`` in bytes but in strings will match any character that's " "in the ``'Nd'`` category." msgstr "" +"Les expressions régulières gérées par le module :mod:`re` peuvent être " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " +"différentes selon que le motif est fourni en octets ou en texte. Par " +"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " +"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." #: ../Doc/howto/unicode.rst:464 msgid "" "The string in this example has the number 57 written in both Thai and Arabic " "numerals::" msgstr "" +"Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " +"et thaïlandais ::" #: ../Doc/howto/unicode.rst:474 msgid "" @@ -719,6 +810,9 @@ msgid "" "you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " "match the substring \"57\" instead." msgstr "" +"Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." #: ../Doc/howto/unicode.rst:478 msgid "" @@ -726,16 +820,24 @@ msgid "" "``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " "will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``." msgstr "" +"De même, ``\\w`` correspond à une grande variété de caractères Unicode mais " +"seulement ``[a-zA-Z0-9_]`` en octets (ou si :const:`re.ASCII` est fourni) et " +"``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " +"``[ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/unicode.rst:489 msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" +"Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " +"sont :" #: ../Doc/howto/unicode.rst:491 msgid "" "`Processing Text Files in Python 3 `_, by Nick Coghlan." msgstr "" +"`Processing Text Files in Python 3 `_, par Nick Coghlan." #: ../Doc/howto/unicode.rst:492 msgid "" @@ -748,14 +850,16 @@ msgid "" "The :class:`str` type is described in the Python library reference at :ref:" "`textseq`." msgstr "" +"Le type :class:`str` est décrit dans la référence de la bibliothèque Python " +"à :ref:`textseq`." #: ../Doc/howto/unicode.rst:497 msgid "The documentation for the :mod:`unicodedata` module." -msgstr "" +msgstr "La documentation du module :mod:`unicodedata`." #: ../Doc/howto/unicode.rst:499 msgid "The documentation for the :mod:`codecs` module." -msgstr "" +msgstr "La documentation du module :mod:`codecs`." #: ../Doc/howto/unicode.rst:501 msgid "" @@ -765,10 +869,16 @@ msgid "" "Python 2's Unicode features (where the Unicode string type is called " "``unicode`` and literals start with ``u``)." msgstr "" +"Marc-André Lemburg a donné une présentation intitulée `« Python et " +"Unicode » (diapositives PDF) `_ à EuroPython 2002. Les diapositives sont un excellent " +"aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " +"de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " +"``u``)." #: ../Doc/howto/unicode.rst:509 msgid "Reading and Writing Unicode Data" -msgstr "" +msgstr "Lecture et écriture de données Unicode" #: ../Doc/howto/unicode.rst:511 msgid "" @@ -776,6 +886,10 @@ msgid "" "is input/output. How do you get Unicode strings into your program, and how " "do you convert Unicode into a form suitable for storage or transmission?" msgstr "" +"Une fois que vous avez écrit du code qui fonctionne avec des données " +"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " +"des chaînes Unicode dans votre programme et comment convertir les chaînes " +"Unicode dans une forme appropriée pour le stockage ou la transmission ?" #: ../Doc/howto/unicode.rst:515 msgid "" @@ -785,6 +899,13 @@ msgid "" "Unicode data, for example. Many relational databases also support Unicode-" "valued columns and can return Unicode values from an SQL query." msgstr "" +"Il est possible que vous n'ayez rien à faire en fonction de vos sources " +"d'entrée et des destinations de vos données de sortie ; il convient de " +"vérifier si les bibliothèques utilisées dans votre application gèrent " +"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " +"données Unicode. De nombreuses bases de données relationnelles prennent " +"également en charge les colonnes encodées en Unicode et peuvent renvoyer des " +"valeurs Unicode à partir d'une requête SQL." #: ../Doc/howto/unicode.rst:521 msgid "" @@ -794,6 +915,11 @@ msgid "" "bytes with ``bytes.decode(encoding)``. However, the manual approach is not " "recommended." msgstr "" +"Les données Unicode sont généralement converties en un encodage particulier " +"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il " +"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un " +"élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " +"Cependant, l'approche manuelle n'est pas recommandée." #: ../Doc/howto/unicode.rst:526 msgid "" @@ -808,6 +934,17 @@ msgid "" "least a moment you'd need to have both the encoded string and its Unicode " "version in memory.)" msgstr "" +"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"peut être représenté par plusieurs octets. Si vous voulez lire le fichier " +"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " +"écrire un code de gestion des erreurs pour détecter le cas où une partie " +"seulement des octets codant un seul caractère Unicode est lue à la fin d'un " +"morceau. Une solution serait de lire le fichier entier en mémoire et " +"d'effectuer le décodage, mais cela vous empêche de travailler avec des " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque " +"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " +"sa version Unicode en mémoire)." #: ../Doc/howto/unicode.rst:536 msgid "" @@ -820,16 +957,27 @@ msgid "" "*encoding* and *errors* parameters which are interpreted just like those in :" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" +"La solution serait d'utiliser l'interface de décodage de bas-niveau pour " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " +"est dans un encodage spécifié et accepte les paramètres Unicode pour des " +"méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :" +"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:" +"`bytes.decode`." #: ../Doc/howto/unicode.rst:545 msgid "Reading Unicode from a file is therefore simple::" -msgstr "" +msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" #: ../Doc/howto/unicode.rst:551 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" msgstr "" +"Il est également possible d'ouvrir des fichiers en mode « mise à jour », " +"permettant à la fois la lecture et l'écriture ::" #: ../Doc/howto/unicode.rst:559 msgid "" @@ -843,6 +991,17 @@ msgid "" "endian encodings, that specify one particular byte ordering and don't skip " "the BOM." msgstr "" +"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le " +"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " +"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " +"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, " +"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un " +"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement " +"écrite comme premier caractère et sera silencieusement retirée lorsque le " +"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-" +"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, " +"qui spécifient un ordre d'octets donné et ne sautent pas la BOM." #: ../Doc/howto/unicode.rst:568 msgid "" @@ -855,7 +1014,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:576 msgid "Unicode filenames" -msgstr "" +msgstr "Noms de fichiers Unicode" #: ../Doc/howto/unicode.rst:578 msgid "" @@ -877,12 +1036,20 @@ msgid "" "writing, you can usually just provide the Unicode string as the filename, " "and it will be automatically converted to the right encoding for you::" msgstr "" +"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " +"sur votre système actuel, au cas où vous voudriez faire l'encodage " +"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " +"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " +"généralement simplement fournir la chaîne Unicode comme nom de fichier et " +"elle est automatiquement convertie à l'encodage qui convient ::" #: ../Doc/howto/unicode.rst:597 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." msgstr "" +"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " +"également les noms de fichiers Unicode." #: ../Doc/howto/unicode.rst:600 msgid "" @@ -899,13 +1066,15 @@ msgstr "" #: ../Doc/howto/unicode.rst:618 msgid "will produce the following output:" -msgstr "" +msgstr "produit la sortie suivante :" #: ../Doc/howto/unicode.rst:626 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." msgstr "" +"La première liste contient les noms de fichiers encodés en UTF-8 et la " +"seconde contient les versions Unicode." #: ../Doc/howto/unicode.rst:629 msgid "" @@ -916,23 +1085,28 @@ msgstr "" #: ../Doc/howto/unicode.rst:635 msgid "Tips for Writing Unicode-aware Programs" -msgstr "" +msgstr "Conseils pour écrire des programmes compatibles Unicode" #: ../Doc/howto/unicode.rst:637 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." msgstr "" +"Cette section fournit quelques suggestions sur l'écriture de logiciels qui " +"traitent de l'Unicode." #: ../Doc/howto/unicode.rst:640 msgid "The most important tip is:" -msgstr "" +msgstr "Le conseil le plus important est:" #: ../Doc/howto/unicode.rst:642 msgid "" "Software should only work with Unicode strings internally, decoding the " "input data as soon as possible and encoding the output only at the end." msgstr "" +"Il convient que le logiciel ne traite que des chaînes Unicode en interne, " +"décodant les données d'entrée dès que possible et encodant la sortie " +"uniquement à la fin." #: ../Doc/howto/unicode.rst:645 msgid "" @@ -942,6 +1116,12 @@ msgid "" "or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " "raised." msgstr "" +"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " +"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " +"de bogues dans votre programme augmentent partout où vous combinez les deux " +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"`TypeError` est levée." #: ../Doc/howto/unicode.rst:650 msgid "" @@ -954,10 +1134,21 @@ msgid "" "true if the input data also specifies the encoding, since the attacker can " "then choose a clever way to hide malicious text in the encoded bytestream." msgstr "" +"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une " +"autre source non fiable, une technique courante consiste à vérifier la " +"présence de caractères illégaux dans une chaîne de caractères avant de " +"l'utiliser pour générer une ligne de commande ou de la stocker dans une base " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " +"choisir un moyen intelligent de cacher du texte malveillant dans le flux de " +"données encodé." #: ../Doc/howto/unicode.rst:661 msgid "Converting Between File Encodings" -msgstr "" +msgstr "Conversion entre les encodages de fichiers" #: ../Doc/howto/unicode.rst:663 msgid "" @@ -965,16 +1156,23 @@ msgid "" "encodings, taking a stream that returns data in encoding #1 and behaving " "like a stream returning data in encoding #2." msgstr "" +"La classe :class:`~codecs.StreamRecoder` peut convertir de manière " +"transparente entre les encodages : prenant un flux qui renvoie des données " +"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " +"dans l'encodage #2." #: ../Doc/howto/unicode.rst:667 msgid "" "For example, if you have an input file *f* that's in Latin-1, you can wrap " "it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" msgstr "" +"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous " +"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " +"renvoie des octets encodés en UTF-8 ::" #: ../Doc/howto/unicode.rst:681 msgid "Files in an Unknown Encoding" -msgstr "" +msgstr "Fichiers dans un encodage inconnu" #: ../Doc/howto/unicode.rst:683 msgid "" @@ -983,6 +1181,11 @@ msgid "" "to examine or modify the ASCII parts, you can open the file with the " "``surrogateescape`` error handler::" msgstr "" +"Vous avez besoin de modifier un fichier mais vous ne connaissez pas " +"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII " +"et que vous voulez seulement examiner ou modifier les parties ASCII, vous " +"pouvez ouvrir le fichier avec le gestionnaire d'erreurs " +"``surrogateescape`` ::" #: ../Doc/howto/unicode.rst:697 msgid "" @@ -999,6 +1202,10 @@ msgid "" "video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David " "Beazley, discusses text processing and binary data handling." msgstr "" +"Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " +"donnée lors de PyCon 2010 de David Beazley, parle du traitement de texte et " +"du traitement des données binaires." #: ../Doc/howto/unicode.rst:711 msgid "" @@ -1008,6 +1215,12 @@ msgid "" "character encodings as well as how to internationalize and localize an " "application. These slides cover Python 2.x only." msgstr "" +"Le `PDF du diaporama de la présentation de Marc-André Lemburg \"Writing " +"Unicodeaware Applications in Python\" `_ (ressource en " +"anglais) traite des questions d'encodage de caractères ainsi que de " +"l'internationalisation et de la localisation d'une application. Ces " +"diapositives ne couvrent que Python 2.x." #: ../Doc/howto/unicode.rst:717 msgid "" @@ -1015,6 +1228,10 @@ msgid "" "unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that " "discusses the internal Unicode representation in Python 3.3." msgstr "" +"`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence PyCon 2013 " +"donnée par Benjamin Peterson qui traite de la représentation interne Unicode " +"en Python 3.3." #: ../Doc/howto/unicode.rst:724 msgid "Acknowledgements" @@ -1026,6 +1243,9 @@ msgid "" "since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " "Kuchling, and Ezio Melotti." msgstr "" +"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a " +"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " +"Ezio Melotti." #: ../Doc/howto/unicode.rst:730 msgid "" diff --git a/library/_thread.po b/library/_thread.po index e18aa596c..6f065c145 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -30,6 +30,13 @@ msgid "" "provided. The :mod:`threading` module provides an easier to use and higher-" "level threading API built on top of this module." msgstr "" +"Ce module fournit les primitives de bas niveau pour travailler avec de " +"multiples fils d'exécution (aussi appelés :dfn:`light-weight processes` ou :" +"dfn:`tasks`) — plusieurs fils d'exécution de contrôle partagent leur espace " +"de données global. Pour la synchronisation, de simples verrous (aussi " +"appelés des :dfn:`mutexes` ou des :dfn:`binary semaphores`) sont fournis. Le " +"module :mod:`threading` fournit une API de fils d'exécution de haut niveau, " +"plus facile à utiliser et construite à partir de ce module." #: ../Doc/library/_thread.rst:26 msgid "" @@ -78,6 +85,8 @@ msgid "" "Raise the :exc:`SystemExit` exception. When not caught, this will cause the " "thread to exit silently." msgstr "" +"Lève une exception :exc:`SystemExit`. Quand elle n'est pas interceptée, le " +"fil d'exécution se terminera silencieusement." #: ../Doc/library/_thread.rst:80 msgid "" @@ -141,6 +150,10 @@ msgid "" "(only one thread at a time can acquire a lock --- that's their reason for " "existence)." msgstr "" +"Sans aucun argument optionnel, cette méthode acquiert le verrou " +"inconditionnellement, et si nécessaire attend jusqu'à ce qu'il soit relâché " +"par un autre fil d'exécution (un seul fil d'exécution à la fois peut " +"acquérir le verrou — c'est leur raison d'être)." #: ../Doc/library/_thread.rst:129 msgid "" @@ -149,6 +162,10 @@ msgid "" "immediately without waiting, while if it is nonzero, the lock is acquired " "unconditionally as above." msgstr "" +"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa " +"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être " +"acquis immédiatement, sans attendre, sinon le verrou est acquis " +"inconditionnellement comme ci-dessus." #: ../Doc/library/_thread.rst:134 msgid "" @@ -157,12 +174,18 @@ msgid "" "*timeout* argument specifies an unbounded wait. You cannot specify a " "*timeout* if *waitflag* is zero." msgstr "" +"Si l'argument *timeout*, en virgule flottante, est présent et positif, il " +"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un " +"argument *timeout* négatif spécifie une attente illimitée. Vous ne pouvez " +"pas spécifier un *timeout* si *waitflag* est à zéro." #: ../Doc/library/_thread.rst:139 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not." msgstr "" +"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon " +"``False``." #: ../Doc/library/_thread.rst:142 msgid "The *timeout* parameter is new." @@ -171,24 +194,31 @@ msgstr "Le paramètre *timeout* est nouveau." #: ../Doc/library/_thread.rst:145 msgid "Lock acquires can now be interrupted by signals on POSIX." msgstr "" +"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." #: ../Doc/library/_thread.rst:151 msgid "" "Releases the lock. The lock must have been acquired earlier, but not " "necessarily by the same thread." msgstr "" +"Relâche le verrou. Le verrou doit avoir été acquis plus tôt, mais pas " +"nécessairement par le même fil d'exécution." #: ../Doc/library/_thread.rst:157 msgid "" "Return the status of the lock: ``True`` if it has been acquired by some " "thread, ``False`` if not." msgstr "" +"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils " +"d'exécution, sinon ``False``." #: ../Doc/library/_thread.rst:160 msgid "" "In addition to these methods, lock objects can also be used via the :keyword:" "`with` statement, e.g.::" msgstr "" +"En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " +"l'instruction :keyword:`with`, e.g. : ::" #: ../Doc/library/_thread.rst:170 msgid "**Caveats:**" @@ -200,12 +230,18 @@ msgid "" "exception will be received by an arbitrary thread. (When the :mod:`signal` " "module is available, interrupts always go to the main thread.)" msgstr "" +"Les fils d'exécution interagissent étrangement avec les interruptions : " +"l'exception :exc:`KeyboardInterrupt` sera reçue par un fil d'exécution " +"arbitraire. (Quand le module :mod:`signal` est disponible, les interruptions " +"vont toujours au fil d'exécution principal)." #: ../Doc/library/_thread.rst:178 msgid "" "Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " "equivalent to calling :func:`_thread.exit`." msgstr "" +"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " +"est équivalent à appeler la fonction :func:`_thread.exit`." #: ../Doc/library/_thread.rst:181 msgid "" @@ -213,6 +249,9 @@ msgid "" "the :exc:`KeyboardInterrupt` exception will happen after the lock has been " "acquired." msgstr "" +"Il n'est pas possible d'interrompre la méthode :meth:`acquire` sur un verrou " +"— l'exception :exc:`KeyboardInterrupt` surviendra après que le verrou a été " +"acquis." #: ../Doc/library/_thread.rst:184 msgid "" @@ -220,6 +259,10 @@ msgid "" "survive. On most systems, they are killed without executing :keyword:" "`try` ... :keyword:`finally` clauses or executing object destructors." msgstr "" +"Quand le fil d'exécution principal s'arrête, il est défini par le système si " +"les autres fils d'exécution survivent. Sur beaucoup de systèmes, ils sont " +"tués sans l'exécution des clauses :keyword:`try`… :keyword:`finally` ou " +"l'exécution des destructeurs d'objets." #: ../Doc/library/_thread.rst:189 msgid "" @@ -227,3 +270,6 @@ msgid "" "that :keyword:`try` ... :keyword:`finally` clauses are honored), and the " "standard I/O files are not flushed." msgstr "" +"Quand le fil d'exécution principal s'arrête, il ne fait pas son nettoyage " +"habituel (excepté que les clauses :keyword:`try`… :keyword:`finally` sont " +"honorées) et les fichiers d'entrée/sortie standards ne sont pas nettoyés." diff --git a/library/aifc.po b/library/aifc.po index 02a0b08b3..0961cadf7 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -115,6 +115,9 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/aifc.rst:100 msgid "" diff --git a/library/asyncio-eventloops.po b/library/asyncio-eventloops.po index dc3b59783..e27546173 100644 --- a/library/asyncio-eventloops.po +++ b/library/asyncio-eventloops.po @@ -269,7 +269,7 @@ msgstr "" #: ../Doc/library/asyncio-eventloops.rst:183 msgid "Set the event loop for the current context to *loop*." -msgstr "" +msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." #: ../Doc/library/asyncio-eventloops.rst:187 msgid "" diff --git a/library/base64.po b/library/base64.po index 879d25ab5..e59b58f79 100644 --- a/library/base64.po +++ b/library/base64.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/base64.rst:2 msgid ":mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings" -msgstr "" +msgstr ":mod:`base64` — Encodages base16, base32, base64 et base85" #: ../Doc/library/base64.rst:8 msgid "**Source code:** :source:`Lib/base64.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/base64.py`" #: ../Doc/library/base64.rst:16 msgid "" @@ -33,6 +33,12 @@ msgid "" "which defines the Base16, Base32, and Base64 algorithms, and for the de-" "facto standard Ascii85 and Base85 encodings." msgstr "" +"Ce module fournit des fonctions permettant de coder des données binaires en " +"caractères ASCII affichables ainsi que de décoder ces caractères vers des " +"données binaires en retour. Il fournit des fonctions d'encodage et de " +"décodage pour les codages spécifiés par la :rfc:`3548` qui définit les " +"algorithmes base16, base32 et base64, ainsi que les encodages standards *de " +"facto* Ascii85 et base85." #: ../Doc/library/base64.rst:22 msgid "" @@ -41,6 +47,10 @@ msgid "" "HTTP POST request. The encoding algorithm is not the same as the :program:" "`uuencode` program." msgstr "" +"Les encodages définis par la :rfc:`3548` sont adaptés au codage des données " +"binaires pour leur transfert par courriel, comme éléments d'une URL ou d'une " +"requête HTTP POST. L'algorithme d'encodage ne doit pas être confondu avec le " +"programme :program:`uuencode`." #: ../Doc/library/base64.rst:27 msgid "" @@ -50,6 +60,12 @@ msgid "" "or strings containing ASCII to :class:`bytes`. Both base-64 alphabets " "defined in :rfc:`3548` (normal, and URL- and filesystem-safe) are supported." msgstr "" +"Ce module présente deux interfaces. L'interface moderne gère l'encodage d':" +"term:`objets octet-compatibles ` en :class:`bytes` ASCII " +"ainsi que le décodage d':term:`objets octet-compatibles ` " +"ou de chaînes de caractères contenant de l'ASCII en :class:`bytes`. Les deux " +"alphabets de l'algorithme base64 définis par la :rfc:`3548` (normal et sûr " +"pour les systèmes de fichiers ou URL) sont gérés." #: ../Doc/library/base64.rst:33 msgid "" @@ -60,12 +76,22 @@ msgid "" "looking for :rfc:`2045` support you probably want to be looking at the :mod:" "`email` package instead." msgstr "" +"L'interface historique ne permet pas le décodage des chaînes de caractères " +"mais fournit des fonctions permettant d'encoder et décoder depuis et vers " +"des :term:`objets fichiers `. Elle ne gère que l'alphabet " +"base64 standard et ajoute une nouvelle ligne tous les 76 caractères, comme " +"spécifié par la :rfc:`2045`. Notez que le paquet :mod:`email` est " +"probablement ce que vous cherchez si vous souhaitez une implémentation de " +"la :rfc:`2045`." #: ../Doc/library/base64.rst:41 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of the " "modern interface." msgstr "" +"Les chaînes de caractères Unicode contenant uniquement des caractères ASCII " +"sont désormais acceptées par les fonctions de décodage de l'interface " +"moderne." #: ../Doc/library/base64.rst:45 msgid "" @@ -73,6 +99,9 @@ msgid "" "encoding and decoding functions in this module. Ascii85/Base85 support " "added." msgstr "" +"Tous les :term:`objets octet-compatibles ` sont désormais " +"acceptés par l'ensemble des fonctions d'encodage et de décodage de ce " +"module. La gestion de Ascii85/base85 a été ajoutée." #: ../Doc/library/base64.rst:49 msgid "The modern interface provides:" @@ -83,6 +112,8 @@ msgid "" "Encode the :term:`bytes-like object` *s* using Base64 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:56 msgid "" @@ -92,12 +123,21 @@ msgid "" "generate URL or filesystem safe Base64 strings. The default is ``None``, " "for which the standard Base64 alphabet is used." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet " +"alternatif pour les délimiteurs ``+`` et ``/``. Cela permet de générer des " +"chaînes de caractères base64 pouvant être utilisées pour une URL ou dans un " +"système de fichiers. La valeur par défaut est ``None``, auquel cas " +"l'alphabet standard base64 est utilisé." #: ../Doc/library/base64.rst:65 msgid "" "Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:68 msgid "" @@ -105,11 +145,16 @@ msgid "" "at least length 2 (additional characters are ignored) which specifies the " "alternative alphabet used instead of the ``+`` and ``/`` characters." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un " +"alphabet alternatif pour les délimiteurs ``+`` et ``/``." #: ../Doc/library/base64.rst:72 msgid "" "A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue." #: ../Doc/library/base64.rst:75 msgid "" @@ -118,18 +163,28 @@ msgid "" "the padding check. If *validate* is ``True``, these non-alphabet characters " "in the input result in a :exc:`binascii.Error`." msgstr "" +"Si *validate* est ``False`` (par défaut), les caractères qui ne sont ni dans " +"l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant " +"la vérification de la longueur du remplissage. Si *validate* est ``True``, " +"les caractères hors de l'alphabet de l'entrée produisent une :exc:`binascii." +"Error`." #: ../Doc/library/base64.rst:84 msgid "" "Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " "return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:90 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the standard " "Base64 alphabet and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie les :" +"class:`bytes` décodés." #: ../Doc/library/base64.rst:96 msgid "" @@ -138,6 +193,10 @@ msgid "" "`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " "The result can still contain ``=``." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"un alphabet sûr pour les URL et systèmes de fichiers qui substitue ``-`` et " +"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie les :class:" +"`bytes` encodés." #: ../Doc/library/base64.rst:105 msgid "" @@ -146,24 +205,36 @@ msgid "" "instead of ``/`` in the standard Base64 alphabet, and return the decoded :" "class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant un alphabet sûr pour les URL et systèmes " +"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet " +"standard base64 et renvoie les :class:`bytes` décodés." #: ../Doc/library/base64.rst:114 msgid "" "Encode the :term:`bytes-like object` *s* using Base32 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base32 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:120 msgid "" "Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:123 ../Doc/library/base64.rst:150 msgid "" "Optional *casefold* is a flag specifying whether a lowercase alphabet is " "acceptable as input. For security purposes, the default is ``False``." msgstr "" +"L'option *casefold* est un drapeau spécifiant si l'utilisation d'un alphabet " +"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, " +"cette option est à ``False`` par défaut." #: ../Doc/library/base64.rst:127 msgid "" @@ -175,30 +246,46 @@ msgid "" "purposes the default is ``None``, so that 0 and 1 are not allowed in the " "input." msgstr "" +"La :rfc:`3548` autorise une correspondance optionnelle du chiffre 0 (zéro) " +"vers la lettre O (/o/) ainsi que du chiffre 1 (un) vers soit la lettre I (/" +"i/) ou la lettre L (/l/). L'argument optionnel *map01*, lorsqu'il diffère de " +"``None``, spécifie en quelle lettre le chiffre 1 doit être transformé " +"(lorsque *map01* n'est pas ``None``, le chiffre 0 est toujours transformé en " +"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle " +"sorte que 0 et 1 ne sont pas autorisés dans l'entrée." #: ../Doc/library/base64.rst:134 ../Doc/library/base64.rst:154 msgid "" "A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " "are non-alphabet characters present in the input." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue ou si elle contient des caractères hors de l'alphabet." #: ../Doc/library/base64.rst:141 msgid "" "Encode the :term:`bytes-like object` *s* using Base16 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base16 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:147 msgid "" "Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:161 msgid "" "Encode the :term:`bytes-like object` *b* using Ascii85 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:164 msgid "" @@ -206,6 +293,10 @@ msgid "" "instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " "feature is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:168 msgid "" @@ -213,24 +304,35 @@ msgid "" "characters added to it. If this is non-zero, each output line will be at " "most this many characters long." msgstr "" +"*wrapcol* contrôle l'ajout de caractères de saut de ligne (``b'\\n'``) à la " +"sortie. Chaque ligne de sortie contient au maximum *wrapcol* caractères si " +"cette option diffère de zéro." #: ../Doc/library/base64.rst:172 msgid "" "*pad* controls whether the input is padded to a multiple of 4 before " "encoding. Note that the ``btoa`` implementation always pads." msgstr "" +"*pad* spécifie l'ajout de caractères de remplissage (*padding* en anglais) à " +"l'entrée jusqu'à ce que sa longueur soit un multiple de 4 avant encodage. " +"Notez que l'implémentation ``btoa`` effectue systématiquement ce remplissage." #: ../Doc/library/base64.rst:175 msgid "" "*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " "``~>``, which is used by the Adobe implementation." msgstr "" +"*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée par " +"``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe." #: ../Doc/library/base64.rst:183 msgid "" "Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:186 msgid "" @@ -238,12 +340,18 @@ msgid "" "be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " "is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII `0x20`) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:190 msgid "" "*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " "is framed with <~ and ~>)." msgstr "" +"*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 " +"(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)." #: ../Doc/library/base64.rst:193 msgid "" @@ -252,18 +360,28 @@ msgid "" "whitespace characters, and by default contains all whitespace characters in " "ASCII." msgstr "" +"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " +"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " +"des caractères d'espacement et contient par défaut l'ensemble des caractères " +"d'espacement de l'alphabet ASCII." #: ../Doc/library/base64.rst:203 msgid "" "Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" "style binary diffs) and return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* " +"sur des données binaires) et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:206 msgid "" "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " "multiple of 4 bytes before encoding." msgstr "" +"Si *pad* est vrai, des caractères de remplissage ``b'``0'`` (*padding* en " +"anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un multiple " +"de 4 octets avant encodage." #: ../Doc/library/base64.rst:214 msgid "" @@ -271,6 +389,10 @@ msgid "" "return the decoded :class:`bytes`. Padding is implicitly removed, if " "necessary." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *b* encodé en base85 et renvoie les :class:`bytes` " +"décodés. Les caractères de remplissage sont implicitement retirés si " +"nécessaire." #: ../Doc/library/base64.rst:221 msgid "The legacy interface:" @@ -283,16 +405,23 @@ msgid "" "objects `. *input* will be read until ``input.readline()`` " "returns an empty bytes object." msgstr "" +"Décode le contenu d'un fichier binaire *input* et écrit les données binaires " +"résultantes dans le fichier *output*. *input* et *output* doivent être des :" +"term:`objets fichiers `. *input* est lu jusqu'à ce que ``input." +"readline()`` renvoie un objet *bytes* vide." #: ../Doc/library/base64.rst:233 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` *s* devant " +"contenir une ou plusieurs lignes de données encodées en base64 et renvoie " +"les :class:`bytes` décodés." #: ../Doc/library/base64.rst:240 msgid "Deprecated alias of :func:`decodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`decodebytes`." #: ../Doc/library/base64.rst:247 msgid "" @@ -303,6 +432,13 @@ msgid "" "(``b'\\n'``) after every 76 bytes of the output, as well as ensuring that " "the output always ends with a newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode le contenu du fichier binaire *input* et écrit les données encodées " +"en base64 résultantes dans le fichier *output. *input* et *output* doivent " +"être des :term:`objets fichiers `. *input* est lu jusqu'à ce " +"que ``input.readline()`` renvoie un objet *bytes* vide. :func:`encode` " +"insère un caractère de saut de ligne (``b'\\n'``) tous les 76 octets de " +"sortie et assure que celle-ci se termine par une nouvelle ligne, comme " +"spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:257 msgid "" @@ -311,10 +447,15 @@ msgid "" "newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " "that there is a trailing newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* pouvant " +"contenir des données binaires arbitraires et renvoie les :class:`bytes` " +"contenant les données encodées en base64. Un caractère de saut de ligne " +"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine " +"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:266 msgid "Deprecated alias of :func:`encodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`encodebytes`." #: ../Doc/library/base64.rst:271 msgid "An example usage of the module:" @@ -337,12 +478,17 @@ msgid "" "Mechanisms for Specifying and Describing the Format of Internet Message " "Bodies" msgstr "" +":rfc:`1521` — MIME (*Multipurpose Internet Mail Extensions*) *Part One: " +"Mechanisms for Specifying and Describing the Format of Internet Message " +"Bodies*" #: ../Doc/library/base64.rst:288 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." msgstr "" +"La Section 5.2, \"*Base64 Content-Transfer-Encoding*\", donne la définition " +"de l'encodage base64." #~ msgid "``encodestring`` is a deprecated alias." #~ msgstr "``encodestring`` est un alias obsolète." diff --git a/library/contextlib.po b/library/contextlib.po index 0e8eb2afb..5104f9b68 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -32,6 +32,9 @@ msgid "" "`with` statement. For more information see also :ref:`typecontextmanager` " "and :ref:`context-managers`." msgstr "" +"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :" +"keyword:`with`. Pour plus d'informations voir aussi :ref:" +"`typecontextmanager` et :ref:`context-managers`." #: ../Doc/library/contextlib.rst:17 msgid "Utilities" @@ -39,7 +42,7 @@ msgstr "Utilitaires" #: ../Doc/library/contextlib.rst:19 msgid "Functions and classes provided:" -msgstr "" +msgstr "Fonctions et classes fournies :" #: ../Doc/library/contextlib.rst:23 msgid "" @@ -49,6 +52,12 @@ msgid "" "__exit__` is an abstract method which by default returns ``None``. See also " "the definition of :ref:`typecontextmanager`." msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__enter__` et :meth:`object." +"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`typecontextmanager`." #: ../Doc/library/contextlib.rst:35 msgid "" @@ -56,6 +65,10 @@ msgid "" "function for :keyword:`with` statement context managers, without needing to " "create a class or separate :meth:`__enter__` and :meth:`__exit__` methods." msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte à utiliser avec :" +"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:" +"`__enter__` et :meth:`__exit__` séparées." #: ../Doc/library/contextlib.rst:39 msgid "" @@ -96,26 +109,38 @@ msgid "" "that context managers support multiple invocations in order to be used as " "decorators)." msgstr "" +"Le décorateur :func:`contextmanager` utilise la classe :class:" +"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée " +"puissent être utilisés aussi bien en tant que décorateurs qu'avec des " +"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une " +"nouvelle instance du générateur est créée à chaque appel de la fonction " +"(cela permet aux gestionnaires de contexte à usage unique créés par :func:" +"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs " +"fois afin d'être utilisés comme décorateurs)." #: ../Doc/library/contextlib.rst:79 msgid "Use of :class:`ContextDecorator`." -msgstr "" +msgstr "Utilisation de la classe :class:`ContextDecorator`." #: ../Doc/library/contextlib.rst:85 msgid "" "Return a context manager that closes *thing* upon completion of the block. " "This is basically equivalent to::" msgstr "" +"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " +"C'est essentiellement équivalent à ::" #: ../Doc/library/contextlib.rst:97 msgid "And lets you write code like this::" -msgstr "" +msgstr "Et cela vous permet d'écrire du code tel que ::" #: ../Doc/library/contextlib.rst:106 msgid "" "without needing to explicitly close ``page``. Even if an error occurs, " "``page.close()`` will be called when the :keyword:`with` block is exited." msgstr "" +"sans besoin de fermer explicitement ``page``. Même si une erreur survient, " +"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`." #: ../Doc/library/contextlib.rst:112 msgid "" @@ -123,6 +148,9 @@ msgid "" "they occur in the body of a with statement and then resumes execution with " "the first statement following the end of the with statement." msgstr "" +"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions " +"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " +"l'exécution sur la première instruction qui suit la fin du bloc *with*." #: ../Doc/library/contextlib.rst:116 msgid "" @@ -131,6 +159,10 @@ msgid "" "silently continuing with program execution is known to be the right thing to " "do." msgstr "" +"Comme pour tous les mécanismes qui suppriment complètement les exceptions, " +"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas " +"très spécifiques d'erreurs où il est certain que continuer silencieusement " +"l'exécution du programme est la bonne chose à faire." #: ../Doc/library/contextlib.rst:121 msgid "For example::" @@ -143,19 +175,23 @@ msgstr "Ce code est équivalent à ::" #: ../Doc/library/contextlib.rst:143 ../Doc/library/contextlib.rst:182 #: ../Doc/library/contextlib.rst:192 msgid "This context manager is :ref:`reentrant `." -msgstr "" +msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." #: ../Doc/library/contextlib.rst:150 msgid "" "Context manager for temporarily redirecting :data:`sys.stdout` to another " "file or file-like object." msgstr "" +"Gestionnaire de contexte servant à rediriger temporairement :data:`sys." +"stdout` vers un autre fichier ou objet fichier-compatible." #: ../Doc/library/contextlib.rst:153 msgid "" "This tool adds flexibility to existing functions or classes whose output is " "hardwired to stdout." msgstr "" +"Cet outil ajoute une certaine flexibilité aux fonctions ou classes " +"existantes dont la sortie est envoyée vers la sortie standard." #: ../Doc/library/contextlib.rst:156 msgid "" @@ -163,16 +199,21 @@ msgid "" "You can capture that output in a string by redirecting the output to an :" "class:`io.StringIO` object::" msgstr "" +"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys." +"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en " +"la redirigeant vers un objet :class:`io.StringIO` ::" #: ../Doc/library/contextlib.rst:165 msgid "" "To send the output of :func:`help` to a file on disk, redirect the output to " "a regular file::" msgstr "" +"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " +"redirigez-la sur un fichier normal ::" #: ../Doc/library/contextlib.rst:172 msgid "To send the output of :func:`help` to *sys.stderr*::" -msgstr "" +msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" #: ../Doc/library/contextlib.rst:177 msgid "" @@ -181,17 +222,27 @@ msgid "" "applications. It also has no effect on the output of subprocesses. However, " "it is still a useful approach for many utility scripts." msgstr "" +"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce " +"gestionnaire de contexte n'est pas adapté à une utilisation dans le code " +"d'une bibliothèque ni dans la plupart des applications à plusieurs fils " +"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. " +"Cependant, cela reste une approche utile pour beaucoup de scripts " +"utilitaires." #: ../Doc/library/contextlib.rst:189 msgid "" "Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." "stderr` to another file or file-like object." msgstr "" +"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys." +"stderr` vers un autre fichier ou objet fichier-compatible." #: ../Doc/library/contextlib.rst:199 msgid "" "A base class that enables a context manager to also be used as a decorator." msgstr "" +"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " +"utilisé comme décorateur." #: ../Doc/library/contextlib.rst:201 msgid "" @@ -199,37 +250,50 @@ msgid "" "``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " "exception handling even when used as a decorator." msgstr "" +"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent " +"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` " +"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " +"décorateur." #: ../Doc/library/contextlib.rst:205 msgid "" "``ContextDecorator`` is used by :func:`contextmanager`, so you get this " "functionality automatically." msgstr "" +"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " +"bénéficiez automatiquement de cette fonctionnalité." #: ../Doc/library/contextlib.rst:208 msgid "Example of ``ContextDecorator``::" -msgstr "" +msgstr "Exemple de ``ContextDecorator`` ::" #: ../Doc/library/contextlib.rst:237 msgid "" "This change is just syntactic sugar for any construct of the following form::" msgstr "" +"Ce changement est simplement un sucre syntaxique pour les constructions de " +"la forme suivante ::" #: ../Doc/library/contextlib.rst:243 msgid "``ContextDecorator`` lets you instead write::" -msgstr "" +msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" #: ../Doc/library/contextlib.rst:249 msgid "" "It makes it clear that the ``cm`` applies to the whole function, rather than " "just a piece of it (and saving an indentation level is nice, too)." msgstr "" +"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas " +"seulement à un morceau en particulier (et gagner un niveau d'indentation est " +"toujours appréciable)." #: ../Doc/library/contextlib.rst:252 msgid "" "Existing context managers that already have a base class can be extended by " "using ``ContextDecorator`` as a mixin class::" msgstr "" +"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " +"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" #: ../Doc/library/contextlib.rst:265 msgid "" @@ -245,12 +309,18 @@ msgid "" "combine other context managers and cleanup functions, especially those that " "are optional or otherwise driven by input data." msgstr "" +"Gestionnaire de contexte conçu pour simplifier le fait de combiner " +"programmatiquement d'autres gestionnaires de contexte et fonctions de " +"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " +"données d'entrée." #: ../Doc/library/contextlib.rst:279 msgid "" "For example, a set of files may easily be handled in a single with statement " "as follows::" msgstr "" +"Par exemple, un ensemble de fichiers peut facilement être géré dans une " +"unique instruction *with* comme suit ::" #: ../Doc/library/contextlib.rst:288 msgid "" @@ -259,6 +329,11 @@ msgid "" "at the end of a :keyword:`with` statement). Note that callbacks are *not* " "invoked implicitly when the context stack instance is garbage collected." msgstr "" +"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) " +"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée " +"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez " +"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " +"la pile de contextes est collectée par le ramasse-miettes." #: ../Doc/library/contextlib.rst:293 msgid "" @@ -266,6 +341,9 @@ msgid "" "resources in their ``__init__`` method (such as file objects) can be handled " "correctly." msgstr "" +"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui " +"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " +"objets-fichiers) puissent être gérés correctement." #: ../Doc/library/contextlib.rst:297 msgid "" @@ -276,6 +354,12 @@ msgid "" "exception, then outer callbacks will be passed arguments based on that " "updated state." msgstr "" +"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre " +"inverse d'enregistrement, cela revient au même que si de multiples blocs :" +"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions " +"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction " +"de rappel intérieure supprime ou remplace une exception, alors les fonctions " +"extérieures reçoivent des arguments basés sur ce nouvel état." #: ../Doc/library/contextlib.rst:304 msgid "" @@ -284,6 +368,10 @@ msgid "" "foundation for higher level context managers that manipulate the exit stack " "in application specific ways." msgstr "" +"C'est une *API* relativement bas-niveau qui s'occupe de dérouler " +"correctement la pile des appels de sortie. Elle fournit une base adaptée " +"pour des gestionnaires de contexte de plus haut niveau qui manipulent la " +"pile de sortie de manière spécifique à l'application." #: ../Doc/library/contextlib.rst:313 msgid "" @@ -291,16 +379,24 @@ msgid "" "callback stack. The return value is the result of the context manager's own :" "meth:`__enter__` method." msgstr "" +"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:" +"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la " +"méthode :meth:`__enter__` du gestionnaire de contexte donné." #: ../Doc/library/contextlib.rst:317 msgid "" "These context managers may suppress exceptions just as they normally would " "if used directly as part of a :keyword:`with` statement." msgstr "" +"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le " +"feraient normalement s'ils étaient utilisés directement derrière une " +"instruction :keyword:`with`." #: ../Doc/library/contextlib.rst:322 msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." msgstr "" +"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " +"d'appels." #: ../Doc/library/contextlib.rst:324 msgid "" @@ -308,6 +404,9 @@ msgid "" "an :meth:`__enter__` implementation with a context manager's own :meth:" "`__exit__` method." msgstr "" +"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée " +"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " +"propre méthode :meth:`__exit__` d'un gestionnaire de contexte." #: ../Doc/library/contextlib.rst:328 msgid "" @@ -315,36 +414,52 @@ msgid "" "a callback with the same signature as a context manager's :meth:`__exit__` " "method and adds it directly to the callback stack." msgstr "" +"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume " +"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :" +"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à " +"la pile d'appels." #: ../Doc/library/contextlib.rst:332 msgid "" "By returning true values, these callbacks can suppress exceptions the same " "way context manager :meth:`__exit__` methods can." msgstr "" +"En retournant des valeurs vraies, ces fonctions peuvent supprimer des " +"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " +"des gestionnaires de contexte." #: ../Doc/library/contextlib.rst:335 msgid "" "The passed in object is returned from the function, allowing this method to " "be used as a function decorator." msgstr "" +"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " +"méthode d'être utilisée comme décorateur de fonction." #: ../Doc/library/contextlib.rst:340 msgid "" "Accepts an arbitrary callback function and arguments and adds it to the " "callback stack." msgstr "" +"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " +"fonctions de rappel." #: ../Doc/library/contextlib.rst:343 msgid "" "Unlike the other methods, callbacks added this way cannot suppress " "exceptions (as they are never passed the exception details)." msgstr "" +"À la différence des autres méthodes, les fonctions de rappel ajoutées de " +"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " +"reçoivent jamais les détails de l'exception)." #: ../Doc/library/contextlib.rst:346 msgid "" "The passed in callback is returned from the function, allowing this method " "to be used as a function decorator." msgstr "" +"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " +"la méthode d'être utilisée comme décorateur de fonction." #: ../Doc/library/contextlib.rst:351 msgid "" @@ -353,12 +468,18 @@ msgid "" "now be invoked when the new stack is closed (either explicitly or implicitly " "at the end of a :keyword:`with` statement)." msgstr "" +"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et " +"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à " +"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " +"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." #: ../Doc/library/contextlib.rst:356 msgid "" "For example, a group of files can be opened as an \"all or nothing\" " "operation as follows::" msgstr "" +"Par exemple, un groupe de fichiers peut être ouvert comme une opération " +"« tout ou rien » comme suit ::" #: ../Doc/library/contextlib.rst:370 msgid "" @@ -366,20 +487,26 @@ msgid "" "order of registration. For any context managers and exit callbacks " "registered, the arguments passed in will indicate that no exception occurred." msgstr "" +"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel " +"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte " +"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " +"exception n'est survenue." #: ../Doc/library/contextlib.rst:377 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et Recettes" #: ../Doc/library/contextlib.rst:379 msgid "" "This section describes some examples and recipes for making effective use of " "the tools provided by :mod:`contextlib`." msgstr "" +"Cette section décrit quelques exemples et recettes pour décrire une " +"utilisation réelle des outils fournis par :mod:`contextlib`." #: ../Doc/library/contextlib.rst:384 msgid "Supporting a variable number of context managers" -msgstr "" +msgstr "Gérer un nombre variable de gestionnaires de contexte" #: ../Doc/library/contextlib.rst:386 msgid "" @@ -390,6 +517,13 @@ msgid "" "input (such as opening a user specified collection of files), or from some " "of the context managers being optional::" msgstr "" +"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la " +"documentation de la classe : gérer un nombre variable de gestionnaires de " +"contexte et d'autres opérations de nettoyage en une unique instruction :" +"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de " +"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une " +"collection spécifique de fichiers de l'utilisateur), ou de certains " +"gestionnaires de contexte qui peuvent être optionnels ::" #: ../Doc/library/contextlib.rst:401 msgid "" @@ -397,6 +531,9 @@ msgid "" "statements to manage arbitrary resources that don't natively support the " "context management protocol." msgstr "" +"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les " +"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " +"gèrent pas nativement le protocole des gestionnaires de contexte." #: ../Doc/library/contextlib.rst:407 msgid "Simplifying support for single optional context managers" @@ -412,7 +549,7 @@ msgstr "" #: ../Doc/library/contextlib.rst:425 msgid "Catching exceptions from ``__enter__`` methods" -msgstr "" +msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" #: ../Doc/library/contextlib.rst:427 msgid "" @@ -422,6 +559,12 @@ msgid "" "By using :class:`ExitStack` the steps in the context management protocol can " "be separated slightly in order to allow this::" msgstr "" +"Il est occasionnellement souhaitable d'attraper les exceptions depuis " +"l'implémentation d'une méthode ``__enter__``, *sans* attraper par " +"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de " +"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:" +"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent " +"être légèrement séparées pour permettre le code suivant ::" #: ../Doc/library/contextlib.rst:442 msgid "" @@ -433,10 +576,18 @@ msgid "" "to handle various situations that can't be handled directly in a :keyword:" "`with` statement." msgstr "" +"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-" +"jacente devrait fournir une interface directe de gestion des ressources à " +"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:" +"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet " +"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion " +"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la " +"gestion de plusieurs situations qui ne peuvent pas être traitées directement " +"dans une instruction :keyword:`with`." #: ../Doc/library/contextlib.rst:452 msgid "Cleaning up in an ``__enter__`` implementation" -msgstr "" +msgstr "Nettoyer dans une méthode ``__enter__``" #: ../Doc/library/contextlib.rst:454 msgid "" @@ -444,6 +595,9 @@ msgid "" "useful in cleaning up an already allocated resource if later steps in the :" "meth:`__enter__` implementation fail." msgstr "" +"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode " +"peut être utile pour nettoyer une ressource déjà allouée si les dernières " +"étapes de l'implémentation de :meth:`__enter__` échouent." #: ../Doc/library/contextlib.rst:458 msgid "" @@ -451,10 +605,13 @@ msgid "" "acquisition and release functions, along with an optional validation " "function, and maps them to the context management protocol::" msgstr "" +"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions " +"d'acquisition de ressources et de libération, avec une méthode de validation " +"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" #: ../Doc/library/contextlib.rst:498 msgid "Replacing any use of ``try-finally`` and flag variables" -msgstr "" +msgstr "Remplacer un ``try-finally`` avec une option variable" #: ../Doc/library/contextlib.rst:500 msgid "" @@ -463,6 +620,10 @@ msgid "" "should be executed. In its simplest form (that can't already be handled just " "by using an ``except`` clause instead), it looks something like this::" msgstr "" +"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une " +"option pour indiquer si le corps de la clause ``finally`` doit être exécuté " +"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " +"juste une clause ``except``), cela ressemble à ::" #: ../Doc/library/contextlib.rst:514 msgid "" @@ -470,6 +631,10 @@ msgid "" "development and review, because the setup code and the cleanup code can end " "up being separated by arbitrarily long sections of code." msgstr "" +"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut " +"poser problème pour le développement et la revue, parce que beaucoup de " +"codes d'installation et de nettoyage peuvent finir par être séparés par des " +"sections de code arbitrairement longues." #: ../Doc/library/contextlib.rst:518 msgid "" @@ -477,18 +642,25 @@ msgid "" "execution at the end of a ``with`` statement, and then later decide to skip " "executing that callback::" msgstr "" +":class:`ExitStack` rend possible de plutôt enregistrer une fonction de " +"rappel pour être exécutée à la fin d'une instruction ``with``, et décider " +"ensuite de passer l'exécution de cet appel ::" #: ../Doc/library/contextlib.rst:530 msgid "" "This allows the intended cleanup up behaviour to be made explicit up front, " "rather than requiring a separate flag variable." msgstr "" +"Cela permet de rendre explicite dès le départ le comportement de nettoyage " +"attendu, plutôt que de nécessiter une option séparée." #: ../Doc/library/contextlib.rst:533 msgid "" "If a particular application uses this pattern a lot, it can be simplified " "even further by means of a small helper class::" msgstr "" +"Si une application particulière utilise beaucoup ce modèle, cela peut-être " +"simplifié encore plus au moyen d'une petite classe d'aide ::" #: ../Doc/library/contextlib.rst:551 msgid "" @@ -496,6 +668,10 @@ msgid "" "function, then it is still possible to use the decorator form of :meth:" "`ExitStack.callback` to declare the resource cleanup in advance::" msgstr "" +"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans " +"une fonction autonome, il est possible d'utiliser le décorateur :meth:" +"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en " +"avance ::" #: ../Doc/library/contextlib.rst:566 msgid "" @@ -503,16 +679,24 @@ msgid "" "this way cannot take any parameters. Instead, any resources to be released " "must be accessed as closure variables." msgstr "" +"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée " +"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer " +"doivent être récupérées depuis l'extérieur comme des variables de fermeture " +"(*closure*)." #: ../Doc/library/contextlib.rst:572 msgid "Using a context manager as a function decorator" msgstr "" +"Utiliser un gestionnaire de contexte en tant que décorateur de fonction" #: ../Doc/library/contextlib.rst:574 msgid "" ":class:`ContextDecorator` makes it possible to use a context manager in both " "an ordinary ``with`` statement and also as a function decorator." msgstr "" +":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de " +"contexte à la fois ordinairement avec une instruction ``with`` ou comme un " +"décorateur de fonction." #: ../Doc/library/contextlib.rst:577 msgid "" @@ -522,14 +706,22 @@ msgid "" "task, inheriting from :class:`ContextDecorator` provides both capabilities " "in a single definition::" msgstr "" +"Par exemple, il est parfois utile d'emballer les fonctions ou blocs " +"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution " +"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un " +"gestionnaire de contexte pour la même tâche, hériter de :class:" +"`ContextDecorator` fournit les deux fonctionnalités en une seule " +"définition ::" #: ../Doc/library/contextlib.rst:598 msgid "Instances of this class can be used as both a context manager::" msgstr "" +"Les instances de cette classe peuvent être utilisées comme gestionnaires de " +"contexte ::" #: ../Doc/library/contextlib.rst:604 msgid "And also as a function decorator::" -msgstr "" +msgstr "Et comme décorateurs de fonctions ::" #: ../Doc/library/contextlib.rst:611 msgid "" @@ -538,6 +730,10 @@ msgid "" "`__enter__`. If that value is needed, then it is still necessary to use an " "explicit ``with`` statement." msgstr "" +"Notez qu'il y a une autre limitation en utilisant les gestionnaires de " +"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur " +"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " +"utiliser explicitement une instruction ``with``." #: ../Doc/library/contextlib.rst:619 msgid ":pep:`343` - The \"with\" statement" @@ -553,7 +749,7 @@ msgstr "" #: ../Doc/library/contextlib.rst:625 msgid "Single use, reusable and reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" #: ../Doc/library/contextlib.rst:627 msgid "" @@ -562,6 +758,11 @@ msgid "" "managers must be created afresh each time they're used - attempting to use " "them a second time will trigger an exception or otherwise not work correctly." msgstr "" +"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne " +"leur permet que d'être utilisés une fois avec une instruction :keyword:" +"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés " +"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois " +"lève une exception ou ne fonctionne pas correctement." #: ../Doc/library/contextlib.rst:633 msgid "" @@ -569,6 +770,10 @@ msgid "" "context managers directly in the header of the :keyword:`with` statement " "where they are used (as shown in all of the usage examples above)." msgstr "" +"Cette limitation commune signifie qu'il est généralement conseillé de créer " +"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:" +"`with` où ils sont utilisés (comme montré dans tous les exemples " +"d'utilisation au-dessus)." #: ../Doc/library/contextlib.rst:637 msgid "" @@ -576,6 +781,10 @@ msgid "" "first :keyword:`with` statement will close the file, preventing any further " "IO operations using that file object." msgstr "" +"Les fichiers sont un exemple de gestionnaires de contexte étant " +"effectivement à usage unique, puisque la première instruction :keyword:" +"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie " +"d'être exécutées sur ce fichier." #: ../Doc/library/contextlib.rst:641 msgid "" @@ -583,10 +792,13 @@ msgid "" "context managers, and will complain about the underlying generator failing " "to yield if an attempt is made to use them a second time::" msgstr "" +"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à " +"usage unique, et se plaindront du fait que le générateur sous-jacent ne " +"produise plus de valeur si vous essayez de les utiliser une seconde fois ::" #: ../Doc/library/contextlib.rst:669 msgid "Reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte réentrants" #: ../Doc/library/contextlib.rst:671 msgid "" @@ -602,6 +814,9 @@ msgid "" "are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple " "example of reentrant use::" msgstr "" +":class:`threading.RLock` est un exemple de gestionnaire de contexte " +"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " +"Voici un très simple exemple d'utilisation réentrante ::" #: ../Doc/library/contextlib.rst:695 msgid "" @@ -609,6 +824,9 @@ msgid "" "functions calling each other and hence be far more complicated than this " "example." msgstr "" +"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs " +"fonctions s'entre-appelant, et donc être bien plus compliqués que cet " +"exemple." #: ../Doc/library/contextlib.rst:699 msgid "" @@ -617,10 +835,14 @@ msgid "" "as it makes a global modification to the system state by binding :data:`sys." "stdout` to a different stream." msgstr "" +"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:" +"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, " +"puisqu'il effectue des changements globaux sur l'état du système en " +"branchant :data:`sys.stdout` sur différents flux." #: ../Doc/library/contextlib.rst:708 msgid "Reusable context managers" -msgstr "" +msgstr "Gestionnaires de contexte réutilisables" #: ../Doc/library/contextlib.rst:710 msgid "" @@ -631,6 +853,14 @@ msgid "" "will fail (or otherwise not work correctly) if the specific context manager " "instance has already been used in a containing with statement." msgstr "" +"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " +"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " +"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires " +"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de " +"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront " +"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de " +"contexte référencée a déjà été utilisée dans une instruction *with* " +"englobante." #: ../Doc/library/contextlib.rst:717 msgid "" @@ -638,6 +868,9 @@ msgid "" "context manager (for a reentrant lock, it is necessary to use :class:" "`threading.RLock` instead)." msgstr "" +":class:`threading.Lock` est un exemple de gestionnaire de contexte " +"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " +"place utiliser :class:`threading.RLock`)." #: ../Doc/library/contextlib.rst:721 msgid "" @@ -645,6 +878,10 @@ msgid "" "`ExitStack`, as it invokes *all* currently registered callbacks when leaving " "any with statement, regardless of where those callbacks were added::" msgstr "" +"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant " +"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel " +"actuellement enregistrées en quittant l'instruction *with*, sans regarder où " +"ces fonctions ont été ajoutées ::" #: ../Doc/library/contextlib.rst:752 msgid "" @@ -653,9 +890,15 @@ msgid "" "cause the stack to be cleared at the end of the innermost with statement, " "which is unlikely to be desirable behaviour." msgstr "" +"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre " +"plusieurs instructions *with* fonctionne correctement, mais essayer de les " +"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " +"qui n'est probablement pas le comportement voulu." #: ../Doc/library/contextlib.rst:757 msgid "" "Using separate :class:`ExitStack` instances instead of reusing a single " "instance avoids that problem::" msgstr "" +"Pour éviter ce problème, utilisez des instances différentes de :class:" +"`ExitStack` plutôt qu'une seule instance ::" diff --git a/library/curses.po b/library/curses.po index e1c68581d..f5b9749a5 100644 --- a/library/curses.po +++ b/library/curses.po @@ -1938,7 +1938,7 @@ msgstr "``KEY_CLOSE``" #: ../Doc/library/curses.rst:1438 msgid "Close" -msgstr "" +msgstr "*Close*" #: ../Doc/library/curses.rst:1440 msgid "``KEY_COMMAND``" @@ -1954,7 +1954,7 @@ msgstr "``KEY_COPY``" #: ../Doc/library/curses.rst:1442 msgid "Copy" -msgstr "" +msgstr "*Copy*" #: ../Doc/library/curses.rst:1444 msgid "``KEY_CREATE``" @@ -1978,7 +1978,7 @@ msgstr "``KEY_EXIT``" #: ../Doc/library/curses.rst:1448 msgid "Exit" -msgstr "" +msgstr "*Exit*" #: ../Doc/library/curses.rst:1450 msgid "``KEY_FIND``" @@ -2058,7 +2058,7 @@ msgstr "``KEY_REDO``" #: ../Doc/library/curses.rst:1468 msgid "Redo" -msgstr "" +msgstr "*Redo*" #: ../Doc/library/curses.rst:1470 msgid "``KEY_REFERENCE``" @@ -2106,7 +2106,7 @@ msgstr "``KEY_SAVE``" #: ../Doc/library/curses.rst:1480 msgid "Save" -msgstr "" +msgstr "*Save*" #: ../Doc/library/curses.rst:1482 msgid "``KEY_SBEG``" @@ -2354,7 +2354,7 @@ msgstr "``KEY_UNDO``" #: ../Doc/library/curses.rst:1542 msgid "Undo" -msgstr "" +msgstr "*Undo*" #: ../Doc/library/curses.rst:1544 msgid "``KEY_MOUSE``" diff --git a/library/dis.po b/library/dis.po index eff94f842..4a6e1b504 100644 --- a/library/dis.po +++ b/library/dis.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" -msgstr "" +msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" #: ../Doc/library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" @@ -32,6 +32,10 @@ msgid "" "is defined in the file :file:`Include/opcode.h` and used by the compiler and " "the interpreter." msgstr "" +"La bibliothèque :mod:`dis` supporte l'analyse du :term:`bytecode` CPython " +"en le désassemblant. Le code intermédiaire CPython, que cette bibliothèque " +"prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et " +"est utilisé par le compilateur et l'interpréteur." #: ../Doc/library/dis.rst:18 msgid "" @@ -40,30 +44,39 @@ msgid "" "between versions of Python. Use of this module should not be considered to " "work across Python VMs or Python releases." msgstr "" +"Le code intermédiaire est un détail d'implémentation de l'interpréteur " +"CPython. Il n'y a pas de garantie que le code intermédiaire sera ajouté, " +"retiré, ou modifié dans les différentes versions de Python. L'utilisation de " +"cette bibliothèque ne fonctionne pas nécessairement sur les machines " +"virtuelles Python ni les différentes versions de Python." #: ../Doc/library/dis.rst:23 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." msgstr "" +"Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " +"par instruction." #: ../Doc/library/dis.rst:28 msgid "Example: Given the function :func:`myfunc`::" -msgstr "" +msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" #: ../Doc/library/dis.rst:33 msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`::" msgstr "" +"la commande suivante peut-être utilisé pour afficher le désassemblage de :" +"func:`myfunc` ::" #: ../Doc/library/dis.rst:42 msgid "(The \"2\" is a line number)." -msgstr "" +msgstr "(Le \"2\" est un numéro de ligne)." #: ../Doc/library/dis.rst:45 msgid "Bytecode analysis" -msgstr "" +msgstr "Analyse du code intermédiaire" #: ../Doc/library/dis.rst:49 msgid "" @@ -71,6 +84,9 @@ msgid "" "class:`Bytecode` object that provides easy access to details of the compiled " "code." msgstr "" +"L'analyse de l'*API* code intermédiaire permet de rassembler des blocs de " +"code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " +"aux détails du code compilé." #: ../Doc/library/dis.rst:56 msgid "" @@ -84,6 +100,10 @@ msgid "" "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " "instance yields the bytecode operations as :class:`Instruction` instances." msgstr "" +"Ceci est *wrapper* sur plusieurs fonctions de la liste ci-dessous, " +"notamment :func:`get_instructions`, étant donné qu'une itération sur une " +"instance de la classe :class:`Bytecode` rend les opérations du code " +"intermédiaire des instances de :class:`Instruction`." #: ../Doc/library/dis.rst:63 ../Doc/library/dis.rst:204 msgid "" @@ -92,6 +112,10 @@ msgid "" "source line information (if any) is taken directly from the disassembled " "code object." msgstr "" +"Si *first_line* ne vaut pas ``None``, elle indique le nombre de la ligne qui " +"doit être considérée comme première ligne source dans le code désassemblé. " +"Autrement, les informations sur la ligne source sont prises directement à " +"partir de la classe du code désassemblé." #: ../Doc/library/dis.rst:68 msgid "" @@ -99,32 +123,43 @@ msgid "" "the disassembled code. Setting this means :meth:`.dis` will display a " "\"current instruction\" marker against the specified opcode." msgstr "" +"Si la valeur de *current_offset* est différente de ``None``, c'est une " +"référence à un offset d'une instruction dans le code désassemblé. Cela veut " +"dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " +"contre le code d'opération donné." #: ../Doc/library/dis.rst:74 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." msgstr "" +"Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " +"mettant *current_offet* à l'instruction responsable de l'exception." #: ../Doc/library/dis.rst:79 msgid "The compiled code object." -msgstr "" +msgstr "Le code compilé objet." #: ../Doc/library/dis.rst:83 msgid "The first source line of the code object (if available)" -msgstr "" +msgstr "La première ligne source du code objet (si disponible)" #: ../Doc/library/dis.rst:87 msgid "" "Return a formatted view of the bytecode operations (the same as printed by :" "func:`dis.dis`, but returned as a multi-line string)." msgstr "" +"Retourne une vue formatée des opérations du code intermédiaire (la même que " +"celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " +"plusieurs lignes )." #: ../Doc/library/dis.rst:92 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." msgstr "" +"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " +"informations détaillées sur l'objet code comme :func:`code_info`." #: ../Doc/library/dis.rst:95 msgid "Example::" @@ -132,7 +167,7 @@ msgstr "Exemple ::" #: ../Doc/library/dis.rst:108 msgid "Analysis functions" -msgstr "" +msgstr "Analyse de fonctions" #: ../Doc/library/dis.rst:110 msgid "" @@ -141,6 +176,10 @@ msgid "" "a single operation is being performed, so the intermediate analysis object " "isn't useful:" msgstr "" +"La bibliothèque :mod:`dis` comprend également l'analyse des fonctions " +"suivantes, qui envoient l'entrée directement à la sortie souhaitée. Elles " +"peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " +"représentation intermédiaire objet n'étant donc pas utile dans ce cas:" #: ../Doc/library/dis.rst:116 msgid "" @@ -155,6 +194,10 @@ msgid "" "dependent and they may change arbitrarily across Python VMs or Python " "releases." msgstr "" +"Il est à noter que le contenu exact des chaînes de caractères figurant dans " +"les informations du code dépendent fortement sur l'implémentation, et " +"peuvent changer arbitrairement sous machines virtuelles Python ou les " +"versions de Python." #: ../Doc/library/dis.rst:128 msgid "" @@ -162,17 +205,23 @@ msgid "" "source code string or code object to *file* (or ``sys.stdout`` if *file* is " "not specified)." msgstr "" +"Affiche des informations détaillées sur le code de la fonction fournie, la " +"méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " +"bien ``sys.stdout`` si *file* n'est pas spécifié)." #: ../Doc/library/dis.rst:132 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." msgstr "" +"Ceci est un raccourci convenable de ``print(code_info(x), file=file)``, " +"principalement fait pour l'exploration interactive sur l'invite de " +"l'interpréteur." #: ../Doc/library/dis.rst:137 ../Doc/library/dis.rst:155 #: ../Doc/library/dis.rst:168 ../Doc/library/dis.rst:192 msgid "Added *file* parameter." -msgstr "" +msgstr "Ajout du paramètre *file*." #: ../Doc/library/dis.rst:143 msgid "" @@ -192,6 +241,8 @@ msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." msgstr "" +"Le désassemblage est envoyé sous forme de texte à l'argument du fichier " +"*file* si il est fourni, et à ``sys.stdout`` sinon." #: ../Doc/library/dis.rst:161 msgid "" @@ -199,58 +250,70 @@ msgid "" "traceback if none was passed. The instruction causing the exception is " "indicated." msgstr "" +"Désassemble la fonction du haut de la pile des traces d'appels, en utilisant " +"la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " +"de l'exception est indiquée." #: ../Doc/library/dis.rst:175 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" msgstr "" +"Désassemble un code objet, en indiquant la dernière instruction si *lasti* " +"est fournie. La sortie est répartie sur les colonnes suivantes :" #: ../Doc/library/dis.rst:178 msgid "the line number, for the first instruction of each line" -msgstr "" +msgstr "le numéro de ligne, pour la première instruction de chaque ligne" #: ../Doc/library/dis.rst:179 msgid "the current instruction, indicated as ``-->``," -msgstr "" +msgstr "l'instruction en cours, indiquée par ``-->``," #: ../Doc/library/dis.rst:180 msgid "a labelled instruction, indicated with ``>>``," -msgstr "" +msgstr "une instruction libellée, indiquée par ``> >``," #: ../Doc/library/dis.rst:181 msgid "the address of the instruction," -msgstr "" +msgstr "l'adresse de l'instruction," #: ../Doc/library/dis.rst:182 msgid "the operation code name," -msgstr "" +msgstr "le nom de le code d'opération," #: ../Doc/library/dis.rst:183 msgid "operation parameters, and" -msgstr "" +msgstr "paramètres de l'opération, et" #: ../Doc/library/dis.rst:184 msgid "interpretation of the parameters in parentheses." -msgstr "" +msgstr "interprétation des paramètres entre parenthèses." #: ../Doc/library/dis.rst:186 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." msgstr "" +"L'interprétation du paramètre reconnaît les noms des variables locales et " +"globales, des valeurs constantes, des branchements cibles, et des opérateurs " +"de comparaison." #: ../Doc/library/dis.rst:198 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." msgstr "" +"Retourne un itérateur sur les instructions dans la fonction fournie, la " +"méthode, les chaînes de caractères du code source ou objet." #: ../Doc/library/dis.rst:201 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." msgstr "" +"Cet itérateur génère une série de n-uplets de :class:`Instruction` qui " +"donnent les détails de chacune des opérations dans le code fourni." #: ../Doc/library/dis.rst:214 msgid "" @@ -264,6 +327,8 @@ msgstr "" #: ../Doc/library/dis.rst:220 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" +"Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " +"croissants." #: ../Doc/library/dis.rst:226 msgid "" @@ -277,31 +342,37 @@ msgstr "" #: ../Doc/library/dis.rst:239 msgid "Python Bytecode Instructions" -msgstr "" +msgstr "Les instructions du code intermédiaire en Python" #: ../Doc/library/dis.rst:241 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" msgstr "" +"La fonction :func:`get_instructions` et la méthode :class:`Bytecode` fournit " +"des détails sur le code intermédiaire des instructions comme :class:" +"`Instruction` instances:" #: ../Doc/library/dis.rst:246 msgid "Details for a bytecode operation" -msgstr "" +msgstr "Détails sur le code intermédiaire de l'opération" #: ../Doc/library/dis.rst:250 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." msgstr "" +"code numérique pour l'opération, correspondant aux valeurs de l'*opcode* ci-" +"dessous et les valeurs du code intermédiaire dans la :ref:" +"`opcode_collections`." #: ../Doc/library/dis.rst:256 msgid "human readable name for operation" -msgstr "" +msgstr "nom lisible/compréhensible de l'opération" #: ../Doc/library/dis.rst:261 msgid "numeric argument to operation (if any), otherwise ``None``" -msgstr "" +msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" #: ../Doc/library/dis.rst:266 msgid "resolved arg value (if known), otherwise same as arg" diff --git a/library/enum.po b/library/enum.po index cefe51936..261a6c679 100644 --- a/library/enum.po +++ b/library/enum.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" -msgstr "" +msgstr ":mod:`enum` — Énumerations" #: ../Doc/library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" @@ -31,6 +31,10 @@ msgid "" "constant values. Within an enumeration, the members can be compared by " "identity, and the enumeration itself can be iterated over." msgstr "" +"Une énumération est un ensemble de noms symboliques, appelés *membres*, liés " +"à des valeurs constantes et uniques. Au sein d'une énumération, les membres " +"peuvent être comparés entre eux et il est possible d'itérer sur " +"l'énumération elle-même." #: ../Doc/library/enum.rst:24 msgid "Module Contents" @@ -43,18 +47,26 @@ msgid "" "`Flag`, and :class:`IntFlag`. It also defines one decorator, :func:" "`unique`, and one helper, :class:`auto`." msgstr "" +"Ce module définit quatre classes d'énumération qui permettent de définir des " +"ensembles uniques de noms et de valeurs : :class:`Enum`, :class:`IntEnum`, :" +"class:`Flag` et :class:`IntFlag`. Il fournit également un décorateur, :func:" +"`unique`, ainsi qu'une classe utilitaire, :class:`auto`." #: ../Doc/library/enum.rst:33 msgid "" "Base class for creating enumerated constants. See section `Functional API`_ " "for an alternate construction syntax." msgstr "" +"Classe de base pour créer une énumération de constantes. Voir la section " +"`API par fonction`_ pour une syntaxe alternative de construction." #: ../Doc/library/enum.rst:38 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`." msgstr "" +"Classe de base pour créer une énumération de constantes qui sont également " +"des sous-classes de :class:`int`." #: ../Doc/library/enum.rst:43 msgid "" @@ -62,29 +74,40 @@ msgid "" "bitwise operators without losing their :class:`IntFlag` membership. :class:" "`IntFlag` members are also subclasses of :class:`int`." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " +"sous-classes de :class:`int`." #: ../Doc/library/enum.rst:49 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`Flag`." #: ../Doc/library/enum.rst:54 msgid "" "Enum class decorator that ensures only one name is bound to any one value." msgstr "" +"Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " +"un seul nom." #: ../Doc/library/enum.rst:58 msgid "Instances are replaced with an appropriate value for Enum members." msgstr "" +"Les instances de cette classe remplacent les membres d'une *Enum* par une " +"valeur appropriée." #: ../Doc/library/enum.rst:60 msgid "``Flag``, ``IntFlag``, ``auto``" -msgstr "" +msgstr "``Flag``, ``IntFlag``, ``auto``" #: ../Doc/library/enum.rst:64 msgid "Creating an Enum" -msgstr "" +msgstr "Création d'une *Enum*" #: ../Doc/library/enum.rst:66 msgid "" @@ -93,10 +116,14 @@ msgid "" "`Functional API`_. To define an enumeration, subclass :class:`Enum` as " "follows::" msgstr "" +"Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " +"à lire et à écrire. Une autre méthode de création est décrite dans `API par " +"fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " +"de la manière suivante : ::" #: ../Doc/library/enum.rst:78 msgid "Enum member values" -msgstr "" +msgstr "Valeurs des membres d'une *Enum*" #: ../Doc/library/enum.rst:80 msgid "" @@ -105,62 +132,81 @@ msgid "" "appropriate value will be chosen for you. Care must be taken if you mix :" "class:`auto` with other values." msgstr "" +"La valeur d'un membre peut être de n'importe quel type : :class:`int`, :" +"class:`str`, etc. Si la valeur exacte n'a pas d'importance, utilisez des " +"instances de :class:`auto` et une valeur appropriée sera choisie pour vous. " +"Soyez vigilant si vous mélangez :class:`auto` avec d'autres valeurs." #: ../Doc/library/enum.rst:85 msgid "Nomenclature" -msgstr "" +msgstr "Nomenclature" #: ../Doc/library/enum.rst:87 msgid "The class :class:`Color` is an *enumeration* (or *enum*)" -msgstr "" +msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." #: ../Doc/library/enum.rst:88 msgid "" "The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " "*enumeration members* (or *enum members*) and are functionally constants." msgstr "" +"Les attributs :attr:`Color.RED`, :attr:`Color.GREEN`, etc., sont les " +"*membres de l'énumération* (ou les *membres de l'enum*) et sont " +"fonctionnellement des constantes." #: ../Doc/library/enum.rst:90 msgid "" "The enum members have *names* and *values* (the name of :attr:`Color.RED` is " "``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" msgstr "" +"Les membres de *l'enum* ont chacun un *nom* et une *valeur* ; le nom de :" +"attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, etc." #: ../Doc/library/enum.rst:96 msgid "" "Even though we use the :keyword:`class` syntax to create Enums, Enums are " "not normal Python classes. See `How are Enums different?`_ for more details." msgstr "" +"Même si on utilise la syntaxe en :keyword:`class` pour créer des " +"énumérations, les *Enums* ne sont pas des vraies classes Python. Voir `En " +"quoi les Enums sont différentes ?`_ pour plus de détails." #: ../Doc/library/enum.rst:100 msgid "Enumeration members have human readable string representations::" msgstr "" +"Les membres d'une énumération ont une représentation en chaîne de caractères " +"compréhensible par un humain : ::" #: ../Doc/library/enum.rst:105 msgid "...while their ``repr`` has more information::" -msgstr "" +msgstr "… tandis que leur ``repr`` contient plus d'informations : ::" #: ../Doc/library/enum.rst:110 msgid "The *type* of an enumeration member is the enumeration it belongs to::" msgstr "" +"Le *type* d'un membre est l'énumération auquel ce membre appartient : ::" #: ../Doc/library/enum.rst:118 msgid "Enum members also have a property that contains just their item name::" -msgstr "" +msgstr "Les membres ont également un attribut qui contient leur nom : ::" #: ../Doc/library/enum.rst:123 msgid "Enumerations support iteration, in definition order::" msgstr "" +"Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " +"les membres sont déclarés : ::" #: ../Doc/library/enum.rst:139 msgid "" "Enumeration members are hashable, so they can be used in dictionaries and " "sets::" msgstr "" +"Les membres d'une énumération sont hachables, ils peuvent ainsi être " +"utilisés dans des dictionnaires ou des ensembles : ::" #: ../Doc/library/enum.rst:149 msgid "Programmatic access to enumeration members and their attributes" -msgstr "" +msgstr "Accès dynamique aux membres et à leurs attributs" #: ../Doc/library/enum.rst:151 msgid "" @@ -168,22 +214,28 @@ msgid "" "e. situations where ``Color.RED`` won't do because the exact color is not " "known at program-writing time). ``Enum`` allows such access::" msgstr "" +"Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " +"énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " +"``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " +"programme). ``Enum`` permet de tels accès : ::" #: ../Doc/library/enum.rst:160 msgid "If you want to access enum members by *name*, use item access::" msgstr "" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation : ::" #: ../Doc/library/enum.rst:167 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre : ::" #: ../Doc/library/enum.rst:177 msgid "Duplicating enum members and values" -msgstr "" +msgstr "Duplication de membres et de valeurs" #: ../Doc/library/enum.rst:179 msgid "Having two enum members with the same name is invalid::" msgstr "" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* : ::" #: ../Doc/library/enum.rst:189 msgid "" @@ -192,6 +244,10 @@ msgid "" "A. By-value lookup of the value of A and B will return A. By-name lookup " "of B will also return A::" msgstr "" +"Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " +"ont la même valeur (et que A est défini en premier), B sera un alias de A. " +"Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " +"par nom renverra aussi A : ::" #: ../Doc/library/enum.rst:209 msgid "" @@ -199,10 +255,13 @@ msgid "" "attribute (another member, a method, etc.) or attempting to create an " "attribute with the same name as a member is not allowed." msgstr "" +"Il est interdit de créer un membre avec le même nom qu'un attribut déjà " +"défini (un autre membre, une méthode, etc.) ou de créer un attribut avec le " +"nom d'un membre." #: ../Doc/library/enum.rst:215 msgid "Ensuring unique enumeration values" -msgstr "" +msgstr "Coercition d'unicité des valeurs d'une énumération" #: ../Doc/library/enum.rst:217 msgid "" @@ -210,6 +269,10 @@ msgid "" "When this behavior isn't desired, the following decorator can be used to " "ensure each value is used only once in the enumeration:" msgstr "" +"Par défaut, les énumérations autorisent les alias de nom pour une même " +"valeur. Quand ce comportement n'est pas désiré, il faut utiliser le " +"décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " +"seule fois au sein de l'énumération : ::" #: ../Doc/library/enum.rst:223 msgid "" @@ -217,20 +280,27 @@ msgid "" "enumeration's :attr:`__members__` gathering any aliases it finds; if any are " "found :exc:`ValueError` is raised with the details::" msgstr "" +"Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " +"l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails : ::" #: ../Doc/library/enum.rst:241 msgid "Using automatic values" -msgstr "" +msgstr "Valeurs automatiques" #: ../Doc/library/enum.rst:243 msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "" +"Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" +"`auto` : ::" #: ../Doc/library/enum.rst:254 msgid "" "The values are chosen by :func:`_generate_next_value_`, which can be " "overridden::" msgstr "" +"Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " +"être redéfinie : ::" #: ../Doc/library/enum.rst:272 msgid "" @@ -238,14 +308,18 @@ msgid "" "the next :class:`int` in sequence with the last :class:`int` provided, but " "the way it does this is an implementation detail and may change." msgstr "" +"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" +"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " +"mais la séquence générée dépend de l'implémentation Python." #: ../Doc/library/enum.rst:277 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/enum.rst:279 msgid "Iterating over the members of an enum does not provide the aliases::" msgstr "" +"Itérer sur les membres d'une énumération ne parcourt pas les alias : ::" #: ../Doc/library/enum.rst:284 msgid "" @@ -259,6 +333,8 @@ msgid "" "The ``__members__`` attribute can be used for detailed programmatic access " "to the enumeration members. For example, finding all the aliases::" msgstr "" +"L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " +"de l'énumération. Par exemple, pour trouver tous les alias : ::" #: ../Doc/library/enum.rst:304 msgid "Comparisons" @@ -266,17 +342,20 @@ msgstr "Comparaisons" #: ../Doc/library/enum.rst:306 msgid "Enumeration members are compared by identity::" -msgstr "" +msgstr "Les membres d'une énumération sont comparés par identité : ::" #: ../Doc/library/enum.rst:315 msgid "" "Ordered comparisons between enumeration values are *not* supported. Enum " "members are not integers (but see `IntEnum`_ below)::" msgstr "" +"Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " +"*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " +"`IntEnum`_ ci-dessous) : ::" #: ../Doc/library/enum.rst:323 msgid "Equality comparisons are defined though::" -msgstr "" +msgstr "A contrario, les comparaisons d'égalité existent : ::" #: ../Doc/library/enum.rst:332 msgid "" @@ -284,10 +363,13 @@ msgid "" "(again, :class:`IntEnum` was explicitly designed to behave differently, see " "below)::" msgstr "" +"Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " +"toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " +"différemment, voir ci-dessous) : ::" #: ../Doc/library/enum.rst:341 msgid "Allowed members and attributes of enumerations" -msgstr "" +msgstr "Membres et attributs autorisés dans une énumération" #: ../Doc/library/enum.rst:343 msgid "" @@ -297,16 +379,24 @@ msgid "" "the actual value of an enumeration is. But if the value *is* important, " "enumerations can have arbitrary values." msgstr "" +"Les exemples précédents utilisent des entiers pour énumérer les valeurs. " +"C'est un choix concis et pratique (et implémenté par défaut dans l'`API par " +"fonction`_), mais ce n'est pas une obligation. Dans la majorité des cas, il " +"importe peu de connaître la valeur réelle d'une énumération. Il est " +"toutefois possible de donner une valeur arbitraire aux énumérations, si " +"cette valeur est *vraiment* significative." #: ../Doc/library/enum.rst:349 msgid "" "Enumerations are Python classes, and can have methods and special methods as " "usual. If we have this enumeration::" msgstr "" +"Les énumérations sont des classes Python et peuvent donc avoir des méthodes " +"et des méthodes spéciales. L'énumération suivante : ::" #: ../Doc/library/enum.rst:369 msgid "Then::" -msgstr "" +msgstr "amène : ::" #: ../Doc/library/enum.rst:378 msgid "" @@ -323,6 +413,9 @@ msgid "" "then whatever value(s) were given to the enum member will be passed into " "those methods. See `Planet`_ for an example." msgstr "" +"Remarque : si l'énumération définit :meth:`__new__` ou :meth:`__init__`, " +"alors la (ou les) valeur affectée au membre sera passée à ces méthodes. Voir " +"l'exemple de `Planet`_." #: ../Doc/library/enum.rst:390 msgid "Restricted subclassing of enumerations" @@ -336,7 +429,7 @@ msgstr "" #: ../Doc/library/enum.rst:402 msgid "But this is allowed::" -msgstr "" +msgstr "Mais celui-ci est correct : ::" #: ../Doc/library/enum.rst:413 msgid "" @@ -345,14 +438,18 @@ msgid "" "makes sense to allow sharing some common behavior between a group of " "enumerations. (See `OrderedEnum`_ for an example.)" msgstr "" +"Autoriser l'héritage d'*enums* définissant des membres violerait des " +"invariants sur les types et les instances. D'un autre côté, il est logique " +"d'autoriser un groupe d'énumérations à partager un comportement commun (voir " +"par exemple `OrderedEnum`_)." #: ../Doc/library/enum.rst:420 msgid "Pickling" -msgstr "" +msgstr "Sérialisation" #: ../Doc/library/enum.rst:422 msgid "Enumerations can be pickled and unpickled::" -msgstr "" +msgstr "Les énumérations peuvent être sérialisées et dé-sérialisées : ::" #: ../Doc/library/enum.rst:429 msgid "" @@ -360,33 +457,44 @@ msgid "" "in the top level of a module, since unpickling requires them to be " "importable from that module." msgstr "" +"Les restrictions habituelles de sérialisation s'appliquent : les *enums* à " +"sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " +"module car la dé-sérialisation nécessite que ces *enums* puissent être " +"importés depuis ce module." #: ../Doc/library/enum.rst:435 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." msgstr "" +"Depuis la version 4 du protocole de *pickle*, il est possible de sérialiser " +"facilement des *enums* imbriqués dans d'autres classes." #: ../Doc/library/enum.rst:438 msgid "" "It is possible to modify how Enum members are pickled/unpickled by defining :" "meth:`__reduce_ex__` in the enumeration class." msgstr "" +"Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " +"sérialisation ou la dé-sérialisation des membres d'une énumération." #: ../Doc/library/enum.rst:443 msgid "Functional API" -msgstr "" +msgstr "API par fonction" #: ../Doc/library/enum.rst:445 msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante : ::" #: ../Doc/library/enum.rst:457 msgid "" "The semantics of this API resemble :class:`~collections.namedtuple`. The " "first argument of the call to :class:`Enum` is the name of the enumeration." msgstr "" +"La sémantique de cette API est similaire à :class:`~collections.namedtuple`. " +"Le premier argument de l'appel à :class:`Enum` est le nom de l'énumération." #: ../Doc/library/enum.rst:460 msgid "" @@ -399,6 +507,15 @@ msgid "" "class derived from :class:`Enum` is returned. In other words, the above " "assignment to :class:`Animal` is equivalent to::" msgstr "" +"Le second argument est la *source* des noms des membres de l'énumération. Il " +"peut être une chaîne de caractères contenant les noms séparés par des " +"espaces, une séquence de noms, une séquence de couples clé / valeur ou un " +"dictionnaire (p. ex. un *dict*) de valeurs indexées par des noms. Les deux " +"dernières options permettent d'affecter des valeurs arbitraires aux " +"énumérations ; les autres affectent automatiquement des entiers en " +"commençant par 1 (le paramètre ``start`` permet de changer la valeur de " +"départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à : ::" #: ../Doc/library/enum.rst:476 msgid "" @@ -406,6 +523,9 @@ msgid "" "that ``0`` is ``False`` in a boolean sense, but enum members all evaluate to " "``True``." msgstr "" +"La valeur de départ par défaut est ``1`` et non ``0`` car ``0`` au sens " +"booléen vaut ``False`` alors que tous les membres d'une *enum* valent " +"``True``." #: ../Doc/library/enum.rst:480 msgid "" @@ -415,6 +535,13 @@ msgid "" "function in separate module, and also may not work on IronPython or Jython). " "The solution is to specify the module name explicitly as follows::" msgstr "" +"La sérialisation d'énumérations créées avec l'API en fonction peut être " +"source de problèmes, car celle-ci repose sur des détails d'implémentation de " +"l'affichage de la pile d'appel pour tenter de déterminer dans quel module " +"l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " +"provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " +"Jython). La solution consiste à préciser explicitement le nom du module " +"comme ceci : ::" #: ../Doc/library/enum.rst:490 msgid "" @@ -422,6 +549,9 @@ msgid "" "Enum members will not be unpicklable; to keep errors closer to the source, " "pickling will be disabled." msgstr "" +"Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " +"nouveaux membres de *l'Enum* ne seront pas dé-sérialisables ; pour garder " +"les erreurs au plus près de leur origine, la sérialisation sera désactivée." #: ../Doc/library/enum.rst:494 msgid "" @@ -430,10 +560,15 @@ msgid "" "able to find the class. For example, if the class was made available in " "class SomeData in the global scope::" msgstr "" +"Le nouveau protocole version 4 de *pickle* se base lui aussi, dans certains " +"cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " +"où *pickle* peut trouver la classe. Par exemple, si la classe était " +"disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " +"niveau : ::" #: ../Doc/library/enum.rst:501 msgid "The complete signature is::" -msgstr "" +msgstr "La signature complète est la suivante : ::" #: ../Doc/library/enum.rst:0 msgid "value" @@ -441,29 +576,32 @@ msgstr "valeur" #: ../Doc/library/enum.rst:505 msgid "What the new Enum class will record as its name." -msgstr "" +msgstr "Le nom de la la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "names" -msgstr "" +msgstr "names" #: ../Doc/library/enum.rst:507 msgid "" "The Enum members. This can be a whitespace or comma separated string " "(values will start at 1 unless otherwise specified)::" msgstr "" +"Les membres de l'énumération. Une chaîne de caractères séparés par des " +"espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " +"spécifiée autrement) : ::" #: ../Doc/library/enum.rst:512 msgid "or an iterator of names::" -msgstr "" +msgstr "ou un itérateur sur les noms : ::" #: ../Doc/library/enum.rst:516 msgid "or an iterator of (name, value) pairs::" -msgstr "" +msgstr "ou un itérateur sur les tuples (nom, valeur) : ::" #: ../Doc/library/enum.rst:520 msgid "or a mapping::" -msgstr "" +msgstr "ou une correspondance : ::" #: ../Doc/library/enum.rst:0 msgid "module" @@ -471,15 +609,15 @@ msgstr "module" #: ../Doc/library/enum.rst:524 msgid "name of module where new Enum class can be found." -msgstr "" +msgstr "nom du module dans lequel la classe *Enum* se trouve." #: ../Doc/library/enum.rst:0 msgid "qualname" -msgstr "" +msgstr "qualname" #: ../Doc/library/enum.rst:526 msgid "where in module new Enum class can be found." -msgstr "" +msgstr "localisation de la nouvelle classe *Enum* dans le module." #: ../Doc/library/enum.rst:0 msgid "type" @@ -487,23 +625,23 @@ msgstr "type" #: ../Doc/library/enum.rst:528 msgid "type to mix in to new Enum class." -msgstr "" +msgstr "le type à mélanger dans la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "start" -msgstr "" +msgstr "start" #: ../Doc/library/enum.rst:530 msgid "number to start counting at if only names are passed in." -msgstr "" +msgstr "index de départ si uniquement des noms sont passés." #: ../Doc/library/enum.rst:532 msgid "The *start* parameter was added." -msgstr "" +msgstr "Ajout du paramètre *start*." #: ../Doc/library/enum.rst:537 msgid "Derived Enumerations" -msgstr "" +msgstr "Énumérations dérivées" #: ../Doc/library/enum.rst:540 msgid "IntEnum" @@ -516,21 +654,29 @@ msgid "" "extension, integer enumerations of different types can also be compared to " "each other::" msgstr "" +"La première version dérivée de :class:`Enum` qui existe est aussi une sous-" +"classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " +"comparés à des entiers et, par extension, les comparaisons entre des " +"énumérations entières de type différent sont possibles : ::" #: ../Doc/library/enum.rst:563 msgid "" "However, they still can't be compared to standard :class:`Enum` " "enumerations::" msgstr "" +"Elles ne peuvent cependant toujours pas être comparées à des énumérations " +"standards de :class:`Enum` : ::" #: ../Doc/library/enum.rst:576 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" +"Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " +"pouvait s'y attendre : ::" #: ../Doc/library/enum.rst:587 msgid "IntFlag" -msgstr "" +msgstr "IntFlag" #: ../Doc/library/enum.rst:589 msgid "" @@ -542,14 +688,23 @@ msgid "" "is used. Any operation on an :class:`IntFlag` member besides the bit-wise " "operations will lose the :class:`IntFlag` membership." msgstr "" +"La version dérivée suivante de :class:`Enum` est :class:`IntFlag`. Elle est " +"aussi basée sur :class:`int`, à la différence près que les membres de :class:" +"`IntFlag` peuvent être combinés en utilisant les opérateurs bit-à-bit (&, " +"\\|, ^, ~) et que le résultat reste un membre de :class:`IntFlag`. " +"Cependant, comme le nom l'indique, les membres d'une classe :class:`IntFlag` " +"héritent aussi de :class:`int` et peuvent être utilisés là où un :class:" +"`int` est utilisé. Toute opération sur un membre d'une classe :class:" +"`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" +"class:`IntFlag`." #: ../Doc/library/enum.rst:599 msgid "Sample :class:`IntFlag` class::" -msgstr "" +msgstr "Exemple d'une classe :class:`IntFlag` : ::" #: ../Doc/library/enum.rst:615 msgid "It is also possible to name the combinations::" -msgstr "" +msgstr "Il est aussi possible de nommer les combinaisons : ::" #: ../Doc/library/enum.rst:627 msgid "" @@ -557,12 +712,17 @@ msgid "" "that if no flags are set (the value is 0), its boolean evaluation is :data:" "`False`::" msgstr "" +"Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " +"que, si aucune option n'est activée (la valeur vaut 0), son évaluation " +"booléenne est :data:`False` : ::" #: ../Doc/library/enum.rst:635 msgid "" "Because :class:`IntFlag` members are also subclasses of :class:`int` they " "can be combined with them::" msgstr "" +"Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" +"`int`, ils peuvent être combinés avec eux : ::" #: ../Doc/library/enum.rst:643 msgid "Flag" @@ -577,24 +737,39 @@ msgid "" "specify the values directly it is recommended to use :class:`auto` as the " "value and let :class:`Flag` select an appropriate value." msgstr "" +"La dernière version dérivée est la classe :class:`Flag`. Comme :class:" +"`IntFlag`, les membres d'une classe :class:`Flag` peuvent être combinés en " +"utilisant les opérateurs de comparaison bit-à-bit. Cependant, à la " +"différence de :class:`IntFlag`, ils ne peuvent ni être combinés, ni être " +"comparés avec une autre énumération :class:`Flag`, ni avec :class:`int`. " +"Bien qu'il soit possible de définir directement les valeurs, il est " +"recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " +"choisir une valeur appropriée." #: ../Doc/library/enum.rst:654 msgid "" "Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " "no flags being set, the boolean evaluation is :data:`False`::" msgstr "" +"Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" +"class:`Flag` n'active aucune option, l'évaluation booléenne de la " +"comparaison est :data:`False` : ::" #: ../Doc/library/enum.rst:668 msgid "" "Individual flags should have values that are powers of two (1, 2, 4, " "8, ...), while combinations of flags won't::" msgstr "" +"Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " +"4, 8, ...) mais pas les combinaisons : ::" #: ../Doc/library/enum.rst:680 msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" msgstr "" +"Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " +"booléenne : ::" #: ../Doc/library/enum.rst:696 msgid "" @@ -606,6 +781,14 @@ msgid "" "will not do; for example, when integer constants are replaced with " "enumerations, or for interoperability with other systems." msgstr "" +"Dans la plupart des cas, il est fortement recommandé d'utiliser :class:" +"`Enum` et :class:`Flag` pour écrire du code nouveau, car :class:`IntEnum` " +"et :class:`IntFlag` violent certains principes sémantiques d'une énumération " +"(en pouvant être comparées à des entiers et donc, par transitivité, à " +"d'autres énumérations). :class:`IntEnum` et :class:`IntFlag` ne doivent être " +"utilisées que dans les cas où :class:`Enum` et :class:`Flag` ne suffisent " +"pas ; par exemple quand des constantes entières sont remplacées par des " +"énumérations, ou pour l’interopérabilité avec d'autres systèmes." #: ../Doc/library/enum.rst:706 msgid "Others" @@ -616,6 +799,8 @@ msgid "" "While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " "simple to implement independently::" msgstr "" +"Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " +"très simple à implémenter hors de ce module : ::" #: ../Doc/library/enum.rst:714 msgid "" @@ -623,10 +808,13 @@ msgid "" "example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" "`int`." msgstr "" +"Ceci montre comment définir des énumérations dérivées similaires ; par " +"exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " +"de :class:`int`." #: ../Doc/library/enum.rst:717 msgid "Some rules:" -msgstr "" +msgstr "Quelques règles :" #: ../Doc/library/enum.rst:719 msgid "" @@ -634,6 +822,9 @@ msgid "" "`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " "above." msgstr "" +"Pour hériter de :class:`Enum`, les types de mélange doivent être placés " +"avant la classe :class:`Enum` elle-même dans la liste des classes de base, " +"comme dans l'exemple de :class:`IntEnum` ci-dessus." #: ../Doc/library/enum.rst:722 msgid "" @@ -643,6 +834,11 @@ msgid "" "methods and don't specify another data type such as :class:`int` or :class:" "`str`." msgstr "" +"Même si une classe :class:`Enum` peut avoir des membres de n'importe quel " +"type, dès lors qu'un type de mélange est ajouté, tous les membres doivent " +"être de ce type, p. ex. :class:`int` ci-dessus. Cette restriction ne " +"s'applique pas aux types de mélange qui ne font qu'ajouter des méthodes et " +"ne définissent pas de type de données, tels :class:`int` ou :class:`str`. " #: ../Doc/library/enum.rst:727 msgid "" @@ -650,6 +846,9 @@ msgid "" "same* as the enum member itself, although it is equivalent and will compare " "equal." msgstr "" +"Quand un autre type de données est mélangé, l'attribut :attr:`value` n'est " +"*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " +"équivalents et égaux en comparaison." #: ../Doc/library/enum.rst:730 msgid "" @@ -657,6 +856,10 @@ msgid "" "`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or `" "%h` for IntEnum) treat the enum member as its mixed-in type." msgstr "" +"Formatage de style *%* : `%s` et `%r` appellent respectivement les méthodes :" +"meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; les autres " +"codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au membre comme si " +"celui-ci était converti en son type de mélange." #: ../Doc/library/enum.rst:733 msgid "" @@ -665,10 +868,14 @@ msgid "" "`Enum` class's :func:`str` or :func:`repr` is desired, use the `!s` or `!r` " "format codes." msgstr "" +":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." +"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " +"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " +"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." #: ../Doc/library/enum.rst:740 msgid "Interesting examples" -msgstr "" +msgstr "Exemples intéressants" #: ../Doc/library/enum.rst:742 msgid "" @@ -677,34 +884,44 @@ msgid "" "all. Here are recipes for some different types of enumerations that can be " "used directly, or as examples for creating one's own." msgstr "" +"Bien que :class:`Enum`, :class:`IntEnum`, :class:`IntFlag` et :class:`Flag` " +"soient conçues pour répondre à la majorité des besoins, elles ne peuvent " +"répondre à tous. Voici quelques recettes d'énumération qui peuvent être " +"réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " +"propres énumérations." #: ../Doc/library/enum.rst:749 msgid "Omitting values" -msgstr "" +msgstr "Omettre les valeurs" #: ../Doc/library/enum.rst:751 msgid "" "In many use-cases one doesn't care what the actual value of an enumeration " "is. There are several ways to define this type of simple enumeration:" msgstr "" +"Dans de nombreux cas, la valeur réelle de l'énumération n'a pas " +"d'importance. Il y a plusieurs façons de définir ce type d'énumération " +"simple :" #: ../Doc/library/enum.rst:754 msgid "use instances of :class:`auto` for the value" -msgstr "" +msgstr "affecter des instances de :class:`auto` aux valeurs" #: ../Doc/library/enum.rst:755 msgid "use instances of :class:`object` as the value" -msgstr "" +msgstr "affecter des instances de :class:`object` aux valeurs" #: ../Doc/library/enum.rst:756 msgid "use a descriptive string as the value" -msgstr "" +msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" #: ../Doc/library/enum.rst:757 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" msgstr "" +"affecter un n-uplet aux valeurs et définir une méthode :meth:`__new__` pour " +"remplacer les n-uplets avec un :class:`int`" #: ../Doc/library/enum.rst:760 msgid "" @@ -712,44 +929,51 @@ msgid "" "important, and also enables one to add, remove, or reorder members without " "having to renumber the remaining members." msgstr "" +"Utiliser une de ces méthodes indique à l'utilisateur que les valeurs n'ont " +"pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de ré-" +"ordonner les membres sans avoir à ré-énumérer les membres existants." #: ../Doc/library/enum.rst:764 msgid "" "Whichever method you choose, you should provide a :meth:`repr` that also " "hides the (unimportant) value::" msgstr "" +"Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " +"qui masque les valeurs (pas importantes de toute façon) : ::" #: ../Doc/library/enum.rst:774 msgid "Using :class:`auto`" -msgstr "" +msgstr "Avec :class:`auto`" #: ../Doc/library/enum.rst:776 msgid "Using :class:`auto` would look like::" -msgstr "" +msgstr "On utilise :class:`auto` de la manière suivante : ::" #: ../Doc/library/enum.rst:788 msgid "Using :class:`object`" -msgstr "" +msgstr "Avec :class:`object`" #: ../Doc/library/enum.rst:790 msgid "Using :class:`object` would look like::" -msgstr "" +msgstr "On utilise :class:`object` de la manière suivante : ::" #: ../Doc/library/enum.rst:802 msgid "Using a descriptive string" -msgstr "" +msgstr "Avec une chaîne de caractères de description" #: ../Doc/library/enum.rst:804 msgid "Using a string as the value would look like::" -msgstr "" +msgstr "On utilise une chaîne de caractères de la manière suivante : ::" #: ../Doc/library/enum.rst:818 msgid "Using a custom :meth:`__new__`" -msgstr "" +msgstr "Avec une méthode ad-hoc :meth:`__new__`" #: ../Doc/library/enum.rst:820 msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "" +"On utilise une méthode :meth:`__new__` d'énumération de la manière " +"suivante : ::" #: ../Doc/library/enum.rst:842 msgid "" @@ -757,6 +981,10 @@ msgid "" "members; it is then replaced by Enum's :meth:`__new__` which is used after " "class creation for lookup of existing members." msgstr "" +"La méthode :meth:`__new__`, si définie, est appelée à la création des " +"membres de l'énumération ; elle est ensuite remplacée par la méthode :meth:" +"`__new__` de *Enum*, qui est utilisée après la création de la classe pour la " +"recherche des membres existants." #: ../Doc/library/enum.rst:848 msgid "OrderedEnum" @@ -768,6 +996,10 @@ msgid "" "maintains the normal :class:`Enum` invariants (such as not being comparable " "to other enumerations)::" msgstr "" +"Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " +"par conséquent, respecte les invariants classiques de :class:`Enum` (comme " +"par exemple l'impossibilité de pouvoir être comparée à d'autres " +"énumérations) ::" #: ../Doc/library/enum.rst:884 msgid "DuplicateFreeEnum" @@ -778,6 +1010,7 @@ msgid "" "Raises an error if a duplicate member name is found instead of creating an " "alias::" msgstr "" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias : ::" #: ../Doc/library/enum.rst:911 msgid "" @@ -785,30 +1018,37 @@ msgid "" "behaviors as well as disallowing aliases. If the only desired change is " "disallowing aliases, the :func:`unique` decorator can be used instead." msgstr "" +"Cet exemple d'héritage de *Enum* est intéressant pour ajouter ou modifier " +"des comportements comme interdire les alias. Si vous ne souhaitez " +"qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." #: ../Doc/library/enum.rst:917 msgid "Planet" -msgstr "" +msgstr "Planet" #: ../Doc/library/enum.rst:919 msgid "" "If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " "member will be passed to those methods::" msgstr "" +"Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " +"l'énumération sera passée à ces méthodes : ::" #: ../Doc/library/enum.rst:947 msgid "How are Enums different?" -msgstr "" +msgstr "En quoi les *Enums* sont différentes ?" #: ../Doc/library/enum.rst:949 msgid "" "Enums have a custom metaclass that affects many aspects of both derived Enum " "classes and their instances (members)." msgstr "" +"Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects des " +"classes dérivées de *Enum* et de leur instances (membres)." #: ../Doc/library/enum.rst:954 msgid "Enum Classes" -msgstr "" +msgstr "Classes *Enum*" #: ../Doc/library/enum.rst:956 msgid "" @@ -823,7 +1063,7 @@ msgstr "" #: ../Doc/library/enum.rst:966 msgid "Enum Members (aka instances)" -msgstr "" +msgstr "Membres d'Enum (c.-à-d. instances)" #: ../Doc/library/enum.rst:968 msgid "" @@ -833,14 +1073,20 @@ msgid "" "no new ones are ever instantiated by returning only the existing member " "instances." msgstr "" +"Il est intéressant de souligner que les membres d'une *Enum* sont des " +"singletons. La classe :class:`EnumMeta` les crée tous au moment de la " +"création de la classe :class:`Enum` elle-même et implémente une méthode :" +"meth:`__new__` spécifique. Cette méthode renvoie toujours les instances de " +"membres déjà existantes pour être sûr de ne jamais en instancier de " +"nouvelles." #: ../Doc/library/enum.rst:976 msgid "Finer Points" -msgstr "" +msgstr "Aspects approfondis" #: ../Doc/library/enum.rst:979 msgid "Supported ``__dunder__`` names" -msgstr "" +msgstr "Noms de la forme ``__dunder__`` disponibles" #: ../Doc/library/enum.rst:981 msgid "" @@ -854,41 +1100,55 @@ msgid "" "is also a very good idea to set the member's :attr:`_value_` appropriately. " "Once all the members are created it is no longer used." msgstr "" +"La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer les " +"membres de l'énumération ; affecter correctement l'attribut :attr:`_value_` " +"du membre est également conseillé. Une fois que tous les membres ont été " +"créés, cette méthode n'est plus utilisée." #: ../Doc/library/enum.rst:990 msgid "Supported ``_sunder_`` names" -msgstr "" +msgstr "Noms de la forme ``_sunder_`` disponibles" #: ../Doc/library/enum.rst:992 msgid "``_name_`` -- name of the member" -msgstr "" +msgstr "``_name_`` -- nom du membre" #: ../Doc/library/enum.rst:993 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" +"``_value_`` -- valeur du membre ; il est possible d'y accéder ou de la muer " +"dans ``__new__``" #: ../Doc/library/enum.rst:995 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" msgstr "" +"``_missing_`` -- une fonction de recherche qui est appelée quand la valeur " +"n'est pas trouvée ; elle peut être redéfinie" #: ../Doc/library/enum.rst:997 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" msgstr "" +"``_order_`` -- utilisé en Python 2 ou 3 pour s'assurer que l'ordre des " +"membres est cohérent (attribut de classe, supprimé durant la création de la " +"classe)" #: ../Doc/library/enum.rst:999 msgid "" "``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" "`auto` to get an appropriate value for an enum member; may be overridden" msgstr "" +"``_generate_next_value_`` -- utilisée par l' `API par fonction`_ et par :" +"class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " +"*l'enum* ; elle peut être redéfinie" #: ../Doc/library/enum.rst:1003 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" -msgstr "" +msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" #: ../Doc/library/enum.rst:1005 msgid "" @@ -896,16 +1156,21 @@ msgid "" "can be provided. It will be checked against the actual order of the " "enumeration and raise an error if the two do not match::" msgstr "" +"Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" +"`_order_` peut être défini. Il sera comparé au véritable ordre de " +"l'énumération et lève une erreur si les deux ne correspondent pas : ::" #: ../Doc/library/enum.rst:1021 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." msgstr "" +"En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " +"définition est perdu avant de pouvoir être enregistré." #: ../Doc/library/enum.rst:1025 msgid "``Enum`` member type" -msgstr "" +msgstr "Type des membres de ``Enum``" #: ../Doc/library/enum.rst:1027 msgid "" @@ -916,10 +1181,17 @@ msgid "" "`Enum` member you are looking for (this is another good reason to use all-" "uppercase names for members)::" msgstr "" +"Les membres de :class:`Enum` sont des instances de leur classe :class:" +"`Enum`. On y accède normalement par ``ClasseEnum.membre``. Dans certains " +"cas, on peut également y accéder par ``ClasseEnum.membre.membre``, mais ceci " +"est fortement déconseillé car cette indirection est susceptible d'échouer, " +"ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " +"(c'est une autre bonne raison pour définir tous les noms des membres en " +"majuscules) : ::" #: ../Doc/library/enum.rst:1048 msgid "Boolean value of ``Enum`` classes and members" -msgstr "" +msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" #: ../Doc/library/enum.rst:1050 msgid "" @@ -929,14 +1201,19 @@ msgid "" "own Enum's boolean evaluation depend on the member's value add the following " "to your class::" msgstr "" +"Les membres d'une classe :class:`Enum` mélangée avec un type non dérivé de :" +"class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " +"règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " +"faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " +"membre, il faut ajouter le code suivant à votre classe : ::" #: ../Doc/library/enum.rst:1059 msgid ":class:`Enum` classes always evaluate as :data:`True`." -msgstr "" +msgstr "Les classes :class:`Enum` valent toujours :data:`True`." #: ../Doc/library/enum.rst:1063 msgid "``Enum`` classes with methods" -msgstr "" +msgstr "Classes ``Enum`` avec des méthodes" #: ../Doc/library/enum.rst:1065 msgid "" @@ -944,13 +1221,19 @@ msgid "" "class above, those methods will show up in a :func:`dir` of the member, but " "not of the class::" msgstr "" +"Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " +"la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" +"`dir` sur le membre, mais pas avec un appel sur la classe : ::" #: ../Doc/library/enum.rst:1076 msgid "Combining members of ``Flag``" -msgstr "" +msgstr "Combinaison de membres de ``Flag``" #: ../Doc/library/enum.rst:1078 msgid "" "If a combination of Flag members is not named, the :func:`repr` will include " "all named flags and all named combinations of flags that are in the value::" msgstr "" +"Si une valeur issue de la combinaison de membres de *Flag* n'est pas " +"associée explicitement à un membre, la fonction :func:`repr` inclut tous les " +"membres et toutes les combinaisons de membres présents dans cette valeur : ::" diff --git a/library/getopt.po b/library/getopt.po index 6fb0e7481..3e6ec25dc 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -20,6 +20,7 @@ msgstr "" #: ../Doc/library/getopt.rst:2 msgid ":mod:`getopt` --- C-style parser for command line options" msgstr "" +":mod:`getopt` – Analyseur de style C pour les options de ligne de commande" #: ../Doc/library/getopt.rst:8 msgid "**Source code:** :source:`Lib/getopt.py`" @@ -33,6 +34,12 @@ msgid "" "write less code and get better help and error messages should consider using " "the :mod:`argparse` module instead." msgstr "" +"Le module :mod:`getopt` est un analyseur pour les options de ligne de " +"commande dont l’API est conçue pour être familière aux utilisateurs de la " +"fonction C :c:func:`getopt`. Les utilisateurs qui ne connaissent pas la " +"fonction :c:func:`getopt` ou qui aimeraient écrire moins de code, obtenir " +"une meilleure aide et de meilleurs messages d’erreur devraient utiliser le " +"module :mod:`argparse`." #: ../Doc/library/getopt.rst:20 msgid "" @@ -42,10 +49,16 @@ msgid "" "and '``--``'). Long options similar to those supported by GNU software may " "be used as well via an optional third argument." msgstr "" +"Ce module aide les scripts à analyser les arguments de ligne de commande " +"contenus dans ``sys.argv``. Il prend en charge les mêmes conventions que la " +"fonction UNIX :c:func:`getopt` (y compris les significations spéciales des " +"arguments de la forme ``-`` et ``--``). De longues options similaires à " +"celles prises en charge par le logiciel GNU peuvent également être utilisées " +"via un troisième argument facultatif." #: ../Doc/library/getopt.rst:26 msgid "This module provides two functions and an exception:" -msgstr "" +msgstr "Ce module fournit deux fonctions et une exception :" #: ../Doc/library/getopt.rst:32 msgid "" @@ -56,6 +69,14 @@ msgid "" "argument followed by a colon (``':'``; i.e., the same format that Unix :c:" "func:`getopt` uses)." msgstr "" +"Analyse les options de ligne de commande et la liste des paramètres. *args* " +"est la liste d’arguments à analyser, sans la référence principale au " +"programme en cours d’exécution. En général, cela signifie ``sys.argv[1:]`` " +"(donc que le premier argument contenant le nom du programme n’est pas dans " +"la liste). *shortopts* est la chaîne de lettres d’options que le script doit " +"reconnaître, avec des options qui requièrent un argument suivi d’un signe " +"deux-points (``:``, donc le même format que la version Unix de :c:func:" +"`getopt` utilise)." #: ../Doc/library/getopt.rst:40 msgid "" @@ -63,6 +84,9 @@ msgid "" "arguments are considered also non-options. This is similar to the way non-" "GNU Unix systems work." msgstr "" +"Contrairement au :c:func:`getopt` GNU, après un argument n'appartenant pas à " +"une option, aucun argument ne sera considéré comme appartenant à une option. " +"Ceci est similaire à la façon dont les systèmes UNIX non-GNU fonctionnent." #: ../Doc/library/getopt.rst:44 msgid "" @@ -77,6 +101,17 @@ msgid "" "option ``--fo`` will match as ``--foo``, but ``--f`` will not match " "uniquely, so :exc:`GetoptError` will be raised." msgstr "" +"*longopts*, si spécifié, doit être une liste de chaînes avec les noms des " +"options longues qui doivent être prises en charge. Le premier ``'--'`` ne " +"dois pas figurer dans le nom de l’option. Les options longues qui requièrent " +"un argument doivent être suivies d’un signe égal (``'='``). Les arguments " +"facultatifs ne sont pas pris en charge. Pour accepter uniquement les options " +"longues, *shortopts* doit être une chaîne vide. Les options longues sur la " +"ligne de commande peuvent être reconnues tant qu’elles fournissent un " +"préfixe du nom de l’option qui correspond exactement à l’une des options " +"acceptées. Par exemple, si *longopts* est ``['foo', 'frob']``, l’option ``--" +"fo`` correspondra à ``--foo``, mais ``--f`` ne correspondra pas de façon " +"unique, donc :exc:`GetoptError` sera levé." #: ../Doc/library/getopt.rst:55 msgid "" @@ -90,6 +125,17 @@ msgid "" "list in the same order in which they were found, thus allowing multiple " "occurrences. Long and short options may be mixed." msgstr "" +"La valeur de retour se compose de deux éléments : le premier est une liste " +"de paires ``(option, value)``, la deuxième est la liste des arguments de " +"programme laissés après que la liste d’options est été dépouillée (il s’agit " +"d’une tranche de fin de *args*). Chaque paire option-valeur retournée a " +"l’option comme premier élément, préfixée avec un trait d'union pour les " +"options courtes (par exemple, ``'-x'``) ou deux tirets pour les options " +"longues (par exemple, ``'--long-option'``), et l’argument option comme " +"deuxième élément, ou une chaîne vide si le option n’a aucun argument. Les " +"options se trouvent dans la liste dans l’ordre dans lequel elles ont été " +"trouvées, permettant ainsi plusieurs occurrences. Les options longues et " +"courtes peuvent être mélangées." #: ../Doc/library/getopt.rst:68 msgid "" @@ -98,6 +144,10 @@ msgid "" "intermixed. The :func:`getopt` function stops processing options as soon as " "a non-option argument is encountered." msgstr "" +"Cette fonction fonctionne comme :func:`getopt`, sauf que le mode de *scan* " +"GNU est utilisé par défaut. Cela signifie que les arguments option et non-" +"option peuvent être **intermixés**. La fonction :func:`getopt` arrête le " +"traitement des options dès qu’un argument de non-option est rencontré." #: ../Doc/library/getopt.rst:73 msgid "" @@ -105,6 +155,9 @@ msgid "" "environment variable :envvar:`POSIXLY_CORRECT` is set, then option " "processing stops as soon as a non-option argument is encountered." msgstr "" +"Si le premier caractère de la chaîne d’options est ``+``, ou si la variable " +"d’environnement :envvar:`POSIXLY_CORRECT` est définie, le traitement des " +"options s’arrête dès qu’un argument non-option est rencontré." #: ../Doc/library/getopt.rst:80 msgid "" @@ -116,22 +169,30 @@ msgid "" "give the error message and related option; if there is no specific option to " "which the exception relates, :attr:`opt` is an empty string." msgstr "" +"Cette exception est levée lorsqu’une option non reconnue est trouvée dans la " +"liste d’arguments ou lorsqu’une option nécessitant un argument n’en a pas " +"reçu. L’argument de l’exception est une chaîne de caractères indiquant la " +"cause de l’erreur. Pour les options longues, un argument donné à une option " +"qui n’en exige pas un entraîne également le levage de cette exception. Les " +"attributs :attr:`msg` et :attr:`opt` donnent le message d’erreur et l’option " +"connexe. S’il n’existe aucune option spécifique à laquelle l’exception se " +"rapporte, :attr:`opt` est une chaîne vide." #: ../Doc/library/getopt.rst:91 msgid "Alias for :exc:`GetoptError`; for backward compatibility." -msgstr "" +msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité." #: ../Doc/library/getopt.rst:93 msgid "An example using only Unix style options:" -msgstr "" +msgstr "Un exemple utilisant uniquement les options de style UNIX :" #: ../Doc/library/getopt.rst:105 msgid "Using long option names is equally easy:" -msgstr "" +msgstr "L’utilisation de noms d’options longs est tout aussi simple :" #: ../Doc/library/getopt.rst:118 msgid "In a script, typical usage is something like this::" -msgstr "" +msgstr "Dans un script, l’utilisation typique ressemble à ceci ::" #: ../Doc/library/getopt.rst:147 msgid "" @@ -139,11 +200,16 @@ msgid "" "code and more informative help and error messages by using the :mod:" "`argparse` module::" msgstr "" +"Notez qu’une interface de ligne de commande équivalente peut être produite " +"avec moins de code et des messages d’erreur et d’aide plus informatifs à " +"l’aide du module :mod:`argparse` module ::" #: ../Doc/library/getopt.rst:162 msgid "Module :mod:`argparse`" -msgstr "" +msgstr "Module :mod:`argparse`" #: ../Doc/library/getopt.rst:163 msgid "Alternative command line option and argument parsing library." msgstr "" +"Option de ligne de commande alternative et bibliothèque d’analyse " +"d’arguments." diff --git a/library/heapq.po b/library/heapq.po index 2a21d894c..363116a55 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/heapq.rst:2 msgid ":mod:`heapq` --- Heap queue algorithm" -msgstr "" +msgstr ":mod:`heapq` — File de priorité basée sur un tas" #: ../Doc/library/heapq.rst:12 msgid "**Source code:** :source:`Lib/heapq.py`" @@ -30,6 +30,8 @@ msgid "" "This module provides an implementation of the heap queue algorithm, also " "known as the priority queue algorithm." msgstr "" +"Ce module expose une implémentation de l'algorithme de file de priorité, " +"basée sur un tas." #: ../Doc/library/heapq.rst:19 msgid "" @@ -40,6 +42,13 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that its smallest element is always the root, ``heap[0]``." msgstr "" +"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un " +"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation " +"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= " +"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour " +"contenter l'opérateur de comparaison, les éléments inexistants sont " +"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son " +"plus petit élément est toujours la racine, ``tas[0]``." #: ../Doc/library/heapq.rst:26 msgid "" @@ -51,6 +60,13 @@ msgid "" "\"max heap\" is more common in texts because of its suitability for in-place " "sorting)." msgstr "" +"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " +"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation " +"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " +"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " +"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " +"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " +"la littérature car il permet le classement sans tampon)." #: ../Doc/library/heapq.rst:33 msgid "" @@ -58,12 +74,18 @@ msgid "" "surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains " "the heap invariant!" msgstr "" +"Ces deux points permettent d'aborder le tas comme une liste Python standard " +"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap." +"sort()`` ne modifie pas le tas !" #: ../Doc/library/heapq.rst:37 msgid "" "To create a heap, use a list initialized to ``[]``, or you can transform a " "populated list into a heap via function :func:`heapify`." msgstr "" +"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez " +"une liste existante et transformez la en tas à l'aide de la fonction :func:" +"`heapify`." #: ../Doc/library/heapq.rst:40 msgid "The following functions are provided:" @@ -72,6 +94,8 @@ msgstr "Les fonctions suivantes sont fournies :" #: ../Doc/library/heapq.rst:45 msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." msgstr "" +"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " +"tas." #: ../Doc/library/heapq.rst:50 msgid "" @@ -79,6 +103,9 @@ msgid "" "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " "the smallest item without popping it, use ``heap[0]``." msgstr "" +"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si " +"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " +"plus petit élément sans le retirer, utilisez ``heap[0]``." #: ../Doc/library/heapq.rst:57 msgid "" @@ -86,10 +113,15 @@ msgid "" "*heap*. The combined action runs more efficiently than :func:`heappush` " "followed by a separate call to :func:`heappop`." msgstr "" +"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément " +"de *heap*. Cette action combinée est plus efficace que :func:`heappush` " +"suivie par un appel séparé à :func:`heappop`." #: ../Doc/library/heapq.rst:64 msgid "Transform list *x* into a heap, in-place, in linear time." msgstr "" +"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " +"linéaire." #: ../Doc/library/heapq.rst:69 msgid "" @@ -97,6 +129,9 @@ msgid "" "*item*. The heap size doesn't change. If the heap is empty, :exc:" "`IndexError` is raised." msgstr "" +"Extraie le plus petit élément de *heap* et introduit le nouvel élément " +"*item*. La taille du tas ne change pas. Si le tas est vide, une exception :" +"exc:`IndexError` est levée." #: ../Doc/library/heapq.rst:72 msgid "" @@ -105,6 +140,10 @@ msgid "" "heap. The pop/push combination always returns an element from the heap and " "replaces it with *item*." msgstr "" +"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` " +"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas " +"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément " +"du tas et le remplace par *item*." #: ../Doc/library/heapq.rst:77 msgid "" @@ -113,10 +152,15 @@ msgid "" "combination returns the smaller of the two values, leaving the larger value " "on the heap." msgstr "" +"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si " +"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. " +"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs " +"et laisse la plus grande sur le tas." #: ../Doc/library/heapq.rst:83 msgid "The module also offers three general purpose functions based on heaps." msgstr "" +"Ce module contient également trois fonctions génériques utilisant les tas." #: ../Doc/library/heapq.rst:88 msgid "" @@ -124,6 +168,9 @@ msgid "" "timestamped entries from multiple log files). Returns an :term:`iterator` " "over the sorted values." msgstr "" +"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par " +"exemple, fusionne des entrées datées provenant de multiples journaux " +"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées." #: ../Doc/library/heapq.rst:92 msgid "" @@ -131,6 +178,9 @@ msgid "" "does not pull the data into memory all at once, and assumes that each of the " "input streams is already sorted (smallest to largest)." msgstr "" +"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un " +"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose " +"que chaque flux d'entrée est déjà classé (en ordre croissant)." #: ../Doc/library/heapq.rst:96 msgid "" @@ -184,10 +234,16 @@ msgid "" "`max` functions. If repeated usage of these functions is required, consider " "turning the iterable into an actual heap." msgstr "" +"Les deux fonctions précédentes sont les plus efficaces pour des petites " +"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la " +"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace " +"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez " +"utiliser ces fonctions de façon répétée, il est préférable de transformer " +"l'itérable en tas." #: ../Doc/library/heapq.rst:134 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/heapq.rst:136 msgid "" @@ -195,52 +251,71 @@ msgid "" "pushing all values onto a heap and then popping off the smallest values one " "at a time::" msgstr "" +"Un `tri par tas `_ peut être " +"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant " +"l'extraction des éléments un par un ::" #: ../Doc/library/heapq.rst:149 msgid "" "This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " "implementation is not stable." msgstr "" +"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:" +"`sorted`, cette implémentation n'est pas stable." #: ../Doc/library/heapq.rst:152 msgid "" "Heap elements can be tuples. This is useful for assigning comparison values " "(such as task priorities) alongside the main record being tracked::" msgstr "" +"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour " +"assigner des valeurs de comparaison (par exemple, des priorités de tâches) " +"en plus de l'élément qui est suivi ::" #: ../Doc/library/heapq.rst:165 msgid "Priority Queue Implementation Notes" -msgstr "" +msgstr "Notes d'implémentation de la file de priorité" #: ../Doc/library/heapq.rst:167 msgid "" "A `priority queue `_ is common " "use for a heap, and it presents several implementation challenges:" msgstr "" +"Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " +"d'implémentation :" #: ../Doc/library/heapq.rst:170 msgid "" "Sort stability: how do you get two tasks with equal priorities to be " "returned in the order they were originally added?" msgstr "" +"Stabilité du classement : comment s'assurer que deux tâches avec la même " +"priorité sont renvoyées dans l'ordre de leur ajout ?" #: ../Doc/library/heapq.rst:173 msgid "" "Tuple comparison breaks for (priority, task) pairs if the priorities are " "equal and the tasks do not have a default comparison order." msgstr "" +"La comparaison des couples (priorité, tâche) échoue si les priorités sont " +"identiques et que les tâches n'ont pas de relation d'ordre par défaut." #: ../Doc/library/heapq.rst:176 msgid "" "If the priority of a task changes, how do you move it to a new position in " "the heap?" msgstr "" +"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " +"position dans le tas ?" #: ../Doc/library/heapq.rst:179 msgid "" "Or if a pending task needs to be deleted, how do you find it and remove it " "from the queue?" msgstr "" +"Si une tâche en attente doit être supprimée, comment la trouver et la " +"supprimer de la file ?" #: ../Doc/library/heapq.rst:182 msgid "" @@ -250,6 +325,13 @@ msgid "" "returned in the order they were added. And since no two entry counts are the " "same, the tuple comparison will never attempt to directly compare two tasks." msgstr "" +"Une solution aux deux premiers problèmes consiste à stocker les entrées sous " +"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la " +"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux " +"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. " +"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la " +"comparaison des triplets ne va jamais chercher à comparer des tâches entre " +"elles." #: ../Doc/library/heapq.rst:188 msgid "" @@ -257,6 +339,9 @@ msgid "" "changes to its priority or removing it entirely. Finding a task can be done " "with a dictionary pointing to an entry in the queue." msgstr "" +"Le problème restant consiste à trouver une tâche en attente et modifier sa " +"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un " +"dictionnaire pointant vers une entrée dans la file." #: ../Doc/library/heapq.rst:192 msgid "" @@ -264,10 +349,14 @@ msgid "" "would break the heap structure invariants. So, a possible solution is to " "mark the entry as removed and add a new entry with the revised priority::" msgstr "" +"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " +"romprait l'invariant de la structure de tas. Une solution possible est de " +"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " +"priorité modifiée ::" #: ../Doc/library/heapq.rst:226 msgid "Theory" -msgstr "" +msgstr "Théorie" #: ../Doc/library/heapq.rst:228 msgid "" @@ -276,12 +365,19 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that ``a[0]`` is always its smallest element." msgstr "" +"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= " +"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour " +"simplifier la comparaison, les éléments inexistants sont considérés comme " +"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " +"petit élément." #: ../Doc/library/heapq.rst:233 msgid "" "The strange invariant above is meant to be an efficient memory " "representation for a tournament. The numbers below are *k*, not ``a[k]``::" msgstr "" +"L'invariant étrange ci-dessus est une représentation efficace en mémoire " +"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" #: ../Doc/library/heapq.rst:246 msgid "" @@ -295,6 +391,17 @@ msgid "" "two cells it tops contain three different items, but the top cell \"wins\" " "over the two topped cells." msgstr "" +"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k" +"+2``. Dans les tournois binaires habituels dans les compétitions sportives, " +"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons " +"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient " +"ses adversaires. Cependant, dans de nombreuses applications informatiques de " +"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. " +"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa " +"promotion par un autre élément à un plus bas niveau. La règle devient alors " +"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments " +"différents, mais le nœud supérieur « gagne » contre les deux nœuds " +"inférieurs." #: ../Doc/library/heapq.rst:255 msgid "" @@ -306,6 +413,15 @@ msgid "" "logarithmic on the total number of items in the tree. By iterating over all " "items, you get an O(n log n) sort." msgstr "" +"Si cet invariant de tas est vérifié à tout instant, alors l'élément à " +"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " +"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " +"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " +"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " +"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " +"approche a un coût logarithmique par rapport au nombre total d'éléments dans " +"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n " +"log n) opérations." #: ../Doc/library/heapq.rst:262 msgid "" @@ -318,6 +434,16 @@ msgid "" "easily go into the heap. So, a heap is a good structure for implementing " "schedulers (this is what I used for my MIDI sequencer :-)." msgstr "" +"Une propriété agréable de cet algorithme est qu'il possible d'insérer " +"efficacement de nouveaux éléments en cours de classement, du moment que les " +"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " +"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " +"liste des événements arrivants et que la condition de « victoire » est le " +"plus petit temps d'exécution planifié. Lorsqu'un événement programme " +"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " +"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " +"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon " +"séquenceur MIDI ☺)." #: ../Doc/library/heapq.rst:271 msgid "" @@ -327,6 +453,11 @@ msgid "" "average case. However, there are other representations which are more " "efficient overall, yet the worst cases might be terrible." msgstr "" +"Plusieurs structures ont été étudiées en détail pour implémenter des " +"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " +"rapides, leur vitesse est presque constante et le pire cas ne diffère pas " +"trop du cas moyen. S'il existe des représentations qui sont plus efficaces " +"en général, les pires cas peuvent être terriblement mauvais." #: ../Doc/library/heapq.rst:277 msgid "" @@ -341,6 +472,18 @@ msgid "" "which are twice the size of the memory for random input, and much better for " "input fuzzily ordered." msgstr "" +"Les tas sont également très utiles pour ordonner les données sur de gros " +"disques. Vous savez probablement qu'un gros tri implique la production de " +"séquences pré-classées (dont la taille est généralement liée à la quantité " +"de mémoire CPU disponible), suivie par une passe de fusion qui est " +"généralement organisée de façon très intelligente [#]_. Il est très " +"important que le classement initial produise des séquences les plus longues " +"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en " +"utilisant toute la mémoire disponible pour stocker un tournoi, vous " +"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la " +"séquence courante, vous produirez des séquences d'une taille égale au double " +"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée " +"approximativement triée." #: ../Doc/library/heapq.rst:287 msgid "" @@ -352,12 +495,23 @@ msgid "" "the first heap is melting. When the first heap completely vanishes, you " "switch heaps and start a new run. Clever and quite effective!" msgstr "" +"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " +"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " +"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " +"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " +"mémoire libérée peut être réutilisée immédiatement pour progressivement " +"construire un deuxième tas, qui croit à la même vitesse que le premier " +"décroît. Lorsque le premier tas a complètement disparu, vous échangez les " +"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" #: ../Doc/library/heapq.rst:295 msgid "" "In a word, heaps are useful memory structures to know. I use them in a few " "applications, and I think it is good to keep a 'heap' module around. :-)" msgstr "" +"Pour résumer, les tas sont des structures de données qu'il est bon de " +"connaître. Je les utilise dans quelques applications et je pense qu'il est " +"bon de garder le module *heap* sous le coude. ☺" #: ../Doc/library/heapq.rst:299 msgid "Footnotes" @@ -375,3 +529,14 @@ msgid "" "Believe me, real good tape sorts were quite spectacular to watch! From all " "times, sorting has always been a Great Art! :-)" msgstr "" +"Les algorithmes de répartition de charge pour les disques, courants de nos " +"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à " +"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire " +"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " +"était différent et il fallait être malin pour s'assurer (bien à l'avance) " +"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " +"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " +"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " +"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " +"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " +"le Grand Art ! ☺" diff --git a/library/idle.po b/library/idle.po index fbd28edf9..318c8784a 100644 --- a/library/idle.po +++ b/library/idle.po @@ -23,19 +23,23 @@ msgstr "IDLE" #: ../Doc/library/idle.rst:8 msgid "**Source code:** :source:`Lib/idlelib/`" -msgstr "" +msgstr "**Code source** : :source:`Lib/idlelib/`" #: ../Doc/library/idle.rst:17 msgid "IDLE is Python's Integrated Development and Learning Environment." msgstr "" +"*IDLE* est l'environnement de développement et d'apprentissage intégré de " +"Python (*Integrated Development and Learning Environment*)." #: ../Doc/library/idle.rst:19 msgid "IDLE has the following features:" -msgstr "" +msgstr "*IDLE* a les fonctionnalités suivantes :" #: ../Doc/library/idle.rst:21 msgid "coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit" msgstr "" +"codé à 100% en pur Python, en utilisant l'outil d'interfaçage graphique :mod:" +"`tkinter`" #: ../Doc/library/idle.rst:23 msgid "cross-platform: works mostly the same on Windows, Unix, and Mac OS X" @@ -46,32 +50,41 @@ msgid "" "Python shell window (interactive interpreter) with colorizing of code input, " "output, and error messages" msgstr "" +"Console Python (interpréteur interactif) avec coloration du code entré, des " +"sorties et des messages d'erreur" #: ../Doc/library/idle.rst:28 msgid "" "multi-window text editor with multiple undo, Python colorizing, smart " "indent, call tips, auto completion, and other features" msgstr "" +"éditeur de texte multi-fenêtres avec annulations multiples, coloration " +"Python, indentation automatique, aide pour les appels de fonction, " +"*autocomplétion*, parmi d'autres fonctionnalités" #: ../Doc/library/idle.rst:31 msgid "" "search within any window, replace within editor windows, and search through " "multiple files (grep)" msgstr "" +"recherche dans n'importe quelle fenêtre, remplacement dans une fenêtre " +"d'édition et recherche dans des fichiers multiples (*grep*)" #: ../Doc/library/idle.rst:34 msgid "" "debugger with persistent breakpoints, stepping, and viewing of global and " "local namespaces" msgstr "" +"débogueur avec points d'arrêt persistants, pas-à-pas et visualisation des " +"espaces de nommage locaux et globaux" #: ../Doc/library/idle.rst:37 msgid "configuration, browsers, and other dialogs" -msgstr "" +msgstr "configuration, navigateur et d'autres fenêtres de dialogue" #: ../Doc/library/idle.rst:40 msgid "Menus" -msgstr "" +msgstr "Menus" #: ../Doc/library/idle.rst:42 msgid "" @@ -90,63 +103,69 @@ msgstr "" #: ../Doc/library/idle.rst:52 msgid "File menu (Shell and Editor)" -msgstr "" +msgstr "Menu *File* (Console et Éditeur)" #: ../Doc/library/idle.rst:55 msgid "New File" -msgstr "" +msgstr "*New File*" #: ../Doc/library/idle.rst:55 msgid "Create a new file editing window." -msgstr "" +msgstr "Crée une nouvelle fenêtre d'édition." #: ../Doc/library/idle.rst:58 msgid "Open..." -msgstr "" +msgstr "*Open...*" #: ../Doc/library/idle.rst:58 msgid "Open an existing file with an Open dialog." msgstr "" +"Ouvre un fichier existant avec une fenêtre de dialogue pour l'ouverture." #: ../Doc/library/idle.rst:61 msgid "Recent Files" -msgstr "" +msgstr "*Recent Files*" #: ../Doc/library/idle.rst:61 msgid "Open a list of recent files. Click one to open it." msgstr "" +"Ouvre une liste des fichiers récents. Cliquez sur l'un d'eux pour l'ouvrir." #: ../Doc/library/idle.rst:64 msgid "Open Module..." -msgstr "" +msgstr "*Open Module...*" #: ../Doc/library/idle.rst:64 msgid "Open an existing module (searches sys.path)." -msgstr "" +msgstr "Ouvre un module existant (cherche dans *sys.path*)." #: ../Doc/library/idle.rst:72 msgid "Class Browser" -msgstr "" +msgstr "*Class Browser*" #: ../Doc/library/idle.rst:71 msgid "" "Show functions, classes, and methods in the current Editor file in a tree " "structure. In the shell, open a module first." msgstr "" +"Montre les fonctions, classes et méthodes dans une arborescence pour le " +"fichier en cours d'édition. Dans la console, ouvre d'abord un module." #: ../Doc/library/idle.rst:76 msgid "Path Browser" -msgstr "" +msgstr "*Path Browser*" #: ../Doc/library/idle.rst:75 msgid "" "Show sys.path directories, modules, functions, classes and methods in a tree " "structure." msgstr "" +"Affiche les dossiers de *sys.path*, les modules, fonctions, classes et " +"méthodes dans une arborescence." #: ../Doc/library/idle.rst:82 msgid "Save" -msgstr "" +msgstr "*Save*" #: ../Doc/library/idle.rst:79 msgid "" @@ -155,161 +174,180 @@ msgid "" "and after the window title. If there is no associated file, do Save As " "instead." msgstr "" +"Enregistre la fenêtre active sous le fichier associé, s'il existe. Les " +"fenêtres qui ont été modifiées depuis leur ouverture ou leur dernier " +"enregistrement ont un \\* avant et après le titre de la fenêtre. S'il n'y a " +"aucun fichier associé, exécute *Save As* à la place." #: ../Doc/library/idle.rst:86 msgid "Save As..." -msgstr "" +msgstr "*Save As...*" #: ../Doc/library/idle.rst:85 msgid "" "Save the current window with a Save As dialog. The file saved becomes the " "new associated file for the window." msgstr "" +"Enregistre la fenêtre active avec une fenêtre de dialogue d'enregistrement. " +"Le fichier enregistré devient le nouveau fichier associé pour cette fenêtre." #: ../Doc/library/idle.rst:90 msgid "Save Copy As..." -msgstr "" +msgstr "*Save Copy As...*" #: ../Doc/library/idle.rst:89 msgid "" "Save the current window to different file without changing the associated " "file." msgstr "" +"Enregistre la fenêtre active sous un fichier différent sans changer le " +"fichier associé." #: ../Doc/library/idle.rst:93 msgid "Print Window" -msgstr "" +msgstr "*Print Window*" #: ../Doc/library/idle.rst:93 msgid "Print the current window to the default printer." -msgstr "" +msgstr "Imprime la fenêtre active avec l'imprimante par défaut." #: ../Doc/library/idle.rst:96 msgid "Close" -msgstr "" +msgstr "*Close*" #: ../Doc/library/idle.rst:96 msgid "Close the current window (ask to save if unsaved)." -msgstr "" +msgstr "Ferme la fenêtre active (demande à enregistrer si besoin)." #: ../Doc/library/idle.rst:99 msgid "Exit" -msgstr "" +msgstr "*Exit*" #: ../Doc/library/idle.rst:99 msgid "Close all windows and quit IDLE (ask to save unsaved windows)." msgstr "" +"Ferme toutes les fenêtres et quitte *IDLE* (demande à enregistrer les " +"fenêtres non sauvegardées)." #: ../Doc/library/idle.rst:102 msgid "Edit menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Edit* (console et éditeur)" #: ../Doc/library/idle.rst:106 msgid "Undo" -msgstr "" +msgstr "*Undo*" #: ../Doc/library/idle.rst:105 msgid "" "Undo the last change to the current window. A maximum of 1000 changes may " "be undone." msgstr "" +"Annule le dernier changement dans la fenêtre active. Un maximum de 1000 " +"changements peut être annulé." #: ../Doc/library/idle.rst:109 msgid "Redo" -msgstr "" +msgstr "*Redo*" #: ../Doc/library/idle.rst:109 msgid "Redo the last undone change to the current window." -msgstr "" +msgstr "Ré-applique le dernier changement annulé dans la fenêtre active." #: ../Doc/library/idle.rst:112 ../Doc/library/idle.rst:326 msgid "Cut" -msgstr "" +msgstr "*Cut*" #: ../Doc/library/idle.rst:112 ../Doc/library/idle.rst:326 msgid "" "Copy selection into the system-wide clipboard; then delete the selection." msgstr "" +"Copie la sélection dans le presse-papier global ; puis supprime la sélection." #: ../Doc/library/idle.rst:115 ../Doc/library/idle.rst:329 msgid "Copy" -msgstr "" +msgstr "*Copy*" #: ../Doc/library/idle.rst:115 ../Doc/library/idle.rst:329 msgid "Copy selection into the system-wide clipboard." -msgstr "" +msgstr "Copie la sélection dans le presse-papier global." #: ../Doc/library/idle.rst:118 ../Doc/library/idle.rst:332 msgid "Paste" -msgstr "" +msgstr "*Paste*" #: ../Doc/library/idle.rst:118 ../Doc/library/idle.rst:332 msgid "Insert contents of the system-wide clipboard into the current window." -msgstr "" +msgstr "Insère le contenu du presse-papier global dans la fenêtre active." #: ../Doc/library/idle.rst:120 msgid "The clipboard functions are also available in context menus." msgstr "" +"Les fonctions du presse-papier sont aussi disponibles dans les menus " +"contextuels." #: ../Doc/library/idle.rst:123 msgid "Select All" -msgstr "" +msgstr "*Select All*" #: ../Doc/library/idle.rst:123 msgid "Select the entire contents of the current window." -msgstr "" +msgstr "Sélectionne la totalité du contenu de la fenêtre active." #: ../Doc/library/idle.rst:126 msgid "Find..." -msgstr "" +msgstr "*Find...*" #: ../Doc/library/idle.rst:126 msgid "Open a search dialog with many options" -msgstr "" +msgstr "Ouvre une fenêtre de recherche avec de nombreuses options" #: ../Doc/library/idle.rst:129 msgid "Find Again" -msgstr "" +msgstr "*Find Again*" #: ../Doc/library/idle.rst:129 msgid "Repeat the last search, if there is one." -msgstr "" +msgstr "Répète la dernière recherche, s'il y en a une." #: ../Doc/library/idle.rst:132 msgid "Find Selection" -msgstr "" +msgstr "*Find Selection*" #: ../Doc/library/idle.rst:132 msgid "Search for the currently selected string, if there is one." -msgstr "" +msgstr "Cherche la chaîne sélectionnée, s'il y en a une." #: ../Doc/library/idle.rst:135 msgid "Find in Files..." -msgstr "" +msgstr "*Find in Files...*" #: ../Doc/library/idle.rst:135 msgid "Open a file search dialog. Put results in a new output window." msgstr "" +"Ouvre une fenêtre de recherche de fichiers. Présente les résultats dans une " +"nouvelle fenêtre d'affichage." #: ../Doc/library/idle.rst:138 msgid "Replace..." -msgstr "" +msgstr "*Replace...*" #: ../Doc/library/idle.rst:138 msgid "Open a search-and-replace dialog." -msgstr "" +msgstr "Ouvre une fenêtre de recherche et remplacement." #: ../Doc/library/idle.rst:141 msgid "Go to Line" -msgstr "" +msgstr "*Go to Line*" #: ../Doc/library/idle.rst:141 msgid "Move cursor to the line number requested and make that line visible." msgstr "" +"Déplace le curseur sur la ligne de numéro demandé et rend cette ligne " +"visible." #: ../Doc/library/idle.rst:145 msgid "Show Completions" -msgstr "" +msgstr "*Show Completions*" #: ../Doc/library/idle.rst:144 msgid "" @@ -319,17 +357,19 @@ msgstr "" #: ../Doc/library/idle.rst:149 msgid "Expand Word" -msgstr "" +msgstr "*Expand Word*" #: ../Doc/library/idle.rst:148 msgid "" "Expand a prefix you have typed to match a full word in the same window; " "repeat to get a different expansion." msgstr "" +"Complète un préfixe que vous avez saisi pour correspondre à un mot complet " +"de la même fenêtre ; recommencez pour obtenir un autre complément." #: ../Doc/library/idle.rst:153 msgid "Show call tip" -msgstr "" +msgstr "*Show call tip*" #: ../Doc/library/idle.rst:152 msgid "" @@ -339,87 +379,98 @@ msgstr "" #: ../Doc/library/idle.rst:156 msgid "Show surrounding parens" -msgstr "" +msgstr "*Show surrounding parens*" #: ../Doc/library/idle.rst:156 msgid "Highlight the surrounding parenthesis." -msgstr "" +msgstr "Surligne les parenthèses encadrantes." #: ../Doc/library/idle.rst:159 msgid "Format menu (Editor window only)" -msgstr "" +msgstr "Menu *Format* (fenêtre d'édition uniquement)" #: ../Doc/library/idle.rst:162 msgid "Indent Region" -msgstr "" +msgstr "*Indent Region*" #: ../Doc/library/idle.rst:162 msgid "Shift selected lines right by the indent width (default 4 spaces)." msgstr "" +"Décale les lignes sélectionnées vers la droite d'un niveau d'indentation (4 " +"espaces par défaut)." #: ../Doc/library/idle.rst:165 msgid "Dedent Region" -msgstr "" +msgstr "*Dedent Region*" #: ../Doc/library/idle.rst:165 msgid "Shift selected lines left by the indent width (default 4 spaces)." msgstr "" +"Décale les lignes sélectionnées vers la gauche d'un niveau d'indentation (4 " +"espaces par défaut)." #: ../Doc/library/idle.rst:168 msgid "Comment Out Region" -msgstr "" +msgstr "*Comment Out Region*" #: ../Doc/library/idle.rst:168 msgid "Insert ## in front of selected lines." -msgstr "" +msgstr "Insère ## devant les lignes sélectionnées." #: ../Doc/library/idle.rst:171 msgid "Uncomment Region" -msgstr "" +msgstr "*Uncomment Region*" #: ../Doc/library/idle.rst:171 msgid "Remove leading # or ## from selected lines." -msgstr "" +msgstr "Enlève les # ou ## au début des lignes sélectionnées." #: ../Doc/library/idle.rst:175 msgid "Tabify Region" -msgstr "" +msgstr "*Tabify Region*" #: ../Doc/library/idle.rst:174 msgid "" "Turn *leading* stretches of spaces into tabs. (Note: We recommend using 4 " "space blocks to indent Python code.)" msgstr "" +"Transforme les blocs d'espaces *au début des lignes* en tabulations. " +"(Note : Nous recommandons d'utiliser des blocs de 4 espaces pour indenter du " +"code Python.)" #: ../Doc/library/idle.rst:178 msgid "Untabify Region" -msgstr "" +msgstr "*Untabify Region*" #: ../Doc/library/idle.rst:178 msgid "Turn *all* tabs into the correct number of spaces." -msgstr "" +msgstr "Transforme *toutes* les tabulations en le bon nombre d'espaces." #: ../Doc/library/idle.rst:181 msgid "Toggle Tabs" -msgstr "" +msgstr "*Toggle Tabs*" #: ../Doc/library/idle.rst:181 msgid "Open a dialog to switch between indenting with spaces and tabs." msgstr "" +"Ouvre une boîte de dialogue permettant de passer des espaces aux tabulations " +"(et inversement) pour l'indentation." #: ../Doc/library/idle.rst:185 msgid "New Indent Width" -msgstr "" +msgstr "*New Indent Width*" #: ../Doc/library/idle.rst:184 msgid "" "Open a dialog to change indent width. The accepted default by the Python " "community is 4 spaces." msgstr "" +"Ouvre une boîte de dialogue pour changer la taille de l'indentation. La " +"valeur par défaut acceptée par la communauté Python est de 4 espaces." #: ../Doc/library/idle.rst:190 msgid "Format Paragraph" -msgstr "" +msgstr "*Format Paragraph*" #: ../Doc/library/idle.rst:188 msgid "" @@ -427,10 +478,14 @@ msgid "" "multiline string or selected line in a string. All lines in the paragraph " "will be formatted to less than N columns, where N defaults to 72." msgstr "" +"Reformate le paragraphe actif, délimité par des lignes vides, en un bloc de " +"commentaires, ou la chaîne de caractères multi-lignes ou ligne sélectionnée " +"en chaîne de caractères. Toutes les lignes du paragraphe seront formatées à " +"moins de N colonnes, avec N valant 72 par défaut." #: ../Doc/library/idle.rst:195 msgid "Strip trailing whitespace" -msgstr "" +msgstr "*Strip trailing whitespace*" #: ../Doc/library/idle.rst:193 msgid "" @@ -441,19 +496,19 @@ msgstr "" #: ../Doc/library/idle.rst:201 msgid "Run menu (Editor window only)" -msgstr "" +msgstr "Menu *Run* (fenêtre d'édition uniquement)" #: ../Doc/library/idle.rst:204 msgid "Python Shell" -msgstr "" +msgstr "Console Python" #: ../Doc/library/idle.rst:204 msgid "Open or wake up the Python Shell window." -msgstr "" +msgstr "Ouvre ou active la fenêtre de console Python." #: ../Doc/library/idle.rst:211 msgid "Check Module" -msgstr "" +msgstr "*Check Module*" #: ../Doc/library/idle.rst:207 msgid "" @@ -463,10 +518,16 @@ msgid "" "there is a syntax error, the approximate location is indicated in the Editor " "window." msgstr "" +"Vérifie la syntaxe du module actuellement ouvert dans la fenêtre d'édition. " +"Si le module n'a pas été enregistré, *IDLE* va soit demander à enregistrer à " +"l'utilisateur, soit enregistrer automatiquement, selon l'option sélectionnée " +"dans l'onglet *General* de la fenêtre de configuration d'*IDLE*. S'il y a " +"une erreur de syntaxe, l'emplacement approximatif est indiqué dans la " +"fenêtre d'édition." #: ../Doc/library/idle.rst:220 msgid "Run Module" -msgstr "" +msgstr "*Run Module*" #: ../Doc/library/idle.rst:214 msgid "" @@ -480,39 +541,41 @@ msgstr "" #: ../Doc/library/idle.rst:223 msgid "Shell menu (Shell window only)" -msgstr "" +msgstr "Menu Shell (fenêtre de console uniquement)" #: ../Doc/library/idle.rst:226 msgid "View Last Restart" -msgstr "" +msgstr "*View Last Restart*" #: ../Doc/library/idle.rst:226 msgid "Scroll the shell window to the last Shell restart." msgstr "" +"Fait défiler la fenêtre de console jusqu'au dernier redémarrage de la " +"console." #: ../Doc/library/idle.rst:229 msgid "Restart Shell" -msgstr "" +msgstr "*Restart Shell*" #: ../Doc/library/idle.rst:229 msgid "Restart the shell to clean the environment." -msgstr "" +msgstr "Redémarre la console pour nettoyer l'environnement." #: ../Doc/library/idle.rst:232 msgid "Interrupt Execution" -msgstr "" +msgstr "*Interrupt Execution*" #: ../Doc/library/idle.rst:232 msgid "Stop a running program." -msgstr "" +msgstr "Arrête un programme en cours d'exécution." #: ../Doc/library/idle.rst:235 msgid "Debug menu (Shell window only)" -msgstr "" +msgstr "Menu *Debug* (fenêtre de console uniquement)" #: ../Doc/library/idle.rst:242 msgid "Go to File/Line" -msgstr "" +msgstr "*Go to File/Line*" #: ../Doc/library/idle.rst:238 msgid "" @@ -522,10 +585,16 @@ msgid "" "and lines found by Find in Files. Also available in the context menu of the " "Shell window and Output windows." msgstr "" +"Cherche, sur la ligne active et la ligne en-dessous, un nom de fichier et un " +"numéro de ligne. Le cas échéant, ouvre le fichier s'il n'est pas encore " +"ouvert et montre la ligne. Utilisez ceci pour visualiser les lignes de code " +"source référencées dans un *traceback* d'exception et les lignes trouvées " +"par *Find in Files*. Également disponible dans le menu contextuel des " +"fenêtres de console et d'affichage." #: ../Doc/library/idle.rst:251 msgid "Debugger (toggle)" -msgstr "" +msgstr "*Debugger* ([dés]activer)" #: ../Doc/library/idle.rst:249 msgid "" @@ -533,33 +602,41 @@ msgid "" "under the debugger. In the Editor, breakpoints can be set with the context " "menu. This feature is still incomplete and somewhat experimental." msgstr "" +"Quand cette fonctionnalité est activée, le code saisi dans la console ou " +"exécuté depuis un Éditeur s'exécutera avec le débogueur. Dans l'Éditeur, des " +"points d'arrêt peuvent être placés avec le menu contextuel. Cette " +"fonctionnalité est encore incomplète et plus ou moins expérimentale." #: ../Doc/library/idle.rst:255 msgid "Stack Viewer" -msgstr "" +msgstr "*Stack Viewer*" #: ../Doc/library/idle.rst:254 msgid "" "Show the stack traceback of the last exception in a tree widget, with access " "to locals and globals." msgstr "" +"Montre l'état de la pile au moment de la dernière erreur dans une " +"arborescence, avec accès aux variables locales et globales." #: ../Doc/library/idle.rst:258 msgid "Auto-open Stack Viewer" -msgstr "" +msgstr "*Auto-open Stack Viewer*" #: ../Doc/library/idle.rst:258 msgid "" "Toggle automatically opening the stack viewer on an unhandled exception." msgstr "" +"Active ou désactive l'ouverture automatique de l'afficheur de pile après une " +"erreur non gérée." #: ../Doc/library/idle.rst:261 msgid "Options menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Options* (console et éditeur)" #: ../Doc/library/idle.rst:273 msgid "Configure IDLE" -msgstr "" +msgstr "*Configure IDLE*" #: ../Doc/library/idle.rst:264 msgid "" @@ -591,7 +668,7 @@ msgstr "" #: ../Doc/library/idle.rst:281 msgid "Window menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Windows* (console et éditeur)" #: ../Doc/library/idle.rst:286 msgid "Zoom Height" @@ -612,19 +689,20 @@ msgstr "" #: ../Doc/library/idle.rst:292 msgid "Help menu (Shell and Editor)" -msgstr "" +msgstr "Menu *Help* (console et éditeur)" #: ../Doc/library/idle.rst:295 msgid "About IDLE" -msgstr "" +msgstr "About *IDLE*" #: ../Doc/library/idle.rst:295 msgid "Display version, copyright, license, credits, and more." msgstr "" +"Affiche la version, les copyrights, la licence, les crédits, entre autres." #: ../Doc/library/idle.rst:299 msgid "IDLE Help" -msgstr "" +msgstr "*IDLE Help*" #: ../Doc/library/idle.rst:298 msgid "" @@ -634,17 +712,19 @@ msgstr "" #: ../Doc/library/idle.rst:303 msgid "Python Docs" -msgstr "" +msgstr "*Python Docs*" #: ../Doc/library/idle.rst:302 msgid "" "Access local Python documentation, if installed, or start a web browser and " "open docs.python.org showing the latest Python documentation." msgstr "" +"Accède à la documentation Python locale, si installée, ou ouvre docs.python." +"org dans un navigateur pour afficher la documentation Python la plus récente." #: ../Doc/library/idle.rst:306 msgid "Turtle Demo" -msgstr "" +msgstr "*Turtle Demo*" #: ../Doc/library/idle.rst:306 msgid "Run the turtledemo module with example python code and turtle drawings." @@ -658,7 +738,7 @@ msgstr "" #: ../Doc/library/idle.rst:320 msgid "Context Menus" -msgstr "" +msgstr "Menus Contextuels" #: ../Doc/library/idle.rst:322 msgid "" @@ -673,22 +753,26 @@ msgid "" "the debugger. Breakpoints for a file are saved in the user's .idlerc " "directory." msgstr "" +"Les fenêtres d'édition ont aussi des fonctions de points d'arrêt. Les lignes " +"avec un point d'arrêt activé sont marquées. Les points d'arrêt n'ont d'effet " +"que lorsque l'exécution se déroule sous débogueur. Les points d'arrêt pour " +"un fichier sont enregistrés dans le dossier *.idlerc* de l'utilisateur." #: ../Doc/library/idle.rst:339 msgid "Set Breakpoint" -msgstr "" +msgstr "*Set Breakpoint*" #: ../Doc/library/idle.rst:339 msgid "Set a breakpoint on the current line." -msgstr "" +msgstr "Place un point d'arrêt sur la ligne active." #: ../Doc/library/idle.rst:342 msgid "Clear Breakpoint" -msgstr "" +msgstr "*Clear Breakpoint*" #: ../Doc/library/idle.rst:342 msgid "Clear the breakpoint on that line." -msgstr "" +msgstr "Enlève le point d'arrêt sur cette ligne." #: ../Doc/library/idle.rst:344 msgid "Shell and Output windows have the following." @@ -696,15 +780,15 @@ msgstr "" #: ../Doc/library/idle.rst:348 msgid "Go to file/line" -msgstr "" +msgstr "*Go to file/line*" #: ../Doc/library/idle.rst:347 msgid "Same as in Debug menu." -msgstr "" +msgstr "Même effet que dans le menu *Debug*." #: ../Doc/library/idle.rst:351 msgid "Editing and navigation" -msgstr "" +msgstr "Édition et navigation" #: ../Doc/library/idle.rst:353 msgid "" @@ -715,78 +799,94 @@ msgstr "" #: ../Doc/library/idle.rst:356 msgid ":kbd:`Backspace` deletes to the left; :kbd:`Del` deletes to the right" msgstr "" +":kbd:`Retour arrière` supprime à gauche ; :kbd:`Suppr` supprime à droite" #: ../Doc/library/idle.rst:358 msgid "" ":kbd:`C-Backspace` delete word left; :kbd:`C-Del` delete word to the right" msgstr "" +":kbd:`C-Retour arrière` supprime le mot à gauche ; :kbd:`C-Suppr` supprime " +"le mot à droite" #: ../Doc/library/idle.rst:360 msgid "Arrow keys and :kbd:`Page Up`/:kbd:`Page Down` to move around" msgstr "" +"Utilisez les touches flèche et :kbd:`Page Haut` / :kbd:`Page Bas` pour vous " +"déplacer" #: ../Doc/library/idle.rst:362 msgid ":kbd:`C-LeftArrow` and :kbd:`C-RightArrow` moves by words" msgstr "" +":kbd:`C-Flèche Gauche` et :kbd:`C-Flèche Droite` déplacent de mot en mot" #: ../Doc/library/idle.rst:364 msgid ":kbd:`Home`/:kbd:`End` go to begin/end of line" -msgstr "" +msgstr ":kbd:`Début`/:kbd:`Fin` vont au début / à la fin de la ligne" #: ../Doc/library/idle.rst:366 msgid ":kbd:`C-Home`/:kbd:`C-End` go to begin/end of file" -msgstr "" +msgstr ":kbd:`C-Début` / :kbd:`C-Fin` vont au début / à la fin du fichier" #: ../Doc/library/idle.rst:368 msgid "Some useful Emacs bindings are inherited from Tcl/Tk:" -msgstr "" +msgstr "Quelques raccourcis *Emacs* utiles sont hérités de *Tcl/Tk* :" #: ../Doc/library/idle.rst:370 msgid ":kbd:`C-a` beginning of line" -msgstr "" +msgstr ":kbd:`C-a` début de ligne" #: ../Doc/library/idle.rst:372 msgid ":kbd:`C-e` end of line" -msgstr "" +msgstr ":kbd:`C-e` fin de ligne" #: ../Doc/library/idle.rst:374 msgid ":kbd:`C-k` kill line (but doesn't put it in clipboard)" msgstr "" +":kbd:`C-k` supprime la ligne (mais ne la met pas dans le presse-papier)" #: ../Doc/library/idle.rst:376 msgid ":kbd:`C-l` center window around the insertion point" -msgstr "" +msgstr ":kbd:`C-l` centre la fenêtre autour du point d’insertion" #: ../Doc/library/idle.rst:378 msgid "" ":kbd:`C-b` go backward one character without deleting (usually you can also " "use the cursor key for this)" msgstr "" +":kbd:`C-b` recule d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" #: ../Doc/library/idle.rst:381 msgid "" ":kbd:`C-f` go forward one character without deleting (usually you can also " "use the cursor key for this)" msgstr "" +":kbd:`C-f` avance d'un caractère sans le supprimer (habituellement vous " +"pouvez également utiliser les touches flèches pour faire cela)" #: ../Doc/library/idle.rst:384 msgid "" ":kbd:`C-p` go up one line (usually you can also use the cursor key for this)" msgstr "" +":kbd:`C-p` remonte d'une ligne (habituellement vous pouvez également " +"utiliser les touches flèches pour faire cela)" #: ../Doc/library/idle.rst:387 msgid ":kbd:`C-d` delete next character" -msgstr "" +msgstr ":kbd:`C-d` supprime le caractère suivant" #: ../Doc/library/idle.rst:389 msgid "" "Standard keybindings (like :kbd:`C-c` to copy and :kbd:`C-v` to paste) may " "work. Keybindings are selected in the Configure IDLE dialog." msgstr "" +"Les raccourcis clavier standards (comme :kbd:`C-c` pour copier et :kbd:`C-v` " +"pour coller) peuvent fonctionner. Les raccourcis clavier sont sélectionnés " +"dans la fenêtre de configuration d'*IDLE*." #: ../Doc/library/idle.rst:394 msgid "Automatic indentation" -msgstr "" +msgstr "Indentation automatique" #: ../Doc/library/idle.rst:396 msgid "" @@ -797,6 +897,13 @@ msgid "" "Python Shell window one tab), number depends on Indent width. Currently, " "tabs are restricted to four spaces due to Tcl/Tk limitations." msgstr "" +"Après une structure d'ouverture de bloc, la prochaine ligne est indentée de " +"4 espaces (dans la console Python d'une tabulation). Après certains mots-" +"clefs (*break*, *return* etc) la ligne suivante est *dédentée*. Dans une " +"indentation au début de la ligne, :kbd:`Retour arrière` supprime jusqu'à 4 " +"espaces s'il y en a. :kbd:`Tab` insère des espaces (dans la console, une " +"tabulation), en nombre dépendant de la configuration. Les tabulations sont " +"actuellement restreintes à quatre espaces à cause de limitations de *Tcl/Tk*." #: ../Doc/library/idle.rst:403 msgid "See also the indent/dedent region commands in the edit menu." @@ -804,13 +911,16 @@ msgstr "" #: ../Doc/library/idle.rst:406 msgid "Completions" -msgstr "" +msgstr "Complétions" #: ../Doc/library/idle.rst:408 msgid "" "Completions are supplied for functions, classes, and attributes of classes, " "both built-in and user-defined. Completions are also provided for filenames." msgstr "" +"Les complétions sont fournies pour les fonctions, classes et attributs de " +"classes incluses par défaut et celles définies par l'utilisateur. Les " +"complétions sont aussi fournies pour les noms de fichiers." #: ../Doc/library/idle.rst:412 msgid "" @@ -819,12 +929,19 @@ msgid "" "of those characters (plus zero or more other characters) a tab is typed the " "ACW will open immediately if a possible continuation is found." msgstr "" +"La fenêtre d'auto-complétion (*ACW*, *AutoCompleteWindow*) s'ouvre après un " +"délai prédéfini (deux secondes par défaut) après qu'un *\"*.\"** ou (dans " +"une chaîne) un os.sep est saisi. Si, après un de ces caractères " +"(éventuellement suivi d'autres caractères), une tabulation est saisie, " +"l'**ACW** s'ouvre immédiatement si une complétion compatible est trouvée." #: ../Doc/library/idle.rst:417 msgid "" "If there is only one possible completion for the characters entered, a :kbd:" "`Tab` will supply that completion without opening the ACW." msgstr "" +"S'il n'y a qu'une seule complétion possible pour le caractère saisi, un :kbd:" +"`Tab` fournit cette complétion sans ouvrir l'*ACW*." #: ../Doc/library/idle.rst:420 msgid "" @@ -835,6 +952,13 @@ msgid "" "namespaces, plus any modules imported. If some characters have been entered, " "the ACW will attempt to be more specific." msgstr "" +"*\"Show Completions\"* force l'ouverture d'une fenêtre de complétion, par " +"défaut :kbd:`C-espace` ouvre une fenêtre de complétion. Dans une chaîne " +"vide, cette fenêtre contient les fichiers du dossier actif. Sur une ligne " +"vide, elle contient les fonctions et classes intégrées par défaut et " +"définies par l'utilisateur de l'espace de nommage actif, plus tous les " +"modules importés. Si des caractères ont été saisis, l'*ACW* essaie d'être " +"plus spécifique." #: ../Doc/library/idle.rst:427 msgid "" @@ -845,6 +969,13 @@ msgid "" "will return or a double click. Cursor keys, Page Up/Down, mouse selection, " "and the scroll wheel all operate on the ACW." msgstr "" +"Si une chaîne de caractère est saisie, la sélection de l'*ACW* va à l'entrée " +"la plus proche de ces caractères. Saisir un :kbd:`Tab` saisit la plus longue " +"correspondance non ambiguë dans la console ou l'éditeur. Deux :kbd:`Tab` à " +"la suite fournissent la sélection de l'*ACW*, de la même manière que la " +"touche *\"Entrée\"* ou un double-clic. Les touches flèches, Page Haut/Bas, " +"la sélection à la souris et la molette de la souris fonctionnent tous sur " +"l'*ACW*." #: ../Doc/library/idle.rst:434 msgid "" @@ -852,10 +983,15 @@ msgid "" "after a '.', e.g. '_'. This allows access to modules with ``__all__`` set, " "or to class-private attributes." msgstr "" +"Les attributs *\"cachés\"* peuvent être atteints en saisissant le début d'un " +"nom caché après un *\"*.\"**, e.g.\"**_\"**. Ceci permet l'accès aux modules " +"utilisant ``__all__`` ou aux attributs privés des classes." #: ../Doc/library/idle.rst:438 msgid "Completions and the 'Expand Word' facility can save a lot of typing!" msgstr "" +"Les complétions et la fonctionnalité *\"*Expand Word*\"* peuvent vous faire " +"économiser beaucoup de temps !" #: ../Doc/library/idle.rst:440 msgid "" @@ -865,16 +1001,24 @@ msgid "" "situation. Note that IDLE itself places quite a few modules in sys.modules, " "so much can be found by default, e.g. the re module." msgstr "" +"Les complétions sont actuellement limitées à ce qui est présent dans les " +"espaces de nommage. Les noms dans une fenêtre d'édition qui ne viennent pas " +"de ``__main__`` et :data:`sys.modules` ne sont pas trouvés. Exécutez votre " +"module avec vos importations pour corriger cette situation. Notez qu'*IDLE* " +"lui-même place quelques modules dans *sys.modules*, qui peuvent être donc " +"accédés par défaut, comme le module *re*." #: ../Doc/library/idle.rst:446 msgid "" "If you don't like the ACW popping up unbidden, simply make the delay longer " "or disable the extension." msgstr "" +"Si vous n'aimez pas que l'*ACW* s'affiche spontanément, vous pouvez " +"simplement augmenter le délai ou désactiver l'extension." #: ../Doc/library/idle.rst:450 msgid "Calltips" -msgstr "" +msgstr "Info-bulles" #: ../Doc/library/idle.rst:452 msgid "" @@ -884,6 +1028,12 @@ msgid "" "or :kbd:`)` is typed. When the cursor is in the argument part of a " "definition, the menu or shortcut display a calltip." msgstr "" +"Une info-bulle est affichée quand vous saisissez :kbd:`(` après le nom d'une " +"fonction *accessible*. Une expression de nom peut inclure des points et des " +"tirets bas.L'info-bulle reste affichée jusqu'à ce que vous cliquiez dessus, " +"que le curseur se déplace hors de la zone des arguments, ou que :kbd:`)` " +"soit saisi. Quand le curseur est dans la partie *\"arguments\"* de la " +"définition, le menu ou raccourci affiche une info-bulle." #: ../Doc/library/idle.rst:458 msgid "" @@ -892,6 +1042,10 @@ msgid "" "consists of all lines up the fifth line or the first blank line. These " "details may change." msgstr "" +"Une info-bulle contient la signature de la fonction et la première ligne de " +"la *docstring*. Pour les fonctions incluses par défaut sans signature " +"accessible, l'info-bulle contient toutes les lignes jusqu'à la cinquième " +"ligne ou la première ligne vide. Ces détails sont sujets à changement." #: ../Doc/library/idle.rst:463 msgid "" @@ -899,6 +1053,10 @@ msgid "" "into the user process, including those imported by Idle itself, and what " "definitions have been run, all since the last restart." msgstr "" +"L'ensemble des fonctions *accessibles* dépend des modules qui ont été " +"importés dans le processus utilisateur, y compris ceux importés par *IDLE* " +"lui-même et quelles définitions ont été exécutées, le tout depuis le dernier " +"redémarrage." #: ../Doc/library/idle.rst:467 msgid "" @@ -908,6 +1066,12 @@ msgid "" "Idle does not import turtle. The menu or shortcut do nothing either. Enter " "``import turtle`` and then ``turtle.write(`` will work." msgstr "" +"Par exemple, redémarrez la console et saisissez ``itertools.count(``. Une " +"info-bulle s'affiche parce que *IDLE* importe *itertools* dans le processus " +"utilisateur pour son propre usage (ceci pourrait changer). Saisissez " +"``turtle.write(`` et rien ne s'affiche. *IDLE* n'importe pas *turtle*. Le " +"menu ou le raccourci ne font rien non plus. Saisir ``import *turtle`` puis " +"``turtle.write(`` fonctionnera." #: ../Doc/library/idle.rst:473 msgid "" @@ -915,27 +1079,35 @@ msgid "" "might want to run a file after writing the import statements at the top, or " "immediately run an existing file before editing." msgstr "" +"Dans l'éditeur, les commandes d'importation n'ont pas d'effet jusqu'à ce que " +"le fichier soit exécuté. Vous pouvez exécuter un fichier après avoir écrit " +"les commandes d'importation au début, ou immédiatement exécuter un fichier " +"existant avant de l'éditer." #: ../Doc/library/idle.rst:478 msgid "Python Shell window" -msgstr "" +msgstr "Fenêtre de console Python" #: ../Doc/library/idle.rst:480 msgid ":kbd:`C-c` interrupts executing command" -msgstr "" +msgstr ":kbd:`C-c` interrompt l'exécution de la commande" #: ../Doc/library/idle.rst:482 msgid "" ":kbd:`C-d` sends end-of-file; closes window if typed at a ``>>>`` prompt" msgstr "" +":kbd:`C-d` envoie fin-de-fichier (*EOF*) ; cela ferme la fenêtre s'il est " +"saisi à une invite ``>>>``" #: ../Doc/library/idle.rst:484 msgid ":kbd:`Alt-/` (Expand word) is also useful to reduce typing" msgstr "" +":kbd:`Alt-/` (Compléter le mot) est également utile pour réduire la quantité " +"de texte saisie" #: ../Doc/library/idle.rst:486 msgid "Command history" -msgstr "" +msgstr "Historique des commandes" #: ../Doc/library/idle.rst:488 msgid "" @@ -950,10 +1122,11 @@ msgstr "" #: ../Doc/library/idle.rst:493 msgid ":kbd:`Return` while on any previous command retrieves that command" msgstr "" +":kbd:`Entrée` sur une des commandes précédentes récupère cette commande" #: ../Doc/library/idle.rst:497 msgid "Text colors" -msgstr "" +msgstr "Coloration du texte" #: ../Doc/library/idle.rst:499 msgid "" @@ -964,6 +1137,15 @@ msgid "" "``def``, strings, and comments. For any text window, these are the cursor " "(when present), found text (when possible), and selected text." msgstr "" +"*IDLE* affiche par défaut le texte en noir sur blanc mais colore le texte " +"qui possède une signification spéciale. Pour la console, ceci concerne les " +"sorties de la console et de l'utilisateur ainsi que les erreurs de " +"l'utilisateur. Pour le code Python, dans l'invite de commande de la console " +"ou sur un éditeur, ce sont les mots-clefs, noms de fonctions et de classes " +"incluses par défaut, les noms suivant ``class`` et ``def``, les chaînes de " +"caractères et les commentaires. Pour n'importe quelle fenêtre de texte, ce " +"sont le curseur (si présent), le texte trouvé (s'il y en a) et le texte " +"sélectionné." #: ../Doc/library/idle.rst:506 msgid "" @@ -972,10 +1154,15 @@ msgid "" "Highlighting tab. The marking of debugger breakpoint lines in the editor " "and text in popups and dialogs is not user-configurable." msgstr "" +"La coloration du texte est faite en arrière-plan, donc du texte non coloré " +"est parfois visible. Pour changer les couleurs, utilisez l'onglet " +"*Highlighting* de la fenêtre de configuration d'*IDLE*. Le marquage des " +"points d'arrêt du débogueur dans l'éditeur et du texte dans les dialogues " +"n'est pas configurable." #: ../Doc/library/idle.rst:513 msgid "Startup and code execution" -msgstr "" +msgstr "Démarrage et exécution du code" #: ../Doc/library/idle.rst:515 msgid "" @@ -988,6 +1175,14 @@ msgid "" "from the IDLE shell, or for executing import statements to import common " "modules." msgstr "" +"Quand il est démarré avec l'option ``-s``, *IDLE* exécutera le fichier " +"référencé par la variable d'environnement :envvar:`IDLE*STARTUP` ou :envvar:" +"`PYTHONSTARTUP`. *IDLE* cherche d'abord ``IDLESTARTUP`` ; si ``IDLESTARTUP`` " +"est présent, le fichier référencé est exécuté. Si ``IDLESTARTUP`` n'est pas " +"présent, alors *IDLE* cherche ``PYTHONSTARTUP``. Les fichiers référencés par " +"ces variables d'environnement sont de bons endroits pour stocker des " +"fonctions qui sont utilisées fréquemment depuis la console d'*IDLE* ou pour " +"exécuter des commandes d'importation des modules communs." #: ../Doc/library/idle.rst:523 msgid "" @@ -997,14 +1192,20 @@ msgid "" "will be executed in the Tk namespace, so this file is not useful for " "importing functions to be used from IDLE's Python shell." msgstr "" +"De plus, ``Tk`` charge lui aussi un fichier de démarrage s'il est présent. " +"Notez que le fichier de *Tk* est chargé sans condition. Ce fichier " +"additionnel est ``.Idle.py`` et est recherché dans le dossier personnel de " +"l'utilisateur. Les commandes dans ce fichier sont exécutées dans l'espace de " +"nommage de *Tk*, donc ce fichier n'est pas utile pour importer des fonctions " +"à utiliser depuis la console Python d'*IDLE*." #: ../Doc/library/idle.rst:531 msgid "Command line usage" -msgstr "" +msgstr "Utilisation de la ligne de commande" #: ../Doc/library/idle.rst:547 msgid "If there are arguments:" -msgstr "" +msgstr "S'il y a des arguments :" #: ../Doc/library/idle.rst:549 msgid "" @@ -1013,16 +1214,22 @@ msgid "" "No editor window is opened, even if that is the default set in the Options " "dialog." msgstr "" +"Si ``-``, ``-c`` ou ``-r`` sont utilisés, tous les arguments sont placés " +"dans ``sys.argv[1:...]`` et ``sys.argv[0]`` est assigné à `''``, ``'-c'``, " +"ou ``'-r'``. Aucune fenêtre d'édition n'est ouverte, même si c'est le " +"comportement par défaut fixé dans la fenêtre d'options." #: ../Doc/library/idle.rst:554 msgid "" "Otherwise, arguments are files opened for editing and ``sys.argv`` reflects " "the arguments passed to IDLE itself." msgstr "" +"Sinon, les arguments sont des fichiers ouverts pour édition et ``sys.argv`` " +"reflète les arguments passés à *IDLE* lui-même." #: ../Doc/library/idle.rst:559 msgid "Startup failure" -msgstr "" +msgstr "Échec au démarrage" #: ../Doc/library/idle.rst:561 msgid "" @@ -1033,6 +1240,14 @@ msgid "" "displays a ``Tk`` error box with a 'cannot connect' message that directs the " "user here. It then exits." msgstr "" +"*IDLE* utilise un connecteur (*socket* en anglais) pour communiquer entre le " +"processus d'interface graphique d'*IDLE* et le processus d'exécution de code " +"de l'utilisateur. Une connexion doit être établie quand la console démarre " +"ou redémarre (le redémarrage est indiqué par une ligne de division avec *" +"\"RESTART\"*). Si le processus utilisateur échoue à établir une connexion " +"avec le processus graphique, il affiche une fenêtre d'erreur ``Tk`` avec un " +"message *\"connexion impossible\"* qui redirige l'utilisateur ici. Ensuite, " +"il s'arrête." #: ../Doc/library/idle.rst:568 msgid "" @@ -1042,6 +1257,12 @@ msgid "" "IDLE cannot import the stdlib file. The current fix is to rename the user " "file." msgstr "" +"Une cause d'échec courant est un fichier écrit par l'utilisateur avec le " +"même nom qu'un module de la bibliothèque standard, comme *random.py* et " +"*tkinter.py*. Quand un fichier de ce genre est enregistré dans le même " +"répertoire qu'un fichier à exécuter, *IDLE* ne peut pas importer le fichier " +"standard. La solution actuelle consiste à renommer le fichier de " +"l'utilisateur." #: ../Doc/library/idle.rst:574 msgid "" @@ -1052,6 +1273,12 @@ msgid "" "ports. A similar problem is a network mis-configuration that blocks " "connections." msgstr "" +"Même si c'est plus rare qu'avant, un antivirus ou un pare-feu peuvent " +"interrompre la connexion. Si le programme ne peut pas être paramétré pour " +"autoriser la connexion, alors il doit être éteint pour qu'*IDLE* puisse " +"fonctionner. Cette connexion interne est sûre car aucune donnée n'est " +"visible depuis un port extérieur. Un problème similaire est une mauvaise " +"configuration du réseau qui bloque les connexions." #: ../Doc/library/idle.rst:581 msgid "" @@ -1060,6 +1287,11 @@ msgid "" "clash, or cannot or does not want to run as admin, it might be easiest to " "completely remove Python and start over." msgstr "" +"Des problèmes d'installation de Python stoppent parfois *IDLE* : il peut y " +"avoir un conflit de versions ou bien l'installation peut nécessiter des " +"privilèges administrateurs. Si on corrige le conflit , ou qu'on ne peut ou " +"ne veut pas accorder de privilège, il peut être plus facile de désinstaller " +"complètement Python et de recommencer." #: ../Doc/library/idle.rst:586 msgid "" @@ -1068,6 +1300,12 @@ msgid "" "crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing the " "error box or Restart Shell on the Shell menu may fix a temporary problem." msgstr "" +"Un processus *pythonw.exe* zombie peut être un problème. Sous Windows, " +"utilisez le Gestionnaire des Tâches pour en détecter puis en arrêter un. " +"Parfois, un redémarrage causé par un plantage ou une interruption clavier " +"(Ctrl-C) peut ne pas réussir à se connecter. Fermer la fenêtre d'erreur ou " +"redémarrer la console dans le menu Shell peut résoudre un problème " +"temporaire." #: ../Doc/library/idle.rst:591 msgid "" @@ -1078,12 +1316,23 @@ msgid "" "dialog, under Options, instead Options. Once it happens, the solution may " "be to delete one or more of the configuration files." msgstr "" +"Quand *IDLE* démarre pour la première fois, il essaie de lire la " +"configuration de l'utilisateur dans les fichiers de *~/.idlerc* (~ est le " +"répertoire personnel de l'utilisateur). S'il y a un problème, un message " +"d'erreur devrait être affiché. Mis à part les erreurs aléatoires du disque " +"dur, ceci peut être évité en n'éditant jamais les fichiers directement, mais " +"en utilisant la fenêtre de configuration, dans Options. Quand cela arrive, " +"la solution peut être de supprimer un ou plusieurs des fichiers de " +"configuration." #: ../Doc/library/idle.rst:598 msgid "" "If IDLE quits with no message, and it was not started from a console, try " "starting from a console (``python -m idlelib)`` and see if a message appears." msgstr "" +"Si *IDLE* se ferme sans message et qu'il n'a pas été démarré depuis une " +"console, essayez de le démarrer depuis une console (``python -m idlelib``) " +"et regardez si un message apparaît." #: ../Doc/library/idle.rst:603 msgid "IDLE-console differences" @@ -1118,7 +1367,7 @@ msgstr "" #: ../Doc/library/idle.rst:624 msgid "Developing tkinter applications" -msgstr "" +msgstr "Développer des applications *tkinter*" #: ../Doc/library/idle.rst:626 msgid "" @@ -1139,6 +1388,11 @@ msgid "" "from an IDLE editor, a ``>>>`` shell prompt does not appear until " "``mainloop()`` returns, at which time there is nothing left to interact with." msgstr "" +"La plupart des programmes *tkinter* exécutent ``root.mainloop()``, qui " +"d'habitude ne renvoie pas jusqu'à ce que l'application *tk* soit détruite. " +"Si le programme est exécuté avec ``python -i``ou depuis un éditeur *IDLE*, " +"une invite de commande ``>>>`` n'apparaît pas tant que ``mainloop()`` ne " +"termine pas, c'est-à-dire quand il ne reste plus rien avec lequel interagir." #: ../Doc/library/idle.rst:641 msgid "" @@ -1147,10 +1401,15 @@ msgid "" "with the live application. One just has to remember to re-enable the " "mainloop call when running in standard Python." msgstr "" +"Avec un programme *tkinter* exécuté depuis un éditeur *IDLE*, vous pouvez " +"immédiatement commenter l'appel à *mainloop*. On a alors accès à une invite " +"de commande et on peut interagir en direct avec l'application. Il faut juste " +"se rappeler de réactiver l'appel à *mainloop* lors de l'exécution en Python " +"standard." #: ../Doc/library/idle.rst:647 msgid "Running without a subprocess" -msgstr "" +msgstr "Exécution sans sous-processus" #: ../Doc/library/idle.rst:649 msgid "" @@ -1159,6 +1418,10 @@ msgid "" "externally visible and no data is sent to or received from the Internet. If " "firewall software complains anyway, you can ignore it." msgstr "" +"Par défaut *IDLE* exécute le code de l'utilisateur dans un sous-processus " +"séparé via un connecteur sur l'interface de la boucle locale. Cette " +"connexion n'est pas visible de l'extérieur et rien n'est envoyé ou reçu " +"d'Internet. Si un pare-feu s'en plaint quand même, vous pouvez l'ignorer." #: ../Doc/library/idle.rst:654 msgid "" @@ -1168,6 +1431,12 @@ msgid "" "particular system. Until the problem is fixed, one can run Idle with the -n " "command line switch." msgstr "" +"Si la tentative de connexion par le *socket* échoue, *IDLE* vous le notifie. " +"Ce genre d'échec est parfois temporaire, mais s'il persiste, le problème " +"peut soit venir d'un pare-feu qui bloque la connexion ou d'une mauvaise " +"configuration dans un système particulier. Jusqu'à ce que le problème soit " +"résolu, vous pouvez exécuter *IDLE* avec l'option *-n* de la ligne de " +"commande." #: ../Doc/library/idle.rst:660 msgid "" @@ -1182,10 +1451,21 @@ msgid "" "these reasons, it is preferable to run IDLE with the default subprocess if " "at all possible." msgstr "" +"Si *IDLE* est démarré avec l'option *-n* de la ligne de commande, il " +"s'exécute dans un seul processus et ne crée pas de sous-processus pour " +"exécuter le serveur RPC d'exécution de Python. Ceci peut être utile si " +"Python ne peut pas créer de sous-processus ou de connecteur *RPC* sur votre " +"plateforme. Cependant, dans ce mode, le code de l'utilisateur n'est pas " +"isolé de *IDLE* lui-même. De plus, l'environnement n'est pas réinitialisé " +"quand *Run/Run Module* (`F5`) est sélectionné. Si votre code a été modifié, " +"vous devez *reload*() les modules affectés et ré-importer tous les éléments " +"spécifiques (e.g. *from foo import baz*) pour que les changements prennent " +"effet. Pour toutes ces raisons, il est préférable d'exécuter *IDLE* avec le " +"sous-processus par défaut si c'est possible." #: ../Doc/library/idle.rst:675 msgid "Help and preferences" -msgstr "" +msgstr "Aide et préférences" #: ../Doc/library/idle.rst:678 msgid "Additional help sources" @@ -1202,7 +1482,7 @@ msgstr "" #: ../Doc/library/idle.rst:688 msgid "Setting preferences" -msgstr "" +msgstr "Modifier les préférences" #: ../Doc/library/idle.rst:690 msgid "" @@ -1214,7 +1494,7 @@ msgstr "" #: ../Doc/library/idle.rst:697 msgid "Extensions" -msgstr "" +msgstr "Extensions" #: ../Doc/library/idle.rst:699 msgid "" @@ -1224,3 +1504,8 @@ msgid "" "The only current default extension is zzdummy, an example also used for " "testing." msgstr "" +"*IDLE* inclut un outil d'extensions. Les préférences pour les extensions " +"peuvent être changées avec l'onglet Extensions de la fenêtre de préférences. " +"Lisez le début de *config-extensions.def* dans le dossier *idlelib* pour " +"plus d'informations. La seule extension actuellement utilisée par défaut est " +"*zzdummy*, un exemple également utilisé pour les tests." diff --git a/library/io.po b/library/io.po index 6dc70de2a..7fd28184e 100644 --- a/library/io.po +++ b/library/io.po @@ -1294,7 +1294,7 @@ msgstr "" #: ../Doc/library/io.rst:958 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/library/io.rst:960 msgid "" diff --git a/library/ipaddress.po b/library/ipaddress.po index 669cb3aa5..28696ff89 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -665,7 +665,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:664 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/ipaddress.rst:666 msgid "" diff --git a/library/numbers.po b/library/numbers.po index 22390daf4..3035b0c9f 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/numbers.rst:2 msgid ":mod:`numbers` --- Numeric abstract base classes" -msgstr "" +msgstr ":mod:`numbers` — Classes de base abstraites numériques" #: ../Doc/library/numbers.rst:7 msgid "**Source code:** :source:`Lib/numbers.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/numbers.py`" #: ../Doc/library/numbers.rst:11 msgid "" @@ -32,16 +32,23 @@ msgid "" "more operations. None of the types defined in this module can be " "instantiated." msgstr "" +"Le module :mod:`numbers` (:pep:`3141`) définit une hiérarchie de :term:" +"`classes de base abstraites` numériques qui définissent " +"progressivement plus d'opérations. Aucun des types définis dans ce module ne " +"peut être instancié." #: ../Doc/library/numbers.rst:18 msgid "" "The root of the numeric hierarchy. If you just want to check if an argument " "*x* is a number, without caring what kind, use ``isinstance(x, Number)``." msgstr "" +"La base de la hiérarchie numérique. Si vous voulez juste vérifier qu'un " +"argument *x* est un nombre, peu importe le type, utilisez ``isinstance(x, " +"Number)``." #: ../Doc/library/numbers.rst:23 msgid "The numeric tower" -msgstr "" +msgstr "La tour numérique" #: ../Doc/library/numbers.rst:27 msgid "" @@ -51,26 +58,35 @@ msgid "" "``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!=``. All " "except ``-`` and ``!=`` are abstract." msgstr "" +"Les sous-classes de ce type décrivent des nombres complexes et incluent les " +"opérations qui fonctionnent sur le type natif :class:`complex`. Ce sont : " +"les conversions vers :class:`complex` et :class:`bool`, :attr:`.real`, :attr:" +"`.imag`, ``+``, ``-``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==`` " +"et ``!=``. Toutes sauf ``-`` et ``!=`` sont abstraites." #: ../Doc/library/numbers.rst:35 msgid "Abstract. Retrieves the real component of this number." -msgstr "" +msgstr "Abstrait. Récupère la partie réelle de ce nombre." #: ../Doc/library/numbers.rst:39 msgid "Abstract. Retrieves the imaginary component of this number." -msgstr "" +msgstr "Abstrait. Retrouve la partie imaginaire de ce nombre." #: ../Doc/library/numbers.rst:43 msgid "" "Abstract. Returns the complex conjugate. For example, ``(1+3j).conjugate() " "== (1-3j)``." msgstr "" +"Abstrait. Renvoie le complexe conjugué. Par exemple, ``(1+3j).conjugate() == " +"(1-3j)``." #: ../Doc/library/numbers.rst:48 msgid "" "To :class:`Complex`, :class:`Real` adds the operations that work on real " "numbers." msgstr "" +":class:`Real` ajoute les opérations qui fonctionnent sur les nombres réels " +"à :class:`Complex`." #: ../Doc/library/numbers.rst:51 msgid "" @@ -78,12 +94,17 @@ msgid "" "func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``, " "``%``, ``<``, ``<=``, ``>``, and ``>=``." msgstr "" +"En bref, celles-ci sont : une conversion vers :class:`float`, :func:`math." +"trunc`, :func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:" +"`divmod`, ``//``, ``%``, ``<``, ``<=``, ``>`` et ``>=``." #: ../Doc/library/numbers.rst:55 msgid "" "Real also provides defaults for :func:`complex`, :attr:`~Complex.real`, :" "attr:`~Complex.imag`, and :meth:`~Complex.conjugate`." msgstr "" +"*Real* fournit également des valeurs par défaut pour :func:`complex`, :attr:" +"`~Complex.real`, :attr:`~Complex.imag` et :meth:`~Complex.conjugate`." #: ../Doc/library/numbers.rst:61 msgid "" @@ -91,6 +112,9 @@ msgid "" "`~Rational.denominator` properties, which should be in lowest terms. With " "these, it provides a default for :func:`float`." msgstr "" +"Dérive :class:`Real` et ajoute les propriétés :attr:`~Rational.numerator` " +"et :attr:`~Rational.denominator` qui doivent être les plus petits possible. " +"Avec celles-ci, il fournit une valeur par défaut pour :func:`float`." #: ../Doc/library/numbers.rst:68 ../Doc/library/numbers.rst:72 msgid "Abstract." @@ -103,10 +127,15 @@ msgid "" "`~Rational.denominator`. Adds abstract methods for ``**`` and bit-string " "operations: ``<<``, ``>>``, ``&``, ``^``, ``|``, ``~``." msgstr "" +"Dérive :class:`Rational` et ajoute une conversion en :class:`int`. Fournit " +"des valeurs par défaut pour :func:`float`, :attr:`~Rational.numerator` et :" +"attr:`~Rational.denominator`. Ajoute des méthodes abstraites pour ``**`` et " +"les opérations au niveau des bits: ``<<``, ``>>``, ``&``, ``^``, ``|``, " +"``~``." #: ../Doc/library/numbers.rst:84 msgid "Notes for type implementors" -msgstr "" +msgstr "Notes pour implémenter des types" #: ../Doc/library/numbers.rst:86 msgid "" @@ -115,10 +144,15 @@ msgid "" "the real numbers. For example, :class:`fractions.Fraction` implements :func:" "`hash` as follows::" msgstr "" +"Les développeurs doivent veiller à ce que des nombres égaux soient bien " +"égaux lors de comparaisons et à ce qu'ils soient hachés aux mêmes valeurs. " +"Cela peut être subtil s'il y a deux dérivations différentes des nombres " +"réels. Par exemple, :class:`fractions.Fraction` implémente :func:`hash` " +"comme suit ::" #: ../Doc/library/numbers.rst:105 msgid "Adding More Numeric ABCs" -msgstr "" +msgstr "Ajouter plus d'ABC numériques" #: ../Doc/library/numbers.rst:107 msgid "" @@ -126,10 +160,14 @@ msgid "" "poor hierarchy if it precluded the possibility of adding those. You can add " "``MyFoo`` between :class:`Complex` and :class:`Real` with::" msgstr "" +"Il est bien entendu possible de créer davantage d’ABC pour les nombres et " +"cette hiérarchie serait médiocre si elle excluait la possibilité d'en " +"ajouter. Vous pouvez ajouter ``MyFoo`` entre :class:`Complex` et :class:" +"`Real` ainsi ::" #: ../Doc/library/numbers.rst:119 msgid "Implementing the arithmetic operations" -msgstr "" +msgstr "Implémentation des opérations arithmétiques" #: ../Doc/library/numbers.rst:121 msgid "" @@ -139,6 +177,12 @@ msgid "" "there. For subtypes of :class:`Integral`, this means that :meth:`__add__` " "and :meth:`__radd__` should be defined as::" msgstr "" +"Nous voulons implémenter les opérations arithmétiques de sorte que les " +"opérations en mode mixte appellent une implémentation dont l'auteur connaît " +"les types des deux arguments, ou convertissent chacun dans le type natif le " +"plus proche et effectuent l'opération sur ces types. Pour les sous-types de :" +"class:`Integral`, cela signifie que :meth:`__add__` et :meth:`__radd__` " +"devraient être définis comme suit ::" #: ../Doc/library/numbers.rst:152 msgid "" @@ -148,10 +192,16 @@ msgid "" "an instance of ``A``, which is a subtype of :class:`Complex` (``a : A <: " "Complex``), and ``b : B <: Complex``. I'll consider ``a + b``:" msgstr "" +"Il existe 5 cas différents pour une opération de type mixte sur des sous-" +"classes de :class:`Complex`. Nous nous référerons à tout le code ci-dessus " +"qui ne se réfère pas à ``MyIntegral`` et ``OtherTypeIKnowAbout`` comme " +"\"expression générique\". ``a`` est une instance de ``A``, qui est un sous-" +"type de :class:`Complex` (``a : A <: Complex``) et ``b : B <: Complex``. " +"Considérons ``a + b``:" #: ../Doc/library/numbers.rst:159 msgid "If ``A`` defines an :meth:`__add__` which accepts ``b``, all is well." -msgstr "" +msgstr "Si ``A`` définit une :meth:`__add__` qui accepte ``b``, tout va bien." #: ../Doc/library/numbers.rst:161 msgid "" @@ -161,18 +211,27 @@ msgid "" "`NotImplemented` from :meth:`__add__`. (Or ``A`` may not implement :meth:" "`__add__` at all.)" msgstr "" +"Si ``A`` fait appel au code générique et que celui-ci renvoie une valeur de :" +"meth:`__add__`, nous manquons la possibilité que ``B`` définisse une :meth:" +"`__radd__` plus intelligent, donc le code générique devrait retourner :const:" +"`NotImplemented` dans :meth:`__add__` (ou alors ``A`` ne doit pas " +"implémenter :meth:`__add__` du tout.)" #: ../Doc/library/numbers.rst:167 msgid "" "Then ``B``'s :meth:`__radd__` gets a chance. If it accepts ``a``, all is " "well." msgstr "" +"Alors :meth:`__radd__` de ``B`` a une chance. si elle accepte ``a``, tout va " +"bien." #: ../Doc/library/numbers.rst:169 msgid "" "If it falls back to the boilerplate, there are no more possible methods to " "try, so this is where the default implementation should live." msgstr "" +"Si elle fait appel au code générique, il n'y a plus de méthode possible à " +"essayer, c'est donc ici que l'implémentation par défaut intervient." #: ../Doc/library/numbers.rst:172 msgid "" @@ -180,6 +239,9 @@ msgid "" "because it was implemented with knowledge of ``A``, so it can handle those " "instances before delegating to :class:`Complex`." msgstr "" +"Si ``B < : A```, Python essaie ``B.__radd__`` avant ``A.__add__``. C'est " +"valable parce qu'elle est implémentée avec la connaissance de ``A``, donc " +"elle peut gérer ces instances avant de déléguer à :class:`Complex`." #: ../Doc/library/numbers.rst:177 msgid "" @@ -187,6 +249,9 @@ msgid "" "then the appropriate shared operation is the one involving the built in :" "class:`complex`, and both :meth:`__radd__` s land there, so ``a+b == b+a``." msgstr "" +"Si ``A <: Complex`` et ``B <: Real`` sans autre information, alors " +"l'opération commune appropriée est celle impliquant :class:`complex` et les " +"deux :meth:`__radd__` atterrissent à cet endroit, donc ``a+b == b+a``." #: ../Doc/library/numbers.rst:182 msgid "" @@ -195,3 +260,7 @@ msgid "" "reverse instances of any given operator. For example, :class:`fractions." "Fraction` uses::" msgstr "" +"Comme la plupart des opérations sur un type donné seront très similaires, il " +"peut être utile de définir une fonction accessoire qui génère les instances " +"résultantes et inverses d'un opérateur donné. Par exemple, :class:`fractions." +"Fraction` utilise ::" diff --git a/library/os.path.po b/library/os.path.po index d7f2d9c8f..4bb60eb86 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/os.path.rst:2 msgid ":mod:`os.path` --- Common pathname manipulations" -msgstr "" +msgstr ":mod:`os.path` — manipulation courante des chemins" #: ../Doc/library/os.path.rst:7 msgid "" @@ -40,6 +40,20 @@ msgid "" "encoding), hence Windows applications should use string objects to access " "all files." msgstr "" +"Ce module implémente certaines fonctions utiles sur le nom des chemins. Pour " +"lire ou écrire des fichiers, voir :func:`open`, et pour accéder au système " +"de fichier, voir le module :mod:`os`. Les paramètres de chemin d’accès " +"peuvent être passés sous forme de chaînes de caractères ou de chaîne " +"d'octets. Les programmes sont encouragés à représenter les noms de fichiers " +"en tant que chaînes de caractères Unicode. Malheureusement, certains noms de " +"fichiers peuvent ne pas être représentés sous forme de chaînes de caractères " +"sous UNIX, ainsi, les programmes qui doivent prendre en charge les noms de " +"fichiers arbitraires sur UNIX doivent utiliser des chaînes d'octets pour " +"représenter leurs chemins d’accès. Inversement, l’utilisation de chaîne " +"d'octets ne peut pas représenter tous les noms de fichiers sous Windows " +"(dans le codage ``mbcs`` standard), par conséquent les applications Windows " +"doivent utiliser des chaînes de caractères Unicode pour accéder à tous les " +"fichiers." #: ../Doc/library/os.path.rst:26 msgid "" @@ -48,6 +62,11 @@ msgid "" "explicitly when an application desires shell-like path expansion. (See also " "the :mod:`glob` module.)" msgstr "" +"Contrairement à une invite de commandes Unix, Python ne fait aucune " +"extension de chemin *automatique*. Des fonctions telles que :func:" +"`expanduser` et :func:`expandvars` peuvent être appelées explicitement " +"lorsqu'une application souhaite une extension de chemin semblable à celui " +"d'une invite de commande (voir aussi le module :mod:`glob`)." #: ../Doc/library/os.path.rst:33 msgid "The :mod:`pathlib` module offers high-level path objects." @@ -61,6 +80,9 @@ msgid "" "their parameters. The result is an object of the same type, if a path or " "file name is returned." msgstr "" +"Toutes ces fonctions n'acceptent que des chaînes d'octets ou des chaînes de " +"caractères en tant que paramètres. Le résultat est un objet du même type si " +"un chemin ou un nom de fichier est renvoyé." #: ../Doc/library/os.path.rst:45 msgid "" @@ -72,14 +94,21 @@ msgid "" "path that is *always* in one of the different formats. They all have the " "same interface:" msgstr "" +"Comme les différents systèmes d'exploitation ont des conventions de noms de " +"chemins différentes, il existe plusieurs versions de ce module dans la " +"bibliothèque standard. Le module :mod:`os.path` est toujours le module de " +"chemin adapté au système d'exploitation sur lequel Python tourne, et donc " +"adapté pour les chemins locaux. Cependant, vous pouvez également importer et " +"utiliser les modules individuels si vous voulez manipuler un chemin qui est " +"*toujours* dans l'un des différents formats. Ils ont tous la même interface :" #: ../Doc/library/os.path.rst:53 msgid ":mod:`posixpath` for UNIX-style paths" -msgstr "" +msgstr ":mod:`posixpath` pour les chemins de type UNIX" #: ../Doc/library/os.path.rst:54 msgid ":mod:`ntpath` for Windows paths" -msgstr "" +msgstr ":mod:`ntpath` pour les chemins Windows" #: ../Doc/library/os.path.rst:55 msgid ":mod:`macpath` for old-style MacOS paths" @@ -91,6 +120,9 @@ msgid "" "platforms, this is equivalent to calling the function :func:`normpath` as " "follows: ``normpath(join(os.getcwd(), path))``." msgstr "" +"Renvoie une version absolue et normalisée du chemin d'accès *path*. Sur la " +"plupart des plates-formes, cela équivaut à appeler la fonction :func:" +"`normpath` comme suit : ``normpath(join(os.getcwd(), chemin))```." #: ../Doc/library/os.path.rst:64 ../Doc/library/os.path.rst:77 #: ../Doc/library/os.path.rst:116 ../Doc/library/os.path.rst:125 @@ -116,6 +148,11 @@ msgid "" "program; where :program:`basename` for ``'/foo/bar/'`` returns ``'bar'``, " "the :func:`basename` function returns an empty string (``''``)." msgstr "" +"Renvoie le nom de base du chemin d'accès *path*. C'est le second élément de " +"la paire renvoyée en passant *path* à la fonction :func:`split`. Notez que " +"le résultat de cette fonction est différent de celui du programme Unix :" +"program:`basename` ; là où :program:`basename` pour ``'/foo/bar/'`` renvoie " +"``'bar'``, la fonction :func:`basename` renvoie une chaîne vide (``''``)." #: ../Doc/library/os.path.rst:83 msgid "" diff --git a/library/parser.po b/library/parser.po index 7a443949a..77ca48975 100644 --- a/library/parser.po +++ b/library/parser.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/parser.rst:2 msgid ":mod:`parser` --- Access Python parse trees" -msgstr "" +msgstr ":mod:`parser` — Accès aux arbres syntaxiques" #: ../Doc/library/parser.rst:21 msgid "" @@ -31,6 +31,13 @@ msgid "" "in a manner identical to the code forming the application. It is also " "faster." msgstr "" +"Le module :mod:`parser` expose une interface à l'analyseur et au compilateur " +"de byte-code internes de Python. Son objectif principal est de permettre à " +"du code Python de modifier l'arbre syntaxique d'une expression Python puis " +"de la rendre exécutable. Cette approche est plus fiable que celle consistant " +"à manipuler des chaines de caractères, puisque l'analyse est faite avec le " +"même analyseur que celui utilisé pour le code de l'application. C'est aussi " +"plus rapide." #: ../Doc/library/parser.rst:30 msgid "" @@ -38,6 +45,9 @@ msgid "" "Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` " "module." msgstr "" +"À partir de Python 2.5, il est plus pratique de faire ces manipulations " +"entre la génération de l'AST (*Abstract Syntax Tree*) et la compilation, en " +"utilisant le module :mod:`ast`." #: ../Doc/library/parser.rst:34 msgid "" @@ -46,6 +56,10 @@ msgid "" "editing the parse trees for Python code, but some examples of using the :mod:" "`parser` module are presented." msgstr "" +"Certaines particularités de ce module sont importantes à retenir pour en " +"faire un bon usage. Ce n'est pas un tutoriel sur la modification d'arbres " +"syntaxiques Python, mais certains exemples d'utilisation du module :mod:" +"`parser` sont présentés." #: ../Doc/library/parser.rst:39 msgid "" diff --git a/library/pickle.po b/library/pickle.po index 374fbb855..4dde809e5 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -975,7 +975,7 @@ msgstr "" #: ../Doc/library/pickle.rst:853 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/library/pickle.rst:855 msgid "" diff --git a/library/pickletools.po b/library/pickletools.po index 3f585c902..a9337c6c7 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -37,7 +37,7 @@ msgstr "" #: ../Doc/library/pickletools.rst:21 msgid "Command line usage" -msgstr "" +msgstr "Utilisation de la ligne de commande" #: ../Doc/library/pickletools.rst:25 msgid "" diff --git a/library/random.po b/library/random.po index d8aac21e6..0ee8dc352 100644 --- a/library/random.po +++ b/library/random.po @@ -472,7 +472,7 @@ msgstr "" #: ../Doc/library/random.rst:335 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et Recettes" #: ../Doc/library/random.rst:337 msgid "Basic examples::" diff --git a/library/secrets.po b/library/secrets.po index 30c9d1c0b..58036dbad 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -20,10 +20,12 @@ msgstr "" #: ../Doc/library/secrets.rst:2 msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" msgstr "" +":mod:`secrets` — Générer des nombres aléatoires de façon sécurisée pour la " +"gestion des secrets" #: ../Doc/library/secrets.rst:16 msgid "**Source code:** :source:`Lib/secrets.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/secrets.rst:20 msgid "" @@ -31,6 +33,10 @@ msgid "" "random numbers suitable for managing data such as passwords, account " "authentication, security tokens, and related secrets." msgstr "" +"Le module :mod:`secrets` permet de générer des nombres aléatoires forts au " +"sens de la cryptographie, adaptés à la gestion des mots de passe, à " +"l'authentification des comptes, à la gestion des jetons de sécurité et des " +"secrets associés." #: ../Doc/library/secrets.rst:24 msgid "" @@ -38,10 +44,13 @@ msgid "" "pseudo-random number generator in the :mod:`random` module, which is " "designed for modelling and simulation, not security or cryptography." msgstr "" +"Il faut préférer :mod:`secrets` par rapport au générateur pseudo-aléatoire " +"du module :mod:`random`, ce dernier étant conçu pour la modélisation et la " +"simulation, et non pour la sécurité ou la cryptographie." #: ../Doc/library/secrets.rst:30 msgid ":pep:`506`" -msgstr "" +msgstr ":pep:`506`" #: ../Doc/library/secrets.rst:34 msgid "Random numbers" @@ -52,6 +61,8 @@ msgid "" "The :mod:`secrets` module provides access to the most secure source of " "randomness that your operating system provides." msgstr "" +"Le module :mod:`secrets` fournit un accès à la source d'aléa la plus sûre " +"disponible sur votre système d'exploitation." #: ../Doc/library/secrets.rst:41 msgid "" @@ -59,22 +70,25 @@ msgid "" "provided by the operating system. See :class:`random.SystemRandom` for " "additional details." msgstr "" +"Classe permettant de générer des nombres aléatoires à partir des sources " +"d'aléa les plus sûres fournies par le système d'exploitation. Se référer à :" +"class:`random.SystemRandom` pour plus de détails." #: ../Doc/library/secrets.rst:47 msgid "Return a randomly-chosen element from a non-empty sequence." -msgstr "" +msgstr "Renvoie un élément choisi aléatoirement dans une séquence non-vide." #: ../Doc/library/secrets.rst:51 msgid "Return a random int in the range [0, *n*)." -msgstr "" +msgstr "Renvoie un entier aléatoire dans l'intervalle [0, *n*)." #: ../Doc/library/secrets.rst:55 msgid "Return an int with *k* random bits." -msgstr "" +msgstr "Renvoie un entier de *k* bits aléatoires." #: ../Doc/library/secrets.rst:59 msgid "Generating tokens" -msgstr "" +msgstr "Génération de jetons" #: ../Doc/library/secrets.rst:61 msgid "" @@ -82,12 +96,17 @@ msgid "" "suitable for applications such as password resets, hard-to-guess URLs, and " "similar." msgstr "" +"Le module :mod:`secrets` fournit des fonctions pour la génération sécurisée " +"de jetons adaptés à la réinitialisation de mots de passe, à la production " +"d'URLs difficiles à deviner, etc." #: ../Doc/library/secrets.rst:67 msgid "" "Return a random byte string containing *nbytes* number of bytes. If *nbytes* " "is ``None`` or not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne d'octets aléatoire contenant *nbytes* octets. Si *nbytes* " +"est ``None`` ou omis, une valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:79 msgid "" @@ -95,6 +114,10 @@ msgid "" "bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or " "not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire en hexadécimal. La chaîne " +"comporte *nbytes* octets aléatoires, chaque octet étant écrit sous la forme " +"de deux chiffres hexadécimaux. Si *nbytes* est ``None`` ou omis, une valeur " +"par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:90 msgid "" @@ -103,10 +126,14 @@ msgid "" "characters. If *nbytes* is ``None`` or not supplied, a reasonable default " "is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire adaptée au format URL, contenant " +"*nbytes* octets aléatoires. Le texte est encodé en base64, chaque octet " +"produisant en moyenne 1,3 caractères. Si *nbytes* est ``None`` ou omis, une " +"valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:102 msgid "How many bytes should tokens use?" -msgstr "" +msgstr "Combien d'octets mon jeton doit-il comporter ?" #: ../Doc/library/secrets.rst:104 msgid "" @@ -118,6 +145,13 @@ msgid "" "is sufficient for the typical use-case expected for the :mod:`secrets` " "module." msgstr "" +"Afin de se prémunir des `attaques par force brute `_, les jetons doivent être suffisamment " +"aléatoires. Malheureusement, l'augmentation de la puissance de calcul des " +"ordinateurs leur permet de réaliser plus de tentatives dans le même laps de " +"temps. De ce fait, le nombre de bits recommandé pour l'aléa augmente aussi. " +"En 2015, une longueur de 32 octets (256 bits) aléatoires est généralement " +"considérée suffisante pour les usages typiques du module :mod:`secrets`." #: ../Doc/library/secrets.rst:112 msgid "" @@ -126,22 +160,31 @@ msgid "" "argument to the various ``token_*`` functions. That argument is taken as " "the number of bytes of randomness to use." msgstr "" +"Si vous souhaitez gérer la longueur des jetons par vous-même, vous pouvez " +"spécifier la quantité d'aléa à introduire dans les jetons en passant un " +"argument :class:`int` aux différentes fonctions ``token_*``. Cet argument " +"indique alors le nombre d'octets aléatoires utilisés pour la création du " +"jeton." #: ../Doc/library/secrets.rst:117 msgid "" "Otherwise, if no argument is provided, or if the argument is ``None``, the " "``token_*`` functions will use a reasonable default instead." msgstr "" +"Sinon, si aucun argument n'est passé ou si celui-ci est ``None``, les " +"fonctions ``token_*`` utilisent une valeur par défaut raisonnable à la place." #: ../Doc/library/secrets.rst:122 msgid "" "That default is subject to change at any time, including during maintenance " "releases." msgstr "" +"Cette valeur par défaut est susceptible de changer à n'importe quel moment, " +"y compris lors des mises à jour de maintenance." #: ../Doc/library/secrets.rst:127 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/secrets.rst:131 msgid "" @@ -153,17 +196,19 @@ msgstr "" #: ../Doc/library/secrets.rst:138 msgid "Recipes and best practices" -msgstr "" +msgstr "Recettes et bonnes pratiques" #: ../Doc/library/secrets.rst:140 msgid "" "This section shows recipes and best practices for using :mod:`secrets` to " "manage a basic level of security." msgstr "" +"Cette section expose les recettes et les bonnes pratiques d'utilisation de :" +"mod:`secrets` pour gérer un niveau minimal de sécurité." #: ../Doc/library/secrets.rst:143 msgid "Generate an eight-character alphanumeric password:" -msgstr "" +msgstr "Générer un mot de passe à huit caractères alphanumériques :" #: ../Doc/library/secrets.rst:154 msgid "" @@ -172,12 +217,20 @@ msgid "" "They should be salted and hashed using a cryptographically-strong one-way " "(irreversible) hash function." msgstr "" +"Les applications ne doivent jamais `stocker des mots de passe dans un format " +"permettant leur récupération `_, que ce soit en texte brut ou chiffré. Il convient que les mots de " +"passe soient salés et transformés de façon irréversible par une fonction de " +"hachage cryptographique." #: ../Doc/library/secrets.rst:160 msgid "" "Generate a ten-character alphanumeric password with at least one lowercase " "character, at least one uppercase character, and at least three digits:" msgstr "" +"Générer un mot de passe alphanumérique à dix caractères contenant au moins " +"un caractère en minuscule, au moins un caractère en majuscule et au moins " +"trois chiffres :" #: ../Doc/library/secrets.rst:176 msgid "Generate an `XKCD-style passphrase `_:" @@ -188,3 +241,5 @@ msgid "" "Generate a hard-to-guess temporary URL containing a security token suitable " "for password recovery applications:" msgstr "" +"Générer une URL temporaire difficile à deviner contenant un jeton de " +"sécurité adapté à réinitialisation d'un mot de passe :" diff --git a/library/shutil.po b/library/shutil.po index 0e2ab17e0..bc34b25b4 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -32,12 +32,18 @@ msgid "" "support file copying and removal. For operations on individual files, see " "also the :mod:`os` module." msgstr "" +"Le module :mod:`shutil` propose des opérations de haut niveau sur les " +"fichiers et ensembles de fichiers. En particulier, des fonctions pour copier " +"et déplacer les fichiers sont proposées. Pour les opérations individuelles " +"sur les fichiers, reportez-vous au module :mod:`os`." #: ../Doc/library/shutil.rst:25 msgid "" "Even the higher-level file copying functions (:func:`shutil.copy`, :func:" "`shutil.copy2`) cannot copy all file metadata." msgstr "" +"Même les fonctions de copie haut niveau (:func:`shutil.copy`, :func:`shutil." +"copy2`) ne peuvent copier toutes les métadonnées des fichiers." #: ../Doc/library/shutil.rst:28 msgid "" @@ -47,10 +53,16 @@ msgid "" "be correct. On Windows, file owners, ACLs and alternate data streams are not " "copied." msgstr "" +"Sur les plateformes POSIX, cela signifie que le propriétaire et le groupe du " +"fichier sont perdus, ainsi que les *ACLs*. Sur Mac OS, le clonage de " +"ressource et autres métadonnées ne sont pas utilisés. Cela signifie que les " +"ressources seront perdues et que le type de fichier et les codes créateur ne " +"seront pas corrects. Sur Windows, les propriétaires des fichiers, *ACLs* et " +"flux de données alternatifs ne sont pas copiés." #: ../Doc/library/shutil.rst:38 msgid "Directory and files operations" -msgstr "" +msgstr "Opérations sur les répertoires et les fichiers" #: ../Doc/library/shutil.rst:42 msgid "" @@ -62,6 +74,13 @@ msgid "" "the *fsrc* object is not 0, only the contents from the current file position " "to the end of the file will be copied." msgstr "" +"Copie le contenu de l'objet fichier *fsrc* dans l'objet fichier *fdst*. " +"L'entier *length*, si spécifié, est la taille du tampon. En particulier, une " +"valeur de *length* négative signifie la copie des données sans découper la " +"source en morceaux ; par défaut les données sont lues par morceaux pour " +"éviter la consommation mémoire non-contrôlée. À noter que si la position " +"courante dans l'objet *fsrc* n'est pas 0, seul le contenu depuis la position " +"courante jusqu'à la fin est copié." #: ../Doc/library/shutil.rst:53 msgid "" @@ -79,30 +98,42 @@ msgid "" "Special files such as character or block devices and pipes cannot be copied " "with this function." msgstr "" +"La cible doit être accessible en écriture, sinon l'exception :exc:`OSError` " +"est levée. Si *dst* existe déjà, il est remplacé. Les fichiers spéciaux " +"comme les périphériques caractères ou bloc ainsi que les tubes (*pipes*) ne " +"peuvent pas être copiés avec cette fonction." #: ../Doc/library/shutil.rst:64 msgid "" "If *follow_symlinks* is false and *src* is a symbolic link, a new symbolic " "link will be created instead of copying the file *src* points to." msgstr "" +"Si *follow_symlinks* est faux et *src* est un lien symbolique, un nouveau " +"lien symbolique est créé au lieu de copier le fichier pointé par *src*." #: ../Doc/library/shutil.rst:68 msgid "" ":exc:`IOError` used to be raised instead of :exc:`OSError`. Added " "*follow_symlinks* argument. Now returns *dst*." msgstr "" +":exc:`IOError` était levée au lieu de :exc:`OSError`. Ajout de l'argument " +"*follow_symlinks*. Maintenant renvoie *dst*." #: ../Doc/library/shutil.rst:73 msgid "" "Raise :exc:`SameFileError` instead of :exc:`Error`. Since the former is a " "subclass of the latter, this change is backward compatible." msgstr "" +"Lève :exc:`SameFileError` au lieu de :exc:`Error`. Puisque la première est " +"une sous-classe de la seconde, le changement assure la rétrocompatibilité." #: ../Doc/library/shutil.rst:80 msgid "" "This exception is raised if source and destination in :func:`copyfile` are " "the same file." msgstr "" +"Cette exception est levée si la source et la destination dans :func:" +"`copyfile` sont le même fichier." #: ../Doc/library/shutil.rst:88 msgid "" @@ -118,7 +149,7 @@ msgstr "" #: ../Doc/library/shutil.rst:97 msgid "Added *follow_symlinks* argument." -msgstr "" +msgstr "L'argument *follow_symlinks* a été ajouté." #: ../Doc/library/shutil.rst:102 msgid "" @@ -135,18 +166,27 @@ msgid "" "than the files the symbolic links refer to—reading the information from the " "*src* symbolic link, and writing the information to the *dst* symbolic link." msgstr "" +"Si *follow_symlinks* est faux et *src* et *dst* représentent des liens " +"symboliques, :func:`copystat` agit sur les liens symboliques au lieu des " +"fichiers cibles — elle lit les informations du lien symbolique de *src* et " +"les écrit vers la destination pointée par *dst*." #: ../Doc/library/shutil.rst:116 msgid "" "Not all platforms provide the ability to examine and modify symbolic links. " "Python itself can tell you what functionality is locally available." msgstr "" +"Toutes les plateformes n'offrent pas la possibilité d'examiner et modifier " +"les liens symboliques. Python peut vous informer des fonctionnalités " +"effectivement disponibles." #: ../Doc/library/shutil.rst:120 msgid "" "If ``os.chmod in os.supports_follow_symlinks`` is ``True``, :func:`copystat` " "can modify the permission bits of a symbolic link." msgstr "" +"Si ``os.chmod in os.supports_follow_symlinks`` est ``True``, :func:" +"`copystat` peut modifier les octets de droits d'accès du lien symbolique." #: ../Doc/library/shutil.rst:124 msgid "" diff --git a/library/socket.po b/library/socket.po index de9bfc38f..ec2e3c685 100644 --- a/library/socket.po +++ b/library/socket.po @@ -625,7 +625,7 @@ msgstr "" #: ../Doc/library/socket.rst:527 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/socket.rst:529 msgid "The :mod:`socket` module also offers various network-related services:" diff --git a/library/sunau.po b/library/sunau.po index 1985af35f..6f5a6b4ef 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -125,7 +125,7 @@ msgstr "``'r'``" #: ../Doc/library/sunau.rst:51 msgid "Read only mode." -msgstr "" +msgstr "Mode lecture seule." #: ../Doc/library/sunau.rst:54 msgid "``'w'``" @@ -133,7 +133,7 @@ msgstr "``'w'``" #: ../Doc/library/sunau.rst:54 msgid "Write only mode." -msgstr "" +msgstr "Mode écriture seule." #: ../Doc/library/sunau.rst:56 msgid "Note that it does not allow read/write files." @@ -147,7 +147,7 @@ msgstr "" #: ../Doc/library/sunau.rst:64 msgid "A synonym for :func:`.open`, maintained for backwards compatibility." -msgstr "" +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." #: ../Doc/library/sunau.rst:67 msgid "The :mod:`sunau` module defines the following exception:" @@ -203,15 +203,15 @@ msgstr "" #: ../Doc/library/sunau.rst:126 msgid "Returns sample width in bytes." -msgstr "" +msgstr "Renvoie la largeur de l'échantillon en octets." #: ../Doc/library/sunau.rst:131 msgid "Returns sampling frequency." -msgstr "" +msgstr "Renvoie la fréquence d'échantillonnage." #: ../Doc/library/sunau.rst:136 msgid "Returns number of audio frames." -msgstr "" +msgstr "Renvoie le nombre de trames audio." #: ../Doc/library/sunau.rst:141 msgid "" @@ -232,6 +232,9 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/sunau.rst:161 msgid "" @@ -242,13 +245,17 @@ msgstr "" #: ../Doc/library/sunau.rst:168 msgid "Rewind the file pointer to the beginning of the audio stream." -msgstr "" +msgstr "Remet le pointeur de fichier au début du flux audio." #: ../Doc/library/sunau.rst:170 msgid "" "The following two methods define a term \"position\" which is compatible " "between them, and is otherwise implementation dependent." msgstr "" +"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces " +"positions sont compatible entre elles, la \"position\" de l'un est " +"compatible avec la \"position\" de l'autre. Cette position est dépendante de " +"l'implémentation." #: ../Doc/library/sunau.rst:176 msgid "" @@ -270,11 +277,11 @@ msgstr "" #: ../Doc/library/sunau.rst:191 msgid "Returns ``None``." -msgstr "" +msgstr "Renvoie ``None``." #: ../Doc/library/sunau.rst:196 msgid "Raise an error." -msgstr "" +msgstr "Lève une erreur." #: ../Doc/library/sunau.rst:202 msgid "AU_write Objects" @@ -288,7 +295,7 @@ msgstr "" #: ../Doc/library/sunau.rst:209 msgid "Set the number of channels." -msgstr "" +msgstr "Définit le nombre de canaux." #: ../Doc/library/sunau.rst:214 msgid "Set the sample width (in bytes.)" @@ -329,7 +336,7 @@ msgstr "" #: ../Doc/library/sunau.rst:252 msgid "Write audio frames, without correcting *nframes*." -msgstr "" +msgstr "Écrit les trames audio sans corriger *nframes*." #: ../Doc/library/sunau.rst:254 ../Doc/library/sunau.rst:262 msgid "Any :term:`bytes-like object` is now accepted." diff --git a/library/sysconfig.po b/library/sysconfig.po index 28707d132..b5c390abd 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -267,7 +267,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:162 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/sysconfig.rst:166 msgid "" diff --git a/library/threading.po b/library/threading.po index 5e888ff9c..12248f5aa 100644 --- a/library/threading.po +++ b/library/threading.po @@ -702,6 +702,7 @@ msgstr "Le paramètre *timeout* est nouveau." #: ../Doc/library/threading.rst:402 msgid "Lock acquires can now be interrupted by signals on POSIX." msgstr "" +"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." #: ../Doc/library/threading.rst:408 msgid "" diff --git a/library/timeit.po b/library/timeit.po index 76c9e7f82..969546cdb 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/timeit.rst:2 msgid ":mod:`timeit` --- Measure execution time of small code snippets" -msgstr "" +msgstr ":mod:`timeit` — Mesurer le temps d'exécution de fragments de code" #: ../Doc/library/timeit.rst:7 msgid "**Source code:** :source:`Lib/timeit.py`" @@ -33,20 +33,29 @@ msgid "" "execution times. See also Tim Peters' introduction to the \"Algorithms\" " "chapter in the *Python Cookbook*, published by O'Reilly." msgstr "" +"Ce module fournit une façon simple de mesurer le temps d'exécution de " +"fragments de code Python. Il expose une :ref:`timeit-command-line-interface` " +"ainsi qu'une :ref:`interface Python `. Ce module permet " +"d'éviter un certain nombre de problèmes classiques liés à la mesure des " +"temps d'exécution. Voir par exemple à ce sujet l'introduction par Tim Peters " +"du chapitre « Algorithmes » dans le livre *Python Cookbook*, aux éditions " +"O'Reilly." #: ../Doc/library/timeit.rst:23 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/timeit.rst:25 msgid "" "The following example shows how the :ref:`timeit-command-line-interface` can " "be used to compare three different expressions:" msgstr "" +"L'exemple suivant illustre l'utilisation de l':ref:`timeit-command-line-" +"interface` afin de comparer trois expressions différentes :" #: ../Doc/library/timeit.rst:37 msgid "This can be achieved from the :ref:`python-interface` with::" -msgstr "" +msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec : ::" #: ../Doc/library/timeit.rst:48 msgid "" @@ -57,11 +66,13 @@ msgstr "" #: ../Doc/library/timeit.rst:56 msgid "Python Interface" -msgstr "" +msgstr "Interface Python" #: ../Doc/library/timeit.rst:58 msgid "The module defines three convenience functions and a public class:" msgstr "" +"Ce module définit une classe publique ainsi que trois fonctions destinées à " +"simplifier son usage :" #: ../Doc/library/timeit.rst:63 msgid "" @@ -70,11 +81,15 @@ msgid "" "executions. The optional *globals* argument specifies a namespace in which " "to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"timeit` à *number* reprises. L'argument optionnel *globals* spécifie un " +"espace de nommage dans lequel exécuter le code." #: ../Doc/library/timeit.rst:68 ../Doc/library/timeit.rst:79 #: ../Doc/library/timeit.rst:113 msgid "The optional *globals* parameter was added." -msgstr "" +msgstr "Le paramètre optionnel *globals* a été ajouté." #: ../Doc/library/timeit.rst:74 msgid "" @@ -83,18 +98,23 @@ msgid "" "count and *number* executions. The optional *globals* argument specifies a " "namespace in which to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"repeat` à *number* reprises, *repeat* fois. L'argument optionnel *globals* " +"spécifie un espace de nommage dans lequel exécuter le code." #: ../Doc/library/timeit.rst:84 msgid "The default timer, which is always :func:`time.perf_counter`." -msgstr "" +msgstr "Le minuteur par défaut, qui est toujours :func:`time.perf_counter`." #: ../Doc/library/timeit.rst:86 msgid ":func:`time.perf_counter` is now the default timer." -msgstr "" +msgstr ":func:`time.perf_counter` est désormais le minuteur par défaut." #: ../Doc/library/timeit.rst:92 msgid "Class for timing execution speed of small code snippets." msgstr "" +"Classe permettant de mesurer le temps d'exécution de fragments de code." #: ../Doc/library/timeit.rst:94 msgid "" @@ -106,6 +126,16 @@ msgid "" "will by default be executed within timeit's namespace; this behavior can be " "controlled by passing a namespace to *globals*." msgstr "" +"Ce constructeur prend en argument une instruction dont le temps d'exécution " +"doit être mesuré, une instruction additionnelle de mise en place et une " +"fonction de chronométrage. Les deux instructions valent ``'pass'`` par " +"défaut; la fonction de chronométrage dépend de la plateforme d'exécution (se " +"référer au *doc string* du module). *stmt* et *setup* peuvent contenir " +"plusieurs instructions séparées par des ``;`` ou des sauts de lignes tant " +"qu'ils ne comportent pas de littéraux sur plusieurs lignes. L'instruction " +"est exécutée dans l'espace de nommage de *timeit* par défaut ; ce " +"comportement peut être modifié en passant un espace de nommage au paramètre " +"*globals*." #: ../Doc/library/timeit.rst:102 msgid "" @@ -113,12 +143,18 @@ msgid "" "timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " "convenience methods to call :meth:`.timeit` multiple times." msgstr "" +"Pour mesurer le temps d'exécution de la première instruction, utilisez la " +"méthode :meth:`.timeit`. Les méthodes :meth:`.repeat` et :meth:`.autorange` " +"sont des méthodes d'agrément permettant d'appeler :meth:`.timeit` à " +"plusieurs reprises." #: ../Doc/library/timeit.rst:106 msgid "" "The execution time of *setup* is excluded from the overall timed execution " "run." msgstr "" +"Le temps d'exécution de *setup* n'est pas pris en compte dans le temps " +"global d'exécution." #: ../Doc/library/timeit.rst:108 msgid "" @@ -127,6 +163,11 @@ msgid "" "will then be executed by :meth:`.timeit`. Note that the timing overhead is " "a little larger in this case because of the extra function calls." msgstr "" +"Les paramètres *stmt* et *setup* peuvent également recevoir des objets " +"appelables sans argument. Ceci transforme alors les appels à ces objets en " +"fonction de chronométrage qui seront exécutées par :meth:`.timeit`. Notez " +"que le surcoût lié à la mesure du temps d'exécution dans ce cas est " +"légèrement supérieur en raisons des appels de fonction supplémentaires." #: ../Doc/library/timeit.rst:118 msgid "" @@ -137,6 +178,13 @@ msgid "" "statement, the setup statement and the timer function to be used are passed " "to the constructor." msgstr "" +"Mesure le temps *number* exécution de l'instruction principale. Ceci exécute " +"l'instruction de mise en place une seule fois puis renvoie un flottant " +"correspondant au temps nécessaire à l'exécution de l'instruction principale " +"à plusieurs reprises, mesuré en secondes. L'argument correspond au nombre " +"d'itérations dans la boucle, par défaut un million. L'instruction " +"principale, l'instruction de mise en place et la fonction de chronométrage " +"utilisée sont passées au constructeur." #: ../Doc/library/timeit.rst:127 msgid "" @@ -150,7 +198,7 @@ msgstr "" #: ../Doc/library/timeit.rst:139 msgid "Automatically determine how many times to call :meth:`.timeit`." -msgstr "" +msgstr "Détermine automatiquement combien de fois appeler :meth:`.timeit`." #: ../Doc/library/timeit.rst:141 msgid "" @@ -167,10 +215,13 @@ msgid "" "If *callback* is given and is not ``None``, it will be called after each " "trial with two arguments: ``callback(number, time_taken)``." msgstr "" +"Si *callback* est spécifié et n'est pas ``None``, elle est appelée après " +"chaque itération avec deux arguments (numéro de l'itération et temps " +"écoulé) : ``callback(number, time_taken)``." #: ../Doc/library/timeit.rst:156 msgid "Call :meth:`.timeit` a few times." -msgstr "" +msgstr "Appelle :meth:`.timeit` plusieurs fois." #: ../Doc/library/timeit.rst:158 msgid "" @@ -179,6 +230,10 @@ msgid "" "call :meth:`.timeit`. The second argument specifies the *number* argument " "for :meth:`.timeit`." msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises et " +"renvoie une liste de résultats. Le premier argument spécifie le nombre " +"d'appels à :meth:`.timeit`. Le second argument spécifie l'argument *number* " +"de :meth:`.timeit`." #: ../Doc/library/timeit.rst:165 msgid "" @@ -191,6 +246,16 @@ msgid "" "only number you should be interested in. After that, you should look at the " "entire vector and apply common sense rather than statistics." msgstr "" +"Il est tentant de vouloir calculer la moyenne et l'écart-type des résultats " +"et notifier ces valeurs. Ce n'est cependant pas très utile. En pratique, la " +"valeur la plus basse donne une estimation basse de la vitesse maximale à " +"laquelle votre machine peut exécuter le fragment de code spécifié ; les " +"valeurs hautes de la liste sont typiquement provoquées non pas par une " +"variabilité de la vitesse d'exécution de Python, mais par d'autres processus " +"interférant avec la précision du chronométrage. Le :func:`min` du résultat " +"est probablement la seule valeur à laquelle vous devriez vous intéresser. " +"Pour aller plus loin, vous devriez regarder l'intégralité des résultats et " +"utiliser le bon sens plutôt que les statistiques." #: ../Doc/library/timeit.rst:178 msgid "Helper to print a traceback from the timed code." @@ -198,7 +263,7 @@ msgstr "" #: ../Doc/library/timeit.rst:180 msgid "Typical use::" -msgstr "" +msgstr "Usage typique : ::" #: ../Doc/library/timeit.rst:188 msgid "" @@ -215,14 +280,16 @@ msgstr "Interface en ligne de commande" msgid "" "When called as a program from the command line, the following form is used::" msgstr "" +"Lorsque le module est appelé comme un programme en ligne de commande, la " +"syntaxe suivante est utilisée : ::" #: ../Doc/library/timeit.rst:202 msgid "Where the following options are understood:" -msgstr "" +msgstr "Les options suivantes sont gérées :" #: ../Doc/library/timeit.rst:208 msgid "how many times to execute 'statement'" -msgstr "" +msgstr "nombre d'exécutions de l'instruction *statement*" #: ../Doc/library/timeit.rst:212 msgid "how many times to repeat the timer (default 3)" @@ -231,12 +298,16 @@ msgstr "" #: ../Doc/library/timeit.rst:216 msgid "statement to be executed once initially (default ``pass``)" msgstr "" +"instruction exécutée une seule fois à l'initialisation (``pass`` par défaut)" #: ../Doc/library/timeit.rst:220 msgid "" "measure process time, not wallclock time, using :func:`time.process_time` " "instead of :func:`time.perf_counter`, which is the default" msgstr "" +"mesure le temps au niveau du processus et non au niveau du système, en " +"utilisant :func:`time.process_time` plutôt que :func:`time.perf_counter` qui " +"est utilisée par défaut" #: ../Doc/library/timeit.rst:227 msgid "use :func:`time.time` (deprecated)" @@ -256,7 +327,7 @@ msgstr "" #: ../Doc/library/timeit.rst:245 msgid "print a short usage message and exit" -msgstr "" +msgstr "affiche un court message d'aide puis quitte" #: ../Doc/library/timeit.rst:247 msgid "" @@ -265,12 +336,19 @@ msgid "" "quotes and using leading spaces. Multiple :option:`-s` options are treated " "similarly." msgstr "" +"Une instruction sur plusieurs lignes peut être donnée en entrée en " +"spécifiant chaque ligne comme un argument séparé. Indenter une ligne est " +"possible en encadrant l'argument de guillemets et en le préfixant par des " +"espaces. Plusieurs :option:`-s` sont gérées de la même façon." #: ../Doc/library/timeit.rst:252 msgid "" "If :option:`-n` is not given, a suitable number of loops is calculated by " "trying successive powers of 10 until the total time is at least 0.2 seconds." msgstr "" +"Si :option:`-n` n'est pas donnée, le nombre de boucles adapté est déterminé " +"automatiquement en essayant les puissances de 10 successives jusqu'à ce que " +"le temps total d'exécution dépasse 0,2 secondes." #: ../Doc/library/timeit.rst:255 msgid "" @@ -289,6 +367,11 @@ msgid "" "it. The baseline overhead can be measured by invoking the program without " "arguments, and it might differ between Python versions." msgstr "" +"Il existe un surcoût minimal associé à l'exécution de l'instruction `pass`. " +"Le code présenté ici ne tente pas de le masquer, mais vous devez être " +"conscient de son existence. Ce surcoût minimal peut être mesuré en invoquant " +"le programme sans argument ; il peut différer en fonction des versions de " +"Python." #: ../Doc/library/timeit.rst:272 msgid "Examples" @@ -299,10 +382,14 @@ msgid "" "It is possible to provide a setup statement that is executed only once at " "the beginning:" msgstr "" +"Il est possible de fournir une instruction de mise en place exécutée une " +"seule fois au début du chronométrage :" #: ../Doc/library/timeit.rst:291 msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "" +"La même chose peut être réalisée en utilisant la classe :class:`Timer` et " +"ses méthodes : ::" #: ../Doc/library/timeit.rst:301 msgid "" @@ -310,12 +397,19 @@ msgid "" "lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:" "keyword:`except` to test for missing and present object attributes:" msgstr "" +"Les exemples qui suivent montrent comment chronométrer des expressions sur " +"plusieurs lignes. Nous comparons ici le coût d'utilisation de :func:" +"`hasattr` par rapport à :keyword:`try`/:keyword:`except` pour tester la " +"présence ou l'absence d'attributs d'un objet :" #: ../Doc/library/timeit.rst:347 msgid "" "To give the :mod:`timeit` module access to functions you define, you can " "pass a *setup* parameter which contains an import statement::" msgstr "" +"Afin de permettre à :mod:`timeit` d'accéder aux fonctions que vous avez " +"définies, vous pouvez passer au paramètre *setup* une instruction " +"d'importation: ::" #: ../Doc/library/timeit.rst:358 msgid "" @@ -323,3 +417,6 @@ msgid "" "will cause the code to be executed within your current global namespace. " "This can be more convenient than individually specifying imports::" msgstr "" +"Une autre possibilité est de passer :func:`globals` au paramètre *globals*, " +"ceci qui exécutera le code dans l'espace de nommage global courant. Cela " +"peut être plus pratique que de spécifier manuellement des importations: ::" diff --git a/library/tkinter.po b/library/tkinter.po index c81af3508..11c61dd51 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/tkinter.rst:2 msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" -msgstr "" +msgstr ":mod:`tkinter` — Interface Python pour Tcl/Tk" #: ../Doc/library/tkinter.rst:9 msgid "**Source code:** :source:`Lib/tkinter/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/tkinter/__init__.py`" #: ../Doc/library/tkinter.rst:13 msgid "" @@ -32,6 +32,10 @@ msgid "" "on most Unix platforms, as well as on Windows systems. (Tk itself is not " "part of Python; it is maintained at ActiveState.)" msgstr "" +"Le paquet :mod:`tkinter` (« interface Tk ») est l'interface Python standard " +"de la boîte à outils d'IUG Tk. Tk et :mod:`tkinter` sont disponibles sur la " +"plupart des plates-formes Unix, ainsi que sur les systèmes Windows (Tk lui-" +"même ne fait pas partie de Python ; il est maintenu par ActiveState)." #: ../Doc/library/tkinter.rst:18 msgid "" @@ -41,29 +45,37 @@ msgid "" "is installed, so you can read the Tcl/Tk documentation specific to that " "version." msgstr "" +"Exécuter ``python -m tkinter`` depuis la ligne de commande ouvre une fenêtre " +"de démonstration d'une interface Tk simple, vous indiquant que :mod:" +"`tkinter` est correctement installé sur votre système et indiquant également " +"quelle version de Tcl/Tk est installée ; vous pouvez donc lire la " +"documentation Tcl/Tk spécifique à cette version." #: ../Doc/library/tkinter.rst:25 msgid "Tkinter documentation:" -msgstr "" +msgstr "Documentation de Tkinter :" #: ../Doc/library/tkinter.rst:29 msgid "`Python Tkinter Resources `_" -msgstr "" +msgstr "`Python Tkinter Resources `_" #: ../Doc/library/tkinter.rst:28 msgid "" "The Python Tkinter Topic Guide provides a great deal of information on using " "Tk from Python and links to other sources of information on Tk." msgstr "" +"Le *Python Tkinter Topic Guide* fournit beaucoup d'informations sur " +"l'utilisation de Tk à partir de Python et des liens vers d'autres sources " +"d'information sur Tk." #: ../Doc/library/tkinter.rst:32 msgid "`TKDocs `_" -msgstr "" +msgstr "`TKDocs `_" #: ../Doc/library/tkinter.rst:32 msgid "" "Extensive tutorial plus friendlier widget pages for some of the widgets." -msgstr "" +msgstr "Tutoriel complet plus convivial pour certains des objets graphiques." #: ../Doc/library/tkinter.rst:35 msgid "" @@ -73,29 +85,31 @@ msgstr "" #: ../Doc/library/tkinter.rst:35 msgid "On-line reference material." -msgstr "" +msgstr "Documents de référence en ligne." #: ../Doc/library/tkinter.rst:38 msgid "`Tkinter docs from effbot `_" -msgstr "" +msgstr "`Documents Tkinter sur effbot `_" #: ../Doc/library/tkinter.rst:38 msgid "Online reference for tkinter supported by effbot.org." -msgstr "" +msgstr "Référence en ligne pour *tkinter* réalisée par *effbot.org*." #: ../Doc/library/tkinter.rst:41 msgid "`Programming Python `_" -msgstr "" +msgstr "`Programming Python `_" #: ../Doc/library/tkinter.rst:41 msgid "Book by Mark Lutz, has excellent coverage of Tkinter." -msgstr "" +msgstr "Livre de Mark Lutz, qui couvre excellemment bien Tkinter." #: ../Doc/library/tkinter.rst:44 msgid "" "`Modern Tkinter for Busy Python Developers `_" msgstr "" +"`Modern Tkinter for Busy Python Developers `_" #: ../Doc/library/tkinter.rst:44 msgid "" @@ -108,32 +122,37 @@ msgid "" "`Python and Tkinter Programming `_" msgstr "" +"`Python and Tkinter Programming `_" #: ../Doc/library/tkinter.rst:47 msgid "Book by John Grayson (ISBN 1-884777-81-3)." -msgstr "" +msgstr "Livre de John Grayson (ISBN 1-884777-81-3)." #: ../Doc/library/tkinter.rst:49 msgid "Tcl/Tk documentation:" -msgstr "" +msgstr "Documentation de Tcl/Tk :" #: ../Doc/library/tkinter.rst:53 msgid "`Tk commands `_" -msgstr "" +msgstr "`Commandes Tk `_" #: ../Doc/library/tkinter.rst:52 msgid "" "Most commands are available as :mod:`tkinter` or :mod:`tkinter.ttk` classes. " "Change '8.6' to match the version of your Tcl/Tk installation." msgstr "" +"La plupart des commandes sont disponibles sous forme de classes :mod:" +"`tkinter` ou :mod:`tkinter.ttk`. Modifiez '8.6' pour correspondre à votre " +"version installée de Tcl/Tk." #: ../Doc/library/tkinter.rst:56 msgid "`Tcl/Tk recent man pages `_" -msgstr "" +msgstr "`Pages de manuel récentes de Tcl/Tk `_" #: ../Doc/library/tkinter.rst:56 msgid "Recent Tcl/Tk manuals on www.tcl.tk." -msgstr "" +msgstr "Manuels récents de Tcl/Tk sur *www.tcl.tk*." #: ../Doc/library/tkinter.rst:59 msgid "`ActiveState Tcl Home Page `_" @@ -142,28 +161,31 @@ msgstr "" #: ../Doc/library/tkinter.rst:59 msgid "The Tk/Tcl development is largely taking place at ActiveState." msgstr "" +"Le développement de Tk/Tcl se déroule en grande partie au sein d'ActiveState." #: ../Doc/library/tkinter.rst:62 msgid "" "`Tcl and the Tk Toolkit `_" msgstr "" +"`Tcl and the Tk Toolkit `_" #: ../Doc/library/tkinter.rst:62 msgid "Book by John Ousterhout, the inventor of Tcl." -msgstr "" +msgstr "Livre de John Ousterhout, l'inventeur de Tcl." #: ../Doc/library/tkinter.rst:64 msgid "`Practical Programming in Tcl and Tk `_" -msgstr "" +msgstr "`Practical Programming in Tcl and Tk `_" #: ../Doc/library/tkinter.rst:65 msgid "Brent Welch's encyclopedic book." -msgstr "" +msgstr "Le livre encyclopédique de Brent Welch." #: ../Doc/library/tkinter.rst:69 msgid "Tkinter Modules" -msgstr "" +msgstr "Modules Tkinter" #: ../Doc/library/tkinter.rst:71 msgid "" @@ -174,6 +196,13 @@ msgid "" "programmers. It is usually a shared library (or DLL), but might in some " "cases be statically linked with the Python interpreter." msgstr "" +"La plupart du temps, :mod:`tkinter` est tout ce dont vous avez vraiment " +"besoin mais un certain nombre de modules supplémentaires sont également " +"disponibles. L'interface Tk est située dans un module binaire nommé :mod:" +"`_tkinter`. Ce module contient l'interface de bas niveau vers Tk et ne doit " +"jamais être utilisé directement par les développeurs. Il s'agit généralement " +"d'une bibliothèque partagée (ou DLL) mais elle peut, dans certains cas, être " +"liée statiquement à l'interpréteur Python." #: ../Doc/library/tkinter.rst:78 msgid "" @@ -182,10 +211,15 @@ msgid "" "Importing :mod:`tkinter` will automatically import :mod:`tkinter.constants`, " "so, usually, to use Tkinter all you need is a simple import statement::" msgstr "" +"En plus du module d'interface Tk, :mod:`tkinter` inclut un certain nombre de " +"modules Python, :mod:`tkinter.constants` étant l'un des plus importants. " +"Importer :mod:`tkinter` charge automatiquement :mod:`tkinter.constants` " +"donc, habituellement, pour utiliser Tkinter, tout ce dont vous avez besoin " +"est une simple commande d'importation : ::" #: ../Doc/library/tkinter.rst:85 msgid "Or, more often::" -msgstr "" +msgstr "Ou, plus souvent : ::" #: ../Doc/library/tkinter.rst:92 msgid "" @@ -193,6 +227,9 @@ msgid "" "toplevel widget of Tk which usually is the main window of an application. " "Each instance has its own associated Tcl interpreter." msgstr "" +"La classe :class:`Tk` est instanciée sans argument. Cela crée un widget de " +"haut niveau de Tk qui est généralement la fenêtre principale d'une " +"application. Chaque instance a son propre interpréteur Tcl associé." #: ../Doc/library/tkinter.rst:101 msgid "" @@ -205,88 +242,104 @@ msgid "" "window created (and the Tk subsystem initialized) by calling its :meth:" "`loadtk` method." msgstr "" +"La fonction :func:`Tcl` est une fonction fabrique qui crée un objet " +"similaire à celui créé par la classe :class:`Tk`, sauf qu'elle n'initialise " +"pas le sous-système Tk. Ceci est le plus souvent utile lorsque vous pilotez " +"l'interpréteur Tcl dans un environnement où vous ne voulez pas créer des " +"fenêtres de haut niveau supplémentaires, ou alors si c'est impossible (comme " +"les systèmes Unix/Linux sans un serveur X). Un objet créé par :func:`Tcl` " +"peut avoir une fenêtre de haut niveau créée (et le sous-système Tk " +"initialisé) en appelant sa méthode :meth:`loadtk`." #: ../Doc/library/tkinter.rst:110 msgid "Other modules that provide Tk support include:" -msgstr "" +msgstr "Parmi les modules qui savent gérer Tk, nous pouvons citer :" #: ../Doc/library/tkinter.rst:113 msgid ":mod:`tkinter.scrolledtext`" -msgstr "" +msgstr ":mod:`tkinter.scrolledtext`" #: ../Doc/library/tkinter.rst:113 msgid "Text widget with a vertical scroll bar built in." msgstr "" +"Outil d'affichage de texte avec une barre de défilement verticale intégrée." #: ../Doc/library/tkinter.rst:116 msgid ":mod:`tkinter.colorchooser`" -msgstr "" +msgstr ":mod:`tkinter.colorchooser`" #: ../Doc/library/tkinter.rst:116 msgid "Dialog to let the user choose a color." -msgstr "" +msgstr "Boîte de dialogue permettant à l'utilisateur de choisir une couleur." #: ../Doc/library/tkinter.rst:119 msgid ":mod:`tkinter.commondialog`" -msgstr "" +msgstr ":mod:`tkinter.commondialog`" #: ../Doc/library/tkinter.rst:119 msgid "Base class for the dialogs defined in the other modules listed here." msgstr "" +"Classe de base pour les boîtes de dialogue définies dans les autres modules " +"listés ici." #: ../Doc/library/tkinter.rst:122 msgid ":mod:`tkinter.filedialog`" -msgstr "" +msgstr ":mod:`tkinter.filedialog`" #: ../Doc/library/tkinter.rst:122 msgid "Common dialogs to allow the user to specify a file to open or save." msgstr "" +"Boîtes de dialogue standard permettant à l'utilisateur de spécifier un " +"fichier à ouvrir ou à enregistrer." #: ../Doc/library/tkinter.rst:125 msgid ":mod:`tkinter.font`" -msgstr "" +msgstr ":mod:`tkinter.font`" #: ../Doc/library/tkinter.rst:125 msgid "Utilities to help work with fonts." -msgstr "" +msgstr "Utilitaires pour gérer les polices de caractères." #: ../Doc/library/tkinter.rst:128 msgid ":mod:`tkinter.messagebox`" -msgstr "" +msgstr ":mod:`tkinter.messagebox`" #: ../Doc/library/tkinter.rst:128 msgid "Access to standard Tk dialog boxes." -msgstr "" +msgstr "Accès aux boîtes de dialogue Tk standard." #: ../Doc/library/tkinter.rst:131 msgid ":mod:`tkinter.simpledialog`" -msgstr "" +msgstr ":mod:`tkinter.simpledialog`" #: ../Doc/library/tkinter.rst:131 msgid "Basic dialogs and convenience functions." -msgstr "" +msgstr "Boîtes de dialogue simples et fonctions utilitaires." #: ../Doc/library/tkinter.rst:135 msgid ":mod:`tkinter.dnd`" -msgstr "" +msgstr ":mod:`tkinter.dnd`" #: ../Doc/library/tkinter.rst:134 msgid "" "Drag-and-drop support for :mod:`tkinter`. This is experimental and should " "become deprecated when it is replaced with the Tk DND." msgstr "" +"Support du glisser-déposer pour :mod:`tkinter`. Il s'agit d'une méthode " +"expérimentale qui ne sera plus maintenue lorsqu'elle sera remplacée par Tk " +"DND." #: ../Doc/library/tkinter.rst:139 msgid ":mod:`turtle`" -msgstr "" +msgstr ":mod:`turtle`" #: ../Doc/library/tkinter.rst:138 msgid "Turtle graphics in a Tk window." -msgstr "" +msgstr "Tortue graphique dans une fenêtre Tk." #: ../Doc/library/tkinter.rst:142 msgid "Tkinter Life Preserver" -msgstr "" +msgstr "Guide de survie Tkinter" #: ../Doc/library/tkinter.rst:147 msgid "" @@ -294,45 +347,54 @@ msgid "" "Tkinter. Rather, it is intended as a stop gap, providing some introductory " "orientation on the system." msgstr "" +"Cette section n'est pas conçue pour être un tutoriel exhaustif de Tk ou " +"Tkinter. Il s'agit plutôt d'un guide d'introduction au système." #: ../Doc/library/tkinter.rst:151 msgid "Credits:" -msgstr "" +msgstr "Crédits :" #: ../Doc/library/tkinter.rst:153 msgid "Tk was written by John Ousterhout while at Berkeley." -msgstr "" +msgstr "*Tk* a été écrit par John Ousterhout de Berkeley." #: ../Doc/library/tkinter.rst:155 msgid "Tkinter was written by Steen Lumholt and Guido van Rossum." -msgstr "" +msgstr "*Tkinter* a été écrit par Steen Lumholt et Guido van Rossum." #: ../Doc/library/tkinter.rst:157 msgid "" "This Life Preserver was written by Matt Conway at the University of Virginia." msgstr "" +"Ce guide de survie a été écrit par Matt Conway de l'Université de Virginie." #: ../Doc/library/tkinter.rst:159 msgid "" "The HTML rendering, and some liberal editing, was produced from a FrameMaker " "version by Ken Manheimer." msgstr "" +"Le rendu HTML, avec quelques modifications, a été réalisé à partir d'une " +"version FrameMaker par Ken Manheimer." #: ../Doc/library/tkinter.rst:162 msgid "" "Fredrik Lundh elaborated and revised the class interface descriptions, to " "get them current with Tk 4.2." msgstr "" +"Fredrik Lundh a élaboré et mis à jour les descriptions de l'interface des " +"classes, en cohérence avec Tk 4.2." #: ../Doc/library/tkinter.rst:165 msgid "" "Mike Clarkson converted the documentation to LaTeX, and compiled the User " "Interface chapter of the reference manual." msgstr "" +"Mike Clarkson a converti la documentation en LaTeX et a compilé le chapitre " +"*Interface utilisateur* du manuel de référence." #: ../Doc/library/tkinter.rst:170 msgid "How To Use This Section" -msgstr "" +msgstr "Mode d'emploi" #: ../Doc/library/tkinter.rst:172 msgid "" @@ -340,6 +402,9 @@ msgid "" "background material, while the second half can be taken to the keyboard as a " "handy reference." msgstr "" +"Cette section est divisée en deux parties : la première moitié (à peu près) " +"couvre la partie théorique, tandis que la seconde moitié peut être utilisée " +"comme guide pratique." #: ../Doc/library/tkinter.rst:176 msgid "" @@ -352,6 +417,14 @@ msgid "" "best we can do is point you to the best documentation that exists. Here are " "some hints:" msgstr "" +"Lorsque l'on essaie de répondre à des questions sur la manière de faire « " +"ceci ou cela », il est souvent préférable de trouver comment le faire en Tk, " +"puis de le convertir en fonction correspondante :mod:`tkinter`. Les " +"programmeurs Python peuvent souvent deviner la commande Python correcte en " +"consultant la documentation Tk. Cela signifie que pour utiliser Tkinter, " +"vous devez en savoir un peu plus sur Tk. Ce document ne peut pas remplir ce " +"rôle, alors le mieux que nous puissions faire est de vous indiquer la " +"meilleure documentation qui existe. Voici quelques conseils :" #: ../Doc/library/tkinter.rst:184 msgid "" @@ -360,6 +433,11 @@ msgid "" "``man3`` man pages describe the C interface to the Tk library and thus are " "not especially helpful for script writers." msgstr "" +"Les auteurs conseillent fortement d'obtenir une copie des pages de manuel de " +"Tk. En particulier, les pages de manuel dans le répertoire ``manN`` sont les " +"plus utiles. Les pages de manuel ``man3`` décrivent l'interface C de la " +"bibliothèque Tk et ne sont donc pas particulièrement utiles aux développeurs " +"de scripts." #: ../Doc/library/tkinter.rst:189 msgid "" @@ -368,20 +446,26 @@ msgid "" "for the novice. The book is not exhaustive, and for many details it defers " "to the man pages." msgstr "" +"Addison-Wesley a publié un livre intitulé *Tcl and the Tk Toolkit* de John " +"Ousterhout (ISBN 0-201-63337-X) qui est une bonne introduction à Tcl et Tk " +"pour débutants. Le livre n'est pas exhaustif et, pour beaucoup de détails, " +"il renvoie aux pages du manuel." #: ../Doc/library/tkinter.rst:194 msgid "" ":file:`tkinter/__init__.py` is a last resort for most, but can be a good " "place to go when nothing else makes sense." msgstr "" +":file:`tkinter/__init__.py` est souvent un dernier recours, mais peut être " +"un bon endroit où aller quand rien d'autre ne fait sens." #: ../Doc/library/tkinter.rst:199 msgid "A Simple Hello World Program" -msgstr "" +msgstr "Un simple programme *Hello World*" #: ../Doc/library/tkinter.rst:230 msgid "A (Very) Quick Look at Tcl/Tk" -msgstr "" +msgstr "Un (très) rapide aperçu de Tcl/Tk" #: ../Doc/library/tkinter.rst:232 msgid "" @@ -389,6 +473,9 @@ msgid "" "programmers almost always refer to the classes at the very bottom of the " "hierarchy." msgstr "" +"La hiérarchie de classes semble compliquée mais, dans la pratique, les " +"développeurs d'applications se réfèrent presque toujours aux classes situées " +"tout en bas de la hiérarchie." #: ../Doc/library/tkinter.rst:236 msgid "Notes:" @@ -399,6 +486,9 @@ msgid "" "These classes are provided for the purposes of organizing certain functions " "under one namespace. They aren't meant to be instantiated independently." msgstr "" +"Ces classes sont fournies dans le but d'organiser certaines fonctions sous " +"un seul espace de nommage. Elles n'ont pas vocation à être instanciées " +"indépendamment." #: ../Doc/library/tkinter.rst:241 msgid "" @@ -406,6 +496,10 @@ msgid "" "application. Application programmers need not instantiate one explicitly, " "the system creates one whenever any of the other classes are instantiated." msgstr "" +"La classe :class:`Tk` est destinée à être instanciée une seule fois dans une " +"application. Les développeurs d'applications n'ont pas besoin d'en " +"instancier une explicitement, Le système en crée une au besoin quand une des " +"autres classes est instanciée." #: ../Doc/library/tkinter.rst:245 msgid "" @@ -413,6 +507,9 @@ msgid "" "for subclassing to make \"real\" widgets (in C++, this is called an " "'abstract class')." msgstr "" +"La classe :class:`Widget` n'est pas destinée à être instanciée, elle est " +"destinée uniquement au sous-classement pour faire de « vrais » objets " +"graphiques (en C++, on appelle cela une « classe abstraite »)." #: ../Doc/library/tkinter.rst:249 msgid "" @@ -421,6 +518,10 @@ msgid "" "various parts of a Tk command. (See section :ref:`tkinter-basic-mapping` " "for the :mod:`tkinter` equivalents of what's below.)" msgstr "" +"Pour comprendre cette documentation, il y aura des moments où vous aurez " +"besoin de savoir comment lire de courts passages de Tk et comment identifier " +"les différentes parties d'une commande Tk. (Voir la section :ref:`tkinter-" +"basic-mapping` pour les équivalents :mod:`tkinter` de ce qui suit)." #: ../Doc/library/tkinter.rst:254 msgid "" @@ -429,22 +530,31 @@ msgid "" "*options* that help configure it, and the *actions* that make it do useful " "things." msgstr "" +"Les scripts Tk sont des programmes Tcl. Comme tous les programmes Tcl, les " +"scripts Tk ne sont que des listes de commandes séparées par des espaces. Un " +"objet graphique Tk n'est constitué que de sa *classe*, des *options* qui " +"l'aident à se configurer et des *actions* qui lui font faire des choses " +"utiles." #: ../Doc/library/tkinter.rst:258 msgid "To make a widget in Tk, the command is always of the form::" msgstr "" +"Pour créer un objet graphique en Tk, la commande est toujours de la " +"forme : ::" #: ../Doc/library/tkinter.rst:263 msgid "*classCommand*" -msgstr "" +msgstr "*classCommand*" #: ../Doc/library/tkinter.rst:263 msgid "denotes which kind of widget to make (a button, a label, a menu...)" msgstr "" +"indique le type d'objet graphique à réaliser (un bouton, une étiquette, un " +"menu…)" #: ../Doc/library/tkinter.rst:270 msgid "*newPathname*" -msgstr "" +msgstr "*newPathname*" #: ../Doc/library/tkinter.rst:266 msgid "" @@ -454,6 +564,13 @@ msgid "" "children are delimited by more periods. For example, ``.myApp.controlPanel." "okButton`` might be the name of a widget." msgstr "" +"est le nouveau nom pour cet objet graphique. Tous les noms dans Tk doivent " +"être uniques. Pour vous aider à respecter cette règle, les objets " +"graphiques dans Tk sont nommés avec des *noms d'accès*, tout comme les " +"fichiers dans le système de fichiers. L'objet graphique de niveau " +"supérieur, la racine (*root* en anglais), s'appelle ``.`` (point) et les " +"enfants sont délimités par plusieurs points. Par exemple, ``.myApp." +"controlPanel.okButton`` pourrait être le nom d'un objet graphique." #: ../Doc/library/tkinter.rst:276 msgid "*options*" @@ -466,6 +583,11 @@ msgid "" "by a '-', like Unix shell command flags, and values are put in quotes if " "they are more than one word." msgstr "" +"configure l'apparence de l'objet graphique et, dans certains cas, son " +"comportement. Les options se présentent sous la forme d'une liste de " +"paramètres et de valeurs. Les paramètres sont précédés d'un « - », comme les " +"paramètres d'une ligne de commande du shell Unix, et les valeurs sont mises " +"entre guillemets si elles font plus d'un mot." #: ../Doc/library/tkinter.rst:278 ../Doc/library/tkinter.rst:540 #: ../Doc/library/tkinter.rst:714 @@ -480,10 +602,15 @@ msgid "" "someOptions), in C++, you would express this as fred." "someAction(someOptions), and in Tk, you say::" msgstr "" +"Une fois créé, le chemin d'accès à l'objet graphique devient une nouvelle " +"commande. Cette nouvelle *commande d'objet graphique* est l'interface du " +"programmeur pour que le nouvel objet graphique effectue une *action*. En C, " +"cela prend la forme ``someAction(fred, someOptions)``, en C++, cela prend la " +"forme `fred.someAction(someOptions)` et, en Tk, vous dites ::" #: ../Doc/library/tkinter.rst:294 msgid "Note that the object name, ``.fred``, starts with a dot." -msgstr "" +msgstr "Notez que le nom de l'objet, ``.fred``, commence par un point." #: ../Doc/library/tkinter.rst:296 msgid "" @@ -492,6 +619,11 @@ msgid "" "greyed out), but does not work if fred is a label (disabling of labels is " "not supported in Tk)." msgstr "" +"Comme vous pouvez vous y attendre, les valeurs autorisées pour *someAction* " +"dépendent de la classe de l'objet graphique : ``.fred disable`` fonctionne " +"si ``fred`` est un bouton (``fred`` devient grisé), mais ne fonctionne pas " +"si ``fred`` est une étiquette (la désactivation des étiquettes n'existe pas " +"dans Tk)." #: ../Doc/library/tkinter.rst:300 msgid "" @@ -500,20 +632,29 @@ msgid "" "``delete`` command, would need arguments to specify what range of text to " "delete." msgstr "" +"Les valeurs possibles de *someOptions* dépendent de l'action. Certaines " +"actions, comme ``disable``, ne nécessitent aucun argument ; d'autres, comme " +"la commande ``delete`` d'une zone de saisie, nécessitent des arguments pour " +"spécifier l'étendue du texte à supprimer." #: ../Doc/library/tkinter.rst:308 msgid "Mapping Basic Tk into Tkinter" -msgstr "" +msgstr "Correspondance entre *Basic Tk* et *Tkinter*" #: ../Doc/library/tkinter.rst:310 msgid "Class commands in Tk correspond to class constructors in Tkinter. ::" msgstr "" +"Les commandes de classes dans Tk correspondent aux constructeurs de classes " +"dans Tkinter. ::" #: ../Doc/library/tkinter.rst:314 msgid "" "The master of an object is implicit in the new name given to it at creation " "time. In Tkinter, masters are specified explicitly. ::" msgstr "" +"Le constructeur d'un objet est implicite dans le nouveau nom qui lui est " +"donné lors de la création. Dans Tkinter, les constructeurs sont spécifiés " +"explicitement. ::" #: ../Doc/library/tkinter.rst:319 msgid "" @@ -523,6 +664,13 @@ msgid "" "indices, in dictionary style, for established instances. See section :ref:" "`tkinter-setting-options` on setting options. ::" msgstr "" +"Les options de configuration dans Tk sont données dans des listes de " +"paramètres séparés par des traits d'union suivies de leurs valeurs. Dans " +"Tkinter, les options sont spécifiées sous forme d'arguments par mots-clés " +"dans le constructeur d'instance, et d'arguments par mots-clés pour " +"configurer les appels ou sous forme d'une entrée, dans le style " +"dictionnaire, d'instance pour les instances établies. Voir la section :ref:" +"`tkinter-setting-options` pour la façon de définir les options.::" #: ../Doc/library/tkinter.rst:329 msgid "" @@ -532,6 +680,12 @@ msgid "" "widget. The actions (methods) that a given widget can perform are listed " "in :file:`tkinter/__init__.py`. ::" msgstr "" +"Dans Tk, pour effectuer une action sur un objet graphique, utilisez le nom " +"de l'objet graphique comme une commande et faites-le suivre d'un nom " +"d'action, éventuellement avec des arguments (options). Dans Tkinter, vous " +"appelez des méthodes sur l'instance de classe pour invoquer des actions sur " +"l'objet graphique. Les actions (méthodes) qu'un objet graphique donné peut " +"effectuer sont listées dans :file:`tkinter/__init__.py`. ::" #: ../Doc/library/tkinter.rst:337 msgid "" @@ -542,26 +696,34 @@ msgid "" "so inherit all the packing methods. See the :mod:`tkinter.tix` module " "documentation for additional information on the Form geometry manager. ::" msgstr "" +"Pour donner un objet graphique à l'empaqueteur (ce qui gère la disposition à " +"l'écran), appelez ``pack`` avec des arguments optionnels. Dans Tkinter, la " +"classe ``Pack`` contient toutes ces fonctionnalités et les différentes " +"formes de la commande ``pack`` sont implémentées comme méthodes. Tous les " +"objets graphiques de :mod:`tkinter` sont sous-classés depuis l'empaqueteur " +"et donc héritent de toutes les méthodes d'empaquetage. Voir la documentation " +"du module :mod:`tkinter.tix` pour plus d'informations sur le gestionnaire de " +"disposition des formulaires. ::" #: ../Doc/library/tkinter.rst:348 msgid "How Tk and Tkinter are Related" -msgstr "" +msgstr "Relations entre Tk et Tkinter" #: ../Doc/library/tkinter.rst:350 msgid "From the top down:" -msgstr "" +msgstr "De haut en bas :" #: ../Doc/library/tkinter.rst:353 msgid "Your App Here (Python)" -msgstr "" +msgstr "Votre application (Python)" #: ../Doc/library/tkinter.rst:353 msgid "A Python application makes a :mod:`tkinter` call." -msgstr "" +msgstr "Une application Python fait un appel :mod:`tkinter`." #: ../Doc/library/tkinter.rst:360 msgid "tkinter (Python Package)" -msgstr "" +msgstr "*tkinter* (paquet Python)" #: ../Doc/library/tkinter.rst:356 msgid "" @@ -571,20 +733,26 @@ msgid "" "form that makes them look as if they had come from a Tk script instead of a " "Python script." msgstr "" +"Cet appel (par exemple, la création d'un objet graphique de type bouton) est " +"implémenté dans le paquet :mod:`tkinter`, qui est écrit en Python. Cette " +"fonction Python analyse les commandes et les arguments et les convertit en " +"une forme qui les fait ressembler à un script Tk au lieu d'un script Python." #: ../Doc/library/tkinter.rst:364 msgid "_tkinter (C)" -msgstr "" +msgstr "_tkinter (C)" #: ../Doc/library/tkinter.rst:363 msgid "" "These commands and their arguments will be passed to a C function in the :" "mod:`_tkinter` - note the underscore - extension module." msgstr "" +"Ces commandes et leurs arguments sont passés à une fonction C dans le module " +"d'extension :mod:`_tkinter` — notez le tiret bas." #: ../Doc/library/tkinter.rst:371 msgid "Tk Widgets (C and Tcl)" -msgstr "" +msgstr "Objets graphiques Tk (C et Tcl)" #: ../Doc/library/tkinter.rst:367 msgid "" @@ -594,56 +762,74 @@ msgid "" "widgets, and is executed once at the point where the Python :mod:`tkinter` " "package is imported. (The user never sees this stage)." msgstr "" +"Cette fonction C est capable d'effectuer des appels vers d'autres modules C, " +"y compris les fonctions C qui composent la bibliothèque Tk. Tk est " +"implémenté en C et un peu en Tcl. La partie Tcl des objets graphiques Tk est " +"utilisée pour lier certains comportements par défaut aux objets graphiques, " +"et est exécutée une fois au moment où le paquet Python :mod:`tkinter` est " +"importé (cette étape est transparente pour l'utilisateur)." #: ../Doc/library/tkinter.rst:374 msgid "Tk (C)" -msgstr "" +msgstr "Tk (C)" #: ../Doc/library/tkinter.rst:374 msgid "The Tk part of the Tk Widgets implement the final mapping to ..." msgstr "" +"La partie Tk des objets graphiques Tk implémente la correspondance finale " +"avec …" #: ../Doc/library/tkinter.rst:378 msgid "Xlib (C)" -msgstr "" +msgstr "Xlib (C)" #: ../Doc/library/tkinter.rst:377 msgid "the Xlib library to draw graphics on the screen." msgstr "" +"la bibliothèque *Xlib* pour dessiner des éléments graphiques à l'écran." #: ../Doc/library/tkinter.rst:381 msgid "Handy Reference" -msgstr "" +msgstr "Guide pratique" #: ../Doc/library/tkinter.rst:387 msgid "Setting Options" -msgstr "" +msgstr "Définition des options" #: ../Doc/library/tkinter.rst:389 msgid "" "Options control things like the color and border width of a widget. Options " "can be set in three ways:" msgstr "" +"Les options contrôlent des paramètres tels que la couleur et la largeur de " +"la bordure d'un objet graphique. Les options peuvent être réglées de trois " +"façons :" #: ../Doc/library/tkinter.rst:395 msgid "At object creation time, using keyword arguments" -msgstr "" +msgstr "Lors de la création de l'objet, à l'aide d'arguments par mots-clés" #: ../Doc/library/tkinter.rst:401 msgid "After object creation, treating the option name like a dictionary index" msgstr "" +"Après la création de l'objet, en manipulant le nom de l'option comme une " +"entrée de dictionnaire" #: ../Doc/library/tkinter.rst:406 msgid "" "Use the config() method to update multiple attrs subsequent to object " "creation" msgstr "" +"Utilisez la méthode ``config()`` pour mettre à jour plusieurs attributs " +"après la création de l'objet" #: ../Doc/library/tkinter.rst:408 msgid "" "For a complete explanation of a given option and its behavior, see the Tk " "man pages for the widget in question." msgstr "" +"Pour l'explication complète d'une option donnée et de son comportement, voir " +"les pages de manuel Tk de l'objet graphique en question." #: ../Doc/library/tkinter.rst:411 msgid "" @@ -653,6 +839,12 @@ msgid "" "particular widget. The Standard Options are documented on the :manpage:" "`options(3)` man page." msgstr "" +"Notez que les pages de manuel listent « OPTIONS STANDARD » et « OPTIONS " +"SPÉCIFIQUES D'OBJETS GRAPHIQUES » pour chaque objet graphique. La première " +"est une liste d'options communes à de nombreux objets graphiques, la seconde " +"est une liste d'options propres à cet objet graphique particulier. Les " +"options standard sont documentées sur la page de manuel :manpage:" +"`options(3)`." #: ../Doc/library/tkinter.rst:417 msgid "" @@ -661,6 +853,12 @@ msgid "" "given widget responds to a particular option depends on the class of the " "widget; buttons have a ``command`` option, labels do not." msgstr "" +"Aucune distinction n'est faite dans ce document entre les options standard " +"et les options spécifiques à un objet graphique. Certaines options ne " +"s'appliquent pas à certains types d'objets graphiques. La réaction d'un " +"objet graphique donné à une option particulière dépend de la classe de " +"l'objet graphique ; les boutons possèdent une option ``command``, pas les " +"étiquettes." #: ../Doc/library/tkinter.rst:422 msgid "" @@ -670,6 +868,12 @@ msgid "" "The return value of these calls is a dictionary whose key is the name of the " "option as a string (for example, ``'relief'``) and whose values are 5-tuples." msgstr "" +"Les options gérées par un objet graphique donné sont listées dans la page de " +"manuel de cet objet graphique, ou peuvent être interrogées à l'exécution en " +"appelant la méthode :meth:`config` sans argument, ou en appelant la méthode :" +"meth:`keys` sur cet objet graphique. La valeur de retour de ces appels est " +"un dictionnaire dont la clé est le nom de l'option sous forme de chaîne (par " +"exemple, ``'relief'``) et dont les valeurs sont des *5-uplets*." #: ../Doc/library/tkinter.rst:428 msgid "" @@ -679,6 +883,11 @@ msgid "" "tuple passed back will contain the name of the synonym and the \"real\" " "option (such as ``('bg', 'background')``)." msgstr "" +"Certaines options, comme ``bg``, sont des synonymes d'options communes qui " +"ont des noms longs (``bg`` est une abréviation pour ``background`` « arrière-" +"plan »). Passer le nom abrégé d'une option à la méthode ``config()`` renvoie " +"un couple, pas un quintuplet. Le couple renvoyé contient le nom abrégé et le " +"nom *réel* de l'option, par exemple ``('bg','background')``." #: ../Doc/library/tkinter.rst:435 msgid "Index" @@ -710,7 +919,7 @@ msgstr "1" #: ../Doc/library/tkinter.rst:439 msgid "option name for database lookup" -msgstr "" +msgstr "nom de l'option pour la recherche dans la base de données" #: ../Doc/library/tkinter.rst:441 msgid "2" @@ -718,7 +927,7 @@ msgstr "2" #: ../Doc/library/tkinter.rst:441 msgid "option class for database lookup" -msgstr "" +msgstr "classe de l'option pour la recherche dans la base de données" #: ../Doc/library/tkinter.rst:441 msgid "``'Relief'``" @@ -742,7 +951,7 @@ msgstr "4" #: ../Doc/library/tkinter.rst:446 msgid "current value" -msgstr "" +msgstr "valeur actuelle" #: ../Doc/library/tkinter.rst:446 msgid "``'groove'``" @@ -757,10 +966,12 @@ msgid "" "Of course, the dictionary printed will include all the options available and " "their values. This is meant only as an example." msgstr "" +"Bien sûr, le dictionnaire affiché contient toutes les options disponibles et " +"leurs valeurs. Ceci n'est donné qu'à titre d'exemple." #: ../Doc/library/tkinter.rst:459 msgid "The Packer" -msgstr "" +msgstr "L'empaqueteur" #: ../Doc/library/tkinter.rst:463 msgid "" @@ -772,6 +983,14 @@ msgid "" "*to the left of*, *filling*, etc - and works everything out to determine the " "exact placement coordinates for you." msgstr "" +"L'empaqueteur est l'un des mécanismes de Tk pour la gestion de la " +"disposition des éléments sur l'écran. Les gestionnaires de géométrie sont " +"utilisés pour spécifier le positionnement relatif du positionnement des " +"objets graphiques dans leur conteneur — leur *constructeur* mutuel. " +"Contrairement au plus encombrant *placeur* (qui est utilisé moins souvent, " +"et nous n'en parlons pas ici), l'empaqueteur prend les spécifications " +"qualitatives de relation — *above*, *to the left of*, *filling*, etc — et " +"calcule tout pour déterminer les coordonnées exactes du placement pour vous." #: ../Doc/library/tkinter.rst:471 msgid "" @@ -782,6 +1001,14 @@ msgid "" "you desire. Additionally, the arrangement is dynamically adjusted to " "accommodate incremental changes to the configuration, once it is packed." msgstr "" +"La taille d'un objet graphique *constructeur* est déterminée par la taille " +"des « objets graphiques hérités » à l'intérieur. L'empaqueteur est utilisé " +"pour contrôler l'endroit où les objets graphiques hérités apparaissent à " +"l'intérieur du constructeur dans lequel ils sont empaquetés. Vous pouvez " +"regrouper des objets graphiques dans des cadres, et des cadres dans d'autres " +"cadres, afin d'obtenir le type de mise en page souhaité. De plus, " +"l'arrangement est ajusté dynamiquement pour s'adapter aux changements " +"incrémentiels de la configuration, une fois qu'elle est empaquetées." #: ../Doc/library/tkinter.rst:478 msgid "" @@ -791,6 +1018,12 @@ msgid "" "nothing appears. A widget will appear only after it has had, for example, " "the packer's :meth:`pack` method applied to it." msgstr "" +"Notez que les objets graphiques n'apparaissent pas tant que leur disposition " +"n'a pas été spécifiée avec un gestionnaire de géométrie. C'est une erreur " +"de débutant courante de ne pas tenir compte de la spécification de la " +"géométrie, puis d'être surpris lorsque l'objet graphique est créé mais que " +"rien n'apparaît. Un objet graphique n'apparaît qu'après que, par exemple, " +"la méthode :meth:`pack` de l'empaqueteur lui ait été appliquée." #: ../Doc/library/tkinter.rst:484 msgid "" @@ -798,71 +1031,83 @@ msgid "" "where the widget is to appear within its container, and how it is to behave " "when the main application window is resized. Here are some examples::" msgstr "" +"La méthode `pack()` peut être appelée avec des paires mot-clé-option/valeur " +"qui contrôlent où l'objet graphique doit apparaître dans son conteneur et " +"comment il doit se comporter lorsque la fenêtre principale de l'application " +"est redimensionnée. En voici quelques exemples: ::" #: ../Doc/library/tkinter.rst:494 msgid "Packer Options" -msgstr "" +msgstr "Options de l'empaqueteur" #: ../Doc/library/tkinter.rst:496 msgid "" "For more extensive information on the packer and the options that it can " "take, see the man pages and page 183 of John Ousterhout's book." msgstr "" +"Pour de plus amples informations sur l'empaqueteur et les options qu'il peut " +"prendre, voir les pages de manuel et la page 183 du livre de John Ousterhout." #: ../Doc/library/tkinter.rst:500 ../Doc/library/tkinter.rst:616 msgid "anchor" -msgstr "" +msgstr "*anchor*" #: ../Doc/library/tkinter.rst:500 msgid "" "Anchor type. Denotes where the packer is to place each slave in its parcel." msgstr "" +"Type d'ancrage. Indique l'endroit où l'empaqueteur doit placer chaque " +"enfant dans son espace." #: ../Doc/library/tkinter.rst:503 msgid "expand" -msgstr "" +msgstr "*expand*" #: ../Doc/library/tkinter.rst:503 msgid "Boolean, ``0`` or ``1``." -msgstr "" +msgstr "Booléen, ``0`` ou ``1``." #: ../Doc/library/tkinter.rst:506 msgid "fill" -msgstr "" +msgstr "*fill*" #: ../Doc/library/tkinter.rst:506 msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." -msgstr "" +msgstr "Valeurs acceptées : ``'x'``, ``'y'``, ``'both'``, ``'none'``." #: ../Doc/library/tkinter.rst:509 msgid "ipadx and ipady" -msgstr "" +msgstr "*ipadx* et *ipady*" #: ../Doc/library/tkinter.rst:509 msgid "" "A distance - designating internal padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart interne de chaque côté de l'objet graphique " +"hérité." #: ../Doc/library/tkinter.rst:512 msgid "padx and pady" -msgstr "" +msgstr "*padx* et *pady*" #: ../Doc/library/tkinter.rst:512 msgid "" "A distance - designating external padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart externe de chaque côté de l'objet graphique " +"hérité." #: ../Doc/library/tkinter.rst:516 msgid "side" -msgstr "" +msgstr "*side*" #: ../Doc/library/tkinter.rst:515 msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." -msgstr "" +msgstr "Valeurs acceptées : ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." #: ../Doc/library/tkinter.rst:519 msgid "Coupling Widget Variables" -msgstr "" +msgstr "Association des variables de l'objet graphique" #: ../Doc/library/tkinter.rst:521 msgid "" @@ -873,6 +1118,13 @@ msgid "" "reason, the widget it's connected to will be updated to reflect the new " "value." msgstr "" +"L'assignation d'une valeur à certains objets graphiques (comme les objets " +"graphique de saisie de texte) peut être liée directement aux variables de " +"votre application à l'aide d'options spéciales. Ces options sont " +"``variable``, ``textvariable``, ``onvalue``, ``offvalue`` et ``value``. Ce " +"lien fonctionne dans les deux sens : si la variable change pour une raison " +"ou pour une autre, l'objet graphique auquel elle est connectée est mis à " +"jour pour refléter la nouvelle valeur." #: ../Doc/library/tkinter.rst:527 msgid "" @@ -882,6 +1134,12 @@ msgid "" "which this works are variables that are subclassed from a class called " "Variable, defined in :mod:`tkinter`." msgstr "" +"Malheureusement, dans l'implémentation actuelle de :mod:`tkinter` il n'est " +"pas possible de passer une variable Python arbitraire à un objet graphique " +"via une option ``variable`` ou ``textvariable``. Les seuls types de " +"variables pour lesquels cela fonctionne sont les variables qui sont sous-" +"classées à partir d'une classe appelée `Variable`, définie dans :mod:" +"`tkinter`." #: ../Doc/library/tkinter.rst:533 msgid "" @@ -892,10 +1150,16 @@ msgid "" "this protocol, the widget will always track the value of the variable, with " "no further intervention on your part." msgstr "" +"Il existe de nombreuses sous-classes utiles de `Variable` déjà définies : :" +"class:`StringVar`, :class:`IntVar`, :class:`DoubleVar` et :class:" +"`BooleanVar`. Pour lire la valeur courante d'une telle variable, appelez la " +"méthode :meth:`get` dessus et, pour changer sa valeur, appelez la méthode :" +"meth:`!set`. Si vous suivez ce protocole, l'objet graphique suivra toujours " +"la valeur de la variable, sans autre intervention de votre part." #: ../Doc/library/tkinter.rst:569 msgid "The Window Manager" -msgstr "" +msgstr "Le gestionnaire de fenêtres" #: ../Doc/library/tkinter.rst:573 msgid "" @@ -906,6 +1170,13 @@ msgid "" "Toplevel widgets are subclassed from the :class:`Wm` class, and so can call " "the :class:`Wm` methods directly." msgstr "" +"Dans Tk, il y a une commande pratique, ``wm``, pour interagir avec le " +"gestionnaire de fenêtres. Les options de la commande ``wm`` vous permettent " +"de contrôler les titres, le placement, les icônes en mode *bitmap* et encore " +"d'autres choses du même genre. Dans :mod:`tkinter`, ces commandes ont été " +"implémentées en tant que méthodes sur la classe :class:`Wm`. Les objets " +"graphiques de haut niveau sont sous-classés à partir de la classe :class:" +"`Wm`, ils peuvent donc appeler directement les méthodes de :class:`Wm`." #: ../Doc/library/tkinter.rst:580 msgid "" @@ -917,14 +1188,23 @@ msgid "" "fact that this function is part of the implementation, and not an interface " "to Tk functionality." msgstr "" +"Pour accéder à la fenêtre du plus haut niveau qui contient un objet " +"graphique donné, vous pouvez souvent simplement vous référer au parent de " +"cet objet graphique. Bien sûr, si l'objet graphique a été empaqueté à " +"l'intérieur d'un cadre, le parent ne représentera pas la fenêtre de plus " +"haut niveau. Pour accéder à la fenêtre du plus haut niveau qui contient un " +"objet graphique arbitraire, vous pouvez appeler la méthode :meth:`_root`. " +"Cette méthode commence par un soulignement pour indiquer que cette fonction " +"fait partie de l'implémentation, et non d'une interface avec la " +"fonctionnalité Tk." #: ../Doc/library/tkinter.rst:587 msgid "Here are some examples of typical usage::" -msgstr "" +msgstr "Voici quelques exemples d'utilisation courante ::" #: ../Doc/library/tkinter.rst:610 msgid "Tk Option Data Types" -msgstr "" +msgstr "Types de données des options Tk" #: ../Doc/library/tkinter.rst:615 msgid "" @@ -932,10 +1212,13 @@ msgid "" "\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center" "\"``." msgstr "" +"Les valeurs acceptées sont des points cardinaux : ``« n »``, ``« ne »``, ``« " +"e »``, ``« se »``, ``« s »``, ``« sw »``, ``« w »``, ``« nw »`` et ``« " +"center »``." #: ../Doc/library/tkinter.rst:622 msgid "bitmap" -msgstr "" +msgstr "*bitmap*" #: ../Doc/library/tkinter.rst:619 msgid "" @@ -944,26 +1227,34 @@ msgid "" "``'warning'``. To specify an X bitmap filename, give the full path to the " "file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "" +"Il y a huit bitmaps intégrés nommés : ``« error »``, ``« gray25 »``, ``« " +"gray50 »``, ``« hourglass »``, ``« info »``, ``« questhead »``, ``« question " +"»``, ``« warning »'``. Pour spécifier un nom de fichier bitmap X, indiquez " +"le chemin complet du fichier, précédé de ``@``, comme dans ``\"@/usr/contrib/" +"bitmap/gumby.bit\"``." #: ../Doc/library/tkinter.rst:625 msgid "boolean" -msgstr "" +msgstr "*boolean*" #: ../Doc/library/tkinter.rst:625 msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." msgstr "" +"Vous pouvez lui donner les entiers 0 ou 1 ou les chaînes de caractères ``" +"\"yes\"`` ou ``\"no\"``." #: ../Doc/library/tkinter.rst:632 msgid "callback" -msgstr "" +msgstr "*callback*" #: ../Doc/library/tkinter.rst:628 msgid "This is any Python function that takes no arguments. For example::" msgstr "" +"N'importe quelle fonction Python qui ne prend pas d'argument. Par exemple ::" #: ../Doc/library/tkinter.rst:638 msgid "color" -msgstr "" +msgstr "*color*" #: ../Doc/library/tkinter.rst:635 msgid "" @@ -973,10 +1264,16 @@ msgid "" "where R,G,B here represent any legal hex digit. See page 160 of " "Ousterhout's book for details." msgstr "" +"Les couleurs peuvent être données sous forme de noms de couleurs Xorg dans " +"le fichier *rgb.txt*, ou sous forme de chaînes représentant les valeurs RVB " +"en 4 bits : ``« #RGB »``, 8 bits : ``« #RRVVBB »``, 12 bits``« #RRRVVVBBB " +"»``, ou 16 bits ``« #RRRRVVVVBBBB »``, où R,V,B représente ici tout chiffre " +"hexadécimal valide. Voir page 160 du livre d'Ousterhout pour plus de " +"détails." #: ../Doc/library/tkinter.rst:644 msgid "cursor" -msgstr "" +msgstr "*cursor*" #: ../Doc/library/tkinter.rst:641 msgid "" @@ -985,10 +1282,15 @@ msgid "" "use the string ``\"hand2\"``. You can also specify a bitmap and mask file " "of your own. See page 179 of Ousterhout's book." msgstr "" +"Les noms de curseurs Xorg standard que l'on trouve dans :file:`cursorfont.h` " +"peuvent être utilisés, sans le préfixe ``XC_``. Par exemple pour obtenir un " +"curseur en forme de main (:const:`XC_hand2`), utilisez la chaîne ``« hand2 " +"»``. Vous pouvez également spécifier votre propre bitmap et fichier masque. " +"Voir page 179 du livre d'Ousterhout." #: ../Doc/library/tkinter.rst:651 msgid "distance" -msgstr "" +msgstr "*distance*" #: ../Doc/library/tkinter.rst:647 msgid "" @@ -998,10 +1300,16 @@ msgid "" "``m`` for millimetres, ``p`` for printer's points. For example, 3.5 inches " "is expressed as ``\"3.5i\"``." msgstr "" +"Les distances à l'écran peuvent être spécifiées en pixels ou en distances " +"absolues. Les pixels sont donnés sous forme de nombres et les distances " +"absolues sous forme de chaînes de caractères, le dernier caractère indiquant " +"les unités : ``c`` pour les centimètres, ``i`` pour les pouces (*inches* en " +"anglais), ``m`` pour les millimètres, ``p`` pour les points d'impression. " +"Par exemple, 3,5 pouces est noté ``« 3.5i »``." #: ../Doc/library/tkinter.rst:656 msgid "font" -msgstr "" +msgstr "*font*" #: ../Doc/library/tkinter.rst:654 msgid "" @@ -1009,10 +1317,14 @@ msgid "" "with positive numbers are measured in points; sizes with negative numbers " "are measured in pixels." msgstr "" +"*Tk* utilise un format de nom de police sous forme de liste, tel que " +"``{courier 10 bold}``. Les tailles de polices avec des nombres positifs sont " +"mesurées en points ; les tailles avec des nombres négatifs sont mesurées en " +"pixels." #: ../Doc/library/tkinter.rst:661 msgid "geometry" -msgstr "" +msgstr "*geometry*" #: ../Doc/library/tkinter.rst:659 msgid "" @@ -1020,20 +1332,26 @@ msgid "" "measured in pixels for most widgets (in characters for widgets displaying " "text). For example: ``fred[\"geometry\"] = \"200x100\"``." msgstr "" +"Il s'agit d'une chaîne de caractères de la forme ``largeurxhauteur``, où la " +"largeur et la hauteur sont mesurées en pixels pour la plupart des objets " +"graphiques (en caractères pour les objets graphiques affichant du texte). " +"Par exemple : ``fred[\"geometry\"] = \"200x100\"``." #: ../Doc/library/tkinter.rst:665 msgid "justify" -msgstr "" +msgstr "*justify*" #: ../Doc/library/tkinter.rst:664 msgid "" "Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " "and ``\"fill\"``." msgstr "" +"Les valeurs acceptées sont les chaînes de caractères : `« left »``, ``« " +"center »``, ``« right »`` et ``« fill »``." #: ../Doc/library/tkinter.rst:670 msgid "region" -msgstr "" +msgstr "*region*" #: ../Doc/library/tkinter.rst:668 msgid "" @@ -1041,10 +1359,14 @@ msgid "" "legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i " "2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgstr "" +"c'est une chaîne de caractères avec quatre éléments séparés par des espaces, " +"chacun d'eux étant une distance valide (voir ci-dessus). Par exemple : ``" +"\"2 3 4 5\"``et ``\" 3i 2i 4.5i 2i\"``et ``\"3c 2c 4c 10.43c\"`` sont toutes " +"des régions valides." #: ../Doc/library/tkinter.rst:674 msgid "relief" -msgstr "" +msgstr "*relief*" #: ../Doc/library/tkinter.rst:673 msgid "" @@ -1052,28 +1374,34 @@ msgid "" "\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and ``\"ridge" "\"``." msgstr "" +"Détermine le style de bordure d'un objet graphique. Les valeurs valides " +"sont : ``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, et ``" +"\"ridge\"``." #: ../Doc/library/tkinter.rst:678 msgid "scrollcommand" -msgstr "" +msgstr "*scrollcommand*" #: ../Doc/library/tkinter.rst:677 msgid "" "This is almost always the :meth:`!set` method of some scrollbar widget, but " "can be any widget method that takes a single argument." msgstr "" +"C'est presque toujours la méthode :meth:`!set` d'un objet graphique de " +"défilement, mais peut être n'importe quelle méthode d'objet graphique qui " +"prend un seul argument." #: ../Doc/library/tkinter.rst:682 msgid "wrap:" -msgstr "" +msgstr "*wrap*" #: ../Doc/library/tkinter.rst:681 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." -msgstr "" +msgstr "Doit être l'un d'eux : ``\"none\"``, ``\"char\"``, ou ``\"word\"``." #: ../Doc/library/tkinter.rst:685 msgid "Bindings and Events" -msgstr "" +msgstr "Liaisons et événements" #: ../Doc/library/tkinter.rst:691 msgid "" @@ -1081,10 +1409,14 @@ msgid "" "events and to have a callback function trigger when that event type occurs. " "The form of the bind method is::" msgstr "" +"La méthode `bind` de la commande d'objet graphique vous permet de surveiller " +"certains événements et d'avoir un déclencheur de fonction de rappel lorsque " +"ce type d'événement se produit. La forme de la méthode de liaison est la " +"suivante ::" #: ../Doc/library/tkinter.rst:697 msgid "where:" -msgstr "" +msgstr "où :" #: ../Doc/library/tkinter.rst:701 msgid "sequence" @@ -1095,6 +1427,9 @@ msgid "" "is a string that denotes the target kind of event. (See the bind man page " "and page 201 of John Ousterhout's book for details)." msgstr "" +"est une chaîne de caractères qui indique le type d'événement cible. (Voir " +"la page du manuel de *bind* et la page 201 du livre de John Ousterhout pour " +"plus de détails)." #: ../Doc/library/tkinter.rst:706 msgid "func" @@ -1106,10 +1441,14 @@ msgid "" "occurs. An Event instance will be passed as the argument. (Functions " "deployed this way are commonly known as *callbacks*.)" msgstr "" +"est une fonction Python, prenant un argument, à invoquer lorsque l'événement " +"se produit. Une instance d’évènement sera passée en argument. (Les fonctions " +"déployées de cette façon sont communément appelées *callbacks* ou « " +"fonctions de rappel » en français)." #: ../Doc/library/tkinter.rst:712 msgid "add" -msgstr "" +msgstr "*add*" #: ../Doc/library/tkinter.rst:709 msgid "" @@ -1118,6 +1457,10 @@ msgid "" "with. Passing a ``'+'`` means that this function is to be added to the list " "of functions bound to this event type." msgstr "" +"est facultative, soit ``''`` ou ``'+'``. L'envoi d'une chaîne de caractères " +"vide indique que cette liaison doit remplacer toute autre liaison à laquelle " +"cet événement est associé. L'envoi de``«+»`` signifie que cette fonction " +"doit être ajoutée à la liste des fonctions liées à ce type d'événement." #: ../Doc/library/tkinter.rst:721 msgid "" @@ -1127,6 +1470,12 @@ msgid "" "how they are denoted in Tk, which can be useful when referring to the Tk man " "pages." msgstr "" +"Remarquez comment on accède au champ *objet graphique* de l'événement dans " +"la fonction de rappel ``turn_red()``. Ce champ contient l'objet graphique " +"qui a capturé l'événement Xorg. Le tableau suivant répertorie les autres " +"champs d'événements auxquels vous pouvez accéder, et comment ils sont nommés " +"dans Tk, ce qui peut être utile lorsque vous vous référez aux pages de " +"manuel Tk." #: ../Doc/library/tkinter.rst:727 msgid "Tk" @@ -1134,7 +1483,7 @@ msgstr "Tk" #: ../Doc/library/tkinter.rst:727 msgid "Tkinter Event Field" -msgstr "" +msgstr "Champ *évènement* de Tkinter" #: ../Doc/library/tkinter.rst:729 msgid "%f" @@ -1266,7 +1615,7 @@ msgstr "y_root" #: ../Doc/library/tkinter.rst:748 msgid "The index Parameter" -msgstr "" +msgstr "Le paramètre index" #: ../Doc/library/tkinter.rst:750 msgid "" @@ -1274,10 +1623,16 @@ msgid "" "used to point at a specific place in a Text widget, or to particular " "characters in an Entry widget, or to particular menu items in a Menu widget." msgstr "" +"Un certain nombre d'objets graphiques nécessitent le passage de paramètres « " +"indicés ». Ils sont utilisés pour pointer vers un endroit spécifique dans " +"un objet graphique de type *Texte*, ou vers des caractères particuliers dans " +"un objet graphique de type *Entrée*, ou vers des éléments de menu " +"particuliers dans un objet graphique de type *Menu*." #: ../Doc/library/tkinter.rst:757 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" +"Index des objets graphique de type *Entrée* (``index``, ``view index``, etc.)" #: ../Doc/library/tkinter.rst:755 msgid "" @@ -1285,54 +1640,74 @@ msgid "" "being displayed. You can use these :mod:`tkinter` functions to access these " "special points in text widgets:" msgstr "" +"Les objets graphiques de type *Entrée* ont des options qui se réfèrent à la " +"position des caractères dans le texte affiché. Vous pouvez utiliser ces " +"fonctions :mod:`tkinter` pour accéder à ces points spéciaux dans les objets " +"graphiques texte :" #: ../Doc/library/tkinter.rst:761 msgid "Text widget indexes" -msgstr "" +msgstr "Index des objets graphiques texte" #: ../Doc/library/tkinter.rst:760 msgid "" "The index notation for Text widgets is very rich and is best described in " "the Tk man pages." msgstr "" +"La notation de l'index des objets graphiques de type *Texte* est très riche " +"et mieux décrite dans les pages du manuel Tk." #: ../Doc/library/tkinter.rst:786 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" -msgstr "" +msgstr "Index menu (`menu.invoke()`, `menu.entryconfig()`, etc.)" #: ../Doc/library/tkinter.rst:764 msgid "" "Some options and methods for menus manipulate specific menu entries. Anytime " "a menu index is needed for an option or a parameter, you may pass in:" msgstr "" +"Certaines options et méthodes pour manipuler les menus nécessitent des " +"éléments de spécifiques. Chaque fois qu'un index de menu est nécessaire pour " +"une option ou un paramètre, vous pouvez utiliser :" #: ../Doc/library/tkinter.rst:767 msgid "" "an integer which refers to the numeric position of the entry in the widget, " "counted from the top, starting with 0;" msgstr "" +"un entier qui fait référence à la position numérique de l'entrée dans " +"l'objet graphique, comptée à partir du haut, en commençant par 0 ;" #: ../Doc/library/tkinter.rst:770 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" +"la chaîne de caractères ``\"active\"``, qui fait référence à la position du " +"menu qui se trouve actuellement sous le curseur ;" #: ../Doc/library/tkinter.rst:773 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" +"la chaîne de caractères ``\"last\"`` qui fait référence au dernier élément " +"du menu ;" #: ../Doc/library/tkinter.rst:775 msgid "" "An integer preceded by ``@``, as in ``@6``, where the integer is interpreted " "as a y pixel coordinate in the menu's coordinate system;" msgstr "" +"un entier précédé de ``@``, comme dans ``@6``, où l'entier est interprété " +"comme une coordonnée y de pixels dans le système de coordonnées du menu ;" #: ../Doc/library/tkinter.rst:778 msgid "" "the string ``\"none\"``, which indicates no menu entry at all, most often " "used with menu.activate() to deactivate all entries, and finally," msgstr "" +"la chaîne de caractères ``\"none\"``, qui n'indique aucune entrée du menu, " +"le plus souvent utilisée avec ``menu.activate()`` pour désactiver toutes les " +"entrées, et enfin," #: ../Doc/library/tkinter.rst:781 msgid "" @@ -1342,32 +1717,43 @@ msgid "" "items labelled ``last``, ``active``, or ``none`` may be interpreted as the " "above literals, instead." msgstr "" +"une chaîne de texte dont le motif correspond à l'étiquette de l'entrée de " +"menu, telle qu'elle est balayée du haut vers le bas du menu. Notez que ce " +"type d'index est considéré après tous les autres, ce qui signifie que les " +"correspondances pour les éléments de menu étiquetés ``last``, ``active`` ou " +"``none`` peuvent être interprétés comme les littéraux ci-dessus, plutôt." #: ../Doc/library/tkinter.rst:789 msgid "Images" -msgstr "" +msgstr "Images" #: ../Doc/library/tkinter.rst:791 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" +"Des images de différents formats peuvent être créées à travers la sous-" +"classe correspondante de :class:`tkinter.Image` :" #: ../Doc/library/tkinter.rst:794 msgid ":class:`BitmapImage` for images in XBM format." -msgstr "" +msgstr ":class:`BitmapImage` pour les images au format *XBM*." #: ../Doc/library/tkinter.rst:796 msgid "" ":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " "is supported starting with Tk 8.6." msgstr "" +":class:`PhotoImage` pour les images aux formats *PGM*, *PPM*, *GIF* et " +"*PNG*. Ce dernier est géré à partir de Tk 8.6." #: ../Doc/library/tkinter.rst:799 msgid "" "Either type of image is created through either the ``file`` or the ``data`` " "option (other options are available as well)." msgstr "" +"L'un ou l'autre type d'image est créé par l'option ``file`` ou ``data`` " +"(d'autres options sont également disponibles)." #: ../Doc/library/tkinter.rst:802 msgid "" @@ -1377,16 +1763,24 @@ msgid "" "object is deleted, the image data is deleted as well, and Tk will display an " "empty box wherever the image was used." msgstr "" +"L'objet image peut alors être utilisé partout où un objet graphique sait " +"gérer une option ``image`` (par ex. étiquettes, boutons, menus). Dans ces " +"cas, Tk ne conserve pas de référence à l'image. Lorsque la dernière " +"référence Python à l'objet image est supprimée, les données de l'image sont " +"également supprimées, et Tk affiche une boite vide à l'endroit où l'image " +"était utilisée." #: ../Doc/library/tkinter.rst:810 msgid "" "The `Pillow `_ package adds support for formats " "such as BMP, JPEG, TIFF, and WebP, among others." msgstr "" +"Le paquet `Pillow `_ ajoute la prise en charge de " +"formats tels que *BMP*, *JPEG*, *TIFF* et *WebP*, entre autres." #: ../Doc/library/tkinter.rst:816 msgid "File Handlers" -msgstr "" +msgstr "Gestionnaires de fichiers" #: ../Doc/library/tkinter.rst:818 msgid "" @@ -1394,10 +1788,14 @@ msgid "" "called from the Tk mainloop when I/O is possible on a file descriptor. Only " "one handler may be registered per file descriptor. Example code::" msgstr "" +"*Tk* vous permet d'enregistrer et de *désenregistrer* une fonction de rappel " +"qui est appelée depuis la boucle principale de Tk lorsque des entrées-" +"sorties sont possibles sur un descripteur de fichier. Un seul gestionnaire " +"peut être enregistré par descripteur de fichier. Exemple de code: ::" #: ../Doc/library/tkinter.rst:829 msgid "This feature is not available on Windows." -msgstr "" +msgstr "Cette fonction n'est pas disponible sous Windows." #: ../Doc/library/tkinter.rst:831 msgid "" @@ -1409,6 +1807,14 @@ msgid "" "work fine; for other files, use raw reads or ``os.read(file.fileno(), " "maxbytecount)``." msgstr "" +"Dans la mesure où vous ne savez pas combien d'octets sont disponibles en " +"lecture, il ne faut pas utiliser les méthodes :class:`~io.BufferedIOBase` " +"ou :class:`~io.TextIOBase` :meth:`~io.BufferedIOBase.read` ou :meth:`~io." +"IOBase.readline`, car elles requièrent d'indiquer le nombre de *bytes* à " +"lire. Pour les connecteurs, les méthodes :meth:`~socket.socket.socket.recv` " +"ou :meth:`~socket.socket.recvfrom` fonctionnent bien ; pour les autres " +"fichiers, utilisez des lectures brutes ou ``os.read(file.fileno(), " +"maxbytecount)``." #: ../Doc/library/tkinter.rst:842 msgid "" @@ -1418,11 +1824,17 @@ msgid "" "ORed combination of any of the three constants below. The callback is called " "as follows::" msgstr "" +"Enregistre la fonction de rappel du gestionnaire de fichiers *func*. " +"L'argument ``file`` peut être soit un objet avec une méthode :meth:`~io." +"IOBase.fileno` (comme un objet fichier ou connecteur), soit un descripteur " +"de fichier de type entier. L'argument ``mask`` est une combinaison *OU* de " +"l'une des trois constantes ci-dessous. La fonction de rappel s'utilise comme " +"suit: ::" #: ../Doc/library/tkinter.rst:853 msgid "Unregisters a file handler." -msgstr "" +msgstr "Désenregistre un gestionnaire de fichiers." #: ../Doc/library/tkinter.rst:860 msgid "Constants used in the *mask* arguments." -msgstr "" +msgstr "Constantes utilisées dans les arguments ``mask``." diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 7d8f56353..47d68331e 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -180,7 +180,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:121 msgid "cursor" -msgstr "" +msgstr "*cursor*" #: ../Doc/library/tkinter.ttk.rst:121 msgid "" @@ -540,7 +540,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:325 msgid "justify" -msgstr "" +msgstr "*justify*" #: ../Doc/library/tkinter.ttk.rst:325 msgid "" @@ -1247,7 +1247,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:814 msgid "font" -msgstr "" +msgstr "*font*" #: ../Doc/library/tkinter.ttk.rst:814 msgid "Specifies the font to use when drawing text." @@ -1551,7 +1551,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1002 msgid "region" -msgstr "" +msgstr "*region*" #: ../Doc/library/tkinter.ttk.rst:1002 msgid "meaning" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 589d684ca..d88c6a350 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -23,35 +23,40 @@ msgstr "" #: ../Doc/library/unittest.mock-examples.rst:13 msgid "Using Mock" -msgstr "" +msgstr "Utilisation de Mock ou l'art de singer" #: ../Doc/library/unittest.mock-examples.rst:16 msgid "Mock Patching Methods" -msgstr "" +msgstr "Simulation des méthodes" #: ../Doc/library/unittest.mock-examples.rst:18 msgid "Common uses for :class:`Mock` objects include:" -msgstr "" +msgstr "Usages courant de :class:`Mock` :" #: ../Doc/library/unittest.mock-examples.rst:20 msgid "Patching methods" -msgstr "" +msgstr "Substitution des méthodes" #: ../Doc/library/unittest.mock-examples.rst:21 msgid "Recording method calls on objects" -msgstr "" +msgstr "Enregistrement des appels faits sur les objets" #: ../Doc/library/unittest.mock-examples.rst:23 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" +"On peut remplacer une méthode sur un objet pour contrôler qu'elle est bien " +"appelée avec le nombre correct d'arguments :" #: ../Doc/library/unittest.mock-examples.rst:31 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" +"Une fois notre objet simulacre appelé (via ``real.method`` dans notre " +"exemple), il fournit des méthodes et attributs permettant de valider comment " +"il a été appelé." #: ../Doc/library/unittest.mock-examples.rst:36 msgid "" @@ -59,6 +64,10 @@ msgid "" "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" +"Dans la majeure partie des exemples donnés ici, les classes :class:`Mock` " +"et :class:`MagicMock` sont interchangeables. Étant donné que ``MagicMock`` " +"est la classe la plus puissante des deux, cela fait sens de l'utiliser par " +"défaut." #: ../Doc/library/unittest.mock-examples.rst:40 msgid "" @@ -67,16 +76,22 @@ msgid "" "or :meth:`~Mock.assert_called_once_with` method to check that it was called " "with the correct arguments." msgstr "" +"Une fois l'objet Mock appelé, son attribut :attr:`~Mock.called` est défini à " +"``True``. Qui plus est, nous pouvons utiliser les méthodes :meth:`~Mock." +"assert_called_with` ou :meth:`~Mock.assert_called_once_with` pour contrôler " +"qu'il a été appelé avec les bons arguments." #: ../Doc/library/unittest.mock-examples.rst:45 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" +"Cet exemple teste que l'appel de la méthode ``ProductionClass().method`` " +"implique bien celui de la méthode ``something`` :" #: ../Doc/library/unittest.mock-examples.rst:62 msgid "Mock for Method Calls on an Object" -msgstr "" +msgstr "S'assurer de la bonne utilisation d'un objet" #: ../Doc/library/unittest.mock-examples.rst:64 msgid "" @@ -85,18 +100,27 @@ msgid "" "method (or some part of the system under test) and then check that it is " "used in the correct way." msgstr "" +"Dans l'exemple précédent, nous avons directement remplacé une méthode par un " +"objet (afin de valider que l'appel était correct). Une autre façon de faire " +"est de passer un objet Mock en argument d'une méthode (ou de tout autre " +"partie du code à tester) et ensuite de contrôler que notre objet a été " +"utilisé de la façon attendue." #: ../Doc/library/unittest.mock-examples.rst:69 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" +"Ci-dessous, ``ProductionClass`` dispose d'une méthode ``closer``. Si on " +"l'appelle avec un objet, alors elle appelle la méthode ``close`` dessus." #: ../Doc/library/unittest.mock-examples.rst:77 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" +"Ainsi, pour tester cette classe, nous devons lui passer un objet ayant une " +"méthode ``close``, puis vérifier qu'elle a bien été appelée." #: ../Doc/library/unittest.mock-examples.rst:85 msgid "" @@ -105,10 +129,15 @@ msgid "" "accessing it in the test will create it, but :meth:`~Mock." "assert_called_with` will raise a failure exception." msgstr "" +"En fait, nous n'avons pas à nous soucier de fournir la méthode ``close`` " +"dans notre objet « simulé ». Le simple fait d'accéder à la méthode ``close`` " +"l'a crée. Si par contre la méthode ``close`` n'a pas été appelée alors, bien " +"que le test la créée en y accédant, :meth:`~Mock.assert_called_with` lèvera " +"une exception." #: ../Doc/library/unittest.mock-examples.rst:92 msgid "Mocking Classes" -msgstr "" +msgstr "Simulation des classes" #: ../Doc/library/unittest.mock-examples.rst:94 msgid "" @@ -117,6 +146,11 @@ msgid "" "Instances are created by *calling the class*. This means you access the " "\"mock instance\" by looking at the return value of the mocked class." msgstr "" +"Un cas d'utilisation courant consiste à émuler les classes instanciées par " +"le code que nous testons. Quand on *patch* une classe, alors cette classe " +"est remplacée par un objet *mock*. Les instances de la classe étant créées " +"en *appelant la classe*, on accède à « l'instance *mock* » via la valeur de " +"retour de la classe émulée." #: ../Doc/library/unittest.mock-examples.rst:99 msgid "" diff --git a/library/wave.po b/library/wave.po index 0ac4f86d5..1dc6c3599 100644 --- a/library/wave.po +++ b/library/wave.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/wave.rst:2 msgid ":mod:`wave` --- Read and write WAV files" -msgstr "" +msgstr ":mod:`wave` --- Lecture et écriture des fichiers WAV" #: ../Doc/library/wave.rst:10 msgid "**Source code:** :source:`Lib/wave.py`" @@ -31,16 +31,21 @@ msgid "" "format. It does not support compression/decompression, but it does support " "mono/stereo." msgstr "" +"Le module :mod:`wave` fournit une interface pratique pour le format de son " +"WAV. Il ne gère pas la compression ni la décompression, mais gère le mono et " +"le stéréo." #: ../Doc/library/wave.rst:17 msgid "The :mod:`wave` module defines the following function and exception:" -msgstr "" +msgstr "Le module :mod:`wave` définit la fonction et l'exception suivante :" #: ../Doc/library/wave.rst:22 msgid "" "If *file* is a string, open the file by that name, otherwise treat it as a " "file-like object. *mode* can be:" msgstr "" +"Si *file* est une chaîne de caractères, ouvre le fichier sous ce nom, sinon, " +"il est traité comme un objet de type fichier. *mode* peut être :" #: ../Doc/library/wave.rst:26 msgid "``'rb'``" @@ -48,7 +53,7 @@ msgstr "``'rb'``" #: ../Doc/library/wave.rst:26 msgid "Read only mode." -msgstr "" +msgstr "Mode lecture seule." #: ../Doc/library/wave.rst:29 msgid "``'wb'``" @@ -56,11 +61,13 @@ msgstr "``'wb'``" #: ../Doc/library/wave.rst:29 msgid "Write only mode." -msgstr "" +msgstr "Mode écriture seule." #: ../Doc/library/wave.rst:31 msgid "Note that it does not allow read/write WAV files." msgstr "" +"Notez que ce module ne permet pas de manipuler des fichiers WAV en lecture/" +"écriture." #: ../Doc/library/wave.rst:33 msgid "" @@ -69,6 +76,10 @@ msgid "" "file-like object is passed as *file*, ``file.mode`` is used as the default " "value for *mode*." msgstr "" +"Un *mode* ``'rb'`` renvoie un objet :class:`Wave_read`, alors qu'un *mode* " +"``'wb'`` renvoie un objet :class:`Wave_write`. Si *mode* est omis et qu'un " +"objet de type fichier est donné au paramètre *file*, ``file.mode`` est " +"utilisé comme valeur par défaut pour *mode*." #: ../Doc/library/wave.rst:38 msgid "" @@ -76,6 +87,9 @@ msgid "" "its :meth:`close` method is called; it is the caller's responsibility to " "close the file object." msgstr "" +"Si vous donnez un objet de type fichier, l'objet *wave* ne le ferme pas " +"lorsque sa méthode :meth:`close` est appelée car c'est l'appelant qui est " +"responsable de la fermeture." #: ../Doc/library/wave.rst:42 msgid "" @@ -87,58 +101,67 @@ msgstr "" #: ../Doc/library/wave.rst:47 ../Doc/library/wave.rst:168 msgid "Added support for unseekable files." -msgstr "" +msgstr "Ajout de la gestion des fichiers non navigables." #: ../Doc/library/wave.rst:52 msgid "A synonym for :func:`.open`, maintained for backwards compatibility." -msgstr "" +msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité." #: ../Doc/library/wave.rst:57 msgid "" "An error raised when something is impossible because it violates the WAV " "specification or hits an implementation deficiency." msgstr "" +"Une erreur est levée lorsque quelque chose est impossible car elle enfreint " +"la spécification WAV ou rencontre un problème d'implémentation." #: ../Doc/library/wave.rst:64 msgid "Wave_read Objects" -msgstr "" +msgstr "Objets Wave_read" #: ../Doc/library/wave.rst:66 msgid "" "Wave_read objects, as returned by :func:`.open`, have the following methods:" msgstr "" +"Les objets Wave_read, tels qu'ils sont renvoyés par :func:`.open`, ont les " +"méthodes suivantes :" #: ../Doc/library/wave.rst:71 msgid "" "Close the stream if it was opened by :mod:`wave`, and make the instance " "unusable. This is called automatically on object collection." msgstr "" +"Ferme le flux s'il a été ouvert par :mod:`wave` et rend l'instance " +"inutilisable. Ceci est appelé automatiquement lorsque l'objet est détruit ." #: ../Doc/library/wave.rst:77 msgid "Returns number of audio channels (``1`` for mono, ``2`` for stereo)." msgstr "" +"Renvoie le nombre de canaux audio (``1`` pour mono, ``2`` pour stéréo)." #: ../Doc/library/wave.rst:82 msgid "Returns sample width in bytes." -msgstr "" +msgstr "Renvoie la largeur de l'échantillon en octets." #: ../Doc/library/wave.rst:87 msgid "Returns sampling frequency." -msgstr "" +msgstr "Renvoie la fréquence d'échantillonnage." #: ../Doc/library/wave.rst:92 msgid "Returns number of audio frames." -msgstr "" +msgstr "Renvoie le nombre de trames audio." #: ../Doc/library/wave.rst:97 msgid "Returns compression type (``'NONE'`` is the only supported type)." -msgstr "" +msgstr "Renvoie le type de compression (``'NONE'`` est le seul type géré)." #: ../Doc/library/wave.rst:102 msgid "" "Human-readable version of :meth:`getcomptype`. Usually ``'not compressed'`` " "parallels ``'NONE'``." msgstr "" +"Version compréhensible de :meth:`getcomptype`. Généralement, ``'not " +"compressed'`` équivaut à ``'NONE'``." #: ../Doc/library/wave.rst:108 msgid "" @@ -146,47 +169,57 @@ msgid "" "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Renvoie une :func:`~collections.namedtuple` ``(nchannels, sampwidth, " +"framerate, nframes, comptype, compname)``, équivalent à la sortie des " +"méthodes :meth:`get\\*`." #: ../Doc/library/wave.rst:115 msgid "" "Reads and returns at most *n* frames of audio, as a :class:`bytes` object." msgstr "" +"Lit et renvoie au plus *n* trames audio, sous forme d'objet :class:`bytes`." #: ../Doc/library/wave.rst:120 msgid "Rewind the file pointer to the beginning of the audio stream." -msgstr "" +msgstr "Remet le pointeur de fichier au début du flux audio." #: ../Doc/library/wave.rst:122 msgid "" "The following two methods are defined for compatibility with the :mod:`aifc` " "module, and don't do anything interesting." msgstr "" +"Les deux méthodes suivantes sont définies pour la compatibilité avec le " +"module :mod:`aifc` ; elles ne font rien d’intéressant." #: ../Doc/library/wave.rst:128 msgid "Returns ``None``." -msgstr "" +msgstr "Renvoie ``None``." #: ../Doc/library/wave.rst:133 msgid "Raise an error." -msgstr "" +msgstr "Lève une erreur." #: ../Doc/library/wave.rst:135 msgid "" "The following two methods define a term \"position\" which is compatible " "between them, and is otherwise implementation dependent." msgstr "" +"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces " +"positions sont compatible entre elles, la \"position\" de l'un est " +"compatible avec la \"position\" de l'autre. Cette position est dépendante de " +"l'implémentation." #: ../Doc/library/wave.rst:141 msgid "Set the file pointer to the specified position." -msgstr "" +msgstr "Place le pointeur du fichier sur la position spécifiée." #: ../Doc/library/wave.rst:146 msgid "Return current file pointer position." -msgstr "" +msgstr "Renvoie la position actuelle du pointeur du fichier." #: ../Doc/library/wave.rst:152 msgid "Wave_write Objects" -msgstr "" +msgstr "Objets Wave_write" #: ../Doc/library/wave.rst:154 msgid "" @@ -202,11 +235,25 @@ msgid "" "calculate the number of frames in the data and set *nframes* accordingly " "before writing the frame data." msgstr "" +"Pour les flux de sortie navigables, l'en-tête ``wave`` est automatiquement " +"mis à jour pour refléter le nombre de trames réellement écrites. Pour les " +"flux non indexables, la valeur *nframes* doit être précise lorsque la " +"première trame est écrite. Une valeur précise de *nframes* peut être obtenue " +"en appelant les méthodes :meth:`~Wave_write.setnframes` ou :meth:" +"`~Wave_write.setparams` en passant en paramètre le nombre de trames qui " +"seront écrites avant que :meth:`~Wave_write.close` soit appelé puis en " +"utilisant la méthode :meth:`~Wave_write.writeframesraw` pour écrire les " +"trames audio, ou en appelant la méthode :meth:`~Wave_write.writeframes` avec " +"toutes les trames audio. Dans ce dernier cas, la méthode :meth:`~Wave_write." +"writeframes` calcule le nombre de trames dans le flux audio et définit " +"*nframes* en conséquence avant d'écrire les données des trames." #: ../Doc/library/wave.rst:166 msgid "" "Wave_write objects, as returned by :func:`.open`, have the following methods:" msgstr "" +"Les objets Wave_write, tels qu'ils sont renvoyés par :func:`.open`, ont les " +"méthodes suivantes :" #: ../Doc/library/wave.rst:174 msgid "" @@ -215,22 +262,28 @@ msgid "" "exception if the output stream is not seekable and *nframes* does not match " "the number of frames actually written." msgstr "" +"Assurez-vous que *nframes* soit correct et fermez le fichier s'il a été " +"ouvert par :mod:`wave`. Cette méthode est appelée à la destruction de " +"l'objet. Il lève une erreur si le flux de sortie n'est pas navigable et si " +"*nframes* ne correspond pas au nombre de trames réellement écrites." #: ../Doc/library/wave.rst:182 msgid "Set the number of channels." -msgstr "" +msgstr "Définit le nombre de canaux." #: ../Doc/library/wave.rst:187 msgid "Set the sample width to *n* bytes." -msgstr "" +msgstr "Définit la largeur de l'échantillon à *n* octets." #: ../Doc/library/wave.rst:192 msgid "Set the frame rate to *n*." -msgstr "" +msgstr "Définit la fréquence des trames à *n*." #: ../Doc/library/wave.rst:194 msgid "A non-integral input to this method is rounded to the nearest integer." msgstr "" +"Un paramètre non-entier passé à cette méthode est arrondi à l'entier le plus " +"proche." #: ../Doc/library/wave.rst:201 msgid "" @@ -238,12 +291,17 @@ msgid "" "of frames actually written is different (this update attempt will raise an " "error if the output stream is not seekable)." msgstr "" +"Définit le nombre de trames à *n*. Cela sera modifié ultérieurement si le " +"nombre de trames réellement écrites est différent (la tentative de mise à " +"jour générera une erreur si le flux de sortie n'est pas indexable)." #: ../Doc/library/wave.rst:208 msgid "" "Set the compression type and description. At the moment, only compression " "type ``NONE`` is supported, meaning no compression." msgstr "" +"Définit le type de compression et la description. Pour le moment, seul le " +"type de compression ``NONE`` est géré, c'est-à-dire aucune compression." #: ../Doc/library/wave.rst:214 msgid "" @@ -251,16 +309,21 @@ msgid "" "compname)``, with values valid for the :meth:`set\\*` methods. Sets all " "parameters." msgstr "" +"Le *tuple* doit être ``(nchannels, sampwidth, framerate, nframes, comptype, " +"compname)``, avec des valeurs valides pour les méthodes :meth:`set\\*`. Tous " +"les paramètres sont obligatoires et doivent être définis." #: ../Doc/library/wave.rst:221 msgid "" "Return current position in the file, with the same disclaimer for the :meth:" "`Wave_read.tell` and :meth:`Wave_read.setpos` methods." msgstr "" +"Renvoie la position actuelle dans le fichier, avec les mêmes réserves que " +"pour les méthodes :meth:`Wave_read.tell` et :meth:`Wave_read.setpos`." #: ../Doc/library/wave.rst:227 msgid "Write audio frames, without correcting *nframes*." -msgstr "" +msgstr "Écrit les trames audio sans corriger *nframes*." #: ../Doc/library/wave.rst:229 ../Doc/library/wave.rst:240 msgid "Any :term:`bytes-like object` is now accepted." @@ -273,6 +336,10 @@ msgid "" "that have been written after *data* has been written does not match the " "previously set value for *nframes*." msgstr "" +"Écrit des trames audio et s'assure que *nframes* est correct. Une erreur est " +"levée si le flux de sortie est non-navigable et si le nombre total de trames " +"écrites après que *data* soit écrit ne correspond pas à la valeur " +"précédemment définie pour *nframes*." #: ../Doc/library/wave.rst:244 msgid "" @@ -280,3 +347,6 @@ msgid "" "`writeframes` or :meth:`writeframesraw`, and any attempt to do so will " "raise :exc:`wave.Error`." msgstr "" +"Notez qu'il est impossible de définir des paramètres après avoir appelé :" +"meth:`writeframes` ou :meth:`writeframesraw`, et toute tentative en ce sens " +"lève une :exc:`wave.Error`." diff --git a/library/zipapp.po b/library/zipapp.po index 69a59716e..a5201f3c2 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -32,10 +32,15 @@ msgid "" "`. The module provides both a :ref:`zipapp-" "command-line-interface` and a :ref:`zipapp-python-api`." msgstr "" +"Ce module fournit des outils pour gérer la création de fichiers zip " +"contenant du code Python, qui peuvent être :ref:`exécutés directement par " +"l'interpréteur Python `. Le module fournit à la " +"fois une interface de ligne de commande :ref:`zipapp-command-line-interface` " +"et une interface :ref:`zipapp-python-api`." #: ../Doc/library/zipapp.rst:23 msgid "Basic Example" -msgstr "" +msgstr "Exemple de base" #: ../Doc/library/zipapp.rst:25 msgid "" @@ -44,6 +49,11 @@ msgid "" "code. When run, the archive will execute the ``main`` function from the " "module ``myapp`` in the archive." msgstr "" +"L'exemple suivant montre comment l'interface de ligne de commande :ref:" +"`zipapp-command-line-interface` peut être utilisée pour créer une archive " +"exécutable depuis un répertoire contenant du code Python. Lors de " +"l'exécution, l'archive exécutera la fonction ``main`` du module ``myapp`` " +"dans l'archive." #: ../Doc/library/zipapp.rst:40 msgid "Command-Line Interface" @@ -53,6 +63,8 @@ msgstr "Interface en ligne de commande" msgid "" "When called as a program from the command line, the following form is used:" msgstr "" +"Lorsqu'il est appelé en tant que programme à partir de la ligne de commande, " +"la syntaxe suivante est utilisée :" #: ../Doc/library/zipapp.rst:48 msgid "" @@ -61,10 +73,14 @@ msgid "" "copied to the target archive (or the contents of its shebang line will be " "displayed if the --info option is specified)." msgstr "" +"Si *source* est un répertoire, une archive est créée à partir du contenu de " +"*source*. Si *source* est un fichier, ce doit être une archive et il est " +"copié dans l'archive cible (ou le contenu de sa ligne `shebang` est affiché " +"si l'option ``--info`` est indiquée)." #: ../Doc/library/zipapp.rst:53 msgid "The following options are understood:" -msgstr "" +msgstr "Les options suivantes sont disponibles :" #: ../Doc/library/zipapp.rst:59 msgid "" @@ -73,12 +89,20 @@ msgid "" "extension ``.pyz`` added. If an explicit filename is given, it is used as " "is (so a ``.pyz`` extension should be included if required)." msgstr "" +"Écrit la sortie dans un fichier nommé *output*. Si cette option n'est pas " +"spécifiée, le nom du fichier de sortie sera le même que celui de l'entrée " +"*source*, avec l'extension ``.pyz``. Si un nom de fichier explicite est " +"donné, il est utilisé tel quel (une extension ``.pyz`` doit donc être " +"incluse si nécessaire)." #: ../Doc/library/zipapp.rst:64 msgid "" "An output filename must be specified if the *source* is an archive (and in " "that case, *output* must not be the same as *source*)." msgstr "" +"Un nom de fichier de sortie doit être spécifié si la *source* est une " +"archive (et, dans ce cas, la *sortie* ne doit pas être la même que la " +"*source*)." #: ../Doc/library/zipapp.rst:69 msgid "" @@ -86,6 +110,10 @@ msgid "" "run. Also, on POSIX, make the archive executable. The default is to write " "no ``#!`` line, and not make the file executable." msgstr "" +"Ajoute une ligne ``#!`` à l'archive en spécifiant *interpreter* comme " +"commande à exécuter. Aussi, sur un système POSIX, cela rend l'archive " +"exécutable. Le comportement par défaut est de ne pas écrire la ligne ``#!`` " +"et de ne pas rendre le fichier exécutable." #: ../Doc/library/zipapp.rst:75 msgid "" @@ -94,10 +122,15 @@ msgid "" "a package/module in the archive, and \"fn\" is a callable in the given " "module. The ``__main__.py`` file will execute that callable." msgstr "" +"Écrit un fichier ``__main__.py`` dans l'archive qui exécute *mainfn*. " +"L'argument *mainfn* est de la forme « *pkg.mod:fn* », où « *pkg.mod* » est " +"un paquet/module dans l'archive, et « *fn* » est un appelable dans le module " +"donné. Le fichier ``__main__.py`` réalise cet appel." #: ../Doc/library/zipapp.rst:80 msgid ":option:`--main` cannot be specified when copying an archive." msgstr "" +":option:`--main` ne peut pas être spécifié lors de la copie d'une archive." #: ../Doc/library/zipapp.rst:84 msgid "" @@ -105,10 +138,13 @@ msgid "" "In this case, any other options are ignored and SOURCE must be an archive, " "not a directory." msgstr "" +"Affiche l'interpréteur intégré dans l'archive, à des fins de diagnostic. " +"Dans ce cas, toutes les autres options sont ignorées et SOURCE doit être une " +"archive et non un répertoire." #: ../Doc/library/zipapp.rst:90 msgid "Print a short usage message and exit." -msgstr "" +msgstr "Affiche un court message d'aide et quitte." #: ../Doc/library/zipapp.rst:96 msgid "Python API" @@ -116,13 +152,15 @@ msgstr "API Python" #: ../Doc/library/zipapp.rst:98 msgid "The module defines two convenience functions:" -msgstr "" +msgstr "Ce module définit deux fonctions utilitaires :" #: ../Doc/library/zipapp.rst:103 msgid "" "Create an application archive from *source*. The source can be any of the " "following:" msgstr "" +"Crée une archive d'application à partir de *source*. La source peut être de " +"natures suivantes :" #: ../Doc/library/zipapp.rst:106 msgid "" @@ -145,11 +183,14 @@ msgid "" "should be an application archive, and the file object is assumed to be " "positioned at the start of the archive." msgstr "" +"Un objet fichier ouvert pour la lecture en mode binaire. Le contenu du " +"fichier doit être une archive d'application et Python suppose que l'objet " +"fichier est positionné au début de l'archive." #: ../Doc/library/zipapp.rst:117 msgid "" "The *target* argument determines where the resulting archive will be written:" -msgstr "" +msgstr "L'argument *target* détermine où l'archive résultante sera écrite :" #: ../Doc/library/zipapp.rst:120 msgid "" @@ -162,6 +203,8 @@ msgid "" "If it is an open file object, the archive will be written to that file " "object, which must be open for writing in bytes mode." msgstr "" +"S'il s'agit d'un objet fichier ouvert, l'archive sera écrite dans cet objet " +"fichier, qui doit être ouvert pour l'écriture en mode octets." #: ../Doc/library/zipapp.rst:124 msgid "" @@ -169,6 +212,9 @@ msgid "" "the target will be a file with the same name as the source, with a ``.pyz`` " "extension added." msgstr "" +"Si la cible est omise (ou ``None``), la source doit être un répertoire et la " +"cible sera un fichier portant le même nom que la source, avec une extension " +"``.pyz`` ajoutée." #: ../Doc/library/zipapp.rst:128 msgid "" @@ -180,6 +226,13 @@ msgid "" "is specified, and the target is a filename, the executable bit of the target " "file will be set." msgstr "" +"L'argument *interpreter* spécifie le nom de l'interpréteur Python avec " +"lequel l'archive sera exécutée. Il est écrit dans une ligne *shebang* au " +"début de l'archive. Sur un système POSIX, cela est interprété par le " +"système d'exploitation et, sur Windows, il sera géré par le lanceur Python. " +"L'omission de l'*interpreter* n'entraîne pas l'écriture d'une ligne " +"*shebang*. Si un interpréteur est spécifié et que la cible est un nom de " +"fichier, le bit exécutable du fichier cible sera mis à 1." #: ../Doc/library/zipapp.rst:136 msgid "" @@ -192,12 +245,23 @@ msgid "" "a directory and does not contain a ``__main__.py`` file, as otherwise the " "resulting archive would not be executable." msgstr "" +"L'argument *main* spécifie le nom d'un appelable, utilisé comme programme " +"principal pour l'archive. Il ne peut être spécifié que si la source est un " +"répertoire et si la source ne contient pas déjà un fichier ``__main__.py``. " +"L'argument *main* doit prendre la forme ``pkg.module:callable`` et l'archive " +"sera exécutée en important ``pkg.module`` et en exécutant l'appelable donné " +"sans argument. Omettre *main* est une erreur si la source est un répertoire " +"et ne contient pas un fichier ``__main__.py`` car, dans ce cas, l'archive " +"résultante ne serait pas exécutable." #: ../Doc/library/zipapp.rst:146 msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" +"Si un objet fichier est spécifié pour *source* ou *target*, il est de la " +"responsabilité de l'appelant de le fermer après avoir appelé " +"``create_archive``." #: ../Doc/library/zipapp.rst:149 msgid "" @@ -206,6 +270,11 @@ msgid "" "directory, if the target is a file object it will be passed to the ``zipfile." "ZipFile`` class, and must supply the methods needed by that class." msgstr "" +"Lors de la copie d'une archive existante, les objets fichier fournis n'ont " +"besoin que des méthodes ``read`` et ``readline`` ou ``write``. Lors de la " +"création d'une archive à partir d'un répertoire, si la cible est un objet " +"fichier, elle sera passée à la classe ``zipfile.ZipFile`` et devra fournir " +"les méthodes nécessaires à cette classe." #: ../Doc/library/zipapp.rst:157 msgid "" @@ -214,6 +283,10 @@ msgid "" "argument can be a filename or a file-like object open for reading in bytes " "mode. It is assumed to be at the start of the archive." msgstr "" +"Renvoie l'interpréteur spécifié dans la ligne ``#!`` au début de l'archive. " +"S'il n'y a pas de ligne ``#!``, renvoie :const:`None`. L'argument *archive* " +"peut être un nom de fichier ou un objet de type fichier ouvert à la lecture " +"en mode binaire. Python suppose qu'il est au début de l'archive." #: ../Doc/library/zipapp.rst:166 msgid "Examples" @@ -221,7 +294,7 @@ msgstr "Exemples" #: ../Doc/library/zipapp.rst:168 msgid "Pack up a directory into an archive, and run it." -msgstr "" +msgstr "Regroupe le contenu d'un répertoire dans une archive, puis l'exécute." #: ../Doc/library/zipapp.rst:176 msgid "The same can be done using the :func:`create_archive` functon::" @@ -232,12 +305,16 @@ msgid "" "To make the application directly executable on POSIX, specify an interpreter " "to use." msgstr "" +"Pour rendre l'application directement exécutable sur un système POSIX, " +"spécifiez un interpréteur à utiliser." #: ../Doc/library/zipapp.rst:190 msgid "" "To replace the shebang line on an existing archive, create a modified " "archive using the :func:`create_archive` function::" msgstr "" +"Pour remplacer la ligne *shebang* sur une archive existante, créez une " +"archive modifiée en utilisant la fonction :func:`create_archive` : ::" #: ../Doc/library/zipapp.rst:196 msgid "" @@ -248,10 +325,17 @@ msgid "" "but production code should do so. Also, this method will only work if the " "archive fits in memory::" msgstr "" +"Pour mettre à jour le fichier sans créer de copie locale, effectuez le " +"remplacement en mémoire à l'aide d'un objet :class:`BytesIO`, puis écrasez " +"la source par la suite. Notez qu'il y a un risque lors de l'écrasement d'un " +"fichier local qu'une erreur entraîne la perte du fichier original. Ce code " +"ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures " +"nécessaires en production. De plus, cette méthode ne fonctionnera que si " +"l'archive tient en mémoire : ::" #: ../Doc/library/zipapp.rst:214 msgid "Specifying the Interpreter" -msgstr "" +msgstr "Spécification de l'interprète" #: ../Doc/library/zipapp.rst:216 msgid "" @@ -260,6 +344,11 @@ msgid "" "Python launcher for Windows supports most common forms of POSIX ``#!`` line, " "but there are other issues to consider:" msgstr "" +"Notez que si vous spécifiez un interpréteur et que vous distribuez ensuite " +"votre archive d'application, vous devez vous assurer que l'interpréteur " +"utilisé est portable. Le lanceur Python pour Windows gère la plupart des " +"formes courantes de la ligne POSIX ``#!``, mais il y a d'autres problèmes à " +"considérer :" #: ../Doc/library/zipapp.rst:221 msgid "" @@ -268,6 +357,10 @@ msgid "" "may have either Python 2 or Python 3 as their default, and write your code " "to work under both versions." msgstr "" +"Si vous utilisez ``/usr/bin/env python`` (ou d'autres formes de la commande " +"*python*, comme ``/usr/bin/python``), vous devez considérer que vos " +"utilisateurs peuvent avoir Python 2 ou Python 3 par défaut, et écrire votre " +"code pour fonctionner dans les deux versions." #: ../Doc/library/zipapp.rst:225 msgid "" @@ -275,6 +368,10 @@ msgid "" "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" +"Si vous utilisez une version explicite, par exemple ``/usr/bin/env python3`` " +"votre application ne fonctionnera pas pour les utilisateurs qui n'ont pas " +"cette version. (C'est peut-être ce que vous voulez si vous n'avez pas rendu " +"votre code compatible Python 2)." #: ../Doc/library/zipapp.rst:228 msgid "" @@ -282,16 +379,22 @@ msgid "" "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" +"Il n'y a aucun moyen de dire « python X.Y ou supérieur » donc faites " +"attention si vous utilisez une version exacte comme ``/usr/bin/env " +"python3.4`` car vous devrez changer votre ligne *shebang* pour les " +"utilisateurs de Python 3.5, par exemple." #: ../Doc/library/zipapp.rst:232 msgid "" "Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " "python3\", depending on whether your code is written for Python 2 or 3." msgstr "" +"Normalement, vous devriez utiliser un ``/usr/bin/env python2`` ou ``/usr/bin/" +"env python3``, selon que votre code soit écrit pour Python 2 ou 3." #: ../Doc/library/zipapp.rst:237 msgid "Creating Standalone Applications with zipapp" -msgstr "" +msgstr "Création d'applications autonomes avec *zipapp*" #: ../Doc/library/zipapp.rst:239 msgid "" @@ -301,10 +404,15 @@ msgid "" "this is to bundle all of the application's dependencies into the archive, " "along with the application code." msgstr "" +"En utilisant le module :mod:`zipapp`, il est possible de créer des " +"programmes Python qui peuvent être distribués à des utilisateurs finaux dont " +"le seul pré-requis est d'avoir la bonne version de Python installée sur leur " +"ordinateur. Pour y arriver, la clé est de regrouper toutes les dépendances " +"de l'application dans l'archive avec le code source de l'application." #: ../Doc/library/zipapp.rst:245 msgid "The steps to create a standalone archive are as follows:" -msgstr "" +msgstr "Les étapes pour créer une archive autonome sont les suivantes :" #: ../Doc/library/zipapp.rst:247 msgid "" @@ -312,12 +420,17 @@ msgid "" "directory containing a ``__main__.py`` file, and any supporting application " "code." msgstr "" +"Créez votre application dans un répertoire comme d'habitude, de manière à " +"avoir un répertoire ``myapp`` contenant un fichier ``__main__.py`` et tout " +"le code de l'application correspondante." #: ../Doc/library/zipapp.rst:251 msgid "" "Install all of your application's dependencies into the ``myapp`` directory, " "using pip:" msgstr "" +"Installez toutes les dépendances de votre application dans le répertoire " +"``myapp`` en utilisant *pip* :" #: ../Doc/library/zipapp.rst:258 msgid "" @@ -325,6 +438,9 @@ msgid "" "file - if not, you can just list the dependencies manually on the pip " "command line)." msgstr "" +"(ceci suppose que vous ayez vos dépendances de projet dans un fichier " +"``requirements.txt`` — sinon vous pouvez simplement lister les dépendances " +"manuellement sur la ligne de commande *pip*)." #: ../Doc/library/zipapp.rst:262 msgid "" @@ -333,10 +449,14 @@ msgid "" "as you won't be making any further use of pip they aren't required - " "although it won't do any harm if you leave them." msgstr "" +"Si nécessaire, supprimez les répertoires ``.dist-info`` créés par *pip* dans " +"le répertoire ``myapp``. Ceux-ci contiennent des métadonnées pour *pip* afin " +"de gérer les paquets et, comme vous n'utiliserez plus *pip*, ils ne sont " +"pas nécessaires (c'est sans conséquence si vous les laissez)." #: ../Doc/library/zipapp.rst:267 msgid "Package the application using:" -msgstr "" +msgstr "Regroupez le tout à l'aide de :" #: ../Doc/library/zipapp.rst:273 msgid "" @@ -344,6 +464,10 @@ msgid "" "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" "interpreter` for details. It can be shipped to users as a single file." msgstr "" +"Cela produira un exécutable autonome qui peut être exécuté sur n'importe " +"quelle machine avec l'interpréteur approprié disponible. Voir :ref:`zipapp-" +"specifying-the-interpreter` pour plus de détails. Il peut être envoyé aux " +"utilisateurs sous la forme d'un seul fichier." #: ../Doc/library/zipapp.rst:277 msgid "" @@ -353,10 +477,15 @@ msgid "" "fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " "extensions when installed." msgstr "" +"Sous Unix, le fichier ``myapp.pyz`` est exécutable tel quel. Vous pouvez " +"renommer le fichier pour supprimer l'extension ``.pyz`` si vous préférez un " +"nom de commande « simple ». Sous Windows, le fichier ``myapp.pyz[w]`` est " +"exécutable en vertu du fait que l'interpréteur Python est associé aux " +"extensions de fichier ``.pyz`` et ``.pyzw`` une fois installé." #: ../Doc/library/zipapp.rst:285 msgid "Making a Windows executable" -msgstr "" +msgstr "Création d'un exécutable Windows" #: ../Doc/library/zipapp.rst:287 msgid "" @@ -366,6 +495,11 @@ msgid "" "run(['myapp'])`` won't find your application - you need to explicitly " "specify the extension)." msgstr "" +"Sous Windows, l'association de Python à l'extension ``.pyz`` est facultative " +"et, de plus, il y a certains mécanismes qui ne reconnaissent pas les " +"extensions enregistrées de manière « transparente » (l'exemple le plus " +"simple est que ``subprocess.run(['myapp'])`` ne trouvera pas votre " +"application — vous devez explicitement spécifier l'extension)." #: ../Doc/library/zipapp.rst:293 msgid "" @@ -377,16 +511,25 @@ msgid "" "onto the end of it, you end up with a single-file executable that runs your " "application." msgstr "" +"Sous Windows, il est donc souvent préférable de créer un exécutable à partir " +"du *zipapp*. C'est relativement facile bien que cela nécessite un " +"compilateur C. L'astuce repose sur le fait que les fichiers zip peuvent " +"avoir des données arbitraires au début et les fichiers *exe* de Windows " +"peuvent avoir des données arbitraires à la fin. Ainsi, en créant un lanceur " +"approprié et en rajoutant le fichier ``.pyz`` à sa fin, vous obtenez un " +"fichier unique qui exécute votre application." #: ../Doc/library/zipapp.rst:300 msgid "A suitable launcher can be as simple as the following::" -msgstr "" +msgstr "Un lanceur approprié peut être aussi simple que ce qui suit : ::" #: ../Doc/library/zipapp.rst:325 msgid "" "If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " "executable, and without it, a console executable." msgstr "" +"Si vous définissez le symbole du préprocesseur ``WINDOWS`` cela va générer " +"un exécutable IUG, et sans lui, un exécutable console." #: ../Doc/library/zipapp.rst:328 msgid "" @@ -394,6 +537,9 @@ msgid "" "line tools, or you can take advantage of the fact that distutils knows how " "to compile Python source::" msgstr "" +"Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils " +"standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* " +"sait comment compiler les sources Python: ::" #: ../Doc/library/zipapp.rst:355 msgid "" @@ -401,6 +547,10 @@ msgid "" "with any version of Python 3.x. All it needs is for Python (``python3." "dll``) to be on the user's ``PATH``." msgstr "" +"Le lanceur résultant utilise le « Limited ABI » donc il fonctionnera sans " +"changement avec n'importe quelle version de Python 3.x. Tout ce dont il a " +"besoin est que Python (``python3.dll``) soit sur le ``PATH`` de " +"l'utilisateur." #: ../Doc/library/zipapp.rst:359 msgid "" @@ -409,10 +559,14 @@ msgid "" "distribution. This will run on any PC with the appropriate architecture (32 " "bit or 64 bit)." msgstr "" +"Pour une distribution entièrement autonome vous pouvez distribuer le lanceur " +"avec votre application en fin de fichier, empaqueté avec la distribution " +"*embedded* Python. Ceci fonctionnera sur n'importe quel ordinateur avec " +"l'architecture appropriée (32 bits ou 64 bits)." #: ../Doc/library/zipapp.rst:365 msgid "Caveats" -msgstr "" +msgstr "Mises en garde" #: ../Doc/library/zipapp.rst:367 msgid "" @@ -420,6 +574,10 @@ msgid "" "a single file. In most, if not all, cases they can be addressed without " "needing major changes to your application." msgstr "" +"Il y a certaines limites à l'empaquetage de votre application dans un seul " +"fichier. Dans la plupart des cas, si ce n'est tous, elles peuvent être " +"traitées sans qu'il soit nécessaire d'apporter de modifications majeures à " +"votre application." #: ../Doc/library/zipapp.rst:371 msgid "" @@ -434,6 +592,18 @@ msgid "" "(and potentially pick the correct version to add to ``sys.path`` at runtime, " "based on the user's machine)." msgstr "" +"Si votre application dépend d'un paquet qui inclut une extension C, ce " +"paquet ne peut pas être exécuté à partir d'un fichier zip (c'est une " +"limitation du système d'exploitation, car le code exécutable doit être " +"présent dans le système de fichiers pour que le lanceur de l'OS puisse le " +"charger). Dans ce cas, vous pouvez exclure cette dépendance du fichier zip " +"et, soit demander à vos utilisateurs de l'installer, soit la fournir avec " +"votre fichier zip et ajouter du code à votre fichier ``__main__.py`` pour " +"inclure le répertoire contenant le module décompressé dans ``sys.path``. " +"Dans ce cas, vous devrez vous assurer d'envoyer les binaires appropriés pour " +"votre ou vos architecture(s) cible(s) (et éventuellement choisir la bonne " +"version à ajouter à ``sys.path`` au moment de l'exécution, basée sur la " +"machine de l'utilisateur)." #: ../Doc/library/zipapp.rst:381 msgid "" @@ -442,6 +612,10 @@ msgid "" "the default behaviour of the installer) or you should bundle your " "application with the embedded distribution." msgstr "" +"Si vous livrez un exécutable Windows comme décrit ci-dessus, vous devez vous " +"assurer que vos utilisateurs ont ``python3.dll`` sur leur PATH (ce qui n'est " +"pas le comportement par défaut de l'installateur) ou vous devez inclure la " +"distribution intégrée dans votre application." #: ../Doc/library/zipapp.rst:386 msgid "" @@ -453,10 +627,17 @@ msgid "" "`multiprocessing.set_executable` to let the module know where to find the " "standard Python interpreter." msgstr "" +"Le lanceur suggéré ci-dessus utilise l'API d'intégration Python. Cela " +"signifie que dans votre application ``sys.executable`` sera votre " +"application et *pas* un interpréteur Python classique. Votre code et ses " +"dépendances doivent être préparés à cette possibilité. Par exemple, si " +"votre application utilise le module :mod:`multiprocessing`, elle devra " +"appeler :func:`multiprocessing.set_executable` pour que le module sache où " +"trouver l'interpréteur Python standard." #: ../Doc/library/zipapp.rst:396 msgid "The Python Zip Application Archive Format" -msgstr "" +msgstr "Le format d'archive d'application Zip Python" #: ../Doc/library/zipapp.rst:398 msgid "" @@ -468,6 +649,13 @@ msgid "" "be placed on :data:`sys.path` and thus further modules can be imported from " "the zip file." msgstr "" +"Python est capable d'exécuter des fichiers zip qui contiennent un fichier " +"``__main__.py`` depuis la version 2.6. Pour être exécutée par Python, une " +"archive d'application doit simplement être un fichier zip standard contenant " +"un fichier ``__main__.py`` qui sera exécuté comme point d'entrée de " +"l'application. Comme d'habitude pour tout script Python, le parent du " +"script (dans ce cas le fichier zip) sera placé sur :data:`sys.path` et ainsi " +"d'autres modules pourront être importés depuis le fichier zip." #: ../Doc/library/zipapp.rst:405 msgid "" @@ -475,10 +663,14 @@ msgid "" "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" +"Le format de fichier zip permet d'ajouter des données arbitraires à un " +"fichier zip. Le format de l'application zip utilise cette possibilité pour " +"préfixer une ligne *shebang* POSIX standard dans le fichier (``#!/path/to/" +"interpreter``)." #: ../Doc/library/zipapp.rst:409 msgid "Formally, the Python zip application format is therefore:" -msgstr "" +msgstr "Formellement, le format d'application zip de Python est donc :" #: ../Doc/library/zipapp.rst:411 msgid "" @@ -489,6 +681,12 @@ msgid "" "encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on " "POSIX." msgstr "" +"Une ligne *shebang* facultative, contenant les caractères ``b'#!`` suivis " +"d'un nom d’interpréteur, puis un caractère fin de ligne (``b'\\n'``). Le " +"nom de l'interpréteur peut être n'importe quoi acceptable pour le traitement " +"*shebang* de l'OS, ou le lanceur Python sous Windows. L'interpréteur doit " +"être encodé en UTF-8 sous Windows, et en :func:`sys.getfilesystemencoding()` " +"sur POSIX." #: ../Doc/library/zipapp.rst:416 msgid "" @@ -497,12 +695,20 @@ msgid "" "in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The " "zipfile data can be compressed or uncompressed." msgstr "" +"Des données *zipfile* standards, telles que générées par le module :mod:" +"`zipfile`. Le contenu du fichier zip *doit* inclure un fichier appelé " +"``__main__.py`` (qui doit se trouver à la racine du fichier zip — c'est-à-" +"dire qu'il ne peut se trouver dans un sous-répertoire). Les données du " +"fichier zip peuvent être compressées ou non." #: ../Doc/library/zipapp.rst:421 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" +"Si une archive d'application a une ligne *shebang*, elle peut avoir le bit " +"exécutable activé sur les systèmes POSIX, pour lui permettre d'être exécutée " +"directement." #: ../Doc/library/zipapp.rst:424 msgid "" @@ -510,3 +716,7 @@ msgid "" "application archives - the module is a convenience, but archives in the " "above format created by any means are acceptable to Python." msgstr "" +"Vous pouvez créer des archives d'applications sans utiliser les outils de ce " +"module — le module existe pour faciliter les choses, mais les archives, " +"créées par n'importe quel moyen tout en respectant le format ci-dessus, sont " +"valides pour Python." diff --git a/library/zipimport.po b/library/zipimport.po index 30ede58aa..49367ae67 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/zipimport.rst:2 msgid ":mod:`zipimport` --- Import modules from Zip archives" -msgstr "" +msgstr ":mod:`zipimport` — Importer des modules à partir d'archives Zip" #: ../Doc/library/zipimport.rst:11 msgid "" @@ -29,6 +29,12 @@ msgid "" "the built-in :keyword:`import` mechanism for :data:`sys.path` items that are " "paths to ZIP archives." msgstr "" +"Ce module ajoute la possibilité d'importer des modules Python (:file:`\\*." +"py`, :file:`\\*.pyc`) et des paquets depuis des archives au format ZIP. Il " +"n'est généralement pas nécessaire d'utiliser explicitement le module :mod:" +"`zipimport` ; il est automatiquement utilisé par le mécanisme intégré de :" +"keyword:`import` pour les éléments :data:`sys.path` qui sont des chemins " +"vers les archives ZIP." #: ../Doc/library/zipimport.rst:17 msgid "" @@ -40,6 +46,14 @@ msgid "" "lib/` would only import from the :file:`lib/` subdirectory within the " "archive." msgstr "" +"Typiquement, :data:`sys.path` est une liste de noms de répertoires sous " +"forme de chaînes. Ce module permet également à un élément de :data:`sys." +"path` d'être une chaîne nommant une archive de fichier ZIP. L'archive ZIP " +"peut contenir une structure de sous-répertoire pour prendre en charge les " +"importations de paquets, et un chemin dans l'archive peut être spécifié pour " +"importer uniquement à partir d'un sous-répertoire. Par exemple, le chemin " +"d'accès :file:`example.zip/lib/` importerait uniquement depuis le sous-" +"répertoire :file:`lib/` dans l'archive." #: ../Doc/library/zipimport.rst:24 msgid "" @@ -50,6 +64,13 @@ msgid "" "the corresponding :file:`.pyc` file, meaning that if a ZIP archive doesn't " "contain :file:`.pyc` files, importing may be rather slow." msgstr "" +"Tous les fichiers peuvent être présents dans l'archive ZIP, mais seuls les " +"fichiers :file:`.py` et :file:`.pyc` sont disponibles pour importation. " +"L'importation ZIP des modules dynamiques (:file:`.pyd`, :file:`.so`) est " +"interdite. Notez que si une archive ne contient que des fichiers :file:`." +"py` , Python n'essaiera pas de modifier l'archive en ajoutant le fichier " +"correspondant :file:`.pyc`, ce qui signifie que si une archive ZIP ne " +"contient pas de fichier: :file:`.pyc`, l'importation peut être assez lente." #: ../Doc/library/zipimport.rst:31 msgid "ZIP archives with an archive comment are currently not supported." @@ -60,6 +81,8 @@ msgid "" "`PKZIP Application Note `_" msgstr "" +"`PKZIP Application Note `_" #: ../Doc/library/zipimport.rst:36 msgid "" @@ -71,7 +94,7 @@ msgstr "" #: ../Doc/library/zipimport.rst:42 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Import Modules from Zip Archives" #: ../Doc/library/zipimport.rst:40 msgid "" @@ -82,29 +105,33 @@ msgstr "" #: ../Doc/library/zipimport.rst:44 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` — Nouveaux crochets d'importation" #: ../Doc/library/zipimport.rst:45 msgid "The PEP to add the import hooks that help this module work." msgstr "" +"Le PEP pour ajouter les crochets d'importation qui aident ce module à " +"fonctionner." #: ../Doc/library/zipimport.rst:48 msgid "This module defines an exception:" -msgstr "" +msgstr "Ce module définit une exception :" #: ../Doc/library/zipimport.rst:52 msgid "" "Exception raised by zipimporter objects. It's a subclass of :exc:" "`ImportError`, so it can be caught as :exc:`ImportError`, too." msgstr "" +"Exception levée par les objets *zipimporter*. C'est une sous-classe de :exc:" +"`ImportError`, donc il peut être pris comme :exc:`ImportError`, aussi." #: ../Doc/library/zipimport.rst:59 msgid "zipimporter Objects" -msgstr "" +msgstr "Objets *zimporter*" #: ../Doc/library/zipimport.rst:61 msgid ":class:`zipimporter` is the class for importing ZIP files." -msgstr "" +msgstr ":class:`zipimporter` est la classe pour importer des fichiers ZIP." #: ../Doc/library/zipimport.rst:65 msgid "" @@ -114,12 +141,19 @@ msgid "" "`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided that it " "exists)." msgstr "" +"Créez une nouvelle instance de `zipimporter`. *archivepath* doit être un " +"chemin vers un fichier ZIP, ou vers un chemin spécifique dans un fichier " +"ZIP. Par exemple, un *archivepath* de :file:`foo/bar.zip/lib` cherchera les " +"modules dans le répertoire :file:`lib` du fichier ZIP :file:`foo/bar.zip` " +"(si celui-ci existe)." #: ../Doc/library/zipimport.rst:70 msgid "" ":exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid " "ZIP archive." msgstr "" +":exc:`ZipImportError` est levée si *archivepath* ne pointe pas vers une " +"archive ZIP valide." #: ../Doc/library/zipimport.rst:75 msgid "" @@ -129,18 +163,27 @@ msgid "" "argument is ignored---it's there for compatibility with the importer " "protocol." msgstr "" +"Rechercher un module spécifié par *fullname*. *fullname* doit être le nom du " +"module entièrement qualifié (`dotted`). Elle retourne l'instance " +"`zipimporter` elle-même si le module a été trouvé, ou :const:`None` si ce " +"n'est pas le cas. L'argument optionnel *path* est ignoré --- il est là pour " +"la compatibilité avec le protocole de l'importateur." #: ../Doc/library/zipimport.rst:84 msgid "" "Return the code object for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be found." msgstr "" +"Retourne l'objet de code pour le module spécifié. Lève :exc:`ZipImportError` " +"si le module n'a pas pu être trouvé." #: ../Doc/library/zipimport.rst:90 msgid "" "Return the data associated with *pathname*. Raise :exc:`OSError` if the file " "wasn't found." msgstr "" +"Renvoie les données associées à *pathname*. Lève :exc:`OSError` si le " +"fichier n'a pas été trouvé." #: ../Doc/library/zipimport.rst:93 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." @@ -153,6 +196,9 @@ msgid "" "Return the value ``__file__`` would be set to if the specified module was " "imported. Raise :exc:`ZipImportError` if the module couldn't be found." msgstr "" +"Renvoie la valeur ``__file____`` qui serait définie si le module spécifié " +"était importé. Lève :exc:`ZipImportError` si le module n'a pas pu être " +"trouvé." #: ../Doc/library/zipimport.rst:108 msgid "" @@ -160,12 +206,17 @@ msgid "" "if the module couldn't be found, return :const:`None` if the archive does " "contain the module, but has no source for it." msgstr "" +"Renvoie le code source du module spécifié. Lève :exc:`ZipImportError` si le " +"module n'a pas pu être trouvé, renvoie :const:`None` si l'archive contient " +"le module, mais n'en a pas la source." #: ../Doc/library/zipimport.rst:116 msgid "" "Return ``True`` if the module specified by *fullname* is a package. Raise :" "exc:`ZipImportError` if the module couldn't be found." msgstr "" +"Renvoie ``True`` si le module spécifié par *fullname* est un paquet. Lève :" +"exc:`ZipImportError` si le module n'a pas pu être trouvé." #: ../Doc/library/zipimport.rst:122 msgid "" @@ -173,18 +224,26 @@ msgid "" "qualified (dotted) module name. It returns the imported module, or raises :" "exc:`ZipImportError` if it wasn't found." msgstr "" +"Charge le module spécifié par *fullname*. *fullname* doit être le nom du " +"module entièrement qualifié (`dotted`). Il renvoie le module importé, ou " +"augmente :exc:`ZipImportError` s'il n'a pas été trouvé." #: ../Doc/library/zipimport.rst:129 msgid "" "The file name of the importer's associated ZIP file, without a possible " "subpath." msgstr "" +"Le nom de fichier de l'archive ZIP associé à l'importateur, sans sous-chemin " +"possible." #: ../Doc/library/zipimport.rst:135 msgid "" "The subpath within the ZIP file where modules are searched. This is the " "empty string for zipimporter objects which point to the root of the ZIP file." msgstr "" +"Le sous-chemin du fichier ZIP où les modules sont recherchés. C'est la " +"chaîne vide pour les objets `zipimporter` qui pointent vers la racine du " +"fichier ZIP." #: ../Doc/library/zipimport.rst:139 msgid "" @@ -192,6 +251,9 @@ msgid "" "slash, equal the original *archivepath* argument given to the :class:" "`zipimporter` constructor." msgstr "" +"Les attributs :attr:`archive` et :attr:`prefix`, lorsqu'ils sont combinés " +"avec une barre oblique, égalent l'argument original *archivepath* donné au " +"constructeur :class:`zipimporter`." #: ../Doc/library/zipimport.rst:147 msgid "Examples" @@ -202,3 +264,5 @@ msgid "" "Here is an example that imports a module from a ZIP archive - note that the :" "mod:`zipimport` module is not explicitly used." msgstr "" +"Voici un exemple qui importe un module d'une archive ZIP — notez que le " +"module :mod:`zipimport` n'est pas explicitement utilisé." diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 166347843..bd358bdf9 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -329,7 +329,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:331 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Import Modules from Zip Archives" #: ../Doc/whatsnew/2.3.rst:329 msgid "" @@ -788,7 +788,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` — Nouveaux crochets d'importation" #: ../Doc/whatsnew/2.3.rst:761 msgid "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index 46ce33b50..04ce67400 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -597,6 +597,9 @@ msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." #: ../Doc/whatsnew/2.5.rst:517 msgid "" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index 8b1ca55cd..5654e4ee4 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -1260,7 +1260,7 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:884 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/whatsnew/3.0.rst:886 msgid "" From 1e8d67f3bc75d61f65b42035a4c40623ab621e6e Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> Date: Fri, 24 Apr 2020 11:39:30 +0200 Subject: [PATCH 3/5] =?UTF-8?q?R=C3=A9tro-portage=20de=203.8=20vers=203.6?= =?UTF-8?q?=20(#1237)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- about.po | 2 +- bugs.po | 46 +-- distributing/index.po | 4 +- distutils/apiref.po | 27 +- distutils/builtdist.po | 96 ++--- extending/building.po | 10 +- extending/embedding.po | 46 +-- extending/extending.po | 5 +- extending/newtypes.po | 2 +- extending/windows.po | 38 +- faq/design.po | 67 ++-- faq/general.po | 23 +- faq/gui.po | 10 +- faq/installed.po | 8 +- faq/library.po | 18 +- faq/programming.po | 661 ++++++++++++++++--------------- faq/windows.po | 12 +- glossary.po | 243 ++++++------ howto/argparse.po | 117 +++--- howto/clinic.po | 14 +- howto/descriptor.po | 34 +- howto/functional.po | 2 +- howto/instrumentation.po | 129 ++++-- howto/ipaddress.po | 2 +- howto/logging-cookbook.po | 2 +- howto/logging.po | 45 +-- howto/pyporting.po | 16 +- howto/regex.po | 4 +- howto/sockets.po | 19 +- howto/sorting.po | 6 +- howto/unicode.po | 129 +++--- install/index.po | 228 ++++++----- installing/index.po | 28 +- library/2to3.po | 23 +- library/__future__.po | 24 +- library/__main__.po | 2 +- library/_thread.po | 35 +- library/abc.po | 22 +- library/aifc.po | 4 +- library/argparse.po | 100 +++-- library/array.po | 6 +- library/ast.po | 8 +- library/asyncio-dev.po | 2 +- library/asyncio-protocol.po | 4 +- library/asyncio-subprocess.po | 2 +- library/asyncio-task.po | 4 +- library/asyncore.po | 2 +- library/atexit.po | 6 +- library/audioop.po | 2 +- library/bdb.po | 2 +- library/binhex.po | 2 +- library/bisect.po | 8 +- library/builtins.po | 4 +- library/bz2.po | 119 +++++- library/calendar.po | 2 +- library/cgitb.po | 4 +- library/cmath.po | 4 +- library/cmd.po | 2 +- library/codecs.po | 555 +++++++++++++++++--------- library/collections.abc.po | 4 +- library/collections.po | 32 +- library/colorsys.po | 2 +- library/concurrency.po | 7 +- library/concurrent.futures.po | 2 +- library/configparser.po | 2 +- library/copy.po | 2 +- library/csv.po | 45 ++- library/ctypes.po | 465 +++++++++++++++++++--- library/datetime.po | 196 ++++----- library/decimal.po | 6 +- library/distutils.po | 2 +- library/email.headerregistry.po | 2 +- library/email.iterators.po | 2 +- library/email.message.po | 2 +- library/email.parser.po | 4 +- library/enum.po | 133 ++++--- library/errno.po | 8 +- library/exceptions.po | 20 +- library/fcntl.po | 2 +- library/filecmp.po | 2 +- library/fnmatch.po | 4 +- library/fractions.po | 2 +- library/ftplib.po | 2 +- library/functions.po | 68 ++-- library/functools.po | 10 +- library/gettext.po | 64 +-- library/glob.po | 2 +- library/gzip.po | 10 +- library/hashlib.po | 59 ++- library/heapq.po | 6 +- library/hmac.po | 55 ++- library/html.entities.po | 2 +- library/html.po | 2 +- library/http.cookies.po | 2 +- library/http.po | 2 +- library/idle.po | 5 +- library/imaplib.po | 2 +- library/inspect.po | 2 +- library/io.po | 2 +- library/itertools.po | 265 +++++++------ library/json.po | 24 +- library/keyword.po | 2 +- library/linecache.po | 2 +- library/locale.po | 19 +- library/logging.config.po | 2 +- library/logging.po | 100 ++++- library/lzma.po | 53 ++- library/macpath.po | 2 +- library/math.po | 101 ++--- library/mimetypes.po | 2 +- library/modulefinder.po | 4 +- library/multiprocessing.po | 109 ++--- library/netrc.po | 8 +- library/nis.po | 2 +- library/nntplib.po | 4 +- library/numbers.po | 2 +- library/operator.po | 32 +- library/os.path.po | 4 +- library/os.po | 96 +++-- library/parser.po | 16 + library/pathlib.po | 55 ++- library/pdb.po | 18 +- library/pickle.po | 2 +- library/pipes.po | 2 +- library/pkgutil.po | 2 +- library/posix.po | 8 +- library/pprint.po | 14 +- library/pty.po | 2 +- library/pydoc.po | 5 +- library/queue.po | 2 +- library/quopri.po | 2 +- library/random.po | 200 +++++++++- library/re.po | 38 +- library/readline.po | 10 +- library/rlcompleter.po | 2 +- library/shelve.po | 8 +- library/shutil.po | 20 + library/smtplib.po | 2 +- library/sndhdr.po | 2 +- library/socket.po | 4 +- library/ssl.po | 99 ++++- library/statistics.po | 2 +- library/stdtypes.po | 155 ++++---- library/string.po | 58 +-- library/struct.po | 236 +++++++++-- library/subprocess.po | 104 ++--- library/symbol.po | 2 +- library/sys.po | 105 ++--- library/tabnanny.po | 2 +- library/tempfile.po | 2 +- library/termios.po | 2 +- library/textwrap.po | 10 +- library/threading.po | 23 +- library/time.po | 14 +- library/timeit.po | 19 +- library/tkinter.po | 29 +- library/tkinter.scrolledtext.po | 2 +- library/tokenize.po | 6 +- library/tracemalloc.po | 2 +- library/tty.po | 2 +- library/turtle.po | 2 +- library/types.po | 5 +- library/unicodedata.po | 68 ++-- library/unittest.mock.po | 2 +- library/unittest.po | 102 +++-- library/urllib.po | 2 +- library/urllib.robotparser.po | 4 +- library/uu.po | 2 +- library/venv.po | 8 +- library/wsgiref.po | 46 ++- library/xml.dom.po | 25 +- library/xml.po | 4 +- library/xml.sax.po | 2 +- library/xmlrpc.po | 2 +- library/zipapp.po | 8 +- library/zipfile.po | 6 +- library/zipimport.po | 10 +- library/zlib.po | 48 +-- license.po | 26 +- reference/compound_stmts.po | 114 +++--- reference/datamodel.po | 149 +++---- reference/executionmodel.po | 37 +- reference/expressions.po | 99 ++--- reference/import.po | 135 +++---- reference/index.po | 4 +- reference/introduction.po | 14 +- reference/lexical_analysis.po | 86 ++-- reference/simple_stmts.po | 66 +-- reference/toplevel_components.po | 22 +- sphinx.po | 10 +- tutorial/appendix.po | 18 +- tutorial/appetite.po | 25 +- tutorial/classes.po | 199 +++++----- tutorial/controlflow.po | 103 +++-- tutorial/datastructures.po | 188 ++++----- tutorial/errors.po | 55 ++- tutorial/floatingpoint.po | 68 ++-- tutorial/inputoutput.po | 27 +- tutorial/interactive.po | 6 +- tutorial/interpreter.po | 7 +- tutorial/introduction.po | 120 +++--- tutorial/modules.po | 105 +++-- tutorial/stdlib.po | 40 +- tutorial/stdlib2.po | 62 +-- tutorial/venv.po | 30 +- tutorial/whatnow.po | 10 +- using/cmdline.po | 91 ++--- using/mac.po | 10 +- using/unix.po | 2 +- using/windows.po | 24 +- 210 files changed, 5063 insertions(+), 3638 deletions(-) diff --git a/about.po b/about.po index cd9c57da7..8fe2df5d7 100644 --- a/about.po +++ b/about.po @@ -91,4 +91,4 @@ msgid "" "Python has such wonderful documentation -- Thank You!" msgstr "" "Ce n'est que grâce aux suggestions et contributions de la communauté Python " -"que Python a une documentation si merveilleuse -- Merci !" +"que Python a une documentation si merveilleuse — Merci !" diff --git a/bugs.po b/bugs.po index 63b02d344..5947f4f2c 100644 --- a/bugs.po +++ b/bugs.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/bugs.rst:5 msgid "Dealing with Bugs" -msgstr "S'attaquer aux bugs" +msgstr "S'attaquer aux bogues" #: ../Doc/bugs.rst:7 msgid "" @@ -27,9 +27,9 @@ msgid "" "for stability. In order to maintain this reputation, the developers would " "like to know of any deficiencies you find in Python." msgstr "" -"Python est un langage de programmation mature réputé pour sa stabilité. Afin " -"de maintenir cette réputation, les développeurs souhaitent connaître toute " -"déficience que vous pourriez rencontrer dans Python." +"Python est un langage de programmation robuste réputé pour sa stabilité. " +"Afin de maintenir cette réputation, les développeurs souhaitent connaître " +"tout problème que vous pourriez rencontrer dans Python." #: ../Doc/bugs.rst:11 msgid "" @@ -37,9 +37,9 @@ msgid "" "Python as it streamlines the process and involves less people. Learn how to :" "ref:`contribute `." msgstr "" -"Il est parfois plus rapide de réparer les bugs soi-même et d'en proposer les " -"*patch*, ça simplifie le processus et implique moins de monde. Apprenez à :" -"ref:`contribuer `." +"Il est parfois plus rapide de réparer les bogues soi-même et d'en proposer " +"les correctifs, ça simplifie le processus et implique moins de monde. " +"Apprenez à :ref:`contribuer `." #: ../Doc/bugs.rst:16 msgid "Documentation bugs" @@ -67,9 +67,9 @@ msgid "" "'docs@' is a mailing list run by volunteers; your request will be noticed, " "though it may take a while to be processed." msgstr "" -"Si vous êtes limités par le temps, vous pouvez aussi envoyer un e-mail à " -"docs@python.org (les bugs de comportement peuvent être envoyés à python-" -"list@python.org). 'docs@' est une liste de diffusion gérée par des " +"Si vous êtes limité par le temps, vous pouvez aussi envoyer un courriel à " +"docs@python.org (les bogues de comportement peuvent être envoyés à python-" +"list@python.org). « docs@ » est une liste de diffusion gérée par des " "volontaires, votre requête sera vue, mais elle peut prendre un moment pour " "être traitée." @@ -79,7 +79,7 @@ msgstr "`Documentation bugs`_ sur le gestionnaire de ticket de Python" #: ../Doc/bugs.rst:33 msgid "Using the Python issue tracker" -msgstr "Utilisation du gestionnaire de ticket Python" +msgstr "Utilisation du gestionnaire de tickets Python" #: ../Doc/bugs.rst:35 msgid "" @@ -87,10 +87,10 @@ msgid "" "(https://bugs.python.org/). The bug tracker offers a Web form which allows " "pertinent information to be entered and submitted to the developers." msgstr "" -"Les rapports de bugs pour Python lui-même devraient être soumis via le *Bug " -"Tracker Python* (http://bugs.python.org/). Le gestionnaire de ticket propose " -"un formulaire Web permettant de saisir des informations pertinentes à " -"soumettre aux développeurs." +"Les rapports de bogues pour Python lui-même devraient être soumis via le " +"*Bug Tracker Python* (http://bugs.python.org/). Le gestionnaire de tickets " +"propose un formulaire Web permettant de saisir des informations pertinentes " +"à soumettre aux développeurs." #: ../Doc/bugs.rst:39 msgid "" @@ -120,9 +120,9 @@ msgid "" msgstr "" "Si le problème que vous soumettez n'est pas déjà dans le *bug tracker*, " "revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez pas déjà " -"un compte pour le *tracker*, cliquez sur le lien \"S'enregistrer\", ou, si " +"un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », ou, si " "vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* dans la " -"barre latérale. Il n'est pas possible de soumettre un rapport de bug de " +"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " "manière anonyme." #: ../Doc/bugs.rst:51 @@ -142,9 +142,9 @@ msgid "" "\"Component\" and \"Versions\" to which the bug relates." msgstr "" "Le formulaire de soumission a un certain nombre de champs. Pour le champ " -"\"Titre\", saisissez une *très* courte description du problème ; moins de " -"dix mots est approprié. Dans le champ \"Type\", sélectionnez le type de " -"problème ; sélectionnez aussi \"Composant\" et \"Versions\" en rapport avec " +"« Titre », saisissez une *très* courte description du problème ; moins de " +"dix mots est approprié. Dans le champ « Type », sélectionnez le type de " +"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec " "le bogue." #: ../Doc/bugs.rst:59 @@ -154,7 +154,7 @@ msgid "" "extension modules were involved, and what hardware and software platform you " "were using (including version information as appropriate)." msgstr "" -"Dans le champ \"Commentaire\", décrivez le problème de manière détaillée, " +"Dans le champ « Commentaire », décrivez le problème de manière détaillée, " "incluant ce à quoi vous vous attendiez et ce qui s'est vraiment produit. " "Assurez-vous d'y inclure les éventuels modules d'extensions impliqués et la " "plateforme matérielle et logicielle vous utilisiez (en incluant les " @@ -215,8 +215,8 @@ msgid "" "the `core-mentorship mailing list`_ is a friendly place to get answers to " "any and all questions pertaining to the process of fixing issues in Python." msgstr "" -"Au delà de simplement remonter les bugs que vous trouvez, vous serez aussi " -"appréciés si vous y attachiez des correctifs. Vous pouvez trouver plus " +"Au-delà de simplement remonter les bogues que vous trouvez, il est aussi " +"apprécié d'y attacher des correctifs. Vous pouvez trouver plus " "d'informations pour débuter la rédaction de correctifs dans le `Python " "Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " "list`_ est un endroit amical pour obtenir des réponses à toutes les " diff --git a/distributing/index.po b/distributing/index.po index da83d0d98..050b3cafa 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -70,7 +70,7 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." @@ -225,7 +225,7 @@ msgid "" msgstr "" "Les outils de construction de paquets et de distribution actuellement " "recommandées peuvent être installées en invoquant le module ``pip`` dans une " -"invite de commande : ::" +"invite de commande ::" #: ../Doc/distributing/index.rst:104 msgid "" diff --git a/distutils/apiref.po b/distutils/apiref.po index 88d93afb2..c9e6d84e4 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -452,8 +452,9 @@ msgid "" "the full name of the extension, including any packages --- ie. *not* a " "filename or pathname, but Python dotted name" msgstr "" -"le nom complet de l'extension, incluant n'importe quel paquet --- c-à-d " -"*pas* un nom de fichier ou de chemin mais un nom Python séparé par des points" +"Le nom complet de l'extension, incluant n'importe quel paquet — c-à-d " +"*pas* un nom de fichier ou de chemin mais un nom Python séparé par des " +"points." #: ../Doc/distutils/apiref.rst:183 msgid "*sources*" @@ -497,11 +498,11 @@ msgid "" "define it without a particular value (equivalent of ``#define FOO`` in " "source or :option:`!-DFOO` on Unix C compiler command line)" msgstr "" -"liste de macros à définir ; chaque macro est définie à l'aide d'un tuple de " -"deux valeurs ``(name, value)``, où *value* correspond soit à la chaîne sur " -"laquelle la macro doit être définie, soit à ``None`` pour définir la macro " -"sur aucune valeur particulière (équivalent à ``#define FOO`` dans la source " -"ou à :option:`!-DFOO` dans la ligne de commande du compilateur C Unix." +"Liste de macros à définir ; chaque macro est définie à l'aide d'un couple " +"``(name, value)``, où *value* correspond soit à la chaîne sur laquelle la " +"macro doit être définie, soit à ``None`` pour définir la macro sur aucune " +"valeur particulière (équivalent à ``#define TRUC`` dans la source ou à :" +"option:`!-DTRUC` dans la ligne de commande du compilateur C Unix." #: ../Doc/distutils/apiref.rst:200 msgid "a list of tuples" @@ -607,7 +608,7 @@ msgstr "" "Liste des symboles à exporter à partir d'une extension partagée. N'est pas " "utilisé sur toutes les plates-formes et n'est généralement pas nécessaire " "pour les extensions Python, qui exportent généralement exactement un " -"symbole : ``init`` + nom_de_l'extension." +"symbole : ``init + nom_de_l'extension``." #: ../Doc/distutils/apiref.rst:264 msgid "*depends*" @@ -615,7 +616,7 @@ msgstr "*depends*" #: ../Doc/distutils/apiref.rst:264 msgid "list of files that the extension depends on" -msgstr "liste des fichiers dont dépend l'extension" +msgstr "Liste des fichiers dont dépend l'extension." #: ../Doc/distutils/apiref.rst:267 msgid "*language*" @@ -626,12 +627,12 @@ msgid "" "extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " "from the source extensions if not provided." msgstr "" -"langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " +"Langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " "détecté selon l'extension de la source s'il n'est pas précisé." #: ../Doc/distutils/apiref.rst:273 msgid "*optional*" -msgstr "*optionnel*" +msgstr "*optional*" #: ../Doc/distutils/apiref.rst:273 msgid "" @@ -3260,11 +3261,11 @@ msgstr "" "Implémentation alternative de *build_py* qui exécute également la " "bibliothèque de conversion *2to3* sur chaque fichier *.py* qui va être " "installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution " -"conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter : ::" +"conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter ::" #: ../Doc/distutils/apiref.rst:1914 msgid "to your setup.py, and later::" -msgstr "à votre *setup.py* et, plus tard : ::" +msgstr "à votre *setup.py* et, plus tard ::" #: ../Doc/distutils/apiref.rst:1918 msgid "to the invocation of setup()." diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 78371ff9e..9af98120e 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -34,8 +34,8 @@ msgstr "" "\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est " "cependant pas forcément un binaire, il peut ne contenir que des sources " "Python et / ou du *byte-code* ; et nous n'appelons pas ça un *package* parce " -"que ce mot est déjà utilisée dans Python (et \"installateur\" est un terme " -"spécifique au monde des systèmes de bureau). " +"que ce mot est déjà utilisé dans Python (et \"installateur\" est un terme " +"spécifique au monde des systèmes de bureau)." #: ../Doc/distutils/builtdist.rst:14 msgid "" @@ -52,14 +52,14 @@ msgid "" msgstr "" "Une distribution compilée est une manière de rendre la vie plus facile à " "ceux qui installent votre module : pour les utilisateurs de système Linux " -"basé sur RPM, ce sera des binaire RPM ; pour les utilisateurs de Windows, " -"c'est un installateur exécutable ; pour les utilisateurs de Linux basé sur " +"basé sur RPM, ce sera des binaires RPM ; pour les utilisateurs de Windows, " +"c'est un installateur exécutable ; pour les utilisateurs de Linux basés sur " "Debian, c'est un paquet Debian ; et ainsi de suite. Évidemment, personne " -"n'est capable de créer une distribution compilée pour toute les plateformes " +"n'est capable de créer une distribution compilée pour toutes les plateformes " "existantes, donc Distutils est fait pour permettre aux développeurs de se " "concentrer sur leurs spécialités --- écrire du code et créer des " -"distribution source --- pendant que d'autres, appelés *packagers* s'occupent " -"de transformer les sources en paquets pour chaque plateforme." +"distributions source --- pendant que d'autres, appelés *packagers* " +"s'occupent de transformer les sources en paquets pour chaque plateforme." #: ../Doc/distutils/builtdist.rst:24 msgid "" @@ -97,7 +97,7 @@ msgid "" "considered \"dumb\" because it has to be unpacked in a specific location to " "work.)" msgstr "" -"alors Distutils construit ma distribution du module (Distutils lui même dans " +"alors Distutils construit ma distribution du module (Distutils lui-même dans " "ce cas), fait une \"fausse\" installation (aussi dans le dossier :file:" "`build`) et crée le type de distribution compilée par défaut pour ma " "plateforme. Le format par défaut est un \"bête\" fichier *tar* pour Unix et " @@ -151,7 +151,7 @@ msgid "" msgstr "" "La commande :command:`bdist` a l'option :option:`!--formats`, similaire à la " "commande :command:`sdist`, que vous pouvez utiliser pour sélectionner le " -"type de distribution compilée à générer : par exemple," +"type de distribution compilée à générer : par exemple, ::" #: ../Doc/distutils/builtdist.rst:66 msgid "" @@ -165,7 +165,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:70 msgid "The available formats for built distributions are:" -msgstr "Les formats disponible pour les distributions compilées sont :" +msgstr "Les formats disponibles pour les distributions compilées sont :" #: ../Doc/distutils/builtdist.rst:73 msgid "Format" @@ -185,7 +185,7 @@ msgstr "``gztar``" #: ../Doc/distutils/builtdist.rst:75 msgid "gzipped tar file (:file:`.tar.gz`)" -msgstr "Fichier *tar* *gzippé* (:file:`.tar.gz`)" +msgstr "fichier *tar* *gzippé* (:file:`.tar.gz`)" #: ../Doc/distutils/builtdist.rst:75 msgid "\\(1)" @@ -197,7 +197,7 @@ msgstr "``bztar``" #: ../Doc/distutils/builtdist.rst:78 msgid "bzipped tar file (:file:`.tar.bz2`)" -msgstr "Fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" +msgstr "fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" #: ../Doc/distutils/builtdist.rst:81 msgid "``xztar``" @@ -205,7 +205,7 @@ msgstr "``xztar``" #: ../Doc/distutils/builtdist.rst:81 msgid "xzipped tar file (:file:`.tar.xz`)" -msgstr "Fichier *tar* de type *xzipped* (:file:`.tar.xz`)" +msgstr "fichier *tar* de type *xzipped* (:file:`.tar.xz`)" #: ../Doc/distutils/builtdist.rst:84 msgid "``ztar``" @@ -213,7 +213,7 @@ msgstr "``ztar``" #: ../Doc/distutils/builtdist.rst:84 msgid "compressed tar file (:file:`.tar.Z`)" -msgstr "Fichier *tar* compressé par *compress* (:file:`.tar.Z`)" +msgstr "fichier *tar* compressé par *compress* (:file:`.tar.Z`)" #: ../Doc/distutils/builtdist.rst:84 msgid "\\(3)" @@ -233,7 +233,7 @@ msgstr "``zip``" #: ../Doc/distutils/builtdist.rst:89 msgid "zip file (:file:`.zip`)" -msgstr "Fichier *zip* (:file:`.zip`)" +msgstr "fichier *zip* (:file:`.zip`)" #: ../Doc/distutils/builtdist.rst:89 msgid "(2),(4)" @@ -273,7 +273,7 @@ msgstr "``wininst``" #: ../Doc/distutils/builtdist.rst:97 msgid "self-extracting ZIP file for Windows" -msgstr "Fichier zip auto-extracteur Windows" +msgstr "fichier zip auto-extracteur Windows" #: ../Doc/distutils/builtdist.rst:97 msgid "\\(4)" @@ -297,15 +297,15 @@ msgstr "Notes :" #: ../Doc/distutils/builtdist.rst:110 msgid "default on Unix" -msgstr "Par défaut sur Unix" +msgstr "par défaut sur Unix" #: ../Doc/distutils/builtdist.rst:113 msgid "default on Windows" -msgstr "Par défaut sur Windows" +msgstr "par défaut sur Windows" #: ../Doc/distutils/builtdist.rst:116 msgid "requires external :program:`compress` utility." -msgstr "Nécessite un programme externe :program:`compress`." +msgstr "nécessite un programme externe :program:`compress`." #: ../Doc/distutils/builtdist.rst:119 msgid "" @@ -320,7 +320,7 @@ msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" msgstr "" -"Nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " +"nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " "(utilisez ``rpm --version`` pour connaître quelle version vous avez)" #: ../Doc/distutils/builtdist.rst:126 @@ -337,9 +337,9 @@ msgstr "" "Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :" "option:`!--formats` ; Vous pouvez également utiliser la commande qui " "implémente directement le format qui vous intéresse. Certaines de ces \"sous-" -"commandes\" :command:`bdist` génèrent plusieurs formats similaire ; par " +"commandes\" :command:`bdist` génèrent plusieurs formats similaires ; par " "exemple, La commande :command:`bdist_dumb` génère les archives aux formats " -"\"bête\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, et ``zip``), " +"\"bêtes\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, et ``zip``), " "et :command:`bdist_rpm` génère les binaires RPM et ainsi que les sources. " "Les sous-commandes :command:`bdist`, et les formats générés par chacun, " "sont :" @@ -433,10 +433,10 @@ msgid "" "you can explicitly specify multiple :command:`bdist_\\*` commands and their " "options::" msgstr "" -"La première vous permet de spécifier des options spécifique à RPM ; la " -"dernière vous permet de spécifier plusieurs format d'un seul coup. Si vous " +"La première vous permet de spécifier des options spécifiques à RPM ; la " +"dernière vous permet de spécifier plusieurs formats d'un seul coup. Si vous " "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " -"plusieurs commande :command:`bdist_\\*` et leurs options ::" +"plusieurs commandes :command:`bdist_\\*` et leurs options ::" #: ../Doc/distutils/builtdist.rst:188 msgid "" @@ -447,7 +447,7 @@ msgid "" "any Distutils configuration files. Various options and sections in the :" "file:`.spec` file are derived from options in the setup script as follows:" msgstr "" -"La création de Package RPM est configurée par une fichier :file:`.spec`, un " +"La création de Package RPM est configurée par un fichier :file:`.spec`, un " "peu comme Distutils est configuré par script *setup.py*. Pour vous faciliter " "la tâche, la commande :command:`bdist_rpm` crée normalement un fichier :file:" "`.spec` basé sur les informations que vous fournissez dans *setup.py*, dans " @@ -481,7 +481,7 @@ msgstr "``description``" #: ../Doc/distutils/builtdist.rst:202 msgid "Version" -msgstr "*Version*" +msgstr "Version" #: ../Doc/distutils/builtdist.rst:202 msgid "``version``" @@ -489,7 +489,7 @@ msgstr "``version``" #: ../Doc/distutils/builtdist.rst:204 ../Doc/distutils/builtdist.rst:227 msgid "Vendor" -msgstr "*vendor*" +msgstr "Vendor" #: ../Doc/distutils/builtdist.rst:204 msgid "" @@ -509,7 +509,7 @@ msgstr "``license``" #: ../Doc/distutils/builtdist.rst:210 msgid "Url" -msgstr "*Url*" +msgstr "Url" #: ../Doc/distutils/builtdist.rst:210 msgid "``url``" @@ -539,7 +539,7 @@ msgstr "Option de :command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:220 msgid "default value" -msgstr "Valeur par défaut" +msgstr "valeur par défaut" #: ../Doc/distutils/builtdist.rst:223 msgid "Release" @@ -555,7 +555,7 @@ msgstr "\"1\"" #: ../Doc/distutils/builtdist.rst:225 msgid "Group" -msgstr "*Group*" +msgstr "Group" #: ../Doc/distutils/builtdist.rst:225 msgid "``group``" @@ -575,7 +575,7 @@ msgstr "(voir au-dessus)" #: ../Doc/distutils/builtdist.rst:229 msgid "Packager" -msgstr "*Packager*" +msgstr "Packager" #: ../Doc/distutils/builtdist.rst:229 msgid "``packager``" @@ -590,7 +590,7 @@ msgstr "(none)" #: ../Doc/distutils/builtdist.rst:231 msgid "Provides" -msgstr "*Provides*" +msgstr "Provides" #: ../Doc/distutils/builtdist.rst:231 msgid "``provides``" @@ -598,7 +598,7 @@ msgstr "``provides``" #: ../Doc/distutils/builtdist.rst:233 msgid "Requires" -msgstr "*Requires*" +msgstr "Requires" #: ../Doc/distutils/builtdist.rst:233 msgid "``requires``" @@ -606,7 +606,7 @@ msgstr "``requires``" #: ../Doc/distutils/builtdist.rst:235 msgid "Conflicts" -msgstr "*Conflicts*" +msgstr "Conflicts" #: ../Doc/distutils/builtdist.rst:235 msgid "``conflicts``" @@ -614,7 +614,7 @@ msgstr "``conflicts``" #: ../Doc/distutils/builtdist.rst:237 msgid "Obsoletes" -msgstr "*Obsoletes*" +msgstr "Obsoletes" #: ../Doc/distutils/builtdist.rst:237 msgid "``obsoletes``" @@ -622,7 +622,7 @@ msgstr "``obsoletes``" #: ../Doc/distutils/builtdist.rst:239 msgid "Distribution" -msgstr "*Distribution*" +msgstr "Distribution" #: ../Doc/distutils/builtdist.rst:239 msgid "``distribution_name``" @@ -630,7 +630,7 @@ msgstr "``distribution_name``" #: ../Doc/distutils/builtdist.rst:241 msgid "BuildRequires" -msgstr "*BuildRequires*" +msgstr "BuildRequires" #: ../Doc/distutils/builtdist.rst:241 msgid "``build_requires``" @@ -638,7 +638,7 @@ msgstr "``build_requires``" #: ../Doc/distutils/builtdist.rst:243 msgid "Icon" -msgstr "*Icon*" +msgstr "Icon" #: ../Doc/distutils/builtdist.rst:243 msgid "``icon``" @@ -678,7 +678,7 @@ msgid "" "Distutils setup script; in fact, much of the information in the setup " "script winds up in the :file:`.spec` file)" msgstr "" -"Créer un fichier :file:`.spec` qui décrira le paquet (comme le script de " +"crée un fichier :file:`.spec` qui décrit le paquet (comme le script de " "préparation Distutils, en réalité la plupart des informations du script de " "préparation se retrouve dans le fichier :file:`.spec`)" @@ -691,7 +691,7 @@ msgid "" "create the \"binary\" RPM (which may or may not contain binary code, " "depending on whether your module distribution contains Python extensions)" msgstr "" -"Créer le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " +"crée le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " "de si votre module contiens des extensions)" #: ../Doc/distutils/builtdist.rst:266 @@ -733,7 +733,7 @@ msgid "" "metadata in the setup script, let the user select a few options, and start " "or cancel the installation." msgstr "" -"Les installateurs exécutable sont le format naturel pour les distributions " +"Les installateurs exécutables sont le format naturel pour les distributions " "sur Windows. Ils affichent une jolie interface graphique, montrent quelques " "informations à propos du module qui va être installé, tiré des métadonnées " "dans le script de préparation, laisse l'utilisateur choisir quelques options " @@ -834,7 +834,7 @@ msgid "" "installed, you can use a 32bit version of Windows to create 64bit extensions " "and vice-versa." msgstr "" -"Depuis Python 2.6, *distutils* est capable de compiler pour toute les " +"Depuis Python 2.6, *distutils* est capable de compiler pour toutes les " "plateformes de Windows. En pratique, cela signifie qu'avec les bons outils " "installés, vous pouvez utiliser une version 32 bits de Windows pour créer " "une extension 64 bits et vice-versa." @@ -852,7 +852,7 @@ msgid "" "to build a 64bit version of your extension. The Windows Installers also " "support this option, so the command::" msgstr "" -"Pour construire une version 64 bits de votre module. L'installateur Windows " +"pour construire une version 64 bits de votre module. L'installateur Windows " "supporte aussi cette option, donc la commande ::" #: ../Doc/distutils/builtdist.rst:364 @@ -891,7 +891,7 @@ msgid "" "to check or modify your existing install.)" msgstr "" "Remarquez que par défaut Visual Studio 2008 n'installe pas les outils et " -"compilateur 64 bits. Vous devrez peut être réexécuter le processus " +"compilateur 64 bits. Vous devrez peut-être ré-exécuter le processus " "d'installation et sélectionner ces outils (utiliser le *Panneau de Contrôle -" "> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre " "installation existante.)" @@ -939,8 +939,8 @@ msgid "" "Some functions especially useful in this context are available as additional " "built-in functions in the installation script." msgstr "" -"certaines fonctions spécialement utiles dans ce contexte sont disponibles " -"comme fonctions intégrées additionnelles dans le script d'installation." +"Certaines fonctions spécialement utiles dans ce contexte sont disponibles " +"comme fonctions natives additionnelles dans le script d'installation." #: ../Doc/distutils/builtdist.rst:406 msgid "" @@ -951,7 +951,7 @@ msgid "" msgstr "" "Ces fonctions peuvent être appelées lorsqu'un répertoire ou un fichier est " "crée par le script de post installation au moment de l'installation. Cela va " -"enregistrer le *chemin* avec le des-installeur, de sorte qu'il soit retiré " +"enregistrer le *chemin* avec le des-installateur, de sorte qu'il soit retiré " "lors de la des-installation de la distribution. pour être sûr, les " "répertoires sont uniquement retirés s'ils sont vides." diff --git a/extending/building.po b/extending/building.po index 979548186..84e9eefd1 100644 --- a/extending/building.po +++ b/extending/building.po @@ -70,7 +70,7 @@ msgstr "" "Dans ce cas, le nom de la fonction d'initialisation est " "``PyInitU_``, où ``modulename`` est encodé avec l'encodage " "*punyencode* de Python, dont les tirets sont remplacés par des tirets-bas. " -"En Python ça donne : ::" +"En Python ça donne ::" #: ../Doc/extending/building.rst:39 msgid "" @@ -112,7 +112,7 @@ msgstr "" #: ../Doc/extending/building.rst:73 msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer : ::" +msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" #: ../Doc/extending/building.rst:77 msgid "" @@ -188,7 +188,7 @@ msgstr "" "paquets. En ce qui concerne l'extension, sont définis quelques macros " "préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " "compilateur, *distutils* peut donner ces informations de manière différente. " -"Par exemple, sur Unix, ça peut ressembler aux commandes : ::" +"Par exemple, sur Unix, ça peut ressembler aux commandes ::" #: ../Doc/extending/building.rst:139 msgid "" @@ -215,14 +215,14 @@ msgid "" "End-users will typically want to install the module, they do so by running ::" msgstr "" "Typiquement, les utilisateurs vont vouloir installer le module, ils le font " -"en exécutant : ::" +"en exécutant ::" #: ../Doc/extending/building.rst:154 msgid "" "Module maintainers should produce source packages; to do so, they run ::" msgstr "" "Les mainteneurs de modules voudront produire des paquets source, pour ce " -"faire ils exécuteront : ::" +"faire ils exécuteront ::" #: ../Doc/extending/building.rst:158 msgid "" diff --git a/extending/embedding.po b/extending/embedding.po index 17c931b8c..626b42b8d 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -33,13 +33,13 @@ msgid "" "writing some scripts in Python. You can also use it yourself if some of the " "functionality can be written in Python more easily." msgstr "" -"Les chapitres précédents couvraient l'extension de Python, c'est à dire, " +"Les chapitres précédents couvraient l'extension de Python, c'est-à-dire, " "comment enrichir une fonctionnalité de Python en y attachant une " -"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens: " +"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens : " "enrichir vos applications C/C++ en y intégrant Python. Intégrer Python vous " "permet d'implémenter certaines fonctionnalités de vos applications en Python " "plutôt qu'en C ou C++. C'est utile dans de nombreux cas, un exemple serait " -"de permettre aux utilisateurs d'adapter une application à leur besoins en y " +"de permettre aux utilisateurs d'adapter une application à leurs besoins en y " "écrivant des scripts Python. Vous pouvez aussi l'utiliser vous même si " "certaines fonctionnalités peuvent être rédigées plus facilement en Python." @@ -81,9 +81,9 @@ msgid "" "level operations described in the previous chapters to construct and use " "Python objects." msgstr "" -"Il existe différents moyens d'appeler l'interpréteur: vous pouvez donner une " -"chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, ou " -"vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " +"Il existe différents moyens d'appeler l'interpréteur : vous pouvez donner " +"une chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, " +"ou vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " "(juste pour nommer les messages d'erreur) à :c:func:`PyRunSimpleFile`. Vous " "pouvez aussi appeler les API de bas niveau décrites dans les chapitres " "précédents pour construire et utiliser des objets Python." @@ -144,7 +144,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:92 msgid "Beyond Very High Level Embedding: An overview" -msgstr "Au delà de l'intégration de haut niveau: survol" +msgstr "Au-delà de l'intégration de haut niveau : survol" #: ../Doc/extending/embedding.rst:94 msgid "" @@ -170,7 +170,7 @@ msgstr "" "Il est à souligner qu'étendre ou intégrer Python revient à la louche au " "même, en dépit de la différence d'intention. La plupart des sujets parcourus " "dans les chapitres précédents sont toujours valides. Pour le prouver, " -"regardez ce qu'un code d'extension de Python vers C fait réellement :" +"regardez ce qu'un code d'extension de Python vers C fait réellement :" #: ../Doc/extending/embedding.rst:104 msgid "Convert data values from Python to C," @@ -186,7 +186,7 @@ msgstr "Convertir les résultats de l'appel à la fonction C pour Python." #: ../Doc/extending/embedding.rst:110 msgid "When embedding Python, the interface code does:" -msgstr "Lors de l'intégration de Python, le code de l'interface fait :" +msgstr "Lors de l'intégration de Python, le code de l'interface fait :" #: ../Doc/extending/embedding.rst:112 msgid "Convert data values from C to Python," @@ -212,7 +212,7 @@ msgid "" "you call a C routine, when embedding, you call a Python routine." msgstr "" "Tel que vous le voyez, les conversions sont simplement inversées pour " -"s'adapter au différentes directions de transfert inter-langage. La seule " +"s'adapter aux différentes directions de transfert inter-langage. La seule " "différence est la fonction que vous appelez entre les deux conversions de " "données. Lors de l'extension, vous appelez une fonction C, lors de " "l'intégration vous appelez une fonction Python." @@ -248,7 +248,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:140 msgid "The code to run a function defined in a Python script is:" -msgstr "Le code pour appeler une fonction définie dans un script Python est :" +msgstr "Le code pour appeler une fonction définie dans un script Python est :" #: ../Doc/extending/embedding.rst:145 msgid "" @@ -262,11 +262,11 @@ msgstr "" "fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " "autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " "programme (appelons l'exécutable :program:`call`), et l'appelez pour " -"exécuter un script Python, tel que :" +"exécuter un script Python, tel que :" #: ../Doc/extending/embedding.rst:160 msgid "then the result should be:" -msgstr "alors, le résultat sera:" +msgstr "alors, le résultat sera :" #: ../Doc/extending/embedding.rst:168 msgid "" @@ -277,7 +277,7 @@ msgstr "" "Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " "du code n'est que conversion de données entre Python et C, aussi que pour " "rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " -"Python débute par : ::" +"Python débute par ::" #: ../Doc/extending/embedding.rst:177 msgid "" @@ -288,8 +288,8 @@ msgid "" msgstr "" "Après avoir initialisé l'interpréteur, le script est chargé en utilisant :c:" "func:`PyImport_Import`. Cette fonction prend une chaîne Python pour " -"argument, elle même construite en utilisant la fonction de conversion :c:" -"func:`PyUnicode_FromString`." +"argument, elle-même construite en utilisant la fonction de conversion :c:" +"func:`PyUnicode_FromString`. ::" #: ../Doc/extending/embedding.rst:190 msgid "" @@ -303,7 +303,7 @@ msgstr "" "`PyObject_GetAttrString`. Si le nom existe, et que l'objet récupéré peut " "être appelé, vous pouvez présumer sans risque que c'est une fonction. Le " "programme continue, classiquement, par la construction de n-uplet " -"d'arguments. L'appel à la fonction Python est alors effectué avec : ::" +"d'arguments. L'appel à la fonction Python est alors effectué avec ::" #: ../Doc/extending/embedding.rst:198 msgid "" @@ -338,7 +338,7 @@ msgstr "" "démarre l'interpréteur Python, au lieu de cela, voyez l'application comme un " "ensemble de fonctions, et rédigez un peu de code pour exposer ces fonctions " "à Python, tout comme vous écririez une extension Python normale. Par " -"exemple : ::" +"exemple ::" #: ../Doc/extending/embedding.rst:245 msgid "" @@ -364,7 +364,7 @@ msgid "" "In a real application, the methods will expose an API of the application to " "Python." msgstr "" -"Dans un cas réel, les méthodes exposeraient une API de l'application a " +"Dans un cas réel, les méthodes exposeraient une API de l'application à " "Python." #: ../Doc/extending/embedding.rst:270 @@ -409,10 +409,10 @@ msgid "" "available). This script has several options, of which the following will be " "directly useful to you:" msgstr "" -"Pour trouver les bonnes option de compilateur et *linker*, vous pouvez " +"Pour trouver les bonnes options de compilateur et *linker*, vous pouvez " "exécuter le script :file:`python(X.Y)-config` généré durant l'installation " "(un script :file:`python3-config` peut aussi être disponible). Ce script a " -"quelques options, celles-ci vous seront utiles :" +"quelques options, celles-ci vous seront utiles :" #: ../Doc/extending/embedding.rst:295 msgid "" @@ -420,7 +420,7 @@ msgid "" "compiling:" msgstr "" "``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " -"compiler:" +"compiler :" #: ../Doc/extending/embedding.rst:303 msgid "" @@ -428,7 +428,7 @@ msgid "" "linking:" msgstr "" "``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de " -"l'édition de lien:" +"l'édition de lien :" #: ../Doc/extending/embedding.rst:312 msgid "" diff --git a/extending/extending.po b/extending/extending.po index ba32dfac8..97f1dfb6a 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -423,8 +423,7 @@ msgid "" "you usually declare a static object variable at the beginning of your file::" msgstr "" "Vous pouvez également créer une exception spécifique à votre module. Pour " -"cela, déclarez simplement une variable statique au début de votre " -"fichier : ::" +"cela, déclarez simplement une variable statique au début de votre fichier ::" #: ../Doc/extending/extending.rst:206 msgid "" @@ -573,7 +572,7 @@ msgid "" msgstr "" "Nous avons promis de montrer comment :c:func:`spam_system` est appelée " "depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et " -"son adresse dans un « tableau des méthodes » ::" +"son adresse dans un « tableau des méthodes » ::" #: ../Doc/extending/extending.rst:320 msgid "" diff --git a/extending/newtypes.po b/extending/newtypes.po index 262eef355..da41f03ec 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -368,7 +368,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:335 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/extending/newtypes.rst:351 msgid "" diff --git a/extending/windows.po b/extending/windows.po index f9612450b..b002756e4 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -169,17 +169,17 @@ msgid "" "application or DLL." msgstr "" "Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " -"et une bibliothèque d'import (toutes deux appelées :file:`.lib`). Une " +"et une bibliothèque d'importation (toutes deux appelées :file:`.lib`). Une " "bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " -"du code pouvant être inclus si nécessaire. Une bibliothèque d'import est " -"uniquement utilisée pour rassurer le lieur qu'un certain identificateur est " -"légal, et sera présent dans le programme quand la DLL est chargé. Comme ça " -"le lieur utilise les informations provenant de la bibliothèque d'import pour " -"construire la table de conversion pour utiliser les identificateurs qui ne " -"sont pas inclus dans la DLL. Quand une application ou une DLL est lié, une " -"bibliothèque d'import peut être générée, qui devra être utilisée pour tous " -"les futures DLL dépendantes aux symboles provenant de l'application ou de la " -"DLL." +"du code pouvant être inclus si nécessaire. Une bibliothèque d'importation " +"est uniquement utilisée pour rassurer le lieur qu'un certain identificateur " +"est légal, et sera présent dans le programme quand la DLL est chargée. Comme " +"ça le lieur utilise les informations provenant de la bibliothèque " +"d'importation pour construire la table de conversion pour utiliser les " +"identificateurs qui ne sont pas inclus dans la DLL. Quand une application ou " +"une DLL est liée, une bibliothèque d'importation peut être générée, qui " +"devra être utilisée pour toutes les futures DLL dépendantes aux symboles " +"provenant de l'application ou de la DLL." #: ../Doc/extending/windows.rst:86 msgid "" @@ -207,10 +207,10 @@ msgid "" "On Unix, linking with a library is more like ``from spam import *``; it does " "create a separate copy." msgstr "" -"Sur Windows, utiliser une bibliothèque d'import est comme utiliser ``import " -"spam``; cela vous donne accès aux noms des spams, mais ne crée par de copie " -"séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from spam " -"import *`` ; cela créé une copie séparée." +"Sur Windows, utiliser une bibliothèque d'importation est comme utiliser " +"``import spam``; cela vous donne accès aux noms des spams, mais ne crée par " +"de copie séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from " +"spam import *`` ; cela crée une copie séparée." #: ../Doc/extending/windows.rst:103 msgid "Using DLLs in Practice" @@ -278,8 +278,8 @@ msgid "" "the Project Settings dialog, Link tab, to specify *ignore default " "libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries." msgstr "" -"\\ Developer Studio apportera beaucoup de bibliothèques d'import dont vous " -"n'avez pas vraiment besoin, augmentant d'environ 100ko votre exécutable. " -"Pour s'en débarrasser, allez dans les Paramètres du Projet, onglet Lien, " -"pour préciser *ignorer les bibliothèques par défaut*. Et la :file:`msvcrtxx." -"lib` correcte à la liste des bibliothèques." +"\\ Developer Studio apportera beaucoup de bibliothèques d'importation dont " +"vous n'avez pas vraiment besoin, augmentant d'environ 100ko votre " +"exécutable. Pour s'en débarrasser, allez dans les Paramètres du Projet, " +"onglet Lien, pour préciser *ignorer les bibliothèques par défaut*. Et la :" +"file:`msvcrtxx.lib` correcte à la liste des bibliothèques." diff --git a/faq/design.po b/faq/design.po index fccbabf65..1cad2fd85 100644 --- a/faq/design.po +++ b/faq/design.po @@ -24,7 +24,7 @@ msgstr "FAQ histoire et design" #: ../Doc/faq/design.rst:6 msgid "Why does Python use indentation for grouping of statements?" msgstr "" -"Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" +"Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" #: ../Doc/faq/design.rst:8 msgid "" @@ -46,7 +46,7 @@ msgstr "" "Comme il n'y a pas d'accolades de début/fin, il ne peut y avoir de " "différence entre le bloc perçu par l'analyseur syntaxique et le lecteur " "humain. Parfois les programmeurs C pourront trouver un morceau de code comme " -"celui-ci : ::" +"celui-ci ::" #: ../Doc/faq/design.rst:21 msgid "" @@ -98,7 +98,7 @@ msgstr "" msgid "Why am I getting strange results with simple arithmetic operations?" msgstr "" "Pourquoi ai-je d'étranges résultats suite à de simples opérations " -"arithmétiques ?" +"arithmétiques ?" #: ../Doc/faq/design.rst:43 msgid "See the next question." @@ -106,12 +106,11 @@ msgstr "Voir la question suivante." #: ../Doc/faq/design.rst:47 msgid "Why are floating-point calculations so inaccurate?" -msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" +msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" #: ../Doc/faq/design.rst:49 msgid "Users are often surprised by results like this::" -msgstr "" -"Les gens sont très souvent surpris par des résultats comme celui-ci : ::" +msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" #: ../Doc/faq/design.rst:54 msgid "" @@ -148,7 +147,7 @@ msgid "" msgstr "" "Beaucoup de nombres pouvant être écrits facilement en notation décimale ne " "peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " -"exemple, après : ::" +"exemple, après ::" #: ../Doc/faq/design.rst:70 msgid "" @@ -158,11 +157,11 @@ msgid "" msgstr "" "la valeur stockée pour ``x`` est une (très bonne) approximation de la valeur " "décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " -"typique, la valeur stockée est en fait : ::" +"typique, la valeur stockée est en fait ::" #: ../Doc/faq/design.rst:76 msgid "which is exactly::" -msgstr "qui est, exactement : ::" +msgstr "qui est, exactement ::" #: ../Doc/faq/design.rst:80 msgid "" @@ -182,7 +181,7 @@ msgstr "" #: ../Doc/faq/design.rst:88 msgid "Why are Python strings immutable?" -msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" +msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" #: ../Doc/faq/design.rst:90 msgid "There are several advantages." @@ -216,7 +215,7 @@ msgstr "" msgid "Why must 'self' be used explicitly in method definitions and calls?" msgstr "" "Pourquoi \"self\" doit-il être explicitement utilisé dans les définitions et " -"les appels de méthode ?" +"les appels de méthode ?" #: ../Doc/faq/design.rst:107 msgid "" @@ -302,11 +301,11 @@ msgstr "" "les références vers des noms non-qualifiés au sein d'une méthode n'ont pas à " "être cherchés dans l'annuaire d'instances. En d'autres termes, les variables " "locales et les variables d'instance vivent dans deux différents espaces de " -"noms, et vous devez dire à Python quel espace de noms utiliser." +"nommage, et vous devez dire à Python quel espace de nommage utiliser." #: ../Doc/faq/design.rst:145 msgid "Why can't I use an assignment in an expression?" -msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" +msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" #: ../Doc/faq/design.rst:147 msgid "" @@ -463,11 +462,11 @@ msgstr "" "mêmes fonctionnalités que celles qui étaient déjà disponibles en utilisant " "les fonctions du module string. La plupart de ces nouvelles méthodes ont été " "largement acceptées, mais celle qui semble rendre certains programmeurs " -"inconfortables est : ::" +"inconfortables est ::" #: ../Doc/faq/design.rst:244 msgid "which gives the result::" -msgstr "qui donne le résultat : ::" +msgstr "qui donne le résultat ::" #: ../Doc/faq/design.rst:248 msgid "There are two common arguments against this usage." @@ -498,7 +497,7 @@ msgstr "" "train de dire à une séquence de joindre ses membres avec une constante de " "chaîne\". Malheureusement, vous ne l'êtes pas. Pour quelque raison, il " "semble être bien moins difficile d'avoir :meth:`~str.split` en tant que " -"méthode de chaîne, puisque dans ce cas il est facile de voir que::" +"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" #: ../Doc/faq/design.rst:263 msgid "" @@ -527,7 +526,7 @@ msgstr "" #: ../Doc/faq/design.rst:274 msgid "How fast are exceptions?" -msgstr "À quel point les exceptions sont-elles rapides ?" +msgstr "À quel point les exceptions sont-elles rapides ?" #: ../Doc/faq/design.rst:276 msgid "" @@ -547,7 +546,7 @@ msgid "" msgstr "" "Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la " "clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " -"comme suit : ::" +"comme suit ::" #: ../Doc/faq/design.rst:294 msgid "" @@ -563,7 +562,7 @@ msgstr "" msgid "Why isn't there a switch or case statement in Python?" msgstr "" "Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " -"à *switch / case* en Python ?" +"à *switch / case* en Python ?" #: ../Doc/faq/design.rst:302 msgid "" @@ -585,7 +584,7 @@ msgid "" msgstr "" "Dans les cas où vous devez choisir parmi un très grand nombre de " "possibilités, vous pouvez créer un dictionnaire faisant correspondre des " -"valeurs à des fonctions à appeler. Par exemple : ::" +"valeurs à des fonctions à appeler. Par exemple ::" #: ../Doc/faq/design.rst:321 msgid "" @@ -594,7 +593,7 @@ msgid "" msgstr "" "Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage " "en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " -"avec un nom donné : ::" +"avec un nom donné ::" #: ../Doc/faq/design.rst:333 msgid "" @@ -614,7 +613,7 @@ msgid "" "specific thread implementation?" msgstr "" "Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " -"se baser sur les implémentations spécifique aux OS ?" +"se baser sur les implémentations spécifique aux OS ?" #: ../Doc/faq/design.rst:341 msgid "" @@ -642,7 +641,7 @@ msgstr "" #: ../Doc/faq/design.rst:351 msgid "Why can't lambda expressions contain statements?" msgstr "" -"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" +"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" #: ../Doc/faq/design.rst:353 msgid "" @@ -674,7 +673,7 @@ msgstr "" "fonction lambda au lieu d'une fonction définie localement est que vous " "n'avez nullement besoin d'un nom pour la fonction -- Mais c'est juste une " "variable locale à laquelle est affecté l'objet fonction (qui est exactement " -"le même type d'objet qui donne une expression lambda) !" +"le même type d'objet qui donne une expression lambda) !" #: ../Doc/faq/design.rst:367 msgid "Can Python be compiled to machine code, C or some other language?" @@ -697,7 +696,7 @@ msgstr "" #: ../Doc/faq/design.rst:377 msgid "How does Python manage memory?" -msgstr "Comment Python gère la mémoire ?" +msgstr "Comment Python gère la mémoire ?" #: ../Doc/faq/design.rst:379 msgid "" @@ -768,7 +767,7 @@ msgstr "" #: ../Doc/faq/design.rst:415 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" -"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" +"Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" #: ../Doc/faq/design.rst:417 msgid "" @@ -806,7 +805,7 @@ msgstr "" #: ../Doc/faq/design.rst:432 msgid "Why isn't all memory freed when CPython exits?" msgstr "" -"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" +"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" #: ../Doc/faq/design.rst:434 msgid "" @@ -817,8 +816,8 @@ msgid "" "about these). Python is, however, aggressive about cleaning up memory on " "exit and does try to destroy every single object." msgstr "" -"Les objets référencés depuis les espaces de noms globaux des modules Python " -"ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " +"Les objets référencés depuis les espaces de nommage globaux des modules " +"Python ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " "produire s'il y a des références circulaires. Il y a aussi certaines parties " "de mémoire qui sont alloués par la bibliothèque C qui sont impossibles à " "libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, " @@ -837,7 +836,7 @@ msgstr "" #: ../Doc/faq/design.rst:446 msgid "Why are there separate tuple and list data types?" msgstr "" -"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" +"Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" #: ../Doc/faq/design.rst:448 msgid "" @@ -1014,7 +1013,7 @@ msgstr "" #: ../Doc/faq/design.rst:521 msgid "Some unacceptable solutions that have been proposed:" -msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" +msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" #: ../Doc/faq/design.rst:523 msgid "" @@ -1093,7 +1092,7 @@ msgstr "" "`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " "de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " "(ou une autre structure basée sur le hachage), restent fixes pendant que " -"l'objet est dans le dictionnaire (ou une autre structure). ::" +"l'objet est dans le dictionnaire (ou une autre structure). ::" #: ../Doc/faq/design.rst:572 msgid "" @@ -1340,7 +1339,7 @@ msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si vous essayez de construire un chemin d'accès pour une commande DOS, " -"essayez par exemple l'un de ceux-là ::" +"essayez par exemple l'un de ceux-là ::" #: ../Doc/faq/design.rst:696 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" @@ -1447,7 +1446,7 @@ msgstr "" #: ../Doc/faq/design.rst:759 msgid "versus ::" -msgstr "versus ::" +msgstr "versus ::" #: ../Doc/faq/design.rst:764 msgid "" diff --git a/faq/general.po b/faq/general.po index a2d7e1fd2..70b871155 100644 --- a/faq/general.po +++ b/faq/general.po @@ -270,10 +270,11 @@ msgstr "" "protocoles Internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, script CGI), " "ingénierie logicielle (tests unitaires, enregistrement, analyse de code " "Python), et interfaces pour systèmes d'exploitation (appels système, système " -"de fichiers, *socket* TCP/IP). Regardez la table des matières :ref:`library-" -"index` pour avoir une idée de ce qui est disponible. Une grande variété de " -"greffons tiers existent aussi. Consultez `le sommaire des paquets Python " -"`_ pour trouver les paquets qui pourraient vous intéresser." +"de fichiers, connecteurs TCP/IP). Regardez la table des matières :ref:" +"`library-index` pour avoir une idée de ce qui est disponible. Une grande " +"variété de greffons tiers existent aussi. Consultez `le sommaire des paquets " +"Python `_ pour trouver les paquets qui pourraient vous " +"intéresser." #: ../Doc/faq/general.rst:125 msgid "How does the Python version numbering scheme work?" @@ -411,7 +412,7 @@ msgid "" "source for the documentation is part of the Python source distribution." msgstr "" "La documentation est écrite au format *reStructuredText* et traitée par " -"l'outil de documentation Sphinx `__. La source du " +"l'outil de documentation `Sphinx `__. La source du " "*reStructuredText* pour la documentation constitue une partie des sources de " "Python." @@ -769,12 +770,12 @@ msgid "" "for a PEP titled \"Python X.Y Release Schedule\", where X.Y is a version " "that hasn't been publicly released yet." msgstr "" -"Regardez https://www.python.org/dev/peps/ pour Python Enhancement Proposals " -"(PEPs). PEPs sont des documents techniques qui décrivent une nouvelle " -"fonctionnalité qui a été suggérée pour Python, en fournissant une " -"spécification technique concise et logique. Recherchez une PEP intitulée " -"\"Python X.Y Release Schedule\", où X.Y est la version qui n'a pas encore " -"été publiée." +"Regardez les propositions d'amélioration de Python (« *Python Enhancement " +"Proposals* », ou *PEP*) sur https://www.python.org/dev/peps/. Les PEP sont " +"des documents techniques qui décrivent une nouvelle fonctionnalité qui a été " +"suggérée pour Python, en fournissant une spécification technique concise et " +"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X." +"Y est la version qui n'a pas encore été publiée." #: ../Doc/faq/general.rst:361 msgid "" diff --git a/faq/gui.po b/faq/gui.po index 7c398c894..a8483eed0 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -31,7 +31,9 @@ msgstr "Questions générales sur l'interface graphique" #: ../Doc/faq/gui.rst:18 msgid "What platform-independent GUI toolkits exist for Python?" -msgstr "Quelles boites à outils multi-plateforme existe-t-il sur Python ?" +msgstr "" +"Quelles bibliothèques d'interfaces graphiques multi-plateformes existent en " +"Python ?" #: ../Doc/faq/gui.rst:20 msgid "" @@ -40,12 +42,12 @@ msgid "" "known to be Python 3-compatible." msgstr "" "Selon les plateformes que vous comptez utiliser, il en existe plusieurs. " -"Certaines ne sont cependant pas encore disponible en Python 3. A minima, " -"`Tkinter`_ et `Qt`_ sont connus pour être compatible avec Python 3." +"Certaines ne sont cependant pas encore disponibles en Python 3. A minima, " +"`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3." #: ../Doc/faq/gui.rst:27 msgid "Tkinter" -msgstr "Tkinter" +msgstr "*Tkinter*" #: ../Doc/faq/gui.rst:29 msgid "" diff --git a/faq/installed.po b/faq/installed.po index 67d6bbbbb..6291f050f 100644 --- a/faq/installed.po +++ b/faq/installed.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/faq/installed.rst:3 msgid "\"Why is Python Installed on my Computer?\" FAQ" -msgstr "\"Pourquoi Python est installé sur mon ordinateur ?\" FAQ" +msgstr "FAQ \"Pourquoi Python est installé sur mon ordinateur ?\"" #: ../Doc/faq/installed.rst:6 msgid "What is Python?" @@ -80,7 +80,7 @@ msgstr "" "Une application tierce installée sur votre machine écrite en Python " "installera Python. Il existe de nombreuses applications de ce type, allant " "de programme avec interface graphique, jusqu'aux scripts d'administration, " -"en passant par les serveurs ." +"en passant par les serveurs." #: ../Doc/faq/installed.rst:29 msgid "" @@ -100,7 +100,7 @@ msgid "" "installation." msgstr "" "Python est installé par défaut et à l'installation par de nombreux systèmes " -"Unix, comme Mac OS X et certaines distributions Linux." +"Unix, comme Mac OS X et certaines distributions Linux." #: ../Doc/faq/installed.rst:38 msgid "Can I delete Python?" @@ -108,7 +108,7 @@ msgstr "Puis-je supprimer Python ?" #: ../Doc/faq/installed.rst:40 msgid "That depends on where Python came from." -msgstr "Cela dépend de l'origine de Python ." +msgstr "Cela dépend de l'origine de Python." #: ../Doc/faq/installed.rst:42 msgid "" diff --git a/faq/library.po b/faq/library.po index 6579e8302..536fd5b92 100644 --- a/faq/library.po +++ b/faq/library.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" -msgstr "FAQ sur la bibliothèque et les extension" +msgstr "FAQ sur la bibliothèque et les extensions" #: ../Doc/faq/library.rst:8 msgid "Contents" @@ -32,8 +32,7 @@ msgstr "Questions générales sur la bibliothèque" #: ../Doc/faq/library.rst:15 msgid "How do I find a module or application to perform task X?" msgstr "" -"Comment puis-je trouver un module ou une application pour exécuter la tâche " -"X?" +"Comment trouver un module ou une application pour effectuer la tâche X ?" #: ../Doc/faq/library.rst:17 msgid "" @@ -61,7 +60,8 @@ msgstr "" #: ../Doc/faq/library.rst:28 msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" msgstr "" -"Où se situe le fichier source *math.py* (*socket.py*, *regex.py*, etc.) ?" +"Où sont stockés les fichiers sources *math.py*, *socket.py*, *regex.py*, " +"etc ?" #: ../Doc/faq/library.rst:30 msgid "" @@ -80,18 +80,18 @@ msgstr "" #: ../Doc/faq/library.rst:35 msgid "There are (at least) three kinds of modules in Python:" -msgstr "Il y a (au moins) trois types de modules dans Python" +msgstr "Il y a (au moins) trois types de modules dans Python :" #: ../Doc/faq/library.rst:37 msgid "modules written in Python (.py);" -msgstr "modules écrits en Python (*.py*) ;" +msgstr "les modules écrits en Python (*.py*) ;" #: ../Doc/faq/library.rst:38 msgid "" "modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" msgstr "" -"modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *.sl*, " -"*.etc*) ;" +"les modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *." +"sl*, *etc.*) ;" #: ../Doc/faq/library.rst:39 msgid "" @@ -931,7 +931,7 @@ msgstr "" #: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" -msgstr "Comment reproduire un envoi de formulaire CGI (METHOD=POST) ?" +msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" #: ../Doc/faq/library.rst:679 msgid "" diff --git a/faq/programming.po b/faq/programming.po index 98588c27b..0a81eda4e 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -34,7 +34,7 @@ msgid "" "Is there a source code level debugger with breakpoints, single-stepping, " "etc.?" msgstr "" -"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" "à-pas, etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:60 @@ -48,10 +48,10 @@ msgid "" "Library Reference Manual `. You can also write your own debugger by " "using the code for pdb as an example." msgstr "" -"Le module pdb est un débogueur console simple, mais parfaitement adapté à " -"Python. Il fait partie de la bibliothèque standard de Python, sa " +"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté " +"à Python. Il fait partie de la bibliothèque standard de Python, sa " "documentation se trouve dans le :mod:`manuel de référence `. Vous " -"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur." +"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." #: ../Doc/faq/programming.rst:24 msgid "" @@ -60,8 +60,8 @@ msgid "" "graphical debugger." msgstr "" "L'environnement de développement interactif IDLE, qui est fourni avec la " -"distribution standard de Python (normalement disponible dans Tools/scripts/" -"idle) contient un débogueur graphique." +"distribution standard de Python (normalement disponible dans ``Tools/scripts/" +"idle``) contient un débogueur graphique." #: ../Doc/faq/programming.rst:28 msgid "" @@ -72,13 +72,14 @@ msgid "" ">`__ project and as a part of the ActivePython distribution (see https://www." "activestate.com/activepython\\ )." msgstr "" -"PythonWin est un environnement de développement intégré (EDI) Python qui " -"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore " -"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme " -"la possibilité de déboguer des programmes développés sans PythonWin. " -"PythonWin est disponible dans le projet `Extensions Python pour Windows " -"`__ et fait partie de la " -"distribution ActivePython (voir https://www.activestate.com/activepython\\ )." +"*PythonWin* est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " +"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " +"comme la possibilité de déboguer des programmes développés sans " +"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python " +"pour Windows `__ et fait partie " +"de la distribution ActivePython (voir https://www.activestate.com/" +"activepython\\ )." #: ../Doc/faq/programming.rst:35 msgid "" @@ -89,8 +90,8 @@ msgid "" "an advanced debugger, integrated help, and Zope support." msgstr "" "`Boa Constructor `_ est un EDI et " -"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " -"création et la manipulation de fenêtres, un inspecteur d'objets, de " +"un constructeur d'interface homme-machine basé sur *wxWidgets*. Il propose " +"la création et la manipulation de fenêtres, un inspecteur d'objets, de " "nombreuses façons de visualiser des sources comme un navigateur d'objets, " "les hiérarchies d'héritage, la documentation html générée par les " "docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " @@ -139,7 +140,7 @@ msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:58 msgid "Is there a tool to help find bugs or perform static analysis?" msgstr "" -"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " +"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " "statique de code ?" #: ../Doc/faq/programming.rst:62 @@ -148,9 +149,9 @@ msgid "" "and warns about code complexity and style. You can get PyChecker from " "http://pychecker.sourceforge.net/." msgstr "" -"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " -"source Python et émet des avertissements relatifs à la complexité et au " -"style du code. PyChecker est disponible sur http://pychecker.sourceforge." +"*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " +"code source Python et émet des avertissements relatifs à la complexité et au " +"style du code. *PyChecker* est disponible sur http://pychecker.sourceforge." "net/." #: ../Doc/faq/programming.rst:66 @@ -249,7 +250,7 @@ msgstr "" #: ../Doc/faq/programming.rst:107 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" -"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"Existe-t-il des normes de développement ou un guide de style pour écrire des " "programmes Python ?" #: ../Doc/faq/programming.rst:109 @@ -395,7 +396,7 @@ msgid "" msgstr "" "Le code précédent crée une liste de 5 expressions lambda qui calculent " "chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" #: ../Doc/faq/programming.rst:222 msgid "" @@ -410,7 +411,7 @@ msgstr "" "l'appel de l'expression lambda – et non au moment où cette expression est " "définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " "renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en constatant que les résultats sont modifiés :" +"valeur de ``x`` et en constatant que les résultats sont modifiés ::" #: ../Doc/faq/programming.rst:232 msgid "" @@ -419,7 +420,7 @@ msgid "" msgstr "" "Pour éviter ce phénomène, les valeurs doivent être stockées dans des " "variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` :" +"plus sur la variable globale ``x`` ::" #: ../Doc/faq/programming.rst:239 msgid "" @@ -434,7 +435,7 @@ msgstr "" "``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " "``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " "troisième et ainsi de suite. Chaque expression lambda renvoie donc le " -"résultat correct :" +"résultat correct ::" #: ../Doc/faq/programming.rst:250 msgid "" @@ -466,15 +467,15 @@ msgstr "" #: ../Doc/faq/programming.rst:263 msgid "config.py::" -msgstr "*config.py* ::" +msgstr "*config.py* ::" #: ../Doc/faq/programming.rst:267 msgid "mod.py::" -msgstr "*mod.py* ::" +msgstr "*mod.py* ::" #: ../Doc/faq/programming.rst:272 msgid "main.py::" -msgstr "*main.py* ::" +msgstr "*main.py* ::" #: ../Doc/faq/programming.rst:278 msgid "" @@ -552,7 +553,7 @@ msgid "" "module is busy importing the 2nd." msgstr "" "Il n'y a aucun souci à faire des importations circulaires tant que les deux " -"modules utilisent la forme \"import \" . Ça ne pose problème que si " +"modules utilisent la forme ``import ``. Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " "module import name\"*) et que l'importation est dans l'espace de nommage du " "fichier. Les noms du premier module ne sont en effet pas encore disponibles " @@ -621,7 +622,7 @@ msgid "" "function::" msgstr "" "C'est un problème que rencontrent souvent les programmeurs débutants. " -"Examinons la fonction suivante ::" +"Examinons la fonction suivante ::" #: ../Doc/faq/programming.rst:342 msgid "" @@ -641,7 +642,7 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " "objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " "défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " "définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " @@ -669,11 +670,11 @@ msgstr "" "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " "valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " "est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " -"échéant. Par exemple, il ne faut pas écrire ::" +"échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:363 msgid "but::" -msgstr "mais plutôt ::" +msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:369 msgid "" @@ -687,7 +688,7 @@ msgstr "" "paramètres et la valeur de retour de chacun des appels d'une fonction " "coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " "appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" +"s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:384 msgid "" @@ -714,7 +715,7 @@ msgstr "" "dans la liste des paramètres de la fonction ; ceci donne les arguments " "positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " "de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" +"utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:410 msgid "What is the difference between arguments and parameters?" @@ -732,7 +733,7 @@ msgstr "" "définition de fonction, alors que les :term:`arguments ` sont les " "valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" "ci. Les paramètres définissent les types des arguments qu'une fonction " -"accepte. Ainsi, avec la définition de fonction suivante ::" +"accepte. Ainsi, avec la définition de fonction suivante ::" #: ../Doc/faq/programming.rst:420 msgid "" @@ -740,7 +741,7 @@ msgid "" "``func``, for example::" msgstr "" "*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" +"``func`` avec, par exemple ::" #: ../Doc/faq/programming.rst:425 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." @@ -752,7 +753,7 @@ msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" #: ../Doc/faq/programming.rst:431 msgid "If you wrote code like::" -msgstr "Si vous avez écrit du code comme : ::" +msgstr "Si vous avez écrit du code comme ::" #: ../Doc/faq/programming.rst:441 msgid "" @@ -797,7 +798,7 @@ msgstr "" #: ../Doc/faq/programming.rst:455 msgid "If we instead assign an immutable object to ``x``::" -msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:465 msgid "" @@ -902,14 +903,14 @@ msgid "" "You can achieve the desired effect in a number of ways." msgstr "" "En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation crée des références à des objets, il n'y pas de lien " +"qu'une affectation crée des références à des objets, il n'y a pas de lien " "entre un argument dans l'appel de la fonction et sa définition, et donc pas " -"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"de passage par référence en soi. Il y a cependant plusieurs façons d'en " "émuler un." #: ../Doc/faq/programming.rst:511 msgid "By returning a tuple of the results::" -msgstr "En renvoyant un n-uplet de résultats ::" +msgstr "En renvoyant un n-uplet de résultats ::" #: ../Doc/faq/programming.rst:522 msgid "This is almost always the clearest solution." @@ -919,8 +920,9 @@ msgstr "C'est presque toujours la meilleure solution." msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" -"En utilisant des variables globales. Ce qui n'est pas *thread-safe*, et " -"n'est donc pas recommandé." +"En utilisant des variables globales. Cette approche ne fonctionne pas dans " +"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " +"et n'est donc pas recommandée." #: ../Doc/faq/programming.rst:526 msgid "By passing a mutable (changeable in-place) object::" @@ -928,7 +930,7 @@ msgstr "En passant un objet muable (modifiable sur place) ::" #: ../Doc/faq/programming.rst:536 msgid "By passing in a dictionary that gets mutated::" -msgstr "En passant un dictionnaire, qui sera modifié : ::" +msgstr "En passant un dictionnaire, qui sera modifié ::" #: ../Doc/faq/programming.rst:546 msgid "Or bundle up values in a class instance::" @@ -936,14 +938,12 @@ msgstr "Ou regrouper les valeurs dans une instance de classe ::" #: ../Doc/faq/programming.rst:562 msgid "There's almost never a good reason to get this complicated." -msgstr "" -"Il n'y a pratiquement jamais de bonne raison de faire quelque chose d'aussi " -"compliqué." +msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." #: ../Doc/faq/programming.rst:564 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" -"Votre meilleure option est de renvoyer un *tuple* contenant les multiples " +"La meilleure option reste de renvoyer un n-uplet contenant les différents " "résultats." #: ../Doc/faq/programming.rst:568 @@ -957,18 +957,18 @@ msgid "" "returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " "scopes::" msgstr "" -"Vous avez deux choix : vous pouvez utiliser les portées imbriquées ou vous " -"pouvez utiliser des objets appelables. Par exemple, supposons que vous " -"vouliez définir ``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui " -"calcule la valeur ``a*x+b``. En utilisant les portées imbriquées : ::" +"Deux possibilités : on peut utiliser des portées imbriquées ou bien des " +"objets appelables. Par exemple, supposons que l'on souhaite définir " +"``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " +"``a*x+b``. En utilisant les portées imbriquées ::" #: ../Doc/faq/programming.rst:579 msgid "Or using a callable object::" -msgstr "Ou en utilisant un objet appelable : ::" +msgstr "Ou en utilisant un objet appelable ::" #: ../Doc/faq/programming.rst:589 msgid "In both cases, ::" -msgstr "dans les deux cas, ::" +msgstr "Dans les deux cas ::" #: ../Doc/faq/programming.rst:593 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." @@ -982,8 +982,8 @@ msgid "" msgstr "" "L'approche par objet appelable a le désavantage d'être légèrement plus lente " "et de produire un code légèrement plus long. Cependant, il faut noter qu'une " -"collection d'objet appelables peuvent partager leur signatures par " -"héritage : ::" +"collection d'objet appelables peuvent partager leurs signatures par " +"héritage ::" #: ../Doc/faq/programming.rst:604 msgid "Object can encapsulate state for several methods::" @@ -999,24 +999,23 @@ msgstr "" #: ../Doc/faq/programming.rst:627 msgid "How do I copy an object in Python?" -msgstr "Comment copier un objet en Python?" +msgstr "Comment copier un objet en Python ?" #: ../Doc/faq/programming.rst:629 msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy` pour le cas " -"général. Tout les objets ne peuvent pas être copiés, mais la plupart le " -"peuvent." +"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " +"objets ne peuvent pas être copiés, mais la plupart le peuvent." #: ../Doc/faq/programming.rst:632 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" msgstr "" -"Certains objets peuvent être copiés plus facilement. Les Dictionnaires ont " -"une méthode :meth:`~dict.copy` ::" +"Certains objets peuvent être copiés plus facilement que d'autres. Les " +"dictionnaires ont une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:637 msgid "Sequences can be copied by slicing::" @@ -1024,7 +1023,7 @@ msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:643 msgid "How can I find the methods or attributes of an object?" -msgstr "Comment puis-je trouver les méthodes ou les attribues d'un objet?" +msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" #: ../Doc/faq/programming.rst:645 msgid "" @@ -1038,7 +1037,7 @@ msgstr "" #: ../Doc/faq/programming.rst:651 msgid "How can my code discover the name of an object?" -msgstr "Comment mon code peut il découvrir le nom d'un objet?" +msgstr "Comment un code peut-il obtenir le nom d'un objet ?" #: ../Doc/faq/programming.rst:653 msgid "" @@ -1060,10 +1059,10 @@ msgid "" "instance of class A. However, it is impossible to say whether the " "instance's name is a or b, since both names are bound to the same value." msgstr "" -"Le fait que la classe ait un nom est discutable, bien qu'elles soit liée à " -"deux noms, et qu'elle soit appelée via le nom B, l'instance crée déclare " -"tout de même être une instance de la classe A. De même Il est impossible de " -"dire si le nom de l'instance est a ou b, les deux noms sont attachés à la " +"Affirmer que la classe a un nom est discutable. Bien qu'elle soit liée à " +"deux noms, et qu'elle soit appelée via le nom B, l'instance créée déclare " +"tout de même être une instance de la classe A. De même, il est impossible de " +"dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " "même valeur." #: ../Doc/faq/programming.rst:674 @@ -1073,10 +1072,10 @@ msgid "" "introspective programs, this is usually an indication that a change of " "approach might be beneficial." msgstr "" -"De façon général, il ne devrait pas être nécessaire pour votre application " -"de \"connaître le nom\" d'une valeur particulière. À moins que vous soyez " -"délibérément en train d'écrire un programme introspectif, c'est souvent une " -"indication qu'un changement d'approche pourrait être bénéfique." +"De façon générale, une application ne devrait pas avoir besoin de « " +"connaître le nom » d'une valeur particulière. À moins d'être délibérément en " +"train d'écrire un programme introspectif, c'est souvent l'indication qu'un " +"changement d'approche serait bénéfique." #: ../Doc/faq/programming.rst:679 msgid "" @@ -1084,7 +1083,7 @@ msgid "" "to this question:" msgstr "" "Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " -"analogie pour répondre à cette question:" +"analogie pour répondre à cette question :" #: ../Doc/faq/programming.rst:682 msgid "" @@ -1093,18 +1092,18 @@ msgid "" "so the only way to find out what it's called is to ask all your neighbours " "(namespaces) if it's their cat (object)..." msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte : Le " -"chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu " -"-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (espaces de noms) si c'est leur chat (objet)…." +"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " +"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " +"­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" #: ../Doc/faq/programming.rst:687 msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connus sous plusieurs " -"noms différents, ou pas de nom du tout!" +"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " +"noms, ou s'il n'a pas de nom du tout !" #: ../Doc/faq/programming.rst:692 msgid "What's up with the comma operator's precedence?" @@ -1113,7 +1112,7 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:694 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" -"La virgule n'est pas un opérateur en Python. Observez la session suivante ::" +"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" #: ../Doc/faq/programming.rst:699 msgid "" @@ -1121,7 +1120,7 @@ msgid "" "above is evaluated as if you had entered::" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " -"expression, l'expression ci dessus, est évaluée de la même façon que si vous " +"expressions, l'expression ci-dessus est évaluée de la même façon que si vous " "aviez écrit ::" #: ../Doc/faq/programming.rst:704 @@ -1134,9 +1133,9 @@ msgid "" "They are not truly operators but syntactic delimiters in assignment " "statements." msgstr "" -"Ceci est vrai pour tous les opérateurs d'assignations (``=``, ``+=`` etc). " -"Ce ne sont pas vraiment des opérateurs mais des délimiteurs syntaxiques dans " -"les instructions d'assignation." +"Ceci est vrai pour tous les opérateurs d'affectation (``=``, ``+=`` etc). Ce " +"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " +"dans les instructions d'affectation." #: ../Doc/faq/programming.rst:713 msgid "Is there an equivalent of C's \"?:\" ternary operator?" @@ -1144,7 +1143,7 @@ msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?" #: ../Doc/faq/programming.rst:715 msgid "Yes, there is. The syntax is as follows::" -msgstr "Oui, il y en a un. Sa syntaxe est la suivante : ::" +msgstr "Oui. Sa syntaxe est la suivante ::" #: ../Doc/faq/programming.rst:722 msgid "" @@ -1152,7 +1151,7 @@ msgid "" "logical operators::" msgstr "" "Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" +"d'utiliser les opérateurs de logique ::" #: ../Doc/faq/programming.rst:727 msgid "" @@ -1180,7 +1179,7 @@ msgstr "" #: ../Doc/faq/programming.rst:762 msgid "Don't try this at home, kids!" -msgstr "Les enfants, ne faîtes pas ça chez vous !" +msgstr "Les enfants, ne faites pas ça chez vous !" #: ../Doc/faq/programming.rst:766 msgid "Numbers and strings" @@ -1188,7 +1187,7 @@ msgstr "Nombres et chaînes de caractères" #: ../Doc/faq/programming.rst:769 msgid "How do I specify hexadecimal and octal integers?" -msgstr "Comment puis-je écrire des entiers hexadécimaux ou octaux ?" +msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" #: ../Doc/faq/programming.rst:771 msgid "" @@ -1197,8 +1196,8 @@ msgid "" "octal value \"10\" (8 in decimal), type::" msgstr "" "Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " -"puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale " -"\"10\" (8 en décimal) à la variable \"a\", tapez ::" +"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " +"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:779 msgid "" @@ -1206,9 +1205,9 @@ msgid "" "zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " "specified in lower or uppercase. For example, in the Python interpreter::" msgstr "" -"L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal " +"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " -"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " +"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " "l'interpréteur Python ::" #: ../Doc/faq/programming.rst:792 @@ -1220,8 +1219,8 @@ msgid "" "It's primarily driven by the desire that ``i % j`` have the same sign as " "``j``. If you want that, and also want::" msgstr "" -"Cela est principalement due à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez cela, vous voulez aussi : ::" +"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " +"j. Si vous voulez en plus que ::" #: ../Doc/faq/programming.rst:799 msgid "" @@ -1229,8 +1228,8 @@ msgid "" "identity to hold, and then compilers that truncate ``i // j`` need to make " "``i % j`` have the same sign as ``i``." msgstr "" -"Alors la division entière doit renvoyer l'entier inférieur. Le C demande " -"aussi à ce que cette égalité soit vérifiée, et donc les compilateur qui " +"alors la division entière doit renvoyer l'entier inférieur. Le C impose " +"également que cette égalité soit vérifiée, et donc les compilateurs qui " "tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." #: ../Doc/faq/programming.rst:803 @@ -1241,15 +1240,15 @@ msgid "" "say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " "bug waiting to bite." msgstr "" -"Il y a peu de cas d'utilisation réels pour ``i%j`` quand ``j`` est négatif. " -"Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement tous, il " -"est plus utile que ``i % j`` soit ``>=0``. Si l'horloge dit *10h* " -"maintenant, que disait-elle il y a 200 heures? ``-190%12 == 2`` est utile; " -"``-192 % 12 == -10`` est un bug qui attends pour mordre." +"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " +"négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " +"tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " +"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " +"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." #: ../Doc/faq/programming.rst:811 msgid "How do I convert a string to a number?" -msgstr "Comment puis-je convertir une chaine de caractère en nombre?" +msgstr "Comment convertir une chaîne de caractères en nombre ?" #: ../Doc/faq/programming.rst:813 msgid "" @@ -1257,9 +1256,9 @@ msgid "" "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " "e.g. ``float('144') == 144.0``." msgstr "" -"Pour les entiers, utilisez la fonction native :func:`int` de type " -"constructeur, par exemple ``int('144') == 144``. De façon similaire, :func:" -"`float` convertit en valeur flottante, par exemple ``float('144') == 144.0``." +"Pour les entiers, utilisez le constructeur natif de :func:`int`, par exemple " +"``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " +"flottante, par exemple ``float('144') == 144.0``." #: ../Doc/faq/programming.rst:817 msgid "" @@ -1270,13 +1269,12 @@ msgid "" "interpreted using Python's rules: a leading '0o' indicates octal, and '0x' " "indicates a hex number." msgstr "" -"Par défaut, ces fonctions interprètent les nombre en tant que décimaux, de " -"telles façons que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" -"`ValueError`. ``int(string, base)`` prends la base depuis laquelle il faut " -"convertir dans le second argument, optionnel, donc ``int('0x144', 16) == " -"324``. Si la base donnée est 0, le nombre est interprété selon les règles " -"Python: un préfixe ``0o`` indique de l'octal, et ``0x`` indique de " -"l'hexadécimal." +"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " +"telle façon que ``int('0144') == 144`` et ``int('0x144')`` lève une :exc:" +"`ValueError`. Le second argument (optionnel) de ``int(string, base)`` est la " +"base dans laquelle convertir, donc ``int('0x144', 16) == 324``. Si la base " +"donnée est 0, le nombre est interprété selon les règles Python : un préfixe " +"``0o`` indique de l'octal et ``0x`` indique de l'hexadécimal." #: ../Doc/faq/programming.rst:823 msgid "" @@ -1287,13 +1285,12 @@ msgid "" "``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " "directory." msgstr "" -"N'utilisez pas la fonction native :func:`eval` si tout ce que vous avez " -"besoin est de convertir des chaines en nombres. :func:`eval` sera " -"significativement plus lent et implique des risque de sécurité: quelqu'un " -"pourrait vous envoyez une expression Python pouvant avoir des effets de bord " -"indésirables. Par exemple, quelqu'un pourrait passer ``__import__('os')." -"system(\"rm -rf $HOME\")`` ce qui aurait pour effet d'effacer votre " -"répertoire personnel." +"N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " +"caractères en nombres. :func:`eval` est beaucoup plus lente et pose des " +"problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " +"Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " +"pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " +"effacerait votre répertoire personnel." #: ../Doc/faq/programming.rst:830 msgid "" @@ -1301,14 +1298,14 @@ msgid "" "expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " "does not allow leading '0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " -"expression Python, ainsi ``eval('09')`` produit une erreur de syntaxe par ce " -"que Python ne permet pas les '0' en tête d'un nombre décimal (à l'exception " -"du nombre '0')." +":func:`eval` a aussi pour effet d'interpréter les nombres comme des " +"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " +"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " +"l'exception du nombre '0')." #: ../Doc/faq/programming.rst:836 msgid "How do I convert a number to a string?" -msgstr "Comment convertir un nombre en chaine de caractère?" +msgstr "Comment convertir un nombre en chaîne de caractères ?" #: ../Doc/faq/programming.rst:838 msgid "" @@ -1329,7 +1326,7 @@ msgstr "" #: ../Doc/faq/programming.rst:847 msgid "How do I modify a string in place?" -msgstr "Comment modifier une chaine de caractère \"en place\"?" +msgstr "Comment modifier une chaîne de caractères « sur place » ?" #: ../Doc/faq/programming.rst:849 msgid "" @@ -1343,17 +1340,17 @@ msgstr "" "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " "capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " -"un objet :class:`io.StringIO` ou le module :mod:`array` ::" +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:879 msgid "How do I use strings to call functions/methods?" msgstr "" -"Comment utiliser des chaines de caractères pour appeler des fonctions/" -"méthodes?" +"Comment utiliser des chaînes de caractères pour appeler des fonctions/" +"méthodes ?" #: ../Doc/faq/programming.rst:881 msgid "There are various techniques." -msgstr "Il y a différentes techniques." +msgstr "Il y a plusieurs façons de faire." #: ../Doc/faq/programming.rst:883 msgid "" @@ -1363,9 +1360,9 @@ msgid "" "a case construct::" msgstr "" "La meilleure est d'utiliser un dictionnaire qui fait correspondre les " -"chaines de caractères à des fonctions. Le principal avantage de cette " -"technique est que les chaines n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la principale façon d'imiter la construction \"case" +"chaînes de caractères à des fonctions. Le principal avantage de cette " +"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " +"fonctions. C'est aussi la façon principale d'imiter la construction \"case" "\" ::" #: ../Doc/faq/programming.rst:898 @@ -1377,19 +1374,20 @@ msgid "" "Note that :func:`getattr` works on any object, including classes, class " "instances, modules, and so on." msgstr "" -"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclue les " +"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " "classes, les instances de classes, les modules et ainsi de suite." #: ../Doc/faq/programming.rst:906 msgid "This is used in several places in the standard library, like this::" msgstr "" -"Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de " +"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " "cette façon ::" #: ../Doc/faq/programming.rst:919 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " +"fonction ::" #: ../Doc/faq/programming.rst:932 msgid "" @@ -1397,10 +1395,10 @@ msgid "" "control over the contents of the string, someone could pass a string that " "resulted in an arbitrary function being executed." msgstr "" -"Note: En utilisant :func:`eval` est lent est dangereux. Si vous n'avez pas " -"un contrôle absolu sur le contenu de la chaine de caractère, quelqu'un peut " -"passer une chaine de caractère pouvant résulter en l'exécution de code " -"arbitraire." +"Note : utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas un " +"contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " +"pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " +"fonction." #: ../Doc/faq/programming.rst:937 msgid "" @@ -1408,7 +1406,7 @@ msgid "" "strings?" msgstr "" "Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " -"les caractères de fin de ligne d'une chaine de caractère ?" +"les caractères de fin de ligne d'une chaîne de caractères ?" #: ../Doc/faq/programming.rst:939 msgid "" @@ -1418,19 +1416,19 @@ msgid "" "empty lines at the end, the line terminators for all the blank lines will be " "removed::" msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toute occurrence " -"de tout marqueur de fin de ligne, à la fin d'une chaîne de caractère ``S``, " -"sans en retirer aucun espace. Si la chaîne ``S`` représente plus d'une " -"ligne, avec plusieurs lignes vides, les marqueurs de fin de de lignes de " -"chaque lignes vides seront retirés : ::" +"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " +"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " +"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " +"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " +"fin de ligne de chaque ligne vide seront retirés ::" #: ../Doc/faq/programming.rst:951 msgid "" "Since this is typically only desired when reading text one line at a time, " "using ``S.rstrip()`` this way works well." msgstr "" -"Du fait que ce soit principalement utile en lisant un texte ligne à ligne, " -"utiliser ``S.rstrip()`` devrait marcher correctement." +"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S." +"rstrip()`` de cette manière fonctionne correctement." #: ../Doc/faq/programming.rst:956 msgid "Is there a scanf() or sscanf() equivalent?" @@ -1449,20 +1447,20 @@ msgid "" "parameter which is useful if the line uses something other than whitespace " "as a separator." msgstr "" -"Pour une simple analyse de chaine, l'approche la plus simple est " +"Pour une simple analyse de chaîne, l'approche la plus simple est " "généralement de découper la ligne en mots délimités par des espaces, en " -"utilisant la méthode :meth:`~str.split` des objets chaine de caractères, et " -"ensuite de convertir les chaines de décimales en valeurs numériques en " -"utilisant la fonction :func:`int` ou :func:`float`, ``split()`` supporte un " +"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " +"ensuite de convertir les chaînes de décimaux en valeurs numériques en " +"utilisant la fonction :func:`int` ou :func:`float`. ``split()`` possède un " "paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " -"que des espaces comme séparateur." +"que des espaces comme séparateurs." #: ../Doc/faq/programming.rst:966 msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." msgstr "" -"Pour les analyses plus compliquées, les expressions rationnelles sont plus " +"Pour des analyses plus compliquées, les expressions rationnelles sont plus " "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." @@ -1473,7 +1471,7 @@ msgstr "" #: ../Doc/faq/programming.rst:973 msgid "See the :ref:`unicode-howto`." -msgstr "Regardez :ref:`unicode-howto`." +msgstr "Voir :ref:`unicode-howto`." #: ../Doc/faq/programming.rst:977 msgid "Performance" @@ -1591,8 +1589,8 @@ msgid "" "detrimental to readability)." msgstr "" "Les abstractions ont tendance à créer des indirections et obligent " -"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " -"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " +"quantité de travail effectif, le programme sera ralenti. Il faut toujours " "éviter trop d'indirections, en particulier sous la forme de fonctions ou " "méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." @@ -1651,7 +1649,7 @@ msgid "" msgstr "" "Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " "recommandée consiste à toutes les mettre dans une liste et appeler la " -"méthode :meth:`str.join` à la fin ::" +"méthode :meth:`str.join` à la fin ::" #: ../Doc/faq/programming.rst:1053 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" @@ -1667,23 +1665,24 @@ msgid "" msgstr "" "Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " "recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " -"concaténation en-place (l'opérateur ``+=``) ::" +"concaténation en-place (l'opérateur ``+=``) ::" #: ../Doc/faq/programming.rst:1064 msgid "Sequences (Tuples/Lists)" -msgstr "Sequences (Tuples/Lists)" +msgstr "Séquences (n-uplets / listes)" #: ../Doc/faq/programming.rst:1067 msgid "How do I convert between tuples and lists?" -msgstr "Comment convertir les listes en tuples et inversement?" +msgstr "Comment convertir les listes en n-uplets et inversement ?" #: ../Doc/faq/programming.rst:1069 msgid "" "The type constructor ``tuple(seq)`` converts any sequence (actually, any " "iterable) into a tuple with the same items in the same order." msgstr "" -"Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait " -"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…." +"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus " +"précisément, tout itérable) en un n-uplet avec les mêmes éléments dans le " +"même ordre." #: ../Doc/faq/programming.rst:1072 msgid "" @@ -1692,11 +1691,11 @@ msgid "" "copy but returns the same object, so it is cheap to call :func:`tuple` when " "you aren't sure that an object is already a tuple." msgstr "" -"Par exemple ``tuple([1, 2, 3])`` renvoi ``(1, 2, 3)`` et ``tuple('abc')`` " -"renvoi ``('a', 'b', 'c')``. Si l'argument est un tuple, cela ne crée pas une " -"copie, mais renvoi le même objet, ce qui fait de :func:`tuple` un fonction " -"économique à appeler quand vous ne savez pas si votre objet est déjà un " -"tuple." +"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` " +"renvoie ``('a', 'b', 'c')``. Si l'argument est un n-uplet, cela ne crée pas " +"de copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " +"fonction économique à appeler quand vous ne savez pas si votre objet est " +"déjà un n-uplet." #: ../Doc/faq/programming.rst:1077 msgid "" @@ -1713,7 +1712,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1084 msgid "What's a negative index?" -msgstr "Qu'est-ce qu'un indexe négatif?" +msgstr "Qu'est-ce qu'un index négatif ?" #: ../Doc/faq/programming.rst:1086 msgid "" @@ -1724,10 +1723,10 @@ msgid "" "``seq[len(seq)-n]``." msgstr "" "Les séquences Python sont indexées avec des nombres positifs aussi bien que " -"négatifs. Pour les nombres positifs, 0 est le premier index, 1 est le " -"second, et ainsi de suite. Pour les indexes négatifs, ``-1`` est le dernier " -"index, ``-2`` est le pénultième (avant dernier), et ainsi de suite. On peut " -"aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." +"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " +"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " +"dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " +"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." #: ../Doc/faq/programming.rst:1091 msgid "" @@ -1735,20 +1734,20 @@ msgid "" "all of the string except for its last character, which is useful for " "removing the trailing newline from a string." msgstr "" -"Utiliser des indexes négatifs peut être très pratique. Par exemple " -"``S[:-1]`` indique la chaine entière a l'exception du dernier caractère, ce " -"qui est pratique pour retirer un caractère de fin de ligne en fin d'une " -"chaine." +"Utiliser des indices négatifs peut être très pratique. Par exemple " +"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " +"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " +"la fin d'une chaîne." #: ../Doc/faq/programming.rst:1097 msgid "How do I iterate over a sequence in reverse order?" -msgstr "Comment itérer à rebours sur une séquence?" +msgstr "Comment itérer à rebours sur une séquence ?" #: ../Doc/faq/programming.rst:1099 msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" -"Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python " +"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " "2.4 ::" #: ../Doc/faq/programming.rst:1104 @@ -1756,8 +1755,8 @@ msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." msgstr "" -"Cela ne modifiera pas votre séquence initiale, mais construira à la place " -"une copie en ordre inverse pour itérer dessus." +"Cela ne modifie pas la séquence initiale, mais construit à la place une " +"copie en ordre inverse pour itérer dessus." #: ../Doc/faq/programming.rst:1107 msgid "With Python 2.3, you can use an extended slice syntax::" @@ -1765,13 +1764,13 @@ msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches :: #: ../Doc/faq/programming.rst:1114 msgid "How do you remove duplicates from a list?" -msgstr "Comment retirer les doublons d'une liste?" +msgstr "Comment retirer les doublons d'une liste ?" #: ../Doc/faq/programming.rst:1116 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" -"Lisez le Python Cookbook pour trouver une longue discussion sur les " -"nombreuses façons de faire cela:" +"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " +"les nombreuses approches possibles :" #: ../Doc/faq/programming.rst:1118 msgid "https://code.activestate.com/recipes/52560/" @@ -1782,8 +1781,8 @@ msgid "" "If you don't mind reordering the list, sort it and then scan from the end of " "the list, deleting duplicates as you go::" msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " -"celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons " +"Si changer l'ordre de la liste ne vous dérange pas, commencez par ordonner " +"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" #: ../Doc/faq/programming.rst:1132 @@ -1793,19 +1792,19 @@ msgid "" msgstr "" "Si tous les éléments de la liste peuvent être utilisés comme des clés de " "dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide : ::" +"`) ceci est souvent plus rapide ::" #: ../Doc/faq/programming.rst:1137 msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." msgstr "" -"Ceci convertis la liste en un ensemble, ce qui supprime automatiquement les " +"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " "doublons, puis la transforme à nouveau en liste." #: ../Doc/faq/programming.rst:1142 msgid "How do you make an array in Python?" -msgstr "Comment construire un tableau en Python?" +msgstr "Comment construire un tableau en Python ?" #: ../Doc/faq/programming.rst:1144 msgid "Use a list::" @@ -1817,7 +1816,7 @@ msgid "" "primary difference is that a Python list can contain objects of many " "different types." msgstr "" -"Les listes ont un cout équivalent à celui des tableau C ou Pascal; la " +"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " "principale différence est qu'une liste Python peut contenir des objets de " "différents types." @@ -1830,16 +1829,16 @@ msgid "" msgstr "" "Le module ``array`` fournit des méthodes pour créer des tableaux de types " "fixes dans une représentation compacte, mais ils sont plus lents à indexer " -"que les listes. Notez aussi que l'extension ``Numeric`` et d'autres, " -"fournissent différentes structures de types tableaux, avec des " +"que les listes. Notez aussi que l'extension ``Numeric`` (et d'autres) " +"fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." #: ../Doc/faq/programming.rst:1156 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" -"Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les *cons " -"cells* en utilisant des tuples ::" +"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " +"*cons cells* en utilisant des n-uplets ::" #: ../Doc/faq/programming.rst:1160 msgid "" @@ -1849,14 +1848,14 @@ msgid "" "it's usually a lot slower than using Python lists." msgstr "" "Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " -"qu'un tuple. Ici la version équivalente au *car* de Lisp est " -"``lisp_list[0]`` et l'équivalent à *cdr* est ``list_lip[1]``. Ne faites ceci " -"que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " -"générale bien plus lente que les listes Python." +"qu'un tuple. Ici la version équivalente du *car* de Lisp est " +"``lisp_list[0]`` et l'équivalent de *cdr* est ``lisp_list[1]``. Ne faites " +"ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " +"général bien plus lente que les listes Python." #: ../Doc/faq/programming.rst:1169 msgid "How do I create a multidimensional list?" -msgstr "Comment puis-je créer une liste à plusieurs dimensions?" +msgstr "Comment créer une liste à plusieurs dimensions ?" #: ../Doc/faq/programming.rst:1171 msgid "You probably tried to make a multidimensional array like this::" @@ -1871,7 +1870,8 @@ msgstr "Elle semble correcte si on l'affiche :" #: ../Doc/faq/programming.rst:1186 msgid "But when you assign a value, it shows up in multiple places:" msgstr "" -"Mais quand vous assignez une valeur, elle apparait en de multiples endroits::" +"Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " +"endroits ::" #: ../Doc/faq/programming.rst:1198 msgid "" @@ -1880,27 +1880,28 @@ msgid "" "containing 3 references to the same list of length two. Changes to one row " "will show in all rows, which is almost certainly not what you want." msgstr "" -"La raison en est que dupliquer une liste en utilisant ``*`` ne crée pas de " -"copies, cela crée seulement des références aux objets existants. Le ``*3`` " -"crée une liste contenant trois références à la même liste de longueur deux. " -"Un changement dans une colonne apparaîtra donc dans toutes les colonnes. Ce " -"qui n'est de façon quasi certaine, pas ce que vous souhaitez." +"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copie mais " +"seulement des références aux objets existants. Le ``*3`` crée une liste " +"contenant trois références à la même liste de longueur deux. Un changement " +"dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " +"probablement pas ce que vous souhaitiez." #: ../Doc/faq/programming.rst:1203 msgid "" "The suggested approach is to create a list of the desired length first and " "then fill in each element with a newly created list::" msgstr "" -"L'approche suggérée est de créer une liste de la longueur désiré d'abords, " -"puis de remplir tous les éléments avec une chaîne nouvellement créée ::" +"L'approche suggérée est d'abord de créer une liste de la longueur désirée, " +"puis de remplir tous les éléments avec une nouvelle chaîne ::" #: ../Doc/faq/programming.rst:1210 msgid "" "This generates a list containing 3 different lists of length two. You can " "also use a list comprehension::" msgstr "" -"Cette liste générée contient trois listes différentes de longueur deux. Vous " -"pouvez aussi utilisez la notation de compréhension de listes ::" +"Cela génère une liste contenant elle-même trois listes distinctes, de " +"longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " +"compréhension ::" #: ../Doc/faq/programming.rst:1216 msgid "" @@ -1912,17 +1913,17 @@ msgstr "" #: ../Doc/faq/programming.rst:1221 msgid "How do I apply a method to a sequence of objects?" -msgstr "Comment appliquer une méthode à une séquence d'objets?" +msgstr "Comment appliquer une méthode à une séquence d'objets ?" #: ../Doc/faq/programming.rst:1223 msgid "Use a list comprehension::" -msgstr "Utilisez une compréhension de liste ::" +msgstr "Utilisez une liste en compréhension ::" #: ../Doc/faq/programming.rst:1230 msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" -"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que " +"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " "l'addition fonctionne ?" #: ../Doc/faq/programming.rst:1232 @@ -1942,12 +1943,12 @@ msgid "" "a ``list`` and ``+=`` as our exemplar." msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des " "objets muables, mais on prendra ``list`` et ``+=`` comme exemple." #: ../Doc/faq/programming.rst:1240 msgid "If you wrote::" -msgstr "Si vous écrivez : ::" +msgstr "Si vous écrivez ::" #: ../Doc/faq/programming.rst:1248 msgid "" @@ -1969,7 +1970,7 @@ msgid "" "approximately this::" msgstr "" "Sous le capot, une instruction d'affectation incrémentale fait à peu près " -"ceci :" +"ceci ::" #: ../Doc/faq/programming.rst:1263 msgid "" @@ -1981,7 +1982,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1266 msgid "When you write something like::" -msgstr "Quand vous écrivez un code du style :" +msgstr "Quand vous écrivez un code du style ::" #: ../Doc/faq/programming.rst:1274 msgid "" @@ -1989,7 +1990,7 @@ msgid "" "that even though there was an error, the append worked::" msgstr "" "L'exception est un peu plus surprenante et, chose encore plus étrange, " -"malgré l'erreur, l'ajout a fonctionné ::" +"malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1280 msgid "" @@ -2006,7 +2007,7 @@ msgstr "" "utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " "listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " "renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " -"``+=`` est un \"raccourci\" pour ``list.extend``::" +"``+=`` est un \"raccourci\" pour ``list.extend`` ::" #: ../Doc/faq/programming.rst:1292 msgid "This is equivalent to::" @@ -2028,7 +2029,7 @@ msgstr "" msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" "Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " -"équivalent à ::" +"équivalent à ::" #: ../Doc/faq/programming.rst:1310 msgid "" @@ -2062,8 +2063,8 @@ msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" -"Je souhaite faire un tri compliqué: peut on faire une transformation de " -"Schwartz en Python?" +"Je souhaite faire un classement compliqué : peut on faire une transformation " +"de Schwartz en Python ?" #: ../Doc/faq/programming.rst:1326 msgid "" @@ -2075,24 +2076,23 @@ msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " "les éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " -"l'argument ``key`` de la méthode :meth:`list.sort` ::" +"l'argument ``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1335 msgid "How can I sort one list by values from another list?" -msgstr "" -"Comment puis-je trier une liste en fonction des valeurs d'une autre liste?" +msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" #: ../Doc/faq/programming.rst:1337 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" msgstr "" -"Fusionnez les dans un itérateur de tuples, triez la liste obtenue, puis " -"choisissez l'élément que vous voulez. ::" +"Fusionnez-les dans un itérateur de n-uplets, ordonnez la liste obtenue, puis " +"choisissez l'élément que vous voulez ::" #: ../Doc/faq/programming.rst:1351 msgid "An alternative for the last step is::" -msgstr "Une alternative pour la dernière étape est : ::" +msgstr "Vous pouvez remplacer la dernière étape par ::" #: ../Doc/faq/programming.rst:1356 msgid "" @@ -2104,14 +2104,15 @@ msgid "" "\"result.append\" requires an extra attribute lookup, and third, there's a " "speed reduction from having to make all those function calls." msgstr "" -"Si vous trouvez cela plus lisible, vous préférez peut-être utiliser ceci à " -"la place de la compréhension de la liste finale. Toutefois, ceci est presque " -"deux fois plus lent pour les longues listes. Pourquoi? Tout d'abord, " -"``append ()`` doit réaffecter la mémoire, et si il utilise quelques astuces " -"pour éviter de le faire à chaque fois, il doit encore le faire de temps en " -"temps, ce qui coûte assez cher. Deuxièmement, l'expression ``result.append`` " -"exige une recherche d'attribut supplémentaire, et enfin, tous ces appels de " -"fonction impactent la vitesse d'exécution." +"Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " +"qu'une liste en compréhension. Toutefois, ce code est presque deux fois plus " +"lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce que " +"``append()`` doit ré-allouer de la mémoire et, même si elle utilise quelques " +"astuces pour éviter d'effectuer la ré-allocation à chaque appel, elle doit " +"tout de même le faire de temps en temps, ce qui coûte assez cher. " +"Deuxièmement, parce que l'expression ``result.append`` fait un accès " +"supplémentaire à un attribut et, enfin, parce que tous ces appels de " +"fonctions réduisent la vitesse d'exécution." #: ../Doc/faq/programming.rst:1366 msgid "Objects" @@ -2119,7 +2120,7 @@ msgstr "Objets" #: ../Doc/faq/programming.rst:1369 msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe?" +msgstr "Qu'est-ce qu'une classe ?" #: ../Doc/faq/programming.rst:1371 msgid "" @@ -2143,16 +2144,17 @@ msgid "" "``OutlookMailbox`` that handle various specific mailbox formats." msgstr "" "Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " -"ou ses classes de base. Il hérite alors les attributs et les méthodes de ses " -"classes de base. Cela permet à un modèle d'objet d'être successivement " -"raffinés par héritage. Vous pourriez avoir une classe générique ``Mailbox`` " -"qui fournit des méthodes d'accès de base pour une boîte aux lettres, et sous-" -"classes telles que ``MboxMailbox``, ``MaildirMailbox``, ``OutlookMailbox`` " -"qui gèrent les différents formats de boîtes aux lettres spécifiques." +"(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " +"de ses classes de base. Cela permet à un modèle d'objet d'être " +"successivement raffiné par héritage. Vous pourriez avoir une classe " +"générique ``Mailbox``, qui fournit des méthodes d'accès de base pour une " +"boîte aux lettres, et des sous-classes telles que ``MboxMailbox``, " +"``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " +"spécifiques de boîtes aux lettres." #: ../Doc/faq/programming.rst:1384 msgid "What is a method?" -msgstr "Qu'est-ce qu'une méthode?" +msgstr "Qu'est-ce qu'une méthode ?" #: ../Doc/faq/programming.rst:1386 msgid "" @@ -2160,13 +2162,13 @@ msgid "" "name(arguments...)``. Methods are defined as functions inside the class " "definition::" msgstr "" -"Une méthode est une fonction sur un objet ``x`` appelez normalement comme " -"``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à " -"l'intérieur de la définition de classe ::" +"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière " +"générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " +"comme des fonctions à l'intérieur de la définition de classe ::" #: ../Doc/faq/programming.rst:1396 msgid "What is self?" -msgstr "Qu'est-ce que self?" +msgstr "Qu'est-ce que self ?" #: ../Doc/faq/programming.rst:1398 msgid "" @@ -2175,11 +2177,11 @@ msgid "" "c)`` for some instance ``x`` of the class in which the definition occurs; " "the called method will think it is called as ``meth(x, a, b, c)``." msgstr "" -"Self est simplement un nom conventionnel pour le premier argument d'une " -"méthode. Une méthode définie comme ``meth(self, a, b, c)`` doit être appelée " -"en tant que ``x.meth(a, b, c)``, pour une instance ``x`` de la classe dans " -"laquelle elle est définie, la méthode appelée considérera qu'elle est " -"appelée ``meth(x, a, b, c)``." +"Par convention, le premier argument d'une méthode est appelé self. Une " +"méthode ``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, " +"b, c)`` où ``x`` est une instance de la classe dans laquelle cette méthode " +"est définie ; tout se passe comme si la méthode était appelée comme " +"``meth(x, a, b, c)``." #: ../Doc/faq/programming.rst:1403 msgid "See also :ref:`why-self`." @@ -2190,8 +2192,8 @@ msgid "" "How do I check if an object is an instance of a given class or of a subclass " "of it?" msgstr "" -"Comment puis-je vérifier si un objet est une instance d'une classe donnée ou " -"d'une sous-classe de celui-ci?" +"Comment vérifier si un objet est une instance d'une classe donnée ou d'une " +"sous-classe de celle-ci ?" #: ../Doc/faq/programming.rst:1409 msgid "" @@ -2202,11 +2204,11 @@ msgid "" "``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." msgstr "" "Utilisez la fonction native ``isinstance(obj, cls)``. Vous pouvez vérifier " -"si un objet est une instance de n'importe lequel d'un certain nombre de " -"classes en fournissant un tuple à la place d'une seule classe, par exemple, " -"``isinstance(obj, (class1, class2, ...))``, et peut également vérifier si un " -"objet est l'un des types natifs de Python, par exemple, ``isinstance(obj, " -"str)`` ou ``isinstance(obj, (int, float, complex))``." +"qu'un objet est une instance de plusieurs classes à la fois en fournissant " +"un n-uplet à la place d'une seule classe, par exemple, ``isinstance(obj, " +"(class1, class2, ...))``. Vous pouvez également vérifier qu'un objet est " +"l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " +"``isinstance(obj, (int, float, complex))``." #: ../Doc/faq/programming.rst:1415 msgid "" @@ -2217,25 +2219,24 @@ msgid "" "and doing a different thing based on what class it is. For example, if you " "have a function that does something::" msgstr "" -"Notez que la plupart des programmes n'utilisent pas :func:`isInstance` sur " -"les classes définies par l'utilisateur, très souvent. Si vous développez " -"vous-même les classes, un style plus appropriée orientée objet est de " -"définir des méthodes sur les classes qui encapsulent un comportement " -"particulier, au lieu de vérifier la classe de l'objet et de faire quelque " -"chose de différent en fonction de sa classe. Par exemple, si vous avez une " -"fonction qui fait quelque chose : ::" +"Notez que la plupart des programmes n'utilisent que rarement :func:" +"`isInstance` sur les classes définies par l'utilisateur. Si vous développez " +"vous-même des classes, une approche plus orientée-objet consiste définir des " +"méthodes sur les classes qui sont porteuses d'un comportement particulier, " +"plutôt que de vérifier la classe de l'objet et de faire un traitement ad-" +"hoc. Par exemple, si vous avez une fonction qui fait quelque chose ::" #: ../Doc/faq/programming.rst:1429 msgid "" "A better approach is to define a ``search()`` method on all the classes and " "just call it::" msgstr "" -"Une meilleure approche est de définir une méthode ``search()`` sur toutes " -"les classes et qu'il suffit d'appeler ::" +"Une meilleure approche est de définir une méthode ``search()`` dans toutes " +"les classes et qu'il suffit d'appeler de la manière suivante ::" #: ../Doc/faq/programming.rst:1444 msgid "What is delegation?" -msgstr "Qu'est-ce que la délégation?" +msgstr "Qu'est-ce que la délégation ?" #: ../Doc/faq/programming.rst:1446 msgid "" @@ -2245,12 +2246,12 @@ msgid "" "implementation of the method you're interested in changing and delegates all " "other methods to the corresponding method of ``x``." msgstr "" -"La délégation est une technique orientée objet (aussi appelé un modèle de " -"conception). Disons que vous avez un objet ``x`` et que vous souhaitez " -"modifier le comportement d'une seule de ses méthodes. Vous pouvez créer une " -"nouvelle classe qui fournit une nouvelle implémentation de la méthode qui " -"vous intéresse dans l'évolution et les délégués de toutes les autres " -"méthodes la méthode correspondante de ``x``." +"La délégation est une technique orientée objet (aussi appelée « patron de " +"conception). Prenons un objet ``x`` dont on souhaite modifier le " +"comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " +"qui fournit une nouvelle implémentation de la méthode qui nous intéresse " +"dans l'évolution et qui délègue toute autre méthode à la méthode " +"correspondante de ``x``." #: ../Doc/faq/programming.rst:1452 msgid "" @@ -2298,7 +2299,7 @@ msgid "" "store local state for self without causing an infinite recursion." msgstr "" "La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " +"``self.__dict__`` pour stocker l'état local de self sans provoquer une " "récursion infinie." #: ../Doc/faq/programming.rst:1490 @@ -2307,11 +2308,11 @@ msgid "" "overrides it?" msgstr "" "Comment appeler une méthode définie dans une classe de base depuis une " -"classe dérivée qui la surcharge?" +"classe dérivée qui la surcharge ?" #: ../Doc/faq/programming.rst:1492 msgid "Use the built-in :func:`super` function::" -msgstr "Utiliser la fonction native :func:`super` : ::" +msgstr "Utilisez la fonction native :func:`super` ::" #: ../Doc/faq/programming.rst:1498 msgid "" @@ -2321,18 +2322,18 @@ msgid "" "meth(self, arguments...)``. Here, ``Base.meth`` is an unbound method, so " "you need to provide the ``self`` argument." msgstr "" -"Pour version antérieure à 3.0, vous pouvez utiliser des classes classiques : " -"Pour une définition de classe telle que ``class Derived(Base): ...`` vous " -"pouvez appeler la méthode ``meth()`` défini dans ``Base`` (ou l'une des " -"classes de base de ``Base``) en faisant ``Base.meth(self, arguments...)``. " -"Ici, ``Base.meth`` est une méthode non liée, vous devez donc fournir " -"l'argument ``self``." +"Pour les versions antérieures à 3.0, vous pouvez utiliser des classes " +"classiques : pour une définition de classe comme ``class Derived(Base): ..." +"`` vous pouvez appeler la méthode ``meth()`` définie dans ``Base`` (ou l'une " +"des classes de base de ``Base``) en faisant ``Base.meth(self, " +"arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " +"fournir l'argument ``self``." #: ../Doc/faq/programming.rst:1506 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" -"Comment puis-je organiser mon code pour permettre de changer la classe de " -"base plus facilement?" +"Comment organiser un code pour permettre de changer la classe de base plus " +"facilement ?" #: ../Doc/faq/programming.rst:1508 msgid "" @@ -2346,23 +2347,23 @@ msgstr "" "Vous pouvez définir un alias pour la classe de base, lui attribuer la classe " "de base réelle avant la définition de classe, et utiliser l'alias au long de " "votre classe. Ensuite, tout ce que vous devez changer est la valeur " -"attribuée à l'alias. Incidemment, cette astuce est également utile si vous " -"voulez décider dynamiquement (par exemple en fonction de la disponibilité " -"des ressources) la classe de base à utiliser. Exemple ::" +"attribuée à l'alias. Accessoirement, cette astuce est également utile si " +"vous voulez déterminer dynamiquement (par exemple en fonction de la " +"disponibilité des ressources) la classe de base à utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1523 msgid "How do I create static class data and static class methods?" msgstr "" -"Comment puis-je créer des données statiques de classe et des méthodes " -"statiques de classe?" +"Comment créer des données statiques de classe et des méthodes statiques de " +"classe ?" #: ../Doc/faq/programming.rst:1525 msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." msgstr "" -"Tant les données statiques que les méthodes statiques (dans le sens de C + + " -"ou Java) sont pris en charge en Python." +"Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " +"prises en charge en Python." #: ../Doc/faq/programming.rst:1528 msgid "" @@ -2379,7 +2380,7 @@ msgid "" "``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " "class on the base-class search path from ``c.__class__`` back to ``C``." msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` telle que " +"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que " "``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " "une classe sur le chemin de recherche de classe de base de ``c.__class__`` " "jusqu'à ``C``." @@ -2391,15 +2392,15 @@ msgid "" "dict. Rebinding of a class-static data name must always specify the class " "whether inside a method or not::" msgstr "" -"Attention: dans une méthode de C, une affectation comme ``self.count = 42`` " -"crée une nouvelle instance et sans rapport avec le nom ``count`` dans dans " -"le dictionnaire de données de ``self``. La redéfinition d'une donnée " -"statique de classe doit toujours spécifier la classe que l'on soit à " -"l'intérieur d'une méthode ou non ::" +"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " +"crée une nouvelle instance sans rapport avec le nom ``count`` dans le " +"dictionnaire de données de ``self``. La redéfinition d'une donnée statique " +"de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " +"d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1551 msgid "Static methods are possible::" -msgstr "Les méthodes statiques sont possibles : ::" +msgstr "Il est possible d'utiliser des méthodes statiques ::" #: ../Doc/faq/programming.rst:1559 msgid "" @@ -2420,19 +2421,19 @@ msgstr "" #: ../Doc/faq/programming.rst:1570 msgid "How can I overload constructors (or methods) in Python?" -msgstr "Comment puis-je surcharger les constructeurs (ou méthodes) en Python?" +msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" #: ../Doc/faq/programming.rst:1572 msgid "" "This answer actually applies to all methods, but the question usually comes " "up first in the context of constructors." msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question " -"vient généralement en premier dans le contexte des constructeurs." +"Cette réponse s'applique en fait à toutes les méthodes, mais la question se " +"pose généralement dans le contexte des constructeurs." #: ../Doc/faq/programming.rst:1575 msgid "In C++ you'd write" -msgstr "In C++ you'd write" +msgstr "En C++, on écrirait" #: ../Doc/faq/programming.rst:1584 msgid "" @@ -2452,7 +2453,7 @@ msgstr "" msgid "You could also try a variable-length argument list, e.g. ::" msgstr "" "Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " -"exemple : ::" +"exemple ::" #: ../Doc/faq/programming.rst:1601 msgid "The same approach works for all method definitions." @@ -2473,12 +2474,12 @@ msgid "" "``classname`` is the current class name with any leading underscores " "stripped." msgstr "" -"Les noms de variables commençant avec deux tirets bas sont «déformés», c'est " -"un moyen simple mais efficace de définir variables privées à une classe. " -"Tout identifiant de la forme ``__spam`` (commençant par au moins deux tirets " -"bas et se terminant par au plus un tiret bas) est textuellement remplacé par " -"``_classname__spam``, où ``classname`` est le nom de la classe en cours dont " -"les éventuels tirets bas ont été retirés." +"Les noms de variables commençant avec deux tirets bas sont « déformés », " +"c'est un moyen simple mais efficace de définir des variables privées à une " +"classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " +"deux tirets bas et se terminant par au plus un tiret bas) est textuellement " +"remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " +"en cours sans les éventuels tirets bas du début." #: ../Doc/faq/programming.rst:1613 msgid "" @@ -2487,21 +2488,20 @@ msgid "" "the object's ``__dict__``. Many Python programmers never bother to use " "private variable names at all." msgstr "" -"Cela ne garantit pas la privauté de l'accès : un utilisateur extérieur peut " -"encore délibérément accéder à l'attribut ``_classname__spam``, et les " -"valeurs privées sont visibles dans l'objet ``__dict__``. De nombreux " -"programmeurs Python ne prennent jamais la peine d'utiliser des noms de " -"variable privée." +"Cela ne garantit aucune protection : un utilisateur extérieur peut encore " +"délibérément accéder à l'attribut ``_classname__spam`` et les valeurs " +"privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " +"Python ne prennent jamais la peine d'utiliser des noms de variable privés." #: ../Doc/faq/programming.rst:1620 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" -"Ma classe définit ``__del__`` mais il n'est pas appelé lorsque je supprime " -"l'objet." +"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " +"supprime l'objet." #: ../Doc/faq/programming.rst:1622 msgid "There are several possible reasons for this." -msgstr "Il y a plusieurs raisons possibles pour cela." +msgstr "Il y a plusieurs explications possibles." #: ../Doc/faq/programming.rst:1624 msgid "" @@ -2509,9 +2509,9 @@ msgid "" "decrements the object's reference count, and if this reaches zero :meth:" "`__del__` is called." msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` --- il décrémente " -"simplement le compteur de références de l'objet, et si celui ci arrive à " -"zéro :meth:`__del__` est appelée." +"La commande *del* n'appelle pas forcément :meth:`__del__` — elle décrémente " +"simplement le compteur de références de l'objet et, si celui-ci arrive à " +"zéro, :meth:`__del__` est appelée." #: ../Doc/faq/programming.rst:1628 msgid "" @@ -2553,7 +2553,7 @@ msgstr "" "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " "supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " "pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" -"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." #: ../Doc/faq/programming.rst:1646 @@ -2712,7 +2712,7 @@ msgid "" msgstr "" "Le module :mod:`py_compile` peut compiler n'importe quel module " "manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " -"manière interactive :" +"manière interactive ::" #: ../Doc/faq/programming.rst:1738 msgid "" @@ -2734,7 +2734,7 @@ msgstr "" "Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " "avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " "en exécutant ``compileall.py`` avec le chemin du dossier contenant les " -"fichiers Python à compiler ::" +"fichiers Python à compiler ::" #: ../Doc/faq/programming.rst:1751 msgid "How do I find the current module name?" @@ -2753,7 +2753,7 @@ msgstr "" "programme est exécuté comme un script. Beaucoup de modules qui doivent " "normalement être importés pour pouvoir être utilisés fournissent aussi une " "interface en ligne de commande ou un test automatique. Ils n'exécutent cette " -"portion du code qu'après avoir vérifié la valeur de ``__name__``::" +"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" #: ../Doc/faq/programming.rst:1768 msgid "How can I have modules that mutually import each other?" @@ -2765,11 +2765,11 @@ msgstr "Considérons les modules suivants :" #: ../Doc/faq/programming.rst:1772 msgid "foo.py::" -msgstr "*foo.py* ::" +msgstr "*foo.py* ::" #: ../Doc/faq/programming.rst:1777 msgid "bar.py::" -msgstr "*bar.py* ::" +msgstr "*bar.py* ::" #: ../Doc/faq/programming.rst:1782 msgid "The problem is that the interpreter will perform the following steps:" @@ -2892,7 +2892,8 @@ msgstr "Ces solutions peuvent être combinées." #: ../Doc/faq/programming.rst:1823 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "__import__('x.y.z') renvoie ; comment accéder à z ?" +msgstr "" +"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" #: ../Doc/faq/programming.rst:1825 msgid "" @@ -2900,7 +2901,7 @@ msgid "" "from :mod:`importlib` instead::" msgstr "" "Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" -"`importlib` ::" +"`importlib` ::" #: ../Doc/faq/programming.rst:1832 msgid "" @@ -2923,7 +2924,7 @@ msgstr "" "le cas, dans un programme composé d'un très grand nombre de modules qui " "importent tous le même module de base, ce module de base serait analysé et " "ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " -"module, il faut faire ::" +"module, il faut faire ::" #: ../Doc/faq/programming.rst:1844 msgid "" diff --git a/faq/windows.po b/faq/windows.po index 579a63d9c..a04b25960 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -37,7 +37,7 @@ msgid "" msgstr "" "Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " "le lancement de programmes depuis la ligne de commande de Windows alors tout " -"semblera évident; Sinon, vous auriez besoin d'être un peu guidé." +"semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." #: ../Doc/faq/windows.rst:None msgid "|Python Development on XP|_" @@ -80,7 +80,7 @@ msgid "" "you might just as easily see something like:" msgstr "" "La lettre peut être différente, et il peut y avoir d'autres choses à la " -"suite, alors il se peut aussi bien que vous voyez quelque chose tel que :" +"suite, alors il se peut que ça ressemble également à ça :" #: ../Doc/faq/windows.rst:57 msgid "" @@ -119,7 +119,7 @@ msgstr "" #: ../Doc/faq/windows.rst:75 msgid "You should then see something like:" -msgstr "Vous devez vous trouver face à quelque chose comme ça :" +msgstr "Vous devez voir quelque chose comme ça :" #: ../Doc/faq/windows.rst:83 msgid "" @@ -360,7 +360,7 @@ msgid "" "it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " "version, a number such as \"33\" for Python 3.3." msgstr "" -"Ne compilez _pas_ Python directement dans votre fichier *.exe*. Sous " +"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous " "Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " "eux-mêmes des DLL (ceci constitue une information de première importance non " "documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " @@ -421,8 +421,8 @@ msgstr "" "Python qui rendra les données et les méthodes de l'application disponibles " "pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le " "résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous " -"n'avez _pas_ besoin de créer un fichier DLL, et cela simplifie également la " -"liaison." +"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également " +"la liaison." #: ../Doc/faq/windows.rst:245 msgid "" diff --git a/glossary.po b/glossary.po index 053c899d4..90ec59cfa 100644 --- a/glossary.po +++ b/glossary.po @@ -71,7 +71,7 @@ msgid "" "reference`." msgstr "" "*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:" -"`lib2to3`; un point d’entrée indépendant est fourni via :file:`Tools/" +"`lib2to3` ; un point d’entrée indépendant est fourni via :file:`Tools/" "scripts/2to3`. Cf. :ref:`2to3-reference`." #: ../Doc/glossary.rst:29 @@ -94,7 +94,7 @@ msgstr "" "Les classes de base abstraites (ABC, suivant l'abréviation anglaise " "*Abstract Base Class*) complètent le :term:`duck-typing` en fournissant un " "moyen de définir des interfaces pour les cas où d'autres techniques comme :" -"func:`hasattr` seraient inélégantes ou subitement fausses (par exemple avec " +"func:`hasattr` seraient inélégantes ou subtilement fausses (par exemple avec " "les :ref:`méthodes magiques `). Les ABC introduisent des " "sous-classes virtuelles qui n'héritent pas d'une classe mais qui sont quand " "même reconnues par :func:`isinstance` ou :func:`issubclass` (voir la " @@ -115,7 +115,7 @@ msgid "" "parameter or return value, used by convention as a :term:`type hint`." msgstr "" "Étiquette associée à une variable, un attribut de classe, un paramètre de " -"fonction ou une valeur de retour. Elle est utilisé par convention comme :" +"fonction ou une valeur de retour. Elle est utilisée par convention comme :" "term:`type hint`." #: ../Doc/glossary.rst:48 @@ -148,7 +148,7 @@ msgid "" "function. There are two kinds of argument:" msgstr "" "Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " -"appel. Il existe deux types d'arguments :" +"appel. Il existe deux types d'arguments :" #: ../Doc/glossary.rst:61 msgid "" @@ -157,10 +157,10 @@ msgid "" "by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " "following calls to :func:`complex`::" msgstr "" -":dfn:`argument nommé`: un argument précédé d'un identifiant (comme " +":dfn:`argument nommé` : un argument précédé d'un identifiant (comme " "``name=``) ou un dictionnaire précédé de ``**``, lors d'un appel de " "fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " -"nommés dans l'appel à :func:`complex` ici : ::" +"nommés dans l'appel à :func:`complex` ici ::" #: ../Doc/glossary.rst:69 msgid "" @@ -169,10 +169,10 @@ msgid "" "be passed as elements of an :term:`iterable` preceded by ``*``. For example, " "``3`` and ``5`` are both positional arguments in the following calls::" msgstr "" -":dfn:`argument positionnel` : Un argument qui n'est pas nommé. Les arguments " +":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " "positionnels apparaissent au début de la liste des arguments, ou donnés sous " "forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " -"sont tous les deux des arguments positionnels dans les appels suivants : ::" +"sont tous les deux des arguments positionnels dans les appels suivants ::" #: ../Doc/glossary.rst:78 msgid "" @@ -193,9 +193,9 @@ msgid "" "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" -"Voir aussi :term:`parameter` dans le glossaire, la question :ref:" -"`Différence entre argument et paramètre ` de la " -"FAQ et la :pep:`362`." +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence " +"entre argument et paramètre ` de la FAQ et la :" +"pep:`362`." #: ../Doc/glossary.rst:86 msgid "asynchronous context manager" @@ -278,7 +278,7 @@ msgstr "" "mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " "locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " "générateur asynchrone reprend avec un nouvel *awaitable* renvoyé par :meth:" -"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " +"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " "et la :pep:`525`." #: ../Doc/glossary.rst:119 @@ -338,9 +338,9 @@ msgid "" "term:`coroutine` or an object with an :meth:`__await__` method. See also :" "pep:`492`." msgstr "" -"Objet pouvant être utilisé dans une expression :keyword:`await`. Peut être " -"une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. Voir " -"aussi la :pep:`492`." +"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " +"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " +"Voir aussi la :pep:`492`." #: ../Doc/glossary.rst:141 msgid "BDFL" @@ -383,7 +383,7 @@ msgstr "" #: ../Doc/glossary.rst:156 msgid "bytes-like object" -msgstr "Objet bytes-compatible" +msgstr "objet octet-compatible" #: ../Doc/glossary.rst:158 msgid "" @@ -413,7 +413,7 @@ msgstr "" "Certaines opérations nécessitent de travailler sur des données binaires " "variables. La documentation parle de ceux-ci comme des *read-write bytes-" "like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " -"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " "travailler sur des données binaires stockées dans des objets immuables (*" "\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" "`memoryview` d'un objet :class:`byte`." @@ -522,7 +522,7 @@ msgstr "" "imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " "l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " "mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " -"nombres complexes, écrits avec cette dernière notation : la partie " +"nombres complexes, écrits avec cette dernière notation : la partie " "imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " "utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " "Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " @@ -626,7 +626,7 @@ msgid "" msgstr "" "Fonction dont la valeur de retour est une autre fonction. Un décorateur est " "habituellement utilisé pour transformer une fonction via la syntaxe " -"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" "`staticmethod`." #: ../Doc/glossary.rst:261 @@ -666,12 +666,12 @@ msgstr "" "N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" "`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " "descripteur, son comportement spécial est déclenché lors de la recherche des " -"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter " -"ou effacer un attribut, Python recherche l'objet nommé *b* dans le " -"dictionnaire de la classe de *a*. Mais si *b* est un descripteur, c'est la " -"méthode de ce descripteur qui est alors appelée. Comprendre les descripteurs " -"est requis pour avoir une compréhension approfondie de Python, ils sont la " -"base de nombre de ses caractéristiques notamment les fonctions, méthodes, " +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter ou " +"effacer un attribut, Python recherche l'objet nommé *b* dans le dictionnaire " +"de la classe de *a*. Mais si *b* est un descripteur, c'est la méthode de ce " +"descripteur qui est alors appelée. Comprendre les descripteurs est requis " +"pour avoir une compréhension approfondie de Python, ils sont la base de " +"nombre de ses caractéristiques notamment les fonctions, méthodes, " "propriétés, méthodes de classes, méthodes statiques et les références aux " "classes parentes." @@ -716,7 +716,7 @@ msgstr "" #: ../Doc/glossary.rst:301 msgid "docstring" -msgstr "*docstring*" +msgstr "*docstring* (chaîne de documentation)" #: ../Doc/glossary.rst:303 msgid "" @@ -727,8 +727,8 @@ msgid "" "the canonical place for documentation of the object." msgstr "" "Première chaîne littérale qui apparaît dans l'expression d'une classe, " -"fonction, ou module. Bien qu'ignorée à l'exécution, elles est reconnue par " -"le compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " +"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " "fonction ou du module. Comme cette chaîne est disponible par introspection, " "c'est l'endroit idéal pour documenter l'objet." @@ -848,9 +848,9 @@ msgstr "" "méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " "il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " "disque ou à un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, une socket " -"réseau, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" -"objects` ou :dfn:`streams`." +"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " +"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " +"ou :dfn:`streams`." #: ../Doc/glossary.rst:356 msgid "" @@ -860,7 +860,7 @@ msgid "" "The canonical way to create a file object is by using the :func:`open` " "function." msgstr "" -"Il existe en réalité trois catégories de fichiers objets : les :term:" +"Il existe en réalité trois catégories de fichiers objets : les :term:" "`fichiers binaires ` bruts, les :term:`fichiers binaires " "` avec tampon (*buffer*) et les :term:`fichiers textes " "`. Leurs interfaces sont définies dans le module :mod:`io`. " @@ -893,9 +893,9 @@ msgid "" "` for use with :data:`sys.meta_path`, and :term:`path " "entry finders ` for use with :data:`sys.path_hooks`." msgstr "" -"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" "`chercheurs dans les méta-chemins ` à utiliser avec :data:" -"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." #: ../Doc/glossary.rst:373 @@ -942,7 +942,7 @@ msgstr "annotation de fonction" #: ../Doc/glossary.rst:389 msgid "An :term:`annotation` of a function parameter or return value." -msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour" +msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." #: ../Doc/glossary.rst:391 msgid "" @@ -966,7 +966,7 @@ msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality." msgstr "" -"Voir :term:`variable annotation` et :pep:` 484`, qui décrivent cette " +"Voir :term:`variable annotation` et :pep:`484`, qui décrivent cette " "fonctionnalité." #: ../Doc/glossary.rst:403 @@ -990,7 +990,7 @@ msgid "" msgstr "" "En important le module :mod:`__future__` et en affichant ses variables, vous " "pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " -"langage et quand elle devient le comportement par défaut : ::" +"langage et quand elle devient le comportement par défaut ::" #: ../Doc/glossary.rst:415 msgid "garbage collection" @@ -1226,7 +1226,7 @@ msgstr "" #: ../Doc/glossary.rst:513 msgid "import path" -msgstr "chemin des imports" +msgstr "chemin des importations" #: ../Doc/glossary.rst:515 msgid "" @@ -1237,7 +1237,7 @@ msgid "" msgstr "" "Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " "basé sur les chemins ` cherche les modules à importer. " -"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " "pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " "paquet parent." @@ -1323,9 +1323,10 @@ msgstr "" "modules ou quelques structures de données internes. Il fait aussi quelques " "appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " "dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " -"exécuté lors de l'arrêt peut rencontrer quelques exception puisque les " -"ressources auxquelles il fait appel pourraient ne plus fonctionner, " -"(typiquement les modules des bibliothèques ou le mécanisme de *warning*)." +"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " +"ressources auxquelles il fait appel sont susceptibles de ne plus " +"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " +"*warning*)." #: ../Doc/glossary.rst:556 msgid "" @@ -1368,14 +1369,14 @@ msgid "" msgstr "" "Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " "beaucoup d'autres endroits où une séquence est requise (:func:`zip`, :func:" -"`map`, ...). Lorsqu'un itérable est passé comme argument à la fonction " -"native :func:`iter`, celle-ci fournit en retour un itérateur sur cet " -"itérable. Cet itérateur n'est valable que pour une seule passe sur le jeu de " -"valeurs. Lors de l'utilisation d'itérables, il n'est habituellement pas " -"nécessaire d'appeler :func:`iter` ou de s'occuper soi-même des objets " -"itérateurs. L'instruction ``for`` le fait automatiquement pour vous, créant " -"une variable temporaire anonyme pour garder l'itérateur durant la boucle. " -"Voir aussi :term:`itérateur`, :term:`séquence` et :term:`générateur`." +"`map`…). Lorsqu'un itérable est passé comme argument à la fonction native :" +"func:`iter`, celle-ci fournit en retour un itérateur sur cet itérable. Cet " +"itérateur n'est valable que pour une seule passe sur le jeu de valeurs. Lors " +"de l'utilisation d'itérables, il n'est habituellement pas nécessaire " +"d'appeler :func:`iter` ou de s'occuper soi-même des objets itérateurs. " +"L'instruction ``for`` le fait automatiquement pour vous, créant une variable " +"temporaire anonyme pour garder l'itérateur durant la boucle. Voir aussi :" +"term:`itérateur`, :term:`séquence` et :term:`générateur`." #: ../Doc/glossary.rst:577 msgid "iterator" @@ -1405,7 +1406,7 @@ msgstr "" "point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" "`__next__` lèveront encore une exception :exc:`StopIteration`. Les " "itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " -"itérateur lui même, de façon à ce que chaque itérateur soit aussi itérable " +"itérateur lui-même, de façon à ce que chaque itérateur soit aussi itérable " "et puisse être utilisé dans la plupart des endroits où d'autres itérables " "sont attendus. Une exception notable est un code qui tente plusieurs " "itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " @@ -1462,7 +1463,7 @@ msgstr "" "recherches insensibles à la casse. Aussi, il est possible de créer des " "fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " "(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " -"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" "`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " "Trier ` pour des exemples de création et d'utilisation de " "fonctions clefs." @@ -1487,7 +1488,7 @@ msgid "" msgstr "" "Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " "qu'une seule expression, exécutée lorsque la fonction est appelée. La " -"syntaxe pour créer des fonctions lambda est: ``lambda [parameters]: " +"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " "expression``" #: ../Doc/glossary.rst:624 @@ -1501,9 +1502,9 @@ msgid "" "approach and is characterized by the presence of many :keyword:`if` " "statements." msgstr "" -"Regarde devant avant de tomber, (*Look before you leap* en anglais). Ce " -"style de programmation consiste à vérifier des conditions avant d'effectuer " -"des appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " +"Regarde avant de sauter, (*Look before you leap* en anglais). Ce style de " +"programmation consiste à vérifier des conditions avant d'effectuer des " +"appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " "caractérise par la présence de beaucoup d'instructions :keyword:`if`." #: ../Doc/glossary.rst:631 @@ -1516,7 +1517,7 @@ msgid "" msgstr "" "Dans un environnement avec plusieurs fils d'exécution (*multi-threaded* en " "anglais), le style *LBYL* peut engendrer un séquencement critique (*race " -"condition* en anglais) entre le \"regarde\" et le \"tomber\". Par exemple, " +"condition* en anglais) entre le \"regarde\" et le \"sauter\". Par exemple, " "le code ``if key in mapping: return mapping[key]`` peut échouer si un autre " "fil d'exécution supprime la clé *key* du *mapping* après le test mais avant " "l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " @@ -1552,8 +1553,8 @@ msgstr "" "et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." "format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " "nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " -"hexadécimal (``0x``...). La clause :keyword:`if` est optionnelle. Si elle " -"est omise, tous les éléments du ``range(256)`` seront utilisés." +"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." #: ../Doc/glossary.rst:649 msgid "loader" @@ -1573,7 +1574,7 @@ msgstr "" #: ../Doc/glossary.rst:655 msgid "mapping" -msgstr "Tableau de correspondances" +msgstr "tableau de correspondances" #: ../Doc/glossary.rst:657 msgid "" @@ -1635,16 +1636,16 @@ msgstr "" "pour rôle de réunir ces trois paramètres pour construire la classe. La " "plupart des langages orientés objet fournissent une implémentation par " "défaut. La particularité de Python est la possibilité de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'aura jamais besoin " -"de cet outil, mais lorsque le besoin survient, les métaclasses offrent des " -"solutions élégantes et puissantes. Elles sont utilisées pour journaliser les " -"accès à des propriétés, rendre sûr les environnements *multi-threads*, " -"suivre la création d'objets, implémenter des singletons et bien d'autres " -"tâches." +"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " +"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " +"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " +"journaliser les accès à des propriétés, rendre sûrs les environnements " +"*multi-threads*, suivre la création d'objets, implémenter des singletons et " +"bien d'autres tâches." #: ../Doc/glossary.rst:683 msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." #: ../Doc/glossary.rst:684 msgid "method" @@ -1691,7 +1692,7 @@ msgid "" "into Python by the process of :term:`importing`." msgstr "" "Objet utilisé pour organiser une portion unitaire de code en Python. Les " -"modules ont un espace de noms et peuvent contenir n'importe quels objets " +"modules ont un espace de nommage et peuvent contenir n'importe quels objets " "Python. Charger des modules est appelé :term:`importer `." #: ../Doc/glossary.rst:702 @@ -1707,7 +1708,7 @@ msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." msgstr "" -"Espace de noms contenant les informations, relatives à l'importation, " +"Espace de nommage contenant les informations, relatives à l'importation, " "utilisées pour charger un module. C'est une instance de la classe :class:" "`importlib.machinery.ModuleSpec`." @@ -1766,7 +1767,7 @@ msgstr "" #: ../Doc/glossary.rst:727 msgid "namespace" -msgstr "espace de noms" +msgstr "espace de nommage" #: ../Doc/glossary.rst:729 msgid "" @@ -1780,20 +1781,21 @@ msgid "" "func:`itertools.islice` makes it clear that those functions are implemented " "by the :mod:`random` and :mod:`itertools` modules, respectively." msgstr "" -"L'endroit où une variable est stockée. Les espaces de noms sont implémentés " -"avec des dictionnaires. Il existe des espaces de noms globaux, natifs ou " -"imbriqués dans les objets (dans les méthodes). Les espaces de noms " -"favorisent la modularité car ils permettent d'éviter les conflits de noms. " -"Par exemple, les fonctions :func:`builtins.open <.open>` et :func:`os.open` " -"sont différenciées par leurs espaces de nom. Les espaces de noms aident " -"aussi à la lisibilité et la maintenabilité en rendant clair quel module " -"implémente une fonction. Par exemple, écrire :func:`random.seed` ou :func:" -"`itertools.islice` affiche clairement que ces fonctions sont implémentées " -"respectivement dans les modules :mod:`random` et :mod:`itertools`." +"L'endroit où une variable est stockée. Les espaces de nommage sont " +"implémentés avec des dictionnaires. Il existe des espaces de nommage " +"globaux, natifs ou imbriqués dans les objets (dans les méthodes). Les " +"espaces de nommage favorisent la modularité car ils permettent d'éviter les " +"conflits de noms. Par exemple, les fonctions :func:`builtins.open <.open>` " +"et :func:`os.open` sont différenciées par leurs espaces de nom. Les espaces " +"de nommage aident aussi à la lisibilité et la maintenabilité en rendant " +"clair quel module implémente une fonction. Par exemple, écrire :func:`random." +"seed` ou :func:`itertools.islice` affiche clairement que ces fonctions sont " +"implémentées respectivement dans les modules :mod:`random` et :mod:" +"`itertools`." #: ../Doc/glossary.rst:739 msgid "namespace package" -msgstr "paquet-espace de noms" +msgstr "paquet-espace de nommage" #: ../Doc/glossary.rst:741 msgid "" @@ -1803,9 +1805,9 @@ msgid "" "``__init__.py`` file." msgstr "" "Un :term:`paquet` tel que défini dans la :pep:`421` qui ne sert qu'à " -"contenir des sous-paquets. Les paquets-espace de noms peuvent n'avoir aucune " -"représentation physique et, plus spécifiquement, ne sont pas comme un :term:" -"`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." +"contenir des sous-paquets. Les paquets-espace de nommage peuvent n'avoir " +"aucune représentation physique et, plus spécifiquement, ne sont pas comme " +"un :term:`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." #: ../Doc/glossary.rst:746 msgid "See also :term:`module`." @@ -1828,10 +1830,10 @@ msgstr "" "englobante. Typiquement, une fonction définie à l'intérieur d'une autre " "fonction a accès aux variables de cette dernière. Souvenez-vous cependant " "que cela ne fonctionne que pour accéder à des variables, pas pour les " -"assigner. Les variables locales sont lues et assignées dans l'espace de noms " -"le plus proche. Tout comme les variables globales qui sont stockés dans " -"l'espace de noms global, le mot clef :keyword:`nonlocal` permet d'écrire " -"dans l'espace de noms dans lequel est déclarée la variable." +"assigner. Les variables locales sont lues et assignées dans l'espace de " +"nommage le plus proche. Tout comme les variables globales qui sont stockés " +"dans l'espace de nommage global, le mot clef :keyword:`nonlocal` permet " +"d'écrire dans l'espace de nommage dans lequel est déclarée la variable." #: ../Doc/glossary.rst:756 msgid "new-style class" @@ -1894,7 +1896,7 @@ msgid "" msgstr "" "Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " "décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sortes de paramètres :" +"fonction accepte. Il existe cinq sortes de paramètres :" #: ../Doc/glossary.rst:780 msgid "" @@ -1903,10 +1905,10 @@ msgid "" "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" -":dfn:`positional-or-keyword`: l'argument peut être passé soit par sa :term:" +":dfn:`positional-or-keyword` : l'argument peut être passé soit par sa :term:" "`position `, soit en tant que :term:`argument nommé `. " "C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " -"l'exemple suivant : ::" +"l'exemple suivant ::" #: ../Doc/glossary.rst:789 msgid "" @@ -1927,11 +1929,11 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" -":dfn:`keyword-only`: l'argument ne peut être fourni que nommé. Les " +":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " "paramètres *keyword-only* peuvent être définis en utilisant un seul " "paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " "liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " -"le code suivant : ::" +"le code suivant ::" #: ../Doc/glossary.rst:804 msgid "" @@ -1941,10 +1943,10 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" -":dfn:`var-positional`: une séquence d'arguments positionnels peut être " +":dfn:`var-positional` : une séquence d'arguments positionnels peut être " "fournie (en plus de tous les arguments positionnels déjà acceptés par " "d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " -"par une ``*``. Par exemple *args* ci-après : ::" +"par une ``*``. Par exemple *args* ci-après ::" #: ../Doc/glossary.rst:812 msgid "" @@ -1953,7 +1955,7 @@ msgid "" "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" -":dfn:`var-keyword`: une quantité arbitraire d'arguments peut être passée, " +":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " "chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " "d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " "paramètre par ``**``. Par exemple, *kwargs* ci-dessus." @@ -1987,9 +1989,9 @@ msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." msgstr "" -"Emplacement dans le :term:`chemin des imports ` (*import path* " -"en anglais, d'où le *path*) que le :term:`chercheur basé sur les chemins " -"` consulte pour trouver des modules à importer." +"Emplacement dans le :term:`chemin des importations ` (*import " +"path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " +"chemins ` consulte pour trouver des modules à importer." #: ../Doc/glossary.rst:829 msgid "path entry finder" @@ -2038,8 +2040,8 @@ msgid "" "searches an :term:`import path` for modules." msgstr "" "L'un des :term:`chercheurs dans les méta-chemins ` par " -"défaut qui cherche des modules dans un :term:`chemin des imports `." +"défaut qui cherche des modules dans un :term:`chemin des importations " +"`." #: ../Doc/glossary.rst:846 msgid "path-like object" @@ -2111,7 +2113,7 @@ msgid "" "contribute to a namespace package, as defined in :pep:`420`." msgstr "" "Jeu de fichiers dans un seul dossier (pouvant être stocké sous forme de " -"fichier zip) qui contribue à l'espace de noms d'un paquet, tel que défini " +"fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " "dans la :pep:`420`." #: ../Doc/glossary.rst:875 @@ -2135,7 +2137,7 @@ msgstr "" "Une API provisoire est une API qui n'offre aucune garantie de " "rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " "Bien que des changements majeurs d'une telle interface ne soient pas " -"attendus, tant qu'elle est étiquetée provisoire, des changement cassant la " +"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " "rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " "les développeurs principaux le jugent nécessaire. Ces modifications ne " "surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " @@ -2147,9 +2149,9 @@ msgid "" "\"solution of last resort\" - every attempt will still be made to find a " "backwards compatible resolution to any identified problems." msgstr "" -"Même pour les API provisoires, les changement cassant la rétrocompatibilité " -"sont considérées comme des \"solutions de dernier recours\". Tout ce qui est " -"possible sera fait pour tenter de résoudre les problème en conservant la " +"Même pour les API provisoires, les changements cassant la rétrocompatibilité " +"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problèmes en conservant la " "rétrocompatibilité." #: ../Doc/glossary.rst:893 @@ -2201,13 +2203,12 @@ msgstr "" "idiomatique en Python de parcourir les éléments d'un itérable en utilisant :" "keyword:`for`. Beaucoup d'autres langages n'ont pas cette possibilité, donc " "les gens qui ne sont pas habitués à Python utilisent parfois un compteur " -"numérique à la place : ::" +"numérique à la place ::" #: ../Doc/glossary.rst:916 msgid "As opposed to the cleaner, Pythonic method::" msgstr "" -"Plutôt qu'utiliser la méthode, plus propre et élégante, donc " -"*Pythonique* : ::" +"Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" #: ../Doc/glossary.rst:920 msgid "qualified name" @@ -2220,10 +2221,10 @@ msgid "" "top-level functions and classes, the qualified name is the same as the " "object's name::" msgstr "" -"Nom, comprenant des points, montrant le \"chemin\" de l'espace de noms " +"Nom, comprenant des points, montrant le \"chemin\" de l'espace de nommage " "global d'un module vers une classe, fonction ou méthode définie dans ce " "module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " -"premier niveau, le nom qualifié est le même que le nom de l'objet : ::" +"premier niveau, le nom qualifié est le même que le nom de l'objet ::" #: ../Doc/glossary.rst:939 msgid "" @@ -2234,7 +2235,7 @@ msgstr "" "Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " "(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " "par des points) vers le module, incluant tous les paquets parents. Par " -"exemple : ``email.mime.text`` ::" +"exemple : ``email.mime.text`` ::" #: ../Doc/glossary.rst:946 msgid "reference count" @@ -2270,7 +2271,7 @@ msgstr "" #: ../Doc/glossary.rst:959 msgid "See also :term:`namespace package`." -msgstr "Voir aussi :term:`paquet-espace de noms`." +msgstr "Voir aussi :term:`paquet-espace de nommage `." #: ../Doc/glossary.rst:960 msgid "__slots__" @@ -2308,7 +2309,7 @@ msgstr "" ":term:`itérable` qui offre un accès efficace à ses éléments par un indice " "sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " "qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " -"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" +"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" "`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" "`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " "*mapping* plutôt qu'une séquence, car ses accès se font par une clé " @@ -2502,7 +2503,7 @@ msgstr "" #: ../Doc/glossary.rst:1056 msgid "could be made more readable like this::" -msgstr "pourrait être rendu plus lisible comme ceci ::" +msgstr "pourrait être rendu plus lisible comme ceci ::" #: ../Doc/glossary.rst:1065 ../Doc/glossary.rst:1079 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." @@ -2526,8 +2527,8 @@ msgid "" "to static type analysis tools, and aid IDEs with code completion and " "refactoring." msgstr "" -"Les indications de type sont facultatifs et ne sont pas indispensables à " -"l'interpréteur Python, mais ils sont utiles aux outils d'analyse de type " +"Les indications de type sont facultatives et ne sont pas indispensables à " +"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " "statique et aident les IDE à compléter et à réusiner (*code refactoring* en " "anglais) le code." @@ -2553,7 +2554,7 @@ msgid "" "splitlines` for an additional use." msgstr "" "Une manière d'interpréter des flux de texte dans lesquels sont reconnues " -"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " "convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " "``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" "`bytes.splitlines` pour d'autres usages." @@ -2571,7 +2572,7 @@ msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Lorsque vous annotez une variable ou un attribut de classe, l'affectation " -"est facultative ::" +"est facultative ::" #: ../Doc/glossary.rst:1096 msgid "" @@ -2580,7 +2581,7 @@ msgid "" msgstr "" "Les annotations de variables sont généralement utilisées pour des :term:" "`indications de types ` : par exemple, cette variable devrait " -"prendre des valeurs de type :class:`int` ::" +"prendre des valeurs de type :class:`int` ::" #: ../Doc/glossary.rst:1102 msgid "Variable annotation syntax is explained in section :ref:`annassign`." @@ -2593,7 +2594,7 @@ msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality." msgstr "" -"Reportez-vous à :term:`function annotation`, à la :pep:` 484` et à la :pep:" +"Reportez-vous à :term:`function annotation`, à la :pep:`484` et à la :pep:" "`526` qui décrivent cette fonctionnalité." #: ../Doc/glossary.rst:1106 diff --git a/howto/argparse.po b/howto/argparse.po index bd58a0085..ef87fbeeb 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -72,7 +72,7 @@ msgid "" "defaults to displaying the contents of the current directory." msgstr "" "La commande :command:`ls` est utile quand elle est exécutée sans aucun " -"paramètre. Par défaut cela affiche le contenu du dossier courant." +"paramètre. Elle affiche par défaut le contenu du dossier courant." #: ../Doc/howto/argparse.rst:51 msgid "" @@ -88,11 +88,11 @@ msgstr "" "Si l'on veut plus que ce qui est proposé par défaut, il faut l'indiquer. " "Dans le cas présent, on veut afficher un dossier différent : ``pypy``. Ce " "que l'on a fait c'est spécifier un argument positionnel. C'est appelé ainsi " -"car cela permet au programme de savoir quoi faire avec la valeur seulement " -"en se basant sur sa position dans la ligne de commande. Ce concept est plus " -"pertinent pour une commande comme :command:`cp` dont l'usage de base est " -"``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et le " -"second est *où vous voulez le copier*." +"car cela permet au programme de savoir quoi faire avec la valeur en se " +"basant seulement sur sa position dans la ligne de commande. Ce concept est " +"plus pertinent pour une commande comme :command:`cp` dont l'usage de base " +"est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " +"le second est *où vous voulez le copier*." #: ../Doc/howto/argparse.rst:60 msgid "" @@ -100,9 +100,9 @@ msgid "" "display more info for each file instead of just showing the file names. The " "``-l`` in that case is known as an optional argument." msgstr "" -"Maintenant, supposons que l'on veut changer la façon dont le programme agit. " -"Dans notre exemple, on affiche plus d'information pour chaque ficher que " -"simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." +"Maintenant, supposons que l'on veuille changer la façon dont le programme " +"agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " +"que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." #: ../Doc/howto/argparse.rst:64 msgid "" @@ -120,8 +120,7 @@ msgstr "Les bases" #: ../Doc/howto/argparse.rst:72 msgid "Let us start with a very simple example which does (almost) nothing::" -msgstr "" -"Commençons par un exemple très simple qui ne fait (quasiment) rien : ::" +msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::" #: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186 #: ../Doc/howto/argparse.rst:207 @@ -131,22 +130,22 @@ msgstr "Ce qui suit est le résultat de l'exécution du code :" #: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 #: ../Doc/howto/argparse.rst:296 msgid "Here is what is happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:97 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." msgstr "" -"Exécuter le script sans aucun paramètre à pour effet que rien est affiché " -"sur la sortie d'erreur. Ce n'est pas très utile." +"Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " +"la sortie d'erreur. Ce n'est pas très utile." #: ../Doc/howto/argparse.rst:100 msgid "" "The second one starts to display the usefulness of the :mod:`argparse` " "module. We have done almost nothing, but already we get a nice help message." msgstr "" -"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On a " +"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " "quasiment rien fait mais on a déjà un beau message d'aide." #: ../Doc/howto/argparse.rst:103 @@ -157,9 +156,9 @@ msgid "" "also for free." msgstr "" "L'option ``--help``, que l'on peut aussi raccourcir en ``-h``, est la seule " -"option que l'on a gratuitement (i.e. pas besoin de la préciser). Préciser " -"quoi que ce soit d'autre entrainera une erreur. Mais même dans ce cas, on " -"reçoit aussi un message utile, toujours gratuitement." +"option que l'on a gratuitement (pas besoin de la préciser). Préciser quoi " +"que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " +"aussi un message utile, toujours gratuitement." #: ../Doc/howto/argparse.rst:110 msgid "Introducing Positional arguments" @@ -167,7 +166,7 @@ msgstr "Introduction aux arguments positionnels" #: ../Doc/howto/argparse.rst:112 msgid "An example::" -msgstr "Un exemple : ::" +msgstr "Un exemple ::" #: ../Doc/howto/argparse.rst:120 msgid "And running the code:" @@ -175,7 +174,7 @@ msgstr "On exécute le code :" #: ../Doc/howto/argparse.rst:138 msgid "Here is what's happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:140 msgid "" @@ -198,7 +197,7 @@ msgid "" "specified, in this case, ``echo``." msgstr "" "La méthode :meth:`parse_args` renvoie en réalité certaines données des " -"paramètres précisées, dans le cas présent : ``echo``." +"paramètres précisés, dans le cas présent : ``echo``." #: ../Doc/howto/argparse.rst:149 msgid "" @@ -208,9 +207,9 @@ msgid "" "``echo``." msgstr "" "La variable est comme une forme de 'magie' que :mod:`argparse` effectue " -"gratuitement (i.e. pas besoin de préciser dans quelle variable la valeur est " -"stockée). Vous aurez aussi remarqué que le nom est le même que l'argument en " -"chaîne de caractère donné à la méthode : ``echo``." +"gratuitement (c.-à-d. pas besoin de préciser dans quelle variable la valeur " +"est stockée). Vous aurez aussi remarqué que le nom est le même que " +"l'argument en chaîne de caractères donné à la méthode : ``echo``." #: ../Doc/howto/argparse.rst:154 msgid "" @@ -223,8 +222,8 @@ msgstr "" "Notez cependant que, même si l'affichage d'aide paraît bien , il n'est pas " "aussi utile qu'il pourrait l'être. Par exemple, on peut lire que ``echo`` " "est un argument positionnel mais on ne peut pas savoir ce que cela fait " -"autrement qu'en le devinant ou en lisant le code source. Donc, rendons le un " -"peu plus utile : ::" +"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " +"peu plus utile ::" #: ../Doc/howto/argparse.rst:165 msgid "And we get:" @@ -233,8 +232,7 @@ msgstr "Et on obtient :" #: ../Doc/howto/argparse.rst:178 msgid "Now, how about doing something even more useful::" msgstr "" -"Maintenant, qu'en dîtes vous s'il on fait quelque chose d'encore plus " -"utile : ::" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" #: ../Doc/howto/argparse.rst:196 msgid "" @@ -245,7 +243,7 @@ msgstr "" "Cela n'a pas très bien fonctionné. C'est parce que :mod:`argparse` traite " "les paramètres que l'on donne comme des chaînes de caractères à moins qu'on " "ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " -"cette entrée comme un entier : ::" +"cette entrée comme un entier ::" #: ../Doc/howto/argparse.rst:217 msgid "" @@ -265,7 +263,7 @@ msgid "" "how to add optional ones::" msgstr "" "Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " -"comment ajouter des paramètres optionnels : ::" +"comment ajouter des paramètres optionnels ::" #: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280 #: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430 @@ -315,7 +313,7 @@ msgstr "" "L'exemple ci-dessus accepte des valeurs entières arbitraires pour ``--" "verbosity`` mais pour notre programme simple seule deux valeurs sont " "réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " -"cela : ::" +"cela ::" #: ../Doc/howto/argparse.rst:298 msgid "" @@ -354,9 +352,9 @@ msgid "" "yet touched on the topic of short versions of the options. It's quite " "simple::" msgstr "" -"Si vous êtes familier avec l'utilisation des ligne de commande vous avez dû " -"remarqué que je n'ai pour l'instant rien dit au sujet des versions " -"raccourcies des paramètres. C'est très simple : ::" +"Si vous êtes familier avec l'utilisation de la ligne de commande, vous avez " +"dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " +"raccourcies des paramètres. C'est très simple ::" #: ../Doc/howto/argparse.rst:326 msgid "And here goes:" @@ -372,7 +370,7 @@ msgstr "Combinaison d'arguments positionnels et optionnels" #: ../Doc/howto/argparse.rst:345 msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de grandir en complexité : ::" +msgstr "Notre programme continue de croître en complexité ::" #: ../Doc/howto/argparse.rst:360 msgid "And now the output:" @@ -391,8 +389,8 @@ msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" msgstr "" -"Qu'en est il si nous donnons à ce programme la possibilité d'avoir plusieurs " -"niveaux de verbosité, et que celui-ci les prend en compte : ::" +"Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " +"niveaux de verbosité, et que celui-ci les prend en compte ::" #: ../Doc/howto/argparse.rst:412 msgid "" @@ -402,7 +400,7 @@ msgid "" msgstr "" "Tout semble bon sauf le dernier, qui montre que notre programme contient un " "bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " -"accepte : ::" +"accepte ::" #: ../Doc/howto/argparse.rst:448 msgid "" @@ -421,7 +419,7 @@ msgstr "" "Essayons maintenant une approche différente pour jouer sur la verbosité, ce " "qui arrive fréquemment. Cela correspond également à comment le programme " "CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " -"de la commande ``python --help``) : ::" +"de la commande ``python --help``) ::" #: ../Doc/howto/argparse.rst:470 msgid "" @@ -457,8 +455,8 @@ msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." msgstr "" -"Et si vous ne spécifiez pas le option ``-v``, ce option sera considéré en " -"tant que valeur ``None``." +"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " +"``None``." #: ../Doc/howto/argparse.rst:509 msgid "" @@ -476,8 +474,7 @@ msgid "" msgstr "" "Malheureusement, notre sortie d'aide n'est pas très informative à propos des " "nouvelles possibilités de notre programme, mais cela peut toujours être " -"corrigé en améliorant sa documentation. (e.g. en utilisant le l'argument " -"``help``)." +"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." #: ../Doc/howto/argparse.rst:516 msgid "That last output exposes a bug in our program." @@ -485,7 +482,7 @@ msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." #: ../Doc/howto/argparse.rst:519 msgid "Let's fix::" -msgstr "Corrigeons : ::" +msgstr "Corrigeons ::" #: ../Doc/howto/argparse.rst:538 msgid "And this is what it gives:" @@ -506,7 +503,7 @@ msgstr "La troisième sortie de programme n'est pas si bien que ça." #: ../Doc/howto/argparse.rst:558 msgid "Let's fix that bug::" -msgstr "Corrigeons ce bogue : ::" +msgstr "Corrigeons ce bogue ::" #: ../Doc/howto/argparse.rst:575 msgid "" @@ -520,7 +517,7 @@ msgstr "" "l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " "Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " "il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " -"type entier (Une erreur :exc:`TypeError` serait alors levée)." +"type entier (une erreur :exc:`TypeError` serait alors levée)." #: ../Doc/howto/argparse.rst:582 msgid "And:" @@ -546,8 +543,8 @@ msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" msgstr "" -"Qu'en est il si nous souhaitons étendre notre mini programme pour le rendre " -"capable de calculer d'autres puissances, et pas seulement des carrés : ::" +"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " +"capable de calculer d'autres puissances, et pas seulement des carrés ::" #: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653 msgid "Output:" @@ -561,7 +558,7 @@ msgid "" msgstr "" "Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité " "pour *changer* le texte qui est affiché. L'exemple suivant au contraire " -"utilise le niveau de verbosité pour afficher *plus* de texte à la place : ::" +"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" #: ../Doc/howto/argparse.rst:667 msgid "Conflicting options" @@ -582,7 +579,7 @@ msgstr "" "qui sont en conflit entre eux. Changeons aussi le reste du programme de " "telle sorte que la nouvelle fonctionnalité fasse sens : nous allons " "introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" -"verbose`` : ::" +"verbose`` ::" #: ../Doc/howto/argparse.rst:695 msgid "" @@ -600,8 +597,8 @@ msgid "" "form ones." msgstr "" "Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " -"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, i.e. " -"faire un mixe entre des paramètres courts et longs." +"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " +"exemple pour faire un mélange entre des paramètres courts et longs." #: ../Doc/howto/argparse.rst:717 msgid "" @@ -609,8 +606,8 @@ msgid "" "your program, just in case they don't know::" msgstr "" "Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " -"le but principal de votre programme, juste dans le cas ou ils ne savent " -"pas : ::" +"le but principal de votre programme, juste dans le cas ou ils ne le " +"sauraient pas ::" #: ../Doc/howto/argparse.rst:738 msgid "" @@ -618,9 +615,9 @@ msgid "" "tells us that we can either use ``-v`` or ``-q``, but not both at the same " "time:" msgstr "" -"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]``, " -"qui nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais " -"pas les deux ensemble :" +"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]`` " +"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " +"les deux ensemble :" #: ../Doc/howto/argparse.rst:760 msgid "Conclusion" @@ -633,6 +630,6 @@ msgid "" "tutorial, you should easily digest them without feeling overwhelmed." msgstr "" "Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " -"documentation est assez détaillée complète et pleine d'exemples. En ayant " -"accompli ce tutoriel, vous pourriez facilement comprendre cette " -"documentation sans vous sentir dépassé." +"documentation est assez détaillée, complète et pleine d'exemples. En ayant " +"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation " +"sans vous sentir dépassé." diff --git a/howto/clinic.po b/howto/clinic.po index e3c2a475a..e94053ce9 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -372,7 +372,7 @@ msgstr "" msgid "Add the following boilerplate above the function, creating our block::" msgstr "" "Ajoutez les lignes standard suivantes au-dessus de votre fonction pour créer " -"notre bloc : ::" +"notre bloc ::" #: ../Doc/howto/clinic.rst:193 msgid "" @@ -405,7 +405,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 #: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 msgid "Sample::" -msgstr "Échantillon : ::" +msgstr "Échantillon ::" #: ../Doc/howto/clinic.rst:211 msgid "" @@ -662,7 +662,7 @@ msgid "" msgstr "" "Pour plus de visibilité, la plupart du code a été écrit dans un fichier ``.c." "h``. Vous devez l'inclure dans votre fichier ``.c`` original, typiquement " -"juste après le bloc du module *clinic* : ::" +"juste après le bloc du module *clinic* ::" #: ../Doc/howto/clinic.rst:421 msgid "" @@ -726,7 +726,7 @@ msgid "" msgstr "" "Quatrièmement, à l'intérieur de la section sortie du bloc, vous trouverez " "une macro pré-processeur qui définit les structures statiques :c:type:" -"`PyMethodDef` appropriées pour ce module natif : ::" +"`PyMethodDef` appropriées pour ce module natif ::" #: ../Doc/howto/clinic.rst:452 msgid "" @@ -771,7 +771,7 @@ msgid "" "like this::" msgstr "" "Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " -"ressembler à ça : ::" +"ressembler à ça ::" #: ../Doc/howto/clinic.rst:477 msgid "" @@ -918,7 +918,7 @@ msgid "" "``pickle.Pickler.dump``, it'd look like this::" msgstr "" "Par exemple, si nous voulons renommer les noms de fonction C générés pour " -"``pickle.Pickler.dump``, ça ressemblerait à ça :" +"``pickle.Pickler.dump``, ça ressemblerait à ça ::" #: ../Doc/howto/clinic.rst:596 msgid "" @@ -938,7 +938,7 @@ msgstr "" "De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " "paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " "Argument Clinic vous permet de donner à un paramètre des noms différents en " -"Python et en C." +"Python et en C ::" #: ../Doc/howto/clinic.rst:614 msgid "" diff --git a/howto/descriptor.po b/howto/descriptor.po index 09f68df01..7738cd37a 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -248,7 +248,7 @@ msgid "" msgstr "" "Pour les classes, la machinerie est dans :meth:`type.__getattribute__` qui " "transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python pur, " -"il ressemble à : ::" +"il ressemble à ::" #: ../Doc/howto/descriptor.rst:110 msgid "The important points to remember are:" @@ -339,10 +339,10 @@ msgid "" "descriptor is useful for monitoring just a few chosen attributes::" msgstr "" "Le code suivant crée une classe dont les objets sont des descripteurs de " -"données qui impriment un message pour chaque lecture ou écriture. " -"Redefinir :meth:`__getattribute__` est une approche alternative qui pourrait " +"données qui affichent un message pour chaque lecture ou écriture. " +"Redéfinir :meth:`__getattribute__` est une approche alternative qui pourrait " "le faire pour chaque attribut. Cependant, ce descripteur n'est utile que " -"pour le suivi de quelques attributs choisis : ::" +"pour le suivi de quelques attributs choisis ::" #: ../Doc/howto/descriptor.rst:181 msgid "" @@ -368,14 +368,14 @@ msgid "" msgstr "" "Appeler :func:`property` est une façon succincte de construire un " "descripteur de données qui déclenche des appels de fonction lors de l'accès " -"à un attribut. Sa signature est : ::" +"à un attribut. Sa signature est ::" #: ../Doc/howto/descriptor.rst:195 msgid "" "The documentation shows a typical use to define a managed attribute ``x``::" msgstr "" "La documentation montre une utilisation typique pour définir un attribut " -"géré ``x`` : ::" +"géré ``x`` ::" #: ../Doc/howto/descriptor.rst:203 msgid "" @@ -383,7 +383,7 @@ msgid "" "protocol, here is a pure Python equivalent::" msgstr "" "Pour voir comment :func:`property` est implémenté dans le protocole du " -"descripteur, voici un un équivalent Python pur : ::" +"descripteur, voici un un équivalent Python pur ::" #: ../Doc/howto/descriptor.rst:243 msgid "" @@ -391,7 +391,7 @@ msgid "" "attribute access and then subsequent changes require the intervention of a " "method." msgstr "" -"La fonction :func:`property` intégrée aide chaque fois qu'une interface " +"La fonction native :func:`property` aide chaque fois qu'une interface " "utilisateur a accordé l'accès à un attribut et que des modifications " "ultérieures nécessitent l'intervention d'une méthode." @@ -409,7 +409,7 @@ msgstr "" "exigent que la cellule soit recalculée à chaque accès ; cependant, le " "programmeur ne veut pas affecter le code client existant accédant " "directement à l'attribut. La solution consiste à envelopper l'accès à " -"l'attribut de valeur dans un descripteur de données de propriété : ::" +"l'attribut de valeur dans un descripteur de données de propriété ::" #: ../Doc/howto/descriptor.rst:263 msgid "Functions and Methods" @@ -454,7 +454,7 @@ msgid "" "Running the interpreter shows how the function descriptor works in practice::" msgstr "" "L'exécution de l'interpréteur montre comment le descripteur de fonction se " -"comporte dans la pratique : ::" +"comporte dans la pratique ::" #: ../Doc/howto/descriptor.rst:326 msgid "Static Methods and Class Methods" @@ -484,7 +484,7 @@ msgstr "" msgid "This chart summarizes the binding and its two most useful variants:" msgstr "" "Ce tableau résume le lien (*binding*) et ses deux variantes les plus " -"utiles : ::" +"utiles ::" #: ../Doc/howto/descriptor.rst:339 msgid "Transformation" @@ -576,7 +576,7 @@ msgid "" "example calls are unexciting::" msgstr "" "Depuis que les méthodes statiques renvoient la fonction sous-jacente sans " -"changement, les exemples d’appels ne sont pas excitants : ::" +"changement, les exemples d’appels ne sont pas excitants ::" #: ../Doc/howto/descriptor.rst:380 msgid "" @@ -584,7 +584,7 @@ msgid "" "`staticmethod` would look like this::" msgstr "" "En utilisant le protocole de descripteur *non-data*, une version Python pure " -"de :func:`staticmethod` ressemblerait à ceci : ::" +"de :func:`staticmethod` ressemblerait à ceci ::" #: ../Doc/howto/descriptor.rst:392 msgid "" @@ -594,7 +594,7 @@ msgid "" msgstr "" "Contrairement aux méthodes statiques, les méthodes de classe préchargent la " "référence de classe dans la liste d'arguments avant d'appeler la fonction. " -"Ce format est le même que l'appelant soit un objet ou une classe : ::" +"Ce format est le même que l'appelant soit un objet ou une classe ::" #: ../Doc/howto/descriptor.rst:407 msgid "" @@ -609,13 +609,13 @@ msgstr "" "utilisations des méthodes de classe est de créer d'autres constructeurs de " "classe. En Python 2.3, la méthode de classe :func:`dict.fromkeys` crée un " "nouveau dictionnaire à partir d'une liste de clés. L'équivalent Python pur " -"est : ::" +"est ::" #: ../Doc/howto/descriptor.rst:423 msgid "Now a new dictionary of unique keys can be constructed like this::" msgstr "" "Maintenant un nouveau dictionnaire de clés uniques peut être construit comme " -"ceci : ::" +"ceci ::" #: ../Doc/howto/descriptor.rst:428 msgid "" @@ -623,4 +623,4 @@ msgid "" "`classmethod` would look like this::" msgstr "" "En utilisant le protocole de descripteur *non-data*, une version Python pure " -"de :func:`classmethod` ressemblerait à ceci : ::" +"de :func:`classmethod` ressemblerait à ceci ::" diff --git a/howto/functional.po b/howto/functional.po index 41aa8987a..5989b034a 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -1127,7 +1127,7 @@ msgid "" msgstr "" ":func:`enumerate(iter, start=0) ` énumère les éléments de " "l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " -"listés (depuis le *début*) et l'élément en cours ::" +"listés (depuis le *début*) et l'élément en cours ::" #: ../Doc/howto/functional.rst:666 msgid "" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index f8726dbdb..98420200e 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumenter CPython avec DTrace et SystemTap" #: ../Doc/howto/instrumentation.rst:0 msgid "author" @@ -27,11 +27,11 @@ msgstr "auteur" #: ../Doc/howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" #: ../Doc/howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" #: ../Doc/howto/instrumentation.rst:12 msgid "" @@ -39,18 +39,22 @@ msgid "" "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" +"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " +"un moyen de d'inspecter ce que font les processus d'un système informatique. " +"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " +"d'écrire des scripts qui permettent de ::" #: ../Doc/howto/instrumentation.rst:16 msgid "filter which processes are to be observed" -msgstr "" +msgstr "Filtrer les processus à observer." #: ../Doc/howto/instrumentation.rst:17 msgid "gather data from the processes of interest" -msgstr "" +msgstr "Recueillir des données sur le processus choisi." #: ../Doc/howto/instrumentation.rst:18 msgid "generate reports on the data" -msgstr "" +msgstr "Générer des rapports sur les données." #: ../Doc/howto/instrumentation.rst:20 msgid "" @@ -58,6 +62,9 @@ msgid "" "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" +"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " +"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " +"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." #: ../Doc/howto/instrumentation.rst:27 msgid "" @@ -66,10 +73,15 @@ msgid "" "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" +"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " +"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " +"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " +"fonctionner ou fonctionner incorrectement sans avertissement lors du " +"changement de version de CPython." #: ../Doc/howto/instrumentation.rst:34 msgid "Enabling the static markers" -msgstr "" +msgstr "Activer les marqueurs statiques" #: ../Doc/howto/instrumentation.rst:36 msgid "" @@ -77,18 +89,21 @@ msgid "" "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" +"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " +"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " +"de développement *SystemTap* doivent être installés." #: ../Doc/howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" -msgstr "" +msgstr "Sur une machine Linux, cela se fait via ::" #: ../Doc/howto/instrumentation.rst:44 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/howto/instrumentation.rst:49 msgid "CPython must then be configured ``--with-dtrace``:" -msgstr "" +msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::" #: ../Doc/howto/instrumentation.rst:55 msgid "" @@ -96,22 +111,33 @@ msgid "" "in the background and listing all probes made available by the Python " "provider::" msgstr "" +"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " +"un processus Python en arrière-plan et en listant toutes les sondes mises à " +"disposition par le fournisseur Python ::" #: ../Doc/howto/instrumentation.rst:72 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" +"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " +"présents dans le binaire compilé, il suffit de regarder s'il contient une " +"section ``.note.stapsdt``." #: ../Doc/howto/instrumentation.rst:80 msgid "" "If you've built Python as a shared library (with --enable-shared), you need " "to look instead within the shared library. For example::" msgstr "" +"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--" +"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. " +"Par exemple ::" #: ../Doc/howto/instrumentation.rst:86 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" +"Une version suffisamment moderne de *readelf* peut afficher les " +"métadonnées ::" #: ../Doc/howto/instrumentation.rst:123 msgid "" @@ -119,10 +145,14 @@ msgid "" "patch strategically-placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" +"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " +"décrivant comment il peut mettre à jour des instructions de code machine " +"stratégiquement placées pour activer les crochets de traçage utilisés par un " +"script *SystemTap*." #: ../Doc/howto/instrumentation.rst:129 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondes DTrace statiques" #: ../Doc/howto/instrumentation.rst:131 msgid "" @@ -131,18 +161,22 @@ msgid "" "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" +"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " +"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " +"En d'autres termes, les appels de fonctions lors de la phase d'import ne " +"seront pas répertoriées ::" #: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 msgid "It can be invoked like this::" -msgstr "" +msgstr "Il peut être utilisé de cette manière ::" #: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marqueurs statiques *SystemTap*" #: ../Doc/howto/instrumentation.rst:201 msgid "" @@ -150,33 +184,39 @@ msgid "" "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"directement les marqueurs statiques. Pour cela vous devez pointer " +"explicitement le fichier binaire qui les contient." #: ../Doc/howto/instrumentation.rst:205 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" +"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " +"hiérarchie d'appel/retour d'un script Python ::" #: ../Doc/howto/instrumentation.rst:245 msgid "where the columns are:" -msgstr "" +msgstr "où les colonnes sont ::" #: ../Doc/howto/instrumentation.rst:247 msgid "time in microseconds since start of script" -msgstr "" +msgstr "temps en microsecondes depuis le début du script" #: ../Doc/howto/instrumentation.rst:249 msgid "name of executable" -msgstr "" +msgstr "nom de l'exécutable" #: ../Doc/howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID du processus" #: ../Doc/howto/instrumentation.rst:253 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" +"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." #: ../Doc/howto/instrumentation.rst:255 msgid "" @@ -184,24 +224,30 @@ msgid "" "the libpython shared library, and the probe's dotted path needs to reflect " "this. For example, this line from the above example:" msgstr "" +"Pour une compilation `--enable-shared` de CPython, les marqueurs sont " +"contenus dans la bibliothèque partagée *libpython*, et le chemin du module " +"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :" #: ../Doc/howto/instrumentation.rst:263 msgid "should instead read:" -msgstr "" +msgstr "doit plutôt se lire comme ::" #: ../Doc/howto/instrumentation.rst:269 msgid "(assuming a debug build of CPython 3.6)" msgstr "" +"(en supposant une version compilée avec le débogage activé de CPython 3.6)" #: ../Doc/howto/instrumentation.rst:273 msgid "Available static markers" -msgstr "" +msgstr "Marqueurs statiques disponibles" #: ../Doc/howto/instrumentation.rst:279 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " +"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." #: ../Doc/howto/instrumentation.rst:282 msgid "" @@ -209,22 +255,29 @@ msgid "" "tracing script as positional arguments, which must be accessed using ``" "$arg1``, ``$arg2``, ``$arg3``:" msgstr "" +"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " +"au script de traçage sous forme d'arguments positionnels, auxquels il faut " +"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" #: ../Doc/howto/instrumentation.rst:286 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" +"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " +"``user_string($arg1)``" #: ../Doc/howto/instrumentation.rst:288 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" +"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " +"``user_string($arg2)``" #: ../Doc/howto/instrumentation.rst:291 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : numéro de ligne ``int``" #: ../Doc/howto/instrumentation.rst:295 msgid "" @@ -232,10 +285,14 @@ msgid "" "execution of a Python function has ended (either via ``return``, or via an " "exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Il n'est déclenché que pour les fonctions en Python pur " +"(code intermédiaire)." #: ../Doc/howto/instrumentation.rst:299 msgid "The arguments are the same as for :c:func:`function__entry`" -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" #: ../Doc/howto/instrumentation.rst:303 msgid "" @@ -243,26 +300,34 @@ msgid "" "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" +"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " +"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " +"n'est pas déclenché dans les fonctions C." #: ../Doc/howto/instrumentation.rst:307 msgid "The arguments are the same as for :c:func:`function__entry`." -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." #: ../Doc/howto/instrumentation.rst:311 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" +"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " +"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." +"collect()`." #: ../Doc/howto/instrumentation.rst:316 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" +"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " +"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." #: ../Doc/howto/instrumentation.rst:321 msgid "SystemTap Tapsets" -msgstr "" +msgstr "*Tapsets* de *SystemTap*" #: ../Doc/howto/instrumentation.rst:323 msgid "" @@ -270,16 +335,24 @@ msgid "" "\": SystemTap's equivalent of a library, which hides some of the lower-level " "details of the static markers." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " +"permet de masquer les détails de niveau inférieur des marqueurs statiques." #: ../Doc/howto/instrumentation.rst:327 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" +"Voici un fichier *tapset*, basé sur une version non partagée compilée de " +"CPython ::" #: ../Doc/howto/instrumentation.rst:350 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" +"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " +"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " +"deviennent disponibles ::" #: ../Doc/howto/instrumentation.rst:356 msgid "" @@ -305,6 +378,10 @@ msgid "" "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" +"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " +"proprement l'exemple précédent de traçage de la hiérarchie des appels de " +"fonctions Python, sans avoir besoin de nommer directement les marqueurs " +"statiques ::" #: ../Doc/howto/instrumentation.rst:388 msgid "" @@ -312,3 +389,7 @@ msgid "" "running CPython code, showing the top 20 most frequently-entered bytecode " "frames, each second, across the whole system:" msgstr "" +"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " +"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " +"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " +"intermédiaire, chaque seconde, sur l'ensemble du système ::" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index ae8d5efcd..8175d1f81 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -271,7 +271,7 @@ msgstr "" #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "Extraire la version du protocole IP" +msgstr "Extraire la version du protocole IP ::" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 7340ccc0d..c4b8d24a2 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -57,7 +57,7 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" diff --git a/howto/logging.po b/howto/logging.po index 6fa1c5397..2dfdbb858 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -255,7 +255,7 @@ msgstr "Un exemple simple" #: ../Doc/howto/logging.rst:103 msgid "A very simple example is::" -msgstr "Un exemple très simple est : ::" +msgstr "Un exemple très simple est ::" #: ../Doc/howto/logging.rst:109 msgid "If you type these lines into a script and run it, you'll see:" @@ -326,7 +326,7 @@ msgid "" "variable *loglevel*, you can use::" msgstr "" "et que vous passez ensuite la valeur du paramètre donné à l'option `--log` " -"dans une variable *loglevel*, vous pouvez utiliser : ::" +"dans une variable *loglevel*, vous pouvez utiliser ::" #: ../Doc/howto/logging.rst:160 msgid "" @@ -336,7 +336,7 @@ msgid "" msgstr "" "de manière à obtenir la valeur à passer à :func:`basicConfig` à travers " "l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune " -"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous : ::" +"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous ::" #: ../Doc/howto/logging.rst:172 msgid "" @@ -382,7 +382,7 @@ msgid "" msgstr "" "Si votre programme est composé de plusieurs modules, voici une façon " "d'organiser\n" -"l'outil de journalisation : ::" +"l'outil de journalisation ::" #: ../Doc/howto/logging.rst:215 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" @@ -417,7 +417,7 @@ msgid "" msgstr "" "Pour enregistrer des données variables, utilisez une chaîne formatée dans le " "message de description de l'évènement et ajoutez les données variables comme " -"argument. Par exemple : ::" +"argument. Par exemple ::" #: ../Doc/howto/logging.rst:241 msgid "will display:" @@ -450,7 +450,7 @@ msgid "" "the format you want to use::" msgstr "" "Pour changer le format utilisé pour afficher le message, vous devez préciser " -"le format que vous souhaitez employer : ::" +"le format que vous souhaitez employer ::" #: ../Doc/howto/logging.rst:267 msgid "which would print:" @@ -483,7 +483,7 @@ msgid "" "your format string::" msgstr "" "Pour afficher la date ou le temps d'un évènement, ajoutez `%(asctime)` dans " -"votre chaîne de formatage : ::" +"votre chaîne de formatage ::" #: ../Doc/howto/logging.rst:293 msgid "which should print something like this:" @@ -498,7 +498,7 @@ msgstr "" "Le format par défaut de l'horodatage (comme ci-dessus) est donné par la " "norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de " "l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, " -"comme dans l'exemple suivant : ::" +"comme dans l'exemple suivant ::" #: ../Doc/howto/logging.rst:307 msgid "which would display something like this:" @@ -571,7 +571,7 @@ msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" -"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par " +"Les gestionnaires (*handlers*) envoient les entrées de journal (créés par " "les *loggers*) vers les destinations voulues." #: ../Doc/howto/logging.rst:348 @@ -622,7 +622,7 @@ msgid "" msgstr "" "Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un " "*logger* au niveau du module, dans chaque module qui emploie `logging`, " -"nommé de la façon suivante : ::" +"nommé de la façon suivante ::" #: ../Doc/howto/logging.rst:367 msgid "" @@ -660,13 +660,13 @@ msgid "" msgstr "" "Il est bien sûr possible d'enregistrer des messages pour des destinations " "différentes. Ce paquet permet d'écrire des entrées de journal dans des " -"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des *sockets* " -"génériques, des files d'attente, ou des mécanismes d'enregistrement " -"spécifiques au système d'exploitation, comme *syslog* ou le journal " -"d'événements de Windows NT. Les destinations sont servies par des classes :" -"dfn:`handler`. Vous pouvez créer votre propre classe de destination si vous " -"avez des besoins spéciaux qui ne sont couverts par aucune classe *handler* " -"prédéfinie." +"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des " +"connecteurs (*socket* en anglais) génériques, des files d'attente, ou des " +"mécanismes d'enregistrement spécifiques au système d'exploitation, comme " +"*syslog* ou le journal d'événements de Windows NT. Les destinations sont " +"servies par des classes :dfn:`handler`. Vous pouvez créer votre propre " +"classe de destination si vous avez des besoins spéciaux qui ne sont couverts " +"par aucune classe *handler* prédéfinie." #: ../Doc/howto/logging.rst:383 msgid "" @@ -693,7 +693,7 @@ msgstr "" msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" "Le format par défaut des messages est défini par :func:`basicConfig` comme " -"suit : ::" +"suit ::" #: ../Doc/howto/logging.rst:397 msgid "" @@ -1146,8 +1146,7 @@ msgid "" "being the names of the objects::" msgstr "" "Le module Python suivant crée un *logger*, un *handler* et un *formatter* " -"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets " -"près : ::" +"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets près ::" #: ../Doc/howto/logging.rst:647 msgid "Here is the logging.conf file:" @@ -1235,8 +1234,8 @@ msgstr "" "si vous avez accès à la fonctionnalité de traitement YAML, un fichier au " "format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, " "vous pouvez construire le dictionnaire dans le code Python, le recevoir sous " -"forme de *pickle* sur un connecteur (*socket* en anglais), ou utiliser " -"n'importe quelle approche suivant la logique de votre application." +"forme de *pickle* sur un connecteur, ou utiliser n'importe quelle approche " +"suivant la logique de votre application." #: ../Doc/howto/logging.rst:733 msgid "" @@ -1805,7 +1804,7 @@ msgstr "" "exceptions qui se produisent lors de la journalisation en production. Il " "s'agit de sorte que les erreurs qui se produisent lors de la gestion des " "événements de journalisation (telles qu'une mauvaise configuration de la " -"journalisation , une erreur réseau ou d'autres erreurs similaires) ne " +"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " "provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 diff --git a/howto/pyporting.po b/howto/pyporting.po index d9f0d4a6c..e23f84cfb 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -120,9 +120,9 @@ msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" -"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances " -"que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip " -"install caniusepython3``)" +"Utiliser `caniusepython3`_ pour déterminer quelles sont, parmi les " +"dépendances que vous utilisez, celles qui bloquent votre utilisation de " +"Python 3 (``pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -767,7 +767,7 @@ msgstr "" "Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " "Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " "Python 3 et de supposer que les versions futures de Python 2 seront plus " -"compatibles avec Python 3 qu'avec Python 2 : ::" +"compatibles avec Python 3 qu'avec Python 2 ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -778,7 +778,7 @@ msgstr "" "Néanmoins la meilleure solution est de ne pas chercher à déterminer la " "version de Python mais plutôt à détecter les fonctionnalités disponibles. " "Cela évite les problèmes potentiels liés aux erreurs de détection de version " -"et facilite la compatibilité future : ::" +"et facilite la compatibilité future ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" @@ -803,7 +803,7 @@ msgid "" msgstr "" "Afin de vous aider à maintenir la compatibilité, nous préconisons que tous " "les nouveaux modules que vous créez aient au moins le bloc de code suivant " -"en en-tête : ::" +"en en-tête ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -850,7 +850,7 @@ msgid "" msgstr "" "**Après** avoir rendu votre code compatible avec Python 3, vous devez " "commencer à vous intéresser au portage de vos dépendances. Le projet " -"caniusepython3_ a été créé afin de vous aider à déterminer quels projets " +"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets " "sont bloquants dans votre support de Python 3, directement ou indirectement. " "Il existe un outil en ligne de commande ainsi qu'une interface web : https://" "caniusepython3.com." @@ -927,7 +927,7 @@ msgstr "" "différents renvoient simplement ``False`` mais si vous avez fait une erreur " "dans votre séparation de la gestion texte/données binaires ou votre indiçage " "des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " -"exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son " "identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 diff --git a/howto/regex.po b/howto/regex.po index 5738c500a..0d5e7060d 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -1371,7 +1371,7 @@ msgid "" "it is to read? ::" msgstr "" "Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " -"constater qu'elle est beaucoup plus facile à lire ::" +"constater qu'elle est beaucoup plus facile à lire ::" #: ../Doc/howto/regex.rst:659 msgid "Without the verbose setting, the RE would look like this::" @@ -2589,7 +2589,7 @@ msgstr "" #: ../Doc/howto/regex.rst:1364 msgid "This is far more readable than::" -msgstr "Ceci est beaucoup plus lisible que::" +msgstr "Ceci est beaucoup plus lisible que ::" #: ../Doc/howto/regex.rst:1370 msgid "Feedback" diff --git a/howto/sockets.po b/howto/sockets.po index bbcb725ef..00402c730 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -103,7 +103,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:54 msgid "Creating a Socket" -msgstr "Créer un *socket*" +msgstr "Créer un connecteur" #: ../Doc/howto/sockets.rst:56 msgid "" @@ -199,9 +199,10 @@ msgid "" msgstr "" "Si vous avez besoin d'une communication rapide entre deux processus sur une " "même machine, vous devriez regarder comment utiliser les *pipes* ou la " -"mémoire partagée. Si vous décidez d'utiliser les sockets AF_INET, liez le " -"connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-formes, " -"cela court-circuitera quelques couches réseau et sera un peu plus rapide." +"mémoire partagée. Si vous décidez d'utiliser les connecteurs AF_INET, liez " +"le connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-" +"formes, cela court-circuite quelques couches réseau et est un peu plus " +"rapide." #: ../Doc/howto/sockets.rst:129 msgid "" @@ -456,7 +457,7 @@ msgid "" "it. (Actually, if you're nuts, you can switch back and forth.)" msgstr "" "En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-" -"bloquant. En C, c'est plus complexe, (pour commencer, vous devez choisir " +"bloquant. En C, c'est plus complexe (pour commencer, vous devez choisir " "entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " "distinguer ``O_NDELAY``, qui est complètement différente de " "``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après " @@ -548,10 +549,10 @@ msgid "" "something else." msgstr "" "En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " -"C'est une façon de déterminer si vous allez bloquer — le socket redevient " -"lisible lorsqu'il y a quelque chose dans les tampons. Cependant, cela n'aide " -"pas encore à déterminer si l'autre extrémité a terminé, ou si elle est " -"simplement occupée par autre chose." +"C'est une façon de déterminer si vous allez bloquer — le connecteur " +"redevient lisible lorsqu'il y a quelque chose dans les tampons. Cependant, " +"cela n'aide pas encore à déterminer si l'autre extrémité a terminé, ou si " +"elle est simplement occupée par autre chose." #: ../Doc/howto/sockets.rst:377 msgid "" diff --git a/howto/sorting.po b/howto/sorting.po index 7c73010f6..d79043788 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -65,7 +65,7 @@ msgid "" "It returns a new sorted list::" msgstr "" "Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" -"func:`sorted`. Elle renvoie une nouvelle liste triée : ::" +"func:`sorted`. Elle renvoie une nouvelle liste triée ::" #: ../Doc/howto/sorting.rst:26 msgid "" @@ -368,7 +368,7 @@ msgstr "" "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " "survenir quand des utilisateurs fournissent une fonction de comparaison et " "qu'il faut convertir cette fonction en une fonction-clef. La fonction " -"d'encapsulation suivante rend cela plus facile à faire : ::" +"d'encapsulation suivante rend cela plus facile à faire ::" #: ../Doc/howto/sorting.rst:245 msgid "To convert to a key function, just wrap the old comparison function:" @@ -417,7 +417,7 @@ msgstr "" "Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " "lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " "facile d'ajouter un ordre de tri standard à une classe en définissant sa " -"méthode :meth:`__lt__` : ::" +"méthode :meth:`__lt__` ::" #: ../Doc/howto/sorting.rst:285 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index e3695794c..98483a054 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -233,7 +233,7 @@ msgstr "" "d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " "exemple, est deux traits diagonaux et un trait horizontal, bien que les " "détails exacts dépendent de la police utilisée. La plupart du code Python " -"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " "est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " "des polices d’un terminal." @@ -267,7 +267,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:142 msgid "It's not portable; different processors order the bytes differently." msgstr "" -"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " "différemment." #: ../Doc/howto/unicode.rst:144 @@ -280,10 +280,10 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" -"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " "points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " "occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " -"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " "L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " "ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " "généralement pas si grandes que ça), mais l'accroissement de notre " @@ -398,7 +398,7 @@ msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" -"Si le point de code est >= 128, il est transformé en une séquence de deux, " +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " "trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " "et 255." @@ -456,7 +456,7 @@ msgid "" msgstr "" "Le site du `Consortium Unicode `_, en anglais, a des " "diagrammes de caractères, un glossaire et des versions PDF de la " -"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " "`chronologie `_ de l’origine et du " "développement de l’Unicode est également disponible sur le site." @@ -481,8 +481,8 @@ msgid "" "encoding `_\" and `UTF-8 " "`_, for example." msgstr "" -"Les pages Wikipédia sont souvent utiles ; voir les pages pour \"`Codage des " -"caractères `_\" et " +"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " +"caractères `_ » et " "`UTF-8 `_, par exemple." #: ../Doc/howto/unicode.rst:233 @@ -527,7 +527,7 @@ msgstr "" msgid "" "Side note: Python 3 also supports using Unicode characters in identifiers::" msgstr "" -"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" #: ../Doc/howto/unicode.rst:266 msgid "" @@ -540,8 +540,8 @@ msgstr "" "si vous voulez garder le code source uniquement en ASCII pour une raison " "quelconque, vous pouvez également utiliser des séquences d'échappement dans " "les littéraux de chaîne (en fonction de votre système, il se peut que vous " -"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence " -"d'échappement ``\\u...``) ::" +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" #: ../Doc/howto/unicode.rst:278 msgid "" @@ -550,7 +550,7 @@ msgid "" "``UTF-8``, and optionally an *errors* argument." msgstr "" "De plus, une chaîne de caractères peut être créée en utilisant la méthode :" -"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " "argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " "*errors*." @@ -567,7 +567,7 @@ msgstr "" "L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " "pas être convertie selon les règles de l'encodage. Les valeurs autorisées " "pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" -"`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " "``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " "caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " "avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " @@ -647,7 +647,7 @@ msgstr "" "`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " "ce module sont généralement de bas-niveau pour être facilement utilisées et " "l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " -"module ne sera pas couvert dans ce HOWTO." +"module ne sera pas couvert dans ce guide." #: ../Doc/howto/unicode.rst:364 msgid "Unicode Literals in Python Source Code" @@ -662,7 +662,7 @@ msgid "" msgstr "" "Dans le code source Python, des points de code Unicode spécifiques peuvent " "être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " -"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" "\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" #: ../Doc/howto/unicode.rst:378 @@ -677,7 +677,7 @@ msgstr "" "à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " "beaucoup de caractères accentués, comme c'est le cas dans un programme avec " "des messages en français ou dans une autre langue utilisant des lettres " -"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " "l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." #: ../Doc/howto/unicode.rst:384 @@ -688,8 +688,8 @@ msgid "" "characters used at runtime." msgstr "" "Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " -"naturel de votre langue. Vous pourriez alors éditer le code source de " -"Python avec votre éditeur favori qui affiche les caractères accentués " +"naturel de votre langue. Vous pourriez alors éditer le code source de Python " +"avec votre éditeur favori qui affiche les caractères accentués " "naturellement, et a les bons caractères utilisés au moment de l'exécution." #: ../Doc/howto/unicode.rst:389 @@ -701,7 +701,7 @@ msgid "" msgstr "" "Python considère que le code source est écrit en UTF-8 par défaut, mais vous " "pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " -"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " "la deuxième ligne du fichier source ::" #: ../Doc/howto/unicode.rst:399 @@ -712,12 +712,12 @@ msgid "" "special; they have no significance to Python but are a convention. Python " "looks for ``coding: name`` or ``coding=name`` in the comment." msgstr "" -"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables " +"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables " "locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " -"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs " -"que le commentaire est spécial ; ils n'ont aucune signification pour Python " -"mais sont une convention. Python cherche ``coding: name`` ou " -"``coding=name`` dans le commentaire." +"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* " +"que le commentaire est spécial ; ils n'ont aucune signification pour Python " +"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` " +"dans le commentaire." #: ../Doc/howto/unicode.rst:405 msgid "" @@ -725,7 +725,7 @@ msgid "" "as already mentioned. See also :pep:`263` for more information." msgstr "" "Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " -"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." #: ../Doc/howto/unicode.rst:410 msgid "Unicode Properties" @@ -768,10 +768,10 @@ msgstr "" "Les codes de catégorie sont des abréviations décrivant la nature du " "caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " "« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " -"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " "``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " "autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " -"autre ». Voir la section `Valeurs générales des catégories de la " +"autre ». Voir la section `Valeurs générales des catégories de la " "documentation de la base de données de caractères Unicode `_ (ressource en anglais) " "pour une liste de codes de catégories." @@ -790,9 +790,9 @@ msgid "" "in the ``'Nd'`` category." msgstr "" "Les expressions régulières gérées par le module :mod:`re` peuvent être " -"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " "caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " -"différentes selon que le motif est fourni en octets ou en texte. Par " +"différentes selon que le motif est fourni en octets ou en texte. Par " "exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " "chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." @@ -811,7 +811,7 @@ msgid "" "match the substring \"57\" instead." msgstr "" "Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " -"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." "compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." #: ../Doc/howto/unicode.rst:478 @@ -829,7 +829,7 @@ msgstr "" msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" "Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " -"sont :" +"sont :" #: ../Doc/howto/unicode.rst:491 msgid "" @@ -871,7 +871,7 @@ msgid "" msgstr "" "Marc-André Lemburg a donné une présentation intitulée `« Python et " "Unicode » (diapositives PDF) `_ à EuroPython 2002. Les diapositives sont un excellent " +"EPC2002-Talk.pdf>`_ à *EuroPython* 2002. Les diapositives sont un excellent " "aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " "de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " "``u``)." @@ -889,7 +889,7 @@ msgstr "" "Une fois que vous avez écrit du code qui fonctionne avec des données " "Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " "des chaînes Unicode dans votre programme et comment convertir les chaînes " -"Unicode dans une forme appropriée pour le stockage ou la transmission ?" +"Unicode dans une forme appropriée pour le stockage ou la transmission ?" #: ../Doc/howto/unicode.rst:515 msgid "" @@ -900,7 +900,7 @@ msgid "" "valued columns and can return Unicode values from an SQL query." msgstr "" "Il est possible que vous n'ayez rien à faire en fonction de vos sources " -"d'entrée et des destinations de vos données de sortie ; il convient de " +"d'entrée et des destinations de vos données de sortie ; il convient de " "vérifier si les bibliothèques utilisées dans votre application gèrent " "l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " "données Unicode. De nombreuses bases de données relationnelles prennent " @@ -934,15 +934,15 @@ msgid "" "least a moment you'd need to have both the encoded string and its Unicode " "version in memory.)" msgstr "" -"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"La nature multi-octets des encodages pose problème ; un caractère Unicode " "peut être représenté par plusieurs octets. Si vous voulez lire le fichier " "par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " "écrire un code de gestion des erreurs pour détecter le cas où une partie " "seulement des octets codant un seul caractère Unicode est lue à la fin d'un " "morceau. Une solution serait de lire le fichier entier en mémoire et " "d'effectuer le décodage, mais cela vous empêche de travailler avec des " -"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " -"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " "pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " "sa version Unicode en mémoire)." @@ -958,14 +958,14 @@ msgid "" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" "La solution serait d'utiliser l'interface de décodage de bas-niveau pour " -"intercepter le cas des séquences d'encodage incomplètes. Ce travail " -"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " "peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " "est dans un encodage spécifié et accepte les paramètres Unicode pour des " "méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." -"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :" -"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:" -"`bytes.decode`." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:" +"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes." +"decode`." #: ../Doc/howto/unicode.rst:545 msgid "Reading Unicode from a file is therefore simple::" @@ -995,13 +995,13 @@ msgstr "" "boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " "indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " "*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " -"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, " -"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un " -"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement " -"écrite comme premier caractère et sera silencieusement retirée lorsque le " -"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-" -"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, " -"qui spécifient un ordre d'octets donné et ne sautent pas la BOM." +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " +"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " +"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " +"comme premier caractère et sera silencieusement retirée lorsque le fichier " +"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " +"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " +"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." #: ../Doc/howto/unicode.rst:568 msgid "" @@ -1038,7 +1038,7 @@ msgid "" msgstr "" "La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " "sur votre système actuel, au cas où vous voudriez faire l'encodage " -"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " +"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " "Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " "généralement simplement fournir la chaîne Unicode comme nom de fichier et " "elle est automatiquement convertie à l'encodage qui convient ::" @@ -1097,7 +1097,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:640 msgid "The most important tip is:" -msgstr "Le conseil le plus important est:" +msgstr "Le conseil le plus important est :" #: ../Doc/howto/unicode.rst:642 msgid "" @@ -1119,8 +1119,8 @@ msgstr "" "Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " "les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " "de bogues dans votre programme augmentent partout où vous combinez les deux " -"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " -"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" "`TypeError` est levée." #: ../Doc/howto/unicode.rst:650 @@ -1138,10 +1138,10 @@ msgstr "" "autre source non fiable, une technique courante consiste à vérifier la " "présence de caractères illégaux dans une chaîne de caractères avant de " "l'utiliser pour générer une ligne de commande ou de la stocker dans une base " -"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " -"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " "intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " -"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " "spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " "choisir un moyen intelligent de cacher du texte malveillant dans le flux de " "données encodé." @@ -1181,11 +1181,10 @@ msgid "" "to examine or modify the ASCII parts, you can open the file with the " "``surrogateescape`` error handler::" msgstr "" -"Vous avez besoin de modifier un fichier mais vous ne connaissez pas " -"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII " -"et que vous voulez seulement examiner ou modifier les parties ASCII, vous " -"pouvez ouvrir le fichier avec le gestionnaire d'erreurs " -"``surrogateescape`` ::" +"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " +"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " +"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " +"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" #: ../Doc/howto/unicode.rst:697 msgid "" @@ -1204,8 +1203,8 @@ msgid "" msgstr "" "Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " -"donnée lors de PyCon 2010 de David Beazley, parle du traitement de texte et " -"du traitement des données binaires." +"donnée lors de *PyCon* 2010 de David Beazley, parle du traitement de texte " +"et du traitement des données binaires." #: ../Doc/howto/unicode.rst:711 msgid "" @@ -1219,7 +1218,7 @@ msgstr "" "Unicodeaware Applications in Python\" `_ (ressource en " "anglais) traite des questions d'encodage de caractères ainsi que de " -"l'internationalisation et de la localisation d'une application. Ces " +"l'internationalisation et de la localisation d'une application. Ces " "diapositives ne couvrent que Python 2.x." #: ../Doc/howto/unicode.rst:717 @@ -1229,7 +1228,7 @@ msgid "" "discusses the internal Unicode representation in Python 3.3." msgstr "" "`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence PyCon 2013 " +"unicode-in-python>`_ (ressource en anglais) est une conférence *PyCon* 2013 " "donnée par Benjamin Peterson qui traite de la représentation interne Unicode " "en Python 3.3." diff --git a/install/index.po b/install/index.po index a430710cb..a076f7c5e 100644 --- a/install/index.po +++ b/install/index.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/install/index.rst:7 msgid "Installing Python Modules (Legacy version)" -msgstr "installation des modules python (Version historique)" +msgstr "Installation des modules python (Version historique)" #: ../Doc/install/index.rst:0 msgid "Author" @@ -190,21 +190,23 @@ msgid "" msgstr "" "Si vous téléchargez une distribution source du module, vous pouvez dire " "assez rapidement s'il a été empaqueté et distribué de la façon standard, " -"c'est à dire en utilisant Distutils. Premièrement, le nom et le numéro de " -"version de la distribution seront affichés en bonne place dans le nom de " +"c'est-à-dire en utilisant Distutils. Premièrement, le nom et le numéro de " +"version de la distribution sont affichés en bonne place dans le nom de " "l'archive téléchargée, par exemple :file:`foo-1.0.tar.gz` ou :file:" -"`widget-0.9.7.zip`. Ensuite, l'archive va se décompresser dans un répertoire " -"du même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " -"distribution va contenir un script d'installation :file:`setup.py` et un " +"`widget-0.9.7.zip`. Ensuite, l'archive se décompresse dans un répertoire du " +"même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " +"distribution contient un script d'installation :file:`setup.py` et un " "fichier nommé :file:`README.txt` ou éventuellement juste :file:`README`, qui " "doit expliquer que la construction et l'installation de la distribution du " -"module se fait simplement en exécutant ceci : ::" +"module se fait simplement en exécutant ceci ::" #: ../Doc/install/index.rst:116 msgid "" "For Windows, this command should be run from a command prompt window (:" "menuselection:`Start --> Accessories`)::" msgstr "" +"Sous Windows, cette commande doit être lancée depuis une invite de commande " +"(:menuselection:`Démarrer --> Accessoires`) ::" #: ../Doc/install/index.rst:121 msgid "" @@ -215,11 +217,11 @@ msgid "" "you need to get out of this manual." msgstr "" "Si toutes ces choses sont vérifiées, alors vous savez déjà comment " -"construire et installer le module que vous venez de télécharger : en " +"construire et installer le module que vous venez de télécharger : en " "exécutant la commande ci-dessus. Sauf si vous avez besoin d'installer les " "choses d'une manière non standard ou de personnaliser le processus de " "construction, vous n'avez pas vraiment besoin de ce manuel. Ou plutôt, la " -"commande ci-dessus est tout ce dont vous avez besoin de sortir de ce manuel." +"commande ci-dessus est tout ce dont vous avez besoin de retenir de ce manuel." #: ../Doc/install/index.rst:131 msgid "Standard Build and Install" @@ -231,9 +233,9 @@ msgid "" "module distribution using the Distutils is usually one simple command to run " "from a terminal::" msgstr "" -"Comme décrit dans la section :ref:`inst-new-standard`, la construction et " -"l'installation d'une distribution d'un module en utilisant Distutils est " -"habituellement fait avec la commande dans un terminal : ::" +"Comme décrit dans la section :ref:`inst-new-standard`, construire et " +"installer une distribution de modules en utilisant les Distutils consiste " +"généralement à exécuter une simple commande dans un terminal ::" #: ../Doc/install/index.rst:143 msgid "Platform variations" @@ -248,11 +250,11 @@ msgid "" "thing to do is::" msgstr "" "Vous devez toujours exécuter la commande *setup* à partir du répertoire " -"racine de la distribution, à savoir le sous-répertoire de niveau supérieur à " -"celui où se sont décompressées les sources de la distribution du module. Par " -"exemple, si vous venez de télécharger les sources d'une distribution du " -"module :file:`foo-1.0.tar.gz` sous un système UNIX, la méthode normale " -"consiste à faire : ::" +"racine de la distribution, à savoir le sous-répertoire de plus haut niveau " +"dans l'arborescence où se sont décompressées les sources de la distribution " +"du module. Par exemple, si vous venez de télécharger les sources d'une " +"distribution du module :file:`foo-1.0.tar.gz` sous un système UNIX, la " +"méthode normale consiste à faire ::" #: ../Doc/install/index.rst:154 msgid "" @@ -265,11 +267,11 @@ msgid "" msgstr "" "Sous Windows, vous avez probablement téléchargé :file:`foo-1.0.zip`. Si vous " "avez téléchargé le fichier d'archive dans :file:`C:\\\\Temp`, il se " -"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " -"utiliser soit un manipulateur d'archive avec une interface graphique (comme " -"WinZip) soit un outil de ligne de commande (telles que :program:`unzip` ou :" -"program:`pkunzip`) pour décompresser l'archive. Ensuite, ouvrez une fenêtre " -"d'invite de commandes et exécutez : ::" +"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " +"utiliser soit un gestionnaire d'archives graphique (comme WinZip), soit un " +"outil de ligne de commande (tels que :program:`unzip` ou :program:`pkunzip`) " +"pour décompresser l'archive. Ensuite, ouvrez une fenêtre d'invite de " +"commandes et exécutez ::" #: ../Doc/install/index.rst:168 msgid "Splitting the job up" @@ -287,12 +289,12 @@ msgid "" "privileges)." msgstr "" "Exécuter ``setup.py install`` construit et installe tous les modules en un " -"seul coup. Si vous préférez travailler progressivement -- ce qui est " +"seul coup. Si vous préférez travailler progressivement — ce qui est " "particulièrement utile si vous souhaitez personnaliser le processus de " -"construction, ou si les choses vont mal -- vous pouvez utiliser le script de " +"construction ou si les choses vont mal — vous pouvez utiliser le script de " "configuration pour faire une chose à la fois. Cela est particulièrement " "utile lorsque la construction et l'installation doit être faite par " -"différents utilisateurs -- par exemple, vous pouvez vouloir construire une " +"différents utilisateurs — par exemple, vous pouvez vouloir construire une " "distribution d'un module et la transférer à un administrateur système pour " "l'installation (ou le faire vous-même, avec les privilèges de super-" "utilisateur)." @@ -304,7 +306,7 @@ msgid "" msgstr "" "Par exemple, vous pouvez construire tout en une seule étape et ensuite " "installer le tout dans une deuxième étape, en invoquant le script " -"d'installation deux fois : ::" +"d'installation deux fois ::" #: ../Doc/install/index.rst:184 msgid "" @@ -325,12 +327,12 @@ msgid "" "advanced tasks. If you get into distributing your own Python modules and " "extensions, you'll run lots of individual Distutils commands on their own." msgstr "" -"Il se peut que vous n'ayez pas souvent besoin de cette capacité à découper " -"les étapes si tout ce que vous faite est d'installer les modules téléchargés " -"sur le Net, mais c'est très pratique pour des tâches plus avancées. Si vous " -"en venez à distribuer vos propres modules et extensions Python, vous allez " -"exécuter beaucoup de commandes individuelles de Distutils, indépendamment " -"les unes des autres." +"Il se peut que vous n'ayez pas souvent besoin de cette capacité à séparer " +"les étapes si tout ce que vous faites est d'installer les modules " +"téléchargés sur le Net, mais c'est très pratique pour des tâches plus " +"avancées. Si vous en venez à distribuer vos propres modules et extensions " +"Python, vous allez exécuter beaucoup de commandes individuelles de " +"Distutils, indépendamment les unes des autres." #: ../Doc/install/index.rst:198 msgid "How building works" @@ -346,10 +348,10 @@ msgid "" msgstr "" "Comme sous-entendu ci-dessus, la commande :command:`build` est chargée de " "mettre les fichiers à installer dans un *répertoire de travail*. Par défaut, " -"c'est :file:`build` à la racine de la distribution ; si vous êtes très " +"c'est :file:`build` à la racine de la distribution ; si vous êtes très " "préoccupés par la vitesse, ou si vous voulez conserver l'arborescence des " "sources d'origine, vous pouvez changer le répertoire de construction avec " -"l'option :option:`!--build-base`. Par exemple : ::" +"l'option :option:`!--build-base`. Par exemple ::" #: ../Doc/install/index.rst:208 msgid "" @@ -358,14 +360,14 @@ msgid "" "files`.) Normally, this isn't necessary." msgstr "" "(Ou vous pourriez le faire de façon permanente avec une directive dans votre " -"système ou dans le fichier de configuration personnelle de Distutils ; voir " +"système ou dans le fichier de configuration personnelle de Distutils ; voir " "la section :ref:`inst-config-files`.) Normalement, ce n'est pas nécessaire." #: ../Doc/install/index.rst:212 msgid "The default layout for the build tree is as follows::" msgstr "" -"La mise en page par défaut pour l'arbre de compilation se présente comme " -"suit : ::" +"L'arborescence par défaut produite par la compilation se présente comme " +"suit ::" #: ../Doc/install/index.rst:219 msgid "" @@ -382,15 +384,16 @@ msgid "" msgstr "" "où ```` représente une brève description de l'actuel système " "d'exploitation / plateforme matérielle et la version Python. La première " -"forme, avec juste un dossier :file:`lib` est utilisé pour les «distributions " -"de modules purs\" -- c'est-à-dire des distributions de module qui ne " -"incorporent que des modules en Python. Si un module de la distribution " +"forme, avec juste un dossier :file:`lib` est utilisée pour les " +"« distributions de modules purs » — c'est-à-dire des distributions de module " +"qui n'incorporent que des modules en Python. Si un module de la distribution " "contient au moins une extension (modules écrits en C/C++), alors il faut " "utiliser la deuxième forme, avec deux dossiers ````. Dans ce cas, le " "répertoire :file:`temp.{plat}` contient les fichiers temporaires générés par " -"le processus de compilation et de lien qui ne seront pas installés. Dans les " -"deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}`) contient tous les " -"modules Python (Python pur et extensions) qui seront installés." +"le processus de compilation et de génération de liens (ils ne seront pas " +"installés). Dans les deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}" +"`) contient tous les modules Python (Python pur et extensions) qui seront " +"installés." #: ../Doc/install/index.rst:229 msgid "" @@ -415,10 +418,10 @@ msgid "" "under :file:`build/lib` (or :file:`build/lib.{plat}`) to your chosen " "installation directory." msgstr "" -"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutez " -"explicitement ou que la commande :command:`install` l'ai fait pour vous), le " -"travail de la commande :command:`install` est relativement simple : tout ce " -"qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" +"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutée " +"explicitement ou que la commande :command:`install` l'ait fait pour vous), " +"le travail de la commande :command:`install` est relativement simple : tout " +"ce qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" "file:`build/lib.{plat}`) dans le répertoire que vous avez choisi pour " "l'installation." @@ -432,14 +435,14 @@ msgid "" "distribution being installed is pure Python or contains extensions (\"non-" "pure\"):" msgstr "" -"Si vous ne choisissez aucun répertoire d'installation -- c'est-à-dire, si " -"vous lancez simplement ``setup.py install``\\ -- alors la commande :command:" -"`install` installe à l'emplacement standard pour les modules tiers de " -"Python. Cet emplacement varie selon la plateforme et selon la façon dont " -"vous avez construit et/ou installés Python lui-même. Sous UNIX (et Mac OS X, " -"qui est également basé sur Unix), il dépend aussi de savoir si le module de " -"la distribution en cours d'installation est en pur Python ou contient des " -"extensions (\"non-pur\"):" +"Si vous ne choisissez aucun répertoire d'installation — c'est-à-dire, si " +"vous lancez simplement ``setup.py install`` — alors la commande :command:" +"`install` installe le module dans l'emplacement standard pour les modules " +"tiers de Python. Cet emplacement varie selon la plateforme et selon la façon " +"dont vous avez construit ou installé Python lui-même. Sous UNIX (et Mac OS " +"X, qui est également basé sur Unix), cela dépend aussi du module de la " +"distribution en cours d'installation, suivant qu'il est en pur Python ou " +"s'il contient des extensions (« non-pur ») :" #: ../Doc/install/index.rst:255 msgid "Platform" @@ -515,14 +518,14 @@ msgstr "" "du système, donc :file:`{prefix}` et :file:`{exec-prefix}` sont généralement " "tous les deux :file:`/usr` sous Linux. Si vous construisez vous-même Python " "sous Linux (ou tout autre système de type Unix), les valeurs par défaut de :" -"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/locale/`." +"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/local`." #: ../Doc/install/index.rst:273 msgid "" "The default installation directory on Windows was :file:`C:\\\\Program Files" "\\\\Python` under Python 1.6a1, 1.5.2, and earlier." msgstr "" -"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" +"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" "\\Program Files\\\\Python` sous Python 1.6a1, 1.5.2 et avant." #: ../Doc/install/index.rst:276 @@ -540,17 +543,17 @@ msgid "" "find out my :file:`{prefix}` and :file:`{exec-prefix}`:" msgstr "" ":file:`{prefix}` et :file:`{exec-prefix}` désignent les répertoires dans " -"lesquels Python est installé et où il trouve les librairies lors de " +"lesquels Python est installé et où il trouve ses bibliothèques lors de " "l'exécution. Ils sont toujours identiques sous Windows et très souvent les " "mêmes sous Unix et Mac OS X. Vous pouvez trouver ce que votre installation " "de Python utilise pour :file:`{prefix}` et :file:`{exec-prefix}` en " "exécutant Python en mode interactif et en tapant quelques commandes simples. " -"Sous Unix, taper seulement ``python`` à l'invite du *shell*. Sous Windows, " -"sélectionner :menuselection:`Démarrer --> Programmes --> Python X.Y --> " -"Python (ligne de commande)`. Un fois l'interpréteur démarré, vous taper du " +"Sous Unix, tapez simplement ``python`` à l'invite du *shell*. Sous Windows, " +"sélectionnez :menuselection:`Démarrer --> Programmes --> Python X.Y --> " +"Python (ligne de commande)`. Une fois l'interpréteur démarré, vous tapez du " "code Python à l'invite de commande. Par exemple, sur mon système Linux, je " -"tape les trois instructions ci-dessous et obtient la sortie comme indiqué " -"pour trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" +"tape les trois instructions ci-dessous et obtiens la sortie suivante pour " +"trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" #: ../Doc/install/index.rst:298 msgid "" @@ -563,7 +566,7 @@ msgid "" "``python3.2`` on UNIX will typically use ``Python32`` on Windows." msgstr "" "Quelques autres remplacements utilisés dans ce document : :file:`{X.Y}` " -"représenter la version de Python, par exemple ``3.2``; :file:`{abiflags}` " +"représente la version de Python, par exemple ``3.2`` ; :file:`{abiflags}` " "sera remplacé par la valeur de :data:`sys.abiflags` ou la chaine vide pour " "les plateformes qui ne définissent pas d’indicateurs d’ABI ; :file:" "`{distname}` sera remplacé par le nom de la distribution de modules en train " @@ -580,11 +583,11 @@ msgid "" "install` on custom installations." msgstr "" "Si vous ne voulez pas installer des modules à l'emplacement standard, ou si " -"vous n'avez pas la permission d'écrire là-bas, alors vous avez besoin de " -"lire la section :ref:`inst-alt-install` sur les alternatives d'installation. " -"Si vous souhaitez personnaliser vos répertoires d'installation plus " -"fortement, allez voir la section :ref:`inst-custom-install` sur les " -"installations personnalisées." +"vous n'avez pas la permission d'écrire à cet endroit, alors lisez la " +"section :ref:`inst-alt-install` relative aux installations alternatives. Si " +"vous souhaitez personnaliser encore plus vos répertoires d'installation, " +"lisez la section :ref:`inst-custom-install` sur les installations " +"personnalisées." #: ../Doc/install/index.rst:316 msgid "Alternate Installation" @@ -608,8 +611,8 @@ msgstr "" "pouvez vouloir essayer un module avant d’en faire une partie standard de " "votre installation locale de Python. C’est surtout vrai lors d’une mise à " "jour d’une distribution déjà présente : vous voulez vous assurer que votre " -"base de scripts marche encore avec la nouvelle version avant de faire la " -"mise à jour pour de vrai." +"base de scripts fonctionne encore avec la nouvelle version avant de faire la " +"mise à jour pour de bon." #: ../Doc/install/index.rst:326 msgid "" @@ -625,9 +628,9 @@ msgstr "" "l’installation de distributions de modules à un emplacement alternatif " "simple et sans douleur. L’idée de base est que vous lui fournissez un " "dossier de base pour l’installation, et la commande :command:`install` " -"choisit un ensemble de dossier (appelé le *schéma d’installation*) dans " +"choisit un ensemble de dossiers (appelé le *schéma d’installation*) dans " "lequel elle installe les fichiers. Les détails diffèrent d’une plateforme à " -"une autre, donc lisez la section ci-dessous qui s’applique à vous." +"une autre, donc lisez les sections ci-dessous qui s’appliquent à vous." #: ../Doc/install/index.rst:334 msgid "" @@ -654,7 +657,7 @@ msgstr "" "Ce schéma est conçu pour être la solution la plus pratique pour les " "utilisateurs qui n’ont pas la permission d’écrire dans le dossier site-" "packages global, ou qui ne veulent pas y écrire. Il est activé avec une " -"simple option : ::" +"simple option ::" #: ../Doc/install/index.rst:351 msgid "" @@ -667,7 +670,7 @@ msgstr "" "USER_BASE` (écrit :file:`{userbase}` dans la suite). Ce schéma installe des " "modules Python purs et les modules d’extension au même endroit (aussi connu " "sous le nom de :data:`site.USER_SITE`).Voici les valeurs pour UNIX, y " -"compris Mac OS XX : ::" +"compris Mac OS X ::" #: ../Doc/install/index.rst:357 ../Doc/install/index.rst:368 #: ../Doc/install/index.rst:419 ../Doc/install/index.rst:468 @@ -723,7 +726,7 @@ msgstr ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" #: ../Doc/install/index.rst:365 msgid "And here are the values used on Windows:" -msgstr "Et voici les valeurs utilisées sur Windows : ::" +msgstr "Et voici les valeurs utilisées sur Windows ::" #: ../Doc/install/index.rst:370 msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" @@ -758,10 +761,15 @@ msgid "" "`{userbase}/lib` to the compiler search path for libraries as well as to the " "runtime search path for shared C libraries (rpath)." msgstr "" +"La commande :command:`build_ext` possède aussi une option ``--user`` pour " +"ajouter :file:`{userbase}/include` dans les chemins où le compilateur " +"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins " +"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C " +"partagées chargeables à l'exécution (`rpath`)." #: ../Doc/install/index.rst:391 msgid "Alternate installation: the home scheme" -msgstr "Installation alternative : le schéma home" +msgstr "Installation alternative : le schéma *home*" #: ../Doc/install/index.rst:393 msgid "" @@ -775,14 +783,13 @@ msgstr "" "L’idée derrière le « schéma home » est que vous compilez et maintenez un " "espace personnel de modules Python. Le nom de ce schéma vient de l’idée du " "dossier « home » sur Unix, vu qu’il n’est pas rare pour un utilisateur UNIX " -"de construire leur dossier *home* avec la même disposition que :file:`/usr/` " -"or :file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel " -"que soit le système d’exploitation." +"d'agencer son dossier *home* avec la même disposition que :file:`/usr/` ou :" +"file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel que " +"soit le système d’exploitation." #: ../Doc/install/index.rst:400 msgid "Installing a new module distribution is as simple as ::" -msgstr "" -"Installer une nouvelle distribution de module est aussi simple que : ::" +msgstr "Installer une nouvelle distribution de module est aussi simple que ::" #: ../Doc/install/index.rst:404 msgid "" @@ -791,9 +798,9 @@ msgid "" "`install` command will expand this to your home directory::" msgstr "" "où vous pouvez fournir le dossier de votre choix à l’option :option:`!--" -"home`. Sur Unix, les paresseux pourront juste mettre un tilde (``~``) ; la " +"home`. Sur Unix, les paresseux peuvent mettre un simple tilde (``~``) ; la " "commande :command:`install` le remplacera par le chemin vers votre dossier " -"*home* : ::" +"personnel ::" #: ../Doc/install/index.rst:410 msgid "" @@ -805,7 +812,7 @@ msgstr "" "Pour que Python puisse trouver les distributions installées avec ce schéma, " "vous devez :ref:`modifier le chemin de recherche de Python ` ou modifier :mod:`sitecustomize` (voir :mod:`site`) pour appeler :" -"func:`site.addsitedir` ou modifiez :data:`sys.path`." +"func:`site.addsitedir` ou modifier :data:`sys.path`." #: ../Doc/install/index.rst:415 msgid "" @@ -814,8 +821,8 @@ msgid "" "follows:" msgstr "" "L’option :option:`!--home` définit le dossier de base de l’installation. Les " -"fichiers sont installés dans les dossiers suivants dans la base de " -"l’installation de la façon suivante : ::" +"fichiers sont installés dans les dossiers suivants sous la base de " +"l'installation de la façon suivante ::" #: ../Doc/install/index.rst:421 msgid ":file:`{home}/lib/python`" @@ -836,7 +843,7 @@ msgstr ":file:`{home}/include/python/{distname}`" #: ../Doc/install/index.rst:427 msgid "(Mentally replace slashes with backslashes if you're on Windows.)" msgstr "" -"(Remplacez mentalement les slashs avec des antislash si vous êtes sur " +"(Remplacez mentalement les slashs avec des antislashs si vous êtes sur " "Windows.)" #: ../Doc/install/index.rst:433 @@ -854,12 +861,12 @@ msgid "" "where the prefix scheme will be useful." msgstr "" "Le schéma de préfixe est utile quand vous voulez une installation de Python " -"pour faire la compilation/l’installation (i.e. exécuter le script *setup*), " +"pour faire la compilation/l’installation (c-à-d exécuter le script *setup*), " "mais utiliser les modules tiers d’une installation Python différente (ou " "quelque chose qui ressemble à une installation Python différente). Si cela " -"semble inhabituel, ça l’est -- c’est pourquoi les schémas *user* et *home* " -"viennent avant. Cependant, il y a au moins deux cas connus où le schéma " -"*prefix* est utile." +"vous semble inhabituel, ça l’est — c’est pourquoi les schémas *user* et " +"*home* viennent avant. Cependant, il y a au moins deux cas connus où le " +"schéma *prefix* est utile." #: ../Doc/install/index.rst:442 msgid "" @@ -876,7 +883,7 @@ msgstr "" "plutôt que d’une addition locale. Cependant, si vous installez des modules " "Python depuis leur source, vous voulez probablement qu’ils aillent dans :" "file:`/usr/local/lib/python2.{X}` plutôt que dans :file:`/usr/lib/python2.{X}" -"`. Ça peut être fait avec : ::" +"`. Ça peut être fait avec ::" #: ../Doc/install/index.rst:451 msgid "" @@ -887,12 +894,12 @@ msgid "" "would have to be installed to, say, :file:`/mnt/{@server}/export/lib/python2." "{X}`. This could be done with ::" msgstr "" -"Une autre possibilité est un système de fichier réseau où le nom est utilisé " -"pour écrire dans un dossier distant qui est différent du nom utilisé pour le " -"lire : par exemple, l’interpréteur Python appelé est :file:`/usr/local/bin/" -"python` et cherche les modules dans :file:`/usr/local/lib/python2.{X}`, mais " -"ces modules doivent être installé dans, par exemple, :file:`/mnt/{@server}/" -"export/lib/python2.{X}`.Ça peut être fait avec : ::" +"Une autre possibilité est un système de fichiers réseau où le nom utilisé " +"pour écrire dans un dossier distant est différent du nom utilisé pour le " +"lire : par exemple, l’interpréteur Python auquel on accède par :file:`/usr/" +"local/bin/python` peut chercher les modules dans :file:`/usr/local/lib/" +"python2.{X}`, mais ces modules doivent être installés dans, par exemple, :" +"file:`/mnt/{@server}/export/lib/python2.{X}`. Ça peut être fait avec ::" #: ../Doc/install/index.rst:460 msgid "" @@ -905,12 +912,13 @@ msgid "" "follows:" msgstr "" "Dans les deux cas, l’option :option:`!--prefix` définit la base de " -"l’installation, et l’option :option:`!--exec-prefix` définit la base " -"d’installation spécifique à la plateforme, qui est utilisé pour des fichiers " -"spécifiques à la plateforme. (Actuellement, ça ne signifie que les " -"distributions de modules non-purs, mais peuvent être étendus aux " -"bibliothèques C, exécutables, etc.). Si :option:`!--exec-prefix` n’est pas " -"fourni, il vaut par défaut :option:`!--prefix`. Les fichiers sont ainsi : ::" +"l’installation et l’option :option:`!--exec-prefix` définit la base " +"d’installation spécifique à la plateforme, qui est utilisée pour des " +"fichiers spécifiques à la plateforme (actuellement, ça ne concerne que les " +"distributions de modules non-purs, mais cela pourrait être étendu aux " +"bibliothèques C, exécutables, etc.). Si l'option :option:`!--exec-prefix` " +"n’est pas fournie, elle vaut par défaut :option:`!--prefix`. Les fichiers " +"sont installés ainsi :" #: ../Doc/install/index.rst:470 ../Doc/install/index.rst:547 msgid "Python modules" @@ -977,18 +985,18 @@ msgstr "" "aucun effet sur la façon dont ces extensions sont construites. En " "particulier, les fichiers en-têtes de Python (:file:`Python.h` et ses amis) " "installés avec l’interpréteur Python utilisé pour exécuter le script *setup* " -"sera utilisé pour compiler les extensions. Il est de votre responsabilité de " -"vous assurer que l’interpréteur utilisé pour pour exécuter les extensions " +"seront utilisés pour compiler les extensions. Il est de votre responsabilité " +"de vous assurer que l’interpréteur utilisé pour exécuter les extensions " "installées de cette façon est compatible avec celui utilisé pour les " "compiler. La meilleure façon pour cela est de s’assurer qu’ils sont " "exactement la même version de Python (possiblement des compilations " "différentes, ou différentes copies de la même). (Évidemment, si vos :option:" "`!--prefix` et :option:`!--exec-prefix` ne pointent pas vers une " -"installation alternative de Python, cela n’a pas de sens." +"installation alternative de Python, cela n’a pas de sens.)" #: ../Doc/install/index.rst:503 msgid "Alternate installation: Windows (the prefix scheme)" -msgstr "" +msgstr "Installation alternative : Windows (le schéma de préfixe)" #: ../Doc/install/index.rst:505 msgid "" @@ -1142,7 +1150,7 @@ msgstr "" #: ../Doc/install/index.rst:613 msgid "or, equivalently, ::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/install/index.rst:621 msgid "" diff --git a/installing/index.po b/installing/index.po index 8c5027abc..92b12cb93 100644 --- a/installing/index.po +++ b/installing/index.po @@ -49,7 +49,7 @@ msgid "" msgstr "" "Cela permet aux utilisateurs de Python de partager et de collaborer " "efficacement, bénéficiant des solutions que les autres ont déjà crées pour " -"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " +"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " "partager leurs propres solutions à tous." #: ../Doc/installing/index.rst:20 @@ -70,7 +70,7 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." @@ -155,7 +155,7 @@ msgstr "" "``distutils`` est le premier système de construction et de distribution " "ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe de " "``distutils`` soit progressivement supprimée, elle reste le fondement de " -"l'infrastructure actuelle de construction de paquet et de distribution. Au " +"l'infrastructure actuelle de construction de paquet et de distribution. Au-" "delà de rester dans la bibliothèque standard, son nom vit aussi sous " "d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " "développement et les standards de la création de paquet." @@ -174,7 +174,7 @@ msgstr "" msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "" -"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " "environnements virtuels." #: ../Doc/installing/index.rst:75 @@ -244,7 +244,7 @@ msgid "" msgstr "" "Normalement, si un module approprié est déjà installé, l'installer à nouveau " "n'aura aucun effet. La mise à jour de modules existants doit être demandée " -"explicitement : ::" +"explicitement ::" #: ../Doc/installing/index.rst:113 msgid "" @@ -275,7 +275,7 @@ msgstr "" #: ../Doc/installing/index.rst:127 msgid "How do I ...?" -msgstr "Comment puis-je ...?" +msgstr "Comment puis-je … ?" #: ../Doc/installing/index.rst:129 msgid "These are quick answers or links for some common tasks." @@ -285,7 +285,7 @@ msgstr "" #: ../Doc/installing/index.rst:132 msgid "... install ``pip`` in versions of Python prior to Python 3.4?" msgstr "" -"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" +"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" #: ../Doc/installing/index.rst:134 msgid "" @@ -308,7 +308,7 @@ msgstr "" #: ../Doc/installing/index.rst:147 msgid "... install packages just for the current user?" -msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" +msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" #: ../Doc/installing/index.rst:149 msgid "" @@ -321,7 +321,7 @@ msgstr "" #: ../Doc/installing/index.rst:154 msgid "... install scientific Python packages?" -msgstr "... Installer des paquets Python scientifiques ?" +msgstr "... Installer des paquets Python scientifiques ?" #: ../Doc/installing/index.rst:156 msgid "" @@ -349,7 +349,7 @@ msgstr "" #: ../Doc/installing/index.rst:169 msgid "... work with multiple versions of Python installed in parallel?" msgstr "" -"... Travailler avec plusieurs versions de Python installés en parallèle ?" +"... Travailler avec plusieurs versions de Python installés en parallèle ?" #: ../Doc/installing/index.rst:171 msgid "" @@ -359,7 +359,7 @@ msgid "" msgstr "" "Sous Linux, Max OS X et autres systèmes POSIX, utiliser les commandes Python " "de la version souhaitée en combinaison avec l'option ``-m`` permet de lancer " -"la version appropriée de ``pip`` : ::" +"la version appropriée de ``pip`` ::" #: ../Doc/installing/index.rst:180 msgid "Appropriately versioned ``pip`` commands may also be available." @@ -391,7 +391,7 @@ msgid "" "package manager and other components of the system if a component is " "unexpectedly upgraded using ``pip``." msgstr "" -"Sur les systèmes Linux, une installation de Python sera généralement inclue " +"Sur les systèmes Linux, une installation de Python sera généralement incluse " "dans le cadre de la distribution. Installer dans cette installation de " "Python nécessite un accès *root* sur le système, et peut interférer avec le " "fonctionnement du gestionnaire de paquets du système et d'autres composants " @@ -409,7 +409,7 @@ msgstr "" #: ../Doc/installing/index.rst:215 msgid "Pip not installed" -msgstr "Pip n'est pas installé" +msgstr "``Pip`` n'est pas installé" #: ../Doc/installing/index.rst:217 msgid "" @@ -417,7 +417,7 @@ msgid "" "fix is::" msgstr "" "Il est possible que ``pip`` ne soit pas installé par défaut. Une solution " -"est : ::" +"est ::" #: ../Doc/installing/index.rst:221 msgid "" diff --git a/library/2to3.po b/library/2to3.po index 12260341c..117195e55 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/2to3.rst:4 msgid "2to3 - Automated Python 2 to 3 code translation" -msgstr "*2to3* --- Traduction automatique de code en Python 2 vers Python 3" +msgstr "*2to3* — Traduction automatique de code en Python 2 vers Python 3" #: ../Doc/library/2to3.rst:8 msgid "" @@ -86,7 +86,7 @@ msgstr "" #: ../Doc/library/2to3.rst:51 msgid "After transformation, :file:`example.py` looks like this::" -msgstr "Après transformation, :file:`example.py` ressemble à : ::" +msgstr "Après transformation, :file:`example.py` ressemble à ::" #: ../Doc/library/2to3.rst:59 msgid "" @@ -108,7 +108,7 @@ msgstr "" "fixers>`. L'option :option:`!-l` énumère tous les correcteurs disponibles. " "Un ensemble explicite de correcteurs à exécuter peut être donné avec :option:" "`!-f`. De même, :option:`!-x` désactive explicitement un correcteur. " -"L'exemple suivant exécute uniquement les ``imports`` et les correcteurs " +"L'exemple suivant exécute uniquement les ``import`` et les correcteurs " "``has_key`` :" #: ../Doc/library/2to3.rst:70 @@ -385,8 +385,8 @@ msgid "" msgstr "" "Fixe les méthodes d'itération sur les dictionnaires. :meth:`dict.iteritems` " "est converti en :meth:`dict.items`, :meth:`dict.iterkeys` en :meth:`dict." -"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. Similarly, :meth:" -"`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " +"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. De la même façon, :" +"meth:`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " "convertis respectivement en :meth:`dict.items`, :meth:`dict.keys` et :meth:" "`dict.values`. Il encapsule également les usages existants de :meth:`dict." "items`, :meth:`dict.keys` et :meth:`dict.values` dans un appel à :class:" @@ -457,11 +457,12 @@ msgstr "" #: ../Doc/library/2to3.rst:262 msgid "is changed to ::" -msgstr "est transformé en : ::" +msgstr "est transformé en ::" #: ../Doc/library/2to3.rst:268 msgid "Detects sibling imports and converts them to relative imports." -msgstr "Détecte les imports voisins et les convertis en imports relatifs." +msgstr "" +"Détecte les importations voisines et les convertit en importations relatives." #: ../Doc/library/2to3.rst:272 msgid "Handles module renames in the standard library." @@ -502,9 +503,9 @@ msgid "" "func:`itertools.imap`. Imports of :func:`itertools.ifilterfalse` are also " "changed to :func:`itertools.filterfalse`." msgstr "" -"Supprime les imports de :func:`itertools.ifilter`, :func:`itertools.izip` " -"et :func:`itertools.imap`. Les imports de :func:`itertools.ifilterfalse` " -"sont aussi changés en :func:`itertools.filterfalse`." +"Supprime les importations de :func:`itertools.ifilter`, :func:`itertools." +"izip` et :func:`itertools.imap`. Les importations de :func:`itertools." +"ifilterfalse` sont aussi changées en :func:`itertools.filterfalse`." #: ../Doc/library/2to3.rst:302 msgid "" @@ -763,7 +764,7 @@ msgstr "" #: ../Doc/library/2to3.rst:456 msgid ":mod:`lib2to3` - 2to3's library" -msgstr ":mod:`lib2to3` --- la bibliothèque de *2to3*" +msgstr ":mod:`lib2to3` — la bibliothèque de *2to3*" #: ../Doc/library/2to3.rst:465 msgid "**Source code:** :source:`Lib/lib2to3/`" diff --git a/library/__future__.po b/library/__future__.po index cd473ed0d..8f9098465 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/__future__.rst:2 msgid ":mod:`__future__` --- Future statement definitions" -msgstr ":mod:`__future__` --- Définitions des futurs" +msgstr ":mod:`__future__` — Définitions des futurs" #: ../Doc/library/__future__.rst:7 msgid "**Source code:** :source:`Lib/__future__.py`" @@ -46,8 +46,8 @@ msgid "" msgstr "" "s'assurer que les :ref:`instructions *future* ` lancées sous les " "versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution " -"(l’import du module :mod:`__future__` échoue, car il n’y avait pas de module " -"de ce nom avant 2.1) ;" +"(l’importation du module :mod:`__future__` échoue, car il n’y avait pas de " +"module de ce nom avant 2.1) ;" #: ../Doc/library/__future__.rst:20 msgid "" @@ -173,7 +173,7 @@ msgstr "2.2" #: ../Doc/library/__future__.rst:69 msgid ":pep:`227`: *Statically Nested Scopes*" -msgstr ":pep:`227`: *Statically Nested Scopes*" +msgstr ":pep:`227` : *Portées imbriquées*" #: ../Doc/library/__future__.rst:72 msgid "generators" @@ -189,7 +189,7 @@ msgstr "2.3" #: ../Doc/library/__future__.rst:72 msgid ":pep:`255`: *Simple Generators*" -msgstr ":pep:`255` : *Générateurs simples*" +msgstr ":pep:`255` : *Générateurs simples*" #: ../Doc/library/__future__.rst:75 msgid "division" @@ -206,7 +206,7 @@ msgstr "3.0" #: ../Doc/library/__future__.rst:75 msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`328` : *Changer l'opérateur de division*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" #: ../Doc/library/__future__.rst:78 msgid "absolute_import" @@ -218,7 +218,9 @@ msgstr "2.5.0a1" #: ../Doc/library/__future__.rst:78 msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" -msgstr ":pep:`328` : *Imports : multilignes et absolus/relatifs*" +msgstr "" +":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource " +"en anglais)" #: ../Doc/library/__future__.rst:81 msgid "with_statement" @@ -230,7 +232,7 @@ msgstr "2.6" #: ../Doc/library/__future__.rst:81 msgid ":pep:`343`: *The \"with\" Statement*" -msgstr ":pep:`343` : *L'instruction \"with\"*" +msgstr ":pep:`343` : *L'instruction \"with\"*" #: ../Doc/library/__future__.rst:84 msgid "print_function" @@ -242,7 +244,7 @@ msgstr "2.6.0a2" #: ../Doc/library/__future__.rst:84 msgid ":pep:`3105`: *Make print a function*" -msgstr ":pep:`3105`: *Make print a function*" +msgstr ":pep:`3105` : *Transformation de print en fonction*" #: ../Doc/library/__future__.rst:87 msgid "unicode_literals" @@ -250,7 +252,7 @@ msgstr "unicode_literals" #: ../Doc/library/__future__.rst:87 msgid ":pep:`3112`: *Bytes literals in Python 3000*" -msgstr ":pep:`3112` : *Obtets littéraux en Python 3000*" +msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" #: ../Doc/library/__future__.rst:90 msgid "generator_stop" @@ -275,7 +277,7 @@ msgstr ":ref:`future`" #: ../Doc/library/__future__.rst:98 msgid "How the compiler treats future imports." -msgstr "Comment le compilateur gère les imports du futur." +msgstr "Comment le compilateur gère les importations « futures »." #, fuzzy #~ msgid "future" diff --git a/library/__main__.po b/library/__main__.po index 888dec70a..2b9a269ff 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/__main__.rst:3 msgid ":mod:`__main__` --- Top-level script environment" -msgstr ":mod:`__main__` --- Point d'entrée des scripts" +msgstr ":mod:`__main__` — Point d'entrée des scripts" #: ../Doc/library/__main__.rst:10 msgid "" diff --git a/library/_thread.po b/library/_thread.po index 6f065c145..36550470c 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" -msgstr ":mod:`_thread` --- API bas niveau de gestion de fils d'exécution" +msgstr ":mod:`_thread` — API bas niveau de gestion de fils d'exécution" #: ../Doc/library/_thread.rst:15 msgid "" @@ -53,7 +53,7 @@ msgstr "Elle définit les constantes et fonctions suivantes :" #: ../Doc/library/_thread.rst:37 msgid "Raised on thread-specific errors." -msgstr "Levée lors d'erreur spécifique aux fils d'exécution." +msgstr "Levée lors d'erreurs spécifiques aux fils d'exécution." #: ../Doc/library/_thread.rst:39 msgid "This is now a synonym of the built-in :exc:`RuntimeError`." @@ -62,7 +62,7 @@ msgstr "" #: ../Doc/library/_thread.rst:45 msgid "This is the type of lock objects." -msgstr "C'est le type des verrous." +msgstr "C'est le type d'objets verrous." #: ../Doc/library/_thread.rst:50 msgid "" @@ -73,6 +73,14 @@ msgid "" "terminates with an unhandled exception, a stack trace is printed and then " "the thread exits (but other threads continue to run)." msgstr "" +"Démarre un nouveau fils d'exécution et renvoie son identifiant. Ce fil " +"d'exécution exécute la fonction *function* avec la liste d'arguments *args* " +"(qui doit être un *tuple*). L'argument optionnel *kwargs* spécifie un " +"dictionnaire d'arguments de mots clés. Quand la fonction se termine, le fil " +"d'exécution se termine silencieusement. Quand la fonction termine avec une " +"exception non gérée, une trace de la pile est affichée et ensuite le fil " +"d'exécution s'arrête (mais les autres fils d'exécutions continuent de " +"s'exécuter)." #: ../Doc/library/_thread.rst:60 msgid "" @@ -93,8 +101,8 @@ msgid "" "Return a new lock object. Methods of locks are described below. The lock " "is initially unlocked." msgstr "" -"Renvoie un nouvel objet *lock*. Les méthodes de l'objet *lock* sont décrites " -"ci-après. Le *lock* est initialement déverrouillé." +"Renvoie un nouveau verrou. Les méthodes des verrous sont décrites ci-" +"dessous. Le verrou est initialement déverrouillé." #: ../Doc/library/_thread.rst:86 msgid "" @@ -104,11 +112,12 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" -"Renvoie l'\"identificateur de fil\" du fil d'exécution courant. C'est un " +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " "entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " -"à être utilisé comme valeur magique opaque, par exemple comme clef de " -"dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " -"être recyclés lorsqu'un fil se termine et qu'un autre fil est créé." +"à être utilisé comme *cookie* magique, par exemple pour indexer un " +"dictionnaire de données pour chaque fil. Les identifiants de fils peuvent " +"être recyclés lorsqu'un fil d'exécution se termine et qu'un autre fil est " +"créé." #: ../Doc/library/_thread.rst:94 msgid "" @@ -136,12 +145,12 @@ msgid "" "`OverflowError`." msgstr "" "La valeur maximale autorisée pour le paramètre *timeout* de la méthode :" -"meth:`Lock.acquire`. Donner un délai d'attente supérieur à cette valeur lève " -"une :exc:`OverflowError`." +"meth:`Lock.acquire`. Préciser un délai d'attente supérieur à cette valeur " +"lève une exception :exc:`OverflowError`." #: ../Doc/library/_thread.rst:120 msgid "Lock objects have the following methods:" -msgstr "Les verrous (`lock objects`) ont les méthodes suivantes :" +msgstr "Les verrous ont les méthodes suivantes :" #: ../Doc/library/_thread.rst:125 msgid "" @@ -218,7 +227,7 @@ msgid "" "`with` statement, e.g.::" msgstr "" "En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " -"l'instruction :keyword:`with`, e.g. : ::" +"l'instruction :keyword:`with`, e.g. ::" #: ../Doc/library/_thread.rst:170 msgid "**Caveats:**" diff --git a/library/abc.po b/library/abc.po index 166fd7959..34f8000ed 100644 --- a/library/abc.po +++ b/library/abc.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" -msgstr ":mod:`abc` --- Classes de Base Abstraites" +msgstr ":mod:`abc` — Classes de Base Abstraites" #: ../Doc/library/abc.rst:11 msgid "**Source code:** :source:`Lib/abc.py`" @@ -73,7 +73,7 @@ msgid "" msgstr "" "Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " "ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " -"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple : ::" +"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" #: ../Doc/library/abc.rst:41 msgid "" @@ -88,7 +88,7 @@ msgstr "" "concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " "peut entrainer des conflits de métaclasses. Il est également possible de " "définir une ABC en passant l'argument nommé *metaclass* et en utilisant :" -"class:`ABCMeta` directement, par exemple : ::" +"class:`ABCMeta` directement, par exemple ::" #: ../Doc/library/abc.rst:57 msgid "Metaclass for defining Abstract Base Classes (ABCs)." @@ -129,7 +129,7 @@ msgid "" "Register *subclass* as a \"virtual subclass\" of this ABC. For example::" msgstr "" "Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " -"exemple : ::" +"exemple ::" #: ../Doc/library/abc.rst:85 msgid "Returns the registered subclass, to allow usage as a class decorator." @@ -188,7 +188,7 @@ msgid "" "For a demonstration of these concepts, look at this example ABC definition::" msgstr "" "Pour une illustration de ces concepts, voir cet exemple de définition de " -"ABC : ::" +"ABC ::" #: ../Doc/library/abc.rst:143 msgid "" @@ -280,7 +280,7 @@ msgid "" msgstr "" "Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " "d'autres descripteurs de méthodes, il doit être appliqué en tant que " -"décorateur le plus interne. Voir les exemples d'utilisation suivants : ::" +"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" #: ../Doc/library/abc.rst:216 msgid "" @@ -339,7 +339,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " "désormais correctement identifié comme abstrait quand il est appliqué à une " -"méthode abstraite : ::" +"méthode abstraite ::" #: ../Doc/library/abc.rst:265 msgid "" @@ -365,7 +365,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " "désormais correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" #: ../Doc/library/abc.rst:285 msgid "" @@ -389,7 +389,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " "correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" #: ../Doc/library/abc.rst:303 msgid "" @@ -399,7 +399,7 @@ msgid "" msgstr "" "L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " "également définir une propriété en lecture-écriture abstraite en indiquant " -"une ou plusieurs des méthodes sous-jacentes comme abstraite : ::" +"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" #: ../Doc/library/abc.rst:317 msgid "" @@ -408,7 +408,7 @@ msgid "" msgstr "" "Si seuls certains composants sont abstraits, seuls ces composants abstraits " "nécessitent d'être mis à jour pour créer une propriété concrète dans une " -"sous-classe : ::" +"sous-classe ::" #: ../Doc/library/abc.rst:326 msgid "The :mod:`abc` module also provides the following functions:" diff --git a/library/aifc.po b/library/aifc.po index 0961cadf7..1fb8fe1b8 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/aifc.rst:2 msgid ":mod:`aifc` --- Read and write AIFF and AIFC files" -msgstr ":mod:`aifc` --- Lis et écrit dans les fichiers AIFF et AIFC" +msgstr ":mod:`aifc` — Lis et écrit dans les fichiers AIFF et AIFC" #: ../Doc/library/aifc.rst:7 msgid "**Source code:** :source:`Lib/aifc.py`" @@ -72,7 +72,7 @@ msgstr "" #: ../Doc/library/aifc.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/aifc.rst:53 msgid "" diff --git a/library/argparse.po b/library/argparse.po index 6092e3c0a..b18915d94 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -51,6 +51,12 @@ msgid "" "mod:`argparse` module also automatically generates help and usage messages " "and issues errors when users give the program invalid arguments." msgstr "" +"Le module :mod:`argparse` facilite l'écriture d'interfaces en ligne de " +"commande agréables à l'emploi. Le programme définit les arguments requis et :" +"mod:`argparse` s'arrange pour analyser ceux provenant de :data:`sys.argv`. " +"Le module :mod:`argparse` génère aussi automatiquement les messages d'aide, " +"le mode d'emploi, et lève des erreurs lorsque les utilisateurs fournissent " +"au programme des arguments invalides." #: ../Doc/library/argparse.rst:30 msgid "Example" @@ -69,20 +75,25 @@ msgid "" "Assuming the Python code above is saved into a file called ``prog.py``, it " "can be run at the command line and provides useful help messages:" msgstr "" +"En supposant que le code Python ci-dessus est sauvegardé dans un fichier " +"nommé ``prog.py``, il peut être lancé en ligne de commande et fournit des " +"messages d'aide utiles :" #: ../Doc/library/argparse.rst:64 msgid "" "When run with the appropriate arguments, it prints either the sum or the max " "of the command-line integers:" msgstr "" +"Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou le " +"maximum des entiers fournis en ligne de commande :" #: ../Doc/library/argparse.rst:75 msgid "If invalid arguments are passed in, it will issue an error:" -msgstr "" +msgstr "Si des arguments invalides sont passés, il lève une erreur :" #: ../Doc/library/argparse.rst:83 msgid "The following sections walk you through this example." -msgstr "" +msgstr "Les sections suivantes vous guident au travers de cet exemple." #: ../Doc/library/argparse.rst:87 msgid "Creating a parser" @@ -93,12 +104,17 @@ msgid "" "The first step in using the :mod:`argparse` is creating an :class:" "`ArgumentParser` object::" msgstr "" +"La première étape dans l'utilisation de :mod:`argparse` est de créer un " +"objet :class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:94 msgid "" "The :class:`ArgumentParser` object will hold all the information necessary " "to parse the command line into Python data types." msgstr "" +"L'objet :class:`ArgumentParser` contiendra toutes les informations " +"nécessaires pour interpréter la ligne de commande comme des types de données " +"de Python." #: ../Doc/library/argparse.rst:99 msgid "Adding arguments" @@ -113,6 +129,13 @@ msgid "" "stored and used when :meth:`~ArgumentParser.parse_args` is called. For " "example::" msgstr "" +"Alimenter un :class:`ArgumentParser` avec des informations sur les arguments " +"du programme s'effectue en faisant des appels à la méthode :meth:" +"`~ArgumentParser.add_argument`. En général ces appels disent à l':class:" +"`ArgumentParser` comment prendre les chaînes de caractères de la ligne de " +"commande et les transformer en objets. Cette information est stockée et " +"utilisée lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par " +"exemple ::" #: ../Doc/library/argparse.rst:113 msgid "" @@ -122,6 +145,11 @@ msgid "" "either the :func:`sum` function, if ``--sum`` was specified at the command " "line, or the :func:`max` function if it was not." msgstr "" +"Ensuite, appeler :meth:`~ArgumentParser.parse_args` va renvoyer un objet " +"avec deux attributs, ``integers`` et ``accumulate``. L'attribut ``integers`` " +"est une liste d'un ou plusieurs entiers, et l'attribut ``accumulate`` est " +"soit la fonction :func:`sum`, si ``--sum`` était fourni à la ligne de " +"commande, soit la fonction :func:`max` dans le cas contraire." #: ../Doc/library/argparse.rst:121 msgid "Parsing arguments" @@ -145,7 +173,7 @@ msgstr "" #: ../Doc/library/argparse.rst:138 msgid "ArgumentParser objects" -msgstr "Objets ArgumentParser" +msgstr "Objets ``ArgumentParser``" #: ../Doc/library/argparse.rst:147 msgid "" @@ -227,7 +255,7 @@ msgstr "" #: ../Doc/library/argparse.rst:189 msgid "prog" -msgstr "prog" +msgstr "Le paramètre *prog*" #: ../Doc/library/argparse.rst:191 msgid "" @@ -259,7 +287,7 @@ msgstr "" #: ../Doc/library/argparse.rst:248 msgid "usage" -msgstr "usage" +msgstr "Le paramètre *usage*" #: ../Doc/library/argparse.rst:250 msgid "" @@ -280,7 +308,7 @@ msgstr "" #: ../Doc/library/argparse.rst:286 msgid "description" -msgstr "description" +msgstr "Le paramètre *description*" #: ../Doc/library/argparse.rst:288 msgid "" @@ -299,7 +327,7 @@ msgstr "" #: ../Doc/library/argparse.rst:308 msgid "epilog" -msgstr "epilog" +msgstr "Le paramètre *epilog*" #: ../Doc/library/argparse.rst:310 msgid "" @@ -317,7 +345,7 @@ msgstr "" #: ../Doc/library/argparse.rst:333 msgid "parents" -msgstr "parents" +msgstr "Le paramètre *parents*" #: ../Doc/library/argparse.rst:335 msgid "" @@ -346,7 +374,7 @@ msgstr "" #: ../Doc/library/argparse.rst:366 msgid "formatter_class" -msgstr "formatter_class" +msgstr "Le paramètre *formatter_class*" #: ../Doc/library/argparse.rst:368 msgid "" @@ -393,7 +421,7 @@ msgstr "" #: ../Doc/library/argparse.rst:472 msgid "prefix_chars" -msgstr "prefix_chars" +msgstr "Le paramètre *prefix_chars*" #: ../Doc/library/argparse.rst:474 msgid "" @@ -412,7 +440,7 @@ msgstr "" #: ../Doc/library/argparse.rst:492 msgid "fromfile_prefix_chars" -msgstr "fromfile_prefix_chars" +msgstr "Le paramètre *fromfile_prefix_chars*" #: ../Doc/library/argparse.rst:494 msgid "" @@ -442,7 +470,7 @@ msgstr "" #: ../Doc/library/argparse.rst:519 msgid "argument_default" -msgstr "argument_default" +msgstr "Le paramètre *argument_default*" #: ../Doc/library/argparse.rst:521 msgid "" @@ -458,7 +486,7 @@ msgstr "" #: ../Doc/library/argparse.rst:541 msgid "allow_abbrev" -msgstr "allow_abbrev" +msgstr "Le paramètre *allow_abbrev*" #: ../Doc/library/argparse.rst:543 msgid "" @@ -473,7 +501,7 @@ msgstr "" #: ../Doc/library/argparse.rst:560 msgid "conflict_handler" -msgstr "conflict_handler" +msgstr "Le paramètre *conflict_handler*" #: ../Doc/library/argparse.rst:562 msgid "" @@ -501,7 +529,7 @@ msgstr "" #: ../Doc/library/argparse.rst:597 msgid "add_help" -msgstr "add_help" +msgstr "Le paramètre *add_help*" #: ../Doc/library/argparse.rst:599 msgid "" @@ -599,7 +627,7 @@ msgstr "" #: ../Doc/library/argparse.rst:687 msgid "name or flags" -msgstr "nom ou option" +msgstr "Les paramètres *name* et *flags*" #: ../Doc/library/argparse.rst:689 msgid "" @@ -624,7 +652,7 @@ msgstr "" #: ../Doc/library/argparse.rst:719 msgid "action" -msgstr "action" +msgstr "Le paramètre *action*" #: ../Doc/library/argparse.rst:721 msgid "" @@ -704,7 +732,7 @@ msgstr "" #: ../Doc/library/argparse.rst:805 msgid "An example of a custom action::" -msgstr "Un exemple d'action personnalisée : ::" +msgstr "Un exemple d'action personnalisée ::" #: ../Doc/library/argparse.rst:825 msgid "For more details, see :class:`Action`." @@ -712,7 +740,7 @@ msgstr "Pour plus d'information, voir :class:`Action`." #: ../Doc/library/argparse.rst:828 msgid "nargs" -msgstr "nargs" +msgstr "Le paramètre *nargs*" #: ../Doc/library/argparse.rst:830 msgid "" @@ -782,7 +810,7 @@ msgstr "" #: ../Doc/library/argparse.rst:922 msgid "const" -msgstr "const" +msgstr "Le paramètre *const*" #: ../Doc/library/argparse.rst:924 msgid "" @@ -818,7 +846,7 @@ msgstr "" #: ../Doc/library/argparse.rst:945 msgid "default" -msgstr "default" +msgstr "Le paramètre *default*" #: ../Doc/library/argparse.rst:947 msgid "" @@ -852,7 +880,7 @@ msgstr "" #: ../Doc/library/argparse.rst:995 msgid "type" -msgstr "type" +msgstr "Le paramètre *type*" #: ../Doc/library/argparse.rst:997 msgid "" @@ -893,11 +921,11 @@ msgstr "" #: ../Doc/library/argparse.rst:1053 msgid "See the choices_ section for more details." -msgstr "Voir la section choices_ pour plus de détails." +msgstr "Voir le chapitre choices_ pour plus de détails." #: ../Doc/library/argparse.rst:1057 msgid "choices" -msgstr "choices" +msgstr "Le paramètre *choices*" #: ../Doc/library/argparse.rst:1059 msgid "" @@ -924,7 +952,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1092 msgid "required" -msgstr "required" +msgstr "Le paramètre *required*" #: ../Doc/library/argparse.rst:1094 msgid "" @@ -949,7 +977,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1118 msgid "help" -msgstr "help" +msgstr "Le paramètre *help*" #: ../Doc/library/argparse.rst:1120 msgid "" @@ -982,7 +1010,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1173 msgid "metavar" -msgstr "metavar" +msgstr "Le paramètre *metavar*" #: ../Doc/library/argparse.rst:1175 msgid "" @@ -1016,7 +1044,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1237 msgid "dest" -msgstr "dest" +msgstr "Le paramètre *dest*" #: ../Doc/library/argparse.rst:1239 msgid "" @@ -1206,7 +1234,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1457 msgid "Argument abbreviations (prefix matching)" -msgstr "Arguments abrégés (Part comparaison de leur préfixes)" +msgstr "Arguments abrégés (Par comparaison de leurs préfixes)" #: ../Doc/library/argparse.rst:1459 msgid "" @@ -1223,7 +1251,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1480 msgid "Beyond ``sys.argv``" -msgstr "Au delà de ``sys.argv``" +msgstr "Au-delà de ``sys.argv``" #: ../Doc/library/argparse.rst:1482 msgid "" @@ -1335,7 +1363,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1584 msgid "Some example usage::" -msgstr "Quelques exemples d'utilisation : ::" +msgstr "Quelques exemples d'utilisation ::" #: ../Doc/library/argparse.rst:1605 msgid "" @@ -1628,27 +1656,29 @@ msgstr "" #: ../Doc/library/argparse.rst:2005 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels." +msgstr "Gère les arguments positionnels." #: ../Doc/library/argparse.rst:2006 msgid "Supporting sub-commands." -msgstr "Gérer les sous commandes." +msgstr "Prise en charge des sous commandes." #: ../Doc/library/argparse.rst:2007 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "" +"Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." #: ../Doc/library/argparse.rst:2008 msgid "Handling zero-or-more and one-or-more style arguments." -msgstr "" +msgstr "Prend en charge la répétition de valeurs (zéro ou plus, un ou plus)." #: ../Doc/library/argparse.rst:2009 msgid "Producing more informative usage messages." -msgstr "Fournir des message d'aide plus complets." +msgstr "Fournit des messages d'aide plus complets." #: ../Doc/library/argparse.rst:2010 msgid "Providing a much simpler interface for custom ``type`` and ``action``." msgstr "" +"Fournit une interface plus simple pour les types et actions personnalisés" #: ../Doc/library/argparse.rst:2012 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" diff --git a/library/array.po b/library/array.po index fabd29b54..768535997 100644 --- a/library/array.po +++ b/library/array.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" -msgstr ":mod:`array` --- Tableaux efficaces de valeurs numériques" +msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" #: ../Doc/library/array.rst:11 msgid "" @@ -519,7 +519,7 @@ msgstr "" "c'est une liste de nombres. Il est garanti que la chaîne puisse être " "convertie en un tableau avec le même type et la même valeur en utilisant :" "func:`eval`, tant que la classe :class:`~array.array` a été importée en " -"utilisant ``from array import array``. Exemples : ::" +"utilisant ``from array import array``. Exemples ::" #: ../Doc/library/array.rst:269 msgid "Module :mod:`struct`" @@ -544,7 +544,7 @@ msgstr "" #: ../Doc/library/array.rst:276 msgid "`The Numerical Python Documentation `_" -msgstr "`The Numerical Python Documentation `_" +msgstr "`La documentation de *Numerical Python* `" #: ../Doc/library/array.rst:276 msgid "" diff --git a/library/ast.po b/library/ast.po index 14de46055..700f313c3 100644 --- a/library/ast.po +++ b/library/ast.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" -msgstr ":mod:`ast` --- Arbres Syntaxiques Abstraits" +msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" #: ../Doc/library/ast.rst:10 msgid "**Source code:** :source:`Lib/ast.py`" @@ -166,11 +166,11 @@ msgid "" "use ::" msgstr "" "Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " -"utiliser : ::" +"utiliser ::" #: ../Doc/library/ast.rst:88 msgid "or the more compact ::" -msgstr "ou, plus compact : ::" +msgstr "ou, plus compact ::" #: ../Doc/library/ast.rst:97 msgid "Abstract Grammar" @@ -390,7 +390,7 @@ msgid "" "(``foo``) to ``data['foo']``::" msgstr "" "Voici un exemple du *transformer* qui réécrit les occurrences du " -"dictionnaire (``foo``) en ``data['foo']`` : ::" +"dictionnaire (``foo``) en ``data['foo']`` ::" #: ../Doc/library/ast.rst:242 msgid "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index a994635c1..c3960e132 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -271,7 +271,7 @@ msgstr "Exemple avec le bug : ::" #: ../Doc/library/asyncio-dev.rst:194 msgid "Output in debug mode::" -msgstr "Affichage en mode débogage : ::" +msgstr "Affichage en mode débogage ::" #: ../Doc/library/asyncio-dev.rst:201 msgid "" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 48e932050..340bed5f2 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -120,7 +120,7 @@ msgstr "" #: ../Doc/library/asyncio-protocol.rst:74 msgid "SSL socket:" -msgstr "*Socket* SSL :" +msgstr "Connecteur (*socket* en anglais) SSL :" #: ../Doc/library/asyncio-protocol.rst:76 msgid "" @@ -160,7 +160,7 @@ msgstr "``'pipe'`` : objet *pipe*" #: ../Doc/library/asyncio-protocol.rst:93 msgid "subprocess:" -msgstr "processus fils :" +msgstr "sous-processus :" #: ../Doc/library/asyncio-protocol.rst:95 msgid "``'subprocess'``: :class:`subprocess.Popen` instance" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 2e959e99f..60e01424a 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -331,7 +331,7 @@ msgstr "" #: ../Doc/library/asyncio-subprocess.rst:247 msgid "Sends the signal *signal* to the child process." -msgstr "Envoie le signal *signal* au processus fils." +msgstr "Envoie le signal *signal* au sous-processus." #: ../Doc/library/asyncio-subprocess.rst:251 msgid "" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 791805a8b..ad5fdea2a 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -453,7 +453,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:396 msgid "Return a set of all tasks for an event loop." -msgstr "Donne l'ensemble des tâches d'une boucle d'évènements." +msgstr "Renvoie l'ensemble des tâches d'une boucle d'évènements." #: ../Doc/library/asyncio-task.rst:398 msgid "By default all tasks for the current event loop are returned." @@ -725,7 +725,7 @@ msgstr "Attends un future, en le protégeant des annulations." #: ../Doc/library/asyncio-task.rst:641 msgid "The statement::" -msgstr "L'instruction : ::" +msgstr "L'instruction ::" #: ../Doc/library/asyncio-task.rst:645 msgid "is exactly equivalent to the statement::" diff --git a/library/asyncore.po b/library/asyncore.po index daeae59d0..57c03e639 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/asyncore.rst:2 msgid ":mod:`asyncore` --- Asynchronous socket handler" -msgstr ":mod:`asyncore` --- Gestionnaire de socket asynchrone" +msgstr ":mod:`asyncore` — Gestionnaire de socket asynchrone" #: ../Doc/library/asyncore.rst:13 msgid "**Source code:** :source:`Lib/asyncore.py`" diff --git a/library/atexit.po b/library/atexit.po index 977c05b49..16930724c 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/atexit.rst:2 msgid ":mod:`atexit` --- Exit handlers" -msgstr ":mod:`atexit` --- Gestionnaire de fin de programme" +msgstr ":mod:`atexit` — Gestionnaire de fin de programme" #: ../Doc/library/atexit.rst:12 msgid "" @@ -144,11 +144,11 @@ msgid "" "be passed along to the registered function when it is called::" msgstr "" "Les arguments positionnels et par mot-clé peuvent aussi être passés à :func:" -"`register` afin d'être repassés à la fonction inscrite lors de son appel : ::" +"`register` afin d'être repassés à la fonction inscrite lors de son appel ::" #: ../Doc/library/atexit.rst:101 msgid "Usage as a :term:`decorator`::" -msgstr "Utilisation en tant que :term:`décorateur ` : ::" +msgstr "Utilisation en tant que :term:`décorateur ` ::" #: ../Doc/library/atexit.rst:109 msgid "This only works with functions that can be called without arguments." diff --git a/library/audioop.po b/library/audioop.po index d2d573707..db71f1816 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" -msgstr ":mod:`audioloop` --- Manipulation de données audio brutes" +msgstr ":mod:`audioloop` — Manipulation de données audio brutes" #: ../Doc/library/audioop.rst:9 msgid "" diff --git a/library/bdb.po b/library/bdb.po index bb4b9eb3b..1a5dd5184 100644 --- a/library/bdb.po +++ b/library/bdb.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/bdb.rst:2 msgid ":mod:`bdb` --- Debugger framework" -msgstr ":mod:`bdb` --- Framework de débogage" +msgstr ":mod:`bdb` — Framework de débogage" #: ../Doc/library/bdb.rst:7 msgid "**Source code:** :source:`Lib/bdb.py`" diff --git a/library/binhex.po b/library/binhex.po index bfbf454f3..b3226103b 100644 --- a/library/binhex.po +++ b/library/binhex.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/binhex.rst:2 msgid ":mod:`binhex` --- Encode and decode binhex4 files" -msgstr ":mod:`binhex` --- Encode et décode les fichiers *binhex4*" +msgstr ":mod:`binhex` — Encode et décode les fichiers *binhex4*" #: ../Doc/library/binhex.rst:7 msgid "**Source code:** :source:`Lib/binhex.py`" diff --git a/library/bisect.po b/library/bisect.po index 5ffe46a02..d1b0d273a 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/bisect.rst:2 msgid ":mod:`bisect` --- Array bisection algorithm" -msgstr ":mod:`bisect` --- Algorithme de bissection de listes" +msgstr ":mod:`bisect` — Algorithme de bissection de listes" #: ../Doc/library/bisect.rst:10 msgid "**Source code:** :source:`Lib/bisect.py`" @@ -139,7 +139,7 @@ msgstr "" "Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " "éléments, mais peuvent être étranges et peu naturelles à utiliser pour " "rechercher des éléments. Les cinq fonctions suivantes montrent comment les " -"transformer en recherche plus classique pour les listes triées : ::" +"transformer en recherche plus classique pour les listes triées ::" #: ../Doc/library/bisect.rst:114 msgid "Other Examples" @@ -156,7 +156,7 @@ msgstr "" "tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " "note (sous forme de lettre) correspondant à un note sous forme de points, en " "se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " -"'B', etc… : ::" +"'B', etc… ::" #: ../Doc/library/bisect.rst:130 msgid "" @@ -177,4 +177,4 @@ msgid "" "of the record in question::" msgstr "" "Il est préférable d'utiliser une liste de clefs pré-calculée pour chercher " -"l'index de l'enregistrement en question : ::" +"l'index de l'enregistrement en question ::" diff --git a/library/builtins.po b/library/builtins.po index 1ca6b907b..87bbd3f38 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/builtins.rst:2 msgid ":mod:`builtins` --- Built-in objects" -msgstr ":mod:`builtins` --- Objets natifs" +msgstr ":mod:`builtins` — Objets natifs" #: ../Doc/library/builtins.rst:9 msgid "" @@ -46,7 +46,7 @@ msgstr "" "de même nom qu'une valeur native, mais pour qui le natif de même nom est " "aussi nécessaire. Par exemple, dans un module qui voudrait implémenter une " "fonction :func:`open` autour de la fonction native :func:`open`, ce module " -"peut être utilisé directement : ::" +"peut être utilisé directement ::" #: ../Doc/library/builtins.rst:38 msgid "" diff --git a/library/bz2.po b/library/bz2.po index 220c4d9a3..6a0ac58ce 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -19,45 +19,55 @@ msgstr "" #: ../Doc/library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" -msgstr "" +msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" #: ../Doc/library/bz2.rst:12 msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/bz2.py`" #: ../Doc/library/bz2.rst:16 msgid "" "This module provides a comprehensive interface for compressing and " "decompressing data using the bzip2 compression algorithm." msgstr "" +"Ce module fournit une interface complète pour compresser et décompresser les " +"données en utilisant l'algorithme de compression *bzip2*." #: ../Doc/library/bz2.rst:19 msgid "The :mod:`bz2` module contains:" -msgstr "Le module :mod:`bz2` contiens :" +msgstr "Le module :mod:`bz2` contient :" #: ../Doc/library/bz2.rst:21 msgid "" "The :func:`.open` function and :class:`BZ2File` class for reading and " "writing compressed files." msgstr "" +"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " +"des fichiers compressés." #: ../Doc/library/bz2.rst:23 msgid "" "The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " "incremental (de)compression." msgstr "" +"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " +"(dé)compression incrémentielle." #: ../Doc/library/bz2.rst:25 msgid "" "The :func:`compress` and :func:`decompress` functions for one-shot " "(de)compression." msgstr "" +"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " +"en une seule fois." #: ../Doc/library/bz2.rst:28 msgid "" "All of the classes in this module may safely be accessed from multiple " "threads." msgstr "" +"Toutes les classes de ce module peuvent en toute sécurité être accédées " +"depuis de multiples fils d'exécution." #: ../Doc/library/bz2.rst:32 msgid "(De)compression of files" @@ -68,6 +78,8 @@ msgid "" "Open a bzip2-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " +"renvoyant en :term:`file object`." #: ../Doc/library/bz2.rst:39 msgid "" @@ -75,6 +87,9 @@ msgid "" "an actual filename (a :class:`str` or :class:`bytes` object), or an existing " "file object to read from or write to." msgstr "" +"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " +"*filename* peut être un nom de fichier réel (un objet :class:`str` ou :class:" +"`bytes`), ou un objet fichier existant à lire ou à écrire." #: ../Doc/library/bz2.rst:43 msgid "" @@ -82,12 +97,17 @@ msgid "" "``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " "``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." msgstr "" +"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " +"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " +"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." #: ../Doc/library/bz2.rst:47 msgid "" "The *compresslevel* argument is an integer from 1 to 9, as for the :class:" "`BZ2File` constructor." msgstr "" +"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " +"constructeur :class:`BZ2File`." #: ../Doc/library/bz2.rst:50 msgid "" @@ -96,6 +116,10 @@ msgid "" "this case, the *encoding*, *errors* and *newline* arguments must not be " "provided." msgstr "" +"Pour le mode binaire, cette fonction est équivalente au constructeur :class:" +"`BZ2File` : ``BZ2File(filename, mode, compresslevel=compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* arguments ne doivent " +"pas être fournis." #: ../Doc/library/bz2.rst:55 msgid "" @@ -103,10 +127,13 @@ msgid "" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " +"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " +"de gestion des erreurs et les fins de ligne." #: ../Doc/library/bz2.rst:61 ../Doc/library/bz2.rst:127 msgid "The ``'x'`` (exclusive creation) mode was added." -msgstr "Le mode ``'x'`` (création exclusive) est créé." +msgstr "Le mode ``'x'`` (création exclusive) est ajouté." #: ../Doc/library/bz2.rst:64 ../Doc/library/bz2.rst:134 msgid "Accepts a :term:`path-like object`." @@ -122,6 +149,9 @@ msgid "" "file directly. Otherwise, *filename* should be a :term:`file object`, which " "will be used to read or write the compressed data." msgstr "" +"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " +"fichier directement. Autrement, *filename* doit être un :term:`file object`, " +"qui est utilisé pour lire ou écrire les données compressées." #: ../Doc/library/bz2.rst:76 msgid "" @@ -130,12 +160,18 @@ msgid "" "can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " "respectively." msgstr "" +"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " +"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " +"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " +"``'xb'`` et ``'ab'``." #: ../Doc/library/bz2.rst:81 msgid "" "If *filename* is a file object (rather than an actual file name), a mode of " "``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." msgstr "" +"Si *filename* est un objet fichier (plutôt que le nom de fichier réel), le " +"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." #: ../Doc/library/bz2.rst:84 msgid "The *buffering* argument is ignored. Its use is deprecated." @@ -153,6 +189,8 @@ msgid "" "If *mode* is ``'r'``, the input file may be the concatenation of multiple " "compressed streams." msgstr "" +"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " +"plusieurs flux compressés." #: ../Doc/library/bz2.rst:93 msgid "" @@ -160,10 +198,13 @@ msgid "" "BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " "and the :keyword:`with` statement are supported." msgstr "" +":class:`BZ2File` fournit tous les membres spécifiés par la classe :class:`io." +"BufferedIOBase`, excepté les méthodes :meth:`detach` et :meth:`truncate`. " +"L'itération et l'instruction :keyword:`with` sont prises en charge." #: ../Doc/library/bz2.rst:97 msgid ":class:`BZ2File` also provides the following method:" -msgstr "" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" #: ../Doc/library/bz2.rst:101 msgid "" @@ -171,6 +212,9 @@ msgid "" "of data will be returned (unless at EOF). The exact number of bytes returned " "is unspecified." msgstr "" +"Renvoie des données en mémoire tampon sans avancer la position du fichier. " +"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " +"d'octets renvoyés n'est pas spécifié." #: ../Doc/library/bz2.rst:105 msgid "" @@ -179,38 +223,50 @@ msgid "" "the :class:`BZ2File` was constructed by passing a file object for " "*filename*)." msgstr "" +"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " +"fichier de la classe :class:`BZ2File`, il peut changer la position de " +"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " +"construite en passant un objet fichier à *filename*)." #: ../Doc/library/bz2.rst:112 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/bz2.rst:115 msgid "" "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" "meth:`read1` and :meth:`readinto` methods were added." msgstr "" +"Les méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:" +"`writable`, :meth:`read1` et :meth:`readinto` ont été ajoutées." #: ../Doc/library/bz2.rst:119 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." msgstr "" +"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " +"fichier réel a été ajoutée." #: ../Doc/library/bz2.rst:123 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." msgstr "" +"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " +"des fichiers *multiflux*." #: ../Doc/library/bz2.rst:130 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." #: ../Doc/library/bz2.rst:139 msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentale" +msgstr "(Dé)compression incrémentielle" #: ../Doc/library/bz2.rst:143 msgid "" @@ -218,6 +274,9 @@ msgid "" "incrementally. For one-shot compression, use the :func:`compress` function " "instead." msgstr "" +"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " +"compresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`compress`." #: ../Doc/library/bz2.rst:147 ../Doc/library/bz2.rst:235 msgid "" @@ -230,23 +289,31 @@ msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." msgstr "" +"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " +"compressées si possible, ou autrement une chaîne d'octet vide." #: ../Doc/library/bz2.rst:155 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." msgstr "" +"Quand vous avez fini de fournir des données au compresseur, appelez la " +"méthode :meth:`flush` pour finir le processus de compression." #: ../Doc/library/bz2.rst:161 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." msgstr "" +"Finit le processus de compression. Renvoie la donnée compressée restante " +"dans les tampons internes." #: ../Doc/library/bz2.rst:164 msgid "" "The compressor object may not be used after this method has been called." msgstr "" +"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " +"appelée." #: ../Doc/library/bz2.rst:169 msgid "" @@ -254,6 +321,9 @@ msgid "" "incrementally. For one-shot compression, use the :func:`decompress` function " "instead." msgstr "" +"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " +"décompresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`decompress`." #: ../Doc/library/bz2.rst:174 msgid "" @@ -262,6 +332,11 @@ msgid "" "need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " "must use a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, à la différence de :func:`decompress` et :class:" +"`BZ2File`. Si vous avez besoin de décompresser une entrée *multiflux* avec " +"la classe :class:`BZ2Decompressor`, vous devez utiliser un nouveau " +"décompresseur pour chaque flux." #: ../Doc/library/bz2.rst:181 msgid "" @@ -270,6 +345,11 @@ msgid "" "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." #: ../Doc/library/bz2.rst:187 msgid "" @@ -279,6 +359,11 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." #: ../Doc/library/bz2.rst:194 msgid "" @@ -286,6 +371,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." #: ../Doc/library/bz2.rst:199 msgid "" @@ -293,6 +381,9 @@ msgid "" "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." #: ../Doc/library/bz2.rst:203 msgid "Added the *max_length* parameter." @@ -300,7 +391,7 @@ msgstr "Ajout du paramètre *max_length*." #: ../Doc/library/bz2.rst:208 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." #: ../Doc/library/bz2.rst:215 msgid "Data found after the end of the compressed stream." @@ -311,12 +402,16 @@ msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." msgstr "" +"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " +"sera ``b''``." #: ../Doc/library/bz2.rst:222 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." #: ../Doc/library/bz2.rst:229 msgid "One-shot (de)compression" @@ -329,6 +424,8 @@ msgstr "Compresse *data*." #: ../Doc/library/bz2.rst:238 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "" +"Pour la compression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Compressor`." #: ../Doc/library/bz2.rst:243 msgid "Decompress *data*." @@ -339,11 +436,15 @@ msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." msgstr "" +"Si *data* est la concaténation de multiples flux compressés, décompresse " +"tous les flux." #: ../Doc/library/bz2.rst:248 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" +"Pour une décompression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Decompressor`." #: ../Doc/library/bz2.rst:250 msgid "Support for multi-stream inputs was added." -msgstr "" +msgstr "Prise en charge des entrées *multiflux*." diff --git a/library/calendar.po b/library/calendar.po index e0adf6a56..d12b2ccba 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -23,7 +23,7 @@ msgstr "" #: ../Doc/library/calendar.rst:10 msgid "**Source code:** :source:`Lib/calendar.py`" -msgstr "**Code source :** :source:`Lib/calendar.py`" +msgstr "**Code source :** :source:`Lib/calendar.py`" #: ../Doc/library/calendar.rst:14 msgid "" diff --git a/library/cgitb.po b/library/cgitb.po index 40599e5c5..7d99861f7 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" -msgstr ":mod:`cgitb` --- Gestionnaire d'exceptions pour les scripts CGI" +msgstr ":mod:`cgitb` — Gestionnaire d'exceptions pour les scripts CGI" #: ../Doc/library/cgitb.rst:10 msgid "**Source code:** :source:`Lib/cgitb.py`" @@ -53,7 +53,7 @@ msgstr "" msgid "To enable this feature, simply add this to the top of your CGI script::" msgstr "" "Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " -"script CGI : ::" +"script CGI ::" #: ../Doc/library/cgitb.rst:35 msgid "" diff --git a/library/cmath.po b/library/cmath.po index 131013228..5d9aa8f73 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/cmath.rst:2 msgid ":mod:`cmath` --- Mathematical functions for complex numbers" -msgstr "Fonctions mathématiques pour nombres complexes --- :mod:`cmath`" +msgstr "Fonctions mathématiques pour nombres complexes — :mod:`cmath`" #: ../Doc/library/cmath.rst:9 msgid "" @@ -66,7 +66,7 @@ msgid "" msgstr "" "Un nombre complexe Python ``z`` est stocké de manière interne en coordonnées " "*cartésiennes*. Il est entièrement défini par sa *partie réelle* ``z.real`` " -"et sa *partie complexe* ``z.imag``. En d'autres termes : ::" +"et sa *partie complexe* ``z.imag``. En d'autres termes ::" #: ../Doc/library/cmath.rst:36 msgid "" diff --git a/library/cmd.po b/library/cmd.po index 9af60dad2..3c57d2fcf 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/cmd.rst:2 msgid ":mod:`cmd` --- Support for line-oriented command interpreters" -msgstr ":mod:`cmd` --- Interpréteurs en ligne de commande." +msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." #: ../Doc/library/cmd.rst:9 msgid "**Source code:** :source:`Lib/cmd.py`" diff --git a/library/codecs.po b/library/codecs.po index 6b5b423d6..22c8553d5 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" -msgstr "" +msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" #: ../Doc/library/codecs.rst:11 msgid "**Source code:** :source:`Lib/codecs.py`" -msgstr "**Code source :** :source:`Lib/codecs.py`" +msgstr "**Code source :** :source:`Lib/codecs.py`" #: ../Doc/library/codecs.rst:23 msgid "" @@ -36,16 +36,29 @@ msgid "" "features are restricted to use specifically with :term:`text encodings `, or with codecs that encode to :class:`bytes`." msgstr "" +"Ce module définit les classes de base pour les codecs (encodeurs et " +"décodeurs) standards Python et fournit l'interface avec le registre des " +"codecs internes à Python, qui gère le processus de recherche de codecs et de " +"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " +"texte `, qui encode du texte vers des séquences d'octets " +"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " +"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " +"personnalisés peuvent encoder et décoder des types arbitraires, mais " +"l'utilisation de certaines fonctionnalités du module est restreinte aux :" +"term:`encodeurs de texte ` ou aux codecs qui encodent vers :" +"class:`bytes`." #: ../Doc/library/codecs.rst:33 msgid "" "The module defines the following functions for encoding and decoding with " "any codec:" msgstr "" +"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " +"de n'importe quel codec :" #: ../Doc/library/codecs.rst:38 msgid "Encodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." #: ../Doc/library/codecs.rst:40 msgid "" @@ -55,10 +68,16 @@ msgid "" "`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." #: ../Doc/library/codecs.rst:48 msgid "Decodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." #: ../Doc/library/codecs.rst:50 msgid "" @@ -68,16 +87,25 @@ msgid "" "`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." #: ../Doc/library/codecs.rst:56 msgid "The full details for each codec can also be looked up directly:" msgstr "" +"Les détails complets de chaque codec peuvent être examinés directement :" #: ../Doc/library/codecs.rst:60 msgid "" "Looks up the codec info in the Python codec registry and returns a :class:" "`CodecInfo` object as defined below." msgstr "" +"Recherche les informations relatives au codec dans le registre des codecs de " +"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." #: ../Doc/library/codecs.rst:63 msgid "" @@ -86,16 +114,23 @@ msgid "" "object is found, a :exc:`LookupError` is raised. Otherwise, the :class:" "`CodecInfo` object is stored in the cache and returned to the caller." msgstr "" +"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " +"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " +"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:" +"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache " +"et renvoyé vers l'appelant." #: ../Doc/library/codecs.rst:70 msgid "" "Codec details when looking up the codec registry. The constructor arguments " "are stored in attributes of the same name:" msgstr "" +"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " +"constructeur sont stockés dans les attributs éponymes :" #: ../Doc/library/codecs.rst:76 msgid "The name of the encoding." -msgstr "" +msgstr "Le nom de l'encodeur." #: ../Doc/library/codecs.rst:82 msgid "" @@ -105,6 +140,11 @@ msgid "" "objects>`). The functions or methods are expected to work in a stateless " "mode." msgstr "" +"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " +"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:" +"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs " +"`). Les fonctions et méthodes sont censées fonctionner sans " +"état interne." #: ../Doc/library/codecs.rst:92 msgid "" @@ -113,6 +153,11 @@ msgid "" "`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. " "Incremental codecs can maintain state." msgstr "" +"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " +"doivent avoir respectivement les mêmes interfaces que celles définies par " +"les classes de base :class:`IncrementalEncoder` et :class:" +"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états " +"internes." #: ../Doc/library/codecs.rst:101 msgid "" @@ -120,69 +165,94 @@ msgid "" "the interface defined by the base classes :class:`StreamWriter` and :class:" "`StreamReader`, respectively. Stream codecs can maintain state." msgstr "" +"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " +"avoir les mêmes interfaces que celles définies par les classes de base :" +"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de " +"flux peuvent conserver un état interne." #: ../Doc/library/codecs.rst:106 msgid "" "To simplify access to the various codec components, the module provides " "these additional functions which use :func:`lookup` for the codec lookup:" msgstr "" +"Pour simplifier l'accès aux différents composants du codec, le module " +"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " +"pour la recherche du codec :" #: ../Doc/library/codecs.rst:111 msgid "" "Look up the codec for the given encoding and return its encoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " +"d'encodage." #: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120 #: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154 msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." -msgstr "" +msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." #: ../Doc/library/codecs.rst:118 msgid "" "Look up the codec for the given encoding and return its decoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " +"décodage." #: ../Doc/library/codecs.rst:125 msgid "" "Look up the codec for the given encoding and return its incremental encoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " +"d'encodage incrémental ou la fonction usine." #: ../Doc/library/codecs.rst:128 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental encoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas l'encodage incrémental." #: ../Doc/library/codecs.rst:134 msgid "" "Look up the codec for the given encoding and return its incremental decoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " +"décodage incrémental ou la fonction usine." #: ../Doc/library/codecs.rst:137 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental decoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas le décodage incrémental." #: ../Doc/library/codecs.rst:143 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamReader` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamReader` ou la fonction usine." #: ../Doc/library/codecs.rst:151 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamWriter` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamWriter` ou la fonction usine." #: ../Doc/library/codecs.rst:156 msgid "" "Custom codecs are made available by registering a suitable codec search " "function:" msgstr "" +"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " +"de recherche de codecs adaptée :" #: ../Doc/library/codecs.rst:161 msgid "" @@ -191,12 +261,20 @@ msgid "" "class:`CodecInfo` object. In case a search function cannot find a given " "encoding, it should return ``None``." msgstr "" +"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " +"de recherche prenne un argument, le nom de l'encodage écrit en lettres " +"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " +"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " +"None``." #: ../Doc/library/codecs.rst:168 msgid "" "Search function registration is not currently reversible, which may cause " "problems in some cases, such as unit testing or module reloading." msgstr "" +"l'enregistrement d'une fonction de recherche n'est actuellement pas " +"réversible, ce qui peut entraîner des problèmes dans certains cas, par " +"exemple pour les tests unitaires ou le rechargement de module." #: ../Doc/library/codecs.rst:172 msgid "" @@ -205,6 +283,11 @@ msgid "" "provides additional utility functions and classes that allow the use of a " "wider range of codecs when working with binary files:" msgstr "" +"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " +"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " +"présent module fournit des fonctions et classes utilitaires supplémentaires " +"qui permettent l'utilisation d'une plus large gamme de codecs si vous " +"travaillez avec des fichiers binaires :" #: ../Doc/library/codecs.rst:179 msgid "" @@ -212,6 +295,10 @@ msgid "" "`StreamReaderWriter`, providing transparent encoding/decoding. The default " "file mode is ``'r'``, meaning to open the file in read mode." msgstr "" +"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " +"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " +"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " +"est ouvert en lecture." #: ../Doc/library/codecs.rst:185 msgid "" @@ -220,6 +307,11 @@ msgid "" "may be any binary mode acceptable to the built-in :func:`open` function; the " "``'b'`` is automatically added." msgstr "" +"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " +"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " +"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " +"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " +"automatiquement ajouté." #: ../Doc/library/codecs.rst:190 msgid "" @@ -227,6 +319,10 @@ msgid "" "encoding that encodes to and decodes from bytes is allowed, and the data " "types supported by the file methods depend on the codec used." msgstr "" +"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " +"encode et décode des octets (type *bytes*) est autorisé et les types de " +"données pris en charge par les méthodes relatives aux fichiers dépendent du " +"codec utilisé." #: ../Doc/library/codecs.rst:194 msgid "" @@ -234,6 +330,9 @@ msgid "" "``'strict'`` which causes a :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." #: ../Doc/library/codecs.rst:197 msgid "" @@ -247,6 +346,9 @@ msgid "" "provides transparent transcoding. The original file is closed when the " "wrapped version is closed." msgstr "" +"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " +"qui fournit un transcodage transparent. Le fichier original est fermé quand " +"la version encapsulée est fermée." #: ../Doc/library/codecs.rst:207 msgid "" @@ -255,10 +357,17 @@ msgid "" "*file_encoding*. Bytes read from the original file are decoded according to " "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" +"Les données écrites dans un fichier encapsulant sont décodées en fonction du " +"*data_encoding* spécifié puis écrites vers le fichier original en tant que " +"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " +"original sont décodés conformément à *file_encoding* et le résultat est " +"encodé en utilisant *data_encoding*." #: ../Doc/library/codecs.rst:213 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" +"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " +"*data_encoding*." #: ../Doc/library/codecs.rst:215 msgid "" @@ -266,6 +375,9 @@ msgid "" "``'strict'``, which causes :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." #: ../Doc/library/codecs.rst:222 msgid "" @@ -274,6 +386,10 @@ msgid "" "well as any other keyword argument) is passed through to the incremental " "encoder." msgstr "" +"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur " +"`. L'argument *errors* (ainsi que tout autre argument passé par " +"mot-clé) est transmis à l'encodeur incrémental." #: ../Doc/library/codecs.rst:227 msgid "" @@ -281,6 +397,9 @@ msgid "" "encode. Therefore it does not support bytes-to-bytes encoders such as " "``base64_codec``." msgstr "" +"Cette fonction nécessite que le codec accepte les objets texte (classe :" +"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les " +"encodeurs *bytes* vers *bytes* tels que ``base64_codec``." #: ../Doc/library/codecs.rst:234 msgid "" @@ -289,6 +408,10 @@ msgid "" "well as any other keyword argument) is passed through to the incremental " "decoder." msgstr "" +"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " +"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au " +"décodeur incrémental." #: ../Doc/library/codecs.rst:239 msgid "" @@ -297,12 +420,18 @@ msgid "" "``rot_13``, although ``rot_13`` may be used equivalently with :func:" "`iterencode`." msgstr "" +"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " +"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " +"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " +"manière équivalente avec :func:`iterencode`." #: ../Doc/library/codecs.rst:245 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" +"Le module fournit également les constantes suivantes qui sont utiles pour " +"lire et écrire les fichiers dépendants de la plateforme :" #: ../Doc/library/codecs.rst:260 msgid "" @@ -315,10 +444,19 @@ msgid "" "`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others " "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" +"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " +"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " +"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " +"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " +"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:" +"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un " +"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " +"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " +"BOM dans les encodages UTF-8 et UTF-32." #: ../Doc/library/codecs.rst:274 msgid "Codec Base Classes" -msgstr "" +msgstr "Classes de base de codecs" #: ../Doc/library/codecs.rst:276 msgid "" @@ -326,6 +464,10 @@ msgid "" "interfaces for working with codec objects, and can also be used as the basis " "for custom codec implementations." msgstr "" +"Le module :mod:`codecs` définit un ensemble de classes de base qui " +"spécifient les interfaces pour travailler avec des objets codecs et qui " +"peuvent également être utilisées comme base pour des implémentations de " +"codecs personnalisés." #: ../Doc/library/codecs.rst:280 msgid "" @@ -335,10 +477,16 @@ msgid "" "decoder to implement the file protocols. Codec authors also need to define " "how the codec will handle encoding and decoding errors." msgstr "" +"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " +"en Python : codeur sans état, décodeur sans état, lecteur de flux et " +"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " +"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " +"Les auteurs de codecs doivent également définir comment le codec gère les " +"erreurs d'encodage et de décodage." #: ../Doc/library/codecs.rst:291 msgid "Error Handlers" -msgstr "" +msgstr "Gestionnaires d'erreurs" #: ../Doc/library/codecs.rst:293 msgid "" @@ -383,6 +531,8 @@ msgid "" "The following error handlers are only applicable to :term:`text encodings " "`:" msgstr "" +"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:" +"`encodeurs de texte ` :" #: ../Doc/library/codecs.rst:318 msgid "``'replace'``" @@ -414,6 +564,8 @@ msgid "" "Replace with backslashed escape sequences. Implemented in :func:" "`backslashreplace_errors`." msgstr "" +"Remplace avec une séquence échappée par des antislashs. Implémenté dans :" +"func:`backslashreplace_errors`." #: ../Doc/library/codecs.rst:333 msgid "``'namereplace'``" @@ -441,10 +593,12 @@ msgstr "" msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" +"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " +"suivants :" #: ../Doc/library/codecs.rst:349 msgid "Codecs" -msgstr "" +msgstr "Codecs" #: ../Doc/library/codecs.rst:351 msgid "``'surrogatepass'``" @@ -452,7 +606,7 @@ msgstr "``'surrogatepass'``" #: ../Doc/library/codecs.rst:351 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -msgstr "" +msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" #: ../Doc/library/codecs.rst:351 msgid "" @@ -463,28 +617,35 @@ msgstr "" #: ../Doc/library/codecs.rst:356 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." #: ../Doc/library/codecs.rst:359 msgid "" "The ``'surrogatepass'`` error handlers now works with utf-16\\* and " "utf-32\\* codecs." msgstr "" +"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " +"codecs utf-16\\* et utf-32\\*." #: ../Doc/library/codecs.rst:362 msgid "The ``'namereplace'`` error handler." -msgstr "" +msgstr "le gestionnaire d'erreurs ``'namereplace'``." #: ../Doc/library/codecs.rst:365 msgid "" "The ``'backslashreplace'`` error handlers now works with decoding and " "translating." msgstr "" +"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " +"le décodage et la traduction." #: ../Doc/library/codecs.rst:369 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" +"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " +"nouveau gestionnaire d'erreurs nommé :" #: ../Doc/library/codecs.rst:374 msgid "" @@ -1340,11 +1501,11 @@ msgstr "" #: ../Doc/library/codecs.rst:1008 msgid "ascii" -msgstr "ascii" +msgstr "*ascii*" #: ../Doc/library/codecs.rst:1008 msgid "646, us-ascii" -msgstr "646, us-ascii" +msgstr "*646*, *us-ascii*" #: ../Doc/library/codecs.rst:1008 ../Doc/library/codecs.rst:1014 #: ../Doc/library/codecs.rst:1022 @@ -1353,11 +1514,11 @@ msgstr "Anglais" #: ../Doc/library/codecs.rst:1010 msgid "big5" -msgstr "big5" +msgstr "*big5*" #: ../Doc/library/codecs.rst:1010 msgid "big5-tw, csbig5" -msgstr "big5-tw, csbig5" +msgstr "*big5-tw*, *csbig5*" #: ../Doc/library/codecs.rst:1010 ../Doc/library/codecs.rst:1012 #: ../Doc/library/codecs.rst:1070 @@ -1366,27 +1527,27 @@ msgstr "Chinois Traditionnel" #: ../Doc/library/codecs.rst:1012 msgid "big5hkscs" -msgstr "big5hkscs" +msgstr "*big5hkscs*" #: ../Doc/library/codecs.rst:1012 msgid "big5-hkscs, hkscs" -msgstr "big5-hkscs, hkscs" +msgstr "*big5-hkscs*, *hkscs*" #: ../Doc/library/codecs.rst:1014 msgid "cp037" -msgstr "cp037" +msgstr "*cp037*" #: ../Doc/library/codecs.rst:1014 msgid "IBM037, IBM039" -msgstr "IBM037, IBM039" +msgstr "*IBM037*, *IBM039*" #: ../Doc/library/codecs.rst:1016 msgid "cp273" -msgstr "cp273" +msgstr "*cp273*" #: ../Doc/library/codecs.rst:1016 msgid "273, IBM273, csIBM273" -msgstr "273, IBM273, csIBM273" +msgstr "*273*, *IBM273*, *csIBM273*" #: ../Doc/library/codecs.rst:1016 msgid "German" @@ -1394,11 +1555,11 @@ msgstr "Allemand" #: ../Doc/library/codecs.rst:1020 msgid "cp424" -msgstr "cp424" +msgstr "*cp424*" #: ../Doc/library/codecs.rst:1020 msgid "EBCDIC-CP-HE, IBM424" -msgstr "EBCDIC-CP-HE, IBM424" +msgstr "*EBCDIC-CP-HE*, *IBM424*" #: ../Doc/library/codecs.rst:1020 ../Doc/library/codecs.rst:1040 #: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1093 @@ -1408,19 +1569,19 @@ msgstr "Hébreux" #: ../Doc/library/codecs.rst:1022 msgid "cp437" -msgstr "cp437" +msgstr "*cp437*" #: ../Doc/library/codecs.rst:1022 msgid "437, IBM437" -msgstr "437, IBM437" +msgstr "*437*, *IBM437*" #: ../Doc/library/codecs.rst:1024 msgid "cp500" -msgstr "cp500" +msgstr "*cp500*" #: ../Doc/library/codecs.rst:1024 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" -msgstr "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" +msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" #: ../Doc/library/codecs.rst:1024 ../Doc/library/codecs.rst:1033 #: ../Doc/library/codecs.rst:1044 ../Doc/library/codecs.rst:1080 @@ -1431,7 +1592,7 @@ msgstr "Europe de l'ouest" #: ../Doc/library/codecs.rst:1027 msgid "cp720" -msgstr "cp720" +msgstr "*cp720*" #: ../Doc/library/codecs.rst:1027 ../Doc/library/codecs.rst:1054 #: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1157 @@ -1440,7 +1601,7 @@ msgstr "Arabe" #: ../Doc/library/codecs.rst:1029 msgid "cp737" -msgstr "cp737" +msgstr "*cp737*" #: ../Doc/library/codecs.rst:1029 ../Doc/library/codecs.rst:1060 #: ../Doc/library/codecs.rst:1064 ../Doc/library/codecs.rst:1089 @@ -1450,11 +1611,11 @@ msgstr "Grec" #: ../Doc/library/codecs.rst:1031 msgid "cp775" -msgstr "cp775" +msgstr "*cp775*" #: ../Doc/library/codecs.rst:1031 msgid "IBM775" -msgstr "IBM775" +msgstr "*IBM775*" #: ../Doc/library/codecs.rst:1031 ../Doc/library/codecs.rst:1097 #: ../Doc/library/codecs.rst:1152 ../Doc/library/codecs.rst:1169 @@ -1463,19 +1624,19 @@ msgstr "Langues Baltiques" #: ../Doc/library/codecs.rst:1033 msgid "cp850" -msgstr "cp850" +msgstr "*cp850*" #: ../Doc/library/codecs.rst:1033 msgid "850, IBM850" -msgstr "850, IBM850" +msgstr "*850*, *IBM850*" #: ../Doc/library/codecs.rst:1035 msgid "cp852" -msgstr "cp852" +msgstr "*cp852*" #: ../Doc/library/codecs.rst:1035 msgid "852, IBM852" -msgstr "852, IBM852" +msgstr "*852*, *IBM852*" #: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1082 #: ../Doc/library/codecs.rst:1148 ../Doc/library/codecs.rst:1198 @@ -1484,11 +1645,11 @@ msgstr "Europe centrale et Europe de l'Est" #: ../Doc/library/codecs.rst:1037 msgid "cp855" -msgstr "cp855" +msgstr "*cp855*" #: ../Doc/library/codecs.rst:1037 msgid "855, IBM855" -msgstr "855, IBM855" +msgstr "*855*, *IBM855*" #: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1084 #: ../Doc/library/codecs.rst:1154 ../Doc/library/codecs.rst:1191 @@ -1497,15 +1658,15 @@ msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" #: ../Doc/library/codecs.rst:1040 msgid "cp856" -msgstr "cp856" +msgstr "*cp856*" #: ../Doc/library/codecs.rst:1042 msgid "cp857" -msgstr "cp857" +msgstr "*cp857*" #: ../Doc/library/codecs.rst:1042 msgid "857, IBM857" -msgstr "857, IBM857" +msgstr "*857*, *IBM857*" #: ../Doc/library/codecs.rst:1042 ../Doc/library/codecs.rst:1074 #: ../Doc/library/codecs.rst:1091 ../Doc/library/codecs.rst:1163 @@ -1515,19 +1676,19 @@ msgstr "Turc" #: ../Doc/library/codecs.rst:1044 msgid "cp858" -msgstr "cp858" +msgstr "*cp858*" #: ../Doc/library/codecs.rst:1044 msgid "858, IBM858" -msgstr "858, IBM858" +msgstr "*858*, *IBM858*" #: ../Doc/library/codecs.rst:1046 msgid "cp860" -msgstr "cp860" +msgstr "*cp860*" #: ../Doc/library/codecs.rst:1046 msgid "860, IBM860" -msgstr "860, IBM860" +msgstr "*860*, *IBM860*" #: ../Doc/library/codecs.rst:1046 msgid "Portuguese" @@ -1535,11 +1696,11 @@ msgstr "Portugais" #: ../Doc/library/codecs.rst:1048 msgid "cp861" -msgstr "cp861" +msgstr "*cp861*" #: ../Doc/library/codecs.rst:1048 msgid "861, CP-IS, IBM861" -msgstr "861, CP-IS, IBM861" +msgstr "*861*, *CP-IS*, *IBM861*" #: ../Doc/library/codecs.rst:1048 ../Doc/library/codecs.rst:1196 msgid "Icelandic" @@ -1547,19 +1708,19 @@ msgstr "Islandais" #: ../Doc/library/codecs.rst:1050 msgid "cp862" -msgstr "cp862" +msgstr "*cp862*" #: ../Doc/library/codecs.rst:1050 msgid "862, IBM862" -msgstr "862, IBM862" +msgstr "*862*, *IBM862*" #: ../Doc/library/codecs.rst:1052 msgid "cp863" -msgstr "cp863" +msgstr "*cp863*" #: ../Doc/library/codecs.rst:1052 msgid "863, IBM863" -msgstr "863, IBM863" +msgstr "*863*, *IBM863*" #: ../Doc/library/codecs.rst:1052 msgid "Canadian" @@ -1567,19 +1728,19 @@ msgstr "Canadien" #: ../Doc/library/codecs.rst:1054 msgid "cp864" -msgstr "cp864" +msgstr "*cp864*" #: ../Doc/library/codecs.rst:1054 msgid "IBM864" -msgstr "IBM864" +msgstr "*IBM864*" #: ../Doc/library/codecs.rst:1056 msgid "cp865" -msgstr "cp865" +msgstr "*cp865*" #: ../Doc/library/codecs.rst:1056 msgid "865, IBM865" -msgstr "865, IBM865" +msgstr "*865*, *IBM865*" #: ../Doc/library/codecs.rst:1056 msgid "Danish, Norwegian" @@ -1587,11 +1748,11 @@ msgstr "" #: ../Doc/library/codecs.rst:1058 msgid "cp866" -msgstr "cp866" +msgstr "*cp866*" #: ../Doc/library/codecs.rst:1058 msgid "866, IBM866" -msgstr "866, IBM866" +msgstr "*866*, *IBM866*" #: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1179 msgid "Russian" @@ -1599,15 +1760,15 @@ msgstr "Russe" #: ../Doc/library/codecs.rst:1060 msgid "cp869" -msgstr "cp869" +msgstr "*cp869*" #: ../Doc/library/codecs.rst:1060 msgid "869, CP-GR, IBM869" -msgstr "869, CP-GR, IBM869" +msgstr "*869*, *CP-GR*, *IBM869*" #: ../Doc/library/codecs.rst:1062 msgid "cp874" -msgstr "cp874" +msgstr "*cp874*" #: ../Doc/library/codecs.rst:1062 msgid "Thai" @@ -1615,15 +1776,15 @@ msgstr "" #: ../Doc/library/codecs.rst:1064 msgid "cp875" -msgstr "cp875" +msgstr "*cp875*" #: ../Doc/library/codecs.rst:1066 msgid "cp932" -msgstr "cp932" +msgstr "*cp932*" #: ../Doc/library/codecs.rst:1066 msgid "932, ms932, mskanji, ms-kanji" -msgstr "932, ms932, mskanji, ms-kanji" +msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" #: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1106 #: ../Doc/library/codecs.rst:1108 ../Doc/library/codecs.rst:1110 @@ -1636,11 +1797,11 @@ msgstr "" #: ../Doc/library/codecs.rst:1068 msgid "cp949" -msgstr "cp949" +msgstr "*cp949*" #: ../Doc/library/codecs.rst:1068 msgid "949, ms949, uhc" -msgstr "949, ms949, uhc" +msgstr "*949*, *ms949*, *uhc*" #: ../Doc/library/codecs.rst:1068 ../Doc/library/codecs.rst:1112 #: ../Doc/library/codecs.rst:1142 ../Doc/library/codecs.rst:1177 @@ -1649,15 +1810,15 @@ msgstr "" #: ../Doc/library/codecs.rst:1070 msgid "cp950" -msgstr "cp950" +msgstr "*cp950*" #: ../Doc/library/codecs.rst:1070 msgid "950, ms950" -msgstr "950, ms950" +msgstr "*950*, *ms950*" #: ../Doc/library/codecs.rst:1072 msgid "cp1006" -msgstr "cp1006" +msgstr "*cp1006*" #: ../Doc/library/codecs.rst:1072 msgid "Urdu" @@ -1665,19 +1826,19 @@ msgstr "" #: ../Doc/library/codecs.rst:1074 msgid "cp1026" -msgstr "cp1026" +msgstr "*cp1026*" #: ../Doc/library/codecs.rst:1074 msgid "ibm1026" -msgstr "ibm1026" +msgstr "*ibm1026*" #: ../Doc/library/codecs.rst:1076 msgid "cp1125" -msgstr "cp1125" +msgstr "*cp1125*" #: ../Doc/library/codecs.rst:1076 msgid "1125, ibm1125, cp866u, ruscii" -msgstr "1125, ibm1125, cp866u, ruscii" +msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" #: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1185 msgid "Ukrainian" @@ -1685,83 +1846,83 @@ msgstr "" #: ../Doc/library/codecs.rst:1080 msgid "cp1140" -msgstr "cp1140" +msgstr "*cp1140*" #: ../Doc/library/codecs.rst:1080 msgid "ibm1140" -msgstr "ibm1140" +msgstr "*ibm1140*" #: ../Doc/library/codecs.rst:1082 msgid "cp1250" -msgstr "cp1250" +msgstr "*cp1250*" #: ../Doc/library/codecs.rst:1082 msgid "windows-1250" -msgstr "windows-1250" +msgstr "*windows-1250*" #: ../Doc/library/codecs.rst:1084 msgid "cp1251" -msgstr "cp1251" +msgstr "*cp1251*" #: ../Doc/library/codecs.rst:1084 msgid "windows-1251" -msgstr "windows-1251" +msgstr "*windows-1251*" #: ../Doc/library/codecs.rst:1087 msgid "cp1252" -msgstr "cp1252" +msgstr "*cp1252*" #: ../Doc/library/codecs.rst:1087 msgid "windows-1252" -msgstr "windows-1252" +msgstr "*windows-1252*" #: ../Doc/library/codecs.rst:1089 msgid "cp1253" -msgstr "cp1253" +msgstr "*cp1253*" #: ../Doc/library/codecs.rst:1089 msgid "windows-1253" -msgstr "windows-1253" +msgstr "*windows-1253*" #: ../Doc/library/codecs.rst:1091 msgid "cp1254" -msgstr "cp1254" +msgstr "*cp1254*" #: ../Doc/library/codecs.rst:1091 msgid "windows-1254" -msgstr "windows-1254" +msgstr "*windows-1254*" #: ../Doc/library/codecs.rst:1093 msgid "cp1255" -msgstr "cp1255" +msgstr "*cp1255*" #: ../Doc/library/codecs.rst:1093 msgid "windows-1255" -msgstr "windows-1255" +msgstr "*windows-1255*" #: ../Doc/library/codecs.rst:1095 msgid "cp1256" -msgstr "cp1256" +msgstr "*cp1256*" #: ../Doc/library/codecs.rst:1095 msgid "windows-1256" -msgstr "windows-1256" +msgstr "*windows-1256*" #: ../Doc/library/codecs.rst:1097 msgid "cp1257" -msgstr "cp1257" +msgstr "*cp1257*" #: ../Doc/library/codecs.rst:1097 msgid "windows-1257" -msgstr "windows-1257" +msgstr "*windows-1257*" #: ../Doc/library/codecs.rst:1099 msgid "cp1258" -msgstr "cp1258" +msgstr "*cp1258*" #: ../Doc/library/codecs.rst:1099 msgid "windows-1258" -msgstr "windows-1258" +msgstr "*windows-1258*" #: ../Doc/library/codecs.rst:1099 msgid "Vietnamese" @@ -1769,47 +1930,49 @@ msgstr "" #: ../Doc/library/codecs.rst:1101 msgid "cp65001" -msgstr "cp65001" +msgstr "*cp65001*" #: ../Doc/library/codecs.rst:1101 msgid "Windows only: Windows UTF-8 (``CP_UTF8``)" -msgstr "Windows only: Windows UTF-8 (``CP_UTF8``)" +msgstr "Windows uniquement : Windows UTF-8 (``CP_UTF8``)" #: ../Doc/library/codecs.rst:1106 msgid "euc_jp" -msgstr "euc_jp" +msgstr "*euc_jp*" #: ../Doc/library/codecs.rst:1106 msgid "eucjp, ujis, u-jis" -msgstr "eucjp, ujis, u-jis" +msgstr "*eucjp*, *ujis*, *u-jis*" #: ../Doc/library/codecs.rst:1108 msgid "euc_jis_2004" -msgstr "euc_jis_2004" +msgstr "*euc_jis_2004*" #: ../Doc/library/codecs.rst:1108 msgid "jisx0213, eucjis2004" -msgstr "jisx0213, eucjis2004" +msgstr "*jisx0213*, *eucjis2004*" #: ../Doc/library/codecs.rst:1110 msgid "euc_jisx0213" -msgstr "euc_jisx0213" +msgstr "*euc_jisx0213*" #: ../Doc/library/codecs.rst:1110 msgid "eucjisx0213" -msgstr "eucjisx0213" +msgstr "*eucjisx0213*" #: ../Doc/library/codecs.rst:1112 msgid "euc_kr" -msgstr "euc_kr" +msgstr "*euc_kr*" #: ../Doc/library/codecs.rst:1112 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" -msgstr "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" +msgstr "" +"*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " +"*ks_x-1001*" #: ../Doc/library/codecs.rst:1116 msgid "gb2312" -msgstr "gb2312" +msgstr "*gb2312*" #: ../Doc/library/codecs.rst:1116 msgid "" @@ -1825,11 +1988,11 @@ msgstr "" #: ../Doc/library/codecs.rst:1121 msgid "gbk" -msgstr "gbk" +msgstr "*gbk*" #: ../Doc/library/codecs.rst:1121 msgid "936, cp936, ms936" -msgstr "936, cp936, ms936" +msgstr "*936*, *cp936*, *ms936*" #: ../Doc/library/codecs.rst:1121 ../Doc/library/codecs.rst:1123 msgid "Unified Chinese" @@ -1837,43 +2000,43 @@ msgstr "" #: ../Doc/library/codecs.rst:1123 msgid "gb18030" -msgstr "gb18030" +msgstr "*gb18030*" #: ../Doc/library/codecs.rst:1123 msgid "gb18030-2000" -msgstr "gb18030-2000" +msgstr "*gb18030-2000*" #: ../Doc/library/codecs.rst:1125 msgid "hz" -msgstr "hz" +msgstr "*hz*" #: ../Doc/library/codecs.rst:1125 msgid "hzgb, hz-gb, hz-gb-2312" -msgstr "hzgb, hz-gb, hz-gb-2312" +msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" #: ../Doc/library/codecs.rst:1127 msgid "iso2022_jp" -msgstr "iso2022_jp" +msgstr "*iso2022_jp*" #: ../Doc/library/codecs.rst:1127 msgid "csiso2022jp, iso2022jp, iso-2022-jp" -msgstr "csiso2022jp, iso2022jp, iso-2022-jp" +msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" #: ../Doc/library/codecs.rst:1130 msgid "iso2022_jp_1" -msgstr "iso2022_jp_1" +msgstr "*iso2022_jp_1*" #: ../Doc/library/codecs.rst:1130 msgid "iso2022jp-1, iso-2022-jp-1" -msgstr "iso2022jp-1, iso-2022-jp-1" +msgstr "*iso2022jp-1*, *iso-2022-jp-1*" #: ../Doc/library/codecs.rst:1132 msgid "iso2022_jp_2" -msgstr "iso2022_jp_2" +msgstr "*iso2022_jp_2*" #: ../Doc/library/codecs.rst:1132 msgid "iso2022jp-2, iso-2022-jp-2" -msgstr "iso2022jp-2, iso-2022-jp-2" +msgstr "*iso2022jp-2*, *iso-2022-jp-2*" #: ../Doc/library/codecs.rst:1132 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" @@ -1881,43 +2044,43 @@ msgstr "" #: ../Doc/library/codecs.rst:1135 msgid "iso2022_jp_2004" -msgstr "iso2022_jp_2004" +msgstr "*iso2022_jp_2004*" #: ../Doc/library/codecs.rst:1135 msgid "iso2022jp-2004, iso-2022-jp-2004" -msgstr "iso2022jp-2004, iso-2022-jp-2004" +msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" #: ../Doc/library/codecs.rst:1138 msgid "iso2022_jp_3" -msgstr "iso2022_jp_3" +msgstr "*iso2022_jp_3*" #: ../Doc/library/codecs.rst:1138 msgid "iso2022jp-3, iso-2022-jp-3" -msgstr "iso2022jp-3, iso-2022-jp-3" +msgstr "*iso2022jp-3*, *iso-2022-jp-3*" #: ../Doc/library/codecs.rst:1140 msgid "iso2022_jp_ext" -msgstr "iso2022_jp_ext" +msgstr "*iso2022_jp_ext*" #: ../Doc/library/codecs.rst:1140 msgid "iso2022jp-ext, iso-2022-jp-ext" -msgstr "iso2022jp-ext, iso-2022-jp-ext" +msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" #: ../Doc/library/codecs.rst:1142 msgid "iso2022_kr" -msgstr "iso2022_kr" +msgstr "*iso2022_kr*" #: ../Doc/library/codecs.rst:1142 msgid "csiso2022kr, iso2022kr, iso-2022-kr" -msgstr "csiso2022kr, iso2022kr, iso-2022-kr" +msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" #: ../Doc/library/codecs.rst:1145 msgid "latin_1" -msgstr "latin_1" +msgstr "*latin_1*" #: ../Doc/library/codecs.rst:1145 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" -msgstr "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" +msgstr "*iso-8859-1*, *iso8859-1*, *8859*, *cp819*, *latin*, *latin1*, *L1*" #: ../Doc/library/codecs.rst:1145 msgid "West Europe" @@ -1925,19 +2088,19 @@ msgstr "Europe de l'Ouest" #: ../Doc/library/codecs.rst:1148 msgid "iso8859_2" -msgstr "iso8859_2" +msgstr "*iso8859_2*" #: ../Doc/library/codecs.rst:1148 msgid "iso-8859-2, latin2, L2" -msgstr "iso-8859-2, latin2, L2" +msgstr "*iso-8859-2*, *latin2*, *L2*" #: ../Doc/library/codecs.rst:1150 msgid "iso8859_3" -msgstr "iso8859_3" +msgstr "*iso8859_3*" #: ../Doc/library/codecs.rst:1150 msgid "iso-8859-3, latin3, L3" -msgstr "iso-8859-3, latin3, L3" +msgstr "*iso-8859-3*, *latin3*, *L3*" #: ../Doc/library/codecs.rst:1150 msgid "Esperanto, Maltese" @@ -1945,59 +2108,59 @@ msgstr "" #: ../Doc/library/codecs.rst:1152 msgid "iso8859_4" -msgstr "iso8859_4" +msgstr "*iso8859_4*" #: ../Doc/library/codecs.rst:1152 msgid "iso-8859-4, latin4, L4" -msgstr "iso-8859-4, latin4, L4" +msgstr "*iso-8859-4*, *latin4*, *L4*" #: ../Doc/library/codecs.rst:1154 msgid "iso8859_5" -msgstr "iso8859_5" +msgstr "*iso8859_5*" #: ../Doc/library/codecs.rst:1154 msgid "iso-8859-5, cyrillic" -msgstr "iso-8859-5, cyrillic" +msgstr "*iso-8859-5*, *cyrillic*" #: ../Doc/library/codecs.rst:1157 msgid "iso8859_6" -msgstr "iso8859_6" +msgstr "*iso8859_6*" #: ../Doc/library/codecs.rst:1157 msgid "iso-8859-6, arabic" -msgstr "iso-8859-6, arabic" +msgstr "*iso-8859-6*, *arabic*" #: ../Doc/library/codecs.rst:1159 msgid "iso8859_7" -msgstr "iso8859_7" +msgstr "*iso8859_7*" #: ../Doc/library/codecs.rst:1159 msgid "iso-8859-7, greek, greek8" -msgstr "iso-8859-7, greek, greek8" +msgstr "*iso-8859-7*, *greek*, *greek8*" #: ../Doc/library/codecs.rst:1161 msgid "iso8859_8" -msgstr "iso8859_8" +msgstr "*iso8859_8*" #: ../Doc/library/codecs.rst:1161 msgid "iso-8859-8, hebrew" -msgstr "iso-8859-8, hebrew" +msgstr "*iso-8859-8*, *hebrew*" #: ../Doc/library/codecs.rst:1163 msgid "iso8859_9" -msgstr "iso8859_9" +msgstr "*iso8859_9*" #: ../Doc/library/codecs.rst:1163 msgid "iso-8859-9, latin5, L5" -msgstr "iso-8859-9, latin5, L5" +msgstr "*iso-8859-9*, *latin5*, *L5*" #: ../Doc/library/codecs.rst:1165 msgid "iso8859_10" -msgstr "iso8859_10" +msgstr "*iso8859_10*" #: ../Doc/library/codecs.rst:1165 msgid "iso-8859-10, latin6, L6" -msgstr "iso-8859-10, latin6, L6" +msgstr "*iso-8859-10*, *latin6*, *L6*" #: ../Doc/library/codecs.rst:1165 msgid "Nordic languages" @@ -2005,11 +2168,11 @@ msgstr "" #: ../Doc/library/codecs.rst:1167 msgid "iso8859_11" -msgstr "iso8859_11" +msgstr "*iso8859_11*" #: ../Doc/library/codecs.rst:1167 msgid "iso-8859-11, thai" -msgstr "iso-8859-11, thai" +msgstr "*iso-8859-11*, *thai*" #: ../Doc/library/codecs.rst:1167 msgid "Thai languages" @@ -2017,19 +2180,19 @@ msgstr "" #: ../Doc/library/codecs.rst:1169 msgid "iso8859_13" -msgstr "iso8859_13" +msgstr "*iso8859_13*" #: ../Doc/library/codecs.rst:1169 msgid "iso-8859-13, latin7, L7" -msgstr "iso-8859-13, latin7, L7" +msgstr "*iso-8859-13*, *latin7*, *L7*" #: ../Doc/library/codecs.rst:1171 msgid "iso8859_14" -msgstr "iso8859_14" +msgstr "*iso8859_14*" #: ../Doc/library/codecs.rst:1171 msgid "iso-8859-14, latin8, L8" -msgstr "iso-8859-14, latin8, L8" +msgstr "*iso-8859-14*, *latin8*, *L8*" #: ../Doc/library/codecs.rst:1171 msgid "Celtic languages" @@ -2037,19 +2200,19 @@ msgstr "" #: ../Doc/library/codecs.rst:1173 msgid "iso8859_15" -msgstr "iso8859_15" +msgstr "*iso8859_15*" #: ../Doc/library/codecs.rst:1173 msgid "iso-8859-15, latin9, L9" -msgstr "iso-8859-15, latin9, L9" +msgstr "*iso-8859-15*, *latin9*, *L9*" #: ../Doc/library/codecs.rst:1175 msgid "iso8859_16" -msgstr "iso8859_16" +msgstr "*iso8859_16*" #: ../Doc/library/codecs.rst:1175 msgid "iso-8859-16, latin10, L10" -msgstr "iso-8859-16, latin10, L10" +msgstr "*iso-8859-16*, *latin10*, *L10*" #: ../Doc/library/codecs.rst:1175 msgid "South-Eastern Europe" @@ -2057,19 +2220,19 @@ msgstr "" #: ../Doc/library/codecs.rst:1177 msgid "johab" -msgstr "johab" +msgstr "*johab*" #: ../Doc/library/codecs.rst:1177 msgid "cp1361, ms1361" -msgstr "cp1361, ms1361" +msgstr "*cp1361*, *ms1361*" #: ../Doc/library/codecs.rst:1179 msgid "koi8_r" -msgstr "koi8_r" +msgstr "*koi8_r*" #: ../Doc/library/codecs.rst:1181 msgid "koi8_t" -msgstr "koi8_t" +msgstr "*koi8_t*" #: ../Doc/library/codecs.rst:1181 msgid "Tajik" @@ -2077,15 +2240,15 @@ msgstr "*Tajik*" #: ../Doc/library/codecs.rst:1185 msgid "koi8_u" -msgstr "koi8_u" +msgstr "*koi8_u*" #: ../Doc/library/codecs.rst:1187 msgid "kz1048" -msgstr "kz1048" +msgstr "*kz1048*" #: ../Doc/library/codecs.rst:1187 msgid "kz_1048, strk1048_2002, rk1048" -msgstr "kz_1048, strk1048_2002, rk1048" +msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" #: ../Doc/library/codecs.rst:1187 ../Doc/library/codecs.rst:1204 msgid "Kazakh" @@ -2093,91 +2256,91 @@ msgstr "" #: ../Doc/library/codecs.rst:1191 msgid "mac_cyrillic" -msgstr "mac_cyrillic" +msgstr "*mac_cyrillic*" #: ../Doc/library/codecs.rst:1191 msgid "maccyrillic" -msgstr "maccyrillic" +msgstr "*maccyrillic*" #: ../Doc/library/codecs.rst:1194 msgid "mac_greek" -msgstr "mac_greek" +msgstr "*mac_greek*" #: ../Doc/library/codecs.rst:1194 msgid "macgreek" -msgstr "macgreek" +msgstr "*macgreek*" #: ../Doc/library/codecs.rst:1196 msgid "mac_iceland" -msgstr "mac_iceland" +msgstr "*mac_iceland*" #: ../Doc/library/codecs.rst:1196 msgid "maciceland" -msgstr "maciceland" +msgstr "*maciceland*" #: ../Doc/library/codecs.rst:1198 msgid "mac_latin2" -msgstr "mac_latin2" +msgstr "*mac_latin2*" #: ../Doc/library/codecs.rst:1198 msgid "maclatin2, maccentraleurope" -msgstr "maclatin2, maccentraleurope" +msgstr "*maclatin2*, *maccentraleurope*" #: ../Doc/library/codecs.rst:1200 msgid "mac_roman" -msgstr "mac_roman" +msgstr "*mac_roman*" #: ../Doc/library/codecs.rst:1200 msgid "macroman, macintosh" -msgstr "macroman, macintosh" +msgstr "*macroman*, *macintosh*" #: ../Doc/library/codecs.rst:1202 msgid "mac_turkish" -msgstr "mac_turkish" +msgstr "*mac_turkish*" #: ../Doc/library/codecs.rst:1202 msgid "macturkish" -msgstr "macturkish" +msgstr "*macturkish*" #: ../Doc/library/codecs.rst:1204 msgid "ptcp154" -msgstr "ptcp154" +msgstr "*ptcp154*" #: ../Doc/library/codecs.rst:1204 msgid "csptcp154, pt154, cp154, cyrillic-asian" -msgstr "csptcp154, pt154, cp154, cyrillic-asian" +msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" #: ../Doc/library/codecs.rst:1207 msgid "shift_jis" -msgstr "shift_jis" +msgstr "*shift_jis*" #: ../Doc/library/codecs.rst:1207 msgid "csshiftjis, shiftjis, sjis, s_jis" -msgstr "csshiftjis, shiftjis, sjis, s_jis" +msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" #: ../Doc/library/codecs.rst:1210 msgid "shift_jis_2004" -msgstr "shift_jis_2004" +msgstr "*shift_jis_2004*" #: ../Doc/library/codecs.rst:1210 msgid "shiftjis2004, sjis_2004, sjis2004" -msgstr "shiftjis2004, sjis_2004, sjis2004" +msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" #: ../Doc/library/codecs.rst:1213 msgid "shift_jisx0213" -msgstr "shift_jisx0213" +msgstr "*shift_jisx0213*" #: ../Doc/library/codecs.rst:1213 msgid "shiftjisx0213, sjisx0213, s_jisx0213" -msgstr "shiftjisx0213, sjisx0213, s_jisx0213" +msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" #: ../Doc/library/codecs.rst:1216 msgid "utf_32" -msgstr "utf_32" +msgstr "*utf_32*" #: ../Doc/library/codecs.rst:1216 msgid "U32, utf32" -msgstr "U32, utf32" +msgstr "*U32*, *utf32*" #: ../Doc/library/codecs.rst:1216 ../Doc/library/codecs.rst:1218 #: ../Doc/library/codecs.rst:1220 ../Doc/library/codecs.rst:1222 @@ -2189,63 +2352,63 @@ msgstr "" #: ../Doc/library/codecs.rst:1218 msgid "utf_32_be" -msgstr "utf_32_be" +msgstr "*utf_32_be*" #: ../Doc/library/codecs.rst:1218 msgid "UTF-32BE" -msgstr "UTF-32BE" +msgstr "*UTF-32BE*" #: ../Doc/library/codecs.rst:1220 msgid "utf_32_le" -msgstr "utf_32_le" +msgstr "*utf_32_le*" #: ../Doc/library/codecs.rst:1220 msgid "UTF-32LE" -msgstr "UTF-32LE" +msgstr "*UTF-32LE*" #: ../Doc/library/codecs.rst:1222 msgid "utf_16" -msgstr "utf_16" +msgstr "*utf_16*" #: ../Doc/library/codecs.rst:1222 msgid "U16, utf16" -msgstr "U16, utf16" +msgstr "*U16*, *utf16*" #: ../Doc/library/codecs.rst:1224 msgid "utf_16_be" -msgstr "utf_16_be" +msgstr "*utf_16_be*" #: ../Doc/library/codecs.rst:1224 msgid "UTF-16BE" -msgstr "UTF-16BE" +msgstr "*UTF-16BE*" #: ../Doc/library/codecs.rst:1226 msgid "utf_16_le" -msgstr "utf_16_le" +msgstr "*utf_16_le*" #: ../Doc/library/codecs.rst:1226 msgid "UTF-16LE" -msgstr "UTF-16LE" +msgstr "*UTF-16LE*" #: ../Doc/library/codecs.rst:1228 msgid "utf_7" -msgstr "utf_7" +msgstr "*utf_7*" #: ../Doc/library/codecs.rst:1228 msgid "U7, unicode-1-1-utf-7" -msgstr "U7, unicode-1-1-utf-7" +msgstr "*U7*, *unicode-1-1-utf-7*" #: ../Doc/library/codecs.rst:1230 msgid "utf_8" -msgstr "utf_8" +msgstr "*utf_8*" #: ../Doc/library/codecs.rst:1230 msgid "U8, UTF, utf8" -msgstr "U8, UTF, utf8" +msgstr "*U8*, *UTF*, *utf8*" #: ../Doc/library/codecs.rst:1232 msgid "utf_8_sig" -msgstr "utf_8_sig" +msgstr "*utf_8_sig*" #: ../Doc/library/codecs.rst:1235 msgid "" diff --git a/library/collections.abc.po b/library/collections.abc.po index a235d622c..caaad25c4 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -524,7 +524,7 @@ msgid "" "functionality, for example::" msgstr "" "Ces ABC permettent de demander à des classes ou à des instances si elles " -"fournissent des fonctionnalités particulières, par exemple ::" +"fournissent des fonctionnalités particulières, par exemple ::" #: ../Doc/library/collections.abc.rst:246 msgid "" @@ -541,7 +541,7 @@ msgstr "" "il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " "abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " "apporte les méthodes restantes, comme :meth:`__and__` et :meth:" -"`isdisjoint` ::" +"`isdisjoint` ::" #: ../Doc/library/collections.abc.rst:275 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" diff --git a/library/collections.po b/library/collections.po index a01aca561..fd35fbb90 100644 --- a/library/collections.po +++ b/library/collections.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" -msgstr ":mod:`collections` --- Types de données de conteneurs" +msgstr ":mod:`collections` — Types de données de conteneurs" #: ../Doc/library/collections.rst:10 msgid "**Source code:** :source:`Lib/collections/__init__.py`" @@ -306,8 +306,7 @@ msgstr "" #: ../Doc/library/collections.rst:134 msgid "Example of simulating Python's internal lookup chain::" -msgstr "" -"Exemple 1 : simulation de la chaîne de recherche interne de Python : ::" +msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" #: ../Doc/library/collections.rst:139 msgid "" @@ -316,7 +315,7 @@ msgid "" "values::" msgstr "" "Exemple 2 : spécification d'une hiérarchie pour les options : ligne de " -"commande, variable d'environnement, valeurs par défaut : ::" +"commande, variable d'environnement, valeurs par défaut ::" #: ../Doc/library/collections.rst:156 msgid "" @@ -324,7 +323,7 @@ msgid "" "contexts::" msgstr "" "Exemple 3 : modèles pour simuler des contexte imbriqués avec la classe :" -"class:`ChainMap` ::" +"class:`ChainMap` ::" #: ../Doc/library/collections.rst:175 msgid "" @@ -337,7 +336,7 @@ msgstr "" "premier dictionnaire de la chaîne, alors qu'une recherche inspecte toute la " "chaîne. Cependant, si l'on veut effectuer des écritures ou suppressions en " "profondeur, on peut facilement faire une sous-classe qui met à jour les clés " -"trouvées de la chaîne en profondeur : ::" +"trouvées de la chaîne en profondeur ::" #: ../Doc/library/collections.rst:205 msgid ":class:`Counter` objects" @@ -349,7 +348,7 @@ msgid "" "example::" msgstr "" "Ce module fournit un outil pour effectuer rapidement et facilement des " -"dénombrements. Par exemple : ::" +"dénombrements. Par exemple ::" #: ../Doc/library/collections.rst:226 msgid "" @@ -460,7 +459,7 @@ msgstr "" #: ../Doc/library/collections.rst:307 msgid "Common patterns for working with :class:`Counter` objects::" -msgstr "Opérations usuelles sur les objets :class:`Counter` : ::" +msgstr "Opérations usuelles sur les objets :class:`Counter` ::" #: ../Doc/library/collections.rst:319 msgid "" @@ -825,7 +824,7 @@ msgid "" "in Unix::" msgstr "" "Les *deques* à taille limitée apportent une fonctionnalité similaire au " -"filtre ``tail`` d'Unix : ::" +"filtre ``tail`` d'Unix ::" #: ../Doc/library/collections.rst:609 msgid "" @@ -834,7 +833,7 @@ msgid "" msgstr "" "Une autre approche d'utilisation des *deques* est de maintenir une séquence " "d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " -"anciens par la gauche : ::" +"anciens par la gauche ::" #: ../Doc/library/collections.rst:624 msgid "" @@ -865,7 +864,7 @@ msgid "" "the :class:`dict` class and is not documented here." msgstr "" "Renvoie un nouvel objet qui se comporte comme un dictionnaire. :class:" -"`defaultdic` est une sous-classe de la la classe native :class:`dict`. Elle " +"`defaultdict` est une sous-classe de la la classe native :class:`dict`. Elle " "surcharge une méthode et ajoute une variable d'instance modifiable. Les " "autres fonctionnalités sont les mêmes que celles des objets :class:`dict` et " "ne sont pas documentées ici." @@ -1124,8 +1123,7 @@ msgid "" "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" msgstr "" "Les tuples nommés sont particulièrement utiles pour associer des noms de " -"champs à des tuples renvoyés par les modules :mod:`csv` ou :mod:" -"`sqlite3` : ::" +"champs à des tuples renvoyés par les modules :mod:`csv` ou :mod:`sqlite3` ::" #: ../Doc/library/collections.rst:844 msgid "" @@ -1162,7 +1160,7 @@ msgid "" "values::" msgstr "" "Renvoie une nouvelle instance du tuple nommé en remplaçant les champs " -"spécifiés par leurs nouvelles valeurs : ::" +"spécifiés par leurs nouvelles valeurs ::" #: ../Doc/library/collections.rst:886 msgid "" @@ -1261,8 +1259,8 @@ msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." msgstr "" -"Voir :meth:`types.SimpleNamespace` pour un espace de noms muable basé sur un " -"dictionnaire sous-jacent à la place d'un tuple." +"Voir :meth:`types.SimpleNamespace` pour un espace de nommage muable basé sur " +"un dictionnaire sous-jacent à la place d'un tuple." #: ../Doc/library/collections.rst:981 msgid "" @@ -1323,7 +1321,7 @@ msgstr "" "Déplace une clé *key* existante à l'une des deux extrémités du " "dictionnaire : à droite si *last* vaut ``True`` (comportement par défaut) ou " "à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " -"trouvée : ::" +"trouvée ::" #: ../Doc/library/collections.rst:1025 msgid "" diff --git a/library/colorsys.po b/library/colorsys.po index 25cd901dd..d8cfb7412 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/colorsys.rst:2 msgid ":mod:`colorsys` --- Conversions between color systems" -msgstr ":mod:`colorsys` --- Conversions entre les systèmes de couleurs" +msgstr ":mod:`colorsys` — Conversions entre les systèmes de couleurs" #: ../Doc/library/colorsys.rst:9 msgid "**Source code:** :source:`Lib/colorsys.py`" diff --git a/library/concurrency.po b/library/concurrency.po index ac15918d3..b3a13d591 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -31,9 +31,10 @@ msgid "" msgstr "" "Les modules documentés dans ce chapitre fournissent des outils d'exécution " "concourante de code. Le choix de l'outil approprié dépend de la tâche à " -"exécuter (limitée par le CPU, ou limitée par la mémoire) et du style de " -"développement désiré (coopération gérée par des évènements ou multitâche " -"préemptif). En voici un survol :" +"exécuter (limitée par le CPU (*CPU bound*), ou limitée la vitesse des " +"entrées-sorties (*IO bound*)) et du style de développement désiré " +"(coopération gérée par des évènements ou multitâche préemptif). En voici un " +"survol :" #: ../Doc/library/concurrency.rst:25 msgid "The following are support modules for some of the above services:" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index fc3c1d2ce..b79b1daeb 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -145,7 +145,7 @@ msgstr "" #: ../Doc/library/concurrent.futures.rst:123 msgid "And::" -msgstr "Et : ::" +msgstr "Et ::" #: ../Doc/library/concurrent.futures.rst:137 msgid "" diff --git a/library/configparser.po b/library/configparser.po index faae9aaca..0b15dd62c 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -186,7 +186,7 @@ msgstr "" #: ../Doc/library/configparser.rst:240 ../Doc/library/configparser.rst:301 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/configparser.rst:288 msgid "Interpolation of values" diff --git a/library/copy.po b/library/copy.po index c91348e2b..0c14d6629 100644 --- a/library/copy.po +++ b/library/copy.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/copy.rst:2 msgid ":mod:`copy` --- Shallow and deep copy operations" -msgstr ":mod:`copy` --- Opérations de copie superficielle et récursive" +msgstr ":mod:`copy` — Opérations de copie superficielle et récursive" #: ../Doc/library/copy.rst:7 msgid "**Source code:** :source:`Lib/copy.py`" diff --git a/library/csv.po b/library/csv.po index a30366f19..c3ee4b86f 100644 --- a/library/csv.po +++ b/library/csv.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" -msgstr ":mod:`csv` --- Lecture et écriture de fichiers CSV" +msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" #: ../Doc/library/csv.rst:9 msgid "**Source code:** :source:`Lib/csv.py`" @@ -39,8 +39,8 @@ msgid "" "of reading and writing the data from the programmer." msgstr "" "Le format CSV (*Comma Separated Values*, valeurs séparées par des virgules) " -"est le format le plus commun dans l'import et l'export de feuilles de " -"calculs et de bases de données. Le format fut utilisé pendant des années " +"est le format le plus commun dans l'importation et l'exportation de feuilles " +"de calculs et de bases de données. Le format fut utilisé pendant des années " "avant qu'aient lieu des tentatives de standardisation avec la :rfc:`4180`. " "L'absence de format bien défini signifie que des différences subtiles " "existent dans la production et la consommation de données par différentes " @@ -79,7 +79,7 @@ msgstr "" #: ../Doc/library/csv.rst:41 msgid ":pep:`305` - CSV File API" -msgstr ":pep:`305` -- Interface des fichiers CSV" +msgstr ":pep:`305` ­— Interface des fichiers CSV" #: ../Doc/library/csv.rst:42 msgid "The Python Enhancement Proposal which proposed this addition to Python." @@ -112,10 +112,10 @@ msgid "" msgstr "" "Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* " "donné. *csvfile* peut être n'importe quel objet supportant le protocole :" -"term:`iterator` et renvoyant une chaîne de caractères chaque fois que sa " -"méthode :meth:`!__next__` est appelée --- les :term:`fichiers objets ` et les listes sont tous deux valables. Si *csvfile* est un " -"fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " +"term:`itérateur ` et renvoyant une chaîne de caractères chaque " +"fois que sa méthode :meth:`!__next__` est appelée — les :term:`fichiers " +"objets ` et les listes sont tous deux valables. Si *csvfile* " +"est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " "*dialect* optionnel peut être fourni pour définir un ensemble de paramètres " "spécifiques à un dialecte CSV particulier. Il peut s'agir d'une instance de " "sous-classe de :class:`Dialect` ou de l'une des chaînes renvoyées par la " @@ -141,7 +141,7 @@ msgstr "" #: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 #: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:210 msgid "A short usage example::" -msgstr "Un court exemple d'utilisation : ::" +msgstr "Un court exemple d'utilisation ::" #: ../Doc/library/csv.rst:88 msgid "" @@ -176,10 +176,11 @@ msgstr "" "section :ref:`csv-fmt-params`. Pour faciliter au mieux l'interfaçage avec " "d'autres modules implémentant l'interface *DB*, la valeur :const:`None` est " "écrite comme une chaîne vide. Bien que ce ne soit pas une transformation " -"réversible, cela simplifie l'export de données SQL *NULL* vers des fichiers " -"CSV sans pré-traiter les données renvoyées par un appel à ``cursor.fetch*``. " -"Toutes les autres données qui ne sont pas des chaînes de caractères sont " -"transformées en chaînes par un appel à :func:`str` avant d'être écrites." +"réversible, cela simplifie l'exportation de données SQL *NULL* vers des " +"fichiers CSV sans pré-traiter les données renvoyées par un appel à ``cursor." +"fetch*``. Toutes les autres données qui ne sont pas des chaînes de " +"caractères sont transformées en chaînes par un appel à :func:`str` avant " +"d'être écrites." #: ../Doc/library/csv.rst:117 msgid "" @@ -294,7 +295,7 @@ msgid "" msgstr "" "Crée un objet qui opère comme un transcripteur ordinaire mais qui produit " "les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* " -"est une :mod:`sequence ` de clés qui indique l'ordre dans " +"est une :mod:`séquence ` de clés qui indique l'ordre dans " "lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` " "doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* " "spécifie la valeur à écrire si une clé de *fieldnames* manque dans le " @@ -388,7 +389,7 @@ msgstr "" #: ../Doc/library/csv.rst:271 msgid "An example for :class:`Sniffer` use::" -msgstr "Un exemple d'utilisation de :class:`Sniffer` : ::" +msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" #: ../Doc/library/csv.rst:280 msgid "The :mod:`csv` module defines the following constants:" @@ -704,15 +705,15 @@ msgstr "Exemples" #: ../Doc/library/csv.rst:482 msgid "The simplest example of reading a CSV file::" -msgstr "Le plus simple exemple de lecture d'un fichier CSV : ::" +msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" #: ../Doc/library/csv.rst:490 msgid "Reading a file with an alternate format::" -msgstr "Lire un fichier avec un format alternatif : ::" +msgstr "Lire un fichier avec un format alternatif ::" #: ../Doc/library/csv.rst:498 msgid "The corresponding simplest possible writing example is::" -msgstr "Le plus simple exemple d'écriture correspondant est : ::" +msgstr "Le plus simple exemple d'écriture correspondant est ::" #: ../Doc/library/csv.rst:505 msgid "" @@ -725,7 +726,7 @@ msgstr "" "fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " "défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier " "utilisant un encodage différent, utilisez l'argument ``encoding`` de " -"*open* : ::" +"*open* ::" #: ../Doc/library/csv.rst:516 msgid "" @@ -738,7 +739,7 @@ msgstr "" #: ../Doc/library/csv.rst:519 msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte : ::" +msgstr "Enregistrer un nouveau dialecte ::" #: ../Doc/library/csv.rst:526 msgid "" @@ -746,7 +747,7 @@ msgid "" "errors::" msgstr "" "Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " -"notifiant les erreurs : ::" +"notifiant les erreurs ::" #: ../Doc/library/csv.rst:538 msgid "" @@ -754,7 +755,7 @@ msgid "" "be done::" msgstr "" "Et bien que le module ne permette pas d'analyser directement des chaînes, " -"cela peut être fait facilement : ::" +"cela peut être fait facilement ::" #: ../Doc/library/csv.rst:547 msgid "Footnotes" diff --git a/library/ctypes.po b/library/ctypes.po index 3c0898cd4..9cf82795f 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr "" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" #: ../Doc/library/ctypes.rst:11 msgid "" @@ -27,10 +27,15 @@ msgid "" "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." #: ../Doc/library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "" +msgstr "Didacticiel de *ctypes*" #: ../Doc/library/ctypes.rst:21 msgid "" @@ -38,6 +43,10 @@ msgid "" "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " +"contiennent des directives *doctest* dans les commentaires." #: ../Doc/library/ctypes.rst:25 msgid "" @@ -46,16 +55,23 @@ msgid "" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." #: ../Doc/library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des DLL" #: ../Doc/library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -67,12 +83,22 @@ msgid "" "error code is used to automatically raise an :class:`OSError` exception when " "the function call fails." msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." #: ../Doc/library/ctypes.rst:46 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." #: ../Doc/library/ctypes.rst:51 msgid "" @@ -80,10 +106,13 @@ msgid "" "C library containing most standard C functions, and uses the cdecl calling " "convention::" msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" #: ../Doc/library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." #: ../Doc/library/ctypes.rst:66 msgid "" @@ -92,6 +121,11 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." #: ../Doc/library/ctypes.rst:71 msgid "" @@ -101,14 +135,19 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" #: ../Doc/library/ctypes.rst:106 msgid "" @@ -120,6 +159,13 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qu'UNICODE est définie ou non) ::" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -127,6 +173,10 @@ msgid "" "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères, respectivement." #: ../Doc/library/ctypes.rst:123 msgid "" @@ -134,6 +184,9 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" #: ../Doc/library/ctypes.rst:131 msgid "" @@ -141,10 +194,13 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" #: ../Doc/library/ctypes.rst:148 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" #: ../Doc/library/ctypes.rst:150 msgid "" @@ -153,6 +209,10 @@ msgid "" "Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " "module handle." msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." #: ../Doc/library/ctypes.rst:155 msgid "" @@ -173,12 +233,16 @@ msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl`` et vice-versa ::" #: ../Doc/library/ctypes.rst:186 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." #: ../Doc/library/ctypes.rst:189 msgid "" @@ -186,6 +250,11 @@ msgid "" "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" #: ../Doc/library/ctypes.rst:199 msgid "" @@ -194,6 +263,11 @@ msgid "" "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " +"C)." #: ../Doc/library/ctypes.rst:204 msgid "" @@ -205,24 +279,37 @@ msgid "" "platforms default C :c:type:`int` type, their value is masked to fit into " "the C type." msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " +"pour qu'ils tiennent dans le type C." #: ../Doc/library/ctypes.rst:211 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." #: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2046 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" #: ../Doc/library/ctypes.rst:220 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" #: ../Doc/library/ctypes.rst:223 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" #: ../Doc/library/ctypes.rst:223 msgid "C type" @@ -242,7 +329,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/ctypes.rst:225 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" #: ../Doc/library/ctypes.rst:227 msgid ":class:`c_char`" @@ -254,7 +341,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet (*bytes*) de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -266,7 +353,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractères (*string*) de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -351,7 +438,7 @@ msgstr ":class:`c_ulonglong`" #: ../Doc/library/ctypes.rst:249 msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" #: ../Doc/library/ctypes.rst:252 msgid ":class:`c_size_t`" @@ -404,11 +491,11 @@ msgstr ":class:`c_char_p`" #: ../Doc/library/ctypes.rst:263 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:263 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" #: ../Doc/library/ctypes.rst:265 msgid ":class:`c_wchar_p`" @@ -416,11 +503,11 @@ msgstr ":class:`c_wchar_p`" #: ../Doc/library/ctypes.rst:265 msgid ":c:type:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (Terminé par NUL)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:265 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" #: ../Doc/library/ctypes.rst:267 msgid ":class:`c_void_p`" @@ -432,22 +519,26 @@ msgstr ":c:type:`void *`" #: ../Doc/library/ctypes.rst:267 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" #: ../Doc/library/ctypes.rst:271 msgid "The constructor accepts any object with a truth value." -msgstr "" +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." #: ../Doc/library/ctypes.rst:273 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" #: ../Doc/library/ctypes.rst:284 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" #: ../Doc/library/ctypes.rst:296 msgid "" @@ -456,6 +547,10 @@ msgid "" "point to, *not the contents* of the memory block (of course not, because " "Python bytes objects are immutable)::" msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" #: ../Doc/library/ctypes.rst:316 msgid "" @@ -466,6 +561,12 @@ msgid "" "``raw`` property; if you want to access it as NUL terminated string, use the " "``value`` property::" msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" #: ../Doc/library/ctypes.rst:340 msgid "" @@ -475,10 +576,15 @@ msgid "" "memory block containing unicode characters of the C type :c:type:`wchar_t` " "use the :func:`create_unicode_buffer` function." msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" +"`wchar_t`." #: ../Doc/library/ctypes.rst:350 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" #: ../Doc/library/ctypes.rst:352 msgid "" @@ -486,6 +592,9 @@ msgid "" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" #: ../Doc/library/ctypes.rst:372 msgid "" @@ -493,10 +602,14 @@ msgid "" "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" #: ../Doc/library/ctypes.rst:385 msgid "Calling functions with your own custom data types" -msgstr "" +msgstr "Appel de fonctions avec des types de données personnalisés" #: ../Doc/library/ctypes.rst:387 msgid "" @@ -505,6 +618,11 @@ msgid "" "an :attr:`_as_parameter_` attribute and uses this as the function argument. " "Of course, it must be one of integer, string, or bytes::" msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets ::" #: ../Doc/library/ctypes.rst:402 msgid "" @@ -512,16 +630,21 @@ msgid "" "instance variable, you could define a :class:`property` which makes the " "attribute available on request." msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." #: ../Doc/library/ctypes.rst:410 msgid "Specifying the required argument types (function prototypes)" -msgstr "" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" #: ../Doc/library/ctypes.rst:412 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." #: ../Doc/library/ctypes.rst:415 msgid "" @@ -530,6 +653,11 @@ msgid "" "different types of parameters depending on the format string, on the other " "hand this is quite handy to experiment with this feature)::" msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" #: ../Doc/library/ctypes.rst:426 msgid "" @@ -537,6 +665,9 @@ msgid "" "prototype for a C function), and tries to convert the arguments to valid " "types::" msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" #: ../Doc/library/ctypes.rst:438 msgid "" @@ -550,10 +681,19 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" -msgstr "" +msgstr "Types de sortie" #: ../Doc/library/ctypes.rst:454 msgid "" @@ -561,12 +701,18 @@ msgid "" "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." #: ../Doc/library/ctypes.rst:458 msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères ::" #: ../Doc/library/ctypes.rst:471 msgid "" @@ -574,6 +720,9 @@ msgid "" "`argtypes` attribute, and the second argument will be converted from a " "single character Python bytes object into a C char::" msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C ::" #: ../Doc/library/ctypes.rst:489 msgid "" @@ -584,6 +733,12 @@ msgid "" "function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions ::" #: ../Doc/library/ctypes.rst:512 msgid "" @@ -592,16 +747,24 @@ msgid "" "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." #: ../Doc/library/ctypes.rst:517 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " +"précisions." #: ../Doc/library/ctypes.rst:524 msgid "Passing pointers (or: passing parameters by reference)" -msgstr "" +msgstr "Passage de pointeurs (passage de paramètres par référence)" #: ../Doc/library/ctypes.rst:526 msgid "" @@ -610,6 +773,10 @@ msgid "" "large to be passed by value. This is also known as *passing parameters by " "reference*." msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." #: ../Doc/library/ctypes.rst:530 msgid "" @@ -619,10 +786,15 @@ msgid "" "constructs a real pointer object, so it is faster to use :func:`byref` if " "you don't need the pointer object in Python itself::" msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant ::" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" #: ../Doc/library/ctypes.rst:554 msgid "" @@ -631,12 +803,19 @@ msgid "" "subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " "a list of *2-tuples*, containing a *field name* and a *field type*." msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." #: ../Doc/library/ctypes.rst:559 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." #: ../Doc/library/ctypes.rst:562 msgid "" @@ -644,30 +823,43 @@ msgid "" "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur ::" #: ../Doc/library/ctypes.rst:582 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." #: ../Doc/library/ctypes.rst:585 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* ::" #: ../Doc/library/ctypes.rst:599 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons ::" #: ../Doc/library/ctypes.rst:604 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -676,10 +868,15 @@ msgid "" "guaranteed by the library to work in the general case. Unions and " "structures with bit-fields should always be passed to functions by pointer." msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." #: ../Doc/library/ctypes.rst:624 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" #: ../Doc/library/ctypes.rst:626 msgid "" @@ -698,10 +895,15 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." #: ../Doc/library/ctypes.rst:642 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" #: ../Doc/library/ctypes.rst:644 msgid "" @@ -709,64 +911,81 @@ msgid "" "fields are only possible for integer fields, the bit width is specified as " "the third item in the :attr:`_fields_` tuples::" msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" -msgstr "" +msgstr "Tableaux" #: ../Doc/library/ctypes.rst:664 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." #: ../Doc/library/ctypes.rst:666 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" #: ../Doc/library/ctypes.rst:671 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" #: ../Doc/library/ctypes.rst:687 msgid "Instances are created in the usual way, by calling the class::" -msgstr "" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" #: ../Doc/library/ctypes.rst:693 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." #: ../Doc/library/ctypes.rst:696 msgid "Initializers of the correct type can also be specified::" -msgstr "" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" #: ../Doc/library/ctypes.rst:714 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:722 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" #: ../Doc/library/ctypes.rst:729 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -774,14 +993,17 @@ msgid "" "attribute would cause the pointer to point to the memory location where this " "is stored::" msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" #: ../Doc/library/ctypes.rst:750 msgid "Pointer instances can also be indexed with integers::" -msgstr "" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" #: ../Doc/library/ctypes.rst:756 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "" +msgstr "Affecter à travers un indice change la valeur pointée ::" #: ../Doc/library/ctypes.rst:765 msgid "" @@ -791,6 +1013,11 @@ msgid "" "a C function, and you *know* that the pointer actually points to an array " "instead of a single item." msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." #: ../Doc/library/ctypes.rst:771 msgid "" @@ -799,22 +1026,31 @@ msgid "" "the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " "returns a new type::" msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" #: ../Doc/library/ctypes.rst:787 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" #: ../Doc/library/ctypes.rst:795 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" #: ../Doc/library/ctypes.rst:814 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" #: ../Doc/library/ctypes.rst:816 msgid "" @@ -826,6 +1062,14 @@ msgid "" "instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " "accepts an array of c_int::" msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" #: ../Doc/library/ctypes.rst:837 msgid "" @@ -834,10 +1078,17 @@ msgid "" "pointed type (``c_int`` in this case) can be passed to the function. ctypes " "will apply the required :func:`byref` conversion in this case automatically." msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." #: ../Doc/library/ctypes.rst:842 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" #: ../Doc/library/ctypes.rst:849 msgid "" @@ -847,10 +1098,16 @@ msgid "" "accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " "``values`` field, but not instances of other types::" msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" #: ../Doc/library/ctypes.rst:861 msgid "For these cases, the :func:`cast` function is handy." -msgstr "" +msgstr "C'est là que la fonction :func:`cast` intervient." #: ../Doc/library/ctypes.rst:863 msgid "" @@ -860,16 +1117,24 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument ::" #: ../Doc/library/ctypes.rst:874 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" #: ../Doc/library/ctypes.rst:887 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" #: ../Doc/library/ctypes.rst:889 msgid "" @@ -877,12 +1142,16 @@ msgid "" "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" #: ../Doc/library/ctypes.rst:900 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" #: ../Doc/library/ctypes.rst:913 msgid "" @@ -890,6 +1159,10 @@ msgid "" "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe ::" #: ../Doc/library/ctypes.rst:925 msgid "" @@ -899,13 +1172,15 @@ msgstr "" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" #: ../Doc/library/ctypes.rst:948 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." #: ../Doc/library/ctypes.rst:951 msgid "" @@ -913,6 +1188,9 @@ msgid "" "the calling convention, the return type, and the number and types of " "arguments this function will receive." msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." #: ../Doc/library/ctypes.rst:955 msgid "" @@ -921,6 +1199,10 @@ msgid "" "factory function creates types for callback functions using the ``stdcall`` " "calling convention." msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." #: ../Doc/library/ctypes.rst:960 msgid "" @@ -928,6 +1210,8 @@ msgid "" "argument, and the callback functions expected argument types as the " "remaining arguments." msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." #: ../Doc/library/ctypes.rst:964 msgid "" @@ -935,6 +1219,10 @@ msgid "" "`qsort` function, that is used to sort items with the help of a callback " "function. :c:func:`qsort` will be used to sort an array of integers::" msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers ::" #: ../Doc/library/ctypes.rst:974 msgid "" @@ -945,30 +1233,43 @@ msgid "" "is smaller than the second, a zero if they are equal, and a positive integer " "otherwise." msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c-à-d la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." #: ../Doc/library/ctypes.rst:980 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" #: ../Doc/library/ctypes.rst:986 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe ::" #: ../Doc/library/ctypes.rst:996 msgid "The result::" -msgstr "" +msgstr "Résultat ::" #: ../Doc/library/ctypes.rst:1006 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile ::" #: ../Doc/library/ctypes.rst:1021 msgid "As we can easily check, our array is sorted now::" msgstr "" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" #: ../Doc/library/ctypes.rst:1030 msgid "" @@ -976,6 +1277,10 @@ msgid "" "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " "garbage collected, crashing your program when a callback is made." msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." #: ../Doc/library/ctypes.rst:1034 msgid "" @@ -986,10 +1291,17 @@ msgid "" "with :class:`threading.local` will *not* survive across different callbacks, " "even when those calls are made from the same C thread." msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." #: ../Doc/library/ctypes.rst:1044 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis une DLL" #: ../Doc/library/ctypes.rst:1046 msgid "" @@ -998,6 +1310,10 @@ msgid "" "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." #: ../Doc/library/ctypes.rst:1051 msgid "" @@ -1005,6 +1321,9 @@ msgid "" "methods of the type. *pythonapi* is a predefined symbol giving access to " "the Python C api::" msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" #: ../Doc/library/ctypes.rst:1060 msgid "" @@ -1012,16 +1331,20 @@ msgid "" "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." #: ../Doc/library/ctypes.rst:1064 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." #: ../Doc/library/ctypes.rst:1067 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" #: ../Doc/library/ctypes.rst:1069 msgid "" @@ -1037,12 +1360,17 @@ msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:1086 msgid "" "We have defined the :c:type:`struct _frozen` data type, so we can get the " "pointer to the table::" msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" #: ../Doc/library/ctypes.rst:1093 msgid "" @@ -1062,23 +1390,28 @@ msgstr "" #: ../Doc/library/ctypes.rst:1119 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" #: ../Doc/library/ctypes.rst:1121 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." #: ../Doc/library/ctypes.rst:1124 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" #: ../Doc/library/ctypes.rst:1144 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" #: ../Doc/library/ctypes.rst:1152 msgid "" @@ -1088,6 +1421,11 @@ msgid "" "the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " "have the expected effect." msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." #: ../Doc/library/ctypes.rst:1158 msgid "" @@ -1095,6 +1433,9 @@ msgid "" "doesn't *copy* the sub-object, instead it retrieves a wrapper object " "accessing the root-object's underlying buffer." msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." #: ../Doc/library/ctypes.rst:1162 msgid "" @@ -1110,15 +1451,22 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" #: ../Doc/library/ctypes.rst:1182 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" #: ../Doc/library/ctypes.rst:1184 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." #: ../Doc/library/ctypes.rst:1186 msgid "" @@ -1128,6 +1476,12 @@ msgid "" "cannot be made smaller than the natural memory block specified by the " "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" #: ../Doc/library/ctypes.rst:1206 msgid "" @@ -1135,6 +1489,9 @@ msgid "" "contained in this array? Since the type still only knows about 4 elements, " "we get errors accessing other elements::" msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" #: ../Doc/library/ctypes.rst:1218 msgid "" @@ -1142,14 +1499,18 @@ msgid "" "the dynamic nature of Python, and (re-)define the data type after the " "required size is already known, on a case by case basis." msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." #: ../Doc/library/ctypes.rst:1226 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" #: ../Doc/library/ctypes.rst:1232 msgid "Finding shared libraries" -msgstr "" +msgstr "Recherche de bibliothèques partagées" #: ../Doc/library/ctypes.rst:1234 msgid "" @@ -1225,7 +1586,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1303 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" #: ../Doc/library/ctypes.rst:1305 msgid "" @@ -1252,7 +1613,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1325 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." #: ../Doc/library/ctypes.rst:1331 msgid "" @@ -1434,7 +1795,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1487 msgid "Foreign functions" -msgstr "" +msgstr "Fonctions externes" #: ../Doc/library/ctypes.rst:1489 msgid "" @@ -1543,7 +1904,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1572 msgid "Function prototypes" -msgstr "" +msgstr "Prototypes de fonction" #: ../Doc/library/ctypes.rst:1574 msgid "" @@ -1725,7 +2086,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1751 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" #: ../Doc/library/ctypes.rst:1755 msgid "" @@ -2300,7 +2661,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2289 msgid "Structured data types" -msgstr "" +msgstr "Types de donnée dérivés de Structure" #: ../Doc/library/ctypes.rst:2294 msgid "Abstract base class for unions in native byte order." @@ -2430,7 +2791,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2412 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" #: ../Doc/library/ctypes.rst:2416 msgid "Abstract base class for arrays." diff --git a/library/datetime.po b/library/datetime.po index 231a7b139..2ca0f43e6 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" -msgstr ":mod:`datetime` --- Types de base pour la date et l'heure" +msgstr ":mod:`datetime` — Types de base pour la date et l'heure" #: ../Doc/library/datetime.rst:11 msgid "**Source code:** :source:`Lib/datetime.py`" @@ -35,7 +35,7 @@ msgid "" msgstr "" "Le module :mod:`datetime` fournit des classes pour manipuler de façon simple " "ou plus complexe des dates et des heures. Bien que les calculs de date et " -"d'heure sont supportés, l'implémentation est essentiellement tournée vers " +"d'heure sont gérés, l'implémentation est essentiellement tournée vers " "l'efficacité pour extraire des attributs pour les manipuler et les formater " "pour l'affichage. Pour d'autres fonctionnalités associées, voir aussi les " "modules :mod:`time` et :mod:`calendar`." @@ -103,11 +103,11 @@ msgstr "" "seule classe concrète :class:`tzinfo`, la classe :class:`timezone`, est " "proposée par le module :mod:`datetime`. La classe :class:`timezone` " "représente des fuseaux horaires simples avec un décalage fixe par rapport à " -"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. " -"Supporter des fuseaux horaires d'un niveau de détails plus avancé est à la " -"charge de l'application. Les règles d'ajustement du temps à travers le " -"monde sont plus politiques que rationnelles, changent fréquemment, et il n'y " -"a pas de standard qui vaille pour toute application, en dehors d'UTC." +"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. Gérer " +"des fuseaux horaires d'un niveau de détails plus avancé est à la charge de " +"l'application. Les règles d'ajustement du temps à travers le monde sont " +"plus politiques que rationnelles, changent fréquemment, et il n'y a pas de " +"standard qui vaille pour toute application, en dehors d'UTC." #: ../Doc/library/datetime.rst:51 msgid "The :mod:`datetime` module exports the following constants:" @@ -417,7 +417,7 @@ msgstr "Entre 0 et 999999 inclus" #: ../Doc/library/datetime.rst:232 ../Doc/library/datetime.rst:473 #: ../Doc/library/datetime.rst:905 ../Doc/library/datetime.rst:1450 msgid "Supported operations:" -msgstr "Opérations supportées :" +msgstr "Opérations gérées :" #: ../Doc/library/datetime.rst:237 ../Doc/library/datetime.rst:476 #: ../Doc/library/datetime.rst:908 @@ -513,7 +513,7 @@ msgid "" "second case, an integer is returned. (3)" msgstr "" "Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " -"second cas, un enter est renvoyé. (3)" +"second cas, un entier est renvoyé. (3)" #: ../Doc/library/datetime.rst:268 msgid "``t1 = t2 % t3``" @@ -630,7 +630,7 @@ msgid "" "datetime` objects (see below)." msgstr "" "En plus des opérations listées ci-dessus, les objets :class:`timedelta` " -"supportent certaines additions et soustractions avec des objets :class:" +"implémentent certaines additions et soustractions avec des objets :class:" "`date` et :class:`datetime` (voir ci-dessous)." #: ../Doc/library/datetime.rst:323 @@ -641,10 +641,10 @@ msgid "" "`timedelta` object by a :class:`float` object are now supported." msgstr "" "La division entière et la vraie division d'un objet :class:`timedelta` par " -"un autre :class:`timedelta` sont maintenant supportées, comme le sont les " +"un autre :class:`timedelta` sont maintenant gérées, comme le sont les " "opérations de reste euclidien et la fonction :func:`divmod`. La vraie " "division et la multiplication d'un objet :class:`timedelta` par un :class:" -"`float` sont maintenant supportées." +"`float` sont maintenant implémentées." #: ../Doc/library/datetime.rst:330 msgid "" @@ -656,13 +656,13 @@ msgid "" "raised unless the comparison is ``==`` or ``!=``. The latter cases return :" "const:`False` or :const:`True`, respectively." msgstr "" -"Les comparaisons entre objets :class:`timedelta` sont maintenant supportées " -"avec le :class:`timedelta` représentant la plus courte durée considéré comme " -"le plus petit. Afin d'empêcher les comparaisons de types mixtes de retomber " -"sur la comparaison par défaut par l'adresse de l'objet, quand un objet :" -"class:`timedelta` est comparé à un objet de type différent, une :exc:" -"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " -"derniers cas renvoient respectivement :const:`False` et :const:`True`." +"Les comparaisons entre objets :class:`timedelta` sont maintenant gérées avec " +"le :class:`timedelta` représentant la plus courte durée considéré comme le " +"plus petit. Afin d'empêcher les comparaisons de types mixtes de retomber sur " +"la comparaison par défaut par l'adresse de l'objet, quand un objet :class:" +"`timedelta` est comparé à un objet de type différent, une :exc:`TypeError` " +"est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces derniers " +"cas renvoient respectivement :const:`False` et :const:`True`." #: ../Doc/library/datetime.rst:338 msgid "" @@ -672,7 +672,7 @@ msgid "" "``timedelta(0)``." msgstr "" "Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " -"de dictionnaires), supportent le protocole *pickle*, et dans un contexte " +"de dictionnaires), implémentent le protocole *pickle* et, dans un contexte " "booléen, un :class:`timedelta` est considéré vrai si et seulement si il " "n'est pas égal à ``timedelta(0)``." @@ -775,14 +775,14 @@ msgid "" "that on non-POSIX systems that include leap seconds in their notion of a " "timestamp, leap seconds are ignored by :meth:`fromtimestamp`." msgstr "" -"Renvoie la date locale correspondant au *timestamp* *POSIX*, tel que renvoyé " -"par :func:`time.time`. Elle peut lever une :exc:`OverflowError`, si le " -"*timestamp* est en dehors des bornes gérées par la fonction C :c:func:" -"`localtime` de la plateforme, et une :exc:`OSError` en cas d'échec de :c:" -"func:`localtime`. Il est commun d'être restreint aux années entre 1970 et " -"2038. Notez que sur les systèmes non *POSIX* qui incluent les secondes de " -"décalage dans leur notion de *timestamp*, ces secondes sont ignorées par :" -"meth:`fromtimestamp`." +"Renvoie la date locale correspondant à l'horodatage (*timestamp* en anglais) " +"*POSIX*, tel que renvoyé par :func:`time.time`. Elle peut lever une :exc:" +"`OverflowError`, si l'horodatage est en dehors des bornes gérées par la " +"fonction C :c:func:`localtime` de la plateforme, et une :exc:`OSError` en " +"cas d'échec de :c:func:`localtime`. Il est commun d'être restreint aux " +"années entre 1970 et 2038. Notez que sur les systèmes non *POSIX* qui " +"incluent les secondes de décalage dans leur notion d'horodatage, ces " +"secondes sont ignorées par :meth:`fromtimestamp`." #: ../Doc/library/datetime.rst:423 msgid "" @@ -791,10 +791,10 @@ msgid "" "function. Raise :exc:`OSError` instead of :exc:`ValueError` on :c:func:" "`localtime` failure." msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " -"*timestamp* est en dehors des bornes gérées par la fonction C :c:func:" -"`localtime` de la plateforme. Lève une :exc:`OSError` plutôt qu'une :exc:" -"`ValueError` en cas d'échec de :c:func:`localtime`." +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage (*timestamp* en anglais) est en dehors des bornes gérées par la " +"fonction C :c:func:`localtime` de la plateforme. Lève une :exc:`OSError` " +"plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." #: ../Doc/library/datetime.rst:432 msgid "" @@ -1193,7 +1193,7 @@ msgstr "" "Renvoie la date et l'heure courantes locales. Si l'argument optionnel *tz* " "est ``None`` ou n'est pas spécifié, la méthode est similaire à :meth:" "`today`, mais, si possible, apporte plus de précisions que ce qui peut être " -"trouvé à travers un *timestamp* :func:`time.time` (par exemple, cela peut " +"trouvé à travers un horodatage :func:`time.time` (par exemple, cela peut " "être possible sur des plateformes fournissant la fonction C :c:func:" "`gettimeofday`)." @@ -1230,11 +1230,11 @@ msgid "" "not specified, the timestamp is converted to the platform's local date and " "time, and the returned :class:`.datetime` object is naive." msgstr "" -"Renvoie la date et l'heure locales correspondant au *timestamp* *POSIX*, " -"comme renvoyé par :func:`time.time`. Si l'argument optionnel *tz* est " -"``None`` ou n'est pas spécifié, le *timestamp* est converti vers la date et " -"l'heure locales de la plateforme, et l'objet :class:`.datetime` renvoyé est " -"naïf." +"Renvoie la date et l'heure locales correspondant à l'horodatage (*timestamp* " +"en anglais) *POSIX*, comme renvoyé par :func:`time.time`. Si l'argument " +"optionnel *tz* est ``None`` ou n'est pas spécifié, l'horodatage est converti " +"vers la date et l'heure locales de la plateforme, et l'objet :class:`." +"datetime` renvoyé est naïf." #: ../Doc/library/datetime.rst:743 msgid "" @@ -1244,9 +1244,9 @@ msgid "" "utcfromtimestamp(timestamp).replace(tzinfo=tz))``." msgstr "" "Si *tz* n'est pas ``None``, il doit être une instance d'une sous-classe :" -"class:`tzinfo`, et le *timestamp* est converti vers le fuseau horaire *tz*. " -"Dans ce cas le résultat est équivalent à ``tz.fromutc(datetime." -"utcfromtimestamp(timestamp).replace(tzinfo=tz))``." +"class:`tzinfo`, et l'horodatage (*timestamp* en anglais) est converti vers " +"le fuseau horaire *tz*. Dans ce cas le résultat est équivalent à ``tz." +"fromutc(datetime.utcfromtimestamp(timestamp).replace(tzinfo=tz))``." #: ../Doc/library/datetime.rst:748 msgid "" @@ -1260,16 +1260,16 @@ msgid "" "a second that yield identical :class:`.datetime` objects. See also :meth:" "`utcfromtimestamp`." msgstr "" -":meth:`fromtimestamp` peut lever une :exc:`OverflowError`, si le *timestamp* " -"est en dehors de l'intervalle de valeurs supportées par les fonctions C :c:" -"func:`localtime` ou :c:func:`gmtime` de la plateforme, et une :exc:`OSError` " -"en cas d'échec de :c:func:`localtime` ou :c:func:`gmtime`. Il est courant " +":meth:`fromtimestamp` peut lever une :exc:`OverflowError`, si l'horodatage " +"est en dehors de l'intervalle de valeurs gérées par les fonctions C :c:func:" +"`localtime` ou :c:func:`gmtime` de la plateforme, et une :exc:`OSError` en " +"cas d'échec de :c:func:`localtime` ou :c:func:`gmtime`. Il est courant " "d'être restreint aux années de 1970 à 2038. Notez que sur les systèmes non " -"*POSIX* qui incluent les secondes intercalaires dans leur notion de " -"*timestamp*, les secondes intercalaires sont ignorées par :meth:" -"`fromtimestamp`, et il est alors possible d'avoir deux *timestamps* " -"différant d'une seconde produisant un objet :class:`.datetime` identique. " -"Voir aussi :meth:`utcfromtimestamp`." +"*POSIX* qui incluent les secondes intercalaires dans leur notion " +"d'horodatage, les secondes intercalaires sont ignorées par :meth:" +"`fromtimestamp`, et il est alors possible d'avoir deux horodatages différant " +"d'une seconde produisant un objet :class:`.datetime` identique. Voir aussi :" +"meth:`utcfromtimestamp`." #: ../Doc/library/datetime.rst:758 msgid "" @@ -1278,8 +1278,8 @@ msgid "" "or :c:func:`gmtime` functions. Raise :exc:`OSError` instead of :exc:" "`ValueError` on :c:func:`localtime` or :c:func:`gmtime` failure." msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " -"*timestamp* est en dehors de l'intervalle de valeurs supportées par les " +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage est en dehors de l'intervalle de valeurs gérées par les " "fonctions C :c:func:`localtime` ou :c:func:`gmtime` de la plateforme. Lève " "une :exc:`OSError` plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:" "`localtime` ou :c:func:`gmtime`." @@ -1298,18 +1298,18 @@ msgid "" "`gmtime` function, and :exc:`OSError` on :c:func:`gmtime` failure. It's " "common for this to be restricted to years in 1970 through 2038." msgstr "" -"Renvoie le :class:`.datetime` UTC correspondant au *timestamp* *POSIX*, " -"avec :attr:`.tzinfo` à ``None``. Cela peut lever une :exc:`OverflowError`, " -"si le *timestamp* est en dehors de l'intervalle de valeurs supportées par la " -"fonction C :c:func:`gmtime` de la plateforme, et une :exc:`OSError` en cas " -"d'échec de :c:func:`gmtime`. Il est courant d'être restreint aux années de " -"1970 à 2038." +"Renvoie le :class:`.datetime` UTC correspondant à l'horodatage (*timestamp* " +"en anglais) *POSIX*, avec :attr:`.tzinfo` à ``None``. Cela peut lever une :" +"exc:`OverflowError`, si l'horodatage est en dehors de l'intervalle de " +"valeurs gérées par la fonction C :c:func:`gmtime` de la plateforme, et une :" +"exc:`OSError` en cas d'échec de :c:func:`gmtime`. Il est courant d'être " +"restreint aux années de 1970 à 2038." #: ../Doc/library/datetime.rst:776 msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" msgstr "" "Pour obtenir un objet :class:`.datetime` avisé, appelez :meth:" -"`fromtimestamp` : ::" +"`fromtimestamp` ::" #: ../Doc/library/datetime.rst:780 msgid "" @@ -1317,15 +1317,15 @@ msgid "" "expression::" msgstr "" "Sur les plateformes respectant *POSIX*, cela est équivalent à l'expression " -"suivante : ::" +"suivante ::" #: ../Doc/library/datetime.rst:785 msgid "" "except the latter formula always supports the full years range: between :" "const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "" -"excepté que la dernière formule supporte l'intervalle complet des années " -"entre :const:`MINYEAR` et :const:`MAXYEAR` incluses." +"excepté que la dernière formule gère l'intervalle complet des années entre :" +"const:`MINYEAR` et :const:`MAXYEAR` incluses." #: ../Doc/library/datetime.rst:788 msgid "" @@ -1334,10 +1334,10 @@ msgid "" "function. Raise :exc:`OSError` instead of :exc:`ValueError` on :c:func:" "`gmtime` failure." msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " -"*timestamp* est en dehors de l'intervalle de valeurs supportées par la " -"fonction C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt " -"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`." +"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " +"l'horodatage est en dehors de l'intervalle de valeurs gérées par la fonction " +"C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt qu'une :" +"exc:`ValueError` en cas d'échec de :c:func:`gmtime`." #: ../Doc/library/datetime.rst:797 msgid "" @@ -1742,7 +1742,7 @@ msgstr "" "Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " "dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :" "meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " -"comporte comme : ::" +"comporte comme ::" #: ../Doc/library/datetime.rst:1060 msgid "*tz* now can be omitted." @@ -1788,7 +1788,7 @@ msgid "" msgstr "" "Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." "tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " -"renvoie pas ``None`` ou une chaîne de caractères." +"renvoie pas ``None`` ou une chaîne de caractères," #: ../Doc/library/datetime.rst:1093 msgid "" @@ -1852,9 +1852,9 @@ msgid "" "The return value is a :class:`float` similar to that returned by :func:`time." "time`." msgstr "" -"Renvoie le *timestamp* *POSIX* correspondant à l'instance :class:`." -"datetime`. La valeur renvoyée est un :class:`float` similaire à ceux " -"renvoyés par :func:`time.time`." +"Renvoie l'horodatage (*timestamp* en anglais) *POSIX* correspondant à " +"l'instance :class:`.datetime`. La valeur renvoyée est un :class:`float` " +"similaire à ceux renvoyés par :func:`time.time`." #: ../Doc/library/datetime.rst:1129 msgid "" @@ -1866,8 +1866,8 @@ msgid "" msgstr "" "Les instances naïves de :class:`.datetime` sont supposées représenter un " "temps local et cette méthode se base sur la fonction C :c:func:`mktime` de " -"la plateforme pour opérer la conversion. Comme :class:`.datetime` supporte " -"un intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " +"la plateforme pour opérer la conversion. Comme :class:`.datetime` gère un " +"intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " "plateformes, cette méthode peut lever une :exc:`OverflowError` pour les " "temps trop éloignés dans le passé ou le futur." @@ -1876,7 +1876,7 @@ msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" "Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " -"calculée comme suit : ::" +"calculée comme suit ::" #: ../Doc/library/datetime.rst:1143 msgid "" @@ -1893,15 +1893,15 @@ msgid "" "this convention and your system timezone is not set to UTC, you can obtain " "the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" msgstr "" -"Il n'y a pas de méthode pour obtenir le *timestamp* *POSIX* directement " -"depuis une instance :class:`.datetime` naïve représentant un temps UTC. Si " -"votre application utilise cette convention et que le fuseau horaire de votre " -"système est UTC, vous pouvez obtenir le *timestamp* *POSIX* en fournissant " -"``tzinfo=timezone.utc`` : ::" +"Il n'y a pas de méthode pour obtenir l'horodatage (*timestamp* en anglais) " +"*POSIX* directement depuis une instance :class:`.datetime` naïve " +"représentant un temps UTC. Si votre application utilise cette convention et " +"que le fuseau horaire de votre système est UTC, vous pouvez obtenir " +"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` : ::" #: ../Doc/library/datetime.rst:1157 msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant le *timestamp* directement : ::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" #: ../Doc/library/datetime.rst:1163 msgid "" @@ -1990,7 +1990,7 @@ msgid "" "HH:MM:SS format." msgstr "" "``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " -"format HH:MM:SS." +"format ``HH:MM:SS``." #: ../Doc/library/datetime.rst:1211 ../Doc/library/datetime.rst:1514 msgid "" @@ -1998,7 +1998,7 @@ msgid "" "to milliseconds. HH:MM:SS.sss format." msgstr "" "``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " -"fractionnaire des millisecondes, au format HH:MM:SS.sss." +"fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." #: ../Doc/library/datetime.rst:1213 ../Doc/library/datetime.rst:1516 msgid "``'microseconds'``: Include full time in HH:MM:SS.mmmmmm format." @@ -2122,7 +2122,7 @@ msgid "" msgstr "" "La plus petite différence possible entre deux objets :class:`.time` non-" "égaux, ``timedelta(microseconds=1)``, notez cependant que les objets :class:" -"`.time` ne supportent pas d'opérations arithmétiques." +"`.time` n'implémentent pas d'opérations arithmétiques." #: ../Doc/library/datetime.rst:1435 msgid "" @@ -2468,11 +2468,11 @@ msgid "" "two::" msgstr "" "La plupart des implémentations de :meth:`dst` ressembleront probablement à " -"l'une des deux suivantes : ::" +"l'une des deux suivantes ::" #: ../Doc/library/datetime.rst:1695 msgid "or ::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/datetime.rst:1707 msgid "" @@ -2616,7 +2616,7 @@ msgid "" "acts like::" msgstr "" "En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:" -"`fromutc` se comporte comme suit : ::" +"`fromutc` se comporte comme suit ::" #: ../Doc/library/datetime.rst:1783 msgid "Example :class:`tzinfo` classes:" @@ -2696,11 +2696,11 @@ msgid "" "class representing only EST (fixed offset -5 hours), or only EDT (fixed " "offset -4 hours))." msgstr "" -"Les applications qui ne peuvent pas supporter ces ambiguïtés doivent " -"vérifier explicitement la valeur de l'attribut :attr:`~datetime.fold` ou " -"éviter d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a " -"aucune ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou " -"toute autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " +"Les applications qui ne peuvent pas gérer ces ambiguïtés doivent vérifier " +"explicitement la valeur de l'attribut :attr:`~datetime.fold` ou éviter " +"d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a aucune " +"ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou toute " +"autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " "représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " "EDT (*-4h*))." @@ -2901,10 +2901,10 @@ msgid "" "platform variations are common. To see the full set of format codes " "supported on your platform, consult the :manpage:`strftime(3)` documentation." msgstr "" -"L'ensemble complet des codes de formatage supportés varie selon les " +"L'ensemble complet des codes de formatage implémentés varie selon les " "plateformes, parce que Python appelle la fonction :func:`strftime` de la " "bibliothèque C de la plateforme, et les variations sont courantes. Pour " -"voir un ensemble complet des codes de formatage supportés par votre " +"voir un ensemble complet des codes de formatage implémentés par votre " "plateforme, consultez la documentation de :manpage:`strftime(3)`." #: ../Doc/library/datetime.rst:1959 @@ -3406,8 +3406,8 @@ msgid "" "Unlike the :mod:`time` module, the :mod:`datetime` module does not support " "leap seconds." msgstr "" -"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne supporte pas " -"les secondes intercalaires." +"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " +"secondes intercalaires." #: ../Doc/library/datetime.rst:2123 msgid "" @@ -3474,9 +3474,9 @@ msgid "" "in calculations when the day of the week and the calendar year (``%Y``) are " "specified." msgstr "" -"Quand utilisés avec la méthode :meth:`strptime`, ``%U`` et ``%W`` ne sont " -"utilisés dans les calculs que si le jour de la semaine et l'année calendaire " -"(``%Y``) sont spécifiés." +"Quand ces directives sont utilisées avec la méthode :meth:`strptime`, ``%U`` " +"et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " +"l'année calendaire (``%Y``) sont spécifiés." #: ../Doc/library/datetime.rst:2159 msgid "" diff --git a/library/decimal.po b/library/decimal.po index 3143fba10..dc9fedc7a 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" -msgstr ":mod:`decimal` --- Arithmétique décimale en virgule fixe et flottante" +msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" #: ../Doc/library/decimal.rst:15 msgid "**Source code:** :source:`Lib/decimal.py`" @@ -513,7 +513,7 @@ msgstr "" "Il existe quelques différences mineures entre l'arithmétique entre les " "objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " "l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " -"résultat est le signe du *dividend* plutôt que le signe du diviseur::" +"résultat est le signe du *dividend* plutôt que le signe du diviseur ::" #: ../Doc/library/decimal.rst:418 msgid "" @@ -523,7 +523,7 @@ msgid "" msgstr "" "L'opérateur division entière, ``//`` se comporte de la même manière, " "retournant la partie entière du quotient, plutôt que son arrondi, de manière " -"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y``::" +"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" #: ../Doc/library/decimal.rst:427 msgid "" diff --git a/library/distutils.po b/library/distutils.po index 0c2640c38..07a836fad 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr ":mod:`distutils` --- Création et installation des modules Python" +msgstr ":mod:`distutils` — Création et installation des modules Python" #: ../Doc/library/distutils.rst:12 msgid "" diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 64b2c187c..ae02fbd62 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -495,7 +495,7 @@ msgstr "" #: ../Doc/library/email.headerregistry.rst:375 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/email.headerregistry.rst:379 msgid "" diff --git a/library/email.iterators.po b/library/email.iterators.po index 80ec4c3a1..5da417bd7 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -114,6 +114,6 @@ msgid "" "*include_default*, if true, prints the default type as well." msgstr "" "Le paramètre optionnel *fp* est un objet fichier-compatible dans lequel on " -"peut imprimer le flux de sortie. Il doit être approprié pour la fonction de " +"peut écrire le flux de sortie. Il doit être approprié pour la fonction de " "Python :func:`print`. *level* est utilisé en interne. *include_default*, si " "vrai, affiche aussi le type par défaut." diff --git a/library/email.message.po b/library/email.message.po index 63146b17b..fe817b42f 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -345,7 +345,7 @@ msgstr "" #: ../Doc/library/email.message.rst:287 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/email.message.rst:291 msgid "This will add a header that looks like ::" diff --git a/library/email.parser.po b/library/email.parser.po index 83a06d702..fbdbbf7c3 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -111,7 +111,7 @@ msgstr "" #: ../Doc/library/email.parser.rst:70 msgid "Here is the API for the :class:`BytesFeedParser`:" -msgstr "Voici l’API pour :class:`BytesFeedParser` : ::" +msgstr "Voici l’API pour :class:`BytesFeedParser` ::" #: ../Doc/library/email.parser.rst:75 msgid "" @@ -338,7 +338,7 @@ msgstr "Notes complémentaires" #: ../Doc/library/email.parser.rst:293 msgid "Here are some notes on the parsing semantics:" -msgstr "Voici des remarques sur la sémantique d'analyse : ::" +msgstr "Voici des remarques sur la sémantique d'analyse ::" #: ../Doc/library/email.parser.rst:295 msgid "" diff --git a/library/enum.po b/library/enum.po index 261a6c679..72e32bf2c 100644 --- a/library/enum.po +++ b/library/enum.po @@ -23,7 +23,7 @@ msgstr ":mod:`enum` — Énumerations" #: ../Doc/library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" -msgstr "**Code source :** :source:`Lib/enum.py`" +msgstr "**Code source :** :source:`Lib/enum.py`" #: ../Doc/library/enum.rst:18 msgid "" @@ -119,7 +119,7 @@ msgstr "" "Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " "à lire et à écrire. Une autre méthode de création est décrite dans `API par " "fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " -"de la manière suivante : ::" +"de la manière suivante ::" #: ../Doc/library/enum.rst:78 msgid "Enum member values" @@ -175,26 +175,25 @@ msgstr "" msgid "Enumeration members have human readable string representations::" msgstr "" "Les membres d'une énumération ont une représentation en chaîne de caractères " -"compréhensible par un humain : ::" +"compréhensible par un humain ::" #: ../Doc/library/enum.rst:105 msgid "...while their ``repr`` has more information::" -msgstr "… tandis que leur ``repr`` contient plus d'informations : ::" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" #: ../Doc/library/enum.rst:110 msgid "The *type* of an enumeration member is the enumeration it belongs to::" -msgstr "" -"Le *type* d'un membre est l'énumération auquel ce membre appartient : ::" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" #: ../Doc/library/enum.rst:118 msgid "Enum members also have a property that contains just their item name::" -msgstr "Les membres ont également un attribut qui contient leur nom : ::" +msgstr "Les membres ont également un attribut qui contient leur nom ::" #: ../Doc/library/enum.rst:123 msgid "Enumerations support iteration, in definition order::" msgstr "" "Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " -"les membres sont déclarés : ::" +"les membres sont déclarés ::" #: ../Doc/library/enum.rst:139 msgid "" @@ -202,7 +201,7 @@ msgid "" "sets::" msgstr "" "Les membres d'une énumération sont hachables, ils peuvent ainsi être " -"utilisés dans des dictionnaires ou des ensembles : ::" +"utilisés dans des dictionnaires ou des ensembles ::" #: ../Doc/library/enum.rst:149 msgid "Programmatic access to enumeration members and their attributes" @@ -217,16 +216,16 @@ msgstr "" "Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " "énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " "``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " -"programme). ``Enum`` permet de tels accès : ::" +"programme). ``Enum`` permet de tels accès ::" #: ../Doc/library/enum.rst:160 msgid "If you want to access enum members by *name*, use item access::" msgstr "" -"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation : ::" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::" #: ../Doc/library/enum.rst:167 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre : ::" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" #: ../Doc/library/enum.rst:177 msgid "Duplicating enum members and values" @@ -235,7 +234,7 @@ msgstr "Duplication de membres et de valeurs" #: ../Doc/library/enum.rst:179 msgid "Having two enum members with the same name is invalid::" msgstr "" -"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* : ::" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" #: ../Doc/library/enum.rst:189 msgid "" @@ -247,7 +246,7 @@ msgstr "" "Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " "ont la même valeur (et que A est défini en premier), B sera un alias de A. " "Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " -"par nom renverra aussi A : ::" +"par nom renverra aussi A ::" #: ../Doc/library/enum.rst:209 msgid "" @@ -282,7 +281,7 @@ msgid "" msgstr "" "Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " "l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " -"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails : ::" +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::" #: ../Doc/library/enum.rst:241 msgid "Using automatic values" @@ -292,7 +291,7 @@ msgstr "Valeurs automatiques" msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "" "Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" -"`auto` : ::" +"`auto` ::" #: ../Doc/library/enum.rst:254 msgid "" @@ -300,7 +299,7 @@ msgid "" "overridden::" msgstr "" "Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " -"être redéfinie : ::" +"être redéfinie ::" #: ../Doc/library/enum.rst:272 msgid "" @@ -318,8 +317,7 @@ msgstr "Itération" #: ../Doc/library/enum.rst:279 msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" -"Itérer sur les membres d'une énumération ne parcourt pas les alias : ::" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" #: ../Doc/library/enum.rst:284 msgid "" @@ -327,6 +325,9 @@ msgid "" "to members. It includes all names defined in the enumeration, including the " "aliases::" msgstr "" +"L'attribut spécial ``__members__`` est un dictionnaire ordonné qui fait " +"correspondre les noms aux membres. Il inclut tous les noms définis dans " +"l'énumération, alias compris : ::" #: ../Doc/library/enum.rst:296 msgid "" @@ -334,7 +335,7 @@ msgid "" "to the enumeration members. For example, finding all the aliases::" msgstr "" "L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " -"de l'énumération. Par exemple, pour trouver tous les alias : ::" +"de l'énumération. Par exemple, pour trouver tous les alias ::" #: ../Doc/library/enum.rst:304 msgid "Comparisons" @@ -342,7 +343,7 @@ msgstr "Comparaisons" #: ../Doc/library/enum.rst:306 msgid "Enumeration members are compared by identity::" -msgstr "Les membres d'une énumération sont comparés par identité : ::" +msgstr "Les membres d'une énumération sont comparés par identité ::" #: ../Doc/library/enum.rst:315 msgid "" @@ -351,11 +352,11 @@ msgid "" msgstr "" "Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " "*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " -"`IntEnum`_ ci-dessous) : ::" +"`IntEnum`_ ci-dessous) ::" #: ../Doc/library/enum.rst:323 msgid "Equality comparisons are defined though::" -msgstr "A contrario, les comparaisons d'égalité existent : ::" +msgstr "A contrario, les comparaisons d'égalité existent ::" #: ../Doc/library/enum.rst:332 msgid "" @@ -365,7 +366,7 @@ msgid "" msgstr "" "Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " "toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " -"différemment, voir ci-dessous) : ::" +"différemment, voir ci-dessous) ::" #: ../Doc/library/enum.rst:341 msgid "Allowed members and attributes of enumerations" @@ -392,11 +393,11 @@ msgid "" "usual. If we have this enumeration::" msgstr "" "Les énumérations sont des classes Python et peuvent donc avoir des méthodes " -"et des méthodes spéciales. L'énumération suivante : ::" +"et des méthodes spéciales. L'énumération suivante ::" #: ../Doc/library/enum.rst:369 msgid "Then::" -msgstr "amène : ::" +msgstr "amène ::" #: ../Doc/library/enum.rst:378 msgid "" @@ -429,7 +430,7 @@ msgstr "" #: ../Doc/library/enum.rst:402 msgid "But this is allowed::" -msgstr "Mais celui-ci est correct : ::" +msgstr "Mais celui-ci est correct ::" #: ../Doc/library/enum.rst:413 msgid "" @@ -449,7 +450,7 @@ msgstr "Sérialisation" #: ../Doc/library/enum.rst:422 msgid "Enumerations can be pickled and unpickled::" -msgstr "Les énumérations peuvent être sérialisées et dé-sérialisées : ::" +msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" #: ../Doc/library/enum.rst:429 msgid "" @@ -459,7 +460,7 @@ msgid "" msgstr "" "Les restrictions habituelles de sérialisation s'appliquent : les *enums* à " "sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " -"module car la dé-sérialisation nécessite que ces *enums* puissent être " +"module car la déserialisation nécessite que ces *enums* puissent être " "importés depuis ce module." #: ../Doc/library/enum.rst:435 @@ -486,7 +487,7 @@ msgstr "API par fonction" msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" -"La :class:`Enum` est appelable et implémente l'API par fonction suivante : ::" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::" #: ../Doc/library/enum.rst:457 msgid "" @@ -515,7 +516,7 @@ msgstr "" "énumérations ; les autres affectent automatiquement des entiers en " "commençant par 1 (le paramètre ``start`` permet de changer la valeur de " "départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " -"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à : ::" +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" #: ../Doc/library/enum.rst:476 msgid "" @@ -541,7 +542,7 @@ msgstr "" "l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " "provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " "Jython). La solution consiste à préciser explicitement le nom du module " -"comme ceci : ::" +"comme ceci ::" #: ../Doc/library/enum.rst:490 msgid "" @@ -550,8 +551,8 @@ msgid "" "pickling will be disabled." msgstr "" "Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " -"nouveaux membres de *l'Enum* ne seront pas dé-sérialisables ; pour garder " -"les erreurs au plus près de leur origine, la sérialisation sera désactivée." +"nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les " +"erreurs au plus près de leur origine, la sérialisation sera désactivée." #: ../Doc/library/enum.rst:494 msgid "" @@ -564,15 +565,15 @@ msgstr "" "cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " "où *pickle* peut trouver la classe. Par exemple, si la classe était " "disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " -"niveau : ::" +"niveau ::" #: ../Doc/library/enum.rst:501 msgid "The complete signature is::" -msgstr "La signature complète est la suivante : ::" +msgstr "La signature complète est la suivante ::" #: ../Doc/library/enum.rst:0 msgid "value" -msgstr "valeur" +msgstr "value" #: ../Doc/library/enum.rst:505 msgid "What the new Enum class will record as its name." @@ -589,19 +590,19 @@ msgid "" msgstr "" "Les membres de l'énumération. Une chaîne de caractères séparés par des " "espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " -"spécifiée autrement) : ::" +"spécifiée autrement) ::" #: ../Doc/library/enum.rst:512 msgid "or an iterator of names::" -msgstr "ou un itérateur sur les noms : ::" +msgstr "ou un itérateur sur les noms ::" #: ../Doc/library/enum.rst:516 msgid "or an iterator of (name, value) pairs::" -msgstr "ou un itérateur sur les tuples (nom, valeur) : ::" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" #: ../Doc/library/enum.rst:520 msgid "or a mapping::" -msgstr "ou une correspondance : ::" +msgstr "ou une correspondance ::" #: ../Doc/library/enum.rst:0 msgid "module" @@ -657,7 +658,7 @@ msgstr "" "La première version dérivée de :class:`Enum` qui existe est aussi une sous-" "classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " "comparés à des entiers et, par extension, les comparaisons entre des " -"énumérations entières de type différent sont possibles : ::" +"énumérations entières de type différent sont possibles ::" #: ../Doc/library/enum.rst:563 msgid "" @@ -665,14 +666,14 @@ msgid "" "enumerations::" msgstr "" "Elles ne peuvent cependant toujours pas être comparées à des énumérations " -"standards de :class:`Enum` : ::" +"standards de :class:`Enum` ::" #: ../Doc/library/enum.rst:576 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" "Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " -"pouvait s'y attendre : ::" +"pouvait s'y attendre ::" #: ../Doc/library/enum.rst:587 msgid "IntFlag" @@ -700,11 +701,11 @@ msgstr "" #: ../Doc/library/enum.rst:599 msgid "Sample :class:`IntFlag` class::" -msgstr "Exemple d'une classe :class:`IntFlag` : ::" +msgstr "Exemple d'une classe :class:`IntFlag` ::" #: ../Doc/library/enum.rst:615 msgid "It is also possible to name the combinations::" -msgstr "Il est aussi possible de nommer les combinaisons : ::" +msgstr "Il est aussi possible de nommer les combinaisons ::" #: ../Doc/library/enum.rst:627 msgid "" @@ -714,7 +715,7 @@ msgid "" msgstr "" "Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " "que, si aucune option n'est activée (la valeur vaut 0), son évaluation " -"booléenne est :data:`False` : ::" +"booléenne est :data:`False` ::" #: ../Doc/library/enum.rst:635 msgid "" @@ -722,7 +723,7 @@ msgid "" "can be combined with them::" msgstr "" "Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" -"`int`, ils peuvent être combinés avec eux : ::" +"`int`, ils peuvent être combinés avec eux ::" #: ../Doc/library/enum.rst:643 msgid "Flag" @@ -753,7 +754,7 @@ msgid "" msgstr "" "Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" "class:`Flag` n'active aucune option, l'évaluation booléenne de la " -"comparaison est :data:`False` : ::" +"comparaison est :data:`False` ::" #: ../Doc/library/enum.rst:668 msgid "" @@ -761,7 +762,7 @@ msgid "" "8, ...), while combinations of flags won't::" msgstr "" "Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " -"4, 8, ...) mais pas les combinaisons : ::" +"4, 8, ...) mais pas les combinaisons ::" #: ../Doc/library/enum.rst:680 msgid "" @@ -769,7 +770,7 @@ msgid "" "value::" msgstr "" "Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " -"booléenne : ::" +"booléenne ::" #: ../Doc/library/enum.rst:696 msgid "" @@ -800,7 +801,7 @@ msgid "" "simple to implement independently::" msgstr "" "Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " -"très simple à implémenter hors de ce module : ::" +"très simple à implémenter hors de ce module ::" #: ../Doc/library/enum.rst:714 msgid "" @@ -939,7 +940,7 @@ msgid "" "hides the (unimportant) value::" msgstr "" "Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " -"qui masque les valeurs (pas importantes de toute façon) : ::" +"qui masque les valeurs (pas importantes de toute façon) ::" #: ../Doc/library/enum.rst:774 msgid "Using :class:`auto`" @@ -947,7 +948,7 @@ msgstr "Avec :class:`auto`" #: ../Doc/library/enum.rst:776 msgid "Using :class:`auto` would look like::" -msgstr "On utilise :class:`auto` de la manière suivante : ::" +msgstr "On utilise :class:`auto` de la manière suivante ::" #: ../Doc/library/enum.rst:788 msgid "Using :class:`object`" @@ -955,7 +956,7 @@ msgstr "Avec :class:`object`" #: ../Doc/library/enum.rst:790 msgid "Using :class:`object` would look like::" -msgstr "On utilise :class:`object` de la manière suivante : ::" +msgstr "On utilise :class:`object` de la manière suivante ::" #: ../Doc/library/enum.rst:802 msgid "Using a descriptive string" @@ -963,7 +964,7 @@ msgstr "Avec une chaîne de caractères de description" #: ../Doc/library/enum.rst:804 msgid "Using a string as the value would look like::" -msgstr "On utilise une chaîne de caractères de la manière suivante : ::" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" #: ../Doc/library/enum.rst:818 msgid "Using a custom :meth:`__new__`" @@ -973,7 +974,7 @@ msgstr "Avec une méthode ad-hoc :meth:`__new__`" msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "" "On utilise une méthode :meth:`__new__` d'énumération de la manière " -"suivante : ::" +"suivante ::" #: ../Doc/library/enum.rst:842 msgid "" @@ -999,7 +1000,7 @@ msgstr "" "Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " "par conséquent, respecte les invariants classiques de :class:`Enum` (comme " "par exemple l'impossibilité de pouvoir être comparée à d'autres " -"énumérations) ::" +"énumérations) ::" #: ../Doc/library/enum.rst:884 msgid "DuplicateFreeEnum" @@ -1010,7 +1011,7 @@ msgid "" "Raises an error if a duplicate member name is found instead of creating an " "alias::" msgstr "" -"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias : ::" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" #: ../Doc/library/enum.rst:911 msgid "" @@ -1032,7 +1033,7 @@ msgid "" "member will be passed to those methods::" msgstr "" "Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " -"l'énumération sera passée à ces méthodes : ::" +"l'énumération sera passée à ces méthodes ::" #: ../Doc/library/enum.rst:947 msgid "How are Enums different?" @@ -1093,6 +1094,8 @@ msgid "" ":attr:`__members__` is an :class:`OrderedDict` of ``member_name``:``member`` " "items. It is only available on the class." msgstr "" +":attr:`__members__` est une :class:`OrderedDict` de correspondances " +"``nom_du_membre`` / ``membre``. Elle n'est disponible que depuis la classe." #: ../Doc/library/enum.rst:984 msgid "" @@ -1158,7 +1161,7 @@ msgid "" msgstr "" "Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" "`_order_` peut être défini. Il sera comparé au véritable ordre de " -"l'énumération et lève une erreur si les deux ne correspondent pas : ::" +"l'énumération et lève une erreur si les deux ne correspondent pas ::" #: ../Doc/library/enum.rst:1021 msgid "" @@ -1187,7 +1190,7 @@ msgstr "" "est fortement déconseillé car cette indirection est susceptible d'échouer, " "ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " "(c'est une autre bonne raison pour définir tous les noms des membres en " -"majuscules) : ::" +"majuscules) ::" #: ../Doc/library/enum.rst:1048 msgid "Boolean value of ``Enum`` classes and members" @@ -1205,7 +1208,7 @@ msgstr "" "class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " "règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " "faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " -"membre, il faut ajouter le code suivant à votre classe : ::" +"membre, il faut ajouter le code suivant à votre classe ::" #: ../Doc/library/enum.rst:1059 msgid ":class:`Enum` classes always evaluate as :data:`True`." @@ -1223,7 +1226,7 @@ msgid "" msgstr "" "Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " "la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" -"`dir` sur le membre, mais pas avec un appel sur la classe : ::" +"`dir` sur le membre, mais pas avec un appel sur la classe ::" #: ../Doc/library/enum.rst:1076 msgid "Combining members of ``Flag``" @@ -1236,4 +1239,4 @@ msgid "" msgstr "" "Si une valeur issue de la combinaison de membres de *Flag* n'est pas " "associée explicitement à un membre, la fonction :func:`repr` inclut tous les " -"membres et toutes les combinaisons de membres présents dans cette valeur : ::" +"membres et toutes les combinaisons de membres présents dans cette valeur ::" diff --git a/library/errno.po b/library/errno.po index 35fdb8589..e1ecd4a00 100644 --- a/library/errno.po +++ b/library/errno.po @@ -416,7 +416,9 @@ msgstr "Trop d'utilisateurs" #: ../Doc/library/errno.rst:468 msgid "Socket operation on non-socket" -msgstr "Opération *socket* pas sur un connecteur" +msgstr "" +"Opération d'interface de connexion alors que ce n'est pas une interface de " +"connexion" #: ../Doc/library/errno.rst:473 msgid "Destination address required" @@ -488,11 +490,11 @@ msgstr "Plus d'espace tampon disponible" #: ../Doc/library/errno.rst:558 msgid "Transport endpoint is already connected" -msgstr "La socket est connectée" +msgstr "L'interface de connexion est déjà connectée" #: ../Doc/library/errno.rst:563 msgid "Transport endpoint is not connected" -msgstr "La socket n'est pas connectée" +msgstr "L'interface de connexion n'est pas connectée" #: ../Doc/library/errno.rst:568 msgid "Cannot send after transport endpoint shutdown" diff --git a/library/exceptions.po b/library/exceptions.po index 55f9f233f..e4d5ef904 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -106,7 +106,7 @@ msgstr "" "En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " "pour lever à nouveau l'exception en cours de traitement), le contexte " "implicite d'exception peut être complété par une cause explicite en " -"utilisant :keyword:`from` avec :keyword:`raise`: ::" +"utilisant :keyword:`from` avec :keyword:`raise` ::" #: ../Doc/library/exceptions.rst:50 msgid "" @@ -189,7 +189,7 @@ msgstr "" "exceptions natives (comme :exc:`OSError`) attendent un certain nombre " "d'arguments et attribuent une signification spéciale aux éléments de ce " "*tuple*, alors que d'autres ne sont généralement appelées qu'avec une seule " -"chaîne de caractères rendant un message d'erreur. " +"chaîne de caractères rendant un message d'erreur." #: ../Doc/library/exceptions.rst:92 msgid "" @@ -198,7 +198,7 @@ msgid "" msgstr "" "Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " "l'exception et retourne l'objet exception. Elle est généralement utilisée " -"dans du code de gestion d'exceptions comme ceci: ::" +"dans du code de gestion d'exceptions comme ceci ::" #: ../Doc/library/exceptions.rst:105 msgid "" @@ -525,7 +525,7 @@ msgid "" msgstr "" ":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." "error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" -"`OSError`, et le constructeur peut retourner une sous-classe." +"`OSError`, et le constructeur peut renvoyer une sous-classe." #: ../Doc/library/exceptions.rst:316 msgid "" @@ -926,9 +926,9 @@ msgid "" "blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " "``EWOULDBLOCK`` and ``EINPROGRESS``." msgstr "" -"Levée lorsqu'une opération bloque sur un objet (e.g. socket) configuré pour " -"une opération non-bloquante. Correspond à :c:data:`errno` ``EAGAIN``, " -"``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." +"Levée lorsqu'une opération bloque sur un objet (par exemple un connecteur) " +"configuré pour une opération non-bloquante. Correspond à :c:data:`errno` " +"``EAGAIN``, ``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." #: ../Doc/library/exceptions.rst:564 msgid "" @@ -978,8 +978,8 @@ msgid "" msgstr "" "Une sous-classe de :exc:`ConnectionError`, levé en essayant d'écrire sur un " "*pipe* alors que l'autre extrémité a été fermée, ou en essayant d'écrire sur " -"un *socket* qui a été fermé pour l'écriture. Correspond à :c:data:`errno` " -"``EPIPE`` et ``ESHUTDOWN``." +"un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " +"Correspond à :c:data:`errno` ``EPIPE`` et ``ESHUTDOWN``." #: ../Doc/library/exceptions.rst:594 msgid "" @@ -1149,7 +1149,7 @@ msgstr "" msgid "Base class for warnings about probable mistakes in module imports." msgstr "" "Classe de base pour les avertissements sur des erreurs probables dans les " -"imports de modules." +"importations de modules." #: ../Doc/library/exceptions.rst:716 msgid "Base class for warnings related to Unicode." diff --git a/library/fcntl.po b/library/fcntl.po index fb4933f40..6e8019027 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -129,7 +129,7 @@ msgstr "" #: ../Doc/library/fcntl.rst:92 msgid "An example::" -msgstr "Un exemple : ::" +msgstr "Un exemple ::" #: ../Doc/library/fcntl.rst:108 msgid "" diff --git a/library/filecmp.po b/library/filecmp.po index b0b047aef..730386896 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -280,4 +280,4 @@ msgid "" msgstr "" "Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " "effectuer une recherche récursive dans deux répertoires afin d'afficher des " -"fichiers communs différents ::" +"fichiers communs différents ::" diff --git a/library/fnmatch.po b/library/fnmatch.po index 1a8a97ad5..64dd9c046 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" -msgstr ":mod:`fnmatch` --- Filtrage par motif des noms de fichiers Unix" +msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" #: ../Doc/library/fnmatch.rst:7 msgid "**Source code:** :source:`Lib/fnmatch.py`" @@ -119,7 +119,7 @@ msgid "" "extension ``.txt``::" msgstr "" "Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " -"pour extension ``.txt`` : ::" +"pour extension ``.txt`` ::" #: ../Doc/library/fnmatch.rst:64 msgid "" diff --git a/library/fractions.po b/library/fractions.po index 8a5b9f979..6c9b5a317 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/fractions.rst:2 msgid ":mod:`fractions` --- Rational numbers" -msgstr ":mod:`fractions` --- Nombres rationnels" +msgstr ":mod:`fractions` — Nombres rationnels" #: ../Doc/library/fractions.rst:10 msgid "**Source code:** :source:`Lib/fractions.py`" diff --git a/library/ftplib.po b/library/ftplib.po index 92ed93d3a..d01f51ea5 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -61,7 +61,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:68 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/ftplib.rst:71 ../Doc/library/ftplib.rst:92 #: ../Doc/library/ftplib.rst:193 diff --git a/library/functions.po b/library/functions.po index 2cfa2c12f..cc2a0f915 100644 --- a/library/functions.po +++ b/library/functions.po @@ -318,7 +318,7 @@ msgid "" "iterable is empty). Equivalent to::" msgstr "" "Donne ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " -"vide), équivaut à : ::" +"vide), équivaut à ::" #: ../Doc/library/functions.rst:64 msgid "" @@ -326,7 +326,7 @@ msgid "" "is empty, return ``False``. Equivalent to::" msgstr "" "Donne ``True`` si au moins un élément de *iterable* est vrai. Faux est aussi " -"donné dans le cas où *iterable* est vide, équivaut à : ::" +"donné dans le cas où *iterable* est vide, équivaut à ::" #: ../Doc/library/functions.rst:76 msgid "" @@ -529,9 +529,9 @@ msgid "" "instance method receives the instance. To declare a class method, use this " "idiom::" msgstr "" -"Une méthode de classe reçoit implicitement la classe en premier augment, " +"Une méthode de classe reçoit implicitement la classe en premier argument, " "tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " -"une méthode de classe : ::" +"une méthode de classe ::" #: ../Doc/library/functions.rst:197 msgid "" @@ -791,7 +791,7 @@ msgid "" "With an argument, attempt to return a list of valid attributes for that " "object." msgstr "" -"Sans arguments, elle donne la liste des noms dans l'espace de noms local. " +"Sans arguments, elle donne la liste des noms dans l'espace de nommage local. " "Avec un argument, elle essaye de donner une liste d'attributs valides pour " "cet objet." @@ -911,7 +911,7 @@ msgstr "" #: ../Doc/library/functions.rst:405 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" #: ../Doc/library/functions.rst:416 msgid "" @@ -1158,7 +1158,7 @@ msgstr "Dans argument, ``0.0`` est donné." #: ../Doc/library/functions.rst:546 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/library/functions.rst:559 msgid "The float type is described in :ref:`typesnumeric`." @@ -1310,7 +1310,7 @@ msgstr "" msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" -"Cette fonction est ajoutée à l'espace de noms natif par le module :mod:" +"Cette fonction est ajoutée à l'espace de nommage natif par le module :mod:" "`site`." #: ../Doc/library/functions.rst:652 @@ -1377,7 +1377,7 @@ msgstr "" "Si l'argument *prompt* est donné, il est écrit sur la sortie standard sans " "le retour à la ligne final. La fonction lis ensuite une ligne sur l'entrée " "standard et la convertit en chaîne (supprimant le retour à la ligne final) " -"quelle donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple : ::" +"quelle donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" #: ../Doc/library/functions.rst:711 msgid "" @@ -1668,7 +1668,7 @@ msgid "" "exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" "Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator." -"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, " +"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épuisé, " "sinon :exc:`StopIteration` est levée." #: ../Doc/library/functions.rst:901 @@ -1865,8 +1865,8 @@ msgid "" "platform-independent." msgstr "" "Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" -"jacent, tout est effectué par Python lui même, et ainsi indépendant de la " -"plateforme." +"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"indépendant de la plateforme." #: ../Doc/library/functions.rst:991 msgid "" @@ -2102,8 +2102,8 @@ msgstr "" "`io.TextIOBase` (spécifiquement : :class:`io.TextIOWrapper`). Lors de " "l'ouverture d'un fichier en mode binaire avec tampon, la classe donnée sera " "une fille de :class:`io.BufferedIOBase`. La classe exacte varie : en lecture " -"en mode mode binaire elle donne une :class:`io.BufferedReader`, en écriture " -"et ajout en mode binaire c'est une :class:`io.BufferedWriter`, et en lecture/" +"en mode binaire elle donne une :class:`io.BufferedReader`, en écriture et " +"ajout en mode binaire c'est une :class:`io.BufferedWriter`, et en lecture/" "écriture, c'est une :class:`io.BufferedRandom`. Lorsque le tampon est " "désactivé, le flux brut, une classe fille de :class:`io.RawIOBase`, :class:" "`io.FileIO` est donnée." @@ -2284,7 +2284,7 @@ msgstr "" #: ../Doc/library/functions.rst:1209 msgid "A typical use is to define a managed attribute ``x``::" -msgstr "Une utilisation typique : définir un attribut managé ``x`` : ::" +msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" #: ../Doc/library/functions.rst:1226 msgid "" @@ -2304,7 +2304,7 @@ msgstr "" "S'il est donné, *doc* sera la *docstring* de l'attribut. Autrement la " "propriété copiera celle de *fget* (si elle existe). Cela rend possible la " "création de propriétés en lecture seule en utilisant simplement :func:" -"`property` comme un :term:`decorator` : ::" +"`property` comme un :term:`decorator` ::" #: ../Doc/library/functions.rst:1242 msgid "" @@ -2326,7 +2326,7 @@ msgstr "" "Un objet propriété à les méthodes :attr:`~property.getter`, :attr:`~property." "setter` et :attr:`~property.deleter` utilisables comme décorateurs créant " "une copie de la propriété avec les accesseurs correspondants définis par la " -"fonction de décoration. C'est plus clair avec un exemple : ::" +"fonction de décoration. C'est plus clair avec un exemple ::" #: ../Doc/library/functions.rst:1268 msgid "" @@ -2374,7 +2374,7 @@ msgstr "" "représentation sera une chaîne entourée de chevrons contenant le nom du type " "et quelques informations supplémentaires souvent le nom et l'adresse de " "l'objet. Une classe peut contrôler ce que cette fonction donne pour ses " -"instances en définissant une méthode :meth:`_repr__`." +"instances en définissant une méthode :meth:`__repr__`." #: ../Doc/library/functions.rst:1301 msgid "" @@ -2559,7 +2559,7 @@ msgid "" "static method, use this idiom::" msgstr "" "Une méthode statique ne reçoit pas de premier argument implicitement. Voilà " -"comment déclarer une méthode statique : ::" +"comment déclarer une méthode statique ::" #: ../Doc/library/functions.rst:1406 msgid "" @@ -2726,7 +2726,7 @@ msgstr "" #: ../Doc/library/functions.rst:1487 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" -"Dans tous les cas, un appel typique à une classe parente ressemble à : ::" +"Dans tous les cas, un appel typique à une classe parente ressemble à ::" #: ../Doc/library/functions.rst:1494 msgid "" @@ -2813,11 +2813,11 @@ msgstr "" "forme dynamique de l'instruction :keyword:`class`. La chaîne *name* est le " "nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le " "*tuple* *bases* contient les classes mères et deviendra l'attribut :attr:" -"`~class.__bases__` ; et le dictionnaire *dict* est l'espace de noms " +"`~class.__bases__` ; et le dictionnaire *dict* est l'espace de nommage " "contenant les définitions du corps de la classe, il est copié vers un " -"dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " +"dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " "exemple, les deux instructions suivantes créent deux instances identiques " -"de :class:`type`." +"de :class:`type` :" #: ../Doc/library/functions.rst:1548 msgid "See also :ref:`bltin-type-objects`." @@ -2860,7 +2860,7 @@ msgid "" "locals dictionary is only useful for reads since updates to the locals " "dictionary are ignored." msgstr "" -"Sans augment, :func:`vars` se comporte comme :func:`locals`. Notez que le " +"Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que le " "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." @@ -2880,7 +2880,7 @@ msgstr "" "élément de chacune des séquences ou itérables fournis. L'itérateur s'arrête " "lorsque le plus petit itérable fourni est épuisé. Avec un seul argument " "itérable, elle donne un itérateur sur des *tuples* d'un élément. Sans " -"arguments, elle donne un itérateur vide. Équivalent à : ::" +"arguments, elle donne un itérateur vide. Équivalent à ::" #: ../Doc/library/functions.rst:1592 msgid "" @@ -2913,7 +2913,7 @@ msgid "" "list::" msgstr "" ":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " -"dézipper une liste : ::" +"dézipper une liste ::" #: ../Doc/library/functions.rst:1623 msgid "" @@ -2967,10 +2967,10 @@ msgid "" "directory of the module calling :func:`__import__` (see :pep:`328` for the " "details)." msgstr "" -"*level* permet de choisir entre import absolu ou relatif. ``0`` (par défaut) " -"implique de n'effectuer que des imports absolus. Une valeur positive indique " -"le nombre de dossiers parents relativement au dossier du module appelant :" -"func:`__import__` (voir la :pep:`328`)." +"*level* permet de choisir entre importation absolue ou relative. ``0`` (par " +"défaut) implique de n'effectuer que des importations absolues. Une valeur " +"positive indique le nombre de dossiers parents relativement au dossier du " +"module appelant :func:`__import__` (voir la :pep:`328`)." #: ../Doc/library/functions.rst:1648 msgid "" @@ -2990,11 +2990,11 @@ msgid "" "the following code::" msgstr "" "Par exemple, l'instruction ``import spam`` donne un code intermédiaire " -"(*bytecode* en anglais) ressemblant au code suivant : ::" +"(*bytecode* en anglais) ressemblant au code suivant ::" #: ../Doc/library/functions.rst:1658 msgid "The statement ``import spam.ham`` results in this call::" -msgstr "L'instruction ``import ham.ham`` appelle : ::" +msgstr "L'instruction ``import ham.ham`` appelle ::" #: ../Doc/library/functions.rst:1662 msgid "" @@ -3009,8 +3009,8 @@ msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" -"En revanche, l'instruction ``from spam.ham import eggs, saucage as saus`` " -"donne : ::" +"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " +"donne ::" #: ../Doc/library/functions.rst:1672 msgid "" diff --git a/library/functools.po b/library/functools.po index ca5c9702d..08749d13c 100644 --- a/library/functools.po +++ b/library/functools.po @@ -335,7 +335,7 @@ msgstr "" #: ../Doc/library/functools.rst:254 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "Sensiblement équivalent à ::" #: ../Doc/library/functools.rst:269 msgid "" @@ -372,7 +372,7 @@ msgid "" "To enable registering lambdas and pre-existing functions, the :func:" "`register` attribute can be used in a functional form::" msgstr "" -"Pour permettre l'enregistrement de lambdas et de fonctions pré-existantes, " +"Pour permettre l'enregistrement de *lambdas* et de fonctions pré-existantes, " "l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" #: ../Doc/library/functools.rst:309 @@ -441,7 +441,7 @@ msgstr "" "sur la fonction englobante et quels attributs de la fonction englobante sont " "mis à jour avec les attributs de la fonction originale. Les valeurs par " "défaut de ces arguments sont les constantes au niveau du module " -"``WRAPPER_ASSIGNMENTS`` (qui assigne``__module__``, ``__name__``, " +"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, " "``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de " "documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui " "met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " @@ -469,7 +469,7 @@ msgid "" msgstr "" "La principale utilisation de cette fonction est dans les :term:`décorateurs " "` qui renvoient une nouvelle fonction. Si la fonction crée n'est " -"pas mise à jour, ses métadonnées reflèteront sa définition dans le " +"pas mise à jour, ses métadonnées refléteront sa définition dans le " "décorateur, au lieu de la définition originale, métadonnées souvent bien " "moins utiles." @@ -482,7 +482,7 @@ msgid "" "wrapper function itself is missing any attributes named in *updated*." msgstr "" ":func:`update_wrapper` peut être utilisé avec des appelables autres que des " -"fonction. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " +"fonctions. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " "l'objet englobé sont ignorés (cette fonction n'essaiera pas de les définir " "dans la fonction englobante). :exc:`AttributeError` est toujours levée si le " "fonction englobante elle même a des attributs non existants dans *updated*." diff --git a/library/gettext.po b/library/gettext.po index 9bec48336..e6937b21c 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" -msgstr ":mod:`gettext` --- Services d'internationalisation multilingue" +msgstr ":mod:`gettext` — Services d'internationalisation multilingue" #: ../Doc/library/gettext.rst:10 msgid "**Source code:** :source:`Lib/gettext.py`" @@ -217,7 +217,7 @@ msgstr "" #: ../Doc/library/gettext.rst:122 msgid "Here's an example of typical usage for this API::" -msgstr "Voici un exemple classique d'utilisation de cette API : ::" +msgstr "Voici un exemple classique d'utilisation de cette API ::" #: ../Doc/library/gettext.rst:133 msgid "Class-based API" @@ -356,9 +356,9 @@ msgid "" "on *domain*, *localedir*, and *codeset* which are passed to the function :" "func:`translation`." msgstr "" -"Positionne la fonction :func:`_` dans l'espace de noms natif à Python, en se " -"basant sur *domain*, *localedir* et *codeset*, qui sont passés en argument " -"de la fonction :func:`translation`." +"Positionne la fonction :func:`_` dans l'espace de nommage natif de Python, " +"en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " +"argument de la fonction :func:`translation`." #: ../Doc/library/gettext.rst:201 msgid "" @@ -375,7 +375,7 @@ msgid "" "function, like this::" msgstr "" "Habituellement, la fonction :func:`_` est appliquée aux chaînes de " -"caractères qui doivent être traduites comme suit : ::" +"caractères qui doivent être traduites comme suit ::" #: ../Doc/library/gettext.rst:210 msgid "" @@ -384,8 +384,8 @@ msgid "" "application." msgstr "" "Pour plus de confort, il vaut mieux positionner la fonction :func:`_` dans " -"l'espace de noms natif à Python pour la rendre plus accessible dans tous les " -"modules de votre application." +"l'espace de nommage natif de Python pour la rendre plus accessible dans tous " +"les modules de votre application." #: ../Doc/library/gettext.rst:216 msgid "The :class:`NullTranslations` class" @@ -505,8 +505,8 @@ msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." msgstr "" -"Cette méthode positionne :meth:`.gettext` dans l'espace de noms natif, en le " -"liant à ``_``." +"Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " +"le liant à ``_``." #: ../Doc/library/gettext.rst:301 msgid "" @@ -517,8 +517,8 @@ msgid "" msgstr "" "Si le paramètre *names* est renseigné, celui-ci doit être une séquence " "contenant les noms des fonctions que vous souhaitez positionner dans " -"l'espace de noms natif, en plus de :func:`_`. Les noms pris en charge sont " -"``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." +"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " +"sont ``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." #: ../Doc/library/gettext.rst:306 msgid "" @@ -530,18 +530,18 @@ msgid "" msgstr "" "Notez que ce n'est là qu'un moyen parmi d'autres, quoique le plus pratique, " "pour rendre la fonction :func:`_` accessible à votre application. Puisque " -"cela affecte toute l'application, et plus particulièrement l'espace de noms " -"natif, les modules localisés ne devraient jamais y positionner :func:`_`. " -"Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant pour " -"rendre :func:`_` accessible par leurs modules : ::" +"cela affecte toute l'application, et plus particulièrement l'espace de " +"nommage natif, les modules localisés ne devraient jamais y positionner :func:" +"`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant " +"pour rendre :func:`_` accessible par leurs modules ::" #: ../Doc/library/gettext.rst:316 msgid "" "This puts :func:`_` only in the module's global namespace and so only " "affects calls within this module." msgstr "" -"Cela met :func:`_` dans l'espace de noms global du module uniquement et donc " -"n'affectera ses appels que dans ce module." +"Cela met :func:`_` dans l'espace de nommage global du module uniquement et " +"donc n'affectera ses appels que dans ce module." #: ../Doc/library/gettext.rst:321 msgid "The :class:`GNUTranslations` class" @@ -658,7 +658,7 @@ msgstr "" #: ../Doc/library/gettext.rst:372 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/gettext.rst:385 msgid "" @@ -697,7 +697,7 @@ msgid "" msgstr "" "GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " "qui a une API légèrement différente. D'après la documentation, elle " -"s'utilise ainsi : ::" +"s'utilise ainsi ::" #: ../Doc/library/gettext.rst:417 msgid "" @@ -771,7 +771,7 @@ msgstr "" "Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " "toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " "caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" -"à-dire en appelant la fonction :func:`_`. Par exemple : ::" +"à-dire en appelant la fonction :func:`_`. Par exemple ::" #: ../Doc/library/gettext.rst:452 msgid "" @@ -895,7 +895,7 @@ msgstr "" "Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " "de traduction dans les différentes langues naturelles soient dans :file:`/" "usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " -"pouvez alors mettre en haut de votre module : ::" +"pouvez alors mettre en haut de votre module ::" #: ../Doc/library/gettext.rst:515 msgid "Localizing your application" @@ -909,8 +909,8 @@ msgid "" "just use ``_('...')`` without having to explicitly install it in each file." msgstr "" "Si vous localisez votre application, vous pouvez positionner la fonction :" -"func:`_` de manière globale dans l'espace de noms natif, généralement dans " -"le fichier principal de votre application. Cela permettra à tous les " +"func:`_` de manière globale dans l'espace de nommage natif, généralement " +"dans le fichier principal de votre application. Cela permettra à tous les " "fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " "redéfinir explicitement dans chaque fichier." @@ -920,7 +920,7 @@ msgid "" "main driver file of your application::" msgstr "" "Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " -"principal de votre application : ::" +"principal de votre application ::" #: ../Doc/library/gettext.rst:528 msgid "" @@ -928,7 +928,7 @@ msgid "" "`install` function::" msgstr "" "Si vous avez besoin de définir le dossier des localisations, vous pouvez le " -"mettre en argument de la fonction :func:`install` : ::" +"mettre en argument de la fonction :func:`install` ::" #: ../Doc/library/gettext.rst:536 msgid "Changing languages on the fly" @@ -942,7 +942,7 @@ msgid "" msgstr "" "Si votre programme a besoin de prendre en charge plusieurs langues en même " "temps, vous pouvez créer plusieurs instances de traduction, puis basculer " -"entre elles de façon explicite, comme ceci : ::" +"entre elles de façon explicite, comme ceci ::" #: ../Doc/library/gettext.rst:559 msgid "Deferred translations" @@ -957,7 +957,7 @@ msgstr "" "Dans la plupart des cas, en programmation, les chaînes de caractères sont " "traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " "ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " -"exemple classique est : ::" +"exemple classique est ::" #: ../Doc/library/gettext.rst:574 msgid "" @@ -970,7 +970,7 @@ msgstr "" #: ../Doc/library/gettext.rst:578 msgid "Here is one way you can handle this situation::" -msgstr "Voici un moyen de gérer ce cas : ::" +msgstr "Voici un moyen de gérer ce cas ::" #: ../Doc/library/gettext.rst:594 msgid "" @@ -983,9 +983,9 @@ msgstr "" "Cela fonctionne car la définition factice de :func:`_` renvoie simplement la " "chaîne de caractères passée en entrée. Et cette définition factice va " "temporairement outrepasser toute autre définition de :func:`_` dans l'espace " -"de noms natif (jusqu'à l'utilisation de la commande :keyword:`del`). " +"de nommage natif (jusqu'à l'utilisation de la commande :keyword:`del`). " "Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " -"l'espace de noms local." +"l'espace de nommage local." #: ../Doc/library/gettext.rst:600 msgid "" @@ -999,7 +999,7 @@ msgstr "" #: ../Doc/library/gettext.rst:604 msgid "Another way to handle this is with the following example::" -msgstr "Voici une autre solution : ::" +msgstr "Voici une autre solution ::" #: ../Doc/library/gettext.rst:618 msgid "" diff --git a/library/glob.po b/library/glob.po index c374a343a..bb3bee17e 100644 --- a/library/glob.po +++ b/library/glob.po @@ -148,7 +148,7 @@ msgid "" msgstr "" "Si le répertoire contient des fichiers commençant par ``.``, ils ne sont pas " "reconnus par défaut. Par exemple, considérons un répertoire contenant :file:" -"`card.gif` et :file:`.card.gif` : ::" +"`card.gif` et :file:`.card.gif` ::" #: ../Doc/library/glob.rst:98 msgid "Module :mod:`fnmatch`" diff --git a/library/gzip.po b/library/gzip.po index a306f8704..6ab76ac62 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/gzip.rst:2 msgid ":mod:`gzip` --- Support for :program:`gzip` files" -msgstr ":mod:`gzip` --- Support pour les fichiers :program:`gzip`" +msgstr ":mod:`gzip` — Support pour les fichiers :program:`gzip`" #: ../Doc/library/gzip.rst:7 msgid "**Source code:** :source:`Lib/gzip.py`" @@ -357,22 +357,22 @@ msgstr "Exemples d'utilisation" #: ../Doc/library/gzip.rst:181 msgid "Example of how to read a compressed file::" -msgstr "Exemple montrant comment lire un fichier compressé : ::" +msgstr "Exemple montrant comment lire un fichier compressé ::" #: ../Doc/library/gzip.rst:187 msgid "Example of how to create a compressed GZIP file::" -msgstr "Exemple montrant comment créer un fichier GZIP : ::" +msgstr "Exemple montrant comment créer un fichier GZIP ::" #: ../Doc/library/gzip.rst:194 msgid "Example of how to GZIP compress an existing file::" msgstr "" -"Exemple montrant comment compresser dans un GZIP un fichier existant : ::" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" #: ../Doc/library/gzip.rst:202 msgid "Example of how to GZIP compress a binary string::" msgstr "" "Exemple montrant comment compresser dans un GZIP un binaire dans une " -"chaîne : ::" +"chaîne ::" #: ../Doc/library/gzip.rst:211 msgid "Module :mod:`zlib`" diff --git a/library/hashlib.po b/library/hashlib.po index 9a9def8b2..19a03cbf9 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -77,7 +77,7 @@ msgstr "" "Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " "retournent un objet haché avec la même interface. Par exemple : utilisez :" "func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " -"maintenant utilisez cet objet :term:`bytes-like objects ` " +"maintenant utiliser cet objet :term:`bytes-like objects ` " "(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " "tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " "données fournies en utilisant les méthodes :meth:`digest` ou :meth:" @@ -141,11 +141,11 @@ msgid "" "spammish repetition'``::" msgstr "" "Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " -"spammish repetition'`` : ::" +"spammish repetition'`` ::" #: ../Doc/library/hashlib.rst:97 msgid "More condensed:" -msgstr "En plus condensé : ::" +msgstr "En plus condensé ::" #: ../Doc/library/hashlib.rst:104 msgid "" @@ -158,7 +158,7 @@ msgstr "" #: ../Doc/library/hashlib.rst:110 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" -msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL : ::" +msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL ::" #: ../Doc/library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" @@ -196,7 +196,7 @@ msgid "" "returned by the constructors:" msgstr "" "Les valeurs suivantes sont fournis en tant qu'attributs constants des objets " -"hachés retournés par les constructeurs : ::" +"hachés retournés par les constructeurs ::" #: ../Doc/library/hashlib.rst:144 msgid "The size of the resulting hash in bytes." @@ -208,7 +208,7 @@ msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hashlib.rst:150 msgid "A hash object has the following attributes:" -msgstr "L'objet haché possède les attributs suivants : ::" +msgstr "L'objet haché possède les attributs suivants ::" #: ../Doc/library/hashlib.rst:154 msgid "" @@ -231,7 +231,7 @@ msgstr "" #: ../Doc/library/hashlib.rst:162 msgid "A hash object has the following methods:" -msgstr "L'objet haché possède les méthodes suivantes : ::" +msgstr "L'objet haché possède les méthodes suivantes ::" #: ../Doc/library/hashlib.rst:167 msgid "" @@ -294,9 +294,10 @@ msgid "" "by the SHAKE algorithm." msgstr "" "Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des " -"messages de longueur variable avec des longueurs_en_bits//2 jusqu'à 128 ou " -"256 bits de sécurité. Leurs méthodes *digests* requièrent une longueur. Les " -"longueurs maximales ne sont pas limitées par l'algorithme SHAKE." +"messages de longueur variable avec des ``longueurs_en_bits // 2`` jusqu'à " +"128 ou 256 bits de sécurité. Leurs méthodes *digests* requièrent une " +"longueur. Les longueurs maximales ne sont pas limitées par l'algorithme " +"SHAKE." #: ../Doc/library/hashlib.rst:208 msgid "" @@ -412,7 +413,7 @@ msgid "" "in two flavors:" msgstr "" "BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" -"`7693` et disponible en deux versions : ::" +"`7693` et disponible en deux versions ::" #: ../Doc/library/hashlib.rst:289 msgid "" @@ -427,7 +428,7 @@ msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" -"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant " "des messages de toutes tailles entre 1 et 32 octets." #: ../Doc/library/hashlib.rst:295 @@ -453,8 +454,7 @@ msgstr "Création d'objets hachés" #: ../Doc/library/hashlib.rst:305 msgid "New hash objects are created by calling constructor functions:" -msgstr "" -"Les nouveaux objets hachés sont créés en appelant les constructeurs : ::" +msgstr "Les nouveaux objets hachés sont créés en appelant les constructeurs ::" #: ../Doc/library/hashlib.rst:317 msgid "" @@ -462,7 +462,7 @@ msgid "" "BLAKE2b or BLAKE2s. They optionally take these general parameters:" msgstr "" "Ces fonctions produisent l'objet haché correspondant aux calculs de BLAKE2b " -"ou BLAKE2s. Elles prennent ces paramètres optionnels : ::" +"ou BLAKE2s. Elles prennent ces paramètres optionnels ::" #: ../Doc/library/hashlib.rst:320 msgid "" @@ -502,7 +502,7 @@ msgstr "" msgid "The following table shows limits for general parameters (in bytes):" msgstr "" "Le tableau suivant présente les limites des paramètres généraux (en " -"octets) : ::" +"octets) ::" #: ../Doc/library/hashlib.rst:337 msgid "Hash" @@ -576,7 +576,7 @@ msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" "Les fonctions constructeur acceptent aussi les paramètres suivants pour le " -"*tree hashing* : ::" +"*tree hashing* ::" #: ../Doc/library/hashlib.rst:356 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." @@ -695,7 +695,7 @@ msgid "" "update the hash:" msgstr "" "Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " -"nécessaire pour mettre à jour le *hash* de manière itérative : ::" +"nécessaire pour mettre à jour le *hash* de manière itérative ::" #: ../Doc/library/hashlib.rst:449 msgid "Using different digest sizes" @@ -710,7 +710,7 @@ msgstr "" "BLAKE2 permet de configurer la taille des empreintes jusqu'à 64 octets pour " "BLAKE2b et jusqu'à 32 octets pour BLAKE2s. Par exemple, pour remplacer SHA-1 " "par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " -"de produire une empreinte de 20 octets : ::" +"de produire une empreinte de 20 octets ::" #: ../Doc/library/hashlib.rst:465 msgid "" @@ -721,7 +721,7 @@ msgstr "" "Les objets hachés avec différentes tailles d'empreintes ont des sorties " "complètement différentes (les *hash* plus courts *ne sont pas* des préfixes " "de *hash* plus longs); BLAKE2b et BLAKE2s produisent des sorties différentes " -"même si les longueurs des sorties sont les mêmes : ::" +"même si les longueurs des sorties sont les mêmes ::" #: ../Doc/library/hashlib.rst:481 msgid "Keyed hashing" @@ -743,7 +743,7 @@ msgid "" msgstr "" "Cet exemple montre comment obtenir un code d'authentification de message de " "128-bit (en hexadécimal) pour un message ``b'message data'`` avec la clé " -"``b'pseudorandom key'`` : ::" +"``b'pseudorandom key'`` ::" #: ../Doc/library/hashlib.rst:499 msgid "" @@ -752,7 +752,7 @@ msgid "" msgstr "" "Comme exemple pratique, une application web peut chiffrer symétriquement les " "*cookies* envoyés aux utilisateurs et les vérifier plus tard pour être " -"certaine qu'ils n'aient pas été altérés : ::" +"certaine qu'ils n'aient pas été altérés ::" #: ../Doc/library/hashlib.rst:528 msgid "" @@ -761,7 +761,7 @@ msgid "" msgstr "" "Même s'il possède en natif la création de code d'authentification de message " "(MAC), BLAKE2 peut, bien sûr, être utilisé pour construire un HMAC en " -"combinaison du module :mod:`hmac` : ::" +"combinaison du module :mod:`hmac` ::" #: ../Doc/library/hashlib.rst:539 msgid "Randomized hashing" @@ -836,7 +836,7 @@ msgid "" msgstr "" "Parfois il est utile de forcer une fonction de hachage à produire " "différentes empreintes de message d'une même entrée pour différentes " -"utilisations. Pour citer les auteurs de la fonction de hachage Skein : ::" +"utilisations. Pour citer les auteurs de la fonction de hachage Skein  ::" #: ../Doc/library/hashlib.rst:601 msgid "" @@ -866,8 +866,7 @@ msgstr "" #: ../Doc/library/hashlib.rst:612 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" msgstr "" -"BLAKE2 peut être personnalisé en passant des *bytes* à l'argument " -"*person* : ::" +"BLAKE2 peut être personnalisé en passant des *bytes* à l'argument *person* ::" #: ../Doc/library/hashlib.rst:626 msgid "" @@ -885,7 +884,7 @@ msgstr "Mode Arbre" msgid "Here's an example of hashing a minimal tree with two leaf nodes::" msgstr "" "L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " -"nœuds terminaux : ::" +"nœuds terminaux ::" #: ../Doc/library/hashlib.rst:648 msgid "" @@ -893,7 +892,7 @@ msgid "" "digest::" msgstr "" "Cet exemple utilise en interne des empreintes de 64 octets, et produit " -"finalement des empreintes 32 octets : ::" +"finalement des empreintes 32 octets ::" #: ../Doc/library/hashlib.rst:678 msgid "Credits" @@ -941,7 +940,7 @@ msgid "" "implementation, extension code, and this documentation:" msgstr "" "Le transfert dans le domaine publique s'applique pour l'implémentation C de " -"la fonction de hachage, ses extensions et cette documentation : ::" +"la fonction de hachage, ses extensions et cette documentation ::" #: ../Doc/library/hashlib.rst:696 msgid "" @@ -969,7 +968,7 @@ msgid "" msgstr "" "Les personnes suivantes ont aidé au développement ou contribué aux " "modification du projet et au domaine public selon la licence Creative " -"Commons Public Domain Dedication 1.0 Universal : ::" +"Commons Public Domain Dedication 1.0 Universal ::" #: ../Doc/library/hashlib.rst:708 msgid "*Alexandr Sokolovskiy*" diff --git a/library/heapq.po b/library/heapq.po index 363116a55..e5103cba9 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -270,7 +270,7 @@ msgid "" msgstr "" "Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour " "assigner des valeurs de comparaison (par exemple, des priorités de tâches) " -"en plus de l'élément qui est suivi ::" +"en plus de l'élément qui est suivi ::" #: ../Doc/library/heapq.rst:165 msgid "Priority Queue Implementation Notes" @@ -352,7 +352,7 @@ msgstr "" "Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " "romprait l'invariant de la structure de tas. Une solution possible est de " "marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " -"priorité modifiée ::" +"priorité modifiée ::" #: ../Doc/library/heapq.rst:226 msgid "Theory" @@ -377,7 +377,7 @@ msgid "" "representation for a tournament. The numbers below are *k*, not ``a[k]``::" msgstr "" "L'invariant étrange ci-dessus est une représentation efficace en mémoire " -"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" +"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" #: ../Doc/library/heapq.rst:246 msgid "" diff --git a/library/hmac.po b/library/hmac.po index 6993e6a6d..39357d214 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -20,6 +20,8 @@ msgstr "" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" msgstr "" +":mod:`hmac` — Authentification de messages par hachage en combinaison avec " +"une clé secrète" #: ../Doc/library/hmac.rst:10 msgid "**Source code:** :source:`Lib/hmac.py`" @@ -28,6 +30,7 @@ msgstr "**Code source :** :source:`Lib/hmac.py`" #: ../Doc/library/hmac.rst:14 msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." msgstr "" +"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." #: ../Doc/library/hmac.rst:19 msgid "" @@ -44,6 +47,9 @@ msgid "" "of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " "name of a hash algorithm." msgstr "" +"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " +"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " +"paramètre *digestmod* peut être le nom d'un algorithme de hachage." #: ../Doc/library/hmac.rst:30 msgid "MD5 as implicit default digest for *digestmod* is deprecated." @@ -51,7 +57,7 @@ msgstr "" #: ../Doc/library/hmac.rst:34 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objet HMAC a les méthodes suivantes :" #: ../Doc/library/hmac.rst:38 msgid "" @@ -59,10 +65,14 @@ msgid "" "single call with the concatenation of all the arguments: ``m.update(a); m." "update(b)`` is equivalent to ``m.update(a + b)``." msgstr "" +"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " +"seul appel avec la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a + b)``." #: ../Doc/library/hmac.rst:42 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" +"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." #: ../Doc/library/hmac.rst:48 msgid "" @@ -71,6 +81,10 @@ msgid "" "given to the constructor. It may contain non-ASCII bytes, including NUL " "bytes." msgstr "" +"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " +"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " +"la fonction de hachage donnée au constructeur. Il peut contenir des octets " +"qui ne sont pas dans la table ASCII, y compris des octets NUL." #: ../Doc/library/hmac.rst:55 msgid "" @@ -79,6 +93,10 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " +"par ailleurs par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." #: ../Doc/library/hmac.rst:63 msgid "" @@ -86,6 +104,10 @@ msgid "" "length containing only hexadecimal digits. This may be used to exchange the " "value safely in email or other non-binary environments." msgstr "" +"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " +"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " +"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " +"d'autres environnements ne gérant pas les données binaires." #: ../Doc/library/hmac.rst:69 msgid "" @@ -94,6 +116,11 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " +"connu obtenu par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " +"les temps de réponse." #: ../Doc/library/hmac.rst:77 msgid "" @@ -101,14 +128,21 @@ msgid "" "efficiently compute the digests of strings that share a common initial " "substring." msgstr "" +"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " +"manière efficace les empreintes cryptographiques de chaînes de caractères " +"qui ont en commun une sous-chaîne initiale." #: ../Doc/library/hmac.rst:81 msgid "A hash object has the following attributes:" -msgstr "L'objet haché possède les attributs suivants : ::" +msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" #: ../Doc/library/hmac.rst:85 msgid "The size of the resulting HMAC digest in bytes." msgstr "" +"La taille du code d'authentification (c-à-d de l'empreinte cryptographique) " +"en octets." #: ../Doc/library/hmac.rst:89 msgid "The internal block size of the hash algorithm in bytes." @@ -117,10 +151,12 @@ msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hmac.rst:95 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" +"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " +"``hmac-md5``." #: ../Doc/library/hmac.rst:100 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Ce module fournit également la fonction utilitaire suivante :" #: ../Doc/library/hmac.rst:104 msgid "" @@ -130,6 +166,12 @@ msgid "" "either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." "hexdigest`), or a :term:`bytes-like object`." msgstr "" +"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " +"temporelles en évitant l'implémentation de courts-circuits basés sur le " +"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " +"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " +"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " +"object`." #: ../Doc/library/hmac.rst:112 msgid "" @@ -137,11 +179,14 @@ msgid "" "attack could theoretically reveal information about the types and lengths of " "*a* and *b*—but not their values." msgstr "" +"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " +"attaque temporelle pourrait en théorie obtenir des informations sur les " +"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." #: ../Doc/library/hmac.rst:122 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Module :mod:`hashlib`" #: ../Doc/library/hmac.rst:123 msgid "The Python module providing secure hash functions." -msgstr "" +msgstr "Le module Python fournissant des fonctions de hachage sécurisé." diff --git a/library/html.entities.po b/library/html.entities.po index e82550146..edaea78ae 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/html.entities.rst:2 msgid ":mod:`html.entities` --- Definitions of HTML general entities" -msgstr ":mod:`html.entities` --- Définitions des entités HTML générales" +msgstr ":mod:`html.entities` — Définitions des entités HTML générales" #: ../Doc/library/html.entities.rst:9 msgid "**Source code:** :source:`Lib/html/entities.py`" diff --git a/library/html.po b/library/html.po index b2f793275..4b5297875 100644 --- a/library/html.po +++ b/library/html.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/html.rst:2 msgid ":mod:`html` --- HyperText Markup Language support" -msgstr ":mod:`html` --- Support du HyperText Markup Language" +msgstr ":mod:`html` — Support du HyperText Markup Language" #: ../Doc/library/html.rst:7 msgid "**Source code:** :source:`Lib/html/__init__.py`" diff --git a/library/http.cookies.po b/library/http.cookies.po index b1acddb67..9ae87a115 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -192,7 +192,7 @@ msgid "" msgstr "" "Si *rawdata* est une chaine de caractères, l'analyser comme étant un " "``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`" -"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" +"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" #: ../Doc/library/http.cookies.rst:122 msgid "Morsel Objects" diff --git a/library/http.po b/library/http.po index 8daf3ad5c..7f674e7d2 100644 --- a/library/http.po +++ b/library/http.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/http.rst:2 msgid ":mod:`http` --- HTTP modules" -msgstr ":mod:`http` --- modules HTTP" +msgstr ":mod:`http` — modules HTTP" #: ../Doc/library/http.rst:7 msgid "**Source code:** :source:`Lib/http/__init__.py`" diff --git a/library/idle.po b/library/idle.po index 318c8784a..da4071a7c 100644 --- a/library/idle.po +++ b/library/idle.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/idle.rst:4 msgid "IDLE" -msgstr "IDLE" +msgstr "*IDLE*" #: ../Doc/library/idle.rst:8 msgid "**Source code:** :source:`Lib/idlelib/`" @@ -493,6 +493,9 @@ msgid "" "whitespace character of a line by applying str.rstrip to each line, " "including lines within multiline strings." msgstr "" +"Enlève les espaces et autres caractères blancs après le dernier caractère " +"non blanc d'une ligne en appliquant *str.rstrip* à chaque ligne, y compris " +"les lignes avec des chaînes de caractère multi-lignes." #: ../Doc/library/idle.rst:201 msgid "Run menu (Editor window only)" diff --git a/library/imaplib.po b/library/imaplib.po index 2bf6aa02e..fdca8e6b7 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -57,7 +57,7 @@ msgstr "" #: ../Doc/library/imaplib.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/imaplib.rst:53 msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" diff --git a/library/inspect.po b/library/inspect.po index 8e8fb70a4..11420d31b 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -1232,7 +1232,7 @@ msgstr "" #: ../Doc/library/inspect.rst:939 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/inspect.rst:948 msgid "" diff --git a/library/io.po b/library/io.po index 7fd28184e..6a5c1f352 100644 --- a/library/io.po +++ b/library/io.po @@ -1284,7 +1284,7 @@ msgstr "" #: ../Doc/library/io.rst:931 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" #: ../Doc/library/io.rst:953 msgid "" diff --git a/library/itertools.po b/library/itertools.po index 34b0316b7..9ca611615 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -20,8 +20,7 @@ msgstr "" #: ../Doc/library/itertools.rst:2 msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" msgstr "" -":mod:`itertools` --- Fonctions créant des itérateurs pour boucler " -"efficacement." +":mod:`itertools` — Fonctions créant des itérateurs pour boucler efficacement" #: ../Doc/library/itertools.rst:16 msgid "" @@ -30,8 +29,8 @@ msgid "" "suitable for Python." msgstr "" "Ce module implémente de nombreuses briques :term:`d'itérateurs ` " -"inspirées par des constructions de APL, Haskell et SML. Toutes ont été " -"retravaillées dans un format adéquat pour Python." +"inspirées par des éléments de APL, Haskell et SML. Toutes ont été " +"retravaillées dans un format adapté à Python." #: ../Doc/library/itertools.rst:20 msgid "" @@ -40,10 +39,10 @@ msgid "" "algebra\" making it possible to construct specialized tools succinctly and " "efficiently in pure Python." msgstr "" -"Ce module standardise un noyau d'outils rapide, efficaces en mémoire qui " -"sont utiles d'eux-mêmes ou en les combinant. Ensemble, ils forment une " -"\"algèbre d'itérateurs\" rendant possible la construction succincte et " -"efficace d'outils spécialisés en Python seulement." +"Ce module standardise un ensemble de base d'outils rapides et efficaces en " +"mémoire qui peuvent être utilisés individuellement ou en les combinant. " +"Ensemble, ils forment une « algèbre d'itérateurs » rendant possible la " +"construction rapide et efficace d'outils spécialisés en Python." #: ../Doc/library/itertools.rst:25 msgid "" @@ -52,7 +51,7 @@ msgid "" "by combining :func:`map` and :func:`count` to form ``map(f, count())``." msgstr "" "Par exemple, SML fournit un outil de tabulation ``tabulate(f)`` qui produit " -"une séquence ``f(0), f(1), ...``. Le même résultat peut être achevé en " +"une séquence ``f(0), f(1), ...``. Le même résultat peut être obtenu en " "Python en combinant :func:`map` et :func:`count` pour former ``map(f, " "count())``." @@ -63,10 +62,10 @@ msgid "" "multiplication operator can be mapped across two vectors to form an " "efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``." msgstr "" -"Ces outils et leurs équivalents intégrés fonctionnent aussi bien avec les " -"fonction à grande vitesse dans le module :mod:`operator`. Par exemple, " -"l'opérateur de multiplication peut être appliqué à deux vecteurs pour créer " -"un produit scalaire efficace ``sum(map(operator.mul, vecteur1, vecteur2))``." +"Ces outils et leurs équivalents natifs fonctionnent également bien avec les " +"fonctions optimisées du module :mod:`operator`. Par exemple, l'opérateur de " +"multiplication peut être appliqué à deux vecteurs pour créer un produit " +"scalaire efficace : ``sum(map(operator.mul, vecteur1, vecteur2))``." #: ../Doc/library/itertools.rst:35 msgid "**Infinite iterators:**" @@ -226,7 +225,7 @@ msgstr ":func:`filterfalse`" #: ../Doc/library/itertools.rst:55 msgid "elements of seq where pred(elem) is false" -msgstr "éléments de *seq* quand *pred(elem)* est faux" +msgstr "éléments de *seq* pour lesquels *pred(elem)* est faux" #: ../Doc/library/itertools.rst:55 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" @@ -339,8 +338,8 @@ msgstr "p[, r]" #: ../Doc/library/itertools.rst:70 msgid "r-length tuples, all possible orderings, no repeated elements" msgstr "" -"*tuples* de longueur *r*, tous les ré-arrangements possibles, sans " -"répétition d'éléments" +"n-uplets de longueur r, tous les ré-arrangements possibles, sans répétition " +"d'éléments" #: ../Doc/library/itertools.rst:71 msgid ":func:`combinations`" @@ -352,7 +351,7 @@ msgstr "p, r" #: ../Doc/library/itertools.rst:71 msgid "r-length tuples, in sorted order, no repeated elements" -msgstr "tuples de longueur r, triés, sans répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, sans répétition d'éléments" #: ../Doc/library/itertools.rst:72 msgid ":func:`combinations_with_replacement`" @@ -360,7 +359,7 @@ msgstr ":func:`combinations_with_replacement`" #: ../Doc/library/itertools.rst:72 msgid "r-length tuples, in sorted order, with repeated elements" -msgstr "tuples de longueur r, triés, avec répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, avec répétition d'éléments" #: ../Doc/library/itertools.rst:73 msgid "``product('ABCD', repeat=2)``" @@ -404,10 +403,10 @@ msgid "" "provide streams of infinite length, so they should only be accessed by " "functions or loops that truncate the stream." msgstr "" -"Toutes les fonctions de module qui suivent construisent et renvoient des " -"itérateurs. Certaines fournissent des flux de longueur infinie, elles " -"devraient seulement être accédées par des fonctions ou boucles qui tronquent " -"le flux." +"Toutes les fonctions du module qui suivent construisent et renvoient des " +"itérateurs. Certaines produisent des flux de longueur infinie ; celles-ci ne " +"doivent donc être contrôlées que par des fonctions ou boucles qui " +"interrompent le flux." #: ../Doc/library/itertools.rst:91 msgid "" @@ -434,7 +433,7 @@ msgstr "" #: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:477 #: ../Doc/library/itertools.rst:556 ../Doc/library/itertools.rst:609 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "À peu près équivalent à ::" #: ../Doc/library/itertools.rst:117 msgid "" @@ -446,14 +445,15 @@ msgid "" "modeled by supplying the initial value in the iterable and using only the " "accumulated total in *func* argument::" msgstr "" -"Il y a de nombreuses utilisations pour l'argument *func*. Il peut être :func:" -"`min` pour un minimum glissant, :func:`max` pour un maximum glissant, ou :" -"func:`operator.mul` pour un produit glissant. Des tableaux de remboursement " -"peuvent être construites en accumulant l'intérêt et en déposant des " -"paiements. Des `suites de récurrences `_ de premier ordre peuvent être modélisées " -"en renseignant la valeur initiale dans l'itérable et en utilisant seulement " -"le total accumulé dans l'argument *func* : ::" +"Il y a de nombreuses utilisations à l'argument *func*. Celui-ci peut être :" +"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum " +"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de " +"remboursements peuvent être construits en ajoutant les intérêts et en " +"soustrayant les paiements. Des `suites par récurrence `_ de premier ordre peuvent " +"être modélisées en en passant la valeur initiale dans *iterable* et en " +"n'utilisant que le premier argument de *func*, qui contient le résultat des " +"évaluations précédentes ::" #: ../Doc/library/itertools.rst:147 msgid "" @@ -465,7 +465,7 @@ msgstr "" #: ../Doc/library/itertools.rst:152 msgid "Added the optional *func* parameter." -msgstr "Le paramètre optionnel *func* a été ajouté." +msgstr "Ajout du paramètre optionnel *func*." #: ../Doc/library/itertools.rst:157 msgid "" @@ -474,10 +474,10 @@ msgid "" "are exhausted. Used for treating consecutive sequences as a single " "sequence. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments du premier itérable jusqu'à son " +"Crée un itérateur qui renvoie les éléments du premier itérable jusqu'à son " "épuisement, puis continue avec l'itérable suivant jusqu'à ce que tous les " "itérables soient épuisés. Utilisée pour traiter des séquences consécutives " -"comme une seule séquence Sensiblement équivalente à : ::" +"comme une seule séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:171 msgid "" @@ -485,12 +485,12 @@ msgid "" "iterable argument that is evaluated lazily. Roughly equivalent to::" msgstr "" "Constructeur alternatif pour :func:`chain`. Récupère des entrées chaînées " -"d'un unique argument itérable qui est évalué de manière paresseuse. " -"Sensiblement équivalente à : ::" +"depuis un unique itérable passé en argument, qui est évalué de manière " +"paresseuse. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:183 msgid "Return *r* length subsequences of elements from the input *iterable*." -msgstr "Renvoyer les sous-séquences de longueur *r* de l'itérable *iterable*." +msgstr "Renvoie les combinaisons de longueur *r* de *iterable*." #: ../Doc/library/itertools.rst:185 ../Doc/library/itertools.rst:234 msgid "" @@ -498,9 +498,9 @@ msgid "" "*iterable* is sorted, the combination tuples will be produced in sorted " "order." msgstr "" -"Les combinaisons sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable *iterable* est trié, les *tuples* de combinaison seront produits " -"dans l'ordre." +"Les combinaisons sont produites dans l'ordre lexicographique. Ainsi, si " +"l'itérable *iterable* est ordonné, les n-uplets de combinaison produits le " +"sont aussi." #: ../Doc/library/itertools.rst:189 msgid "" @@ -518,9 +518,9 @@ msgid "" "func:`permutations` after filtering entries where the elements are not in " "sorted order (according to their position in the input pool)::" msgstr "" -"Le code de :func:`combinations` peut aussi être exprimé comme une sous-" -"séquence de :func:`permutations` après avoir filtré les entrées dont les " -"éléments ne sont pas triés (selon leur position dans le *pool* d'entrée) : ::" +"Un appel à :func:`combinations` peut aussi être vu comme à un appel à :func:" +"`permutations` en excluant les sorties dans lesquelles les éléments ne sont " +"pas ordonnés (avec la même relation d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:226 msgid "" @@ -555,10 +555,10 @@ msgid "" "a subsequence of :func:`product` after filtering entries where the elements " "are not in sorted order (according to their position in the input pool)::" msgstr "" -"Le code pour :func:`combinations_with_replacement` peut aussi être exprimé " -"comme une sous-séquence de :func:`product` après avoir filtré les entrées où " -"les éléments ne sont pas dans triés (selon leur position dans le *pool* " -"d'entrée) : ::" +"Un appel à :func:`combinations_with_replacement` peut aussi être vu comme un " +"appel à :func:`product` en excluant les sorties dans lesquelles les éléments " +"ne sont pas dans ordonnés (avec la même relation d'ordre que pour " +"l'entrée) ::" #: ../Doc/library/itertools.rst:272 msgid "" @@ -573,10 +573,10 @@ msgid "" "Stops when either the *data* or *selectors* iterables has been exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *data*, renvoyant seulement " -"ceux qui ont un élément correspondant dans *selectors* qui évalue à " -"``True``. S'arrête quand l'itérable *data* ou *selectors* a été épuisé. " -"Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *data*, en ne renvoyant que " +"ceux dont l'élément correspondant dans *selectors* s'évalue à ``True``. " +"S'arrête quand l'itérable *data* ou *selectors* a été épuisé. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:293 msgid "" @@ -585,10 +585,10 @@ msgid "" "data points. Also, used with :func:`zip` to add sequence numbers. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les valeurs espacées également commençant par " -"le nombre *start*. Souvent utilisée comme un argument de :func:`map` pour " -"générer des points de données consécutifs. Aussi utilisé avec :func:`zip` " -"pour ajouter des nombres de séquence. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie des valeurs espacées régulièrement, en " +"commençant par le nombre *start*. Souvent utilisé comme un argument de :func:" +"`map` pour générer des points de données consécutifs. Aussi utilisé avec :" +"func:`zip` pour ajouter des nombres de séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:305 msgid "" @@ -596,9 +596,9 @@ msgid "" "achieved by substituting multiplicative code such as: ``(start + step * i " "for i in count())``." msgstr "" -"Quand on compte avec des nombres à virgule flottante, il est parfois " -"possible d'obtenir une meilleure précision en substituant du code " -"multiplicateur comme : ``(start + step * i for i in count())``." +"Pour compter avec des nombres à virgule flottante, il est parfois préférable " +"d'utiliser le code : ``(start + step * i for i in count())`` pour obtenir " +"une meilleure précision." #: ../Doc/library/itertools.rst:309 msgid "Added *step* argument and allowed non-integer arguments." @@ -612,18 +612,17 @@ msgid "" "each. When the iterable is exhausted, return elements from the saved copy. " "Repeats indefinitely. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments de l'itérable et qui sauvegarde " -"une copie de chaque. Quand l'itérable est épuisé, renvoyer les éléments " -"depuis la copie sauvegardée. Répète à l'infini. Sensiblement équivalent " -"à : ::" +"Crée un itérateur qui renvoie les éléments de l'itérable en en sauvegardant " +"une copie. Quand l'itérable est épuisé, renvoie les éléments depuis la " +"sauvegarde. Répète à l'infini. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:328 msgid "" "Note, this member of the toolkit may require significant auxiliary storage " "(depending on the length of the iterable)." msgstr "" -"Note, cette fonction pourrait avoir besoin d'un stockage auxiliaire " -"important (en fonction de la longueur de l'itérable)." +"Note, cette fonction peut avoir besoin d'un stockage auxiliaire important " +"(en fonction de la longueur de l'itérable)." #: ../Doc/library/itertools.rst:334 msgid "" @@ -632,10 +631,10 @@ msgid "" "does not produce *any* output until the predicate first becomes false, so it " "may have a lengthy start-up time. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui saute les éléments de l'itérable tant que le prédicat " -"est vrai ; ensuite, renvoyer chaque élément. Note, l'itérateur ne produit " +"Crée un itérateur qui saute les éléments de l'itérable tant que le prédicat " +"est vrai ; renvoie ensuite chaque élément. Notez que l'itérateur ne produit " "*aucune* sortie avant que le prédicat ne devienne faux, il peut donc avoir " -"un temps de démarrage long. Sensiblement équivalent à : ::" +"un temps de démarrage long. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:351 msgid "" @@ -643,9 +642,9 @@ msgid "" "for which the predicate is ``False``. If *predicate* is ``None``, return the " "items that are false. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *iterable*, ne renvoyant " -"seulement ceux pour lesquels le prédicat est ``Faux``. Si *predicate* vaut " -"``None``, renvoyer les éléments qui sont faux. Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *iterable*, ne renvoyant " +"seulement ceux pour lesquels le prédicat est ``False``. Si *predicate* vaut " +"``None``, renvoie les éléments qui sont faux. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:366 msgid "" @@ -655,12 +654,12 @@ msgid "" "returns the element unchanged. Generally, the iterable needs to already be " "sorted on the same key function." msgstr "" -"Créer un itérateur qui renvoie les clés et les groupes de l'itérable " +"Crée un itérateur qui renvoie les clés et les groupes de l'itérable " "*iterable*. La clé *key* est une fonction qui génère une clé pour chaque " -"élément. Si *key* n'est pas spécifié ou est ``None``, elle vaut par défaut " +"élément. Si *key* n'est pas spécifiée ou est ``None``, elle vaut par défaut " "une fonction d'identité qui renvoie l'élément sans le modifier. " -"Généralement, l'itérable a besoin d'être déjà trié selon cette même fonction " -"de clé." +"Généralement, l'itérable a besoin d'avoir ses éléments déjà classés selon " +"cette même fonction de clé." #: ../Doc/library/itertools.rst:372 msgid "" @@ -687,12 +686,12 @@ msgstr "" "Le groupe renvoyé est lui-même un itérateur qui partage l'itérable sous-" "jacent avec :func:`groupby`. Puisque que la source est partagée, quand " "l'objet :func:`groupby` est avancé, le groupe précédent n'est plus visible. " -"Ainsi, si cette donnée doit être utilisée plus tard, elle devrait être " -"stockée comme une liste : ::" +"Ainsi, si cette donnée doit être utilisée plus tard, elle doit être stockée " +"comme une liste ::" #: ../Doc/library/itertools.rst:390 msgid ":func:`groupby` is roughly equivalent to::" -msgstr ":func:`groupby` est sensiblement équivalent à : ::" +msgstr ":func:`groupby` est à peu près équivalente à ::" #: ../Doc/library/itertools.rst:422 msgid "" @@ -707,18 +706,18 @@ msgid "" "the internal structure has been flattened (for example, a multi-line report " "may list a name field on every third line). Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " -"*start* est non-nul, alors les éléments de l'itérable sont sautés jusqu'à ce " -"que *start* soit atteint. Ensuite, les éléments sont renvoyés " +"Crée un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " +"*start* est différent de zéro, alors les éléments de l'itérable sont ignorés " +"jusqu'à ce que *start* soit atteint. Ensuite, les éléments sont renvoyés " "consécutivement sauf si *step* est plus grand que 1, auquel cas certains " -"éléments seront sautés. Si *stop* est ``None``, alors l'itération continue " +"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue " "jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il " -"s'arrête à la position spécifiée. À la différence du *slicing* standard, :" -"func:`slice` ne supporte pas les valeurs négatives pour *start*, *stop* ou " -"*step*. Peut être utilisée pour extraire les champs apparentés depuis des " +"s'arrête à la position spécifiée. À la différence des tranches standards, :" +"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou " +"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des " "données dont la structure interne a été aplatie (par exemple, un rapport " -"multi-ligne pourrait lister un nom de champ toutes les trois lignes). " -"Sensiblement similaire à : ::" +"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu " +"près similaire à ::" #: ../Doc/library/itertools.rst:457 msgid "" @@ -732,7 +731,7 @@ msgstr "" msgid "" "Return successive *r* length permutations of elements in the *iterable*." msgstr "" -"Renvoyer les permutations successives de longueur *r* des éléments de " +"Renvoie les arrangements successifs de longueur *r* des éléments de " "*iterable*." #: ../Doc/library/itertools.rst:465 @@ -751,8 +750,8 @@ msgid "" "order." msgstr "" "Les permutations sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable d'entrée *iterable* est trié, les *tuples* de permutation seront " -"produits dans l'ordre." +"l'itérable d'entrée *iterable* est classé, les n-uplets de permutation sont " +"produits dans ce même ordre." #: ../Doc/library/itertools.rst:473 msgid "" @@ -770,9 +769,9 @@ msgid "" "func:`product`, filtered to exclude entries with repeated elements (those " "from the same position in the input pool)::" msgstr "" -"Le code pour :func:`permutations` peut aussi être exprimé comme une sous-" -"séquence de :func:`product`, filtré pour exclure les entrées avec des " -"éléments répétés (celles de la même position dans la *pool* d'entrée) : ::" +"Un appel à :func:`permutations` peut aussi être vu un appel à :func:" +"`product` en excluant les sorties avec des doublons (avec la même relation " +"d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:516 msgid "" @@ -792,9 +791,9 @@ msgid "" "example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " "B)``." msgstr "" -"Sensiblement équivalent à des boucles *for* imbriquées dans une expression " -"de générateur. Par exemple ``product(A, B)`` renvoie la même chose que " -"``((x, y) for x in A for y in B)``." +"À peu près équivalent à des boucles *for* imbriquées dans une expression de " +"générateur. Par exemple ``product(A, B)`` renvoie la même chose que ``((x, " +"y) for x in A for y in B)``." #: ../Doc/library/itertools.rst:526 msgid "" @@ -804,9 +803,9 @@ msgid "" "sorted order." msgstr "" "Les boucles imbriquées tournent comme un compteur kilométrique avec " -"l'élément le plus à droite avançant à chaque itération. ce motif créé un tri " -"lexicographique afin que si les itérables de l'entrée sont triés, les " -"*tuples* de produit sont émis dans l'ordre." +"l'élément le plus à droite avançant à chaque itération. Ce motif défini un " +"ordre lexicographique afin que, si les éléments des itérables en l'entrée " +"sont ordonnés, les n-uplets produits le sont aussi." #: ../Doc/library/itertools.rst:531 msgid "" @@ -814,17 +813,18 @@ msgid "" "repetitions with the optional *repeat* keyword argument. For example, " "``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``." msgstr "" -"Pour générer le produit d'un itérable avec lui-même, spécifier le nombre de " +"Pour générer le produit d'un itérable avec lui-même, spécifiez le nombre de " "répétitions avec le paramètre nommé optionnel *repeat*. Par exemple, " -"``product(A, repeat=4)`` veut dire la même chose que ``product(A, A, A, A)``." +"``product(A, repeat=4)`` est équivalent à ``product(A, A, A, A)``." #: ../Doc/library/itertools.rst:535 msgid "" "This function is roughly equivalent to the following code, except that the " "actual implementation does not build up intermediate results in memory::" msgstr "" -"Cette fonction est sensiblement équivalente au code suivant, saut que la " -"vraie implémentation ne créé pas les résultats intermédiaires en mémoire : ::" +"Cette fonction est à peu près équivalente au code suivant, à la différence " +"près que la vraie implémentation ne crée pas de résultats intermédiaires en " +"mémoire ::" #: ../Doc/library/itertools.rst:551 msgid "" @@ -833,18 +833,18 @@ msgid "" "func:`map` for invariant parameters to the called function. Also used with :" "func:`zip` to create an invariant part of a tuple record." msgstr "" -"Créer un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " +"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " "sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:" "`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée " -"avec :func:`zip` pour créer une partie invariante d'un *tuple*." +"avec :func:`zip` pour créer une partie invariante d'un n-uplet." #: ../Doc/library/itertools.rst:567 msgid "" "A common use for *repeat* is to supply a stream of constant values to *map* " "or *zip*::" msgstr "" -"Une utilisation commune de *repeat* est de fournir un flux constant de " -"valeurs à *map* ou *zip* : ::" +"Une utilisation courante de *repeat* est de fournir un flux constant de " +"valeurs à *map* ou *zip* ::" #: ../Doc/library/itertools.rst:575 msgid "" @@ -855,24 +855,24 @@ msgid "" "the distinction between ``function(a,b)`` and ``function(*c)``. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui exécute la fonction avec les arguments obtenus de " +"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis " "l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà " -"groupés en *tuples* depuis un seul itérable (la donnée a déjà été \"pré-" -"zippée\"). La différence entre :func:`map` et :func:`starmap` est similaire " -"à la différence entre ``fonction(a,b)`` et ``fonction(*c)``. Sensiblement " -"équivalent à : ::" +"groupés en n-uplets depuis un seul itérable — la donnée a déjà été « pré-" +"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à " +"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:589 msgid "" "Make an iterator that returns elements from the iterable as long as the " "predicate is true. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments d'un itérable tant que le " -"prédicat est vrai. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie les éléments d'un itérable tant que le " +"prédicat est vrai. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:603 msgid "Return *n* independent iterators from a single iterable." -msgstr "Renvoyer *n* itérateurs indépendant depuis un unique itérable." +msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable." #: ../Doc/library/itertools.rst:605 msgid "" @@ -880,9 +880,9 @@ msgid "" "implementation is more complex and uses only a single underlying :abbr:`FIFO " "(first-in, first-out)` queue)." msgstr "" -"Le code Python qui suit aide à expliquer ce que fait *tee* (bien que la " -"vraie implémentation est plus complexe et n'utilise qu'une file :abbr:`FIFO " -"(first-in, first-out)`)." +"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la " +"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO " +"(premier entré, premier sorti ou *first-in, first-out* en anglais)`." #: ../Doc/library/itertools.rst:626 msgid "" @@ -891,8 +891,8 @@ msgid "" "tee objects being informed." msgstr "" "Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne " -"devrait être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " -"avancé sans que les objets tee soient informés." +"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " +"avancé sans que les objets tee ne soient informés." #: ../Doc/library/itertools.rst:630 msgid "" @@ -901,11 +901,11 @@ msgid "" "most or all of the data before another iterator starts, it is faster to use :" "func:`list` instead of :func:`tee`." msgstr "" -"Cet outil pourrait avoir besoin d'un stockage auxiliaire important (en " -"fonction de la taille des données temporaires nécessaires). En général, si " -"un itérateur utilise la majorité ou toute la donnée avant qu'un autre " -"itérateur ne commence, il est plus rapide d'utiliser :func:`list` à la place " -"de :func:`tee`." +"Cet outil peut avoir besoin d'un stockage auxiliaire important (en fonction " +"de la taille des données temporaires nécessaires). En général, si un " +"itérateur utilise la majorité ou toute la donnée avant qu'un autre itérateur " +"ne commence, il est plus rapide d'utiliser :func:`list` à la place de :func:" +"`tee`." #: ../Doc/library/itertools.rst:638 msgid "" @@ -914,10 +914,10 @@ msgid "" "*fillvalue*. Iteration continues until the longest iterable is exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui agrège les éléments de chacun des itérables. Si les " +"Crée un itérateur qui agrège les éléments de chacun des itérables. Si les " "itérables sont de longueurs différentes, les valeurs manquantes sont " "remplacées par *fillvalue*. L'itération continue jusqu'à ce que l'itérable " -"le plus long soit épuisé. Sensiblement équivalent à : ::" +"le plus long soit épuisé. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:663 msgid "" @@ -927,7 +927,7 @@ msgid "" "specified, *fillvalue* defaults to ``None``." msgstr "" "Si un des itérables est potentiellement infini, alors la fonction :func:" -"`zip_longest` devrait être entourée avec quelque chose qui limite le nombre " +"`zip_longest` doit être encapsulée dans un code qui limite le nombre " "d'appels (par exemple, :func:`islice` ou :func:`takewhile`). Si *fillvalue* " "n'est pas spécifié, il vaut ``None`` par défaut." @@ -940,8 +940,8 @@ msgid "" "This section shows recipes for creating an extended toolset using the " "existing itertools as building blocks." msgstr "" -"Cette section montre des recettes pour créer une boîte à outil étendue en se " -"servant des *itertools* existants comme de briques." +"Cette section présente des recettes pour créer une vaste boîte à outils en " +"se servant des *itertools* existants comme des briques." #: ../Doc/library/itertools.rst:677 msgid "" @@ -957,9 +957,10 @@ msgstr "" "jacents. La performance mémoire supérieure est gardée en traitant les " "éléments un à la fois plutôt que de charger tout l'itérable en mémoire en " "même temps. Le volume de code reste bas grâce à un chaînage de style " -"fonctionnel qui aide à éliminer des variables temporaires. La grande vitesse " -"est gardée en préférant les briques \"vectorisées\" plutôt que les boucles " -"*for* et les :term:`générateur`\\s qui engendrent du sur-coût de traitement." +"fonctionnel qui aide à éliminer les variables temporaires. La grande vitesse " +"est gardée en préférant les briques « vectorisées » plutôt que les boucles " +"*for* et les :term:`générateurs ` qui engendrent un surcoût de " +"traitement." #: ../Doc/library/itertools.rst:899 msgid "" diff --git a/library/json.po b/library/json.po index f456c627a..8f998b2e2 100644 --- a/library/json.po +++ b/library/json.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/json.rst:2 msgid ":mod:`json` --- JSON encoder and decoder" -msgstr ":mod:`json` --- Encodage et décodage JSON" +msgstr ":mod:`json` — Encodage et décodage JSON" #: ../Doc/library/json.rst:10 msgid "**Source code:** :source:`Lib/json/__init__.py`" @@ -52,27 +52,27 @@ msgstr "" #: ../Doc/library/json.rst:24 msgid "Encoding basic Python object hierarchies::" -msgstr "Encodage d'objets Python basiques : ::" +msgstr "Encodage d'objets Python basiques ::" #: ../Doc/library/json.rst:43 msgid "Compact encoding::" -msgstr "Encodage compact : ::" +msgstr "Encodage compact ::" #: ../Doc/library/json.rst:49 msgid "Pretty printing::" -msgstr "Affichage élégant : ::" +msgstr "Affichage élégant ::" #: ../Doc/library/json.rst:58 msgid "Decoding JSON::" -msgstr "Décodage JSON : ::" +msgstr "Décodage JSON ::" #: ../Doc/library/json.rst:70 msgid "Specializing JSON object decoding::" -msgstr "Spécialisation du décodage JSON pour un objet : ::" +msgstr "Spécialisation du décodage JSON pour un objet ::" #: ../Doc/library/json.rst:85 msgid "Extending :class:`JSONEncoder`::" -msgstr "Étendre la classe :class:`JSONEncoder` : ::" +msgstr "Étendre la classe :class:`JSONEncoder` ::" #: ../Doc/library/json.rst:103 msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:" @@ -503,7 +503,7 @@ msgstr "*null*" #: ../Doc/library/json.rst:316 ../Doc/library/json.rst:405 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/library/json.rst:319 msgid "" @@ -696,7 +696,7 @@ msgid "" "like this::" msgstr "" "Par exemple, pour supporter des itérateurs arbitraires, vous pourriez " -"implémenter *default* comme cela : ::" +"implémenter *default* comme cela ::" #: ../Doc/library/json.rst:489 msgid "" @@ -704,7 +704,7 @@ msgid "" "example::" msgstr "" "Renvoie une chaîne JSON représentant la structure de données Python *o*. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/library/json.rst:498 msgid "" @@ -712,7 +712,7 @@ msgid "" "available. For example::" msgstr "" "Encode l'objet *o* donné, et produit chaque chaîne représentant l'objet " -"selon disponibilité. Par exemple : ::" +"selon disponibilité. Par exemple ::" #: ../Doc/library/json.rst:506 msgid "Exceptions" @@ -896,7 +896,7 @@ msgstr "" "La RFC spécifie que les noms au sein d'un objet JSON doivent être uniques, " "mais ne décrit pas comment les noms répétés doivent être gérés. Par défaut, " "ce module ne lève pas d'exception ; à la place, il ignore tous les couples " -"nom/valeur sauf le dernier pour un nom donné : ::" +"nom/valeur sauf le dernier pour un nom donné ::" #: ../Doc/library/json.rst:618 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." diff --git a/library/keyword.po b/library/keyword.po index 4297241f9..7328e8622 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/keyword.rst:2 msgid ":mod:`keyword` --- Testing for Python keywords" -msgstr ":mod:`keyword` --- Tester si des chaînes sont des mot-clés Python" +msgstr ":mod:`keyword` — Tester si des chaînes sont des mot-clés Python" #: ../Doc/library/keyword.rst:7 msgid "**Source code:** :source:`Lib/keyword.py`" diff --git a/library/linecache.po b/library/linecache.po index 8e04029f5..a42615e0d 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/linecache.rst:2 msgid ":mod:`linecache` --- Random access to text lines" -msgstr ":mod:`linecache` --- Accès direct aux lignes d'un texte" +msgstr ":mod:`linecache` — Accès direct aux lignes d'un texte" #: ../Doc/library/linecache.rst:9 msgid "**Source code:** :source:`Lib/linecache.py`" diff --git a/library/locale.po b/library/locale.po index c320ea1f9..3349f1c15 100644 --- a/library/locale.po +++ b/library/locale.po @@ -655,11 +655,11 @@ msgid "" "available programmatically on some systems, so this function only returns a " "guess." msgstr "" -"Renvoie l'encodage utilisé pour les textes, selon les préférences de " -"l'utilisateur. Celles-ci ne sont pas décrites de la même façon sur les " -"différents systèmes et peuvent ne pas être accessibles du point de vue " -"programmation sur certains systèmes, de sorte que cette fonction ne renvoie " -"qu'une supposition." +"Renvoie le codage utilisé pour les données textuelles, selon les préférences " +"de l'utilisateur. Les préférences de l'utilisateur sont exprimées " +"différemment selon les systèmes et peuvent ne pas être disponibles via les " +"interfaces de programmation sur certains systèmes. Cette fonction ne renvoie " +"donc qu'une supposition." #: ../Doc/library/locale.rst:325 msgid "" @@ -667,10 +667,11 @@ msgid "" "user preferences, so this function is not thread-safe. If invoking setlocale " "is not necessary or desired, *do_setlocale* should be set to ``False``." msgstr "" -"Sur certains systèmes, il est nécessaire de faire appel à :func:`setlocale` " -"afin d'obtenir les préférences de l'utilisateur, donc cette fonction n'est " -"pas *thread-safe*. Si appeler *setlocale* n'est pas nécessaire ou non " -"souhaité, *do_setlocale* doit être défini à ``False``." +"Sur certains systèmes, il est nécessaire d'invoquer :func:`setlocale` pour " +"obtenir les préférences de l'utilisateur, cette fonction n'est donc pas " +"utilisable sans protection dans les programmes à fils d'exécutions " +"multiples. Si l'appel de `setlocale` n'est pas nécessaire ou souhaité, " +"*do_setlocale* doit être réglé à ``False``." #: ../Doc/library/locale.rst:332 msgid "" diff --git a/library/logging.config.po b/library/logging.config.po index fd54d9308..b5c348130 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -558,7 +558,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:453 msgid "and::" -msgstr "et  : ::" +msgstr "et ::" #: ../Doc/library/logging.config.rst:460 msgid "" diff --git a/library/logging.po b/library/logging.po index d2a072044..f667b09c0 100644 --- a/library/logging.po +++ b/library/logging.po @@ -19,35 +19,40 @@ msgstr "" #: ../Doc/library/logging.rst:2 msgid ":mod:`logging` --- Logging facility for Python" -msgstr "" +msgstr ":mod:`logging` — Fonctionnalités de journalisation pour Python" #: ../Doc/library/logging.rst:10 msgid "**Source code:** :source:`Lib/logging/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/__init__.py`" #: ../Doc/library/logging.rst:16 msgid "" "This page contains the API reference information. For tutorial information " "and discussion of more advanced topics, see" msgstr "" +"Cette page contient les informations de référence de l’API. Pour des " +"tutoriels et des discussions sur des sujets plus avancés, voir" #: ../Doc/library/logging.rst:19 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.rst:20 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.rst:21 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.rst:25 msgid "" "This module defines functions and classes which implement a flexible event " "logging system for applications and libraries." msgstr "" +"Ce module définit les fonctions et les classes qui mettent en œuvre un " +"système flexible d’enregistrement des événements pour les applications et " +"les bibliothèques." #: ../Doc/library/logging.rst:28 msgid "" @@ -56,6 +61,10 @@ msgid "" "application log can include your own messages integrated with messages from " "third-party modules." msgstr "" +"Le principal avantage de l’API de journalisation fournie par un module de " +"bibliothèque standard est que tous les modules Python peuvent participer à " +"la journalisation, de sorte que le journal de votre application peut inclure " +"vos propres messages intégrés aux messages de modules tiers." #: ../Doc/library/logging.rst:33 msgid "" @@ -63,12 +72,17 @@ msgid "" "unfamiliar with logging, the best way to get to grips with it is to see the " "tutorials (see the links on the right)." msgstr "" +"Le module offre beaucoup de fonctionnalités et de flexibilité. Si vous " +"n’êtes pas familiarisé avec la journalisation, la meilleure façon de vous y " +"familiariser est de consulter les tutoriels (voir les liens à droite)." #: ../Doc/library/logging.rst:37 msgid "" "The basic classes defined by the module, together with their functions, are " "listed below." msgstr "" +"Les classes de base définies par le module, ainsi que leurs fonctions, sont " +"énumérées ci-dessous." #: ../Doc/library/logging.rst:40 msgid "Loggers expose the interface that application code directly uses." @@ -81,7 +95,7 @@ msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" -"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par " +"Les gestionnaires (*handlers*) envoient les entrées de journal (créées par " "les *loggers*) vers les destinations voulues." #: ../Doc/library/logging.rst:43 @@ -100,7 +114,7 @@ msgstr "" #: ../Doc/library/logging.rst:51 msgid "Logger Objects" -msgstr "" +msgstr "Objets Enregistreurs" #: ../Doc/library/logging.rst:53 msgid "" @@ -123,6 +137,18 @@ msgid "" "getLogger(__name__)``. That's because in a module, ``__name__`` is the " "module's name in the Python package namespace." msgstr "" +"Le nom ``name`` est potentiellement une valeur avec plusieurs niveaux de " +"hiérarchie, séparés par des points, comme ``truc.machin.bidule`` (bien qu’il " +"puisse aussi être simplement ``truc``, par exemple). Les enregistreurs qui " +"sont plus bas dans la liste hiérarchique sont les enfants des enregistreurs " +"plus haut dans la liste. Par exemple, pour un enregistreur nommé ``truc``, " +"les enregistreurs portant les noms ``truc.machin``, ``truc.machin.bidule`` " +"et ``truc.chose`` sont tous des descendants de ``truc``. La hiérarchie des " +"noms d’enregistreurs est analogue à la hiérarchie des paquets Python, et est " +"identique à celle-ci si vous organisez vos enregistreurs par module en " +"utilisant la construction recommandée ``logging.getLogger(__name__)``. " +"C’est ainsi parce que dans un module, ``__name__`` est le nom du module dans " +"l’espace de noms des paquets Python." #: ../Doc/library/logging.rst:74 msgid "" @@ -132,16 +158,24 @@ msgid "" "ancestor loggers' handlers - neither the level nor filters of the ancestor " "loggers in question are considered." msgstr "" +"Si cet attribut est évalué comme vrai, les événements enregistrés dans cet " +"enregistreur seront transmis aux gestionnaires des enregistreurs de niveau " +"supérieur (parents), en plus des gestionnaires attachés à cet enregistreur. " +"Les messages sont transmis directement aux gestionnaires des enregistreurs " +"parents — ni le niveau ni les filtres des enregistreurs ancestraux en " +"question ne sont pris en compte." #: ../Doc/library/logging.rst:80 msgid "" "If this evaluates to false, logging messages are not passed to the handlers " "of ancestor loggers." msgstr "" +"S’il s’évalue comme faux, les messages de journalisation ne sont pas " +"transmis aux gestionnaires des enregistreurs parents." #: ../Doc/library/logging.rst:83 msgid "The constructor sets this attribute to ``True``." -msgstr "" +msgstr "Le constructeur fixe cet attribut à ``True``." #: ../Doc/library/logging.rst:85 msgid "" @@ -154,6 +188,15 @@ msgid "" "handlers only to the root logger, and to let propagation take care of the " "rest." msgstr "" +"Si vous associez un gestionnaire à un enregistreur *et* à un ou plusieurs de " +"ses parents, il peut émettre le même enregistrement plusieurs fois. En " +"général, vous ne devriez pas avoir besoin d'attacher un gestionnaire à plus " +"d'un enregistreur — si vous l'attachez simplement à l'enregistreur approprié " +"qui est le plus haut dans la hiérarchie des enregistreurs, alors il voit " +"tous les événements enregistrés par tous les enregistreurs descendants, à " +"condition que leur paramètre de propagation soit laissé à ``True``. Un " +"scénario courant est d'attacher les gestionnaires uniquement à " +"l'enregistreur racine, et de laisser la propagation s'occuper du reste." #: ../Doc/library/logging.rst:96 msgid "" @@ -163,6 +206,11 @@ msgid "" "service this logger, unless a handler's level has been set to a higher " "severity level than *level*." msgstr "" +"Fixe le seuil de cet enregistreur au niveau *level*. Les messages de " +"journalisation qui sont moins graves que *level* sont ignorés ; les messages " +"qui ont une gravité égale à *level* ou plus élevée sont émis par le ou les " +"gestionnaires de cet enregistreur, à moins que le niveau d'un gestionnaire " +"n'ait été fixé à un niveau de gravité plus élevé que *level*." #: ../Doc/library/logging.rst:101 msgid "" @@ -171,6 +219,11 @@ msgid "" "delegation to the parent when the logger is a non-root logger). Note that " "the root logger is created with level :const:`WARNING`." msgstr "" +"Lorsqu'un enregistreur est créé, le niveau est fixé à :const:`NOTSET` (ce " +"qui entraîne le traitement de tous les messages lorsque l'enregistreur est " +"l'enregistreur racine, ou la délégation au parent lorsque l'enregistreur est " +"un enregistreur non racine). Notez que l'enregistreur racine est créé avec " +"le niveau :const:`WARNING`." #: ../Doc/library/logging.rst:106 msgid "" @@ -178,6 +231,10 @@ msgid "" "NOTSET, its chain of ancestor loggers is traversed until either an ancestor " "with a level other than NOTSET is found, or the root is reached." msgstr "" +"Le terme « délégation au parent » signifie que si un enregistreur a un " +"niveau de ``NOTSET``, sa chaîne d’enregistreurs parents est parcourue " +"jusqu'à ce qu'un parent ayant un niveau autre que ``NOTSET`` soit trouvé, ou " +"que la racine soit atteinte." #: ../Doc/library/logging.rst:110 msgid "" @@ -185,6 +242,10 @@ msgid "" "level is treated as the effective level of the logger where the ancestor " "search began, and is used to determine how a logging event is handled." msgstr "" +"Si un ancêtre est trouvé avec un niveau autre que NOTSET, alors le niveau de " +"ce parent est traité comme le niveau effectif de l'enregistreur où la " +"recherche de l'ancêtre a commencé, et est utilisé pour déterminer comment un " +"événement d'enregistrement est traité." #: ../Doc/library/logging.rst:114 msgid "" @@ -192,10 +253,13 @@ msgid "" "be processed. Otherwise, the root's level will be used as the effective " "level." msgstr "" +"Si la racine est atteinte, et qu'elle a un niveau de NOTSET, alors tous les " +"messages sont traités. Sinon, le niveau de la racine est utilisé comme " +"niveau effectif." #: ../Doc/library/logging.rst:117 ../Doc/library/logging.rst:407 msgid "See :ref:`levels` for a list of levels." -msgstr "" +msgstr "Voir :ref:`levels` pour la liste des niveaux." #: ../Doc/library/logging.rst:119 msgid "" @@ -205,6 +269,12 @@ msgid "" "such as e.g. :meth:`getEffectiveLevel` and :meth:`isEnabledFor` will return/" "expect to be passed integers." msgstr "" +"Le paramètre *level* accepte maintenant une représentation du niveau en " +"chaîne de caractères (comme ``'INFO'``) en alternative aux constantes " +"entières comme :const:`INFO`. Notez, cependant, que les niveaux sont stockés " +"en interne sous forme d'entiers, et des méthodes telles que :meth:" +"`getEffectiveLevel` et :meth:`isEnabledFor` renvoient/s'attendent à recevoir " +"des entiers." #: ../Doc/library/logging.rst:129 msgid "" @@ -222,6 +292,12 @@ msgid "" "`NOTSET` is found, and that value is returned. The value returned is an " "integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc." msgstr "" +"Indique le niveau effectif pour cet enregistreur. Si une valeur autre que :" +"const:`NOTSET` a été définie en utilisant :meth:`setLevel`, elle est " +"renvoyée. Sinon, la hiérarchie est parcourue vers la racine jusqu'à ce " +"qu'une valeur autre que :const:`NOTSET` soit trouvée, et cette valeur est " +"renvoyée. La valeur renvoyée est un entier, généralement l'un de :const:" +"`logging.DEBUG`, :const:`logging.INFO`, etc." #: ../Doc/library/logging.rst:147 msgid "" @@ -231,6 +307,12 @@ msgid "" "ghi')``. This is a convenience method, useful when the parent logger is " "named using e.g. ``__name__`` rather than a literal string." msgstr "" +"Renvoie un enregistreur qui est un enfant de cet enregistreur, tel que " +"déterminé par le suffixe. Ainsi, ``logging.getLogger('abc').getChild('def." +"ghi')`` renvoie le même enregistreur que celui renvoyé par ``logging." +"getLogger('abc.def.ghi')``. C'est une méthode de pure commodité, utile " +"lorsque l’enregistreur parent est nommé en utilisant par exemple " +"``__name__`` plutôt qu'une chaîne de caractères littérale." #: ../Doc/library/logging.rst:158 msgid "" diff --git a/library/lzma.po b/library/lzma.po index 60bacb3be..948f2470e 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/library/lzma.rst:2 msgid ":mod:`lzma` --- Compression using the LZMA algorithm" -msgstr ":mod:`lzma` --- Compression via l'algorithme LZMA" +msgstr ":mod:`lzma` — Compression via l'algorithme LZMA" #: ../Doc/library/lzma.rst:12 msgid "**Source code:** :source:`Lib/lzma.py`" @@ -219,7 +219,7 @@ msgstr "" "Renvoie la donnée en mémoire-tampon sans progression de la position du " "fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " "atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " -"*taille*est ignoré). " +"*taille* est ignoré). " #: ../Doc/library/lzma.rst:114 msgid "" @@ -228,9 +228,9 @@ msgid "" "if the :class:`LZMAFile` was constructed by passing a file object for " "*filename*)." msgstr "" -"Alors que l'exécution de :meth:`peek ne change pas la position du fichier de " -"la classe :class:`LZMAFile`, la position de l'objet sous-jacent peut être " -"modifiée (ex. : si la classe :class:`LZMAFile` est construite en lui " +"Alors que l'exécution de :meth:`peek` ne change pas la position du fichier " +"de la classe :class:`LZMAFile`, la position de l'objet sous-jacent peut " +"être modifiée (ex. : si la classe :class:`LZMAFile` est construite en lui " "transmettant un fichier-objet comme *filename*)." #: ../Doc/library/lzma.rst:119 @@ -242,7 +242,7 @@ msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" -"La méthode :meth:`~io.BufferedIOBase.read` accepte désormais un argument " +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " "``None``." #: ../Doc/library/lzma.rst:131 @@ -282,7 +282,7 @@ msgstr "C'est le format par défaut." #: ../Doc/library/lzma.rst:148 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." -msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma`." +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma``." #: ../Doc/library/lzma.rst:147 msgid "" @@ -507,11 +507,11 @@ msgid "" "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" -"Une *donnée* décompressée (un :term:`bytes-like object`), renvoyant une " -"donnée non compressée sous forme d'octets. Certaines des *data* peuvent être " -"mises en tampon, pour une exploitation ultérieure vers des appels à :meth:" -"`decompress`. Les données renvoyées doivent être concaténés avec la sortie " -"de tous les appels précédents à :meth:`decompress`." +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." #: ../Doc/library/lzma.rst:248 msgid "" @@ -521,12 +521,11 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" -"Si *max_length* n'est pas négatif, il renvoie un maximum de *max_length* " -"octets en données décompressées. Si cette limite est atteinte et que " -"d'autres sorties peuvent être produites, l'attribut :attr:`~.needs_input` " -"sera mis à ``False``. Dans ce cas, le prochain appel à :meth:`~.decompress` " -"peut produire des *data* en tant que ``b''`` pour dégager davantage de " -"sorties." +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." #: ../Doc/library/lzma.rst:255 msgid "" @@ -534,9 +533,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" -"Si toutes les données d'entrée ont été décompressées et renvoyées (soit " -"parce que c'était moins de *max_length* octets, soit parce que *max_length* " -"était négatif), l'attribut :attr:`~.needs_input` sera mis à ``True``." +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." #: ../Doc/library/lzma.rst:260 msgid "" @@ -544,9 +543,9 @@ msgid "" "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" -"Si vous tentez de décompresser des données après la fin du flux, vous " -"obtiendrez une `EOFError`. Toutes les données trouvées en fin de flux seront " -"ignorées et sauvegardées dans l'attribut :attr:`~.unused_data`." +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." @@ -564,7 +563,7 @@ msgstr "" #: ../Doc/library/lzma.rst:275 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "``True`` si le pointeur de fin de flux est atteint." +msgstr "``True`` si le marqueur de fin de flux a été atteint." #: ../Doc/library/lzma.rst:279 msgid "Data found after the end of the compressed stream." @@ -579,8 +578,8 @@ msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" -"``False`` si la méthode :meth:`.decompress` produit plus de données " -"décompressées avant de requérir davantage de flux non compressé." +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." #: ../Doc/library/lzma.rst:292 msgid "" diff --git a/library/macpath.po b/library/macpath.po index 161d7a196..d87a6a45a 100644 --- a/library/macpath.po +++ b/library/macpath.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/macpath.rst:2 msgid ":mod:`macpath` --- Mac OS 9 path manipulation functions" -msgstr ":mod:`macpath` --- Fonctions de manipulation de chemins pour Mac OS 9" +msgstr ":mod:`macpath` — Fonctions de manipulation de chemins pour Mac OS 9" #: ../Doc/library/macpath.rst:7 msgid "**Source code:** :source:`Lib/macpath.py`" diff --git a/library/math.po b/library/math.po index 3b9ea0acc..540166422 100644 --- a/library/math.po +++ b/library/math.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/math.rst:2 msgid ":mod:`math` --- Mathematical functions" -msgstr "Fonctions mathématiques --- :mod:`math`" +msgstr "Fonctions mathématiques — :mod:`math`" #: ../Doc/library/math.rst:13 msgid "" @@ -40,15 +40,16 @@ msgid "" "of the unexpected complex number used as a parameter, so that the programmer " "can determine how and why it was generated in the first place." msgstr "" -"Ces fonctions ne peuvent être utilisées avec les nombres complexes, utilisez " -"les fonctions du même nom du module :mod:`cmath` si vous souhaitez un " -"support des nombres complexes. La distinction entre les fonctions supportant " -"les nombres complexes et celles ne les supportant pas set née du fait que " -"tous les utilisateurs ne désirent pas acquérir le niveau mathématique " -"suffisant pour comprendre les nombres complexes. Recevoir une exception à la " -"place d'un nombre complexe permet de détecter un nombre complexe non désiré " -"en paramètre, ainsi le programmeur peut déterminer comment et pourquoi il a " -"été généré." +"Ces fonctions ne peuvent pas être utilisées avec les nombres complexes ; si " +"vous avez besoin de la prise en charge des nombres complexes, utilisez les " +"fonctions du même nom du module :mod:`cmath`. La séparation entre les " +"fonctions qui gèrent les nombres complexes et les autres vient du constat " +"que tous les utilisateurs ne souhaitent pas acquérir le niveau mathématique " +"nécessaire à la compréhension des nombres complexes. Recevoir une exception " +"plutôt qu'un nombre complexe en retour d'une fonction permet au programmeur " +"de déterminer immédiatement comment et pourquoi ce nombre a été généré, " +"avant que celui-ci ne soit passé involontairement en paramètre d'une autre " +"fonction. " #: ../Doc/library/math.rst:25 msgid "" @@ -68,8 +69,8 @@ msgid "" "*x*. If *x* is not a float, delegates to ``x.__ceil__()``, which should " "return an :class:`~numbers.Integral` value." msgstr "" -"Renvoie la fonction *plafond* de *x*, le plus petit entier plus grand ou " -"égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " +"Renvoie la partie entière par excès de *x*, le plus petit entier supérieur " +"ou égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " "renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:41 @@ -79,8 +80,8 @@ msgid "" "returns *-1.0*." msgstr "" "Renvoie un flottant contenant la magnitude (valeur absolue) de *x* mais avec " -"le signe de *y*. Sur les plate-formes supportant les zéros signés, " -"``copysign(1.0, -0.0)`` renvoie *-1.0*." +"le signe de *y*. Sur les plates-formes prenant en charge les zéros signés, " +"``copysign(1.0, -0.0)`` renvoie ``-1.0``." #: ../Doc/library/math.rst:47 msgid "Return the absolute value of *x*." @@ -100,9 +101,9 @@ msgid "" "*x* is not a float, delegates to ``x.__floor__()``, which should return an :" "class:`~numbers.Integral` value." msgstr "" -"Renvoie le plancher de *x*, le plus grand entier plus petit ou égal à *x*. " -"Si *x* n'est pas un flottant, délègue à ``x.__floor()__``, qui doit renvoyer " -"une valeur :class:`~numbers.Integral`." +"Renvoie la partie entière (par défaut) de *x*, le plus grand entier " +"inférieur ou égal à *x*. Si *x* n'est pas un flottant, délègue à ``x." +"__floor()__``, qui doit renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:63 msgid "" @@ -130,8 +131,9 @@ msgstr "" "résultat de l'expression Python ``-1e-100 % 1e100`` est ``1e100-1e-100``, " "qui ne peut pas être représenté exactement par un flottant et donc qui est " "arrondi à ``1e100``. Pour cette raison, la fonction :func:`fmod` est " -"généralement préférée quand des flottants sont manipulés, alors que " -"l'expression Python ``x % y`` est préféré quand des entiers sont manipulés." +"généralement privilégiée quand des flottants sont manipulés, alors que " +"l'expression Python ``x % y`` est privilégiée quand des entiers sont " +"manipulés." #: ../Doc/library/math.rst:78 msgid "" @@ -152,7 +154,7 @@ msgid "" "loss of precision by tracking multiple intermediate partial sums::" msgstr "" "Renvoie une somme flottante exacte des valeurs dans l'itérable. Évite la " -"perte de précision en gardant plusieurs sommes partielles intermédiaires : ::" +"perte de précision en gardant plusieurs sommes partielles intermédiaires ::" #: ../Doc/library/math.rst:94 msgid "" @@ -162,8 +164,8 @@ msgid "" "occasionally double-round an intermediate sum causing it to be off in its " "least significant bit." msgstr "" -"L'exactitude de cet algorithme dépend des garanties arithmétiques de " -"IEEE-754 et des cas typiques où le mode d'arrondi est *half-even*. Sur " +"La précision de cet algorithme dépend des garanties arithmétiques de " +"IEEE-754 et des cas standards où le mode d'arrondi est *half-even*. Sur " "certaines versions non Windows, la bibliothèque C sous-jacente utilise une " "addition par précision étendue et peut occasionnellement effectuer un double-" "arrondi sur une somme intermédiaire causant la prise d'une mauvaise valeur " @@ -185,9 +187,9 @@ msgid "" "*a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest " "positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns ``0``." msgstr "" -"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si soit *a* ou " -"*b* est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand " -"entier positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." +"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si *a* ou *b* " +"est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand entier " +"positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." #: ../Doc/library/math.rst:117 msgid "" @@ -202,8 +204,8 @@ msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." msgstr "" -"Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " -"absolues et relatives données en paramètres." +"Déterminer si deux valeurs sont considérées comme « proches » se fait à " +"l'aide des tolérances absolues et relatives passées en paramètres." #: ../Doc/library/math.rst:123 msgid "" @@ -213,7 +215,7 @@ msgid "" "tolerance is ``1e-09``, which assures that the two values are the same " "within about 9 decimal digits. *rel_tol* must be greater than zero." msgstr "" -"*rel_tol* est la tolérance relative -- c'est la différence maximale permise " +"*rel_tol* est la tolérance relative — c'est la différence maximale permise " "entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " "exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " "tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " @@ -225,7 +227,7 @@ msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." msgstr "" -"*abs_tol* est la tolérance absolue minimale -- utile pour les comparaisons " +"*abs_tol* est la tolérance absolue minimale — utile pour les comparaisons " "proches de zéro. *abs_tol* doit valoir au moins zéro." #: ../Doc/library/math.rst:132 @@ -246,12 +248,12 @@ msgstr "" "Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " "dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " "En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " -"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" +"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérées proches que d'elles-" "mêmes." #: ../Doc/library/math.rst:144 msgid ":pep:`485` -- A function for testing approximate equality" -msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" +msgstr ":pep:`485` — Une fonction pour tester des quasi-égalités" #: ../Doc/library/math.rst:149 msgid "" @@ -259,7 +261,7 @@ msgid "" "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" "Renvoie ``True`` si *n* n'est ni infini, ni NaN, et ``False`` sinon. (Notez " -"que ``0.0`` *est* considéré fini.)" +"que ``0.0`` *est* considéré comme fini.)" #: ../Doc/library/math.rst:157 msgid "" @@ -288,7 +290,7 @@ msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." msgstr "" -"Renvoie les parties entières et fractionnelle de *x*. Les deux résultats ont " +"Renvoie les parties entière et fractionnelle de *x*. Les deux résultats ont " "le signe de *x* et sont flottants." #: ../Doc/library/math.rst:180 @@ -309,10 +311,9 @@ msgid "" "'output parameter' (there is no such thing in Python)." msgstr "" "Notez que les fonctions :func:`frexp` et :func:`modf` ont un système d'appel " -"différent de leur homologue C : elles prennent un simple argument et " -"renvoient une paire de valeurs au lieu de renvoyer leur seconde valeur de " -"retour dans un 'paramètre de sortie' (il n'y a pas de telle possibilité en " -"Python)." +"différent de leur homologue C : elles prennent un seul argument et renvoient " +"une paire de valeurs au lieu de placer la seconde valeur de retour dans un " +"*paramètre de sortie* (cela n'existe pas en Python)." #: ../Doc/library/math.rst:190 msgid "" @@ -324,7 +325,7 @@ msgid "" msgstr "" "Pour les fonctions :func:`ceil`, :func:`floor`, et :func:`modf`, notez que " "*tous* les nombres flottants de magnitude suffisamment grande sont des " -"entiers exacts. Les flottants de Python n'ont typiquement pas plus de 53 " +"entiers exacts. Les flottants de Python n'ont généralement pas plus de 53 " "*bits* de précision (tels que le type C ``double`` de la plate-forme), en " "quel cas tout flottant *x* tel que ``abs(x) >= 2**52`` n'a aucun *bit* " "fractionnel." @@ -374,7 +375,7 @@ msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" -"Renvoie le logarithme en base 2 de *x*. C'est habituellement plus exact que " +"Renvoie le logarithme en base 2 de *x*. C'est en général plus précis que " "``log(x, 2)``." #: ../Doc/library/math.rst:244 @@ -468,7 +469,7 @@ msgstr "" #: ../Doc/library/math.rst:314 msgid "Return the sine of *x* radians." -msgstr "Renvoie le sinus de*x* radians." +msgstr "Renvoie le sinus de *x* radians." #: ../Doc/library/math.rst:319 msgid "Return the tangent of *x* radians." @@ -496,9 +497,9 @@ msgid "" "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" -"`Hyperbolic functions `_ " -"sont analogues à des fonctions trigonométriques qui sont basés sur des " -"hyperboles au lieu de cercles." +"`Les fonctions hyperboliques `_ sont analogues à des fonctions trigonométriques qui " +"sont basées sur des hyperboles au lieu de cercles." #: ../Doc/library/math.rst:343 msgid "Return the inverse hyperbolic cosine of *x*." @@ -545,7 +546,7 @@ msgstr "" "La fonction :func:`erf` peut être utilisée pour calculer des fonctions " "statistiques usuelles telles que la `répartition de la loi normale `_ : ::" +"A9partition>`_ ::" #: ../Doc/library/math.rst:392 msgid "" @@ -557,9 +558,9 @@ msgid "" msgstr "" "Renvoie la fonction d'erreur complémentaire en *x*. La `fonction d'erreur " "complémentaire `_ est " -"définie par ``1.0 - erf(x)``. C'est utilisé pour de grandes valeurs de *x* " -"où une soustraction d'un causerait une `perte de précision `_\\." +"définie par ``1.0 - erf(x)``. Elle est utilisée pour les grandes valeurs de " +"*x*, où la soustraction en partant de 1,0 entraînerait une `perte de " +"précision `_\\." #: ../Doc/library/math.rst:403 msgid "" @@ -641,8 +642,8 @@ msgstr "" "les opérations invalides telles que ``sqrt(-1.0)`` ou ``log(0.0)`` (où le " "standard C99 recommande de signaler que l'opération est invalide ou qu'il y " "a division par zéro), et une :exc:`OverflowError` pour les résultats qui " -"débordent (par exemple ``exp(1000.0)``). *NaN* ne sera renvoyé pour toute " -"les fonctions ci-dessus sauf si au moins un des arguments de la fonction " +"débordent (par exemple ``exp(1000.0)``). *NaN* ne sera renvoyé pour aucune " +"des fonctions ci-dessus, sauf si au moins un des arguments de la fonction " "vaut *NaN*. Dans ce cas, la plupart des fonctions renvoient *NaN*, mais (à " "nouveau, selon l'annexe 'F' du standard C99) il y a quelques exceptions à " "cette règle, par exemple ``pow(float('nan'), 0.0)`` ou ``hypot(float('nan'), " @@ -656,7 +657,7 @@ msgid "" msgstr "" "Notez que Python ne fait aucun effort pour distinguer les NaNs signalétiques " "des NaNs silencieux, et le comportement de signalement des NaNs reste non-" -"spécifié. le comportement typique est de traiter tous les NaNs comme s'ils " +"spécifié. Le comportement standard est de traiter tous les NaNs comme s'ils " "étaient silencieux." #: ../Doc/library/math.rst:476 diff --git a/library/mimetypes.po b/library/mimetypes.po index 8fa8b621f..58417f945 100644 --- a/library/mimetypes.po +++ b/library/mimetypes.po @@ -186,7 +186,7 @@ msgstr "" #: ../Doc/library/mimetypes.rst:152 msgid "An example usage of the module::" -msgstr "Un exemple d'utilisation du module : ::" +msgstr "Un exemple d'utilisation du module ::" #: ../Doc/library/mimetypes.rst:169 msgid "MimeTypes Objects" diff --git a/library/modulefinder.po b/library/modulefinder.po index fde16057a..7d4cd2d4d 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/modulefinder.rst:2 msgid ":mod:`modulefinder` --- Find modules used by a script" -msgstr ":mod:`modulefinder` --- Identifie les modules utilisés par un script" +msgstr ":mod:`modulefinder` — Identifie les modules utilisés par un script" #: ../Doc/library/modulefinder.rst:9 msgid "**Source code:** :source:`Lib/modulefinder.py`" @@ -111,4 +111,4 @@ msgstr "Le script qui va afficher le rapport de *bacon.py* ::" #: ../Doc/library/modulefinder.rst:94 msgid "Sample output (may vary depending on the architecture)::" -msgstr "Exemple de sortie (peut varier en fonction de l'architecture) : ::" +msgstr "Exemple de sortie (peut varier en fonction de l'architecture) ::" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 70123ec01..ea4bf192d 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -71,7 +71,7 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:40 msgid "will print to standard output ::" -msgstr "affiche sur la sortie standard : ::" +msgstr "affiche sur la sortie standard ::" #: ../Doc/library/multiprocessing.rst:46 msgid "The :class:`Process` class" @@ -87,14 +87,14 @@ msgstr "" "Dans le module :mod:`multiprocessing`, les processus sont instanciés en " "créant un objet :class:`Process` et en appelant sa méthode :meth:`~Process." "start`. La classe :class:`Process` suit la même API que :class:`threading." -"Thread`. Un exemple trivial d'un programme multi-processus est : ::" +"Thread`. Un exemple trivial d'un programme multi-processus est ::" #: ../Doc/library/multiprocessing.rst:63 msgid "" "To show the individual process IDs involved, here is an expanded example::" msgstr "" "Pour afficher les IDs des processus impliqués, voici un exemple plus " -"étoffé : ::" +"étoffé ::" #: ../Doc/library/multiprocessing.rst:84 msgid "" @@ -226,7 +226,7 @@ msgid "" msgstr "" "Pour sélectionner une méthode de démarrage, utilisez la fonction :func:" "`set_start_method` dans la clause ``if __name__ == '__main__'`` du module " -"principal. Par exemple : ::" +"principal. Par exemple ::" #: ../Doc/library/multiprocessing.rst:159 msgid "" @@ -289,7 +289,7 @@ msgid "" "example::" msgstr "" "La classe :class:`Queue` est un clone assez proche de :class:`queue.Queue`. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/library/multiprocessing.rst:213 msgid "Queues are thread and process safe." @@ -299,7 +299,7 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:215 msgid "**Pipes**" -msgstr "**Pipes**" +msgstr "**Tubes** (*pipes*)" #: ../Doc/library/multiprocessing.rst:217 msgid "" @@ -307,7 +307,7 @@ msgid "" "a pipe which by default is duplex (two-way). For example::" msgstr "" "La fonction :func:`Pipe` renvoie une paire d'objets de connexion connectés à " -"un tube qui est par défaut à double-sens. Par exemple : ::" +"un tube qui est par défaut à double-sens. Par exemple ::" #: ../Doc/library/multiprocessing.rst:233 msgid "" @@ -339,7 +339,7 @@ msgstr "" ":mod:`multiprocessing` contient des équivalents à toutes les primitives de " "synchronisation de :mod:`threading`. Par exemple il est possible d'utiliser " "un verrou pour s'assurer qu'un seul processus à la fois écrit sur la sortie " -"standard : ::" +"standard ::" #: ../Doc/library/multiprocessing.rst:264 msgid "" @@ -381,12 +381,12 @@ msgid "" "`Array`. For example, the following code ::" msgstr "" "Les données peuvent être stockées dans une mémoire partagée en utilisant " -"des :class:`Value` ou des :class:`Array`. Par exemple, le code suivant : ::" +"des :class:`Value` ou des :class:`Array`. Par exemple, le code suivant ::" #: ../Doc/library/multiprocessing.rst:301 #: ../Doc/library/multiprocessing.rst:347 msgid "will print ::" -msgstr "affiche : ::" +msgstr "affiche ::" #: ../Doc/library/multiprocessing.rst:306 msgid "" @@ -490,7 +490,7 @@ msgstr "" "importable par les fils. Cela est expliqué sur la page :ref:`multiprocessing-" "programming`, il est cependant utile de le rappeler ici. Cela signifie que " "certains exemples, comme les exemples utilisant :class:`multiprocessing.pool." -"Pool`, ne fonctionnent pas dans l'interpréteur interactif. Par exemple : ::" +"Pool`, ne fonctionnent pas dans l'interpréteur interactif. Par exemple ::" #: ../Doc/library/multiprocessing.rst:436 msgid "" @@ -1241,7 +1241,7 @@ msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." #: ../Doc/library/multiprocessing.rst:844 msgid "Remove and return an item from the queue." -msgstr "Supprime et donne un élément de la queue." +msgstr "Supprime et renvoie un élément de la queue." #: ../Doc/library/multiprocessing.rst:848 msgid "Put *item* into the queue." @@ -1369,7 +1369,7 @@ msgid "" "'__main__'`` line of the main module. For example::" msgstr "" "Cette fonction doit être appelée juste après la ligne ``if __name__ == " -"'__main__'`` du module principal. Par exemple : ::" +"'__main__'`` du module principal. Par exemple ::" #: ../Doc/library/multiprocessing.rst:929 msgid "" @@ -1459,7 +1459,7 @@ msgid "" msgstr "" "Définit le chemin de l'interpréteur Python à utiliser pour démarrer un " "processus fils. (Par défaut :data:`sys.executable` est utilisé). Les " -"intégrateurs devront probablement faire quelque chose comme : ::" +"intégrateurs devront probablement faire quelque chose comme ::" #: ../Doc/library/multiprocessing.rst:982 msgid "before they can create child processes." @@ -1682,7 +1682,7 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:1107 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/multiprocessing.rst:1131 msgid "" @@ -2104,7 +2104,7 @@ msgstr "" "`Lock` ou :class:`RLock` alors il sera utilisé pour synchroniser l'accès à " "la valeur. Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " "automatiquement protégé par un verrou, donc il ne sera pas forcément " -"« *process-safe* »" +"« *process-safe* »." #: ../Doc/library/multiprocessing.rst:1359 msgid "" @@ -2115,7 +2115,7 @@ msgstr "" "Les opérations telles que ``+=`` qui impliquent une lecture et une écriture " "ne sont pas atomique. Ainsi si vous souhaitez par exemple réaliser une " "incrémentation atomique sur une valeur partagée, vous ne pouvez pas " -"simplement faire : ::" +"simplement faire ::" #: ../Doc/library/multiprocessing.rst:1365 msgid "" @@ -2123,7 +2123,7 @@ msgid "" "instead do ::" msgstr "" "En supposant que le verrou associé est récursif (ce qui est le cas par " -"défaut), vous pouvez à la place faire : ::" +"défaut), vous pouvez à la place faire ::" #: ../Doc/library/multiprocessing.rst:1371 #: ../Doc/library/multiprocessing.rst:1461 @@ -2169,7 +2169,7 @@ msgstr "" "class:`RLock` alors il sera utilisé pour synchroniser l'accès à la valeur. " "Si *lock* vaut ``False``, l'accès à l'objet renvoyé ne sera pas " "automatiquement protégé par un verrou, donc il ne sera pas forcément " -"« *process-safe* »" +"« *process-safe* »." #: ../Doc/library/multiprocessing.rst:1392 msgid "Note that *lock* is a keyword only argument." @@ -2206,11 +2206,11 @@ msgid "" "second process and trying to dereference the pointer from the second process " "may cause a crash." msgstr "" -"Bien qu'il soit possible de stocker un pointeur dans une mémoire partagée, " -"souvenez-vous qu'il référencera un emplacement dans l'espace d'adressage " -"d'un processus particulier. Ainsi, le pointeur risque d'être invalide dans " -"le contexte d'un second processus et déréférencer le pointeur depuis ce " -"second processus pourrait causer un crash." +"Bien qu'il soit possible de stocker un pointeur en mémoire partagée, " +"rappelez-vous qu'un pointer référence un emplacement dans l'espace " +"d'adressage d'un processus particulier. Ainsi, ce pointeur a de fortes " +"chances d'être invalide dans le contexte d'un autre processus et " +"déréférencer le pointeur depuis ce second processus peut causer un plantage." #: ../Doc/library/multiprocessing.rst:1418 msgid "Return a ctypes array allocated from shared memory." @@ -2230,7 +2230,7 @@ msgstr "" "éléments du tableau (*typecode*) tel qu'utilisé par le module :mod:`array`. " "Si *size_or_initialize* est un entier, alors il détermine la taille du " "tableau, et le tableau sera initialisé avec des zéros. Autrement, " -"*size*or_initializer* est une séquence qui sera utilisée pour initialiser le " +"*size_or_initializer* est une séquence qui sera utilisée pour initialiser le " "tableau et dont la taille détermine celle du tableau." #: ../Doc/library/multiprocessing.rst:1427 @@ -2292,7 +2292,7 @@ msgstr "" "`~multiprocessing.Lock` ou :class:`~multiprocessing.RLock` alors il sera " "utilisé pour synchroniser l'accès à la valeur. Si *lock* vaut ``False``, " "l'accès à l'objet renvoyé ne sera pas automatiquement protégé par un verrou, " -"donc il ne sera pas forcément « *process-safe* »" +"donc il ne sera pas forcément « *process-safe* »." #: ../Doc/library/multiprocessing.rst:1465 msgid "" @@ -2422,7 +2422,7 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:1552 msgid "The results printed are ::" -msgstr "Les résultats affichés sont ::" +msgstr "Les résultats affichés sont ::" #: ../Doc/library/multiprocessing.rst:1565 msgid "Managers" @@ -2974,11 +2974,11 @@ msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" "Si ``proxy`` est un mandataire sont le référent est ``obj``, alors " -"l'expression ::" +"l'expression ::" #: ../Doc/library/multiprocessing.rst:1988 msgid "will evaluate the expression ::" -msgstr "s'évalue comme ::" +msgstr "s'évalue comme ::" #: ../Doc/library/multiprocessing.rst:1992 msgid "in the manager's process." @@ -3392,9 +3392,10 @@ msgid "" msgstr "" "Cependant, le module :mod:`multiprocessing.connection` permet un peu plus de " "flexibilité. Il fournit un message de plus haut-niveau orienté API pour " -"traiter des *sockets* ou des tubes nommés sous Windows. Il supporte aussi la " -"*digest authentication* en utilisant le module :mod:`hmac`, et pour " -"interroger de multiples connexions en même temps." +"gérer des connecteurs ou des tubes nommés sous Windows. Il gère aussi " +"l'authentification par condensat (*digest authentication* en anglais) en " +"utilisant le module :mod:`hmac`, et pour interroger de multiples connexions " +"en même temps." #: ../Doc/library/multiprocessing.rst:2274 msgid "" @@ -3468,15 +3469,15 @@ msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." msgstr "" -"Un *wrapper* sur une *socket* liée ou un tube nommé sous Windows qui écoute " -"pour des connexions." +"Une enveloppe autour d'un connecteur lié ou un tube nommé sous Windows qui " +"écoute pour des connexions." #: ../Doc/library/multiprocessing.rst:2309 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." msgstr "" -"*address* est l'adresse à utiliser par la *socket* liée ou le tube nommé de " +"*address* est l'adresse à utiliser par le connecteur lié ou le tube nommé de " "l'objet auditeur." #: ../Doc/library/multiprocessing.rst:2314 @@ -3502,15 +3503,15 @@ msgid "" "then the socket will be created in a private temporary directory created " "using :func:`tempfile.mkstemp`." msgstr "" -"*family* est le type de *socket* (ou tube nommé) à utiliser. Cela peut être " -"l'une des chaînes ``'AF_INET'`` (pour une *socket* TCP), ``'AF_UNIX'`` (pour " -"une *socket* Unix) ou ``'AF_PIPE'`` (pour un tube nommé sous Windows). " -"Seulement la première d'entre elles est garantie d'être disponible. Si " +"*family* est le type de connecteur (ou tube nommé) à utiliser. Cela peut " +"être l'une des chaînes ``'AF_INET'`` (pour un connecteur TCP), ``'AF_UNIX'`` " +"(pour un connecteur Unix) ou ``'AF_PIPE'`` (pour un tube nommé sous " +"Windows). Seulement le premier d'entre eux est garanti d'être disponible. Si " "*family* est ``None``, la famille est inférée depuis le format d'*address*. " "Si *address* est aussi ``None``, la famille par défaut est utilisée. La " "famille par défaut est supposée être la plus rapide disponible. Voir :ref:" "`multiprocessing-address-formats`. Notez que si la *family* est " -"``'AF_UNIX'`` et qu'*address* est ``None``, la *socket* est créée dans un " +"``'AF_UNIX'`` et qu'*address* est ``None``, le connecteur est créé dans un " "répertoire temporaire privé créé avec :func:`tempfile.mkstemp`." #: ../Doc/library/multiprocessing.rst:2329 @@ -3519,9 +3520,9 @@ msgid "" "to the :meth:`~socket.socket.listen` method of the socket once it has been " "bound." msgstr "" -"Si l'objet auditeur utilise une *socket* alors *backlog* (1 par défaut) es " -"passé à la méthode :meth:`~socket.socket.listen` de la *socket* une fois " -"qu'elle a été liée." +"Si l'objet auditeur utilise un connecteur alors *backlog* (1 par défaut) est " +"passé à la méthode :meth:`~socket.socket.listen` du connecteur une fois " +"qu'il a été lié." #: ../Doc/library/multiprocessing.rst:2341 msgid "" @@ -3529,7 +3530,7 @@ msgid "" "and return a :class:`~Connection` object. If authentication is attempted and " "fails, then :exc:`~multiprocessing.AuthenticationError` is raised." msgstr "" -"Accepte une connexion sur la *socket* liée ou le tube nommé de l'objet " +"Accepte une connexion sur le connecteur lié ou le tube nommé de l'objet " "auditeur et renvoie un objet :class:`~Connection`. Si la tentative " "d'authentification échoue, une :exc:`~multiprocessing.AuthenticationError` " "est levée." @@ -3540,7 +3541,7 @@ msgid "" "automatically when the listener is garbage collected. However it is " "advisable to call it explicitly." msgstr "" -"Ferme la *socket* liée ou le tube nommé de l'objet auditeur. La méthode est " +"Ferme le connecteur lié ou le tube nommé de l'objet auditeur. La méthode est " "appelée automatiquement quand l'auditeur est collecté par le ramasse-" "miettes. Il est cependant conseillé de l'appeler explicitement." @@ -3615,8 +3616,8 @@ msgid "" "A connection or socket object is ready when there is data available to be " "read from it, or the other end has been closed." msgstr "" -"Une connexion ou une *socket* est prête quand il y a des données disponibles " -"en lecture dessus, ou que l'autre bout a été fermé." +"Une connexion (*socket* en anglais) est prête quand il y a des données " +"disponibles en lecture dessus, ou que l'autre bout a été fermé." #: ../Doc/library/multiprocessing.rst:2387 msgid "" @@ -3639,12 +3640,12 @@ msgid "" "meth:`fileno` method which returns a socket handle or pipe handle. (Note " "that pipe handles and socket handles are **not** waitable handles.)" msgstr "" -"**Windows**: Un élément d'*object_list* doit être soit un identifiant " +"**Windows** : un élément d'*object_list* doit être soit un identifiant " "*waitable* (en accord avec la définition utilisée par la documentation de la " -"fonction Win32 ``WaitForMultipleObjects()``) soit un objet avec une méthode :" -"meth:`fileno` qui retourne un identifiant de *socket* ou de tube. (Notez que " -"les identifiants de tubes et de *sockets* **ne sont pas** des identifiants " -"*waitables*.)" +"fonction Win32 ``WaitForMultipleObjects()``), soit un objet avec une " +"méthode :meth:`fileno` qui renvoie un identifiant de connecteur ou de tube " +"(notez que les identifiants de tubes et de connecteurs **ne sont pas** des " +"identifiants *waitables*)." #: ../Doc/library/multiprocessing.rst:2403 msgid "**Examples**" @@ -4074,11 +4075,11 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:2693 msgid "So for instance ::" -msgstr "Donc par exemple ::" +msgstr "Donc par exemple ::" #: ../Doc/library/multiprocessing.rst:2705 msgid "should be rewritten as ::" -msgstr "devrait être réécrit comme ::" +msgstr "devrait être réécrit comme ::" #: ../Doc/library/multiprocessing.rst:2717 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" diff --git a/library/netrc.po b/library/netrc.po index 146899c72..3cb33fa80 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/netrc.rst:3 msgid ":mod:`netrc` --- netrc file processing" -msgstr ":mod:`netrc` --- traitement de fichier *netrc*" +msgstr ":mod:`netrc` — traitement de fichier *netrc*" #: ../Doc/library/netrc.rst:11 msgid "**Source code:** :source:`Lib/netrc.py`" @@ -62,7 +62,7 @@ msgid "" msgstr "" "Exception levée par la classe :class:`~netrc.netrc` lorsque des erreurs " "syntaxiques sont rencontrées dans le texte source. Les instances de cette " -"exception fournissent trois attributs intéressants : :attr:`msg` est une " +"exception fournissent trois attributs intéressants : :attr:`msg` est une " "explication textuelle de l'erreur, :attr:`filename` est le nom du fichier " "source et :attr:`lineno` donne le numéro de la ligne sur laquelle l'erreur a " "été trouvée." @@ -73,7 +73,7 @@ msgstr "Objets *netrc*" #: ../Doc/library/netrc.rst:50 msgid "A :class:`~netrc.netrc` instance has the following methods:" -msgstr "Une instance :class:`~netrc.netrc` a les méthodes suivantes :" +msgstr "Une instance :class:`~netrc.netrc` a les méthodes suivantes :" #: ../Doc/library/netrc.rst:55 msgid "" @@ -100,7 +100,7 @@ msgstr "" msgid "Instances of :class:`~netrc.netrc` have public instance variables:" msgstr "" "Les instances de :class:`~netrc.netrc` ont des variables d'instance " -"publiques :" +"publiques :" #: ../Doc/library/netrc.rst:71 msgid "" diff --git a/library/nis.po b/library/nis.po index 67c868a16..0cf2a7ad8 100644 --- a/library/nis.po +++ b/library/nis.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/nis.rst:3 msgid ":mod:`nis` --- Interface to Sun's NIS (Yellow Pages)" -msgstr ":mod:`nis` --- Interface à Sun's NIS (pages jaunes)" +msgstr ":mod:`nis` — Interface à Sun's NIS (pages jaunes)" #: ../Doc/library/nis.rst:14 msgid "" diff --git a/library/nntplib.po b/library/nntplib.po index 3d9b94595..2f0596627 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -73,7 +73,7 @@ msgstr "" #: ../Doc/library/nntplib.rst:86 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/nntplib.rst:91 msgid "" @@ -527,7 +527,7 @@ msgstr "" #: ../Doc/library/nntplib.rst:550 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" #: ../Doc/library/nntplib.rst:552 msgid "The module also defines the following utility function:" diff --git a/library/numbers.po b/library/numbers.po index 3035b0c9f..13024e337 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -118,7 +118,7 @@ msgstr "" #: ../Doc/library/numbers.rst:68 ../Doc/library/numbers.rst:72 msgid "Abstract." -msgstr "Résumé." +msgstr "Abstrait." #: ../Doc/library/numbers.rst:77 msgid "" diff --git a/library/operator.po b/library/operator.po index 2034a83f2..aa4efa8ae 100644 --- a/library/operator.po +++ b/library/operator.po @@ -292,7 +292,7 @@ msgstr "" #: ../Doc/library/operator.rst:270 ../Doc/library/operator.rst:302 #: ../Doc/library/operator.rst:348 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" #: ../Doc/library/operator.rst:293 msgid "" @@ -756,7 +756,7 @@ msgstr "``eq(a, b)``" #: ../Doc/library/operator.rst:431 msgid "Difference" -msgstr "Différence" +msgstr "Inégalité" #: ../Doc/library/operator.rst:431 msgid "``a != b``" @@ -832,58 +832,58 @@ msgstr "" #: ../Doc/library/operator.rst:474 msgid "``a = iadd(a, b)`` is equivalent to ``a += b``." -msgstr "``a = iadd(a, b)`` is equivalent to ``a += b``." +msgstr "``a = iadd(a, b)`` équivaut à ``a += b``." #: ../Doc/library/operator.rst:480 msgid "``a = iand(a, b)`` is equivalent to ``a &= b``." -msgstr "``a = iand(a, b)`` is equivalent to ``a &= b``." +msgstr "``a = iand(a, b)`` équivaut à ``a &= b``." #: ../Doc/library/operator.rst:486 msgid "" "``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." msgstr "" -"``a = iconcat(a, b)`` is equivalent to ``a += b`` for *a* and *b* sequences." +"``a = iconcat(a, b)`` équivaut à ``a += b`` où *a* et *b* sont des séquences." #: ../Doc/library/operator.rst:492 msgid "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." -msgstr "``a = ifloordiv(a, b)`` is equivalent to ``a //= b``." +msgstr "``a = ifloordiv(a, b)``équivaut à ``a //= b``." #: ../Doc/library/operator.rst:498 msgid "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." -msgstr "``a = ilshift(a, b)`` is equivalent to ``a <<= b``." +msgstr "``a = ilshift(a, b)`` équivaut à ``a <<= b``." #: ../Doc/library/operator.rst:504 msgid "``a = imod(a, b)`` is equivalent to ``a %= b``." -msgstr "``a = imod(a, b)`` is equivalent to ``a %= b``." +msgstr "``a = imod(a, b)`` équivaut à ``a %= b``." #: ../Doc/library/operator.rst:510 msgid "``a = imul(a, b)`` is equivalent to ``a *= b``." -msgstr "``a = imul(a, b)`` is equivalent to ``a *= b``." +msgstr "``a = imul(a, b)`` équivaut à ``a *= b``." #: ../Doc/library/operator.rst:516 msgid "``a = imatmul(a, b)`` is equivalent to ``a @= b``." -msgstr "``a = imatmul(a, b)`` is equivalent to ``a @= b``." +msgstr "``a = imatmul(a, b)`` équivaut à ``a @= b``." #: ../Doc/library/operator.rst:524 msgid "``a = ior(a, b)`` is equivalent to ``a |= b``." -msgstr "``a = ior(a, b)`` is equivalent to ``a |= b``." +msgstr "``a = ior(a, b)`` équivaut à ``a |= b``." #: ../Doc/library/operator.rst:530 msgid "``a = ipow(a, b)`` is equivalent to ``a **= b``." -msgstr "``a = ipow(a, b)`` is equivalent to ``a **= b``." +msgstr "``a = ipow(a, b)`` équivaut à ``a **= b``." #: ../Doc/library/operator.rst:536 msgid "``a = irshift(a, b)`` is equivalent to ``a >>= b``." -msgstr "``a = irshift(a, b)`` is equivalent to ``a >>= b``." +msgstr "``a = irshift(a, b)`` équivaut à ``a >>= b``." #: ../Doc/library/operator.rst:542 msgid "``a = isub(a, b)`` is equivalent to ``a -= b``." -msgstr "``a = isub(a, b)`` is equivalent to ``a -= b``." +msgstr "``a = isub(a, b)`` équivaut à ``a -= b``." #: ../Doc/library/operator.rst:548 msgid "``a = itruediv(a, b)`` is equivalent to ``a /= b``." -msgstr "``a = itruediv(a, b)`` is equivalent to ``a /= b``." +msgstr "``a = itruediv(a, b)`` équivaut à ``a /= b``." #: ../Doc/library/operator.rst:554 msgid "``a = ixor(a, b)`` is equivalent to ``a ^= b``." -msgstr "``a = ixor(a, b)`` is equivalent to ``a ^= b``." +msgstr "``a = ixor(a, b)`` équivaut à ``a ^= b``." diff --git a/library/os.path.po b/library/os.path.po index 4bb60eb86..3e2cafd68 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -26,6 +26,8 @@ msgid "" "**Source code:** :source:`Lib/posixpath.py` (for POSIX), :source:`Lib/ntpath." "py` (for Windows NT), and :source:`Lib/macpath.py` (for Macintosh)" msgstr "" +"**Code source :** :source:`Lib/posixpath.py` (pour POSIX), :source:`Lib/" +"ntpath.py` (pour Windows NT), et :source:`Lib/macpath.py` (pour Macintosh)" #: ../Doc/library/os.path.rst:15 msgid "" @@ -112,7 +114,7 @@ msgstr ":mod:`ntpath` pour les chemins Windows" #: ../Doc/library/os.path.rst:55 msgid ":mod:`macpath` for old-style MacOS paths" -msgstr "" +msgstr ":mod:`macpath` pour l'ancienne forme des chemins MacOS" #: ../Doc/library/os.path.rst:60 msgid "" diff --git a/library/os.po b/library/os.po index c0f67454d..177fdbcb4 100644 --- a/library/os.po +++ b/library/os.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/os.rst:2 msgid ":mod:`os` --- Miscellaneous operating system interfaces" -msgstr ":mod:`os` --- Diverses interfaces pour le système d'exploitation" +msgstr ":mod:`os` — Diverses interfaces pour le système d'exploitation" #: ../Doc/library/os.rst:7 msgid "**Source code:** :source:`Lib/os.py`" @@ -266,8 +266,8 @@ msgid "" "``environ['HOME']`` is the pathname of your home directory (on some " "platforms), and is equivalent to ``getenv(\"HOME\")`` in C." msgstr "" -"Un objet :term:`mapping` représentant la variable d'environnement. Par " -"exemple ``environ['HOME']`` est le chemin vers votre répertoire personnel " +"Un objet :term:`mapping` représentant les variables d'environnement. Par " +"exemple ``environ['HOME']`` est le chemin vers votre répertoire d’accueil " "(sur certaines plate-formes), et est équivalent à ``getenv(\"HOME\")`` en C." #: ../Doc/library/os.rst:117 @@ -865,25 +865,25 @@ msgstr "" #: ../Doc/library/os.rst:618 msgid ":attr:`sysname` - operating system name" -msgstr ":attr:`sysname` --- nom du système d'exploitation" +msgstr ":attr:`sysname` — nom du système d'exploitation" #: ../Doc/library/os.rst:619 msgid ":attr:`nodename` - name of machine on network (implementation-defined)" msgstr "" -":attr:`noedname` --- nom de la machine sur le réseau (dépendant de " +":attr:`noedname` — nom de la machine sur le réseau (dépendant de " "l'implémentation)" #: ../Doc/library/os.rst:620 msgid ":attr:`release` - operating system release" -msgstr ":attr:`release` --- *release* du système d'exploitation" +msgstr ":attr:`release` — *release* du système d'exploitation" #: ../Doc/library/os.rst:621 msgid ":attr:`version` - operating system version" -msgstr ":attr:`version` --- version du système d'exploitation" +msgstr ":attr:`version` — version du système d'exploitation" #: ../Doc/library/os.rst:622 msgid ":attr:`machine` - hardware identifier" -msgstr ":attr:`machine` --- identifiant du matériel" +msgstr ":attr:`machine` — identifiant du matériel" #: ../Doc/library/os.rst:624 msgid "" @@ -989,8 +989,9 @@ msgstr "" "standard est habituellement le descripteur de fichier 0, la sortie standard " "est 1, et le flux standard d'erreur est 2. Les autres fichiers ouverts par " "un processus vont se voir assigner 3, 4, 5, etc. Le nom \"descripteur de " -"fichier\" est légèrement trompeur : sur les plate-formes Unix, les *sockets* " -"et les *pipes* sont également référencés par des descripteurs." +"fichier\" est légèrement trompeur : sur les plate-formes Unix, les " +"connecteurs (*socket* en anglais) et les tubes (*pipe* en anglais) sont " +"également référencés par des descripteurs." #: ../Doc/library/os.rst:688 msgid "" @@ -1029,7 +1030,7 @@ msgid "" msgstr "" "Ferme tous les descripteurs de fichiers entre *fd_low* (inclus) jusque " "*fd_high* (exclus), en ignorant les erreurs. Équivalent (mais beaucoup plus " -"rapide) à : ::" +"rapide) à ::" #: ../Doc/library/os.rst:720 msgid "" @@ -1575,9 +1576,9 @@ msgid "" "All platforms support sockets as *out* file descriptor, and some platforms " "allow other types (e.g. regular file, pipe) as well." msgstr "" -"Toutes les plate-formes gèrent des *sockets* comme descripteur de fichier " -"*out*, et certaines plate-formes autorisent d'autres types (par exemple, un " -"fichier normal ou un *pipe*) également." +"Toutes les plate-formes gèrent les connecteurs comme des descripteurs de " +"fichier *out*, et certaines plate-formes autorisent d'autres types (par " +"exemple, un fichier normal ou un tube) également." #: ../Doc/library/os.rst:1144 msgid "" @@ -1613,7 +1614,7 @@ msgid "" "Parameters to the :func:`sendfile` function, if the implementation supports " "them." msgstr "" -"paramètres de la fonction :func:`sendfile`, si l'implémentation les gèrent." +"Paramètres de la fonction :func:`sendfile`, si l'implémentation les gère." #: ../Doc/library/os.rst:1183 msgid "" @@ -1673,11 +1674,11 @@ msgid "" "`popen` or :func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use " "its :meth:`~file.write` method." msgstr "" -"cette fonction est destinée aux E/S bas niveau et doit être appliquée à un " -"descripteur de fichier comme renvoyé par :func:`os.open` ou :func:`pipe`. " -"Pour écrire dans un \"fichier objet\" renvoyé par la primitive :func:" -"`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` ou :" -"data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`." +"Cette fonction est destinée aux entrées-sorties bas niveau et doit être " +"appliquée à un descripteur de fichier comme renvoyé par :func:`os.open` ou :" +"func:`pipe`. Pour écrire dans un \"fichier objet\" renvoyé par la primitive :" +"func:`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` " +"ou :data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`." #: ../Doc/library/os.rst:1241 msgid "" @@ -1841,10 +1842,10 @@ msgid "" "The function will then operate on the file referred to by the descriptor. " "(For POSIX systems, Python will call the ``f...`` version of the function.)" msgstr "" -"**la spécification un descripteur de fichier :** pour certaines fonctions, " +"**spécifier un descripteur de fichier :** pour certaines fonctions, " "l'argument *path* peut être non seulement une chaîne de caractères donnant " "le chemin vers le fichier, mais également un descripteur de fichier. La " -"fonction opérera alors sur le fichier référencé par de descripteur. (Pour " +"fonction opérera alors sur le fichier référencé par le descripteur. (Pour " "les systèmes POSIX, Python appellera la version ``f...`` de la fonction.)" #: ../Doc/library/os.rst:1351 @@ -1863,8 +1864,8 @@ msgid "" "an error to specify one of those when supplying *path* as a file descriptor." msgstr "" "Si la fonction gère également les arguments *dir_fd* ou *follow_symlinks*, " -"en spécifier l'un est une erreur quand *path* est donné par un descripteur " -"de fichier." +"spécifier l'un de ces arguments est une erreur quand *path* est donné en " +"tant que descripteur de fichier." #: ../Doc/library/os.rst:1360 msgid "" @@ -1974,11 +1975,11 @@ msgstr "" "func:`open` crée une faille de sécurité : l'utilisateur peut exploiter le " "court intervalle de temps entre la vérification et l'ouverture du fichier " "pour le manipuler. Il est préférable d'utiliser les techniques :term:`EAFP`. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/library/os.rst:1417 msgid "is better written as::" -msgstr "est mieux écrit comme suit : ::" +msgstr "est mieux écrit comme suit ::" #: ../Doc/library/os.rst:1429 msgid "" @@ -2537,7 +2538,7 @@ msgstr "" "l'aide de :func:`os.unlink`). Généralement, les FIFOs sont utilisé comme " "communication entre des processus de type \"client\" et \"serveur\" : le " "serveur ouvre le FIFO pour le lire, et le client l'ouvre pour écrire dedans. " -"Notez que :func:`mkfifo` n'ouvre pas le FIFO --- il crée juste un point de " +"Notez que :func:`mkfifo` n'ouvre pas le FIFO — il crée juste un point de " "rendez-vous." #: ../Doc/library/os.rst:1797 @@ -2883,7 +2884,7 @@ msgstr "" "L'exemple suivant montre une utilisation simple de :func:`scandir` pour " "afficher tous les fichiers (à part les répertoires) dans le chemin donné par " "*path* et ne débutant pas par ``'.'``. L'appel ``entry.is_file()`` ne va " -"généralement pas faire d'appel système supplémentaire : ::" +"généralement pas faire d'appel système supplémentaire ::" #: ../Doc/library/os.rst:2052 msgid "" @@ -3300,7 +3301,7 @@ msgid "" "the `file index `_ on " "Windows" msgstr "" -"L'`index de fichier `_ " +"l’`index de fichier `_ " "sur Windows" #: ../Doc/library/os.rst:2276 @@ -3348,7 +3349,7 @@ msgstr "Dépendant de la plate-forme :" #: ../Doc/library/os.rst:2310 ../Doc/library/os.rst:2326 msgid "the time of most recent metadata change on Unix," -msgstr "le moment du changement de méta-données le plus récent sur Unix." +msgstr "le moment du changement de méta-données le plus récent sur Unix," #: ../Doc/library/os.rst:2311 msgid "the time of creation on Windows, expressed in seconds." @@ -3451,7 +3452,7 @@ msgid "" msgstr "" "Sur d'autres systèmes Unix (tels que FreeBSD), les attributs suivants " "peuvent être disponibles (mais peuvent être complétés uniquement lorsque le " -"super-utilisateur *root* tente de les utiliser)." +"super-utilisateur *root* tente de les utiliser) :" #: ../Doc/library/os.rst:2376 msgid "File generation number." @@ -3482,7 +3483,7 @@ msgstr "Type du fichier." #: ../Doc/library/os.rst:2396 msgid "On Windows systems, the following attribute is also available:" msgstr "" -"Sur les systèmes Windows, les attributs suivants sont également disponibles." +"Sur les systèmes Windows, les attributs suivants sont également disponibles :" #: ../Doc/library/os.rst:2400 msgid "" @@ -3698,7 +3699,7 @@ msgstr "" "Pour vérifier si une fonction en particulier permet de l'utilisation de son " "paramètre *dir_fd*, utilisez l'opérateur ``in`` sur ``supports_dir_fd``. Par " "exemple, l'expression détermine si le paramètre *dir_fd* de la fonction :" -"func:`os.stat` est disponible : ::" +"func:`os.stat` est disponible ::" #: ../Doc/library/os.rst:2516 msgid "" @@ -3727,7 +3728,7 @@ msgid "" msgstr "" "Pour vérifier si vous pouvez utiliser le paramètre *effective_ids* pour :" "func:`os.access`, utilisez l'opérateur ``in`` sur " -"``supports_effective_ids``, comme tel : ::" +"``supports_effective_ids``, comme tel ::" #: ../Doc/library/os.rst:2535 msgid "" @@ -3796,7 +3797,7 @@ msgstr "" "Pour vérifier s une fonction en particulier permet l'utilisation du " "paramètre *follow_symlinks*, utilisez l'opérateur ``in`` sur " "``supports_follow_symlinks``. Par exemple, cette expression détermine si le " -"paramètre *follow_symlink* de :func:`os.stat` est disponible : ::" +"paramètre *follow_symlink* de :func:`os.stat` est disponible ::" #: ../Doc/library/os.rst:2583 msgid "Create a symbolic link pointing to *src* named *dst*." @@ -3876,7 +3877,7 @@ msgid "" "to :func:`remove`; the ``unlink`` name is its traditional Unix name. Please " "see the documentation for :func:`remove` for further information." msgstr "" -"Supprime (retire) le fichier *âth*. Cette fonction est sémantiquement " +"Supprime (retire) le fichier *path*. Cette fonction est sémantiquement " "identique à :func:`remove`. Le nom ``unlink`` est un nom Unix traditionnel. " "Veuillez voir la documentation de :func:`remove` pour plus d'informations." @@ -4078,7 +4079,7 @@ msgid "" msgstr "" "Cet exemple affiche le nombre de bytes pris par des fichiers non-répertoires " "dans chaque répertoire à partir du répertoire de départ, si ce n'est qu'il " -"ne cherche pas après un sous-répertoire CSV : ::" +"ne cherche pas après un sous-répertoire CSV ::" #: ../Doc/library/os.rst:2773 msgid "" @@ -4088,7 +4089,7 @@ msgid "" msgstr "" "Dans l'exemple suivant (simple implémentation d'un :func:`shutil.rmtree`), " "parcourir l'arbre de bas-en-haut est essentiel : :func:`rmdir` ne permet pas " -"de supprimer un répertoire avant qu'un ne soit vide : ::" +"de supprimer un répertoire avant qu'un ne soit vide ::" #: ../Doc/library/os.rst:2788 msgid "" @@ -4146,7 +4147,7 @@ msgid "" msgstr "" "Dans le prochain exemple, parcourir l'arbre de bas-en-haut est essentiel : :" "func:`rmdir` ne permet pas de supprimer un répertoire avant qu'il ne soit " -"vide : ::" +"vide ::" #: ../Doc/library/os.rst:2856 msgid "Linux extended attributes" @@ -4790,7 +4791,7 @@ msgid "" "are equivalent::" msgstr "" "Par exemple, les appels suivants à :func:`spawnlp` et :func:`spawnvpe` sont " -"équivalents : ::" +"équivalents ::" #: ../Doc/library/os.rst:3335 msgid "" @@ -4850,7 +4851,7 @@ msgstr "" #: ../Doc/library/os.rst:3380 msgid "Start a file with its associated application." -msgstr "lance un fichier avec son application associée." +msgstr "Lance un fichier avec son application associée." #: ../Doc/library/os.rst:3382 msgid "" @@ -4974,26 +4975,23 @@ msgstr "" #: ../Doc/library/os.rst:3439 msgid ":attr:`user` - user time" -msgstr ":attr:`user` --- le temps utilisateur ;" +msgstr ":attr:`user` — le temps utilisateur" #: ../Doc/library/os.rst:3440 msgid ":attr:`system` - system time" -msgstr ":attr:`system` -- le temps système ;" +msgstr ":attr:`system` — le temps système" #: ../Doc/library/os.rst:3441 msgid ":attr:`children_user` - user time of all child processes" -msgstr "" -":attr:`children_user` --- temps utilisateur de tous les processus fils ;" +msgstr ":attr:`children_user` — temps utilisateur de tous les processus fils" #: ../Doc/library/os.rst:3442 msgid ":attr:`children_system` - system time of all child processes" -msgstr "" -":attr:`children_system` --- le temps système de tous les processus fils ;" +msgstr ":attr:`children_system` — le temps système de tous les processus fils" #: ../Doc/library/os.rst:3443 msgid ":attr:`elapsed` - elapsed real time since a fixed point in the past" -msgstr "" -":attr:`elapsed` --- temps écoulé réel depuis un point fixé dans le passé." +msgstr ":attr:`elapsed` — temps écoulé réel depuis un point fixé dans le passé" #: ../Doc/library/os.rst:3445 msgid "" diff --git a/library/parser.po b/library/parser.po index 77ca48975..ca32f9d03 100644 --- a/library/parser.po +++ b/library/parser.po @@ -81,6 +81,22 @@ msgid "" "from one version to another, whereas source code has always been forward-" "compatible." msgstr "" +"Le prérequis le plus important est une bonne compréhension de la grammaire " +"Python utilisée par l'analyseur interne dont la syntaxe est documentée " +"exhaustivement dans :ref:`reference-index`. L'analyseur lui-même est généré " +"à partir d'une grammaire spécifiée dans le fichier :file:`Grammar/Grammar` " +"dans la distribution standard de Python. Les arbres syntaxiques stockés dans " +"les objets ST créés par les fonctions :func:`expr` ou :func:`suite` de ce " +"module sont directement le résultat de l'analyseur interne, alors que les " +"objets ST créés par :func:`sequence2st` simulent ces structures. N'oubliez " +"pas qu'une séquence considérée « correcte » dans une version de Python peut " +"ne pas l'être dans une autre, la grammaire de Python pouvant évoluer. " +"Cependant, déplacer du code source d'une version de Python à une autre sous " +"forme textuelle donnera toujours des arbres syntaxique corrects, à " +"l'exception qu'une version plus ancienne de l'interpréteur ne pourra pas " +"analyser les constructions récentes du langage. Les arbres syntaxiques quant " +"à eux ne sont généralement pas compatibles d'une version à l'autre, alors " +"que le code source a toujours conservé la compatibilité ascendante." #: ../Doc/library/parser.rst:56 msgid "" diff --git a/library/pathlib.po b/library/pathlib.po index 0aea16511..d639d221a 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:3 msgid ":mod:`pathlib` --- Object-oriented filesystem paths" -msgstr ":mod:`pathlib` --- Chemins de système de fichiers orientés objet" +msgstr ":mod:`pathlib` — Chemins de système de fichiers orientés objet" #: ../Doc/library/pathlib.rst:10 msgid "**Source code:** :source:`Lib/pathlib.py`" @@ -76,12 +76,12 @@ msgstr "" "Vous voulez être sûr que votre code manipule des chemins sans réellement " "accéder au système d'exploitation. Dans ce cas, instancier une de ces " "classes pures peut être utile puisqu'elle ne possède tout simplement aucune " -"opérations permettant d'accéder au système d'exploitation." +"opération permettant d'accéder au système d'exploitation." #: ../Doc/library/pathlib.rst:39 msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." msgstr "" -":pep:`428`: Le module *pathlib* -- chemins de système de fichiers orientés " +":pep:`428` : Le module *pathlib* -- chemins de système de fichiers orientés " "objet." #: ../Doc/library/pathlib.rst:42 @@ -205,7 +205,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:153 msgid "Added support for the :class:`os.PathLike` interface." -msgstr "Ajout du support de l'interface :class:`os.PathLike`" +msgstr "Ajout de la gestion de l'interface :class:`os.PathLike`." #: ../Doc/library/pathlib.rst:158 msgid "" @@ -235,7 +235,7 @@ msgid "" "classes, since they don't provide any operation that does system calls." msgstr "" "Sans tenir compte du système sur lequel vous êtes, vous pouvez instancier " -"toutes ces classes, puisqu'elle en fournissent aucune opération qui appelle " +"toutes ces classes, puisqu'elles ne fournissent aucune opération qui appelle " "le système d'exploitation." #: ../Doc/library/pathlib.rst:181 @@ -326,7 +326,7 @@ msgstr "Un tuple donnant accès aux différentes composantes du chemin ::" #: ../Doc/library/pathlib.rst:268 msgid "(note how the drive and local root are regrouped in a single part)" msgstr "" -"(notez comme le lecteur et la racine locale sont regroupée en une seule " +"(notez comme le lecteur et la racine locale sont regroupés en une seule " "partie)" #: ../Doc/library/pathlib.rst:272 @@ -442,7 +442,7 @@ msgid "" "``False`` is always returned." msgstr "" "Avec :class:`PureWindowsPath`, renvoie ``True`` si le chemin est considéré " -"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " +"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " "``False`` est systématiquement renvoyé." #: ../Doc/library/pathlib.rst:472 @@ -494,7 +494,7 @@ msgid "" "Compute a version of this path relative to the path represented by *other*. " "If it's impossible, ValueError is raised::" msgstr "" -"Calcule une version du chemin en relatif au chemin représenté par *other*. " +"Calcule une version du chemin en relatif au chemin représenté par *other*. " "Si c'est impossible, ValueError est levée ::" #: ../Doc/library/pathlib.rst:540 @@ -541,7 +541,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PurePosixPath`, this class " "represents concrete non-Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PurePosixPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PurePosixPath`, cette classe " "représente les chemins concrets de systèmes de fichiers non Windows ::" #: ../Doc/library/pathlib.rst:601 @@ -549,7 +549,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " "represents concrete Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " "représente les chemins concrets de systèmes de fichiers Windows ::" #: ../Doc/library/pathlib.rst:609 @@ -590,9 +590,8 @@ msgid "" "Return a new path object representing the user's home directory (as returned " "by :func:`os.path.expanduser` with ``~`` construct)::" msgstr "" -"Renvoie un nouveau chemin représentant le dossier *home* de l'utilisateur " -"(comme retourné par :func:`os.path.expanduser` avec la construction " -"``~`` ) ::" +"Renvoie un nouveau chemin représentant le dossier d’accueil de l'utilisateur " +"(comme renvoyé par :func:`os.path.expanduser` avec la construction ``~`` ) ::" #: ../Doc/library/pathlib.rst:657 msgid "" @@ -605,7 +604,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:669 msgid "Change the file mode and permissions, like :func:`os.chmod`::" msgstr "" -"Change le mode et les permissions du fichiers, comme :func:`os.chmod` ::" +"Change le mode et les permissions du fichier, comme :func:`os.chmod` ::" #: ../Doc/library/pathlib.rst:681 msgid "Whether the path points to an existing file or directory::" @@ -667,7 +666,7 @@ msgid "" "pointing to a directory), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un dossier (ou un lien symbolique " -"pointant vers un dossier), ``False`` si il pointe vers une autre sorte de " +"pointant vers un dossier), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:745 ../Doc/library/pathlib.rst:754 @@ -687,7 +686,7 @@ msgid "" "pointing to a regular file), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un fichier normal (ou un lien " -"symbolique pointe vers un fichier normal), ``False`` si il pointe vers une " +"symbolique pointe vers un fichier normal), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:760 @@ -709,8 +708,8 @@ msgid "" "Return ``True`` if the path points to a Unix socket (or a symbolic link " "pointing to a Unix socket), ``False`` if it points to another kind of file." msgstr "" -"Renvoie ``True`` si le chemin pointe vers une *socket* Unix (ou un lien " -"symbolique pointant vers une *socket* Unix), ``False`` si il pointe vers une " +"Renvoie ``True`` si le chemin pointe vers un connecteur Unix (ou un lien " +"symbolique pointant vers un connecteur Unix), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:777 @@ -719,7 +718,7 @@ msgid "" "a FIFO), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers une FIFO (ou un lien symbolique " -"pointant vers une FIFO), ``False`` si il pointe vers une autre sorte de " +"pointant vers une FIFO), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:786 @@ -728,7 +727,7 @@ msgid "" "pointing to a block device), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique (ou un lien " -"symbolique pointant vers un périphérique), ``False`` si il pointe vers une " +"symbolique pointant vers un périphérique), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:795 @@ -738,8 +737,8 @@ msgid "" "file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique à caractères (ou " -"un lien symbolique pointant vers un périphérique à caractères), ``False`` si " -"il pointe vers une autre sorte de fichier." +"un lien symbolique pointant vers un périphérique à caractères), ``False`` " +"s'il pointe vers une autre sorte de fichier." #: ../Doc/library/pathlib.rst:804 msgid "" @@ -782,7 +781,7 @@ msgid "" "needed; they are created with the default permissions without taking *mode* " "into account (mimicking the POSIX ``mkdir -p`` command)." msgstr "" -"Si *parents* est vrai, chaque parents de ce chemin est créé si besoin ; il " +"Si *parents* est vrai, chaque parent de ce chemin est créé si besoin ; ils " "sont créés avec les permissions par défaut sans prendre en compte *mode* " "(reproduisant la commande POSIX ``mkdir -p``)." @@ -808,8 +807,8 @@ msgid "" "(same behavior as the POSIX ``mkdir -p`` command), but only if the last path " "component is not an existing non-directory file." msgstr "" -"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " -"ignorée (même comportement que la commande POSIX ``mkdir -p``), mais " +"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " +"ignorées (même comportement que la commande POSIX ``mkdir -p``), mais " "seulement si le dernier segment de chemin existe et n'est pas un dossier." #: ../Doc/library/pathlib.rst:851 @@ -829,7 +828,7 @@ msgid "" "Return the name of the user owning the file. :exc:`KeyError` is raised if " "the file's uid isn't found in the system database." msgstr "" -"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" +"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" "`KeyError` est levée si l'identifiant utilisateur du fichier n'est pas " "trouvé dans la base de données du système." @@ -926,7 +925,7 @@ msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." msgstr "" -":exc:`OSError` peut être levée si l'un des fichier ne peut être accédé pour " +":exc:`OSError` peut être levée si l'un des fichiers ne peut être accédé pour " "quelque raison." #: ../Doc/library/pathlib.rst:987 @@ -979,7 +978,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:1031 msgid "An existing file of the same name is overwritten." -msgstr "Un fichier existant au même nom est écrasé." +msgstr "Le fichier du même nom, s'il existe, est écrasé." #: ../Doc/library/pathlib.rst:1038 msgid "" diff --git a/library/pdb.po b/library/pdb.po index a61ec4781..620ee0061 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/pdb.rst:4 msgid ":mod:`pdb` --- The Python Debugger" -msgstr ":mod:`pdb` --- Le débogueur Python" +msgstr ":mod:`pdb` — Le débogueur Python" #: ../Doc/library/pdb.rst:9 msgid "**Source code:** :source:`Lib/pdb.py`" @@ -108,7 +108,7 @@ msgid "" "insert ::" msgstr "" "L'usage typique pour forcer le débogueur depuis un programme s'exécutant est " -"d'insérer ::" +"d'insérer ::" #: ../Doc/library/pdb.rst:69 msgid "" @@ -151,7 +151,7 @@ msgstr "" "expliquées ci-dessous). Les arguments *globals* et *locals* optionnels " "spécifient l'environnement dans lequel le code est exécuté; par défaut le " "dictionnaire du module :mod:`__main__` est utilisé. (Voir l'explication des " -"fonctions intégrées :func:`exec` ou :func:`eval`.)" +"fonctions natives :func:`exec` ou :func:`eval`.)" #: ../Doc/library/pdb.rst:108 msgid "" @@ -369,12 +369,12 @@ msgid "" "exist, the one in the home directory is read first and aliases defined there " "can be overridden by the local file." msgstr "" -"Si un fichier :file:`.pdbrc` existe dans le répertoire de l'utilisateur ou " -"dans le répertoire courant, il est lu et exécuté comme si il avait été écrit " -"dans l'invite du débogueur. C'est particulièrement utile pour les alias. Si " -"les deux fichiers existent, celui dans le répertoire de l'utilisateur est lu " -"en premier et les alias définit là peuvent être surchargés par le fichier " -"local." +"Si un fichier :file:`.pdbrc` existe dans le répertoire d'accueil de " +"l'utilisateur ou dans le répertoire courant, il est lu et exécuté comme si " +"il avait été écrit dans l'invite du débogueur. C'est particulièrement utile " +"pour les alias. Si les deux fichiers existent, celui dans le répertoire " +"d’accueil de l’utilisateur est lu en premier et les alias définis dedans " +"peuvent être surchargés par le fichier local." #: ../Doc/library/pdb.rst:233 msgid "" diff --git a/library/pickle.po b/library/pickle.po index 4dde809e5..e78105478 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -891,7 +891,7 @@ msgstr "" #: ../Doc/library/pickle.rst:678 msgid "For example ::" -msgstr "Par exemple ::" +msgstr "Par exemple ::" #: ../Doc/library/pickle.rst:685 msgid "" diff --git a/library/pipes.po b/library/pipes.po index 2d2885442..b19c3a194 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/pipes.rst:2 msgid ":mod:`pipes` --- Interface to shell pipelines" -msgstr ":mod:`pipes` --- Interface au *pipelines* shell" +msgstr ":mod:`pipes` — Interface au *pipelines* shell" #: ../Doc/library/pipes.rst:10 msgid "**Source code:** :source:`Lib/pipes.py`" diff --git a/library/pkgutil.po b/library/pkgutil.po index 915659443..93c76f224 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -225,7 +225,7 @@ msgstr "" #: ../Doc/library/pkgutil.rst:185 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/library/pkgutil.rst:207 msgid "Get a resource from a package." diff --git a/library/posix.po b/library/posix.po index 2d897ee46..a51feb6de 100644 --- a/library/posix.po +++ b/library/posix.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/posix.rst:2 msgid ":mod:`posix` --- The most common POSIX system calls" -msgstr ":mod:`posix` --- Les appels système POSIX les plus courants" +msgstr ":mod:`posix` — Les appels système POSIX les plus courants" #: ../Doc/library/posix.rst:10 msgid "" @@ -101,7 +101,7 @@ msgstr "" msgid "On large-file-capable Linux systems, this might work::" msgstr "" "Sur les systèmes Linux capable de supporter les fichiers volumineux, cela " -"pourrait fonctionner:" +"pourrait fonctionner ::" #: ../Doc/library/posix.rst:65 msgid "Notable Module Contents" @@ -125,8 +125,8 @@ msgstr "" "Un dictionnaire représentant les variables d'environnement au moment où " "l'interpréteur à été lancé. Les clés et les valeurs sont des `bytes` sous " "Unix et des `str` sous Windows. Par exemple, ``environ[b'HOME']`` " -"(``environ['HOME']`` dans Windows) est le chemin de votre dossier " -"utilisateur, équivalent à ``getenv(\"HOME\")`` en C." +"(``environ['HOME']`` dans Windows) est le chemin de votre dossier d’accueil, " +"équivalent à ``getenv(\"HOME\")`` en C." #: ../Doc/library/posix.rst:77 msgid "" diff --git a/library/pprint.po b/library/pprint.po index 82cd6a9e8..5035408e0 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -112,7 +112,7 @@ msgstr "Ajout du paramètre *compact*." #: ../Doc/library/pprint.rst:80 msgid "The :mod:`pprint` module also provides several shortcut functions:" msgstr "" -"Le module :mod:`pprint` fournit aussi quelques fonctions de raccourcis : ::" +"Le module :mod:`pprint` fournit aussi quelques fonctions de raccourcis ::" #: ../Doc/library/pprint.rst:84 msgid "" @@ -157,7 +157,7 @@ msgstr "Détermine si *object* requiert une représentation récursive." #: ../Doc/library/pprint.rst:134 msgid "One more support function is also defined:" -msgstr "Une dernière fonction de support est définie ainsi : ::" +msgstr "Une dernière fonction de support est définie ainsi ::" #: ../Doc/library/pprint.rst:138 msgid "" @@ -180,7 +180,7 @@ msgstr "Les Objets PrettyPrinter" msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" "Les instances de la classe :class:`PrettyPrinter` ont les méthodes " -"suivantes : ::" +"suivantes ::" #: ../Doc/library/pprint.rst:157 msgid "" @@ -284,13 +284,13 @@ msgid "" msgstr "" "Pour illustrer quelques cas pratiques de l’utilisation de la fonction :func:" "`pprint` et de ses paramètres, allons chercher des informations sur un " -"projet `PyPI `_ : ::" +"projet `PyPI `_ ::" #: ../Doc/library/pprint.rst:225 msgid "In its basic form, :func:`pprint` shows the whole object::" msgstr "" "Dans sa forme basique, la fonction :func:`pprint` affiche l’intégralité de " -"l’objet : ::" +"l’objet ::" #: ../Doc/library/pprint.rst:279 msgid "" @@ -298,7 +298,7 @@ msgid "" "contents)::" msgstr "" "Le résultat peut être limité à une certaine profondeur en initialisant " -"*depth*. ( ``…`` est utilisé pour des contenus plus « profonds ») : ::" +"*depth*. ( ``…`` est utilisé pour des contenus plus « profonds ») ::" #: ../Doc/library/pprint.rst:313 msgid "" @@ -307,4 +307,4 @@ msgid "" msgstr "" "De plus, une valeur maximale de caractères sur une ligne peut être définie " "en initialisant le paramètre *width*. Si un long objet ne peut être scindé, " -"la valeur donnée à *width* sera outrepassée : ::" +"la valeur donnée à *width* sera outrepassée ::" diff --git a/library/pty.po b/library/pty.po index 849192a46..e17b5a563 100644 --- a/library/pty.po +++ b/library/pty.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" -msgstr ":mod:`pty` --- Outils de manipulation de pseudo-terminaux" +msgstr ":mod:`pty` — Outils de manipulation de pseudo-terminaux" #: ../Doc/library/pty.rst:11 msgid "**Source code:** :source:`Lib/pty.py`" diff --git a/library/pydoc.po b/library/pydoc.po index 5c378513a..eb0ee48c4 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -62,12 +62,11 @@ msgid "" "be viewed from outside the Python interpreter by running :program:`pydoc` as " "a script at the operating system's command prompt. For example, running ::" msgstr "" -"La fonction intégrée :func:`help` appelle le système d’aide en ligne dans " +"La fonction native :func:`help` appelle le système d’aide en ligne dans " "l’interpréteur Python qui utilise :mod:`pydoc` pour générer sa documentation " "sous forme textuelle dans la console. Cette même documentation peut aussi " "être consultée à l’extérieur de l’interpréteur Python en lançant :program:" -"`pydoc` dans le terminal du système d’exploitation. Par exemple en " -"lançant : ::" +"`pydoc` dans le terminal du système d’exploitation. Par exemple en lançant ::" #: ../Doc/library/pydoc.rst:38 msgid "" diff --git a/library/queue.po b/library/queue.po index 627b98117..34caf59a4 100644 --- a/library/queue.po +++ b/library/queue.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/queue.rst:2 msgid ":mod:`queue` --- A synchronized queue class" -msgstr ":mod:`queue` --- File synchronisée" +msgstr ":mod:`queue` — File synchronisée" #: ../Doc/library/queue.rst:7 msgid "**Source code:** :source:`Lib/queue.py`" diff --git a/library/quopri.po b/library/quopri.po index 2d5c7e4f2..53c0bca94 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/quopri.rst:2 msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" -msgstr ":mod:`quopri` --- Encode et décode des données *MIME quoted-printable*" +msgstr ":mod:`quopri` — Encode et décode des données *MIME quoted-printable*" #: ../Doc/library/quopri.rst:7 msgid "**Source code:** :source:`Lib/quopri.py`" diff --git a/library/random.po b/library/random.po index 0ee8dc352..c948d3c95 100644 --- a/library/random.po +++ b/library/random.po @@ -112,12 +112,18 @@ msgid "" "uses the system function :func:`os.urandom` to generate random numbers from " "sources provided by the operating system." msgstr "" +"Le module :mod:`random` fournit également la classe :class:`SystemRandom` " +"qui utilise la fonction système :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation." #: ../Doc/library/random.rst:48 msgid "" "The pseudo-random generators of this module should not be used for security " "purposes. For security or cryptographic uses, see the :mod:`secrets` module." msgstr "" +"Les générateurs pseudo-aléatoires de ce module ne doivent pas être utilisés " +"à des fins de sécurité. Pour des utilisations de sécurité ou " +"cryptographiques, voir le module :mod:`secrets`." #: ../Doc/library/random.rst:54 msgid "" @@ -125,6 +131,9 @@ msgid "" "equidistributed uniform pseudorandom number generator\", ACM Transactions on " "Modeling and Computer Simulation Vol. 8, No. 1, January pp.3--30 1998." msgstr "" +"*M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " +"equidistributed uniform pseudorandom number generator\", ACM Transactions on " +"Modeling and Computer Simulation Vol. 8, No. 1,* Janvier pp.3--30 1998." #: ../Doc/library/random.rst:59 msgid "" @@ -132,14 +141,17 @@ msgid "" "recipes/576707/>`_ for a compatible alternative random number generator with " "a long period and comparatively simple update operations." msgstr "" +"`Complementary-Multiply-with-Carry recipe `_ pour un autre générateur de nombres aléatoires avec une " +"longue période et des opérations de mise à jour relativement simples." #: ../Doc/library/random.rst:66 msgid "Bookkeeping functions" -msgstr "" +msgstr "Fonctions de gestion d'état" #: ../Doc/library/random.rst:70 msgid "Initialize the random number generator." -msgstr "" +msgstr "Initialise le générateur de nombres aléatoires." #: ../Doc/library/random.rst:72 msgid "" @@ -148,10 +160,14 @@ msgid "" "instead of the system time (see the :func:`os.urandom` function for details " "on availability)." msgstr "" +"Si *a* est omis ou ``None``, l'heure système actuelle est utilisée. Si des " +"sources aléatoires sont fournies par le système d'exploitation, elles sont " +"utilisées à la place de l'heure système (voir la fonction :func:`os.urandom` " +"pour les détails sur la disponibilité)." #: ../Doc/library/random.rst:77 msgid "If *a* is an int, it is used directly." -msgstr "" +msgstr "Si *a* est un entier, il est utilisé directement." #: ../Doc/library/random.rst:79 msgid "" @@ -159,6 +175,9 @@ msgid "" "`bytearray` object gets converted to an :class:`int` and all of its bits are " "used." msgstr "" +"Avec la version 2 (par défaut), un objet :class:`str`, :class:`bytes` ou :" +"class:`bytearray` est converti en :class:`int` et tous ses bits sont " +"utilisés." #: ../Doc/library/random.rst:82 msgid "" @@ -166,17 +185,24 @@ msgid "" "versions of Python), the algorithm for :class:`str` and :class:`bytes` " "generates a narrower range of seeds." msgstr "" +"Avec la version 1 (fournie pour reproduire des séquences aléatoires " +"produites par d'anciennes versions de Python), l'algorithme pour :class:" +"`str` et :class:`bytes` génère une gamme plus étroite de graines." #: ../Doc/library/random.rst:86 msgid "" "Moved to the version 2 scheme which uses all of the bits in a string seed." msgstr "" +"Passée à la version 2 du schéma qui utilise tous les bits d'une graine de " +"chaîne de caractères." #: ../Doc/library/random.rst:91 msgid "" "Return an object capturing the current internal state of the generator. " "This object can be passed to :func:`setstate` to restore the state." msgstr "" +"Renvoie un objet capturant l'état interne actuel du générateur. Cet objet " +"peut être passé à :func:`setstate` pour restaurer cet état." #: ../Doc/library/random.rst:97 msgid "" @@ -184,6 +210,9 @@ msgid "" "and :func:`setstate` restores the internal state of the generator to what it " "was at the time :func:`getstate` was called." msgstr "" +"Il convient que *state* ait été obtenu à partir d'un appel précédent à :func:" +"`getstate`, et :func:`setstate` restaure l'état interne du générateur à ce " +"qu'il était au moment où :func:`getstate` a été appelé." #: ../Doc/library/random.rst:104 msgid "" @@ -192,10 +221,15 @@ msgid "" "as an optional part of the API. When available, :meth:`getrandbits` enables :" "meth:`randrange` to handle arbitrarily large ranges." msgstr "" +"Renvoie un entier Python avec *k* bits aléatoires. Cette méthode est fournie " +"avec le générateur MersenneTwister. Quelques autres générateurs peuvent " +"également la fournir en option comme partie de l'API. Lorsqu'elle est " +"disponible, :meth:`getrandbits` permet à :meth:`randrange` de gérer des " +"gammes arbitrairement larges." #: ../Doc/library/random.rst:111 msgid "Functions for integers" -msgstr "" +msgstr "Fonctions pour les entiers" #: ../Doc/library/random.rst:116 msgid "" @@ -203,6 +237,9 @@ msgid "" "is equivalent to ``choice(range(start, stop, step))``, but doesn't actually " "build a range object." msgstr "" +"Renvoie un élément sélectionné aléatoirement à partir de ``range(start, " +"stop, step)``. C'est équivalent à ``choice(range(start, stop, step))``, " +"mais ne construit pas réellement un objet range." #: ../Doc/library/random.rst:120 msgid "" @@ -210,6 +247,9 @@ msgid "" "arguments should not be used because the function may use them in unexpected " "ways." msgstr "" +"Le motif d'argument positionnel correspond à celui de :func:`range`. " +"N'utilisez pas d'arguments nommés parce que la fonction peut les utiliser de " +"manière inattendue." #: ../Doc/library/random.rst:123 msgid "" @@ -217,28 +257,38 @@ msgid "" "values. Formerly it used a style like ``int(random()*n)`` which could " "produce slightly uneven distributions." msgstr "" +":meth:`randrange` est plus sophistiquée dans la production de valeurs " +"uniformément distribuées. Auparavant, elle utilisait un style comme " +"``int(random()*n)`` qui pouvait produire des distributions légèrement " +"inégales." #: ../Doc/library/random.rst:130 msgid "" "Return a random integer *N* such that ``a <= N <= b``. Alias for " "``randrange(a, b+1)``." msgstr "" +"Renvoie un entier aléatoire *N* tel que ``a <= N <= b``. Alias pour " +"``randrange(a, b+1)``." #: ../Doc/library/random.rst:135 msgid "Functions for sequences" -msgstr "" +msgstr "Fonctions pour les séquences" #: ../Doc/library/random.rst:139 msgid "" "Return a random element from the non-empty sequence *seq*. If *seq* is " "empty, raises :exc:`IndexError`." msgstr "" +"Renvoie un élément aléatoire de la séquence non vide *seq*. Si *seq* est " +"vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:144 msgid "" "Return a *k* sized list of elements chosen from the *population* with " "replacement. If the *population* is empty, raises :exc:`IndexError`." msgstr "" +"Renvoie une liste de taille *k* d'éléments choisis dans la *population* avec " +"remise. Si la *population* est vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:147 msgid "" @@ -250,6 +300,14 @@ msgid "" "50]``. Internally, the relative weights are converted to cumulative weights " "before making selections, so supplying the cumulative weights saves work." msgstr "" +"Si une séquence de *poids* est spécifiée, les tirages sont effectués en " +"fonction des poids relatifs. Alternativement, si une séquence *cum_weights* " +"est donnée, les tirages sont faits en fonction des poids cumulés (peut-être " +"calculés en utilisant :func:`itertools.accumulate`). Par exemple, les poids " +"relatifs ``[10, 5, 30, 5]`` sont équivalents aux poids cumulatifs ``[10, 15, " +"45, 50]``. En interne, les poids relatifs sont convertis en poids " +"cumulatifs avant d'effectuer les tirages, ce qui vous permet d'économiser du " +"travail en fournissant des pondérations cumulatives." #: ../Doc/library/random.rst:156 msgid "" @@ -258,6 +316,10 @@ msgid "" "same length as the *population* sequence. It is a :exc:`TypeError` to " "specify both *weights* and *cum_weights*." msgstr "" +"Si ni *weights* ni *cum_weights* ne sont spécifiés, les tirages sont " +"effectués avec une probabilité uniforme. Si une séquence de poids est " +"fournie, elle doit être de la même longueur que la séquence *population*. " +"Spécifier à la fois *weights* et *cum_weights* lève une :exc:`TypeError`." #: ../Doc/library/random.rst:161 msgid "" @@ -269,18 +331,24 @@ msgstr "" #: ../Doc/library/random.rst:170 msgid "Shuffle the sequence *x* in place." msgstr "" +"Mélange la séquence *x* sans créer de nouvelle instance (« sur place »)." #: ../Doc/library/random.rst:172 msgid "" "The optional argument *random* is a 0-argument function returning a random " "float in [0.0, 1.0); by default, this is the function :func:`.random`." msgstr "" +"L'argument optionnel *random* est une fonction sans argument renvoyant un " +"nombre aléatoire à virgule flottante dans [0.0, 1.0); par défaut, c'est la " +"fonction :func:`.random`." #: ../Doc/library/random.rst:175 msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." msgstr "" +"Pour mélanger une séquence immuable et renvoyer une nouvelle liste mélangée, " +"utilisez ``sample(x, k=len(x))`` à la place." #: ../Doc/library/random.rst:178 msgid "" @@ -290,12 +358,20 @@ msgid "" "generated. For example, a sequence of length 2080 is the largest that can " "fit within the period of the Mersenne Twister random number generator." msgstr "" +"Notez que même pour les petits ``len(x)``, le nombre total de permutations " +"de *x* peut rapidement devenir plus grand que la période de la plupart des " +"générateurs de nombres aléatoires. Cela implique que la plupart des " +"permutations d'une longue séquence ne peuvent jamais être générées. Par " +"exemple, une séquence de longueur 2080 est la plus grande qui puisse tenir " +"dans la période du générateur de nombres aléatoires Mersenne Twister." #: ../Doc/library/random.rst:187 msgid "" "Return a *k* length list of unique elements chosen from the population " "sequence or set. Used for random sampling without replacement." msgstr "" +"Renvoie une liste de *k* éléments uniques choisis dans la séquence ou " +"l'ensemble de la population. Utilisé pour un tirage aléatoire sans remise." #: ../Doc/library/random.rst:190 msgid "" @@ -305,6 +381,12 @@ msgid "" "winners (the sample) to be partitioned into grand prize and second place " "winners (the subslices)." msgstr "" +"Renvoie une nouvelle liste contenant des éléments de la population tout en " +"laissant la population originale inchangée. La liste résultante est classée " +"par ordre de sélection de sorte que toutes les sous-tranches soient " +"également des échantillons aléatoires valides. Cela permet aux gagnants du " +"tirage (l'échantillon) d'être divisés en gagnants du grand prix et en " +"gagnants de la deuxième place (les sous-tranches)." #: ../Doc/library/random.rst:196 msgid "" @@ -312,6 +394,9 @@ msgid "" "population contains repeats, then each occurrence is a possible selection in " "the sample." msgstr "" +"Les membres de la population n'ont pas besoin d'être :term:" +"`hachables` ou uniques. Si la population contient des répétitions, " +"alors chaque occurrence est un tirage possible dans l'échantillon." #: ../Doc/library/random.rst:199 msgid "" @@ -319,16 +404,22 @@ msgid "" "an argument. This is especially fast and space efficient for sampling from " "a large population: ``sample(range(10000000), k=60)``." msgstr "" +"Pour choisir un échantillon parmi un intervalle d'entiers, utilisez un " +"objet :func:`range` comme argument. Ceci est particulièrement rapide et " +"économe en mémoire pour un tirage dans une grande population : " +"``échantillon(range(10000000), k=60)``." #: ../Doc/library/random.rst:203 msgid "" "If the sample size is larger than the population size, a :exc:`ValueError` " "is raised." msgstr "" +"Si la taille de l'échantillon est supérieure à la taille de la population, " +"une :exc:`ValueError` est levée." #: ../Doc/library/random.rst:207 msgid "Real-valued distributions" -msgstr "" +msgstr "Distributions pour les nombre réels" #: ../Doc/library/random.rst:209 msgid "" @@ -337,22 +428,33 @@ msgid "" "distribution's equation, as used in common mathematical practice; most of " "these equations can be found in any statistics text." msgstr "" +"Les fonctions suivantes génèrent des distributions spécifiques en nombre " +"réels. Les paramètres de fonction sont nommés d'après les variables " +"correspondantes de l'équation de la distribution, telles qu'elles sont " +"utilisées dans la pratique mathématique courante ; la plupart de ces " +"équations peuvent être trouvées dans tout document traitant de statistiques." #: ../Doc/library/random.rst:217 msgid "Return the next random floating point number in the range [0.0, 1.0)." msgstr "" +"Renvoie le nombre aléatoire à virgule flottante suivant dans la plage [0.0, " +"1.0)." #: ../Doc/library/random.rst:222 msgid "" "Return a random floating point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." msgstr "" +"Renvoie un nombre aléatoire à virgule flottante *N* tel que ``a <= N <= b`` " +"pour ``a <= b`` et ``b <= N <= a`` pour ``b < a``." #: ../Doc/library/random.rst:225 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the equation ``a + (b-a) * random()``." msgstr "" +"La valeur finale ``b`` peut ou non être incluse dans la plage selon " +"l'arrondi à virgule flottante dans l'équation ``a + (b-a) * random()``." #: ../Doc/library/random.rst:231 msgid "" @@ -361,12 +463,18 @@ msgid "" "default to zero and one. The *mode* argument defaults to the midpoint " "between the bounds, giving a symmetric distribution." msgstr "" +"Renvoie un nombre aléatoire en virgule flottante *N* tel que ``low <= N <= " +"high`` et avec le *mode* spécifié entre ces bornes. Les limites *low* et " +"*high* par défaut sont zéro et un. L'argument *mode* est par défaut le " +"point médian entre les bornes, ce qui donne une distribution symétrique." #: ../Doc/library/random.rst:239 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." msgstr "" +"Distribution bêta. Les conditions sur les paramètres sont ``alpha > 0`` et " +"``beta > 0``. Les valeurs renvoyées varient entre 0 et 1." #: ../Doc/library/random.rst:245 msgid "" @@ -376,16 +484,23 @@ msgid "" "if *lambd* is positive, and from negative infinity to 0 if *lambd* is " "negative." msgstr "" +"Distribution exponentielle. *lambd* est 1,0 divisé par la moyenne désirée. " +"Ce ne doit pas être zéro. (Le paramètre aurait dû s'appeler \"lambda\", " +"mais c'est un mot réservé en Python.) Les valeurs renvoyées vont de 0 à " +"plus l'infini positif si *lambd* est positif, et de moins l'infini à 0 si " +"*lambd* est négatif." #: ../Doc/library/random.rst:254 msgid "" "Gamma distribution. (*Not* the gamma function!) Conditions on the " "parameters are ``alpha > 0`` and ``beta > 0``." msgstr "" +"Distribution gamma. (*Ce n'est pas* la fonction gamma !) Les conditions sur " +"les paramètres sont ``alpha > 0`` et ``beta > 0``." #: ../Doc/library/random.rst:257 msgid "The probability distribution function is::" -msgstr "" +msgstr "La fonction de distribution de probabilité est ::" #: ../Doc/library/random.rst:266 msgid "" @@ -393,6 +508,9 @@ msgid "" "deviation. This is slightly faster than the :func:`normalvariate` function " "defined below." msgstr "" +"Distribution gaussienne. *mu* est la moyenne et *sigma* est la écart type. " +"C'est légèrement plus rapide que la fonction :func:`normalvariate` définie " +"ci-dessous." #: ../Doc/library/random.rst:273 msgid "" @@ -401,12 +519,17 @@ msgid "" "deviation *sigma*. *mu* can have any value, and *sigma* must be greater " "than zero." msgstr "" +"Logarithme de la distribution normale. Si vous prenez le logarithme naturel " +"de cette distribution, vous obtiendrez une distribution normale avec *mu* " +"moyen et écart-type *sigma*. *mu* peut avoir n'importe quelle valeur et " +"*sigma* doit être supérieur à zéro." #: ../Doc/library/random.rst:281 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" +"Distribution normale. *mu* est la moyenne et *sigma* est l'écart type." #: ../Doc/library/random.rst:286 msgid "" @@ -415,20 +538,26 @@ msgid "" "to zero. If *kappa* is equal to zero, this distribution reduces to a " "uniform random angle over the range 0 to 2\\*\\ *pi*." msgstr "" +"*mu* est l'angle moyen, exprimé en radians entre 0 et 2\\*\\ *pi*, et " +"*kappa* est le paramètre de concentration, qui doit être supérieur ou égal à " +"zéro. Si *kappa* est égal à zéro, cette distribution se réduit à un angle " +"aléatoire uniforme sur la plage de 0 à 2\\*\\ *pi*." #: ../Doc/library/random.rst:294 msgid "Pareto distribution. *alpha* is the shape parameter." -msgstr "" +msgstr "Distribution de Pareto. *alpha* est le paramètre de forme." #: ../Doc/library/random.rst:299 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." msgstr "" +"Distribution de Weibull. *alpha* est le paramètre de l'échelle et *beta* " +"est le paramètre de forme." #: ../Doc/library/random.rst:304 msgid "Alternative Generator" -msgstr "" +msgstr "Générateur alternatif" #: ../Doc/library/random.rst:308 msgid "" @@ -439,10 +568,17 @@ msgid "" "ignored. The :meth:`getstate` and :meth:`setstate` methods raise :exc:" "`NotImplementedError` if called." msgstr "" +"Classe qui utilise la fonction :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation. Non " +"disponible sur tous les systèmes. Ne repose pas sur un état purement " +"logiciel et les séquences ne sont pas reproductibles. Par conséquent, la " +"méthode :meth:`seed` n'a aucun effet et est ignorée. Les méthodes :meth:" +"`getstate` et :meth:`setstate` lèvent :exc:`NotImplementedError` si vous les " +"appelez." #: ../Doc/library/random.rst:317 msgid "Notes on Reproducibility" -msgstr "" +msgstr "Remarques sur la reproductibilité" #: ../Doc/library/random.rst:319 msgid "" @@ -451,36 +587,48 @@ msgid "" "should be reproducible from run to run as long as multiple threads are not " "running." msgstr "" +"Il est parfois utile de pouvoir reproduire les séquences données par un " +"générateur de nombres pseudo-aléatoires. En réutilisant la même graine, la " +"même séquence devrait être reproductible d'une exécution à l'autre tant que " +"plusieurs processus ne sont pas en cours." #: ../Doc/library/random.rst:323 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" msgstr "" +"La plupart des algorithmes et des fonctions de génération de graine du " +"module aléatoire sont susceptibles d'être modifiés d'une version à l'autre " +"de Python, mais deux aspects sont garantis de ne pas changer ::" #: ../Doc/library/random.rst:326 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." msgstr "" +"Si une nouvelle méthode de génération de graine est ajoutée, une fonction " +"rétro-compatible sera offerte." #: ../Doc/library/random.rst:329 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." msgstr "" +"La méthode :meth:`~Random.random` du générateur continuera à produire la " +"même séquence lorsque la fonction de génération de graine compatible recevra " +"la même semence." #: ../Doc/library/random.rst:335 msgid "Examples and Recipes" -msgstr "Exemples et Recettes" +msgstr "Exemples et recettes" #: ../Doc/library/random.rst:337 msgid "Basic examples::" -msgstr "Utilisation basique : ::" +msgstr "Exemples de base ::" #: ../Doc/library/random.rst:365 msgid "Simulations::" -msgstr "" +msgstr "Simulations : ::" #: ../Doc/library/random.rst:390 msgid "" @@ -488,6 +636,10 @@ msgid "" "Bootstrapping_(statistics)>`_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample of size five::" msgstr "" +"Exemple de `*bootstrapping* statistique `_ utilisant le ré-échantillonnage avec remise pour " +"estimer un intervalle de confiance pour la moyenne d'un échantillon de " +"taille cinq : ::" #: ../Doc/library/random.rst:404 msgid "" @@ -496,11 +648,18 @@ msgid "" "significance or `p-value `_ of an " "observed difference between the effects of a drug versus a placebo::" msgstr "" +"Exemple d'un `*resampling permutation test* `_ pour déterminer la " +"signification statistique ou `valeur p `_ d'une différence observée entre les effets d'un médicament et " +"ceux d'un placebo ::" #: ../Doc/library/random.rst:431 msgid "" "Simulation of arrival times and service deliveries in a single server queue::" msgstr "" +"Simulation des heures d'arrivée et des livraisons de services dans une seule " +"file d'attente de serveurs ::" #: ../Doc/library/random.rst:462 msgid "" @@ -509,6 +668,11 @@ msgid "" "profile/295/>`_ on statistical analysis using just a few fundamental " "concepts including simulation, sampling, shuffling, and cross-validation." msgstr "" +"`Statistics for Hackers `_ un " +"tutoriel vidéo par `Jake Vanderplas `_ sur l'analyse statistique en utilisant seulement quelques " +"concepts fondamentaux dont la simulation, l'échantillonnage, le brassage et " +"la validation croisée." #: ../Doc/library/random.rst:468 msgid "" @@ -518,6 +682,11 @@ msgid "" "distributions provided by this module (gauss, uniform, sample, betavariate, " "choice, triangular, and randrange)." msgstr "" +"`Economics Simulation `_ simulation d'un marché par `Peter Norvig `_ qui montre l'utilisation efficace de plusieurs des outils et " +"distributions fournis par ce module (*gauss*, *uniform*, *sample*, " +"*betavariate*, *choice*, *triangular*, et *randrange*)." #: ../Doc/library/random.rst:475 msgid "" @@ -527,3 +696,8 @@ msgid "" "theory, how to write simulations, and how to perform data analysis using " "Python." msgstr "" +"`A Concrete Introduction to Probability (using Python) `_ un tutoriel par " +"`Peter Norvig `_ couvrant les bases de la " +"théorie des probabilités, comment écrire des simulations, et comment " +"effectuer des analyses de données avec Python." diff --git a/library/re.po b/library/re.po index 171ff09b7..b8d1ab742 100644 --- a/library/re.po +++ b/library/re.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/re.rst:2 msgid ":mod:`re` --- Regular expression operations" -msgstr ":mod:`re` --- Opérations à base d'expressions rationnelles" +msgstr ":mod:`re` — Opérations à base d'expressions rationnelles" #: ../Doc/library/re.rst:10 msgid "**Source code:** :source:`Lib/re.py`" @@ -1183,11 +1183,11 @@ msgstr "" #: ../Doc/library/re.rst:500 msgid "The sequence ::" -msgstr "La séquence : ::" +msgstr "La séquence ::" #: ../Doc/library/re.rst:505 msgid "is equivalent to ::" -msgstr "est équivalente à : ::" +msgstr "est équivalente à ::" #: ../Doc/library/re.rst:509 msgid "" @@ -1221,7 +1221,7 @@ msgstr "" "Fait correspondre à ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``" "\\s`` et ``\\s`` des caractères ASCII seulement, plutôt qu'Unicode. Cela " "n'a du sens que pour les motifs Unicode, et est ignoré pour les motifs 8-" -"bit. Correspond à l'option en ligne ``(?a)``." +"bit. Correspond à l'option de groupe ``(?a)``." #: ../Doc/library/re.rst:529 msgid "" @@ -1242,7 +1242,7 @@ msgid "" "flag." msgstr "" "Affiche des informations de débogage à propos de l'expression compilée. N'a " -"pas d'option en ligne équivalente." +"pas d'option de groupe équivalente." #: ../Doc/library/re.rst:545 msgid "" @@ -1258,7 +1258,7 @@ msgstr "" "que ``Ü`` correspondant à ``ü``) fonctionne aussi, tant que l'option :const:" "`re.ASCII` n'est pas utilisée. La locale n'affecte pas cette option, tant " "que l'option :const:`re.LOCALE` n'est pas utilisée. Correspond au marqueur " -"en ligne ``(?i)``." +"de groupe ``(?i)``." #: ../Doc/library/re.rst:552 msgid "" @@ -1289,7 +1289,7 @@ msgstr "" "fois, et ne fonctionnant que pour les locales 8-bits. L'analyse Unicode est " "déjà activée par défaut dans Python 3 pour les motifs Unicode (*str*), et " "elle est capable de gérer plusieurs locales et langages. Correspond à " -"l'option en ligne ``(?L)``." +"l'option de groupe ``(?L)``." #: ../Doc/library/re.rst:574 msgid "" @@ -1315,7 +1315,7 @@ msgstr "" "(juste avant le saut de ligne). Par défaut, ``'^'`` correspond uniquement " "au début de la chaîne, et ``'$'`` uniquement à la fin de la chaîne, ou " "immédiatement avant le saut de ligne (s'il y a) à la fin de la chaîne. " -"Correspond à l'option en ligne ``(?m)``." +"Correspond à l'option de groupe ``(?m)``." #: ../Doc/library/re.rst:594 msgid "" @@ -1325,7 +1325,7 @@ msgid "" msgstr "" "Fait correspondre tous les caractères possibles à ``'.'``, incluant le saut " "de ligne ; sans cette option, ``'.'`` correspondrait à tout caractère à " -"l'exception du saut de ligne. Correspond à l'option en ligne ``(?s)``." +"l'exception du saut de ligne. Correspond à l'option de groupe ``(?s)``." #: ../Doc/library/re.rst:602 msgid "" @@ -1354,7 +1354,7 @@ msgid "" "decimal number are functionally equal::" msgstr "" "Cela signifie que les deux expressions rationnelles suivantes qui valident " -"un nombre décimal sont fonctionnellement égales : ::" +"un nombre décimal sont fonctionnellement égales ::" #: ../Doc/library/re.rst:619 msgid "Corresponds to the inline flag ``(?x)``." @@ -1427,7 +1427,7 @@ msgstr "" "capture sont utilisées dans *pattern*, alors les textes des groupes du motif " "sont aussi renvoyés comme éléments de la liste résultante. Si *maxsplit* est " "différent de zéro, il ne pourra y avoir plus de *maxsplit* séparations, et " -"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. : ::" +"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. ::" #: ../Doc/library/re.rst:672 msgid "" @@ -2012,7 +2012,7 @@ msgstr "" "la correspondance complète). Renvoie ``-1`` si *group* existe mais ne figure " "pas dans la correspondance. Pour un objet de correspondance *m*, et un " "groupe *g* qui y figure, la sous-chaîne correspondant au groupe *g* " -"(équivalente à ``m.group(g)``) est : ::" +"(équivalente à ``m.group(g)``) est ::" #: ../Doc/library/re.rst:1143 msgid "" @@ -2250,15 +2250,15 @@ msgstr "``[-+]?(0[xX])?[\\dA-Fa-f]+``" #: ../Doc/library/re.rst:1299 msgid "To extract the filename and numbers from a string like ::" msgstr "" -"Pour extraire le nom de fichier et les nombres depuis une chaîne comme : ::" +"Pour extraire le nom de fichier et les nombres depuis une chaîne comme ::" #: ../Doc/library/re.rst:1303 msgid "you would use a :c:func:`scanf` format like ::" -msgstr "vous utiliseriez un format :c:func:`scanf` comme : ::" +msgstr "vous utiliseriez un format :c:func:`scanf` comme ::" #: ../Doc/library/re.rst:1307 msgid "The equivalent regular expression would be ::" -msgstr "L'expression rationnelle équivalente serait : ::" +msgstr "L'expression rationnelle équivalente serait ::" #: ../Doc/library/re.rst:1315 msgid "search() vs. match()" @@ -2282,7 +2282,7 @@ msgid "" "to restrict the match at the beginning of the string::" msgstr "" "Les expressions rationnelles commençant par ``'^'`` peuvent être utilisées " -"avec :func:`search` pour restreindre la recherche au début de la chaîne : ::" +"avec :func:`search` pour restreindre la recherche au début de la chaîne ::" #: ../Doc/library/re.rst:1338 msgid "" @@ -2363,7 +2363,7 @@ msgstr "" ":func:`sub` remplace toutes les occurrences d'un motif par une chaîne ou le " "résultat d'une fonction. Cet exemple le montre, en utilisant :func:`sub` " "avec une fonction qui mélange aléatoirement les caractères de chaque mot " -"dans une phrase (à l'exception des premiers et derniers caractères) : ::" +"dans une phrase (à l'exception des premiers et derniers caractères) ::" #: ../Doc/library/re.rst:1426 msgid "Finding all Adverbs" @@ -2453,11 +2453,11 @@ msgid "" msgstr "" "Les catégories de texte sont spécifiées par des expressions rationnelles. " "La technique est de les combiner dans une unique expression rationnelle " -"maîtresse, et de boucler sur les correspondances successives : ::" +"maîtresse, et de boucler sur les correspondances successives ::" #: ../Doc/library/re.rst:1535 msgid "The tokenizer produces the following output::" -msgstr "L'analyseur produit la sortie suivante : ::" +msgstr "L'analyseur produit la sortie suivante ::" #: ../Doc/library/re.rst:1558 msgid "" diff --git a/library/readline.po b/library/readline.po index 85145c33f..172a4a70b 100644 --- a/library/readline.po +++ b/library/readline.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/readline.rst:2 msgid ":mod:`readline` --- GNU readline interface" -msgstr ":mod:`readline` --- interface pour GNU *readline*" +msgstr ":mod:`readline` — interface pour GNU *readline*" #: ../Doc/library/readline.rst:12 msgid "" @@ -430,9 +430,9 @@ msgstr "" "L'exemple suivant démontre comment utiliser les fonctions de lecture et " "d'écriture de l'historique du module :mod:`readline` pour charger ou " "sauvegarder automatiquement un fichier d'historique nommé :file:`." -"python_history` depuis le répertoire racine de l'utilisateur. Le code ci-" +"python_history` depuis le répertoire d’accueil de l’utilisateur. Le code ci-" "dessous doit normalement être exécuté automatiquement durant une session " -"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. : ::" +"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. ::" #: ../Doc/library/readline.rst:302 msgid "" @@ -448,7 +448,7 @@ msgid "" "interactive sessions, by only appending the new history. ::" msgstr "" "L'exemple suivant atteint le même objectif mais gère des sessions " -"interactives concurrentes, en ajoutant seulement le nouvel historique. : ::" +"interactives concurrentes, en ajoutant seulement le nouvel historique. ::" #: ../Doc/library/readline.rst:326 msgid "" @@ -456,4 +456,4 @@ msgid "" "support history save/restore. ::" msgstr "" "L'exemple suivant étend la classe :class:`code.InteractiveConsole` pour " -"gérer la sauvegarde/restauration de l'historique. : ::" +"gérer la sauvegarde/restauration de l'historique. ::" diff --git a/library/rlcompleter.po b/library/rlcompleter.po index 05e98cefd..7a9642273 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/rlcompleter.rst:2 msgid ":mod:`rlcompleter` --- Completion function for GNU readline" -msgstr ":mod:`rlcompleter` --- Fonction de complétion pour *GNU readline*" +msgstr ":mod:`rlcompleter` — Fonction de complétion pour *GNU readline*" #: ../Doc/library/rlcompleter.rst:9 msgid "**Source code:** :source:`Lib/rlcompleter.py`" diff --git a/library/shelve.po b/library/shelve.po index a84757863..9e6907130 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/shelve.rst:2 msgid ":mod:`shelve` --- Python object persistence" -msgstr ":mod:`shelve` --- Objet Python persistant" +msgstr ":mod:`shelve` — Objet Python persistant" #: ../Doc/library/shelve.rst:7 msgid "**Source code:** :source:`Lib/shelve.py`" @@ -101,7 +101,7 @@ msgid "" msgstr "" "Ne pas se fier à la fermeture automatique de *shelf* ; appelez toujours :" "meth:`~Shelf.close` explicitement quand vous n'en avez plus besoin, ou " -"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" +"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" #: ../Doc/library/shelve.rst:54 msgid "" @@ -256,7 +256,7 @@ msgstr "" #: ../Doc/library/shelve.rst:130 msgid "Added context manager support." -msgstr "Ajout du support des gestionnaires de contexte." +msgstr "Ajout de la gestion des gestionnaires de contexte." #: ../Doc/library/shelve.rst:136 msgid "" @@ -307,7 +307,7 @@ msgid "" "object)::" msgstr "" "Pour résumer l'interface (``key`` est une chaîne de caractère, ``data`` est " -"un objet arbitraire) ::" +"un objet arbitraire) ::" #: ../Doc/library/shelve.rst:199 msgid "Module :mod:`dbm`" diff --git a/library/shutil.po b/library/shutil.po index bc34b25b4..494ec6b42 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -90,6 +90,12 @@ msgid "" "a copy that accepts a target directory path. If *src* and *dst* specify the " "same file, :exc:`SameFileError` is raised." msgstr "" +"Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " +"nommé *dst* et renvoie *dst*. *src* et *dst* sont des chemins sous forme de " +"chaînes de caractères. *dst* doit être le chemin complet de la cible ; voir " +"dans :func:`shutil.copy` pour une copie acceptant le chemin du dossier " +"cible. Si *src* et *dst* désignent le même fichier :exc:`SameFileError` est " +"levée." #: ../Doc/library/shutil.rst:59 msgid "" @@ -146,6 +152,14 @@ msgid "" "`copymode` cannot modify symbolic links on the local platform, and it is " "asked to do so, it will do nothing and return." msgstr "" +"Copie les octets de permission de *src* vers *dst*. Le contenu du fichier, " +"le propriétaire et le groupe ne sont pas modifiés. *src* et *dst* sont des " +"chaînes spécifiant les chemins. Si *follow_symlinks* est faux, et *src* et " +"*dst* sont des liens symboliques, :func:`copymode` tente de modifier le mode " +"de *dst* (au lieu du fichier vers lequel il pointe). Cette fonctionnalité " +"n'est pas disponible sur toutes les plateformes ; voir :func:`copystat` pour " +"plus d'informations. Si :func:`copymode` ne peut pas modifier les liens " +"symboliques sur la plateforme cible alors que c'est demandé, il ne fait rien." #: ../Doc/library/shutil.rst:97 msgid "Added *follow_symlinks* argument." @@ -158,6 +172,12 @@ msgid "" "\"extended attributes\" where possible. The file contents, owner, and group " "are unaffected. *src* and *dst* are path names given as strings." msgstr "" +"Copie les bits définissant les droits d'accès, la date du dernier accès, de " +"la dernière modification et les drapeaux (*flags* en anglais) de *src* vers " +"*dst*. Sur Linux, :func:`copystat` copie également, si possible, les " +"\"*extended attributes*\". Le contenu du fichier, le propriétaire et le " +"groupe ne sont pas affectés. *src* et *dst* sont des chaînes spécifiant les " +"chemins." #: ../Doc/library/shutil.rst:107 msgid "" diff --git a/library/smtplib.po b/library/smtplib.po index 01402f250..c9bfd3dfe 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -68,7 +68,7 @@ msgstr "" #: ../Doc/library/smtplib.rst:58 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/smtplib.rst:61 ../Doc/library/smtplib.rst:90 msgid "source_address argument was added." diff --git a/library/sndhdr.po b/library/sndhdr.po index 7fa808409..f515fe8fd 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/sndhdr.rst:2 msgid ":mod:`sndhdr` --- Determine type of sound file" -msgstr ":mod:`sndhdr` --- Détermine le type d'un fichier audio" +msgstr ":mod:`sndhdr` — Détermine le type d'un fichier audio" #: ../Doc/library/sndhdr.rst:10 msgid "**Source code:** :source:`Lib/sndhdr.py`" diff --git a/library/socket.po b/library/socket.po index ec2e3c685..dd620b128 100644 --- a/library/socket.po +++ b/library/socket.po @@ -523,7 +523,7 @@ msgstr "" #: ../Doc/library/socket.rst:887 ../Doc/library/socket.rst:970 msgid "The newly created socket is :ref:`non-inheritable `." msgstr "" -"Il n'est :ref:`pas possible d'hériter ` de la *socket* " +"Il n'est :ref:`pas possible d'hériter ` du connecteur " "nouvellement créé." #: ../Doc/library/socket.rst:439 @@ -867,7 +867,7 @@ msgstr "" #: ../Doc/library/socket.rst:738 ../Doc/library/socket.rst:758 msgid "Windows support added" -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows." #: ../Doc/library/socket.rst:744 msgid "" diff --git a/library/ssl.po b/library/ssl.po index d2134d620..e97a82f71 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/ssl.rst:2 msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" -msgstr "" +msgstr ":mod:`ssl` — Emballage TLS/SSL pour les objets connecteurs" #: ../Doc/library/ssl.rst:10 msgid "**Source code:** :source:`Lib/ssl.py`" @@ -34,6 +34,13 @@ msgid "" "X, and probably additional platforms, as long as OpenSSL is installed on " "that platform." msgstr "" +"Ce module fournit un accès aux fonctions de chiffrement et " +"d'authentification entre pairs : « *Transport Layer Security* » (souvent " +"appelé « *Secure Sockets Layer* ») pour les connecteurs réseau, côté client " +"et côté serveur. Ce module utilise la bibliothèque OpenSSL. Il est " +"disponible sur tous les systèmes Unix modernes, Windows, Mac OS X et " +"probablement sur d'autres plates-formes, à condition qu'OpenSSL soit " +"installé sur cette plate-forme." #: ../Doc/library/ssl.rst:26 msgid "" @@ -42,6 +49,11 @@ msgid "" "cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with " "openssl version 1.0.1." msgstr "" +"Certains comportements peuvent dépendre de la plate-forme, car des appels " +"sont passés aux API de connexions du système d'exploitation. La version " +"installée de OpenSSL peut également entraîner des variations de " +"comportement. Par exemple, TLSv1.1 et TLSv1.2 sont livrés avec la version " +"1.0.1 de OpenSSL." #: ../Doc/library/ssl.rst:32 msgid "" @@ -49,6 +61,9 @@ msgid "" "lead to a false sense of security, as the default settings of the ssl module " "are not necessarily appropriate for your application." msgstr "" +"N’utilisez pas ce module sans lire :ref:`ssl-security`. Cela pourrait créer " +"un faux sentiment de sécurité, car les paramètres par défaut du module *ssl* " +"ne sont pas nécessairement appropriés pour votre application." #: ../Doc/library/ssl.rst:37 msgid "" @@ -56,6 +71,10 @@ msgid "" "more general information about TLS, SSL, and certificates, the reader is " "referred to the documents in the \"See Also\" section at the bottom." msgstr "" +"Cette section documente les objets et les fonctions du module ``ssl``. Pour " +"des informations plus générales sur TLS, SSL et les certificats, le lecteur " +"est prié de se référer aux documents de la section « Voir Aussi » au bas de " +"cette page." #: ../Doc/library/ssl.rst:41 msgid "" @@ -66,6 +85,13 @@ msgid "" "certificate of the other side of the connection, and :meth:`cipher`,which " "retrieves the cipher being used for the secure connection." msgstr "" +"Ce module fournit une classe :class:`ssl.SSLSocket`, dérivée du type :class:" +"`socket.socket`, ainsi qu'une enveloppe (*wrapper* en anglais) qui mime un " +"connecteur qui chiffre et déchiffre les données passant sur le connecteur " +"utilisant SSL. Il prend en charge des méthodes supplémentaires telles que :" +"meth:`getpeercert` qui récupère le certificat de l'autre coté de la " +"connexion et :meth:`cipher`, qui récupère le chiffrement utilisé pour la " +"connexion." #: ../Doc/library/ssl.rst:48 msgid "" @@ -73,20 +99,27 @@ msgid "" "manage settings and certificates, which can then be inherited by SSL sockets " "created through the :meth:`SSLContext.wrap_socket` method." msgstr "" +"Pour les applications plus sophistiquées, la classe :class:`ssl.SSLContext` " +"facilite la gestion des paramètres et des certificats, qui peuvent ensuite " +"être hérités par les connecteurs SSL créés via la méthode :meth:`SSLContext." +"wrap_socket`." #: ../Doc/library/ssl.rst:52 msgid "Updated to support linking with OpenSSL 1.1.0" -msgstr "" +msgstr "Mise à jour pour prendre en charge la liaison avec OpenSSL 1.1.0" #: ../Doc/library/ssl.rst:57 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the ssl module will require at least OpenSSL 1.0.2 or 1.1.0." msgstr "" +"OpenSSL 0.9.8, 1.0.0 et 1.0.1 sont obsolètes et ne sont plus prises en " +"charge. Dans l'avenir, le module *ssl* nécessitera au minimum OpenSSL 1.0.2 " +"ou 1.1.0." #: ../Doc/library/ssl.rst:63 msgid "Functions, Constants, and Exceptions" -msgstr "" +msgstr "Fonctions, constantes et exceptions" #: ../Doc/library/ssl.rst:67 msgid "" @@ -97,10 +130,16 @@ msgid "" "The error code and message of :exc:`SSLError` instances are provided by the " "OpenSSL library." msgstr "" +"Levée pour signaler une erreur de l'implémentation SSL sous-jacente " +"(actuellement fournie par la bibliothèque OpenSSL). Cela signifie qu'un " +"problème est apparu dans la couche d'authentification et de chiffrement de " +"niveau supérieur qui s'appuie sur la connexion réseau sous-jacente. Cette " +"erreur est un sous-type de :exc:`OSError`. Le code d'erreur et le message " +"des instances de :exc:`SSLError` sont fournis par la bibliothèque OpenSSL." #: ../Doc/library/ssl.rst:74 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." -msgstr "" +msgstr ":exc:`SSLError` était un sous-type de :exc:`socket.error`." #: ../Doc/library/ssl.rst:79 msgid "" @@ -108,6 +147,9 @@ msgid "" "occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " "values depends on the OpenSSL version." msgstr "" +"Une chaîne de caractères mnémonique désignant le sous-module OpenSSL dans " +"lequel l'erreur s'est produite, telle que ``SSL``, ``PEM`` ou ``X509``. " +"L'étendue des valeurs possibles dépend de la version d'OpenSSL." #: ../Doc/library/ssl.rst:87 msgid "" @@ -129,6 +171,10 @@ msgid "" "nonblocking>` when trying to read or write data, but more data needs to be " "received on the underlying TCP transport before the request can be fulfilled." msgstr "" +"Sous-classe de :exc:`SSLError` levée par un connecteur :ref:`SSL non " +"bloquant ` lors d'une tentative de lecture ou d'écriture de " +"données, alors que davantage de données doivent être reçues sur la couche " +"TCP sous-jacente avant que la demande puisse être satisfaite." #: ../Doc/library/ssl.rst:112 msgid "" @@ -160,7 +206,7 @@ msgstr "" #: ../Doc/library/ssl.rst:143 msgid "Socket creation" -msgstr "" +msgstr "Création de connecteurs" #: ../Doc/library/ssl.rst:145 msgid "" @@ -367,13 +413,15 @@ msgstr "" #: ../Doc/library/ssl.rst:244 msgid "Context creation" -msgstr "" +msgstr "Création de contexte" #: ../Doc/library/ssl.rst:246 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." msgstr "" +"Une fonction utilitaire permettant de créer facilement des objets :class:" +"`SSLContext` pour des usages classiques." #: ../Doc/library/ssl.rst:251 msgid "" @@ -382,6 +430,11 @@ msgid "" "represent a higher security level than when calling the :class:`SSLContext` " "constructor directly." msgstr "" +"Renvoie un nouvel objet :class:`SSLContext`. Le paramètre *purpose* permet " +"de choisir parmi un ensemble de paramètres par défaut en fonction de l'usage " +"souhaité. Les paramètres sont choisis par le module :mod:`ssl` et " +"représentent généralement un niveau de sécurité supérieur à celui utilisé " +"lorsque vous appelez directement le constructeur :class:`SSLContext`." #: ../Doc/library/ssl.rst:256 msgid "" @@ -390,6 +443,11 @@ msgid "" "If all three are :const:`None`, this function can choose to trust the " "system's default CA certificates instead." msgstr "" +"*cafile*, *capath*, *cadata* représentent des certificats d'autorité de " +"certification facultatifs approuvés pour la vérification de certificats, " +"comme dans :meth:`SSLContext.load_verify_locations`. Si les trois sont à :" +"const:`None`, cette fonction peut choisir de faire confiance aux certificats " +"d'autorité de certification par défaut du système." #: ../Doc/library/ssl.rst:262 msgid "" @@ -401,6 +459,15 @@ msgid "" "*cadata* is given) or uses :meth:`SSLContext.load_default_certs` to load " "default CA certificates." msgstr "" +"Les paramètres sont : :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2` et :data:" +"`OP_NO_SSLv3` avec des algorithmes de chiffrement de grande robustesse, " +"n'utilisant pas RC4 et n'utilisant pas les suites cryptographiques sans " +"authentification. Passer :data:`~Purpose.SERVER_AUTH` en tant que *purpose* " +"définit :data:`~SSLContext.verify_mode` sur :data:`CERT_REQUIRED` et charge " +"les certificats de l'autorité de certification (lorsqu'au moins un des " +"paramètres *cafile*, *capath* ou *cadata* est renseigné) ou utilise :meth:" +"`SSLContext.load_default_certs` pour charger les certificats des autorités " +"de certification par défaut." #: ../Doc/library/ssl.rst:271 msgid "" @@ -408,12 +475,18 @@ msgid "" "restrictive values anytime without prior deprecation. The values represent " "a fair balance between compatibility and security." msgstr "" +"Le protocole, les options, l'algorithme de chiffrement et d'autres " +"paramètres peuvent changer pour des valeurs plus restrictives à tout moment " +"sans avertissement préalable. Les valeurs représentent un juste équilibre " +"entre compatibilité et sécurité." #: ../Doc/library/ssl.rst:275 msgid "" "If your application needs specific settings, you should create a :class:" "`SSLContext` and apply the settings yourself." msgstr "" +"Si votre application nécessite des paramètres spécifiques, vous devez créer " +"une classe :class:`SSLContext` et appliquer les paramètres vous-même." #: ../Doc/library/ssl.rst:279 msgid "" @@ -425,18 +498,32 @@ msgid "" "org/wiki/POODLE>`_. If you still wish to continue to use this function but " "still allow SSL 3.0 connections you can re-enable them using::" msgstr "" +"Si vous constatez que, lorsque certains clients ou serveurs plus anciens " +"tentent de se connecter avec une classe :class:`SSLContext` créée par cette " +"fonction, une erreur indiquant « *Protocol or cipher suite " +"mismatch* » (« Non concordance de protocole ou d'algorithme de " +"chiffrement ») est détectée, il se peut qu'ils ne prennent en charge que SSL " +"3.0 que cette fonction exclut en utilisant :data:`OP_NO_SSLv3`. SSL3.0 est " +"notoirement considéré comme `totalement déficient `_. Si vous souhaitez toujours continuer à utiliser cette " +"fonction tout en autorisant les connexions SSL 3.0, vous pouvez les " +"réactiver à l'aide de ::" #: ../Doc/library/ssl.rst:295 msgid "RC4 was dropped from the default cipher string." msgstr "" +"RC4 a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:299 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" +"*ChaCha20*/*Poly1305* a été ajouté à la liste des algorithmes de chiffrement " +"par défaut." #: ../Doc/library/ssl.rst:301 msgid "3DES was dropped from the default cipher string." msgstr "" +"*3DES* a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:305 msgid "" diff --git a/library/statistics.po b/library/statistics.po index b160e2765..5cf95ac46 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -421,7 +421,7 @@ msgstr "" #: ../Doc/library/statistics.rst:323 ../Doc/library/statistics.rst:397 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/statistics.rst:331 msgid "" diff --git a/library/stdtypes.po b/library/stdtypes.po index a15dbcaff..58da6609e 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -85,19 +85,19 @@ msgid "" msgstr "" "Par défaut, tout objet est considéré vrai à moins que sa classe définisse " "soit une méthode :meth:`__bool__` renvoyant ``False`` soit une méthode :meth:" -"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici " -"la majorité des objets natifs considérés comme étant faux :" +"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici la " +"majorité des objets natifs considérés comme étant faux :" #: ../Doc/library/stdtypes.rst:55 msgid "constants defined to be false: ``None`` and ``False``." -msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." +msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." #: ../Doc/library/stdtypes.rst:57 msgid "" "zero of any numeric type: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" msgstr "" -"zéro de tout type numérique: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " +"zéro de tout type numérique : ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" #: ../Doc/library/stdtypes.rst:60 @@ -105,7 +105,7 @@ msgid "" "empty sequences and collections: ``''``, ``()``, ``[]``, ``{}``, ``set()``, " "``range(0)``" msgstr "" -"Les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " +"les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " "``set()``, ``range(0)``" #: ../Doc/library/stdtypes.rst:69 @@ -117,7 +117,7 @@ msgid "" msgstr "" "Les opérations et fonctions natives dont le résultat est booléen donnent " "toujours ``0`` ou ``False`` pour faux et ``1`` ou ``True`` pour vrai, sauf " -"indication contraire. (Exception importante : les opérations booléennes " +"indication contraire. (Exception importante : les opérations booléennes " "``or`` et ``and`` renvoient toujours l'une de leurs opérandes.)" #: ../Doc/library/stdtypes.rst:78 @@ -127,7 +127,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:82 msgid "These are the Boolean operations, ordered by ascending priority:" -msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" +msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:143 #: ../Doc/library/stdtypes.rst:271 ../Doc/library/stdtypes.rst:360 @@ -208,7 +208,7 @@ msgid "" "This is a short-circuit operator, so it only evaluates the second argument " "if the first one is false." msgstr "" -"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " +"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " "si le premier est faux." #: ../Doc/library/stdtypes.rst:109 @@ -242,14 +242,14 @@ msgid "" msgstr "" "Il y a huit opérations de comparaison en Python. Elles ont toutes la même " "priorité (qui est supérieure à celle des opérations booléennes). Les " -"comparaisons peuvent être enchaînées arbitrairement; par exemple, ``x < y <= " -"z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué qu'une " -"seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand ``x < " -"y`` est faux)." +"comparaisons peuvent être enchaînées arbitrairement ; par exemple, ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué " +"qu'une seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand " +"``x < y`` est faux)." #: ../Doc/library/stdtypes.rst:140 msgid "This table summarizes the comparison operations:" -msgstr "Ce tableau résume les opérations de comparaison :" +msgstr "Ce tableau résume les opérations de comparaison :" #: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2145 #: ../Doc/library/stdtypes.rst:2168 ../Doc/library/stdtypes.rst:3249 @@ -384,7 +384,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:206 msgid "Numeric Types --- :class:`int`, :class:`float`, :class:`complex`" -msgstr "Types numériques --- :class:`int`, :class:`float`, :class:`complex`" +msgstr "Types numériques — :class:`int`, :class:`float`, :class:`complex`" #: ../Doc/library/stdtypes.rst:216 msgid "" @@ -886,7 +886,7 @@ msgid "" "excluding the sign and leading zeros::" msgstr "" "Renvoie le nombre de bits nécessaires pour représenter un nombre entier en " -"binaire, à l'exclusion du signe et des zéros non significatifs : ::" +"binaire, à l'exclusion du signe et des zéros non significatifs ::" #: ../Doc/library/stdtypes.rst:459 msgid "" @@ -904,7 +904,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:465 msgid "Equivalent to::" -msgstr "Équivalent à : ::" +msgstr "Équivalent à ::" #: ../Doc/library/stdtypes.rst:476 msgid "Return an array of bytes representing an integer." @@ -995,7 +995,7 @@ msgid "" "``False`` otherwise::" msgstr "" "Donne ``True`` si l'instance de *float* est finie avec une valeur entière, " -"et ``False`` autrement : ::" +"et ``False`` autrement ::" #: ../Doc/library/stdtypes.rst:560 msgid "" @@ -1044,7 +1044,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:587 msgid "A hexadecimal string takes the form::" -msgstr "Une chaîne hexadécimale prend la forme : ::" +msgstr "Une chaîne hexadécimale prend la forme ::" #: ../Doc/library/stdtypes.rst:591 msgid "" @@ -1325,7 +1325,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:802 msgid "Sequence Types --- :class:`list`, :class:`tuple`, :class:`range`" -msgstr "Types séquentiels --- :class:`list`, :class:`tuple`, :class:`range`" +msgstr "Types séquentiels — :class:`list`, :class:`tuple`, :class:`range`" #: ../Doc/library/stdtypes.rst:804 msgid "" @@ -1508,11 +1508,12 @@ msgid "" "(For full details see :ref:`comparisons` in the language reference.)" msgstr "" "Les séquences du même type supportent également la comparaison. En " -"particulier, les *tuples* et les listes sont comparées lexicographiquement " -"en comparant les éléments correspondants. Cela signifie que pour être " -"égales, chaque éléments doivent être égaux deux à deux et les deux séquences " -"doivent être du même type et de la même longueur. (Pour plus de détails " -"voir :ref:`comparisons` dans la référence du langage.)" +"particulier, les n-uplets et les listes sont comparés lexicographiquement en " +"comparant les éléments correspondants. Cela signifie que pour que deux " +"séquences soit égales, les éléments les constituant doivent être égaux deux " +"à deux et les deux séquences doivent être du même type et de la même " +"longueur. (Pour plus de détails voir :ref:`comparisons` dans la référence du " +"langage.)" #: ../Doc/library/stdtypes.rst:890 msgid "" @@ -1524,7 +1525,7 @@ msgstr "" "Bien que les opérations ``in`` et ``not in`` ne soient généralement " "utilisées que pour les tests d'appartenance simple, certaines séquences " "spécialisées (telles que :class:`str`, :class:`bytes` et :class:`bytearray`) " -"les utilisent aussi pour tester l'existence de sous-séquences : ::" +"les utilisent aussi pour tester l'existence de sous-séquences ::" #: ../Doc/library/stdtypes.rst:899 msgid "" @@ -1533,10 +1534,10 @@ msgid "" "not copied; they are referenced multiple times. This often haunts new " "Python programmers; consider::" msgstr "" -"Les valeurs de *n* plus petites que ``0`` sont traités comme ``0`` (ce qui " +"Les valeurs de *n* plus petites que ``0`` sont traitées comme ``0`` (ce qui " "donne une séquence vide du même type que *s*). Notez que les éléments de *s* " "ne sont pas copiés ; ils sont référencés plusieurs fois. Cela hante souvent " -"de nouveaux développeurs Python, typiquement : ::" +"de nouveaux développeurs Python, typiquement ::" #: ../Doc/library/stdtypes.rst:911 msgid "" @@ -1549,7 +1550,7 @@ msgstr "" "liste vide, de sorte que les trois éléments de ``[[]] * 3`` sont des " "références à cette seule liste vide. Modifier l'un des éléments de ``lists`` " "modifie cette liste unique. Vous pouvez créer une liste des différentes " -"listes de cette façon : ::" +"listes de cette façon ::" #: ../Doc/library/stdtypes.rst:923 msgid "" @@ -1900,7 +1901,7 @@ msgid "" "interfaces of mutable containers that don't support slicing operations (such " "as :class:`dict` and :class:`set`)" msgstr "" -":meth:`clear` et :meth:`!copy` sont inclues pour la compatibilité avec les " +":meth:`clear` et :meth:`!copy` sont incluses pour la compatibilité avec les " "interfaces des conteneurs muables qui ne supportent pas les opérations de " "découpage (comme :class:`dict` et :class:`set`)" @@ -2360,7 +2361,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1379 msgid "Text Sequence Type --- :class:`str`" -msgstr "Type Séquence de Texte --- :class:`str`" +msgstr "Type Séquence de Texte — :class:`str`" #: ../Doc/library/stdtypes.rst:1381 msgid "" @@ -2509,7 +2510,7 @@ msgstr "" "Donner un objet :class:`bytes` à :func:`str` sans ni l'argument *encoding* " "ni l'argument *errors* relève du premier cas, où la représentation " "informelle de la chaîne est renvoyé (voir aussi l'option :option:`-b` de " -"Python). Par exemple : ::" +"Python). Par exemple ::" #: ../Doc/library/stdtypes.rst:1458 msgid "" @@ -3110,7 +3111,7 @@ msgstr "" "L'argument *chars* est une chaîne spécifiant le jeu de caractères à " "supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " "L'argument *chars* n'est pas un suffixe : toutes les combinaisons de ses " -"valeurs sont retirées : ::" +"valeurs sont retirées ::" #: ../Doc/library/stdtypes.rst:1850 msgid "" @@ -3295,11 +3296,11 @@ msgid "" msgstr "" "Contrairement à :meth:`~str.split` lorsque *sep* est fourni, cette méthode " "renvoie une liste vide pour la chaîne vide, et un saut de ligne à la fin ne " -"se traduit pas par une ligne supplémentaire : ::" +"se traduit pas par une ligne supplémentaire ::" #: ../Doc/library/stdtypes.rst:1946 msgid "For comparison, ``split('\\n')`` gives::" -msgstr "À titre de comparaison, ``split('\\n')`` donne : ::" +msgstr "À titre de comparaison, ``split('\\n')`` donne ::" #: ../Doc/library/stdtypes.rst:1956 msgid "" @@ -3325,7 +3326,7 @@ msgstr "" "supprimés. L'argument *chars* est une chaîne spécifiant le jeu de caractères " "à supprimer. En cas d'omission ou ``None``, les espaces sont supprimés. " "L'argument *chars* est pas un préfixe ni un suffixe, toutes les combinaisons " -"de ses valeurs sont supprimées : ::" +"de ses valeurs sont supprimées ::" #: ../Doc/library/stdtypes.rst:1975 msgid "" @@ -3337,7 +3338,7 @@ msgstr "" "Les caractères de *char* sont retirés du début et de la fin de la chaîne. " "Les caractères sont retirés de la gauche jusqu'à atteindre un caractère ne " "figurant pas dans le jeu de caractères dans *chars*. La même opération à " -"lieu par la droite. Par exemple : ::" +"lieu par la droite. Par exemple ::" #: ../Doc/library/stdtypes.rst:1988 msgid "" @@ -3368,14 +3369,14 @@ msgstr "" "de la langue comme un groupe de lettres consécutives. La définition " "fonctionne dans de nombreux contextes, mais cela signifie que les " "apostrophes (typiquement de la forme possessive en Anglais) forment les " -"limites de mot, ce qui n'est pas toujours le résultat souhaité : ::" +"limites de mot, ce qui n'est pas toujours le résultat souhaité ::" #: ../Doc/library/stdtypes.rst:2011 ../Doc/library/stdtypes.rst:3111 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" "Une solution pour contourner le problème des apostrophes peut être obtenue " -"en utilisant des expressions rationnelles : ::" +"en utilisant des expressions rationnelles ::" #: ../Doc/library/stdtypes.rst:2026 msgid "" @@ -3680,7 +3681,7 @@ msgstr "``'u'``" #: ../Doc/library/stdtypes.rst:2176 ../Doc/library/stdtypes.rst:3280 msgid "Obsolete type -- it is identical to ``'d'``." -msgstr "Type obsolète --- identique à ``'d'``." +msgstr "Type obsolète — identique à ``'d'``." #: ../Doc/library/stdtypes.rst:2178 ../Doc/library/stdtypes.rst:3282 msgid "``'x'``" @@ -3909,8 +3910,8 @@ msgid "" "several methods that are only valid when working with ASCII compatible data " "and are closely related to string objects in a variety of other ways." msgstr "" -"Les *Bytes* sont des séquences immuables d'octets. Comme beaucoup de " -"protocoles binaires utilisent l'ASCII, les objets *Bytes* offrent plusieurs " +"Les *bytes* sont des séquences immuables d'octets. Comme beaucoup de " +"protocoles binaires utilisent l'ASCII, les objets *bytes* offrent plusieurs " "méthodes qui ne sont valables que lors de la manipulation de données ASCII " "et sont étroitement liés aux objets *str* dans bien d'autres aspects." @@ -4086,8 +4087,8 @@ msgstr "" "Pour les utilisateurs de Python 2.x : Dans la série 2.x de Python, une " "variété de conversions implicites entre les chaînes 8-bit (la chose la plus " "proche d'un type natif de données binaires offert par Python 2) et des " -"chaînes Unicode étaient permises. C'était solution de contournement, pour " -"garder la rétro-compatibilité, par rapport au fait que Python ne prenait " +"chaînes Unicode étaient permises. C'était une solution de contournement, " +"pour garder la rétro-compatibilité, considérant que Python ne prenait " "initialement en charge que le texte 8 bits, le texte Unicode est un ajout " "ultérieur. En Python 3.x, ces conversions implicites ont disparues, les " "conversions entre les données binaires et texte Unicode doivent être " @@ -4233,7 +4234,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:2456 msgid "and::" -msgstr "et  : ::" +msgstr "et ::" #: ../Doc/library/stdtypes.rst:2461 msgid "" @@ -4526,7 +4527,7 @@ msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" msgstr "" -"Donnez ``None`` comme *table* pour seulement supprimer des caractères : ::" +"Donnez ``None`` comme *table* pour seulement supprimer des caractères ::" #: ../Doc/library/stdtypes.rst:2675 msgid "*delete* is now supported as a keyword argument." @@ -4541,7 +4542,7 @@ msgid "" "instead produce new objects." msgstr "" "Les méthodes suivantes sur les *bytes* et *bytearray* supposent par défaut " -"que les données traitées sont compatible ASCII, mais peuvent toujours être " +"que les données traitées sont compatibles ASCII, mais peuvent toujours être " "utilisées avec des données binaires, arbitraires, en passant des arguments " "appropriés. Notez que toutes les méthodes de *bytearray* de cette section " "ne travaillent jamais sur l'objet lui même, mais renvoient un nouvel objet." @@ -4701,7 +4702,7 @@ msgstr "" "supprimer, le nom se réfère au fait de cette méthode est généralement " "utilisée avec des caractères ASCII. En cas d'omission ou ``None``, les " "espaces ASCII sont supprimés. L'argument *chars* n'est ni un préfixe ni un " -"suffixe, toutes les combinaisons de ses valeurs sont supprimées : ::" +"suffixe, toutes les combinaisons de ses valeurs sont supprimées ::" #: ../Doc/library/stdtypes.rst:2856 msgid "" @@ -4755,7 +4756,7 @@ msgstr "" "'``) ou un retour chariot (``b'\\r'``), il est copié et la colonne en cours " "est remise à zéro. Tout autre octet est copié inchangé et la colonne en " "cours est incrémentée de un indépendamment de la façon dont l'octet est " -"représenté lors de l’affichage : ::" +"représenté lors de l’affichage ::" #: ../Doc/library/stdtypes.rst:2905 msgid "" @@ -4870,7 +4871,7 @@ msgid "" msgstr "" "Contrairement à :meth:`~bytes.split` lorsque le délimiteur *sep* est fourni, " "cette méthode renvoie une liste vide pour la chaîne vide, et un saut de " -"ligne à la fin ne se traduit pas par une ligne supplémentaire : ::" +"ligne à la fin ne se traduit pas par une ligne supplémentaire ::" #: ../Doc/library/stdtypes.rst:3063 msgid "" @@ -5060,7 +5061,7 @@ msgid "" "copying." msgstr "" "Les :class:`memoryview` permettent a du code Python d'accéder sans copie aux " -"données internes d'un objet pendant en charge le :ref:`buffer protocol " +"données internes d'un objet prenant en charge le :ref:`buffer protocol " "`." #: ../Doc/library/stdtypes.rst:3380 @@ -5070,7 +5071,7 @@ msgid "" "class:`bytes` and :class:`bytearray`." msgstr "" "Crée une :class:`memoryview` faisant référence à *obj*. *obj* doit supporter " -"le *buffer protocol*. Les objets natifs pendant en charge le *buffer " +"le *buffer protocol*. Les objets natifs prenant en charge le *buffer " "protocol* sont :class:`bytes` et :class:`bytearray`." #: ../Doc/library/stdtypes.rst:3384 @@ -5172,7 +5173,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3472 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" -"Les *memoryviews* peut maintenant être indexées par un tuple d'entiers." +"les *memoryviews* peut maintenant être indexées par un n-uplet d'entiers." #: ../Doc/library/stdtypes.rst:3475 msgid ":class:`memoryview` has several methods:" @@ -5205,7 +5206,7 @@ msgid "" msgstr "" "Si l'un des format n'est pas supporté par le module de :mod:`struct`, les " "objets seront toujours considérés différents (même si les formats et les " -"valeurs contenues sont identiques) : ::" +"valeurs contenues sont identiques) ::" #: ../Doc/library/stdtypes.rst:3518 msgid "" @@ -5287,7 +5288,7 @@ msgid "" msgstr "" "Après le premier appel de cette méthode, toute nouvelle opération sur la " "*view* lève une :class:`ValueError` (sauf :meth:`release()` elle-même qui " -"peut être appelée plusieurs fois) : ::" +"peut être appelée plusieurs fois) ::" #: ../Doc/library/stdtypes.rst:3588 msgid "" @@ -5295,7 +5296,7 @@ msgid "" "``with`` statement::" msgstr "" "Le protocole de gestion de contexte peut être utilisé pour obtenir un effet " -"similaire, via l'instruction ``with`` : ::" +"similaire, via l'instruction ``with`` ::" #: ../Doc/library/stdtypes.rst:3604 msgid "" @@ -5324,19 +5325,19 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3615 msgid "Cast 1D/long to 1D/unsigned bytes::" -msgstr "Transforme *1D/long* en *1D/unsigned bytes* : ::" +msgstr "Transforme *1D/long* en *1D/unsigned bytes* ::" #: ../Doc/library/stdtypes.rst:3638 msgid "Cast 1D/unsigned bytes to 1D/char::" -msgstr "Transforme *1D/unsigned bytes* en *1D/char* : ::" +msgstr "Transforme *1D/unsigned bytes* en *1D/char* ::" #: ../Doc/library/stdtypes.rst:3651 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" -msgstr "Transforme *1D/bytes* en *3D/ints* en *1D/signed char* : ::" +msgstr "Transforme *1D/bytes* en *3D/ints* en *1D/signed char* ::" #: ../Doc/library/stdtypes.rst:3677 msgid "Cast 1D/unsigned char to 2D/unsigned long::" -msgstr "Transforme *1D/unsigned char* en *2D/unsigned long* : ::" +msgstr "Transforme *1D/unsigned char* en *2D/unsigned long* ::" #: ../Doc/library/stdtypes.rst:3691 msgid "The source format is no longer restricted when casting to a byte view." @@ -5350,7 +5351,7 @@ msgstr "Plusieurs attributs en lecture seule sont également disponibles :" #: ../Doc/library/stdtypes.rst:3698 msgid "The underlying object of the memoryview::" -msgstr "L'objet sous-jacent de la *memoryview* : ::" +msgstr "L'objet sous-jacent de la *memoryview* ::" #: ../Doc/library/stdtypes.rst:3709 msgid "" @@ -5364,7 +5365,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3728 msgid "Multi-dimensional arrays::" -msgstr "Tableaux multidimensionnels : ::" +msgstr "Tableaux multidimensionnels ::" #: ../Doc/library/stdtypes.rst:3745 msgid "A bool indicating whether the memory is read only." @@ -5387,7 +5388,7 @@ msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." msgstr "" -"Le format ``'B'`` est maintenant traité selon la syntaxe du module *struct*. " +"le format ``'B'`` est maintenant traité selon la syntaxe du module *struct*. " "Cela signifie que ``memoryview(b'abc')[0] == b'abc'[0] == 97``." #: ../Doc/library/stdtypes.rst:3760 @@ -5442,7 +5443,7 @@ msgstr "Un booléen indiquant si la mémoire est :term:`contiguous`." #: ../Doc/library/stdtypes.rst:3818 msgid "Set Types --- :class:`set`, :class:`frozenset`" -msgstr "Types d'ensembles --- :class:`set`, :class:`frozenset`" +msgstr "Types d'ensembles — :class:`set`, :class:`frozenset`" #: ../Doc/library/stdtypes.rst:3822 msgid "" @@ -5613,7 +5614,7 @@ msgid "" msgstr "" "Remarque : Les méthodes :meth:`union`, :meth:`intersection`, :meth:" "`difference`, et :meth:`symmetric_difference`, :meth:`issubset`, et :meth:" -"`issuperset`acceptent n'importe quel itérable comme argument, contrairement " +"`issuperset` acceptent n'importe quel itérable comme argument, contrairement " "aux opérateurs équivalents qui n'acceptent que des *sets*. Il est donc " "préférable d'éviter les constructions comme ``set('abc') & 'cbs'``, sources " "typiques d'erreurs, en faveur d'une construction plus lisible : ``set('abc')." @@ -5767,7 +5768,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4013 msgid "Mapping Types --- :class:`dict`" -msgstr "Les types de correspondances --- :class:`dict`" +msgstr "Les types de correspondances — :class:`dict`" #: ../Doc/library/stdtypes.rst:4023 msgid "" @@ -5854,7 +5855,7 @@ msgid "" "being added is already present, the value from the keyword argument replaces " "the value from the positional argument." msgstr "" -"Si des arguments nommés sont donnés, ils sont ajoutés au dictionnaire crée " +"Si des arguments nommés sont donnés, ils sont ajoutés au dictionnaire créé " "depuis l'argument positionnel. Si une clef est déjà présente, la valeur de " "l'argument nommé remplace la valeur reçue par l'argument positionnel." @@ -5864,7 +5865,7 @@ msgid "" "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" msgstr "" "Typiquement, les exemples suivants renvoient tous un dictionnaire valant " -"``{\"one\": 1, \"two\": 2, \"three\": 3}`` : ::" +"``{\"one\": 1, \"two\": 2, \"three\": 3}`` ::" #: ../Doc/library/stdtypes.rst:4075 msgid "" @@ -6176,7 +6177,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4258 msgid "An example of dictionary view usage::" -msgstr "Exemple d'utilisation de vue de dictionnaire : ::" +msgstr "Exemple d'utilisation de vue de dictionnaire ::" #: ../Doc/library/stdtypes.rst:4293 msgid "Context Manager Types" @@ -6190,7 +6191,7 @@ msgid "" "before the statement body is executed and exited when the statement ends:" msgstr "" "L'instruction :keyword:`with` permet l'existence de contextes définis à " -"l'exécution par des gestionnaires de contextes. C'est implémenté via une " +"l'exécution par des gestionnaires de contextes. C'est implémenté via une " "paire de méthodes permettant de définir un contexte, à l'exécution, qui est " "entré avant l'exécution du corps de l'instruction, et qui est quitté lorsque " "l'instruction se termine :" @@ -6214,7 +6215,7 @@ msgid "" "`open` to be used as the context expression in a :keyword:`with` statement." msgstr "" "Un exemple de gestionnaire de contexte se renvoyant lui-même est :term:`file " -"object`. Les *file objects* se renvoient eux-même depuis __enter__() et " +"object`. Les *file objects* se renvoient eux-même depuis ``__enter__()`` et " "autorisent :func:`open` à être utilisé comme contexte à une instruction :" "keyword:`with`." @@ -6449,7 +6450,7 @@ msgid "" "n)`` is completely equivalent to calling ``m.__func__(m.__self__, arg-1, " "arg-2, ..., arg-n)``." msgstr "" -"Si vous accédez à une méthode (une fonction définie dans l'espace de nom " +"Si vous accédez à une méthode (une fonction définie dans l'espace de nommage " "d'une classe) via une instance, vous obtenez un objet spécial, une :dfn:" "`bound method` (aussi appelée :dfn:`instance method`). Lorsqu'elle est " "appelée, elle ajoute l'argument ``self`` à la liste des arguments. Les " @@ -6589,7 +6590,7 @@ msgstr "C'est écrit ``NotImplemented``." #: ../Doc/library/stdtypes.rst:4552 msgid "Boolean Values" -msgstr "Valeurs Booléennes" +msgstr "Valeurs booléennes" #: ../Doc/library/stdtypes.rst:4554 msgid "" @@ -6601,8 +6602,8 @@ msgid "" "any value to a Boolean, if the value can be interpreted as a truth value " "(see section :ref:`truth` above)." msgstr "" -"Les valeurs booléennes sont les deux objet constants ``False`` et ``True``. " -"Ils son utilisés pour représenter les valeurs de vérité (bien que d'autres " +"Les valeurs booléennes sont les deux objets constants ``False`` et ``True``. " +"Ils sont utilisés pour représenter les valeurs de vérité (bien que d'autres " "valeurs peuvent être considérées vraies ou fausses). Dans des contextes " "numériques (par exemple en argument d'un opérateur arithmétique), ils se " "comportent comme les nombres entiers 0 et 1, respectivement. La fonction " @@ -6616,7 +6617,7 @@ msgstr "Ils s'écrivent ``False`` et ``True``, respectivement." #: ../Doc/library/stdtypes.rst:4573 msgid "Internal Objects" -msgstr "Objets Internes" +msgstr "Objets internes" #: ../Doc/library/stdtypes.rst:4575 msgid "" @@ -6628,7 +6629,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4582 msgid "Special Attributes" -msgstr "Attributs Spéciaux" +msgstr "Attributs spéciaux" #: ../Doc/library/stdtypes.rst:4584 msgid "" @@ -6695,7 +6696,7 @@ msgid "" msgstr "" "Chaque classe garde une liste de références faibles à ses classes filles " "immédiates. Cette méthode renvoie la liste de toutes ces références encore " -"valables. Exemple : ::" +"valables. Exemple ::" #: ../Doc/library/stdtypes.rst:4643 msgid "Footnotes" diff --git a/library/string.po b/library/string.po index cf450d0e4..8a124f143 100644 --- a/library/string.po +++ b/library/string.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/string.rst:2 msgid ":mod:`string` --- Common string operations" -msgstr ":mod:`string` --- Opérations usuelles sur des chaînes" +msgstr ":mod:`string` — Opérations usuelles sur des chaînes" #: ../Doc/library/string.rst:7 msgid "**Source code:** :source:`Lib/string.py`" @@ -56,7 +56,7 @@ msgid "" "The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " "locale-dependent and will not change." msgstr "" -"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz``. Cette valeur de " +"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz'``. Cette valeur de " "dépend pas de l'environnement linguistique et ne changera pas." #: ../Doc/library/string.rst:37 @@ -129,7 +129,7 @@ msgstr "" #: ../Doc/library/string.rst:90 msgid "The :class:`Formatter` class has the following public methods:" -msgstr "La classe :class:`Formatter` a les méthodes publiques suivantes : ::" +msgstr "La classe :class:`Formatter` a les méthodes publiques suivantes ::" #: ../Doc/library/string.rst:94 msgid "" @@ -225,7 +225,7 @@ msgid "" "argument in *args*; if it is a string, then it represents a named argument " "in *kwargs*." msgstr "" -"récupère la valeur d'un champ donné. L'argument *key* est soit un entier, " +"Récupère la valeur d'un champ donné. L'argument *key* est soit un entier, " "soit une chaîne. Si c'est un entier, il représente l'indice de la l'argument " "dans *args*. Si c'est une chaîne de caractères, elle représente le nom de " "l'argument dans *kwargs*." @@ -412,7 +412,7 @@ msgstr "" #: ../Doc/library/string.rst:240 msgid "Some simple format string examples::" -msgstr "Quelques exemples simples de formatage de chaînes : ::" +msgstr "Quelques exemples simples de formatage de chaînes ::" #: ../Doc/library/string.rst:249 msgid "" @@ -437,13 +437,13 @@ msgid "" "`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " "calls :func:`ascii`." msgstr "" -"Actuellement, trois indicateurs sont supportés : ``'!s'`` qui appelle la " +"Actuellement, trois indicateurs sont gérés : ``'!s'`` qui appelle la " "fonction :func:`str` sur la valeur, ``'!r'`` qui appelle la fonction :func:" "`repr` et ``!a`` qui appelle la fonction :func:`ascii`." #: ../Doc/library/string.rst:260 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" #: ../Doc/library/string.rst:266 msgid "" @@ -463,8 +463,8 @@ msgid "" "Most built-in types support a common formatting mini-language, which is " "described in the next section." msgstr "" -"La plupart des types natifs supportent un mini-langage de formatage usuel " -"qui est décrit dans la section suivante." +"La plupart des types natifs gèrent un mini-langage de formatage usuel qui " +"est décrit dans la section suivante." #: ../Doc/library/string.rst:274 msgid "" @@ -527,7 +527,7 @@ msgstr "" #: ../Doc/library/string.rst:303 msgid "The general form of a *standard format specifier* is:" -msgstr "La forme générale d'un *spécificateur de format standard* est : ::" +msgstr "La forme générale d'un *spécificateur de format standard* est ::" #: ../Doc/library/string.rst:315 msgid "" @@ -639,7 +639,7 @@ msgid "" "indicates that a sign should be used for both positive as well as negative " "numbers." msgstr "" -"Indique que le signe doit être affiché pour les nombres tant positifs que " +"indique que le signe doit être affiché pour les nombres tant positifs que " "négatifs." #: ../Doc/library/string.rst:358 @@ -651,7 +651,7 @@ msgid "" "indicates that a sign should be used only for negative numbers (this is the " "default behavior)." msgstr "" -"Indique que le signe doit être affiché uniquement pour les nombres négatifs " +"indique que le signe doit être affiché uniquement pour les nombres négatifs " "(c'est le comportement par défaut)." #: ../Doc/library/string.rst:361 @@ -663,7 +663,7 @@ msgid "" "indicates that a leading space should be used on positive numbers, and a " "minus sign on negative numbers." msgstr "" -"Indique qu'un espace doit précéder les nombres positifs et qu'un signe moins " +"indique qu'un espace doit précéder les nombres positifs et qu'un signe moins " "doit précéder les nombres négatifs." #: ../Doc/library/string.rst:366 @@ -721,7 +721,7 @@ msgstr "" #: ../Doc/library/string.rst:392 msgid "Added the ``'_'`` option (see also :pep:`515`)." -msgstr "Ajout de l'option ``'_'`` (voir aussi :pep`515`)." +msgstr "Ajout de l'option ``'_'`` (voir aussi :pep:`515`)." #: ../Doc/library/string.rst:395 msgid "" @@ -791,7 +791,7 @@ msgstr "" #: ../Doc/library/string.rst:420 ../Doc/library/string.rst:447 #: ../Doc/library/string.rst:508 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/library/string.rst:420 msgid "The same as ``'s'``." @@ -894,7 +894,7 @@ msgstr "" msgid "" "The available presentation types for floating point and decimal values are:" msgstr "" -"les types de représentation pour les nombres flottants et les valeurs " +"Les types de représentation pour les nombres flottants et les valeurs " "décimales sont :" #: ../Doc/library/string.rst:460 @@ -1075,53 +1075,53 @@ msgstr "" #: ../Doc/library/string.rst:532 msgid "Accessing arguments by position::" -msgstr "Accéder à un argument par sa position : ::" +msgstr "Accéder à un argument par sa position ::" #: ../Doc/library/string.rst:545 msgid "Accessing arguments by name::" -msgstr "Accéder à un argument par son nom : ::" +msgstr "Accéder à un argument par son nom ::" #: ../Doc/library/string.rst:553 msgid "Accessing arguments' attributes::" -msgstr "Accéder aux attributs d'un argument : ::" +msgstr "Accéder aux attributs d'un argument ::" #: ../Doc/library/string.rst:568 msgid "Accessing arguments' items::" -msgstr "Accéder aux éléments d'un argument : ::" +msgstr "Accéder aux éléments d'un argument ::" #: ../Doc/library/string.rst:574 msgid "Replacing ``%s`` and ``%r``::" -msgstr "Remplacer ``%s`` et ``%r`` : ::" +msgstr "Remplacer ``%s`` et ``%r`` ::" #: ../Doc/library/string.rst:579 msgid "Aligning the text and specifying a width::" -msgstr "Aligner le texte et spécifier une longueur minimale : ::" +msgstr "Aligner le texte et spécifier une longueur minimale ::" #: ../Doc/library/string.rst:590 msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" -msgstr "Remplacer ``%+f``, ``%-f``, et ``%f`` et spécifier un signe : ::" +msgstr "Remplacer ``%+f``, ``%-f``, et ``%f`` et spécifier un signe ::" #: ../Doc/library/string.rst:599 msgid "" "Replacing ``%x`` and ``%o`` and converting the value to different bases::" msgstr "" -"Remplacer ``%x`` et ``%o`` et convertir la valeur dans différentes bases : ::" +"Remplacer ``%x`` et ``%o`` et convertir la valeur dans différentes bases ::" #: ../Doc/library/string.rst:608 msgid "Using the comma as a thousands separator::" -msgstr "Utiliser une virgule comme séparateur des milliers : ::" +msgstr "Utiliser une virgule comme séparateur des milliers ::" #: ../Doc/library/string.rst:613 msgid "Expressing a percentage::" -msgstr "Exprimer un pourcentage : ::" +msgstr "Exprimer un pourcentage ::" #: ../Doc/library/string.rst:620 msgid "Using type-specific formatting::" -msgstr "Utiliser un formatage propre au type : ::" +msgstr "Utiliser un formatage propre au type ::" #: ../Doc/library/string.rst:627 msgid "Nesting arguments and more complex examples::" -msgstr "Arguments imbriqués et des exemples plus complexes : ::" +msgstr "Arguments imbriqués et des exemples plus complexes ::" #: ../Doc/library/string.rst:661 msgid "Template strings" @@ -1253,7 +1253,7 @@ msgstr "" #: ../Doc/library/string.rst:723 msgid "Here is an example of how to use a Template::" -msgstr "Voici un exemple de comment utiliser un *Template* : ::" +msgstr "Voici un exemple de comment utiliser un *Template* ::" #: ../Doc/library/string.rst:741 msgid "" diff --git a/library/struct.po b/library/struct.po index cf208ff48..0d2d826c0 100644 --- a/library/struct.po +++ b/library/struct.po @@ -20,10 +20,12 @@ msgstr "" #: ../Doc/library/struct.rst:2 msgid ":mod:`struct` --- Interpret bytes as packed binary data" msgstr "" +":mod:`struct` — manipulation de données agrégées sous forme binaire comme " +"une séquence d'octets" #: ../Doc/library/struct.rst:7 msgid "**Source code:** :source:`Lib/struct.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/struct.py`" #: ../Doc/library/struct.rst:15 msgid "" @@ -34,6 +36,13 @@ msgid "" "the layout of the C structs and the intended conversion to/from Python " "values." msgstr "" +"Ce module effectue des conversions entre des valeurs Python et des " +"structures C représentées sous la forme de :class:`bytes` (séquences " +"d'octets) Python. Cela permet, entre autres, de manipuler des données " +"agrégées sous forme binaire dans des fichiers ou à travers des connecteurs " +"réseau. Il utilise :ref:`les chaînes de spécification de format ` comme description de l'agencement des structures afin de " +"réaliser les conversions depuis et vers les valeurs Python." #: ../Doc/library/struct.rst:23 msgid "" @@ -45,6 +54,15 @@ msgid "" "or omit implicit pad bytes, use ``standard`` size and alignment instead of " "``native`` size and alignment: see :ref:`struct-alignment` for details." msgstr "" +"par défaut, le résultat de l'agrégation d'une structure C donnée comprend " +"des octets de bourrage afin de maintenir un alignement correct des types C " +"sous-jacents ; de la même manière, l'alignement est pris en compte lors de " +"la dissociation. Ce comportement a été choisi de manière à ce que les octets " +"d'une structure agrégée reproduisent exactement l'agencement en mémoire de " +"la structure C équivalente. Pour gérer des formats de données indépendants " +"de la plateforme ou omettre les octets implicites de bourrage, utilisez la " +"taille et l'alignement ``standard`` en lieu et place de la taille et " +"l'alignement ``native`` (voir :ref:`struct-alignment` pour les détails)." #: ../Doc/library/struct.rst:31 msgid "" @@ -56,20 +74,30 @@ msgid "" "implement the buffer protocol, so that they can be read/filled without " "additional copying from a :class:`bytes` object." msgstr "" +"Plusieurs fonctions de :mod:`struct` (et méthodes de :class:`Struct`) " +"prennent un argument *buffer*. Cet argument fait référence à des objets qui " +"implémentent :ref:`le protocole tampon ` et qui proposent un " +"tampon soit en lecture seule, soit en lecture-écriture. Les types les plus " +"courants qui utilisent cette fonctionnalité sont :class:`bytes` et :class:" +"`bytearray`, mais beaucoup d'autres types qui peuvent être considérés comme " +"des tableaux d'octets implémentent le protocole tampon ; ils peuvent ainsi " +"être lus ou remplis depuis un objet :class:`bytes` sans faire de copie." #: ../Doc/library/struct.rst:40 msgid "Functions and Exceptions" -msgstr "" +msgstr "Fonctions et exceptions" #: ../Doc/library/struct.rst:42 msgid "The module defines the following exception and functions:" -msgstr "" +msgstr "Le module définit les exceptions et fonctions suivantes :" #: ../Doc/library/struct.rst:47 msgid "" "Exception raised on various occasions; argument is a string describing what " "is wrong." msgstr "" +"Exception levée à plusieurs occasions ; l'argument est une chaîne qui décrit " +"ce qui ne va pas." #: ../Doc/library/struct.rst:53 msgid "" @@ -113,6 +141,7 @@ msgstr "" #: ../Doc/library/struct.rst:89 msgid "Each iteration yields a tuple as specified by the format string." msgstr "" +"Chaque itération produit un n-uplet tel que spécifié par la chaîne de format." #: ../Doc/library/struct.rst:96 msgid "" @@ -122,7 +151,7 @@ msgstr "" #: ../Doc/library/struct.rst:102 msgid "Format Strings" -msgstr "" +msgstr "Chaînes de spécification du format" #: ../Doc/library/struct.rst:104 msgid "" @@ -132,10 +161,16 @@ msgid "" "addition, there are special characters for controlling the :ref:`struct-" "alignment`." msgstr "" +"Les chaînes de spécification du format servent à définir l'agencement lors " +"de l'agrégation et la dissociation des données. Elles sont construites à " +"partir de :ref:`caractères de format `, qui spécifient le " +"type de donnée à agréger-dissocier. De plus, il existe des caractères " +"spéciaux pour contrôler :ref:`le boutisme, la taille et l'alignement `." #: ../Doc/library/struct.rst:113 msgid "Byte Order, Size, and Alignment" -msgstr "" +msgstr "Boutisme, taille et alignement" #: ../Doc/library/struct.rst:115 msgid "" @@ -143,6 +178,9 @@ msgid "" "order, and properly aligned by skipping pad bytes if necessary (according to " "the rules used by the C compiler)." msgstr "" +"Par défaut, les types C sont représentés dans le format et le boutisme " +"natifs de la machine ; ils sont alignés correctement en sautant des octets " +"si nécessaire (en fonction des règles utilisées par le compilateur C)." #: ../Doc/library/struct.rst:119 msgid "" @@ -150,6 +188,9 @@ msgid "" "indicate the byte order, size and alignment of the packed data, according to " "the following table:" msgstr "" +"Cependant, le premier caractère de la chaîne de format peut être utilisé " +"pour indiquer le boutisme, la taille et l'alignement des données agrégées, " +"conformément à la table suivante :" #: ../Doc/library/struct.rst:124 msgid "Character" @@ -157,15 +198,15 @@ msgstr "Caractère" #: ../Doc/library/struct.rst:124 msgid "Byte order" -msgstr "" +msgstr "Boutisme" #: ../Doc/library/struct.rst:124 msgid "Size" -msgstr "" +msgstr "Taille" #: ../Doc/library/struct.rst:124 msgid "Alignment" -msgstr "" +msgstr "Alignement" #: ../Doc/library/struct.rst:126 msgid "``@``" @@ -173,7 +214,7 @@ msgstr "``@``" #: ../Doc/library/struct.rst:126 ../Doc/library/struct.rst:128 msgid "native" -msgstr "" +msgstr "natif" #: ../Doc/library/struct.rst:128 msgid "``=``" @@ -182,12 +223,12 @@ msgstr "``=``" #: ../Doc/library/struct.rst:128 ../Doc/library/struct.rst:130 #: ../Doc/library/struct.rst:132 ../Doc/library/struct.rst:134 msgid "standard" -msgstr "" +msgstr "standard" #: ../Doc/library/struct.rst:128 ../Doc/library/struct.rst:130 #: ../Doc/library/struct.rst:132 ../Doc/library/struct.rst:134 msgid "none" -msgstr "" +msgstr "aucun" #: ../Doc/library/struct.rst:130 msgid "``<``" @@ -195,7 +236,7 @@ msgstr "``<``" #: ../Doc/library/struct.rst:130 msgid "little-endian" -msgstr "" +msgstr "petit-boutiste" #: ../Doc/library/struct.rst:132 msgid "``>``" @@ -203,7 +244,7 @@ msgstr "``>``" #: ../Doc/library/struct.rst:132 msgid "big-endian" -msgstr "" +msgstr "gros-boutiste" #: ../Doc/library/struct.rst:134 msgid "``!``" @@ -211,11 +252,13 @@ msgstr "``!``" #: ../Doc/library/struct.rst:134 msgid "network (= big-endian)" -msgstr "" +msgstr "réseau (= gros-boutiste)" #: ../Doc/library/struct.rst:137 msgid "If the first character is not one of these, ``'@'`` is assumed." msgstr "" +"Si le premier caractère n'est pas dans cette liste, le module se comporte " +"comme si ``'@'`` avait été indiqué." #: ../Doc/library/struct.rst:139 msgid "" @@ -225,36 +268,54 @@ msgid "" "switchable endianness (bi-endian). Use ``sys.byteorder`` to check the " "endianness of your system." msgstr "" +"Le boutisme natif est gros-boutiste ou petit-boutiste, en fonction de la " +"machine sur laquelle s'exécute le programme. Par exemple, les Intel x86 et " +"les AMD64 (x86-64) sont petit-boutistes ; les Motorola 68000 et les *PowerPC " +"G5* sont gros-boutistes ; les ARM et les Intel Itanium peuvent changer de " +"boutisme. Utilisez ``sys.byteorder`` pour vérifier le boutisme de votre " +"système." #: ../Doc/library/struct.rst:145 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." msgstr "" +"La taille et l'alignement natifs sont déterminés en utilisant l'expression " +"``sizeof`` du compilateur C. Leur valeur est toujours combinée au boutisme " +"natif." #: ../Doc/library/struct.rst:148 msgid "" "Standard size depends only on the format character; see the table in the :" "ref:`format-characters` section." msgstr "" +"La taille standard dépend seulement du caractère du format ; référez-vous au " +"tableau dans la section :ref:`format-characters`." #: ../Doc/library/struct.rst:151 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." msgstr "" +"Notez la différence entre ``'@'`` et ``'='`` : les deux utilisent le " +"boutisme natif mais la taille et l'alignement du dernier sont standards." #: ../Doc/library/struct.rst:154 msgid "" "The form ``'!'`` is available for those poor souls who claim they can't " "remember whether network byte order is big-endian or little-endian." msgstr "" +"La forme ``'!'`` existe pour les têtes en l'air qui prétendent ne pas se " +"rappeler si le boutisme réseau est gros-boutiste ou petit-boutiste." #: ../Doc/library/struct.rst:157 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." msgstr "" +"Il n'y a pas de moyen de spécifier le boutisme contraire au boutisme natif " +"(c'est-à-dire forcer la permutation des octets) ; utilisez le bon caractère " +"entre ``'<'`` et ``'>'``." #: ../Doc/library/struct.rst:160 ../Doc/library/struct.rst:239 msgid "Notes:" @@ -265,12 +326,17 @@ msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." msgstr "" +"Le bourrage (*padding* en anglais) n'est automatiquement ajouté qu'entre les " +"membres successifs de la structure. Il n'y a pas de bourrage au début ou à " +"la fin de la structure agrégée." #: ../Doc/library/struct.rst:165 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." msgstr "" +"Il n'y a pas d'ajout de bourrage lorsque vous utilisez une taille et un " +"alignement non-natifs, par exemple avec `<`, `'>', `=` ou `!`." #: ../Doc/library/struct.rst:168 msgid "" @@ -278,10 +344,13 @@ msgid "" "type, end the format with the code for that type with a repeat count of " "zero. See :ref:`struct-examples`." msgstr "" +"Pour aligner la fin d'une structure à l'alignement requis par un type " +"particulier, terminez le format avec le code du type voulu et une valeur de " +"répétition à zéro. Référez-vous à :ref:`struct-examples`." #: ../Doc/library/struct.rst:176 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/library/struct.rst:178 msgid "" @@ -292,6 +361,13 @@ msgid "" "``'!'`` or ``'='``. When using native size, the size of the packed value is " "platform-dependent." msgstr "" +"Les caractères de format possèdent les significations suivantes ; la " +"conversion entre les valeurs C et Python doit être évidente compte tenu des " +"types concernés. La colonne « taille standard » fait référence à la taille " +"en octets de la valeur agrégée avec l'utilisation de la taille standard " +"(c'est-à-dire lorsque la chaîne de format commence par l'un des caractères " +"suivants : ``'<'``, ``'>'``, ``'!'`` ou ``'='``). Si vous utilisez la taille " +"native, la taille de la valeur agrégée dépend de la plateforme." #: ../Doc/library/struct.rst:186 msgid "Format" @@ -307,7 +383,7 @@ msgstr "Type Python" #: ../Doc/library/struct.rst:186 msgid "Standard size" -msgstr "" +msgstr "Taille standard" #: ../Doc/library/struct.rst:186 msgid "Notes" @@ -319,11 +395,11 @@ msgstr "``x``" #: ../Doc/library/struct.rst:188 msgid "pad byte" -msgstr "" +msgstr "octet de bourrage" #: ../Doc/library/struct.rst:188 msgid "no value" -msgstr "" +msgstr "pas de valeur" #: ../Doc/library/struct.rst:190 msgid "``c``" @@ -335,7 +411,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/struct.rst:190 msgid "bytes of length 1" -msgstr "" +msgstr "*bytes* (suite d'octets) de taille 1" #: ../Doc/library/struct.rst:190 ../Doc/library/struct.rst:192 #: ../Doc/library/struct.rst:194 ../Doc/library/struct.rst:196 @@ -358,7 +434,7 @@ msgstr ":c:type:`signed char`" #: ../Doc/library/struct.rst:215 ../Doc/library/struct.rst:217 #: ../Doc/library/struct.rst:229 msgid "integer" -msgstr "" +msgstr "*int* (entier)" #: ../Doc/library/struct.rst:192 msgid "\\(1),\\(3)" @@ -389,7 +465,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/struct.rst:196 msgid "bool" -msgstr "bool" +msgstr "*bool* (booléen)" #: ../Doc/library/struct.rst:196 msgid "\\(1)" @@ -501,7 +577,7 @@ msgstr ":c:type:`size_t`" #: ../Doc/library/struct.rst:219 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/library/struct.rst:219 msgid "\\(7)" @@ -510,7 +586,7 @@ msgstr "\\(7)" #: ../Doc/library/struct.rst:219 ../Doc/library/struct.rst:221 #: ../Doc/library/struct.rst:223 msgid "float" -msgstr "*float*" +msgstr "*float* (nombre à virgule flottante)" #: ../Doc/library/struct.rst:219 ../Doc/library/struct.rst:221 #: ../Doc/library/struct.rst:223 @@ -543,7 +619,7 @@ msgstr ":c:type:`char[]`" #: ../Doc/library/struct.rst:225 ../Doc/library/struct.rst:227 msgid "bytes" -msgstr "bytes" +msgstr "*bytes* (séquence d'octets)" #: ../Doc/library/struct.rst:227 msgid "``p``" @@ -563,11 +639,11 @@ msgstr "\\(6)" #: ../Doc/library/struct.rst:232 msgid "Added support for the ``'n'`` and ``'N'`` formats." -msgstr "" +msgstr "ajouté la gestion des formats ``'n'`` et ``'N'``." #: ../Doc/library/struct.rst:235 msgid "Added support for the ``'e'`` format." -msgstr "" +msgstr "ajouté la gestion du format ``'e'``." #: ../Doc/library/struct.rst:242 msgid "" @@ -575,6 +651,9 @@ msgid "" "by C99. If this type is not available, it is simulated using a :c:type:" "`char`. In standard mode, it is always represented by one byte." msgstr "" +"Le code de conversion ``'?'`` correspond au type :c:type:`_Bool` de C99. Si " +"ce type n'est pas disponible, il est simulé en utilisant un :c:type:`char`. " +"Dans le mode standard, il est toujours représenté par un octet." #: ../Doc/library/struct.rst:247 msgid "" @@ -589,10 +668,14 @@ msgid "" "codes, if the non-integer has a :meth:`__index__` method then that method is " "called to convert the argument to an integer before packing." msgstr "" +"Lorsque vous essayez d'agréger un non-entier en utilisant un code de " +"conversion pour un entier, si ce non-entier possède une méthode :meth:" +"`__index__` alors cette méthode est appelée pour convertir l'argument en " +"entier avant l'agrégation." #: ../Doc/library/struct.rst:256 msgid "Use of the :meth:`__index__` method for non-integers is new in 3.2." -msgstr "" +msgstr "utilisation de la méthode :meth:`__index__` pour les non-entiers. " #: ../Doc/library/struct.rst:260 msgid "" @@ -601,6 +684,10 @@ msgid "" "the standard size, you can use whichever of the other integer formats fits " "your application." msgstr "" +"Les codes de conversion ``'n'`` et ``'N'`` ne sont disponibles que pour la " +"taille native (choisie par défaut ou à l'aide du caractère de boutisme " +"``'@'``). Pour la taille standard, vous pouvez utiliser n'importe quel " +"format d'entier qui convient à votre application." #: ../Doc/library/struct.rst:266 msgid "" @@ -609,6 +696,10 @@ msgid "" "``'f'``, ``'d'`` or ``'e'`` respectively), regardless of the floating-point " "format used by the platform." msgstr "" +"Pour les codes de conversion ``'f'``, ``'d'`` et ``'e'``, la représentation " +"agrégée utilise respectivement le format IEEE 754 *binaire32*, *binaire64* " +"ou *binaire16* (pour ``'f'``, ``'d'`` ou ``'e'`` respectivement), quel que " +"soit le format des nombres à virgule flottante de la plateforme." #: ../Doc/library/struct.rst:272 msgid "" @@ -618,6 +709,11 @@ msgid "" "on the host system. The struct module does not interpret this as native " "ordering, so the ``'P'`` format is not available." msgstr "" +"Le caractère de format ``'P'`` n'est disponible que pour le boutisme natif " +"(choisi par défaut ou à l'aide du caractère ``'@'`` de boutisme). Le " +"caractère de boutisme ``'='`` choisit d'utiliser un petit ou un gros en " +"fonction du système hôte. Le module *struct* ne l'interprète pas comme un " +"boutisme natif, donc le format ``'P'`` n'est pas disponible." #: ../Doc/library/struct.rst:279 msgid "" @@ -630,18 +726,34 @@ msgid "" "operations. See the Wikipedia page on the `half-precision floating-point " "format `_ for more information." msgstr "" +"Le type IEEE 754 *binaire16* « demie-précision » a été introduit en 2008 par " +"la révision du `standard IEEE 754 `_. Il comprend un bit " +"de signe, un exposant sur 5 bits et une précision de 11 bits (dont 10 bits " +"sont explicitement stockés) ; il peut représenter les nombres entre environ " +"``6.1e-05`` et ``6.5e+04`` avec une précision maximale. Ce type est rarement " +"pris en charge par les compilateurs C : sur une machine courante, un " +"*unsigned short* (entier court non signé) peut être utilisé pour le stockage " +"mais pas pour les opérations mathématiques. Lisez la page Wikipédia (NdT : " +"non traduite en français) `half-precision floating-point format `_ pour davantage d'informations." #: ../Doc/library/struct.rst:289 msgid "" "A format character may be preceded by an integral repeat count. For " "example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." msgstr "" +"Un caractère de format peut être précédé par un entier indiquant le nombre " +"de répétitions. Par exemple, la chaîne de format ``'4h'`` a exactement la " +"même signification que ``'hhhh'``." #: ../Doc/library/struct.rst:292 msgid "" "Whitespace characters between formats are ignored; a count and its format " "must not contain whitespace though." msgstr "" +"Les caractères d'espacement entre les indications de format sont ignorés ; " +"cependant, le nombre de répétitions et le format associé ne doivent pas être " +"séparés par des caractères d'espacement." #: ../Doc/library/struct.rst:295 msgid "" @@ -654,6 +766,15 @@ msgid "" "number of bytes. As a special case, ``'0s'`` means a single, empty string " "(while ``'0c'`` means 0 characters)." msgstr "" +"Pour le caractère de format ``'s'``, un nombre en tête est interprété comme " +"la longueur du *bytes* et non comme le nombre de répétitions comme pour les " +"autres caractères de format ; par exemple, ``'10s'`` signifie une seule " +"chaîne de 10 octets alors que ``'10c'`` signifie 10 caractères. Si aucun " +"nombre n'est indiqué, la valeur par défaut est 1. Pour l'agrégation, la " +"chaîne est tronquée ou bourrée avec des octets nuls pour atteindre la taille " +"souhaitée. Pour la dissociation, l'objet *bytes* résultant possède le nombre " +"exact d'octets spécifiés. Un cas particulier est ``'0s'`` qui signifie une " +"chaîne (et une seule) vide (alors que ``'0c'`` signifie zéro caractère)." #: ../Doc/library/struct.rst:304 msgid "" @@ -662,12 +783,19 @@ msgid "" "``'Q'``), if ``x`` is outside the valid range for that format then :exc:" "`struct.error` is raised." msgstr "" +"Lors de l'agrégation d'une valeur ``x`` en utilisant l'un des formats pour " +"les entiers (``'b'``, ``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, " +"``'L'``, ``'q'``, ``'Q'``), si ``x`` est en dehors de l'intervalle du format " +"spécifié, une :exc:`struct.error` est levée." #: ../Doc/library/struct.rst:309 msgid "" "In 3.0, some of the integer formats wrapped out-of-range values and raised :" "exc:`DeprecationWarning` instead of :exc:`struct.error`." msgstr "" +"auparavant, certains formats d'entiers absorbaient les valeurs en dehors des " +"intervalles valides et levaient une :exc:`DeprecationWarning` au lieu d'une :" +"exc:`struct.error`." #: ../Doc/library/struct.rst:313 msgid "" @@ -682,6 +810,17 @@ msgid "" "consumes ``count`` bytes, but that the string returned can never contain " "more than 255 bytes." msgstr "" +"Le caractère de format ``'p'`` sert à encoder une « chaîne Pascal », c'est-à-" +"dire une courte chaîne de longueur variable, stockée dans un *nombre défini " +"d'octets* dont la valeur est définie par la répétition. Le premier octet " +"stocké est la longueur de la chaîne (dans la limite maximum de 255). Les " +"octets composant la chaîne suivent. Si la chaîne passée à :func:`pack` est " +"trop longue (supérieure à la valeur de la répétition moins 1), seuls les " +"``count-1`` premiers octets de la chaîne sont stockés. Si la chaîne est plus " +"courte que ``count-1``, des octets de bourrage nuls sont insérés de manière " +"à avoir exactement *count* octets au final. Notez que pour :func:`unpack`, " +"le caractère de format ``'p'`` consomme ``count`` octets mais que la chaîne " +"renvoyée ne peut pas excéder 255 octets." #: ../Doc/library/struct.rst:324 msgid "" @@ -690,6 +829,11 @@ msgid "" "used. Either 0 or 1 in the native or standard bool representation will be " "packed, and any non-zero value will be ``True`` when unpacking." msgstr "" +"Pour le caractère de format ``'?'``, la valeur renvoyée est :const:`True` " +"ou :const:`False`. Lors de l'agrégation, la valeur de vérité de l'objet " +"argument est utilisée. La valeur agrégée est 0 ou 1 dans la représentation " +"native ou standard et, lors de la dissociation, n'importe quelle valeur " +"différente de zéro est renvoyée ``True``." #: ../Doc/library/struct.rst:334 msgid "Examples" @@ -700,42 +844,53 @@ msgid "" "All examples assume a native byte order, size, and alignment with a big-" "endian machine." msgstr "" +"tous les exemples présentés supposent que l'on utilise le boutisme, la " +"taille et l'alignement natifs sur une machine gros-boutiste." #: ../Doc/library/struct.rst:340 msgid "A basic example of packing/unpacking three integers::" -msgstr "" +msgstr "Un exemple de base d'agrégation et dissociation de trois entiers ::" #: ../Doc/library/struct.rst:350 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" msgstr "" +"Les champs dissociés peuvent être nommés en leur assignant des variables ou " +"en encapsulant le résultat dans un n-uplet nommé ::" #: ../Doc/library/struct.rst:361 msgid "" "The ordering of format characters may have an impact on size since the " "padding needed to satisfy alignment requirements is different::" msgstr "" +"L'ordre des caractères de format peut avoir un impact sur la taille puisque " +"le bourrage nécessaire pour réaliser l'alignement est différent ::" #: ../Doc/library/struct.rst:373 msgid "" "The following format ``'llh0l'`` specifies two pad bytes at the end, " "assuming longs are aligned on 4-byte boundaries::" msgstr "" +"Le format suivant ``'llh0l'`` spécifie deux octets de bourrage à la fin, " +"considérant que les entiers longs sont alignés sur des espacements de 4 " +"octets ::" #: ../Doc/library/struct.rst:379 msgid "" "This only works when native size and alignment are in effect; standard size " "and alignment does not enforce any alignment." msgstr "" +"Ceci ne fonctionne que quand la taille et l'alignement natifs sont " +"utilisés ; la taille et l'alignement standards ne forcent aucun alignement." #: ../Doc/library/struct.rst:386 msgid "Module :mod:`array`" -msgstr "" +msgstr "Module :mod:`array`" #: ../Doc/library/struct.rst:386 msgid "Packed binary storage of homogeneous data." -msgstr "" +msgstr "Stockage agrégé binaire de données homogènes." #: ../Doc/library/struct.rst:388 msgid "Module :mod:`xdrlib`" @@ -743,7 +898,7 @@ msgstr "Module :mod:`xdrlib`" #: ../Doc/library/struct.rst:389 msgid "Packing and unpacking of XDR data." -msgstr "" +msgstr "Agrégation et dissociation de données XDR." #: ../Doc/library/struct.rst:395 msgid "Classes" @@ -751,7 +906,7 @@ msgstr "Classes" #: ../Doc/library/struct.rst:397 msgid "The :mod:`struct` module also defines the following type:" -msgstr "" +msgstr "Le module :mod:`struct` définit aussi le type suivant :" #: ../Doc/library/struct.rst:402 msgid "" @@ -760,26 +915,37 @@ msgid "" "methods is more efficient than calling the :mod:`struct` functions with the " "same format since the format string only needs to be compiled once." msgstr "" +"Renvoie un nouvel objet Struct qui écrit et lit des données binaires " +"conformément à la chaîne de format *format*. Créer une fois pour toutes un " +"objet Struct puis appeler ses méthodes est plus efficace que d'appeler les " +"fonctions de :mod:`struct` avec le même format puisque la chaîne de format " +"n'est compilée qu'une seule fois." #: ../Doc/library/struct.rst:408 msgid "Compiled Struct objects support the following methods and attributes:" msgstr "" +"Les objets ``Struct`` compilés gèrent les méthodes et attributs suivants :" #: ../Doc/library/struct.rst:412 msgid "" "Identical to the :func:`pack` function, using the compiled format. " "(``len(result)`` will equal :attr:`size`.)" msgstr "" +"Identique à la fonction :func:`pack`, en utilisant le format compilé " +"(``len(result)`` vaut :attr:`size`)." #: ../Doc/library/struct.rst:418 msgid "Identical to the :func:`pack_into` function, using the compiled format." msgstr "" +"Identique à la fonction :func:`pack_into`, en utilisant le format compilé." #: ../Doc/library/struct.rst:423 msgid "" "Identical to the :func:`unpack` function, using the compiled format. The " "buffer's size in bytes must equal :attr:`size`." msgstr "" +"Identique à la fonction :func:`unpack`, en utilisant le format compilé. La " +"taille du tampon *buffer* en octets doit valoir :attr:`size`." #: ../Doc/library/struct.rst:429 msgid "" @@ -792,13 +958,17 @@ msgid "" "Identical to the :func:`iter_unpack` function, using the compiled format. " "The buffer's size in bytes must be a multiple of :attr:`size`." msgstr "" +"Identique à la fonction :func:`iter_unpack`, en utilisant le format compilé. " +"La taille du tampon *buffer* en octets doit être un multiple de :attr:`size`." #: ../Doc/library/struct.rst:443 msgid "The format string used to construct this Struct object." -msgstr "" +msgstr "La chaîne de format utilisée pour construire l'objet `Struct`." #: ../Doc/library/struct.rst:447 msgid "" "The calculated size of the struct (and hence of the bytes object produced by " "the :meth:`pack` method) corresponding to :attr:`format`." msgstr "" +"La taille calculée de la structure agrégée (et donc de l'objet `bytes` " +"produit par la méthode :meth:`pack`) correspondante à :attr:`format`." diff --git a/library/subprocess.po b/library/subprocess.po index f4350fe90..9e6091cc1 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:2 msgid ":mod:`subprocess` --- Subprocess management" -msgstr ":mod:`subprocess` --- Gestion de sous-processus" +msgstr ":mod:`subprocess` — Gestion de sous-processus" #: ../Doc/library/subprocess.rst:10 msgid "**Source code:** :source:`Lib/subprocess.py`" @@ -34,7 +34,7 @@ msgstr "" "Le module :mod:`subprocess` vous permet de lancer de nouveaux processus, les " "connecter à des tubes d'entrée/sortie/erreur, et d'obtenir leurs codes de " "retour. Ce module a l'intention de remplacer plusieurs anciens modules et " -"fonctions : ::" +"fonctions ::" #: ../Doc/library/subprocess.rst:21 msgid "" @@ -60,9 +60,9 @@ msgid "" "underlying :class:`Popen` interface can be used directly." msgstr "" "L'approche recommandée pour invoquer un sous-processus et d'utiliser la " -"fonction :func:`run` pour tous les cas d'utilisation qu'il supporte. Pour " -"les cas d'utilisation plus avancés, l'interface inhérente :class:`Popen` " -"peut être utilisée directement." +"fonction :func:`run` pour tous les cas d'utilisation qu'il gère. Pour les " +"cas d'utilisation plus avancés, l'interface inhérente :class:`Popen` peut " +"être utilisée directement." #: ../Doc/library/subprocess.rst:36 msgid "" @@ -172,7 +172,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:83 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/library/subprocess.rst:101 msgid "Added *encoding* and *errors* parameters" @@ -270,7 +270,7 @@ msgid "" msgstr "" "Valeur spéciale qui peut être utilisée pour l'argument *stderr* de :class:" "`Popen` et qui indique que la sortie d'erreur doit être redirigée vers le " -"même gestionnaire que la sortie standard." +"même descripteur que la sortie standard." #: ../Doc/library/subprocess.rst:166 msgid "Base class for all other exceptions from this module." @@ -314,7 +314,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:200 ../Doc/library/subprocess.rst:231 msgid "*stdout* and *stderr* attributes added" -msgstr "Ajout des attributs *stdout* et *stderr*." +msgstr "Ajout des attributs *stdout* et *stderr*" #: ../Doc/library/subprocess.rst:205 msgid "" @@ -343,8 +343,8 @@ msgid "" "most typical use cases, many of these arguments can be safely left at their " "default values. The arguments that are most commonly needed are:" msgstr "" -"Pour supporter un large ensemble de cas, la constructeur de :class:`Popen` " -"(et les fonctions de convenance) acceptent de nombreux arguments optionnels. " +"Pour gérer un large ensemble de cas, le constructeur de :class:`Popen` (et " +"les fonctions de convenance) acceptent de nombreux arguments optionnels. " "Pour les cas d'utilisation les plus typiques, beaucoup de ces arguments " "peuvent sans problème être laissés à leurs valeurs par défaut. Les arguments " "les plus communément nécessaires sont :" @@ -361,7 +361,7 @@ msgstr "" "*args* est requis pour tous les appels et doit être une chaîne de caractères " "ou une séquence d'arguments du programme. Il est généralement préférable de " "fournir une séquence d'arguments, puisque cela permet au module de s'occuper " -"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " +"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " "permettre des espaces dans des noms de fichiers). Si l'argument est passé " "comme une simple chaîne, soit *shell* doit valoir :const:`True` (voir ci-" "dessous) soit la chaîne doit simplement contenir le nom du programme à " @@ -380,17 +380,17 @@ msgid "" "data:`STDOUT`, which indicates that the stderr data from the child process " "should be captured into the same file handle as for *stdout*." msgstr "" -"*stdin*, *stdout* et *stderr* spécifient respectivement les gestionnaires " +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " "d'entrée standard, de sortie standard et de sortie d'erreur du programme " "exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " "descripteur de fichier existant (nombre entier positif), un objet de " "fichier, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " "processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" "data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " -"aucune redirection ne se produira, les gestionnaires de fichiers du fils " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " "seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" "`STDOUT`, qui indique que les données de la sortie d'erreur du processus " -"fils doivent être capturées dans le même gestionnaire de fichier que la " +"fils doivent être capturées dans le même descripteur de fichier que la " "sortie standard." #: ../Doc/library/subprocess.rst:267 @@ -460,11 +460,11 @@ msgstr "" "flot qu'il propose par rapport à beaucoup de *shells* système et voulez tout " "de même profiter des autres fonctionnalités des *shells* telles que les " "tubes (*pipes*), les motifs de fichiers, l'expansion des variables " -"d'environnement, et l'expansion du ``~`` vers le répertoire principal de " -"l'utilisateur. Cependant, notez que Python lui-même propose " -"l'implémentation de beaucoup de ces fonctionnalités (en particulier :mod:" -"`glob`, :mod:`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:" -"`os.path.expanduser` et :mod:`shutil`)." +"d'environnement, et l'expansion du ``~`` vers le répertoire d’accueil de " +"l'utilisateur. Cependant, notez que Python lui-même propose l'implémentation " +"de beaucoup de ces fonctionnalités (en particulier :mod:`glob`, :mod:" +"`fnmatch`, :func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path." +"expanduser` et :mod:`shutil`)." #: ../Doc/library/subprocess.rst:300 msgid "" @@ -553,7 +553,7 @@ msgid "" "for *args*, especially in complex cases::" msgstr "" ":meth:`shlex.split` peut être utilisée pour déterminer le découpage correct " -"de *args*, spécifiquement dans les cas complexes : ::" +"de *args*, spécifiquement dans les cas complexes ::" #: ../Doc/library/subprocess.rst:359 msgid "" @@ -612,7 +612,7 @@ msgstr "" "Si *args* est une séquence, le premier élément spécifie la commande, et les " "éléments supplémentaires seront traités comme des arguments additionnels à " "passer au *shell* lui-même. Pour ainsi dire, :class:`Popen` réalise " -"l'équivalent de : ::" +"l'équivalent de ::" #: ../Doc/library/subprocess.rst:384 msgid "" @@ -636,7 +636,7 @@ msgid "" msgstr "" "*bufsize* sera fourni comme l'argument correspondant à la fonction :func:" "`open`, lors de la création des objets de fichiers pour les tubes *stdin*/" -"*stdout*/*stderr*." +"*stdout*/*stderr* :" #: ../Doc/library/subprocess.rst:398 msgid "" @@ -652,13 +652,13 @@ msgid "" "e., in a text mode)" msgstr "" ":const:`1` indique une mise en cache par ligne (utilisable seulement si " -"``universal_newlines=True``, c'est à dire en mode texte) ;" +"``universal_newlines=True``, c'est-à-dire en mode texte) ;" #: ../Doc/library/subprocess.rst:402 msgid "any other positive value means use a buffer of approximately that size" msgstr "" "toutes les autres valeurs positives indiquent d'utiliser un tampon " -"d'approximativement cette taille ;" +"d'approximativement cette taille ;" #: ../Doc/library/subprocess.rst:404 msgid "" @@ -720,17 +720,17 @@ msgid "" "*stderr* can be :data:`STDOUT`, which indicates that the stderr data from " "the applications should be captured into the same file handle as for stdout." msgstr "" -"*stdin*, *stdout* et *stderr* spécifient respectivement les gestionnaires " +"*stdin*, *stdout* et *stderr* spécifient respectivement les descripteurs " "d'entrée standard, de sortie standard et de sortie d'erreur du programme " "exécuté. Les valeurs acceptées sont :data:`PIPE`, :data:`DEVNULL`, un " "descripteur de fichier existant (nombre entier positif), un :term:`file " "object`, et ``None``. :data:`PIPE` indique qu'un nouveau tube vers le " "processus enfant sera créé. :data:`DEVNULL` indique que le fichier spécial :" "data:`os.devnull` sera utilisé. Avec les paramètres ``None`` par défaut, " -"aucune redirection ne se produira, les gestionnaires de fichiers du fils " +"aucune redirection ne se produira, les descripteurs de fichiers du fils " "seront hérités du parent. Additionnellement, *stderr* peut valoir :data:" "`STDOUT`, qui indique que les données de la sortie d'erreur du processus " -"fils doivent être capturées dans le même gestionnaire de fichier que la " +"fils doivent être capturées dans le même descripteur de fichier que la " "sortie standard." #: ../Doc/library/subprocess.rst:435 @@ -791,7 +791,7 @@ msgid "" "The default for *close_fds* was changed from :const:`False` to what is " "described above." msgstr "" -"la valeur par défaut de *close_fds* n'est plus :const:`False`, comme décrit " +"La valeur par défaut de *close_fds* n'est plus :const:`False`, comme décrit " "ci-dessus." #: ../Doc/library/subprocess.rst:466 @@ -912,13 +912,13 @@ msgid "" "statement: on exit, standard file descriptors are closed, and the process is " "waited for. ::" msgstr "" -"Les objets *Popen* sont supportés comme gestionnaires de contexte avec " +"Les objets *Popen* sont gérés comme gestionnaires de contexte avec " "l'instruction :keyword:`with` : à la sortie, les descripteurs de fichiers " -"standards sont fermés, et le processus est attendu : ::" +"standards sont fermés, et le processus est attendu ::" #: ../Doc/library/subprocess.rst:529 msgid "Added context manager support." -msgstr "Ajout du support des gestionnaires de contexte." +msgstr "Ajout de la gestion des gestionnaires de contexte." #: ../Doc/library/subprocess.rst:532 msgid "" @@ -1155,7 +1155,7 @@ msgid "" msgstr "" "Le processus enfant n'est pas tué si le *timeout* expire, donc afin de " "nettoyer proprement le tout, une application polie devrait tuer le processus " -"fils et terminer la communication : ::" +"fils et terminer la communication ::" #: ../Doc/library/subprocess.rst:660 msgid "" @@ -1318,7 +1318,7 @@ msgid "" "are used when the process creates a window. ::" msgstr "" "Un champ de bits déterminant si certains attributs :class:`STARTUPINFO` sont " -"utilisés quand le processus crée une fenêtre : ::" +"utilisés quand le processus crée une fenêtre ::" #: ../Doc/library/subprocess.rst:776 msgid "" @@ -1327,7 +1327,7 @@ msgid "" "is not specified, the default for standard input is the keyboard buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire d'entrée standard du processus. Si :data:" +"le descripteur d'entrée standard du processus. Si :data:" "`STARTF_USESTDHANDLES` n'est pas spécifié, l'entrée standard par défaut est " "le tampon du clavier." @@ -1338,7 +1338,7 @@ msgid "" "ignored and the default for standard output is the console window's buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire de sortie standard du processus. Autrement, l'attribut est " +"le descripteur de sortie standard du processus. Autrement, l'attribut est " "ignoré et la sortie standard par défaut est le tampon de la console." #: ../Doc/library/subprocess.rst:790 @@ -1348,7 +1348,7 @@ msgid "" "ignored and the default for standard error is the console window's buffer." msgstr "" "Si :attr:`dwFlags` spécifie :data:`STARTF_USESTDHANDLES`, cet attribut est " -"le gestionnaire de sortie d'erreur du processus. Autrement, l'attribut est " +"le descripteur de sortie d'erreur du processus. Autrement, l'attribut est " "ignoré et la sortie d'erreur par défaut est le tampon de la console." #: ../Doc/library/subprocess.rst:796 @@ -1441,8 +1441,8 @@ msgid "" "group will be created. This flag is necessary for using :func:`os.kill` on " "the subprocess." msgstr "" -"Un paramètre ``creationflags`` de :class:`Popen` pour spécifier si un " -"nouveau groupe de processus doit être créé. Cette option est nécessaire pour " +"Paramètre ``creationflags`` de :class:`Popen` pour spécifier si un nouveau " +"groupe de processus doit être créé. Cette option est nécessaire pour " "utiliser :func:`os.kill` sur le sous-processus." #: ../Doc/library/subprocess.rst:853 @@ -1573,11 +1573,11 @@ msgid "" "STDOUT``::" msgstr "" "Pour capturer aussi la sortie d'erreur dans le résultat, utilisez " -"``stderr=subprocess.STDOUT`` : ::" +"``stderr=subprocess.STDOUT`` ::" #: ../Doc/library/subprocess.rst:961 msgid "Support for the *input* keyword argument was added." -msgstr "Ajout du support de l'argument nommé *input*." +msgstr "Ajout de la gestion de l'argument nommé *input*." #: ../Doc/library/subprocess.rst:964 msgid "*encoding* and *errors* were added. See :func:`run` for details." @@ -1634,7 +1634,7 @@ msgstr "Remplacement des *backquotes* des *shells /bin/sh*" #: ../Doc/library/subprocess.rst:996 ../Doc/library/subprocess.rst:1007 #: ../Doc/library/subprocess.rst:1024 msgid "becomes::" -msgstr "devient : ::" +msgstr "devient ::" #: ../Doc/library/subprocess.rst:1001 msgid "Replacing shell pipeline" @@ -1653,7 +1653,7 @@ msgid "" "Alternatively, for trusted input, the shell's own pipeline support may still " "be used directly:" msgstr "" -"Alternativement, pour des entrées fiables, le support des tubes du *shell* " +"Alternativement, pour des entrées fiables, la gestion des tubes du *shell* " "peut directement être utilisé :" #: ../Doc/library/subprocess.rst:1030 @@ -1671,7 +1671,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:1042 msgid "A more realistic example would look like this::" -msgstr "Un exemple plus réaliste ressemblerait à cela : ::" +msgstr "Un exemple plus réaliste ressemblerait à cela ::" #: ../Doc/library/subprocess.rst:1055 msgid "Replacing the :func:`os.spawn ` family" @@ -1679,27 +1679,27 @@ msgstr "Remplacer les fonctions de la famille :func:`os.spawn `" #: ../Doc/library/subprocess.rst:1057 msgid "P_NOWAIT example::" -msgstr "Exemple avec *P_NOWAIT* : ::" +msgstr "Exemple avec *P_NOWAIT* ::" #: ../Doc/library/subprocess.rst:1063 msgid "P_WAIT example::" -msgstr "Exemple avec *P_WAIT* : ::" +msgstr "Exemple avec *P_WAIT* ::" #: ../Doc/library/subprocess.rst:1069 msgid "Vector example::" -msgstr "Exemple avec un tableau : ::" +msgstr "Exemple avec un tableau ::" #: ../Doc/library/subprocess.rst:1075 msgid "Environment example::" -msgstr "Exemple en passant un environnement : ::" +msgstr "Exemple en passant un environnement ::" #: ../Doc/library/subprocess.rst:1084 msgid "Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" -msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3` etc." +msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" #: ../Doc/library/subprocess.rst:1114 msgid "Return code handling translates as follows::" -msgstr "La gestion du code de retour se traduit comme suit : ::" +msgstr "La gestion du code de retour se traduit comme suit ::" #: ../Doc/library/subprocess.rst:1130 msgid "Replacing functions from the :mod:`popen2` module" @@ -1784,7 +1784,7 @@ msgid "" msgstr "" "Si la sortie se termine par un caractère de fin de ligne, ce dernier est " "supprimé. Le code de statut de la commande peut être interprété comme le " -"code de retour de *subprocess*. Par exemple : ::" +"code de retour de *subprocess*. Par exemple ::" #: ../Doc/library/subprocess.rst:1196 ../Doc/library/subprocess.rst:1215 msgid "Availability: POSIX & Windows" @@ -1792,7 +1792,7 @@ msgstr "Disponibilité : POSIX et Windows" #: ../Doc/library/subprocess.rst:1198 msgid "Windows support was added." -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows." #: ../Doc/library/subprocess.rst:1201 msgid "" @@ -1820,7 +1820,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:1217 msgid "Windows support added" -msgstr "Ajout du support Windows." +msgstr "Ajout de la gestion de Windows" #: ../Doc/library/subprocess.rst:1222 msgid "Notes" diff --git a/library/symbol.po b/library/symbol.po index b7a6c5026..d70eef571 100644 --- a/library/symbol.po +++ b/library/symbol.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/symbol.rst:2 msgid ":mod:`symbol` --- Constants used with Python parse trees" -msgstr ":mod:`symbol` --- Constantes utilisées dans les Arbres Syntaxiques" +msgstr ":mod:`symbol` — Constantes utilisées dans les Arbres Syntaxiques" #: ../Doc/library/symbol.rst:9 msgid "**Source code:** :source:`Lib/symbol.py`" diff --git a/library/sys.po b/library/sys.po index 1748650cc..c09b188ba 100644 --- a/library/sys.po +++ b/library/sys.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" -msgstr ":mod:`sys` --- Paramètres et fonctions propres à des systèmes" +msgstr ":mod:`sys` — Paramètres et fonctions propres à des systèmes" #: ../Doc/library/sys.rst:9 msgid "" @@ -36,8 +36,8 @@ msgid "" "On POSIX systems where Python was built with the standard ``configure`` " "script, this contains the ABI flags as specified by :pep:`3149`." msgstr "" -"Les *ABI flags* tels que définis par la :pep:`3149`, sur des systèmes POSIX " -"où Python a été compilé normalement avec le script ``configure``." +"Contient, sur les systèmes POSIX où Python a été compilé avec le script " +"``configure``, les *ABI flags* tels que définis par la :pep:`3149`." #: ../Doc/library/sys.rst:24 msgid "" @@ -50,10 +50,10 @@ msgid "" msgstr "" "La liste des arguments de la ligne de commande passés à un script Python. " "``argv[0]`` est le nom du script (chemin complet, ou non, en fonction du " -"système d'exploitation). Si la commande a été exécutée avec l'option :" -"option:`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si " -"aucun nom de script n'a été donné à l'interpréteur Python, ``argv[0]`` sera " -"une chaîne vide." +"système d'exploitation). Si la commande a été exécutée avec l'option :option:" +"`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si aucun nom de " +"script n'a été donné à l'interpréteur Python, ``argv[0]`` sera une chaîne " +"vide." #: ../Doc/library/sys.rst:30 msgid "" @@ -74,12 +74,12 @@ msgid "" "Python installation (the one which the virtual environment was created from)." msgstr "" "Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " -"même valeur que :data:`exec_prefix`. Hors d'un :ref:`virtual environment " -"`, les valeurs resteront les mêmes; si ``site.py`` détecte qu'un " +"même valeur que :data:`exec_prefix`. Hors d'un :ref:`environnement virtuel " +"`, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " "environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" -"`exec_prefix` seront modifiées point pointer vers l'environnement virtuel, " -"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointeront " -"toujours à la racine de l'installation de Python (celui utilisé pour créer " +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " "l'environnement virtuel)." #: ../Doc/library/sys.rst:50 @@ -93,12 +93,12 @@ msgid "" "Python installation (the one which the virtual environment was created from)." msgstr "" "Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " -"même valeur que :data:`prefix`. Hors d'un :ref:`virtual environment `, les valeurs resteront les mêmes; si ``site.py`` détecte qu'un " +"même valeur que :data:`prefix`. Hors d'un :ref:`environnement virtuel `, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " "environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" -"`exec_prefix` seront modifiées point pointer vers l'environnement virtuel, " -"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointeront " -"toujours à la racine de l'installation de Python (celui utilisé pour créer " +"`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " +"alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " +"à la racine de l'installation de Python (celui utilisé pour créer " "l'environnement virtuel)." #: ../Doc/library/sys.rst:63 @@ -223,10 +223,10 @@ msgid "" msgstr "" "Si *value* n'est pas ``None``, cette fonction écrit ``repr(value)`` sur " "``sys.stdout``, et sauvegarde *value* dans ``builtins._``. Si " -"``repr(value)`` n'est pas encodable avec ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``sys.stdout.errors`` (qui est probablement " -"``'strict'``), elle sera encodée par ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``'backslashreplace'``." +"``repr(value)`` ne peut pas être encodé avec ``sys.stdout.encoding`` en " +"utilisant le gestionnaire d'erreur ``sys.stdout.errors`` (qui est " +"probablement ``'strict'``), elle sera encodée avec ``sys.stdout.encoding`` " +"en utilisant le gestionnaire d'erreur ``'backslashreplace'``." #: ../Doc/library/sys.rst:141 msgid "" @@ -258,8 +258,8 @@ msgid "" "`PYTHONDONTWRITEBYTECODE` environment variable, but you can set it yourself " "to control bytecode file generation." msgstr "" -"Si vrai, Python n'essaiera pas d'écrire de fichiers ``.pyc`` à l'import de " -"modules source. Cette valeur est initialement définie à ``True`` ou " +"Si vrai, Python n'essaiera pas d'écrire de fichiers ``.pyc`` à l'importation " +"de modules source. Cette valeur est initialement définie à ``True`` ou " "``False`` en fonction de l'option de la ligne de commande :option:`-B` et de " "la variable d'environnement :envvar:`PYTHONDONDONTWRITEBYTECODE`, mais vous " "pouvez aussi la modifier vous-même pour contrôler la génération des fichiers " @@ -775,7 +775,7 @@ msgid "" "digits, this isn't always true::" msgstr "" "Cependant, pour les chaînes avec plus de :attr:`sys.float_info.dig` chiffres " -"significatifs, ce n'est pas toujours vrai : ::" +"significatifs, ce n'est pas toujours vrai ::" #: ../Doc/library/sys.rst:381 msgid "" @@ -1271,7 +1271,7 @@ msgstr "" "Le numéro de version codé sous forme d'un seul nombre entier. Ce numéro " "augmente avec chaque version, y compris pour les versions hors production. " "Par exemple, pour vérifier que l'interpréteur Python est au moins la version " -"1.5, utilisez : ::" +"1.5, utilisez ::" #: ../Doc/library/sys.rst:675 msgid "" @@ -1397,7 +1397,7 @@ msgid "" "base ``2**int_info.bits_per_digit``" msgstr "" "nombre de bits utilisés pour chaque chiffre. Les entiers Python sont " -"stockés en interne en base ``2**int_info.bits_per_digit``." +"stockés en interne en base ``2**int_info.bits_per_digit``" #: ../Doc/library/sys.rst:737 msgid ":const:`sizeof_digit`" @@ -1448,7 +1448,7 @@ msgid "" "Interned strings are not immortal; you must keep a reference to the return " "value of :func:`intern` around to benefit from it." msgstr "" -"Les chaînes internées ne sont pas immortelles; vous devez garder une " +"Les chaînes internées ne sont pas immortelles ; vous devez garder une " "référence à la valeur renvoyée par :func:`intern` pour en bénéficier." #: ../Doc/library/sys.rst:771 @@ -1692,11 +1692,11 @@ msgstr "" #: ../Doc/library/sys.rst:914 msgid "For other systems, the values are:" -msgstr "Pour les autres systèmes, les valeurs sont:" +msgstr "Pour les autres systèmes, les valeurs sont :" #: ../Doc/library/sys.rst:917 msgid "System" -msgstr "Système" +msgstr "Le système une station de travail." #: ../Doc/library/sys.rst:917 msgid "``platform`` value" @@ -1837,7 +1837,7 @@ msgid "" "thread switching and asynchronous tasks has been rewritten. Use :func:" "`setswitchinterval` instead." msgstr "" -"Cette fonction n'a plus aucun effet : La logique interne de commutation de " +"Cette fonction n'a plus aucun effet : La logique interne de commutation de " "fils d'exécution et de gestion des tâches asynchrones ayant été réécrite. " "Utilisez :func:`setswitchinterval` à la place." @@ -1854,11 +1854,11 @@ msgstr "" "Définit les options utilisées par l'interpréteur lors des appels à :c:func:" "`dlopen`, typiquement utilisé par l'interpréteur pour charger des modules " "d'extension. Permet entre autre de résoudre tardivement les symboles lors " -"des imports de modules (si appelé ``sys.setdlopenflags(0)``). Pour partager " -"les symboles entre modules, appelez ``sys.setdlopenflags(os.RTLD_GLOBAL)``. " -"Les noms pour les valeurs de ces options peuvent être trouvés dans le " -"module :mod:`os` (ce sont les constantes ``RTLD_xxx``, comme :data:`os." -"RTLD_LAZY`)." +"des importations de modules (si appelé ``sys.setdlopenflags(0)``). Pour " +"partager les symboles entre modules, appelez ``sys.setdlopenflags(os." +"RTLD_GLOBAL)``. Les noms pour les valeurs de ces options peuvent être " +"trouvés dans le module :mod:`os` (ce sont les constantes ``RTLD_xxx``, " +"comme :data:`os.RTLD_LAZY`)." #: ../Doc/library/sys.rst:997 msgid "Availability: Unix." @@ -1898,10 +1898,11 @@ msgid "" "``'return'``, ``'c_call'``, ``'c_return'``, or ``'c_exception'``. *arg* " "depends on the event type." msgstr "" -"Les fonctions de traçage doivent avoir trois arguments: *frame*, *event*, et " -"*arg*. *frame* est la *stack frame* actuelle. *event* est une chaîne de " -"caractères pouvant valoir : ``'call'``, ``'return'``, ``'c_call'``, " -"``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de l'évènement." +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'return'``, " +"``'c_call'``, ``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de " +"l'évènement." #: ../Doc/library/sys.rst:1020 ../Doc/library/sys.rst:1097 msgid "The events have the following meaning:" @@ -2236,8 +2237,8 @@ msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" msgstr "" -":term:`objects fichier ` utilisé par l'interpréteur pour " -"l'entrée standard, la sortie standard, et la sortie d'erreurs." +":term:`objets fichiers ` utilisés par l'interpréteur pour " +"l'entrée standard, la sortie standard et la sortie d'erreurs :" #: ../Doc/library/sys.rst:1212 msgid "" @@ -2253,7 +2254,7 @@ msgid "" "statements and for the prompts of :func:`input`;" msgstr "" "``stdout`` est utilisé pour la sortie de :func:`print`, des :term:" -"`expression` et pour les invites de :func:`input`." +"`expression` et pour les invites de :func:`input` ;" #: ../Doc/library/sys.rst:1216 msgid "The interpreter's own prompts and its error messages go to ``stderr``." @@ -2382,15 +2383,15 @@ msgstr "Nom de l'implémentation des fils d'exécution :" #: ../Doc/library/sys.rst:1279 msgid "``'nt'``: Windows threads" -msgstr "``'nt'``: Fils d'exécution Windows" +msgstr "``'nt'`` : Fils d'exécution Windows" #: ../Doc/library/sys.rst:1280 msgid "``'pthread'``: POSIX threads" -msgstr "``'pthread'``: Fils d'exécution POSIX" +msgstr "``'pthread'`` : Fils d'exécution POSIX" #: ../Doc/library/sys.rst:1281 msgid "``'solaris'``: Solaris threads" -msgstr "``'solaris'``: Fils d'exécution Solaris" +msgstr "``'solaris'`` : Fils d'exécution Solaris" #: ../Doc/library/sys.rst:1283 msgid ":const:`lock`" @@ -2402,12 +2403,12 @@ msgstr "Nom de l'implémentation du système de verrou :" #: ../Doc/library/sys.rst:1285 msgid "``'semaphore'``: a lock uses a semaphore" -msgstr "``'semaphore'``: Verrou utilisant une sémaphore" +msgstr "``'semaphore'`` : Verrou utilisant une sémaphore" #: ../Doc/library/sys.rst:1286 msgid "``'mutex+cond'``: a lock uses a mutex and a condition variable" msgstr "" -"``'mutex+cond'``: Un verrou utilisant un *mutex* et une *condition variable*" +"``'mutex+cond'`` : Un verrou utilisant un *mutex* et une *condition variable*" #: ../Doc/library/sys.rst:1288 msgid "``None`` if this information is unknown" @@ -2473,7 +2474,7 @@ msgid "" "also be accessed by name, so ``sys.version_info[0]`` is equivalent to ``sys." "version_info.major`` and so on." msgstr "" -"Un *tuple* contenant les cinq composants du numéro de version: *major*, " +"Un *tuple* contenant les cinq composants du numéro de version : *major*, " "*minor*, *micro*, *releaselevel* et *serial*. Toutes les valeurs sauf " "*releaselevel* sont des nombres entiers. *releaselevel* peut valoir " "``'alpha'``, ``'beta'``, ``'candidate'``, ou ``'final'``. La valeur de " @@ -2519,7 +2520,7 @@ msgstr "" "Un dictionnaire des différentes options spécifiques à l'implémentation " "passés en ligne de commande via l'option :option:`-X`. Aux noms des options " "correspondent soit leur valeur, si elle est donnée explicitement, soit à :" -"const:`True`. Exemple:" +"const:`True`. Exemple :" #: ../Doc/library/sys.rst:1367 msgid "" @@ -2541,6 +2542,6 @@ msgid "" "standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" "n1256.pdf\\ ." msgstr "" -"ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " -"standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" -"n1256.pdf\\ ." +"*ISO/IEC 9899:1999*. \"Langages de programmation -- C.\" Un texte public " +"de ce standard est disponible à http://www.open-std.org/jtc1/sc22/wg14/www/" +"docs/n1256.pdf\\ ." diff --git a/library/tabnanny.po b/library/tabnanny.po index 5a1516c4e..509df3ba9 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tabnanny.rst:2 msgid ":mod:`tabnanny` --- Detection of ambiguous indentation" -msgstr ":mod:`tabnanny` --- Détection d'indentation ambiguë" +msgstr ":mod:`tabnanny` — Détection d'indentation ambiguë" #: ../Doc/library/tabnanny.rst:13 msgid "**Source code:** :source:`Lib/tabnanny.py`" diff --git a/library/tempfile.po b/library/tempfile.po index 2fb1e568b..17bd757e1 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -541,7 +541,7 @@ msgid "" msgstr "" "Renvoie le chemin absolu d'un fichier qui n'existe pas lorsque l'appel est " "fait. Les arguments *prefix*, *suffix*, et *dir* sont similaires à ceux de :" -"func:`mkstemp` mais les noms de fichiers en _bytes_, ``sufix=None`` et " +"func:`mkstemp` mais les noms de fichiers en *bytes*, ``sufix=None`` et " "``prefix=None`` ne sont pas implémentées." #: ../Doc/library/tempfile.rst:319 diff --git a/library/termios.po b/library/termios.po index fe90202de..0c8e9088e 100644 --- a/library/termios.po +++ b/library/termios.po @@ -159,4 +159,4 @@ msgstr "" "l’afficher. Remarquez la technique qui consiste à séparer un appel à :func:" "`tcgetattr` et une instruction :keyword:`try`… :keyword:`finally` pour " "s’assurer que les anciens attributs tty soient restaurés tels quels quoi " -"qu’il arrive::" +"qu’il arrive ::" diff --git a/library/textwrap.po b/library/textwrap.po index 4d576fcd1..74a76831b 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -73,7 +73,7 @@ msgid "" "the wrapped paragraph. :func:`fill` is shorthand for ::" msgstr "" "Formate le paragraphe unique dans *text* et renvoie une seule chaîne dont le " -"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour : :" +"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour ::" #: ../Doc/library/textwrap.rst:40 msgid "" @@ -99,7 +99,7 @@ msgstr "" "blancs sont remplacées par des espaces simples). Si le résultat tient dans " "la *width*, il est renvoyé. Sinon, suffisamment de mots sont supprimés en " "fin de chaîne de manière à ce que les mots restants plus le :attr:" -"`placeholder` tiennent dans :attr:`width`: :" +"`placeholder` tiennent dans :attr:`width` ::" #: ../Doc/library/textwrap.rst:60 msgid "" @@ -167,7 +167,7 @@ msgid "" msgstr "" "L'argument optionnel *predicate* peut être utilisé pour contrôler quelles " "lignes sont en retrait. Par exemple, il est facile d'ajouter *prefix* aux " -"lignes vides et aux lignes blanches seulement : :" +"lignes vides et aux lignes blanches seulement ::" #: ../Doc/library/textwrap.rst:120 msgid "" @@ -203,7 +203,7 @@ msgid "" msgstr "" "Le constructeur :class:`TextWrapper` accepte un certain nombre d'arguments " "par mots-clés optionnels. Chaque argument par mot-clé correspond à un " -"attribut d'instance, donc par exemple : :" +"attribut d'instance, donc par exemple ::" #: ../Doc/library/textwrap.rst:138 msgid "is the same as ::" @@ -346,7 +346,7 @@ msgstr "" "suivie de l'une des lettres suivantes : ``'.'``, ``'!'``, ou ``'?'``, " "éventuellement suivie d'une des lettres ``'\"'`` ou ``\"'\"``, suivie par " "une espace. Un problème avec cet algorithme est qu'il est incapable de " -"détecter la différence entre \"Dr\" dans : :" +"détecter la différence entre \"Dr\" dans ::" #: ../Doc/library/textwrap.rst:232 msgid "and \"Spot.\" in ::" diff --git a/library/threading.po b/library/threading.po index 12248f5aa..3d180d637 100644 --- a/library/threading.po +++ b/library/threading.po @@ -24,7 +24,7 @@ msgstr "" #: ../Doc/library/threading.rst:7 msgid "**Source code:** :source:`Lib/threading.py`" -msgstr "**Code source:** :source:`Lib/threading.py`" +msgstr "**Code source :** :source:`Lib/threading.py`" #: ../Doc/library/threading.rst:11 msgid "" @@ -83,7 +83,7 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" -"Renvoie l'\"identificateur de fil\" du fil d'exécution courant. C'est un " +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " "entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " "à être utilisé comme valeur magique opaque, par exemple comme clef de " "dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " @@ -213,7 +213,7 @@ msgstr "" "Les données locales au fil d'exécution (*thread-local data*) sont des " "données dont les valeurs sont propres à chaque fil. Pour gérer les données " "locales au fil, il suffit de créer une instance de :class:`local` (ou une " -"sous-classe) et d'y stocker des données : ::" +"sous-classe) et d'y stocker des données ::" #: ../Doc/library/threading.rst:142 msgid "The instance's values will be different for separate threads." @@ -608,7 +608,7 @@ msgstr "" #: ../Doc/library/threading.rst:340 msgid "Lock Objects" -msgstr "" +msgstr "Verrous" #: ../Doc/library/threading.rst:342 msgid "" @@ -617,6 +617,10 @@ msgid "" "synchronization primitive available, implemented directly by the :mod:" "`_thread` extension module." msgstr "" +"Un verrou primitif n'appartient pas à un fil d'exécution lorsqu'il est " +"verrouillé. En Python, c'est actuellement la méthode de synchronisation la " +"plus bas-niveau qui soit disponible, implémentée directement par le module " +"d'extension :mod:`_thread`." #: ../Doc/library/threading.rst:347 msgid "" @@ -631,6 +635,17 @@ msgid "" "state to unlocked and returns immediately. If an attempt is made to release " "an unlocked lock, a :exc:`RuntimeError` will be raised." msgstr "" +"Un verrou primitif est soit « verrouillé » soit « déverrouillé ». Il est " +"créé dans un état déverrouillé. Il a deux méthodes, :meth:`~Lock.acquire` " +"et :meth:`~Lock.release`. Lorsque l'état est déverrouillé, :meth:`~Lock." +"acquire` verrouille et se termine immédiatement. Lorsque l'état est " +"verrouillé, :meth:`~Lock.acquire` bloque jusqu'à ce qu'un appel à :meth:" +"`~Lock.release` provenant d'un autre fil d'exécution le déverrouille. À ce " +"moment :meth:`~Lock.acquire` le verrouille à nouveau et rend la main. La " +"méthode :meth:`~Lock.release` ne doit être appelée que si le verrou est " +"verrouillé, elle le déverrouille alors et se termine immédiatement. " +"Déverrouiller un verrou qui n'est pas verrouillé provoque une :exc:" +"`RuntimeError`." #: ../Doc/library/threading.rst:358 msgid "Locks also support the :ref:`context management protocol `." diff --git a/library/time.po b/library/time.po index ba37a6224..404a82c2f 100644 --- a/library/time.po +++ b/library/time.po @@ -625,7 +625,9 @@ msgstr "``%c``" #: ../Doc/library/time.rst:339 msgid "Locale's appropriate date and time representation." -msgstr "Représentation locale de la date et de l'heure." +msgstr "" +"Représentation appropriée de la date et de l’heure selon les paramètres " +"régionaux." #: ../Doc/library/time.rst:342 msgid "``%d``" @@ -681,7 +683,7 @@ msgstr "``%p``" #: ../Doc/library/time.rst:360 msgid "Locale's equivalent of either AM or PM." -msgstr "Équivalent local à AM/PM." +msgstr "L’équivalent local de AM ou PM." #: ../Doc/library/time.rst:360 msgid "\\(1)" @@ -746,7 +748,7 @@ msgstr "``%x``" #: ../Doc/library/time.rst:385 msgid "Locale's appropriate date representation." -msgstr "Représentation locale de la date." +msgstr "Représentation de la date appropriée par les paramètres régionaux." #: ../Doc/library/time.rst:388 msgid "``%X``" @@ -900,7 +902,7 @@ msgstr "" #: ../Doc/library/time.rst:456 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/time.rst:463 msgid "" @@ -1190,7 +1192,7 @@ msgid "" "added for clarity)::" msgstr "" "Le format standard de la variable d’environnement :envvar:`TZ` est (espaces " -"ajoutés pour plus de clarté)::" +"ajoutés pour plus de clarté) ::" #: ../Doc/library/time.rst:566 msgid "Where the components are:" @@ -1198,7 +1200,7 @@ msgstr "Où les composants sont :" #: ../Doc/library/time.rst:570 msgid "``std`` and ``dst``" -msgstr "``std`` and ``dst``" +msgstr "``std`` et ``dst``" #: ../Doc/library/time.rst:569 msgid "" diff --git a/library/timeit.po b/library/timeit.po index 969546cdb..27fdafe7c 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -55,7 +55,7 @@ msgstr "" #: ../Doc/library/timeit.rst:37 msgid "This can be achieved from the :ref:`python-interface` with::" -msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec : ::" +msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec ::" #: ../Doc/library/timeit.rst:48 msgid "" @@ -259,11 +259,11 @@ msgstr "" #: ../Doc/library/timeit.rst:178 msgid "Helper to print a traceback from the timed code." -msgstr "" +msgstr "Outil permettant d'afficher la trace du code chronométré." #: ../Doc/library/timeit.rst:180 msgid "Typical use::" -msgstr "Usage typique : ::" +msgstr "Usage typique ::" #: ../Doc/library/timeit.rst:188 msgid "" @@ -271,6 +271,9 @@ msgid "" "compiled template will be displayed. The optional *file* argument directs " "where the traceback is sent; it defaults to :data:`sys.stderr`." msgstr "" +"L'avantage par rapport à la trace standard est que les lignes sources du " +"code compilé sont affichées. Le paramètre optionnel *file* définit l'endroit " +"où la trace est envoyée, par défaut :data:`sys.stderr`." #: ../Doc/library/timeit.rst:196 msgid "Command-Line Interface" @@ -281,7 +284,7 @@ msgid "" "When called as a program from the command line, the following form is used::" msgstr "" "Lorsque le module est appelé comme un programme en ligne de commande, la " -"syntaxe suivante est utilisée : ::" +"syntaxe suivante est utilisée ::" #: ../Doc/library/timeit.rst:202 msgid "Where the following options are understood:" @@ -323,7 +326,7 @@ msgstr "" #: ../Doc/library/timeit.rst:241 msgid "print raw timing results; repeat for more digits precision" -msgstr "" +msgstr "affiche les temps d'exécutions bruts, répéter pour plus de précision" #: ../Doc/library/timeit.rst:245 msgid "print a short usage message and exit" @@ -389,7 +392,7 @@ msgstr "" msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "" "La même chose peut être réalisée en utilisant la classe :class:`Timer` et " -"ses méthodes : ::" +"ses méthodes ::" #: ../Doc/library/timeit.rst:301 msgid "" @@ -409,7 +412,7 @@ msgid "" msgstr "" "Afin de permettre à :mod:`timeit` d'accéder aux fonctions que vous avez " "définies, vous pouvez passer au paramètre *setup* une instruction " -"d'importation: ::" +"d'importation ::" #: ../Doc/library/timeit.rst:358 msgid "" @@ -419,4 +422,4 @@ msgid "" msgstr "" "Une autre possibilité est de passer :func:`globals` au paramètre *globals*, " "ceci qui exécutera le code dans l'espace de nommage global courant. Cela " -"peut être plus pratique que de spécifier manuellement des importations: ::" +"peut être plus pratique que de spécifier manuellement des importations ::" diff --git a/library/tkinter.po b/library/tkinter.po index 11c61dd51..179e18856 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -82,6 +82,8 @@ msgid "" "`Tkinter reference: a GUI for Python `_" msgstr "" +"`Tkinter reference: a GUI for Python `_" #: ../Doc/library/tkinter.rst:35 msgid "On-line reference material." @@ -116,6 +118,8 @@ msgid "" "Book by Mark Rozerman about building attractive and modern graphical user " "interfaces with Python and Tkinter." msgstr "" +"Livre de Mark Rozerman sur la construction d'interfaces graphiques " +"esthétiques et modernes avec Python et Tkinter." #: ../Doc/library/tkinter.rst:47 msgid "" @@ -215,11 +219,11 @@ msgstr "" "modules Python, :mod:`tkinter.constants` étant l'un des plus importants. " "Importer :mod:`tkinter` charge automatiquement :mod:`tkinter.constants` " "donc, habituellement, pour utiliser Tkinter, tout ce dont vous avez besoin " -"est une simple commande d'importation : ::" +"est une simple commande d'importation ::" #: ../Doc/library/tkinter.rst:85 msgid "Or, more often::" -msgstr "Ou, plus souvent : ::" +msgstr "Ou, plus souvent ::" #: ../Doc/library/tkinter.rst:92 msgid "" @@ -539,8 +543,7 @@ msgstr "" #: ../Doc/library/tkinter.rst:258 msgid "To make a widget in Tk, the command is always of the form::" msgstr "" -"Pour créer un objet graphique en Tk, la commande est toujours de la " -"forme : ::" +"Pour créer un objet graphique en Tk, la commande est toujours de la forme ::" #: ../Doc/library/tkinter.rst:263 msgid "*classCommand*" @@ -670,7 +673,7 @@ msgstr "" "dans le constructeur d'instance, et d'arguments par mots-clés pour " "configurer les appels ou sous forme d'une entrée, dans le style " "dictionnaire, d'instance pour les instances établies. Voir la section :ref:" -"`tkinter-setting-options` pour la façon de définir les options.::" +"`tkinter-setting-options` pour la façon de définir les options. ::" #: ../Doc/library/tkinter.rst:329 msgid "" @@ -907,7 +910,7 @@ msgstr "0" #: ../Doc/library/tkinter.rst:437 msgid "option name" -msgstr "Nom des options" +msgstr "nom des options" #: ../Doc/library/tkinter.rst:437 ../Doc/library/tkinter.rst:439 msgid "``'relief'``" @@ -939,7 +942,7 @@ msgstr "3" #: ../Doc/library/tkinter.rst:444 msgid "default value" -msgstr "Valeur par défaut" +msgstr "valeur par défaut" #: ../Doc/library/tkinter.rst:444 msgid "``'raised'``" @@ -1034,7 +1037,7 @@ msgstr "" "La méthode `pack()` peut être appelée avec des paires mot-clé-option/valeur " "qui contrôlent où l'objet graphique doit apparaître dans son conteneur et " "comment il doit se comporter lorsque la fenêtre principale de l'application " -"est redimensionnée. En voici quelques exemples: ::" +"est redimensionnée. En voici quelques exemples ::" #: ../Doc/library/tkinter.rst:494 msgid "Packer Options" @@ -1420,7 +1423,7 @@ msgstr "où :" #: ../Doc/library/tkinter.rst:701 msgid "sequence" -msgstr "séquence" +msgstr "*sequence*" #: ../Doc/library/tkinter.rst:700 msgid "" @@ -1433,7 +1436,7 @@ msgstr "" #: ../Doc/library/tkinter.rst:706 msgid "func" -msgstr "func" +msgstr "*func*" #: ../Doc/library/tkinter.rst:704 msgid "" @@ -1507,7 +1510,7 @@ msgstr "%h" #: ../Doc/library/tkinter.rst:731 msgid "height" -msgstr "height" +msgstr "hauteur" #: ../Doc/library/tkinter.rst:731 msgid "%E" @@ -1791,7 +1794,7 @@ msgstr "" "*Tk* vous permet d'enregistrer et de *désenregistrer* une fonction de rappel " "qui est appelée depuis la boucle principale de Tk lorsque des entrées-" "sorties sont possibles sur un descripteur de fichier. Un seul gestionnaire " -"peut être enregistré par descripteur de fichier. Exemple de code: ::" +"peut être enregistré par descripteur de fichier. Exemple de code ::" #: ../Doc/library/tkinter.rst:829 msgid "This feature is not available on Windows." @@ -1829,7 +1832,7 @@ msgstr "" "IOBase.fileno` (comme un objet fichier ou connecteur), soit un descripteur " "de fichier de type entier. L'argument ``mask`` est une combinaison *OU* de " "l'une des trois constantes ci-dessous. La fonction de rappel s'utilise comme " -"suit: ::" +"suit ::" #: ../Doc/library/tkinter.rst:853 msgid "Unregisters a file handler." diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index 2d7770014..e2d9c7459 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tkinter.scrolledtext.rst:2 msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" -msgstr ":mod:`tkinter.scrolledtext` --- Gadget texte avec barre de défilement" +msgstr ":mod:`tkinter.scrolledtext` — Gadget texte avec barre de défilement" #: ../Doc/library/tkinter.scrolledtext.rst:10 msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" diff --git a/library/tokenize.po b/library/tokenize.po index 6e494b5f8..8ba44c469 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tokenize.rst:2 msgid ":mod:`tokenize` --- Tokenizer for Python source" -msgstr ":mod:`tokenize` --- Analyseur lexical de Python" +msgstr ":mod:`tokenize` — Analyseur lexical de Python" #: ../Doc/library/tokenize.rst:10 msgid "**Source code:** :source:`Lib/tokenize.py`" @@ -249,7 +249,7 @@ msgstr "" #: ../Doc/library/tokenize.rst:144 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/tokenize.rst:150 msgid "" @@ -300,7 +300,7 @@ msgid "" "objects::" msgstr "" "Exemple d'un script qui transforme les littéraux de type *float* en type " -"*Decimal* ::" +"*Decimal* ::" #: ../Doc/library/tokenize.rst:229 msgid "Example of tokenizing from the command line. The script::" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index 3bcdfeba2..207c930ba 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -335,7 +335,7 @@ msgstr "" #: ../Doc/library/tracemalloc.rst:395 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/tracemalloc.rst:397 msgid "" diff --git a/library/tty.po b/library/tty.po index 703f6f8df..b9e31c951 100644 --- a/library/tty.po +++ b/library/tty.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tty.rst:2 msgid ":mod:`tty` --- Terminal control functions" -msgstr ":mod:`tty` --- Fonctions de gestion du terminal" +msgstr ":mod:`tty` — Fonctions de gestion du terminal" #: ../Doc/library/tty.rst:11 msgid "**Source code:** :source:`Lib/tty.py`" diff --git a/library/turtle.po b/library/turtle.po index 0cc507c30..f1f8e1414 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -1516,7 +1516,7 @@ msgstr "" #: ../Doc/library/turtle.rst:1485 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/turtle.rst:1495 msgid "Now add the Shape to the Screen's shapelist and use it:" diff --git a/library/types.po b/library/types.po index 2ac98ac60..55382a2d2 100644 --- a/library/types.po +++ b/library/types.po @@ -107,12 +107,13 @@ msgstr "" #: ../Doc/library/types.rst:69 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` -- Méta-classes dans Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" #: ../Doc/library/types.rst:70 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" #: ../Doc/library/types.rst:74 msgid "Standard Interpreter Types" diff --git a/library/unicodedata.po b/library/unicodedata.po index 2534429ff..747b979bc 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/unicodedata.rst:2 msgid ":mod:`unicodedata` --- Unicode Database" -msgstr ":mod:`unicodedata` --- Base de données Unicode" +msgstr ":mod:`unicodedata` — Base de données Unicode" #: ../Doc/library/unicodedata.rst:18 msgid "" @@ -35,18 +35,18 @@ msgid "" "Annex #44, `\"Unicode Character Database\" `_. It defines the following functions:" msgstr "" -"Ce module utilise les noms et symboles définis dans l'annexe 44 du standard " -"Unicode (*Unicode Standard Annex*), `\"Unicode Character Database\" `_. Il définit les fonctions " -"suivantes :" +"Ce module utilise les mêmes noms et symboles définis dans l'annexe 44 du " +"standard Unicode (*Unicode Standard Annex*), `\"Unicode Character Database\" " +"`_. Il définit les " +"fonctions suivantes :" #: ../Doc/library/unicodedata.rst:31 msgid "" "Look up character by name. If a character with the given name is found, " "return the corresponding character. If not found, :exc:`KeyError` is raised." msgstr "" -"Retrouver un caractère par nom. Si un caractère correspondant au nom passé " -"en paramètre est trouvé, renvoyer ce caractère. S'il n'est pas trouvé, :exc:" +"Retrouver un caractère par nom. Si un caractère avec le nom donné est " +"trouvé, renvoyer le caractère correspondant. S'il n'est pas trouvé, :exc:" "`KeyError` est levée." #: ../Doc/library/unicodedata.rst:34 @@ -59,9 +59,9 @@ msgid "" "defined, *default* is returned, or, if not given, :exc:`ValueError` is " "raised." msgstr "" -"Renvoie le nom correspondant au caractère *chr* comme une chaîne de " -"caractères. Si aucun nom est défini, *default* est renvoyé, ou, si ce " -"dernier n'est pas renseigné :exc:`ValueError` est levée." +"Renvoie le nom assigné au caractère *chr* comme une chaîne de caractères. Si " +"aucun nom n'est défini, *default* est renvoyé, ou, si ce dernier n'est pas " +"renseigné :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:47 msgid "" @@ -69,9 +69,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie la valeur décimale correspondante au caractère *chr* comme un " -"entier. Si aucune valeur de ce type n'est définie, *default* est renvoyé, " -"ou, si ce dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie la valeur décimale assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:54 msgid "" @@ -79,9 +79,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie le chiffre correspondant au caractère *chr* comme un entier. Si " -"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " -"dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie le chiffre assigné au caractère *chr* comme un entier. Si aucune " +"valeur de ce type n'est définie, *default* est renvoyé, ou, si ce dernier " +"n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:61 msgid "" @@ -89,38 +89,38 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" -"Renvoie la valeur numérique correspondante au caractère *chr* comme un " -"entier. Si aucune valeur de ce type n'est définie, *default* est renvoyé, " -"ou, si ce dernier n'est pas renseigné, :exc:`ValueError` est levée." +"Renvoie la valeur numérique assignée au caractère *chr* comme un entier. Si " +"aucune valeur de ce type n'est définie, *default* est renvoyé, ou, si ce " +"dernier n'est pas renseigné, :exc:`ValueError` est levée." #: ../Doc/library/unicodedata.rst:68 msgid "Returns the general category assigned to the character *chr* as string." msgstr "" -"Renvoie la catégorie générale correspondante au caractère *chr* comme une " -"chaîne de caractères." +"Renvoie la catégorie générale assignée au caractère *chr* comme une chaîne " +"de caractères." #: ../Doc/library/unicodedata.rst:74 msgid "" "Returns the bidirectional class assigned to the character *chr* as string. " "If no such value is defined, an empty string is returned." msgstr "" -"Renvoie la classe bidirectionnelle correspondante au caractère *chr* comme " -"une chaîne de caractères. Si aucune valeur de ce type n'est définie, une " -"chaîne de caractères vide est renvoyée." +"Renvoie la classe bidirectionnelle assignée au caractère *chr* comme une " +"chaîne de caractères. Si aucune valeur de ce type n'est définie, une chaîne " +"de caractères vide est renvoyée." #: ../Doc/library/unicodedata.rst:80 msgid "" "Returns the canonical combining class assigned to the character *chr* as " "integer. Returns ``0`` if no combining class is defined." msgstr "" -"Renvoie la classe de combinaison canonique correspondante au caractère *chr* " -"comme un entier. Envoie ``0`` si aucune classe de combinaison n'est définie." +"Renvoie la classe de combinaison canonique assignée au caractère *chr* comme " +"un entier. Envoie ``0`` si aucune classe de combinaison n'est définie." #: ../Doc/library/unicodedata.rst:86 msgid "Returns the east asian width assigned to the character *chr* as string." msgstr "" -"Renvoie la largeur est-asiatique correspondante à un caractère *chr* comme " -"une chaîne de caractères." +"Renvoie la largeur est-asiatique assignée à un caractère *chr* comme une " +"chaîne de caractères." #: ../Doc/library/unicodedata.rst:92 msgid "" @@ -128,16 +128,16 @@ msgid "" "Returns ``1`` if the character has been identified as a \"mirrored\" " "character in bidirectional text, ``0`` otherwise." msgstr "" -"Renvoie la propriété miroir correspondante au caractère *chr* comme un " -"entier. Renvoie ``1`` si le caractère a été identifié comme un caractère " -"\"réfléchi\" dans du texte bidirectionnel, sinon ``0``." +"Renvoie la propriété miroir assignée au caractère *chr* comme un entier. " +"Renvoie ``1`` si le caractère a été identifié comme un caractère \"réfléchi" +"\" dans du texte bidirectionnel, sinon ``0``." #: ../Doc/library/unicodedata.rst:99 msgid "" "Returns the character decomposition mapping assigned to the character *chr* " "as string. An empty string is returned in case no such mapping is defined." msgstr "" -"Renvoie le tableau associatif de décomposition de caractère correspondant au " +"Renvoie le tableau associatif de décomposition de caractère assigné au " "caractère *chr* comme une chaîne de caractères. Une chaîne de caractère vide " "est renvoyée dans le cas où aucun tableau associatif de ce type n'est défini." @@ -215,7 +215,7 @@ msgid "" "compare equal." msgstr "" "Même si deux chaînes de caractères Unicode sont normalisées et ont la même " -"apparence pour un lecteur humain , si un a des caractères combinés alors que " +"apparence pour un lecteur humain , si un a des caractères combinés et " "l'autre n'en a pas, elles peuvent ne pas être égales lors d'une comparaison." #: ../Doc/library/unicodedata.rst:137 @@ -239,7 +239,7 @@ msgstr "" #: ../Doc/library/unicodedata.rst:150 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/library/unicodedata.rst:170 msgid "Footnotes" diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 0dfef3648..39ba9e90a 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -1792,7 +1792,7 @@ msgstr "" #: ../Doc/library/unittest.mock.rst:1751 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/unittest.mock.rst:1763 msgid "" diff --git a/library/unittest.po b/library/unittest.po index 5d3b0b579..6f44f646f 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/unittest.rst:2 msgid ":mod:`unittest` --- Unit testing framework" -msgstr ":mod:`unittest` --- *Framework* de tests unitaires" +msgstr ":mod:`unittest` — *Framework* de tests unitaires" #: ../Doc/library/unittest.rst:12 msgid "**Source code:** :source:`Lib/unittest/__init__.py`" @@ -183,7 +183,7 @@ msgstr "" msgid "" "A special-interest-group for discussion of testing, and testing tools, in " "Python." -msgstr "un groupe de discussion dédié aux tests, et outils de test, en Python." +msgstr "Un groupe de discussion dédié aux tests, et outils de test, en Python." #: ../Doc/library/unittest.rst:71 msgid "" @@ -279,8 +279,8 @@ msgid "" "output::" msgstr "" "Passer l'option ``-v`` à votre script de test informera :func:`unittest." -"main` qu'il doit fournir un niveau plus important de verbosité, et produit " -"la sortie suivante ::" +"main` qu'il doit fournir un niveau plus important de détails, et produit la " +"sortie suivante ::" #: ../Doc/library/unittest.rst:150 msgid "" @@ -304,7 +304,7 @@ msgid "" msgstr "" "Le module *unittest* est utilisable depuis la ligne de commande pour " "exécuter des tests à partir de modules, de classes ou même de méthodes de " -"test individuelles  ::" +"test individuelles ::" #: ../Doc/library/unittest.rst:167 msgid "" @@ -318,7 +318,7 @@ msgstr "" msgid "Test modules can be specified by file path as well::" msgstr "" "Les modules de test peuvent également être spécifiés par un chemin de " -"fichier  ::" +"fichier ::" #: ../Doc/library/unittest.rst:174 msgid "" @@ -330,9 +330,9 @@ msgid "" msgstr "" "Cette fonctionnalité permet d'utiliser la complétion de l'interpréteur de " "commandes système (*le shell*) pour spécifier le module de test. Le chemin " -"est converti en nom de module en supprimant le '.py' et en convertissant les " -"séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test qui " -"n'est pas importable en tant que module, exécutez directement le fichier." +"est converti en nom de module en supprimant le ``.py`` et en convertissant " +"les séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test " +"qui n'est pas importable en tant que module, exécutez directement le fichier." #: ../Doc/library/unittest.rst:180 msgid "" @@ -340,20 +340,20 @@ msgid "" "flag::" msgstr "" "Pour obtenir plus de détails lors de l'exécution utilisez l'option `-v` " -"(plus de verbosité) ::" +"(plus de verbosité) ::" #: ../Doc/library/unittest.rst:184 msgid "" "When executed without arguments :ref:`unittest-test-discovery` is started::" msgstr "" "Quand la commande est exécutée sans arguments :ref:`unittest-test-discovery` " -"est lancée ::" +"est lancée ::" #: ../Doc/library/unittest.rst:188 msgid "For a list of all the command-line options::" msgstr "" "Pour afficher la liste de toutes les options de la commande utilisez " -"l'option `-h` ::" +"l'option `-h` ::" #: ../Doc/library/unittest.rst:192 msgid "" @@ -451,8 +451,7 @@ msgid "" "be used from the command line. The basic command-line usage is::" msgstr "" "La découverte de tests est implémentée dans :meth:`TestLoader.discover`, " -"mais peut également être utilisée depuis la ligne de commande. Par exemple " -" ::" +"mais peut également être utilisée depuis la ligne de commande. Par exemple ::" #: ../Doc/library/unittest.rst:258 msgid "" @@ -492,7 +491,7 @@ msgid "" msgstr "" "Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées " "en arguments positionnels dans cet ordre. Les deux lignes de commande " -"suivantes sont équivalentes  ::" +"suivantes sont équivalentes ::" #: ../Doc/library/unittest.rst:289 msgid "" @@ -592,7 +591,7 @@ msgid "" msgstr "" "La sous-classe :class:`TestCase` la plus simple va tout simplement " "implémenter une méthode de test (c'est-à-dire une méthode dont le nom " -"commence par ``test``) afin d'exécuter un code de test spécifique  ::" +"commence par ``test``) afin d'exécuter un code de test spécifique ::" #: ../Doc/library/unittest.rst:343 msgid "" @@ -618,7 +617,7 @@ msgstr "" "Les tests peuvent être nombreux et leur mise en place peut être répétitive. " "Heureusement, on peut factoriser le code de mise en place en implémentant " "une méthode appelée :meth:`~TestCase.setUp`, que le système de test appelle " -"automatiquement pour chaque test exécuté  ::" +"automatiquement pour chaque test exécuté ::" #: ../Doc/library/unittest.rst:370 msgid "" @@ -645,7 +644,7 @@ msgid "" "after the test method has been run::" msgstr "" "De même, on peut fournir une méthode :meth:`~TestCase.tearDown` qui nettoie " -"après l'exécution de la méthode de test  ::" +"après l'exécution de la méthode de test ::" #: ../Doc/library/unittest.rst:390 msgid "" @@ -685,7 +684,7 @@ msgid "" "can do it yourself::" msgstr "" "Cependant, si vous voulez personnaliser la construction de votre suite de " -"tests, vous pouvez le faire vous-même  ::" +"tests, vous pouvez le faire vous-même ::" #: ../Doc/library/unittest.rst:419 msgid "" @@ -771,7 +770,7 @@ msgstr "" #: ../Doc/library/unittest.rst:454 msgid "Given the following test function::" -msgstr "Étant donnée la fonction de test suivante  ::" +msgstr "Étant donnée la fonction de test suivante ::" #: ../Doc/library/unittest.rst:461 msgid "" @@ -779,7 +778,7 @@ msgid "" "set-up and tear-down methods::" msgstr "" "on peut créer une instance de scénario de test équivalente, avec des " -"méthodes optionnelles de mise en place et de démantèlement  ::" +"méthodes optionnelles de mise en place et de démantèlement ::" #: ../Doc/library/unittest.rst:470 msgid "" @@ -834,17 +833,16 @@ msgstr "" #: ../Doc/library/unittest.rst:496 msgid "Basic skipping looks like this::" -msgstr "Un exemple de tests à ignorer  ::" +msgstr "Un exemple de tests à ignorer ::" #: ../Doc/library/unittest.rst:515 msgid "This is the output of running the example above in verbose mode::" msgstr "" -"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux " -" ::" +"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux ::" #: ../Doc/library/unittest.rst:526 msgid "Classes can be skipped just like methods::" -msgstr "Les classes peuvent être ignorées tout comme les méthodes  ::" +msgstr "Les classes peuvent être ignorées tout comme les méthodes ::" #: ../Doc/library/unittest.rst:533 msgid "" @@ -857,7 +855,7 @@ msgstr "" #: ../Doc/library/unittest.rst:536 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "" -"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure`  ::" +"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure` ::" #: ../Doc/library/unittest.rst:543 msgid "" @@ -868,7 +866,7 @@ msgstr "" "Il est facile de faire ses propres décorateurs en créant un décorateur qui " "appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce " "décorateur ignore le test à moins que l'objet passé ne possède un certain " -"attribut  ::" +"attribut ::" #: ../Doc/library/unittest.rst:552 msgid "The following decorators implement test skipping and expected failures:" @@ -935,11 +933,11 @@ msgstr "" #: ../Doc/library/unittest.rst:595 msgid "For example, the following test::" -msgstr "Par exemple, le test suivant  ::" +msgstr "Par exemple, le test suivant ::" #: ../Doc/library/unittest.rst:607 msgid "will produce the following output::" -msgstr "produit le résultat suivant  ::" +msgstr "produit le résultat suivant ::" #: ../Doc/library/unittest.rst:633 msgid "" @@ -949,7 +947,7 @@ msgid "" msgstr "" "Sans l'utilisation d'un sous-test, l'exécution se termine après le premier " "échec, et l'erreur est moins facile à diagnostiquer car la valeur de ``i`` " -"ne s'affiche pas  ::" +"ne s'affiche pas ::" #: ../Doc/library/unittest.rst:649 msgid "Classes and functions" @@ -1073,7 +1071,7 @@ msgid "" msgstr "" "Méthode de classe appelée après l'exécution des tests de la classe en " "question. ``tearDownClass`` est appelée avec la classe comme seul argument " -"et doit être décorée comme une :meth:`classmethod`  ::" +"et doit être décorée comme une :meth:`classmethod` ::" #: ../Doc/library/unittest.rst:738 msgid "" @@ -1480,7 +1478,7 @@ msgid "" msgstr "" "Si seuls les arguments *exception* et éventuellement *msg* sont donnés, " "renvoie un gestionnaire de contexte pour que le code sous test puisse être " -"écrit en ligne plutôt que comme une fonction  ::" +"écrit en ligne plutôt que comme une fonction ::" #: ../Doc/library/unittest.rst:944 msgid "" @@ -1498,7 +1496,7 @@ msgid "" msgstr "" "Le gestionnaire de contexte enregistre l'exception capturée dans son " "attribut :attr:`exception`. Ceci est particulièrement utile si l'intention " -"est d'effectuer des contrôles supplémentaires sur l'exception levée  ::" +"est d'effectuer des contrôles supplémentaires sur l'exception levée ::" #: ../Doc/library/unittest.rst:957 msgid "Added the ability to use :meth:`assertRaises` as a context manager." @@ -1528,11 +1526,11 @@ msgstr "" "représentation de la chaîne de caractères de l'exception levée. *regex* " "peut être un objet d'expression rationnelle ou une chaîne contenant une " "expression rationnelle appropriée pour être utilisée par :func:`re.search`. " -"Exemples  ::" +"Exemples ::" #: ../Doc/library/unittest.rst:978 ../Doc/library/unittest.rst:1046 msgid "or::" -msgstr "ou : ::" +msgstr "ou ::" #: ../Doc/library/unittest.rst:983 msgid "under the name ``assertRaisesRegexp``." @@ -1565,7 +1563,7 @@ msgid "" msgstr "" "Si seuls les arguments * warning* et éventuellement *msg* sont donnés, " "renvoie un gestionnaire de contexte pour que le code testé puisse être écrit " -"en ligne plutôt que comme une fonction  ::" +"en ligne plutôt que comme une fonction ::" #: ../Doc/library/unittest.rst:1010 msgid "" @@ -1586,7 +1584,7 @@ msgstr "" "attribut :attr:`warning`, et la ligne source qui a déclenché les " "avertissements dans les attributs :attr:`filename` et :attr:`lineno`. Cette " "fonction peut être utile si l'intention est d'effectuer des contrôles " -"supplémentaires sur l'avertissement capturé  ::" +"supplémentaires sur l'avertissement capturé ::" #: ../Doc/library/unittest.rst:1025 msgid "" @@ -1606,7 +1604,7 @@ msgstr "" "Comme :meth:`assertWarns` mais vérifie aussi qu'une *regex* corresponde au " "message de l'avertissement. *regex* peut être un objet d'expression " "régulière ou une chaîne contenant une expression régulière appropriée pour " -"être utilisée par :func:`re.search`. Exemple  ::" +"être utilisée par :func:`re.search`. Exemple ::" #: ../Doc/library/unittest.rst:1058 msgid "" @@ -1798,7 +1796,7 @@ msgid "" "the method name. If not, the test will fail::" msgstr "" "Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " -"le nom de la méthode. Sinon, le test échouera  ::" +"le nom de la méthode. Sinon, le test échouera ::" #: ../Doc/library/unittest.rst:1170 msgid "" @@ -3319,7 +3317,7 @@ msgstr "" "``_makeResult()`` instancie la classe ou l'appelable passé dans le " "constructeur ``TextTestRunner`` comme argument ``resultclass``. Il vaut par " "défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " -"classe de résultat est instanciée avec les arguments suivants  ::" +"classe de résultat est instanciée avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2019 msgid "" @@ -3339,8 +3337,8 @@ msgstr "" "Un programme en ligne de commande qui charge un ensemble de tests à partir " "du *module* et les exécute. L'utilisation principale est de rendre les " "modules de test facilement exécutables. L'utilisation la plus simple pour " -"cette fonction est d'inclure la ligne suivante à la fin d'un script de test " -" ::" +"cette fonction est d'inclure la ligne suivante à la fin d'un script de " +"test ::" #: ../Doc/library/unittest.rst:2038 msgid "" @@ -3348,7 +3346,7 @@ msgid "" "argument::" msgstr "" "Vous pouvez exécuter des tests avec des informations plus détaillées en " -"utilisant l'option de verbosité  ::" +"utilisant l'option de verbosité ::" #: ../Doc/library/unittest.rst:2044 msgid "" @@ -3399,7 +3397,7 @@ msgid "" msgstr "" "Les ``main`` sont utilisés à partir de l'interpréteur interactif en passant " "dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " -"standard sans appeler :func:`sys.exit`  ::" +"standard sans appeler :func:`sys.exit` ::" #: ../Doc/library/unittest.rst:2067 msgid "" @@ -3473,7 +3471,7 @@ msgid "" "`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" "Si un module de test définit ``load_tests`` il est appelé par :meth:" -"`TestLoader.loadTestsFromModule` avec les arguments suivants  ::" +"`TestLoader.loadTestsFromModule` avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2104 msgid "" @@ -3508,7 +3506,7 @@ msgid "" "class:`TestCase` classes may look like::" msgstr "" "Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " -"spécifique de classes :class:`TestCase` peut ressembler à  ::" +"spécifique de classes :class:`TestCase` peut ressembler à ::" #: ../Doc/library/unittest.rst:2127 msgid "" @@ -3525,7 +3523,7 @@ msgstr "" "`__init__.py` la fonction ``load_tests``. Si cette fonction n'existe pas, la " "découverte se poursuit dans le paquet comme si c'était juste un autre " "répertoire. Sinon, la découverte des tests du paquet est effectuée par " -"``load_tests`` qui est appelé avec les arguments suivants  ::" +"``load_tests`` qui est appelé avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2136 msgid "" @@ -3533,7 +3531,7 @@ msgid "" "package. (``standard_tests`` will only contain tests collected from :file:" "`__init__.py`.)" msgstr "" -"Doit retourner une classe :class:`TestSuite` représentant tous les tests du " +"Doit renvoyer une classe :class:`TestSuite` représentant tous les tests du " "paquet. (``standard_tests`` ne contient que les tests collectés dans le " "fichier :file:`__init__.py`)." @@ -3545,7 +3543,7 @@ msgid "" msgstr "" "Comme le motif est passé à ``load_tests``, le paquet est libre de continuer " "(et potentiellement de modifier) la découverte des tests. Une fonction « ne " -"rien faire » ``load_tests`` pour un paquet de test ressemblerait à  ::" +"rien faire » ``load_tests`` pour un paquet de test ressemblerait à ::" #: ../Doc/library/unittest.rst:2151 msgid "" @@ -3653,7 +3651,7 @@ msgstr "" #: ../Doc/library/unittest.rst:2197 msgid "These must be implemented as class methods::" -msgstr "Elles doivent être implémentées en tant que méthodes de classe  ::" +msgstr "Elles doivent être implémentées en tant que méthodes de classe ::" #: ../Doc/library/unittest.rst:2210 msgid "" @@ -3688,7 +3686,7 @@ msgstr "" #: ../Doc/library/unittest.rst:2224 msgid "These should be implemented as functions::" -msgstr "Elles doivent être implémentées en tant que fonctions  ::" +msgstr "Elles doivent être implémentées en tant que fonctions ::" #: ../Doc/library/unittest.rst:2232 msgid "" @@ -3806,4 +3804,4 @@ msgstr "" "Lorsqu'elle est appelée sans arguments, cette fonction supprime le " "gestionnaire *contrôle-c* s'il a été installé. Cette fonction peut également " "être utilisée comme décorateur de test pour supprimer temporairement le " -"gestionnaire pendant l'exécution du test  ::" +"gestionnaire pendant l'exécution du test ::" diff --git a/library/urllib.po b/library/urllib.po index 2a8f71929..41b3938e6 100644 --- a/library/urllib.po +++ b/library/urllib.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/urllib.rst:2 msgid ":mod:`urllib` --- URL handling modules" -msgstr ":mod:`urllib` --- Modules de gestion des URLs" +msgstr ":mod:`urllib` — Modules de gestion des URLs" #: ../Doc/library/urllib.rst:6 msgid "**Source code:** :source:`Lib/urllib/`" diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 2c13cf982..bf51c25a9 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" -msgstr ":mod:`urllib.robotparser` --- Analyseur de fichiers *robots.txt*" +msgstr ":mod:`urllib.robotparser` — Analyseur de fichiers *robots.txt*" #: ../Doc/library/urllib.robotparser.rst:10 msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" @@ -118,4 +118,4 @@ msgid "" "class::" msgstr "" "L'exemple suivant présente une utilisation basique de la classe :class:" -"`RobotFileParser` : ::" +"`RobotFileParser` ::" diff --git a/library/uu.po b/library/uu.po index 6f0ea136b..0a96a48e7 100644 --- a/library/uu.po +++ b/library/uu.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/uu.rst:2 msgid ":mod:`uu` --- Encode and decode uuencode files" -msgstr ":mod:`uu` --- Encode et décode les fichiers *uuencode*" +msgstr ":mod:`uu` — Encode et décode les fichiers *uuencode*" #: ../Doc/library/uu.rst:9 msgid "**Source code:** :source:`Lib/uu.py`" diff --git a/library/venv.po b/library/venv.po index 2b8b20283..4648932f5 100644 --- a/library/venv.po +++ b/library/venv.po @@ -88,7 +88,7 @@ msgstr "" msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "" -"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " +"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " "environnements virtuels." #: ../Doc/using/venv-create.inc:25 @@ -190,7 +190,7 @@ msgstr "bash/zsh" #: ../Doc/using/venv-create.inc:95 msgid "$ source /bin/activate" -msgstr "$ source /bin/activate" +msgstr "``$ source /bin/activate``" #: ../Doc/using/venv-create.inc:97 msgid "fish" @@ -198,7 +198,7 @@ msgstr "fish" #: ../Doc/using/venv-create.inc:97 msgid "$ . /bin/activate.fish" -msgstr "$ . /bin/activate.fish" +msgstr "``$ . /bin/activate.fish``" #: ../Doc/using/venv-create.inc:99 msgid "csh/tcsh" @@ -206,7 +206,7 @@ msgstr "csh/tcsh" #: ../Doc/using/venv-create.inc:99 msgid "$ source /bin/activate.csh" -msgstr "$ source /bin/activate.csh" +msgstr "``$ source /bin/activate.csh``" #: ../Doc/using/venv-create.inc:101 msgid "Windows" diff --git a/library/wsgiref.po b/library/wsgiref.po index d85657e75..94132a934 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:2 msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" -msgstr "" +msgstr ":mod:`wsgiref` — Outils et implémentation de référence de WSGI" #: ../Doc/library/wsgiref.rst:12 msgid "" @@ -28,6 +28,10 @@ msgid "" "interface makes it easy to use an application that supports WSGI with a " "number of different web servers." msgstr "" +"WSGI (*Web Server Gateway Interface*) est une interface standard entre le " +"serveur web et une application web écrite en Python. Avoir une interface " +"standardisée permet de faciliter l'usage de ces applications avec un certain " +"nombre de serveurs web différents." #: ../Doc/library/wsgiref.rst:17 msgid "" @@ -36,6 +40,10 @@ msgid "" "every detail of WSGI just to install a WSGI application or to write a web " "application using an existing framework." msgstr "" +"Seules les personnes programmant des serveurs web et des cadriciels ont " +"besoin de connaître les détails d'implémentation et les cas particuliers de " +"l'architecture de WSGI. En tant qu'utilisateur WSGI vous avez uniquement " +"besoin d'installer WSGI ou d'utiliser un cadriciel existant." #: ../Doc/library/wsgiref.rst:22 msgid "" @@ -46,6 +54,13 @@ msgid "" "WSGI applications, and a validation tool that checks WSGI servers and " "applications for conformance to the WSGI specification (:pep:`3333`)." msgstr "" +":mod:`wsgiref` est une implémentation de référence de la spécification WSGI " +"qui peut être utilisée pour ajouter la prise en charge de WSGI par un " +"serveur web ou par un cadriciel. Elle fournit des outils pour manipuler les " +"variables d'environnement WSGI, les en-têtes de réponse, les classes de base " +"pour implémenter des serveurs WSGI, un serveur de démonstration " +"d'application WSGI et un outil de validation qui vérifie que les serveurs et " +"les applications WSGI sont conformes à la spécification WSGI (:pep:`3333`)." #: ../Doc/library/wsgiref.rst:29 msgid "" @@ -55,7 +70,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:36 msgid ":mod:`wsgiref.util` -- WSGI environment utilities" -msgstr "" +msgstr ":mod:`wsgiref.util` — outils pour les environnements WSGI" #: ../Doc/library/wsgiref.rst:42 msgid "" @@ -65,6 +80,12 @@ msgid "" "*environ* parameter expect a WSGI-compliant dictionary to be supplied; " "please see :pep:`3333` for a detailed specification." msgstr "" +"Ce module fournit un certain nombre de fonctions pour manipuler des " +"environnements WSGI. Un environnement WSGI est un dictionnaire contenant les " +"variables de la requête HTTP comme décrit dans la :pep:`3333`. Toutes les " +"fonctions ayant comme argument *environ* s'attendent à ce qu'un dictionnaire " +"compatible WSGI soit fourni ; voir la :pep:`3333` pour la spécification " +"détaillée." #: ../Doc/library/wsgiref.rst:51 msgid "" @@ -72,6 +93,9 @@ msgid "" "\", by checking for a ``HTTPS`` environment variable in the *environ* " "dictionary. The return value is a string." msgstr "" +"Tente de déterminer s'il faut assigner \"http\" ou \"https\" à ``wsgi." +"url_sheme``, en vérifiant si une variable d'environnement ``HTTPS`` est dans " +"le dictionnaire *environ*. La valeur renvoyée est une chaîne de caractères." #: ../Doc/library/wsgiref.rst:55 msgid "" @@ -137,6 +161,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:105 msgid "Update *environ* with trivial defaults for testing purposes." msgstr "" +"Met à jour *environ* avec des valeurs par défaut pour des cas de tests." #: ../Doc/library/wsgiref.rst:107 msgid "" @@ -146,6 +171,11 @@ msgid "" "*`` variables. It only supplies default values, and does not replace any " "existing settings for these variables." msgstr "" +"Cette fonction ajoute des paramètres requis pour WSGI, en particulier " +"``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " +"``SCRIPT_NAME``, ``PATH_INFO`` et toutes les autres variables WSGI définies " +"dans la :pep:`3333`. Elle ne fournit que des valeurs par défaut sans toucher " +"aux valeurs déjà définies de ces variables." #: ../Doc/library/wsgiref.rst:113 msgid "" @@ -153,11 +183,15 @@ msgid "" "and applications to set up dummy environments. It should NOT be used by " "actual WSGI servers or applications, since the data is fake!" msgstr "" +"Cette fonction a pour but de faciliter les tests unitaires des serveurs et " +"des applications WSGI dans des environnements factices. Elle ne devrait pas " +"être utilisée dans une application ou un serveur WSGI, étant donné que les " +"données sont factices !" #: ../Doc/library/wsgiref.rst:117 ../Doc/library/wsgiref.rst:164 #: ../Doc/library/wsgiref.rst:284 ../Doc/library/wsgiref.rst:416 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" #: ../Doc/library/wsgiref.rst:141 msgid "" @@ -255,7 +289,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:229 msgid "Return a list of all the values for the named header." -msgstr "" +msgstr "Renvoie une liste de toutes les valeurs pour l'en-tête *name*." #: ../Doc/library/wsgiref.rst:231 msgid "" @@ -285,11 +319,11 @@ msgstr "" #: ../Doc/library/wsgiref.rst:252 msgid "The above will add a header that looks like this::" -msgstr "" +msgstr "Le code ci-dessus ajoute un en-tête qui ressemble à ceci ::" #: ../Doc/library/wsgiref.rst:257 msgid "*headers* parameter is optional." -msgstr "" +msgstr "Le paramètre *headers* est optionnel." #: ../Doc/library/wsgiref.rst:262 msgid ":mod:`wsgiref.simple_server` -- a simple WSGI HTTP server" diff --git a/library/xml.dom.po b/library/xml.dom.po index f750c96d5..147119644 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -18,7 +18,7 @@ msgstr "" #: ../Doc/library/xml.dom.rst:2 msgid ":mod:`xml.dom` --- The Document Object Model API" -msgstr ":mod:`xml.dom` --- L'API Document Object Model" +msgstr ":mod:`xml.dom` — L'API Document Object Model" #: ../Doc/library/xml.dom.rst:10 msgid "**Source code:** :source:`Lib/xml/dom/__init__.py`" @@ -209,9 +209,9 @@ msgstr "" "Renvoie une implémentation DOM appropriée. Le *name* est soit connu, soit le " "nom du module d'une implémentation DOM, soit ``None``. Si ce n'est pas " "``None``, le module correspondant est importé et retourne un objet :class:" -"`DOMImplementation` si l'import réussit. Si Aucun *name* n'est donné et que " -"la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette " -"variable est utilisé pour trouver l'implémentation." +"`DOMImplementation` si l'importation réussit. Si Aucun *name* n'est donné et " +"que la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette " +"variable est utilisée pour trouver l'implémentation." #: ../Doc/library/xml.dom.rst:103 msgid "" @@ -238,17 +238,17 @@ msgid "" "the DOM. This is typically found as the :attr:`namespaceURI` of a node, or " "used as the *namespaceURI* parameter to a namespaces-specific method." msgstr "" -"La valeur utilisée pour indiquer qu'aucun espace de nom n'est associé à un " +"La valeur utilisée pour indiquer qu'aucun espace de noms n'est associé à un " "nœud dans le DOM. Typiquement, ceci est trouvé comme :attr:`namespaceURI` " "dans un nœud ou utilisé comme le paramètre *namespaceURI* dans une méthode " -"spécifique aux espaces de nom." +"spécifique aux espaces de noms." #: ../Doc/library/xml.dom.rst:121 msgid "" "The namespace URI associated with the reserved prefix ``xml``, as defined by " "`Namespaces in XML `_ (section 4)." msgstr "" -"L'URI de l'espace de nom associé avec le préfixe réservé ``xml`` comme " +"L'URI de l'espace de noms associé avec le préfixe réservé ``xml`` comme " "défini par `Namespaces in XML `_ " "(section 4)." @@ -258,7 +258,7 @@ msgid "" "Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." msgstr "" -"L'URI de l'espace de nom pour la déclaration des espaces de noms, tel que " +"L'URI de l'espace de noms pour la déclaration des espaces de noms, tel que " "défini par `Document Object Model (DOM) Level 2 Core Specification `_ (section 1.1.8)." @@ -267,8 +267,9 @@ msgid "" "The URI of the XHTML namespace as defined by `XHTML 1.0: The Extensible " "HyperText Markup Language `_ (section 3.1.1)." msgstr "" -"L'URI de l'espace de nom XHTML tel que défini par `XHTML 1.0: The Extensible " -"HyperText Markup Language `_ (section 3.1.1)." +"L'URI de l'espace de noms XHTML tel que défini par `XHTML 1.0: The " +"Extensible HyperText Markup Language `_ " +"(section 3.1.1)." #: ../Doc/library/xml.dom.rst:138 msgid "" @@ -622,8 +623,8 @@ msgid "" "The namespace associated with the element name. This will be a string or " "``None``. This is a read-only attribute." msgstr "" -"L'espace de nom associé (*namespace*) au nom de l'élément. Cette valeur sera " -"une chaîne ou ``None``. Cet attribut est en lecture seule." +"L'espace de noms associé (*namespace* en anglais) au nom de l'élément. Cette " +"valeur est une chaîne ou ``None``. Cet attribut est en lecture seule." #: ../Doc/library/xml.dom.rst:322 msgid "" diff --git a/library/xml.po b/library/xml.po index c42970254..0f1b159e7 100644 --- a/library/xml.po +++ b/library/xml.po @@ -241,8 +241,8 @@ msgstr "" "il s'agit également d'un abus d'extension d'entités. Au lieu d'utiliser des " "entités imbriquées, cette attaque répète encore et encore une seule entité " "de plusieurs milliers de caractères. Cette attaque n'est pas aussi efficace " -"que la version exponentielle mais contourne les contre-mesure de l'analyseur " -"qui interdit les entités imbriquées de multiples fois." +"que la version exponentielle mais contourne les contre-mesures de " +"l'analyseur qui interdit les entités imbriquées de multiples fois." #: ../Doc/library/xml.rst:95 msgid "" diff --git a/library/xml.sax.po b/library/xml.sax.po index 75529aa60..0750f7656 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/xml.sax.rst:2 msgid ":mod:`xml.sax` --- Support for SAX2 parsers" -msgstr ":mod:`xml.sax` --- Prise en charge des analyseurs SAX2" +msgstr ":mod:`xml.sax` — Prise en charge des analyseurs SAX2" #: ../Doc/library/xml.sax.rst:11 msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" diff --git a/library/xmlrpc.po b/library/xmlrpc.po index 44f100717..b058b2014 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/xmlrpc.rst:2 msgid ":mod:`xmlrpc` --- XMLRPC server and client modules" -msgstr ":mod:`xmlrpc` --- Modules Serveur et Client XMLRPC" +msgstr ":mod:`xmlrpc` — Modules Serveur et Client XMLRPC" #: ../Doc/library/xmlrpc.rst:4 msgid "" diff --git a/library/zipapp.po b/library/zipapp.po index a5201f3c2..4590ae537 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -314,7 +314,7 @@ msgid "" "archive using the :func:`create_archive` function::" msgstr "" "Pour remplacer la ligne *shebang* sur une archive existante, créez une " -"archive modifiée en utilisant la fonction :func:`create_archive` : ::" +"archive modifiée en utilisant la fonction :func:`create_archive` ::" #: ../Doc/library/zipapp.rst:196 msgid "" @@ -331,7 +331,7 @@ msgstr "" "fichier local qu'une erreur entraîne la perte du fichier original. Ce code " "ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures " "nécessaires en production. De plus, cette méthode ne fonctionnera que si " -"l'archive tient en mémoire : ::" +"l'archive tient en mémoire ::" #: ../Doc/library/zipapp.rst:214 msgid "Specifying the Interpreter" @@ -521,7 +521,7 @@ msgstr "" #: ../Doc/library/zipapp.rst:300 msgid "A suitable launcher can be as simple as the following::" -msgstr "Un lanceur approprié peut être aussi simple que ce qui suit : ::" +msgstr "Un lanceur approprié peut être aussi simple que ce qui suit ::" #: ../Doc/library/zipapp.rst:325 msgid "" @@ -539,7 +539,7 @@ msgid "" msgstr "" "Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils " "standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* " -"sait comment compiler les sources Python: ::" +"sait comment compiler les sources Python ::" #: ../Doc/library/zipapp.rst:355 msgid "" diff --git a/library/zipfile.po b/library/zipfile.po index e00eaf646..f946c9bbc 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -323,7 +323,7 @@ msgid "" "keyword:`with` statement::" msgstr "" ":meth:`~ZipFile.open` est aussi un gestionnaire de contexte et gère ainsi la " -"déclaration :keyword:`with` : ::" +"déclaration :keyword:`with` ::" #: ../Doc/library/zipfile.rst:230 msgid "" @@ -735,13 +735,13 @@ msgstr "" "c'est un répertoire son contenu est ignoré. Par exemple, si nos fichiers de " "test sont tous soit dans des répertoires ``test`` ou commencent par " "``test_``, nous pouvons utiliser une fonction *filterfunc* pour les " -"exclure : ::" +"exclure ::" #: ../Doc/library/zipfile.rst:492 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" "La méthode :meth:`writepy` crée des archives avec des noms de fichier comme " -"suit : ::" +"suit ::" #: ../Doc/library/zipfile.rst:501 msgid "The *filterfunc* parameter." diff --git a/library/zipimport.po b/library/zipimport.po index 49367ae67..b7076d6da 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -75,6 +75,8 @@ msgstr "" #: ../Doc/library/zipimport.rst:31 msgid "ZIP archives with an archive comment are currently not supported." msgstr "" +"Les archives ZIP avec un commentaire ne sont actuellement pas prises en " +"charge." #: ../Doc/library/zipimport.rst:37 msgid "" @@ -102,6 +104,10 @@ msgid "" "2.3 follows the specification in PEP 273, but uses an implementation written " "by Just van Rossum that uses the import hooks described in PEP 302." msgstr "" +"Écrit par James C. Ahlstrom, qui a également fourni une mise en œuvre. " +"Python 2.3 suit les spécifications de PEP 273, mais utilise une " +"implémentation écrite par Just van Rossum qui utilise les crochets " +"d'importation décrits dans PEP 302." #: ../Doc/library/zipimport.rst:44 msgid ":pep:`302` - New Import Hooks" @@ -188,8 +194,8 @@ msgstr "" #: ../Doc/library/zipimport.rst:93 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr "" -"Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu de :exc:" -"`OSError`." +"Précédemment, c'était l'exception :exc:`IOError` qui était levée, au lieu " +"de :exc:`OSError`." #: ../Doc/library/zipimport.rst:99 msgid "" diff --git a/library/zlib.po b/library/zlib.po index 705ffd56a..dd42da217 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" -msgstr ":mod:`zlib` --- Compression compatible avec :program:`gzip`" +msgstr ":mod:`zlib` — Compression compatible avec :program:`gzip`" #: ../Doc/library/zlib.rst:10 msgid "" @@ -34,7 +34,7 @@ msgstr "" "de ce module permettent la compression et la décompression via la " "bibliothèque *zlib*. La bibliothèque *zlib* a sa propre page web sur http://" "www.zlib.net. Il existe des incompatibilités connues entre le module Python " -"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " +"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " "1.1.3 contient des failles de sécurité et nous recommandons d'utiliser " "plutôt la version 1.14 ou plus récente." @@ -45,8 +45,8 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" -"les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " -"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " +"Les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " +"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " "globalité des possibilités. Aussi, veuillez consulter le manuel *zlib* en " "ligne sur http://www.zlib.net/manual.html pour compléter davantage son " "utilisation." @@ -80,10 +80,10 @@ msgstr "" "Calcule une somme de contrôle Adler-32 de *data* (une somme de contrôle " "Adler-32 est aussi fiable qu'un CRC32 mais peut être calculée bien plus " "rapidement). Le résultat produit est un entier non signé de 32-bit. Si " -"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " -"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " +"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " +"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " "calculer une somme de contrôle continue pendant la concaténation de " -"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " +"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " "puissante, et ne doit pas être utilisé ni pour l'authentification, ni pour " "des signatures numériques. Conçu comme un algorithme de somme de contrôle, " "il n'est pas adapté pour une utilisation sous forme de clé de hachage " @@ -94,7 +94,7 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``adler32(data) & 0xffffffff``." msgstr "" -"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " +"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " "versions de Python sur différentes plateformes, utilisez ``adler32(data) & " "0xffffffff``." @@ -112,7 +112,7 @@ msgstr "" "Compresse les octets contenus dans *data*, renvoie un objet *bytes* " "contenant les données compressées. *level* permet d'ajuster le niveau de " "compression, ce doit être un nombre entier compris entre ``0`` et ``9`` ou " -"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " +"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " "est plus lent mais compresse plus fortement. ``0`` n'effectue aucune " "compression. La valeur par défaut est ``-1`` (*Z_DEFAULT_COMPRESSION*). " "*Z_DEFAULT_COMPRESSION* donne une valeur par défaut proposant un équilibre " @@ -177,9 +177,9 @@ msgid "" "specific header and trailer." msgstr "" "De +9 à +15 : le logarithme binaire de la taille du tampon, par conséquent " -"compris entre 512 et 32768. Des valeurs plus grandes produisent de " -"meilleures compressions au dépens d'une utilisation mémoire plus grande. Le " -"résultat final inclus des en-tête et des blocs spécifiques à *zlib*." +"compris entre 512 et 32 768. Des valeurs plus grandes produisent de " +"meilleures compressions aux dépens d'une utilisation mémoire plus grande. Le " +"résultat final inclus des en-têtes et des blocs spécifiques à *zlib*." #: ../Doc/library/zlib.rst:89 msgid "" @@ -196,7 +196,7 @@ msgid "" "checksum in the output." msgstr "" "De +25 à +31 = 16 + (9 à 15) : utilise les 4 bits de poids faible comme " -"logarithme binaire de la taille du tampon, tout en incluant une entête :" +"logarithme binaire de la taille du tampon, tout en incluant un entête :" "program:`gzip` et une somme de contrôle finale." #: ../Doc/library/zlib.rst:97 @@ -249,9 +249,9 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" "Calcule la somme de contrôle CRC (*Cyclic Redundancy Check* en anglais) de " -"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " +"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " "*value* est présent, il permet de définir la valeur de départ de la somme de " -"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " +"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " "calculer la somme de contrôle glissante d'une concaténation de données. " "L'algorithme n'est pas fort d'un point de vue cryptographique, et ne doit " "pas être utilisé pour l'authentification ou des signatures numériques. Cet " @@ -275,10 +275,10 @@ msgid "" "initial size of the output buffer. Raises the :exc:`error` exception if any " "error occurs." msgstr "" -"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " +"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " "données décompressées. Le paramètre *wbits* dépend du format des données " "compressées, et est abordé plus loin. Si l'argument *bufsize* est défini, il " -"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " +"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " "l'exception :exc:`error` est levée." #: ../Doc/library/zlib.rst:145 @@ -381,8 +381,8 @@ msgid "" "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" "Le paramètre *wbits* contrôle la taille du tampon, et détermine quel format " -"d'en-tête et de bloc sont prévus. Il a la même signification que `décrit " -"pour decompress() <#decompress-wbits>`__." +"d'en-tête et de bloc sont prévus. Il a la même signification que décrit pour " +"`decompress() <#decompress-wbits>`__." #: ../Doc/library/zlib.rst:190 msgid "" @@ -421,8 +421,8 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" "Compresse *data* et renvoie au moins une partie des données compressées sous " -"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " -"appels précédant à :meth:`compress`. Certaines entrées peuvent être " +"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " +"appels précédant à :meth:`compress`. Certaines entrées peuvent être " "conservées dans des tampons internes pour un traitement ultérieur." #: ../Doc/library/zlib.rst:217 @@ -443,7 +443,7 @@ msgstr "" "L'argument *mode* accepte l'une des constantes suivantes : :const:" "`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" "`Z_FULL_FLUSH`, :const:`Z_BLOCK` (*zlib* 1.2.3.4), et :const:`Z_FINISH`, par " -"défaut :const:`Z_FINISH`. Sauf :Const:`Z_FINISH`, toutes les constantes " +"défaut :const:`Z_FINISH`. Sauf :const:`Z_FINISH`, toutes les constantes " "permettent de compresser d'autres chaînes d'octets, tandis que :const:" "`Z_FINISH` finalise le flux compressé et bloque toute autre tentative de " "compression. Suite à l'appel de la méthode :meth:`flush` avec l'argument " @@ -455,7 +455,7 @@ msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " +"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " "efficacement un ensemble de données qui partagent un préfixe initial commun." #: ../Doc/library/zlib.rst:234 @@ -550,7 +550,7 @@ msgstr "" "Toutes les entrées en attente sont traitées, et un objet *bytes* est " "renvoyé, contenant le reste des données à décompresser. Après l'appel à :" "meth:`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. Il ne " -"reste qu'a détruire l'objet." +"reste qu'à détruire l'objet." #: ../Doc/library/zlib.rst:291 msgid "" diff --git a/license.po b/license.po index c0290da3a..9da49040f 100644 --- a/license.po +++ b/license.po @@ -209,7 +209,7 @@ msgstr "2.1.3" #: ../Doc/license.rst:57 msgid "2.2 and above" -msgstr "2.2 et supérieur" +msgstr "2.2 et ultérieure" #: ../Doc/license.rst:57 msgid "2001-now" @@ -226,9 +226,9 @@ msgstr "" "Compatible GPL ne signifie pas que nous distribuons Python sous licence GPL. " "Toutes les licences Python, excepté la licence GPL, vous permettent la " "distribution d'une version modifiée sans rendre open source ces changements. " -"La licence \"compatible GPL\" rend possible la diffusion de Python avec un " -"autre logiciel qui est lui, diffusé sous la licence GPL; les licences \"non " -"compatible GPL\" ne le peuvent pas." +"La licence « compatible GPL » rend possible la diffusion de Python avec un " +"autre logiciel qui est lui, diffusé sous la licence GPL ; les licences « non-" +"compatibles GPL » ne le peuvent pas." #: ../Doc/license.rst:68 msgid "" @@ -264,7 +264,7 @@ msgstr "LICENCE D'UTILISATION CWI POUR PYTHON 0.9.0 à 1.2" #: ../Doc/license.rst:262 msgid "Licenses and Acknowledgements for Incorporated Software" -msgstr "Licences et Remerciements pour les logiciels inclus" +msgstr "Licences et remerciements pour les logiciels tiers" #: ../Doc/license.rst:264 msgid "" @@ -322,7 +322,7 @@ msgid "" "notice::" msgstr "" "Les modules :mod:`asynchat` et :mod:`asyncore` contiennent la note " -"suivante : ::" +"suivante ::" #: ../Doc/license.rst:422 msgid "Cookie management" @@ -330,7 +330,7 @@ msgstr "Gestion de témoin (*cookie*)" #: ../Doc/license.rst:424 msgid "The :mod:`http.cookies` module contains the following notice::" -msgstr "Le module :mod:`http.cookies` contient la note suivante : ::" +msgstr "Le module :mod:`http.cookies` contient la note suivante ::" #: ../Doc/license.rst:450 msgid "Execution tracing" @@ -338,7 +338,7 @@ msgstr "Traçage d'exécution" #: ../Doc/license.rst:452 msgid "The :mod:`trace` module contains the following notice::" -msgstr "Le module :mod:`trace` contient la note suivante : ::" +msgstr "Le module :mod:`trace` contient la note suivante ::" #: ../Doc/license.rst:483 msgid "UUencode and UUdecode functions" @@ -363,7 +363,7 @@ msgstr "test_epoll" #: ../Doc/license.rst:548 msgid "The :mod:`test_epoll` module contains the following notice::" -msgstr "Le module :mod:`test_epoll` contient la note suivante : ::" +msgstr "Le module :mod:`test_epoll` contient la note suivante ::" #: ../Doc/license.rst:572 msgid "Select kqueue" @@ -375,7 +375,7 @@ msgid "" "interface::" msgstr "" "Le module :mod:`select` contient la note suivante pour l'interface " -"*kqueue* : ::" +"*kqueue* ::" #: ../Doc/license.rst:603 msgid "SipHash24" @@ -403,10 +403,10 @@ msgid "" "following copyright and licensing notice::" msgstr "" "Le fichier :file:`Python/dtoa.c`, qui fournit les fonctions ``dtoa`` et " -"``strtod`` pour la conversions de *doubles* C vers et depuis les chaînes, et " -"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " +"``strtod`` pour la conversion de *doubles* C vers et depuis les chaînes, est " +"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " "http://www.netlib.org/fp/. Le fichier original, tel que récupéré le 16 mars " -"2009, contiens la licence suivante : ::" +"2009, contient la licence suivante ::" #: ../Doc/license.rst:662 msgid "OpenSSL" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index df32e3af2..16508ae5e 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -28,7 +28,7 @@ msgid "" "compound statements span multiple lines, although in simple incarnations a " "whole compound statement may be contained in one line." msgstr "" -"Les instructions composées contiennent d'autres (groupes d’) instructions ; " +"Les instructions composées contiennent d'autres (groupes d’) instructions ; " "elles affectent ou contrôlent l'exécution de ces autres instructions d'une " "manière ou d'une autre. En général, une instruction composée couvre " "plusieurs lignes bien que, dans sa forme la plus simple, une instruction " @@ -48,7 +48,7 @@ msgstr "" "`try` spécifie des gestionnaires d'exception et du code de nettoyage pour un " "groupe d'instructions, tandis que l'instruction :keyword:`with` permet " "l'exécution de code d'initialisation et de finalisation autour d'un bloc de " -"code. Les définitions de fonctions et de classes sont également, au sens " +"code. Les définitions de fonctions et de classes sont également, au sens " "syntaxique, des instructions composées." #: ../Doc/reference/compound_stmts.rst:25 @@ -65,19 +65,19 @@ msgid "" "clear to which :keyword:`if` clause a following :keyword:`else` clause would " "belong::" msgstr "" -"Une instruction composée comporte une ou plusieurs \"clauses\". Une clause " -"se compose d'un en-tête et d'une \"suite\". Les en-têtes des clauses d'une " +"Une instruction composée comporte une ou plusieurs « clauses ». Une clause " +"se compose d'un en-tête et d'une « suite ». Les en-têtes des clauses d'une " "instruction composée particulière sont toutes placées au même niveau " "d'indentation. Chaque en-tête de clause commence par un mot-clé spécifique " -"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " -"d'instructions contrôlées par une clause ; une suite se compose, après les " +"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " +"d'instructions contrôlées par une clause ; une suite se compose, après les " "deux points de l'en-tête, soit d'une ou plusieurs instructions simples " "séparées par des points-virgules si elles sont sur la même ligne que l'en-" "tête, soit d'une ou plusieurs instructions en retrait sur les lignes " "suivantes. Seule cette dernière forme d'une suite peut contenir des " "instructions composées ; ce qui suit n'est pas licite, principalement parce " "qu'il ne serait pas clair de savoir à quelle clause :keyword:`if` se " -"rapporterait une clause :keyword:`else` placée en fin de ligne :" +"rapporterait une clause :keyword:`else` placée en fin de ligne ::" #: ../Doc/reference/compound_stmts.rst:38 msgid "" @@ -87,7 +87,7 @@ msgid "" msgstr "" "Notez également que le point-virgule se lie plus étroitement que le deux-" "points dans ce contexte, de sorte que dans l'exemple suivant, soit tous les " -"appels :func:`print` sont exécutés, soit aucun ne l'est :" +"appels :func:`print` sont exécutés, soit aucun ne l'est ::" #: ../Doc/reference/compound_stmts.rst:44 msgid "Summarizing:" @@ -250,9 +250,9 @@ msgid "" msgstr "" "Les noms dans la liste cible ne sont pas supprimés lorsque la boucle est " "terminée mais, si la séquence est vide, ils n'auront pas du tout été " -"assignés par la boucle. Petite astuce : la fonction intégrée :func:`range` " +"assignés par la boucle. Petite astuce : la fonction native :func:`range` " "renvoie un itérateur sur des entiers approprié pour émuler la boucle " -"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " +"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " "``list(range(3))`` renvoie la liste ``[0, 1, 2]``." #: ../Doc/reference/compound_stmts.rst:205 @@ -292,7 +292,7 @@ msgid "" "code for a group of statements:" msgstr "" "L'instruction :keyword:`try` spécifie les gestionnaires d'exception ou le " -"code de nettoyage pour un groupe d'instructions :" +"code de nettoyage pour un groupe d'instructions :" #: ../Doc/reference/compound_stmts.rst:247 msgid "" @@ -329,7 +329,7 @@ msgid "" msgstr "" "Si aucune clause ``except`` ne correspond à l'exception, la recherche d'un " "gestionnaire d'exception se poursuit dans le code englobant et dans la pile " -"d'appels [#]_." +"d'appels. [#]_" #: ../Doc/reference/compound_stmts.rst:261 msgid "" @@ -372,11 +372,11 @@ msgid "" "the end of the except clause. This is as if ::" msgstr "" "Lorsqu'une exception a été assignée en utilisant ``as cible``, elle est " -"effacée à la fin de la clause ``except``. C'est comme si ::" +"effacée à la fin de la clause ``except``. C'est comme si ::" #: ../Doc/reference/compound_stmts.rst:280 msgid "was translated to ::" -msgstr "avait été traduit en ::" +msgstr "avait été traduit en ::" #: ../Doc/reference/compound_stmts.rst:288 msgid "" @@ -508,16 +508,16 @@ msgstr "" "L'instruction :keyword:`with` est utilisée pour encapsuler l'exécution d'un " "bloc avec des méthodes définies par un gestionnaire de contexte (voir la " "section :ref:`context-managers`). Cela permet d'utiliser de manière simple " -"le patron de conception classique :keyword:`try`....\\ :keyword:`except`..." -"\\ \\ :keyword:`finally`." +"le patron de conception classique :keyword:`try`…\\ :keyword:`except`…\\ :" +"keyword:`finally`." #: ../Doc/reference/compound_stmts.rst:389 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -"L'exécution de l'instruction :keyword:`with` avec un seul \"élément" -"\" (*item* dans la grammaire) se déroule comme suit :" +"L'exécution de l'instruction :keyword:`with` avec un seul " +"« élément » (*item* dans la grammaire) se déroule comme suit :" #: ../Doc/reference/compound_stmts.rst:391 msgid "" @@ -571,8 +571,8 @@ msgid "" "arguments to :meth:`__exit__`. Otherwise, three :const:`None` arguments are " "supplied." msgstr "" -"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si " -"une exception a causé la sortie de la suite, son type, sa valeur et sa pile " +"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si une " +"exception a causé la sortie de la suite, son type, sa valeur et sa pile " "d'appels sont passés en arguments à :meth:`__exit__`. Sinon, trois " "arguments :const:`None` sont fournis." @@ -585,7 +585,7 @@ msgid "" msgstr "" "Si l'on est sorti de la suite en raison d'une exception et que la valeur de " "retour de la méthode :meth:`__exit__` était fausse, l'exception est levée à " -"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " +"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " "l'exécution continue avec l'instruction qui suit l'instruction :keyword:" "`with`." @@ -610,7 +610,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:431 #: ../Doc/reference/compound_stmts.rst:622 msgid "is equivalent to ::" -msgstr "est équivalente à : ::" +msgstr "est équivalente à ::" #: ../Doc/reference/compound_stmts.rst:437 msgid "Support for multiple context expressions." @@ -618,7 +618,7 @@ msgstr "Prise en charge de multiples expressions de contexte." #: ../Doc/reference/compound_stmts.rst:443 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction « *with* »" #: ../Doc/reference/compound_stmts.rst:443 msgid "" @@ -649,9 +649,9 @@ msgid "" "used when the function is called." msgstr "" "Une définition de fonction est une instruction qui est exécutée. Son " -"exécution lie le nom de la fonction, dans l'espace de noms local courant, à " -"un objet fonction (un objet qui encapsule le code exécutable de la " -"fonction). Cet objet fonction contient une référence à l'espace des noms " +"exécution lie le nom de la fonction, dans l'espace de nommage local courant, " +"à un objet fonction (un objet qui encapsule le code exécutable de la " +"fonction). Cet objet fonction contient une référence à l'espace des noms " "globaux courant comme espace des noms globaux à utiliser lorsque la fonction " "est appelée." @@ -660,8 +660,8 @@ msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -"La définition de la fonction n'exécute pas le corps de la fonction ; elle " -"n'est exécutée que lorsque la fonction est appelée [#]_." +"La définition de la fonction n'exécute pas le corps de la fonction ; elle " +"n'est exécutée que lorsque la fonction est appelée. [#]_" #: ../Doc/reference/compound_stmts.rst:495 msgid "" @@ -674,18 +674,18 @@ msgid "" "example, the following code ::" msgstr "" "Une définition de fonction peut être encapsulée dans une ou plusieurs " -"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " +"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " "fonction est définie, dans la portée qui contient la définition de " -"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " -"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " +"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " +"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " "fonction en lieu et place de l'objet fonction. Lorsqu'il y a plusieurs " "décorateurs, ils sont appliqués par imbrication ; par exemple, le code " -"suivant ::" +"suivant ::" #: ../Doc/reference/compound_stmts.rst:506 #: ../Doc/reference/compound_stmts.rst:649 msgid "is roughly equivalent to ::" -msgstr "est à peu près équivalent à ::" +msgstr "est à peu près équivalent à ::" #: ../Doc/reference/compound_stmts.rst:511 msgid "" @@ -705,12 +705,12 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" "Lorsqu'un ou plusieurs :term:`paramètres ` sont de la forme " -"*parameter* ``=`` *expression*, on dit que la fonction a des \"valeurs de " -"paramètres par défaut\". Pour un paramètre avec une valeur par défaut, l’:" +"*parameter* ``=`` *expression*, on dit que la fonction a des « valeurs de " +"paramètres par défaut ». Pour un paramètre avec une valeur par défaut, l’:" "term:`argument` correspondant peut être omis lors de l'appel, la valeur par " "défaut du paramètre est alors utilisée. Si un paramètre a une valeur par " "défaut, tous les paramètres suivants jusqu'à \"``*``\" doivent aussi avoir " -"une valeur par défaut --- ceci est une restriction syntaxique qui n'est pas " +"une valeur par défaut — ceci est une restriction syntaxique qui n'est pas " "exprimée dans la grammaire." #: ../Doc/reference/compound_stmts.rst:525 @@ -728,7 +728,7 @@ msgstr "" "**Les valeurs par défaut des paramètres sont évaluées de la gauche vers la " "droite quand la définition de la fonction est exécutée**. Cela signifie que " "l'expression est évaluée une fois, lorsque la fonction est définie, et que " -"c'est la même valeur \"pré-calculée\" qui est utilisée à chaque appel. C'est " +"c'est la même valeur « pré-calculée » qui est utilisée à chaque appel. C'est " "particulièrement important à comprendre lorsqu'un paramètre par défaut est " "un objet mutable, tel qu'une liste ou un dictionnaire : si la fonction " "modifie l'objet (par exemple en ajoutant un élément à une liste), la valeur " @@ -753,7 +753,7 @@ msgstr "" "section :ref:`calls`. Un appel de fonction assigne toujours des valeurs à " "tous les paramètres mentionnés dans la liste des paramètres, soit à partir " "d'arguments positionnels, d'arguments par mots-clés ou de valeurs par " -"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " +"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " "initialisé à un tuple recevant les paramètres positionnels en surplus, la " "valeur par défaut étant le tuple vide. S'il y a un paramètre de la forme " "\"``**identifier``\", il est initialisé à un nouveau tableau associatif " @@ -826,7 +826,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:587 msgid ":pep:`3107` - Function Annotations" -msgstr ":pep:`3107` -- Annotations de fonctions" +msgstr ":pep:`3107` — Annotations de fonctions" #: ../Doc/reference/compound_stmts.rst:588 msgid "The original specification for function annotations." @@ -854,9 +854,9 @@ msgstr "" "d'héritage (*inheritance* entre crochets dans la grammaire ci-dessus) donne " "habituellement une liste de classes de base (voir :ref:`metaclasses` pour " "des utilisations plus avancées). Donc chaque élément de la liste doit " -"pouvoir être évalué comme un objet classe qui autorise les sous-classes. " -"Les classes sans liste d'héritage héritent, par défaut, de la classe de " -"base :class:`object` ; d'où ::" +"pouvoir être évalué comme un objet classe qui autorise les sous-classes. Les " +"classes sans liste d'héritage héritent, par défaut, de la classe de base :" +"class:`object` ; d'où ::" #: ../Doc/reference/compound_stmts.rst:627 msgid "" @@ -870,14 +870,14 @@ msgid "" "original local namespace." msgstr "" "La suite de la classe est ensuite exécutée dans un nouveau cadre d'exécution " -"(voir :ref:`naming`), en utilisant un espace de noms local nouvellement créé " -"et l'espace de noms global d'origine (habituellement, la suite contient " -"principalement des définitions de fonctions). Lorsque la suite de la classe " -"termine son exécution, son cadre d'exécution est abandonné mais son espace " -"des noms locaux est sauvegardé [#]_. Un objet classe est alors créé en " -"utilisant la liste d'héritage pour les classes de base et l'espace de noms " -"sauvegardé comme dictionnaire des attributs. Le nom de classe est lié à " -"l'objet classe dans l'espace de noms local original." +"(voir :ref:`naming`), en utilisant un espace de nommage local nouvellement " +"créé et l'espace de nommage global d'origine (habituellement, la suite " +"contient principalement des définitions de fonctions). Lorsque la suite de " +"la classe termine son exécution, son cadre d'exécution est abandonné mais " +"son espace des noms locaux est sauvegardé [#]_. Un objet classe est alors " +"créé en utilisant la liste d'héritage pour les classes de base et l'espace " +"de nommage sauvegardé comme dictionnaire des attributs. Le nom de classe est " +"lié à l'objet classe dans l'espace de nommage local original." #: ../Doc/reference/compound_stmts.rst:636 msgid "" @@ -902,8 +902,8 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:643 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -"Les classes peuvent aussi être décorées : comme pour les décorateurs de " -"fonctions ::" +"Les classes peuvent aussi être décorées : comme pour les décorateurs de " +"fonctions, ::" #: ../Doc/reference/compound_stmts.rst:654 msgid "" @@ -929,9 +929,9 @@ msgstr "" "**Note pour les programmeurs :** les variables définies dans la définition " "de classe sont des attributs de classe ; elles sont partagées par les " "instances. Les attributs d'instance peuvent être définis dans une méthode en " -"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " +"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " "accessibles par la notation \"``self.name``\", et un attribut d'instance " -"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " +"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " "Les attributs de classe peuvent être utilisés comme valeurs par défaut pour " "les attributs d'instances, mais l'utilisation de valeurs mutables peut " "conduire à des résultats inattendus. Les :ref:`descripteurs ` " @@ -1060,7 +1060,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:793 msgid ":pep:`492` - Coroutines with async and await syntax" -msgstr ":pep:`492` -- Coroutines avec les syntaxes *async* et *await*" +msgstr ":pep:`492` — Coroutines avec les syntaxes *async* et *await*" #: ../Doc/reference/compound_stmts.rst:797 msgid "Footnotes" @@ -1104,5 +1104,5 @@ msgid "" "term:`docstring`." msgstr "" "Une chaîne littérale apparaissant comme première instruction dans le corps " -"de la classe est transformée en élément ``__doc__`` de l'espace de noms et " -"donc en :term:`docstring` de la classe." +"de la classe est transformée en élément ``__doc__`` de l'espace de nommage " +"et donc en :term:`docstring` de la classe." diff --git a/reference/datamodel.po b/reference/datamodel.po index a06454fd8..b52703ed2 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -35,7 +35,7 @@ msgstr "" "En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " "les données d'un programme Python sont représentées par des objets ou par " "des relations entre les objets (dans un certain sens, et en conformité avec " -"le modèle de Von Neumann \"d'ordinateur à programme enregistré\", le code " +"le modèle de Von Neumann d'« ordinateur à programme enregistré », le code " "est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 @@ -65,7 +65,7 @@ msgid "" "unchangeable. [#]_" msgstr "" "Le type de l'objet détermine les opérations que l'on peut appliquer à " -"l'objet (par exemple, \"a-t-il une longueur ?\") et définit aussi les " +"l'objet (par exemple, « a-t-il une longueur ? ») et définit aussi les " "valeurs possibles pour les objets de ce type. La fonction :func:`type` " "renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " "le :dfn:`type` d'un objet ne peut pas être modifié [#]_." @@ -107,7 +107,7 @@ msgstr "" "Un objet n'est jamais explicitement détruit ; cependant, lorsqu'il ne peut " "plus être atteint, il a vocation à être supprimé par le ramasse-miettes " "(*garbage-collector* en anglais). L'implémentation peut retarder cette " -"opération ou même ne pas la faire du tout --- la façon dont fonctionne le " +"opération ou même ne pas la faire du tout — la façon dont fonctionne le " "ramasse-miette est particulière à chaque implémentation, l'important étant " "qu'il ne supprime pas d'objet qui peut encore être atteint." @@ -156,7 +156,7 @@ msgid "" "`finally`' statement and the ':keyword:`with`' statement provide convenient " "ways to do this." msgstr "" -"Certains objets font référence à des ressources \"externes\" telles que des " +"Certains objets font référence à des ressources « externes » telles que des " "fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " "moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " "qu'il supprime tous les objets, ces objets fournissent également un moyen " @@ -238,13 +238,13 @@ msgid "" "future." msgstr "" "Quelques descriptions des types ci-dessous contiennent un paragraphe listant " -"des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " +"des « attributs spéciaux ». Ces attributs donnent accès à l'implémentation " "et n'ont, en général, pas vocation à être utilisés. Leur définition peut " "changer dans le futur." #: ../Doc/reference/datamodel.rst:150 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/reference/datamodel.rst:147 msgid "" @@ -375,7 +375,7 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" -"Ils représentent les valeurs \"faux\" et \"vrai\". Deux objets, ``False`` et " +"Ils représentent les valeurs *faux* et *vrai*. Deux objets, ``False`` et " "``True``, sont les seuls objets booléens. Le type booléen est un sous-type " "du type entier et les valeurs booléennes se comportent comme les valeurs 0 " "(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " @@ -470,7 +470,7 @@ msgid "" "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" -"Quelques séquences gèrent le \"découpage étendu\" (*extended slicing* en " +"Quelques séquences gèrent le « découpage étendu » (*extended slicing* en " "anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " "éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " "*i* ``<=`` *x* ``<`` *j*." @@ -532,7 +532,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:316 msgid "Tuples" -msgstr "Tuples" +msgstr "n-uplets (ou tuples)" #: ../Doc/reference/datamodel.rst:311 msgid "" @@ -546,7 +546,7 @@ msgstr "" "Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " "deux ou plus éléments sont formés par une liste d'expressions dont les " "éléments sont séparés par des virgules. Un tuple composé d'un seul élément " -"(un \"singleton\") est formé en suffixant une expression avec une virgule " +"(un « singleton ») est formé en suffixant une expression avec une virgule " "(une expression en tant que telle ne crée pas un tuple car les parenthèses " "doivent rester disponibles pour grouper les expressions). Un tuple vide peut " "être formé à l'aide d'une paire de parenthèses vide." @@ -882,7 +882,7 @@ msgid "" "the global namespace of the module in which the function was defined." msgstr "" "Référence pointant vers le dictionnaire contenant les variables globales de " -"la fonction -- l'espace de noms global du module dans lequel la fonction est " +"la fonction — l'espace de noms global du module dans lequel la fonction est " "définie." #: ../Doc/reference/datamodel.rst:499 ../Doc/reference/datamodel.rst:510 @@ -895,7 +895,7 @@ msgstr ":attr:`~object.__dict__`" #: ../Doc/reference/datamodel.rst:506 msgid "The namespace supporting arbitrary function attributes." -msgstr "Espace de noms accueillant les attributs de la fonction." +msgstr "Espace de nommage accueillant les attributs de la fonction." #: ../Doc/reference/datamodel.rst:510 msgid ":attr:`__closure__`" @@ -939,7 +939,7 @@ msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" -"La plupart des attributs étiquetés \"Accessible en écriture\" vérifient le " +"La plupart des attributs étiquetés « Accessible en écriture » vérifient le " "type de la valeur qu'on leur assigne." #: ../Doc/reference/datamodel.rst:527 @@ -1219,9 +1219,9 @@ msgid "" msgstr "" "Ce sont des fonctions natives déguisées, contenant un objet passé à une " "fonction C en tant qu'argument supplémentaire implicite. Un exemple de " -"méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " -"Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` est défini " -"à l'objet *une_liste*." +"méthode native est ``une_liste.append()`` (``une_liste`` étant un objet " +"liste). Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` " +"est défini à l'objet *une_liste*." #: ../Doc/reference/datamodel.rst:681 msgid "Classes" @@ -1287,8 +1287,9 @@ msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" -"L'assignation d'un attribut met à jour le dictionnaire d'espace de noms du " -"module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = 1``." +"L'assignation d'un attribut met à jour le dictionnaire d'espace de nommage " +"du module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = " +"1``." #: ../Doc/reference/datamodel.rst:715 msgid "" @@ -1321,7 +1322,7 @@ msgid "" "namespace as a dictionary object." msgstr "" "Attribut spécial en lecture seule : :attr:`~object.__dict__` est l'objet " -"dictionnaire répertoriant l'espace de noms du module." +"dictionnaire répertoriant l'espace de nommage du module." #: ../Doc/reference/datamodel.rst:733 msgid "" @@ -1357,7 +1358,7 @@ msgid "" msgstr "" "Le type d'une classe déclarée par le développeur est créé au moment de la " "définition de la classe (voir la section :ref:`class`). Une classe possède " -"un espace de noms implémenté sous la forme d'un objet dictionnaire. Les " +"un espace de nommage implémenté sous la forme d'un objet dictionnaire. Les " "références vers les attributs de la classe sont traduits en recherches dans " "ce dictionnaire, par exemple ``C.x`` est traduit en ``C.__dict__[\"x\"]`` " "(bien qu'il existe un certain nombre de fonctions automatiques qui " @@ -1418,8 +1419,8 @@ msgid "" msgstr "" "Attributs spéciaux : :attr:`~definition.__name__` est le nom de la classe ; :" "attr:`__module__` est le nom du module dans lequel la classe est définie ; :" -"attr:`~object.__dict__` est le dictionnaire contenant l'espace de noms de la " -"classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " +"attr:`~object.__dict__` est le dictionnaire contenant l'espace de nommage de " +"la classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " "base, dans l'ordre d'apparition dans la liste des classes de base ; :attr:" "`__doc__` est la chaîne de documentation de la classe (ou ``None`` si elle " "n'existe pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire " @@ -1447,16 +1448,16 @@ msgid "" "method, that is called to satisfy the lookup." msgstr "" "Une instance de classe est créée en appelant un objet classe (voir ci-" -"dessus). Une instance de classe possède un espace de noms implémenté sous la " -"forme d'un dictionnaire qui est le premier endroit où sont recherchées les " -"références aux attributs. Quand un attribut n'est pas trouvé dans ce " +"dessus). Une instance de classe possède un espace de nommage implémenté sous " +"la forme d'un dictionnaire qui est le premier endroit où sont recherchées " +"les références aux attributs. Quand un attribut n'est pas trouvé dans ce " "dictionnaire et que la classe de l'instance contient un attribut avec ce " "nom, la recherche continue avec les attributs de la classe. Si un attribut " "de classe est trouvé et que c'est un objet fonction définie par " "l'utilisateur, il est transformé en objet méthode d'instance dont " "l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " "méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " -"\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " +"« Classes ». Lisez la section :ref:`descriptors` pour une autre façon de " "récupérer les attributs d'une classe, où la récupération *via* ses instances " "peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " "de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " @@ -1507,7 +1508,7 @@ msgstr "" "Un :term:`objet fichier` représente un fichier ouvert. Différents raccourcis " "existent pour créer des objets fichiers : la fonction native :func:`open` et " "aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:`~socket." -"socket.makefile` des objets sockets (et sûrement d'autres fonctions ou " +"socket.makefile` des objets connecteurs (et sûrement d'autres fonctions ou " "méthodes fournies par les modules d'extensions)." #: ../Doc/reference/datamodel.rst:860 @@ -1849,7 +1850,7 @@ msgstr "" "autre objet afin de modifier la façon dont cet objet est récupéré depuis les " "classes et instances de classes. Le comportement des objets méthodes de " "classes dans le cas d'une telle récupération est décrit plus haut, dans " -"\"méthodes définies par l'utilisateur\". Les objets méthodes de classes sont " +"« méthodes définies par l'utilisateur ». Les objets méthodes de classes sont " "créés par le constructeur natif :func:`classmethod`." #: ../Doc/reference/datamodel.rst:1075 @@ -2049,9 +2050,9 @@ msgid "" "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" -"``del x`` n'appelle pas directement ``x.__del__()`` --- la première " -"décrémente le compteur de références de ``x``. La seconde n'est appelée que " -"quand le compteur de références de ``x`` atteint zéro." +"``del x`` n'appelle pas directement ``x.__del__()`` — la première décrémente " +"le compteur de références de ``x``. La seconde n'est appelée que quand le " +"compteur de références de ``x`` atteint zéro." #: ../Doc/reference/datamodel.rst:1196 msgid "Documentation for the :mod:`gc` module." @@ -2114,13 +2115,13 @@ msgid "" "an \"informal\" string representation of instances of that class is required." msgstr "" "Appelée par la fonction native :func:`repr` pour calculer la représentation " -"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour que " +"« officielle » en chaîne de caractères d'un objet. Tout est fait pour que " "celle-ci ressemble à une expression Python valide pouvant être utilisée pour " "recréer un objet avec la même valeur (dans un environnement donné). Si ce " "n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " "est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " "une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" -"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"`__repr__` est aussi utilisée quand une représentation « informelle » en " "chaîne de caractères est demandée pour une instance de cette classe." #: ../Doc/reference/datamodel.rst:1234 @@ -2140,9 +2141,9 @@ msgid "" "` object." msgstr "" "Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" -"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" -"\" ou joliment mise en forme de représentation de l'objet. La valeur " -"renvoyée doit être un objet :ref:`string `." +"`format` et :func:`print` pour calculer une chaîne de caractères " +"« informelle » ou joliment mise en forme de représentation de l'objet. La " +"valeur renvoyée doit être un objet :ref:`string `." #: ../Doc/reference/datamodel.rst:1250 msgid "" @@ -2207,8 +2208,8 @@ msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" -"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si " -"vous lui passez une chaîne non vide." +"La méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " +"si vous lui passez une chaîne non vide." #: ../Doc/reference/datamodel.rst:1305 msgid "" @@ -2218,7 +2219,7 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" -"Ce sont les méthodes dites de \"comparaisons riches\". La correspondance " +"Ce sont les méthodes dites de « comparaisons riches ». La correspondance " "entre les symboles opérateurs et les noms de méthodes est la suivante : " "``xy`` appelle " @@ -2641,7 +2642,7 @@ msgstr "" "classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " "figurer dans le dictionnaire de la classe propriétaire ou dans le " "dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " -"\"l'attribut\" fait référence à l'attribut dont le nom est une clé du :attr:" +"« l'attribut » fait référence à l'attribut dont le nom est une clé du :attr:" "`~object.__dict__` de la classe propriétaire." #: ../Doc/reference/datamodel.rst:1553 @@ -2713,7 +2714,7 @@ msgid "" "of those methods are defined for an object, it is said to be a descriptor." msgstr "" "En général, un descripteur est un attribut d'objet dont le comportement est " -"\"lié\" (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"« lié » (*binding dehavior* en anglais), c'est-à-dire que les accès aux " "attributs ont été surchargés par des méthodes conformes au protocole des " "descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " "l'une de ces méthodes est définie pour un objet, il est réputé être un " @@ -3085,7 +3086,7 @@ msgid "" "result of ``type(name, bases, namespace)``." msgstr "" "Par défaut, les classes sont construites en utilisant :func:`type`. Le corps " -"de la classe est exécuté dans un nouvel espace de noms et le nom de la " +"de la classe est exécuté dans un nouvel espace de nommage et le nom de la " "classe est lié localement au résultat de `type(name, bases, namespace)``." #: ../Doc/reference/datamodel.rst:1776 @@ -3183,7 +3184,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1823 msgid "Preparing the class namespace" -msgstr "Préparation de l'espace de noms de la classe" +msgstr "Préparation de l'espace de nommage de la classe" #: ../Doc/reference/datamodel.rst:1828 msgid "" @@ -3192,8 +3193,8 @@ msgid "" "as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the " "additional keyword arguments, if any, come from the class definition)." msgstr "" -"Une fois que la méta-classe appropriée est identifiée, l'espace de noms de " -"la classe est préparé. Si la méta-classe possède un attribut " +"Une fois que la méta-classe appropriée est identifiée, l'espace de nommage " +"de la classe est préparé. Si la méta-classe possède un attribut " "``__prepare__``, il est appelé avec ``namespace = metaclass." "__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, " "s'il y en a, viennent de la définition de la classe)." @@ -3204,17 +3205,18 @@ msgid "" "is initialised as an empty ordered mapping." msgstr "" "Si la méta-classe ne possède pas d'attribut ``__prepare__``, alors l'espace " -"de noms de la classe est initialisé en tant que tableau de correspondances " -"ordonné." +"de nommage de la classe est initialisé en tant que tableau de " +"correspondances ordonné." #: ../Doc/reference/datamodel.rst:1838 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` -- Méta-classes dans Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" #: ../Doc/reference/datamodel.rst:1839 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" +"introduction de la fonction automatique ``__prepare__`` de l'espace de " +"nommage" #: ../Doc/reference/datamodel.rst:1843 msgid "Executing the class body" @@ -3261,7 +3263,7 @@ msgid "" "**kwds)`` (the additional keywords passed here are the same as those passed " "to ``__prepare__``)." msgstr "" -"Quand l'espace de noms a été rempli en exécutant le corps de la classe, " +"Quand l'espace de nommage a été rempli en exécutant le corps de la classe, " "l'objet classe est créé en appelant ``metaclass(name, bases, namespace, " "**kwds)`` (les arguments nommés supplémentaires passés ici sont les mêmes " "que ceux passés à ``__prepare__``)." @@ -3294,7 +3296,7 @@ msgid "" "`DeprecationWarning` in Python 3.6, and a :exc:`RuntimeError` in Python 3.8." msgstr "" "Dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la méta-" -"classe en tant qu'entrée ``__classcell__`` dans l'espace de noms de la " +"classe en tant qu'entrée ``__classcell__`` dans l'espace de nommage de la " "classe. Si elle est présente, elle doit être propagée à l'appel ``type .__ " "new__`` pour que la classe soit correctement initialisée. Ne pas le faire se " "traduit par un avertissement :exc:`DeprecationWarning` dans Python 3.6 et " @@ -3316,8 +3318,9 @@ msgid "" "first, ``type.__new__`` collects all of the descriptors in the class " "namespace that define a :meth:`~object.__set_name__` method;" msgstr "" -"d'abord, ``type.__new__`` récupère, dans l'espace de noms de la classe, tous " -"les descripteurs qui définissent une méthode :meth:`~object.__set_name__` ;" +"d'abord, ``type.__new__`` récupère, dans l'espace de nommage de la classe, " +"tous les descripteurs qui définissent une méthode :meth:`~object." +"__set_name__` ;" #: ../Doc/reference/datamodel.rst:1898 msgid "" @@ -3344,7 +3347,7 @@ msgid "" msgstr "" "Après la création de l'objet classe, il est passé aux décorateurs de la " "classe, y compris ceux inclus dans la définition de la classe (s'il y en a) " -"et l'objet résultant est lié à l'espace de noms local en tant que classe " +"et l'objet résultant est lié à l'espace de nommage local en tant que classe " "définie." #: ../Doc/reference/datamodel.rst:1907 @@ -3355,14 +3358,14 @@ msgid "" "becomes the :attr:`~object.__dict__` attribute of the class object." msgstr "" "Quand une nouvelle classe est créée *via* ``type.__new__``, l'objet fourni " -"en tant que paramètre d'espace de noms est copié vers un nouveau tableau de " -"correspondances ordonné et l'objet original est laissé de côté. La nouvelle " -"copie est encapsulée dans un mandataire en lecture seule qui devient " -"l'attribut :attr:`~object.__dict__` de l'objet classe." +"en tant que paramètre d'espace de nommage est copié vers un nouveau tableau " +"de correspondances ordonné et l'objet original est laissé de côté. La " +"nouvelle copie est encapsulée dans un mandataire en lecture seule qui " +"devient l'attribut :attr:`~object.__dict__` de l'objet classe." #: ../Doc/reference/datamodel.rst:1914 msgid ":pep:`3135` - New super" -msgstr ":pep:`3135` -- Nouvelle méthode super" +msgstr ":pep:`3135` — Nouvelle méthode super" #: ../Doc/reference/datamodel.rst:1915 msgid "Describes the implicit ``__class__`` closure reference" @@ -3437,8 +3440,8 @@ msgid "" "other ABCs." msgstr "" "En particulier, la méta-classe :class:`abc.ABCMeta` implémente ces méthodes " -"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " -"Base Classes* en anglais) en tant que \"classes de base virtuelles\" pour " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que « classes de base virtuelles » pour " "toute classe ou type (y compris les types natifs)." #: ../Doc/reference/datamodel.rst:1972 @@ -3448,7 +3451,7 @@ msgid "" "class)``." msgstr "" "Renvoie ``True`` si *instance* doit être considérée comme une instance " -"(directe ou indirecte) de *class*. Si elle est définie, est elle appelée " +"(directe ou indirecte) de *class*. Si elle est définie, elle est appelée " "pour implémenter ``isinstance(instance, class)``." #: ../Doc/reference/datamodel.rst:1979 @@ -3476,7 +3479,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1995 msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr ":pep:`3119` -- Introduction aux classes de bases abstraites" +msgstr ":pep:`3119` — Introduction aux classes de bases abstraites" #: ../Doc/reference/datamodel.rst:1992 msgid "" @@ -3502,7 +3505,7 @@ msgid "" "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" -"Appelée quand l'instance est \"appelée\" en tant que fonction ; si la " +"Appelée quand l'instance est « appelée » en tant que fonction ; si la " "méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." "__call__(arg1, arg2, ...)``." @@ -3621,11 +3624,11 @@ msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " -"Un appel comme ::" +"Un appel comme ::" #: ../Doc/reference/datamodel.rst:2083 msgid "is translated to ::" -msgstr "est traduit en ::" +msgstr "est traduit en ::" #: ../Doc/reference/datamodel.rst:2087 msgid "and so forth. Missing slice items are always filled in with ``None``." @@ -3757,7 +3760,7 @@ msgstr "" "sont normalement implémentés comme des itérations sur la séquence. " "Cependant, les objets conteneurs peuvent fournir les méthodes spéciales " "suivantes avec une implémentation plus efficace, qui ne requièrent " -"d'ailleurs pas que l'objet soit une séquence. " +"d'ailleurs pas que l'objet soit une séquence." #: ../Doc/reference/datamodel.rst:2163 msgid "" @@ -3818,7 +3821,7 @@ msgstr "" "évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " "possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " "méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" -"`__floordiv__` et :meth:`__mod__`; elle ne doit pas être reliée à :meth:" +"`__floordiv__` et :meth:`__mod__` ; elle ne doit pas être reliée à :meth:" "`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " "accepter un troisième argument optionnel si la version ternaire de la " "fonction native :func:`pow` est autorisée." @@ -3891,7 +3894,7 @@ msgstr "" "Ces méthodes sont appelées pour implémenter les assignations arithmétiques " "augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " "``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " -"essayer d'effectuer l'opération \"sur place\" (c'est-à-dire de modifier " +"essayer d'effectuer l'opération « sur place » (c'est-à-dire de modifier " "*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " "*self*). Si une méthode spécifique n'est pas définie, l'assignation " "augmentée se replie vers la méthode normale correspondante. Par exemple, si " @@ -4044,7 +4047,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:2391 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction ``with``" #: ../Doc/reference/datamodel.rst:2391 msgid "" @@ -4091,7 +4094,7 @@ msgid "" "the instance when looking up special methods::" msgstr "" "Essayer d'invoquer une méthode non liée d'une classe de cette manière est " -"parfois appelé \"confusion de méta-classe\" et se contourne en shuntant " +"parfois appelé « confusion de méta-classe » et se contourne en shuntant " "l'instance lors de la recherche des méthodes spéciales ::" #: ../Doc/reference/datamodel.rst:2437 @@ -4124,7 +4127,7 @@ msgstr "Coroutines" #: ../Doc/reference/datamodel.rst:2478 msgid "Awaitable Objects" -msgstr "Objets *awaitables*" +msgstr "Objets *attendables* (*awaitables*)" #: ../Doc/reference/datamodel.rst:2480 msgid "" @@ -4411,7 +4414,7 @@ msgstr "" "*n'autorise pas* signifie ici que la classe ne possède pas de méthode " "adéquate ou que la méthode renvoie ``NotImplemented``. N'assignez pas " "``None`` à la méthode si vous voulez un repli vers la méthode symétrique de " -"l'opérande de droite -- cela aurait pour effet de *bloquer* un tel repli." +"l'opérande de droite — cela aurait pour effet de *bloquer* un tel repli." #: ../Doc/reference/datamodel.rst:2684 msgid "" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 551425512..097118510 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -250,7 +250,7 @@ msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" -"L'espace de noms pour un module est créé automatiquement la première fois " +"L'espace de nommage pour un module est créé automatiquement la première fois " "que le module est importé. Le module principal d'un script s'appelle " "toujours :mod:`__main__`." @@ -273,10 +273,10 @@ msgstr "" "qui peut utiliser et définir des noms. Toutes ces références suivent les " "règles normales de la résolution des noms à l'exception des variables " "locales non liées qui sont recherchées dans l'espace des noms globaux. " -"L'espace de noms de la définition de classe devient le dictionnaire des " +"L'espace de nommage de la définition de classe devient le dictionnaire des " "attributs de la classe. La portée des noms définis dans un bloc de classe " "est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " -"méthodes -- y compris les compréhensions et les expressions générateurs " +"méthodes — y compris les compréhensions et les expressions générateurs " "puisque celles-ci sont implémentées en utilisant une portée de fonction. " "Ainsi, les instructions suivantes échouent ::" @@ -291,9 +291,9 @@ msgid "" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" -"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit " +"L'utilisateur ne doit pas toucher à ``__builtins__`` ; c'est et cela doit " "rester réservé aux besoins de l'implémentation. Les utilisateurs qui " -"souhaitent surcharger des valeurs dans l'espace de noms natifs doivent :" +"souhaitent surcharger des valeurs dans l'espace de nommage natif doivent :" "keyword:`importer ` le module :mod:`builtins` et modifier ses " "attributs judicieusement." @@ -307,9 +307,9 @@ msgid "" "other module, ``__builtins__`` is an alias for the dictionary of the :mod:" "`builtins` module itself." msgstr "" -"L'espace de noms natifs associé à l'exécution d'un bloc de code est " +"L'espace de nommage natif associé à l'exécution d'un bloc de code est " "effectivement trouvé en cherchant le nom ``__builtins__`` dans l'espace de " -"noms globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " +"nommage globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " "cas, le dictionnaire du module est utilisé). Par défaut, lorsque l'on se " "trouve dans le module :mod:`__main__`, ``__builtins__`` est le module natif :" "mod:`builtins` ; lorsque l'on se trouve dans tout autre module, " @@ -340,12 +340,12 @@ msgid "" msgstr "" "Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement " "complet pour résoudre les noms. Les noms doivent être résolus dans les " -"espaces de noms locaux et globaux de l'appelant. Les variables libres ne " -"sont pas résolues dans l'espace de noms englobant le plus proche mais dans " -"l'espace de noms globaux [#]_. Les fonctions :func:`eval` et :func:`exec` " -"possèdent des arguments optionnels pour surcharger les espaces de noms " -"globaux et locaux. Si seulement un espace de noms est spécifié, il est " -"utilisé pour les deux." +"espaces de nommage locaux et globaux de l'appelant. Les variables libres ne " +"sont pas résolues dans l'espace de nommage englobant le plus proche mais " +"dans l'espace de nommage globaux [#]_. Les fonctions :func:`eval` et :func:" +"`exec` possèdent des arguments optionnels pour surcharger les espaces de " +"nommage globaux et locaux. Si seulement un espace de nommage est spécifié, " +"il est utilisé pour les deux." #: ../Doc/reference/executionmodel.rst:210 msgid "Exceptions" @@ -379,11 +379,10 @@ msgstr "" "L'interpréteur Python lève une exception quand il détecte une erreur à " "l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " "lever explicitement une exception avec l'instruction :keyword:`raise`. Les " -"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:" -"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle " -"instruction peut être utilisée pour spécifier un code de nettoyage qui ne " -"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou " -"pas)." +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:`try` " +"… :keyword:`except`. La clause :keyword:`finally` d'une telle instruction " +"peut être utilisée pour spécifier un code de nettoyage qui ne gère pas " +"l'exception mais qui est exécuté quoi qu'il arrive (exception ou pas)." #: ../Doc/reference/executionmodel.rst:237 msgid "" @@ -394,7 +393,7 @@ msgid "" msgstr "" "Python utilise le modèle par *terminaison* de gestion des erreurs : un " "gestionnaire d'exception peut trouver ce qui est arrivé et continuer " -"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de " +"l'exécution à un niveau plus élevé, mais il ne peut pas réparer l'origine de " "l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " "dans le code en question par le haut)." diff --git a/reference/expressions.po b/reference/expressions.po index 93b972b9a..66e5b3e04 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -56,7 +56,7 @@ msgid "" "operator implementation for built-in types works as follows:" msgstr "" "Quand la description d'un opérateur arithmétique ci-dessous utilise la " -"phrase \"les arguments numériques sont convertis vers un type commun\", cela " +"phrase « les arguments numériques sont convertis vers un type commun », cela " "signifie que l'implémentation de l'opérateur fonctionne de la manière " "suivante pour les types natifs :" @@ -152,8 +152,8 @@ msgstr "" "` de cette classe. Les noms privés sont transformés en une " "forme plus longue avant que le code ne soit généré pour eux. La " "transformation insère le nom de la classe, avec les soulignés enlevés et un " -"seul souligné inséré devant le nom. Par exemple, l'identificateur " -"``__spam`` apparaissant dans une classe nommée ``Ham`` est transformé en " +"seul souligné inséré devant le nom. Par exemple, l'identificateur ``__spam`` " +"apparaissant dans une classe nommée ``Ham`` est transformé en " "``_Ham__spam``. Cette transformation est indépendante du contexte syntaxique " "dans lequel l'identificateur est utilisé. Si le nom transformé est " "extrêmement long (plus de 255 caractères), l'implémentation peut le " @@ -239,7 +239,7 @@ msgid "" msgstr "" "Notez que les *tuples* ne sont pas créés par les parenthèses mais par " "l'utilisation de la virgule. L'exception est le tuple vide, pour lequel les " -"parenthèses *sont requises* (autoriser que \"rien\" ne soit pas parenthésé " +"parenthèses *sont requises* (autoriser que « rien » ne soit pas parenthésé " "dans les expressions aurait généré des ambigüités et aurait permis à " "certaines coquilles de passer inaperçu)." @@ -253,7 +253,7 @@ msgid "" "syntax called \"displays\", each of them in two flavors:" msgstr "" "Pour construire une liste, un ensemble ou un dictionnaire, Python fournit " -"des syntaxes spéciales dites \"agencements\" (*displays* en anglais), chaque " +"des syntaxes spéciales dites « agencements » (*displays* en anglais), chaque " "agencement comportant deux variantes :" #: ../Doc/reference/expressions.rst:166 @@ -365,7 +365,7 @@ msgid "" msgstr "" "Un agencement d'ensemble (type *set*) est délimité par des accolades et se " "distingue de l'agencement d'un dictionnaire par le fait qu'il n'y a pas de " -"\"deux points\" ``:`` pour séparer les clés et les valeurs :" +"« deux points » ``:`` pour séparer les clés et les valeurs :" #: ../Doc/reference/expressions.rst:239 msgid "" @@ -474,12 +474,12 @@ msgstr "" #: ../Doc/reference/expressions.rst:303 msgid "Generator expressions" -msgstr "Générateurs (expressions)" +msgstr "Expressions génératrices" #: ../Doc/reference/expressions.rst:308 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" -"Une expression générateur est une notation concise pour un générateur, " +"Une expression génératrice est une notation concise pour un générateur, " "entourée de parenthèses :" #: ../Doc/reference/expressions.rst:313 @@ -488,8 +488,8 @@ msgid "" "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" -"Une expression générateur produit un nouvel objet générateur. Sa syntaxe est " -"la même que celle des compréhensions, sauf qu'elle est entourée de " +"Une expression génératrice produit un nouvel objet générateur. Sa syntaxe " +"est la même que celle des compréhensions, sauf qu'elle est entourée de " "parenthèses au lieu de crochets ou d'accolades." #: ../Doc/reference/expressions.rst:317 @@ -554,12 +554,12 @@ msgid "" "asynchronous generator. For example::" msgstr "" "Une expression ``yield`` est utilisée pour définir une fonction :term:" -"`générateur` ou une fonction :term:`générateur asynchrone` et ne peut donc " -"être utilisée que dans le corps de la définition d'une fonction. " -"L'utilisation d'une expression ``yield`` dans le corps d'une fonction " -"entraîne que cette fonction devient un générateur et son utilisation dans le " -"corps d'une fonction :keyword:`async def` entraine que cette fonction " -"coroutine devient un générateur asynchrone. Par exemple ::" +"`générateur` ou une fonction :term:`génératrice asynchrone ` et ne peut donc être utilisée que dans le corps de la définition " +"d'une fonction. L'utilisation d'une expression ``yield`` dans le corps d'une " +"fonction entraîne que cette fonction devient un générateur et son " +"utilisation dans le corps d'une fonction :keyword:`async def` entraine que " +"cette fonction coroutine devient un générateur asynchrone. Par exemple ::" #: ../Doc/reference/expressions.rst:365 msgid "" @@ -567,7 +567,7 @@ msgid "" "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -"Les fonctions générateurs sont décrites plus loin alors que les fonctions " +"Les fonctions génératrices sont décrites plus loin alors que les fonctions " "générateurs asynchrones sont décrites séparément dans la section :ref:" "`asynchronous-generator-functions`." @@ -590,9 +590,9 @@ msgid "" "`~generator.send` is used, then the result will be the value passed in to " "that method." msgstr "" -"Lorsqu'une fonction générateur est appelée, elle renvoie un itérateur que " +"Lorsqu'une fonction génératrice est appelée, elle renvoie un itérateur que " "l'on appelle générateur. Ce générateur contrôle l'exécution de la fonction " -"générateur. L'exécution commence lorsque l'une des méthodes du générateur " +"génératrice. L'exécution commence lorsque l'une des méthodes du générateur " "est appelée. À ce moment, l'exécution se déroule jusqu'à la première " "expression ``yield``, où elle se suspend, renvoyant la valeur de :token:" "`expression_list` à l'appelant du générateur. Cette suspension conserve tous " @@ -616,10 +616,10 @@ msgid "" "function cannot control where the execution should continue after it yields; " "the control is always transferred to the generator's caller." msgstr "" -"Tout ceci rend les fonctions générateurs très similaires aux coroutines : " +"Tout ceci rend les fonctions génératrices très similaires aux coroutines : " "elles produisent plusieurs objets *via* des expressions ``yield``, elles " "possèdent plus qu'un seul point d'entrée et leur exécution peut être " -"suspendue. La seule différence est qu'une fonction générateur ne peut pas " +"suspendue. La seule différence est qu'une fonction génératrice ne peut pas " "contrôler où l'exécution doit se poursuivre après une instruction " "``yield`` ; ce contrôle est toujours du ressort de l'appelant au générateur." @@ -689,7 +689,7 @@ msgstr "" #: ../Doc/reference/expressions.rst:424 msgid ":pep:`255` - Simple Generators" -msgstr ":pep:`255`: Générateurs simples" +msgstr ":pep:`255` : Générateurs simples" #: ../Doc/reference/expressions.rst:424 msgid "" @@ -782,7 +782,7 @@ msgid "" "called with :const:`None` as the argument, because there is no yield " "expression that could receive the value." msgstr "" -"Reprend l'exécution et \"envoie\" une valeur à la fonction générateur. " +"Reprend l'exécution et « envoie » une valeur à la fonction générateur. " "L'argument *value* devient le résultat de l'expression ``yield`` courante. " "La méthode :meth:`send` renvoie la valeur suivante produite par le " "générateur ou lève :exc:`StopIteration` si le générateur termine sans " @@ -802,9 +802,9 @@ msgstr "" "Lève une exception de type ``type`` à l'endroit où le générateur est en " "pause et renvoie la valeur suivante produite par la fonction générateur. Si " "le générateur termine sans produire de nouvelle valeur, une exception :exc:" -"`StopIteration` est levée. Si la fonction générateur ne gère pas l'exception " -"passée ou lève une autre exception, alors cette exception est propagée vers " -"l'appelant." +"`StopIteration` est levée. Si la fonction génératrice ne gère pas " +"l'exception passée ou lève une autre exception, alors cette exception est " +"propagée vers l'appelant." #: ../Doc/reference/expressions.rst:488 msgid "" @@ -816,8 +816,8 @@ msgid "" "is propagated to the caller. :meth:`close` does nothing if the generator " "has already exited due to an exception or normal exit." msgstr "" -"Lève une :exc:`GeneratorExit` à l'endroit où la fonction générateur a été " -"mise en pause. Si la fonction générateur termine, est déjà fermée ou lève :" +"Lève une :exc:`GeneratorExit` à l'endroit où la fonction génératrice a été " +"mise en pause. Si la fonction génératrice termine, est déjà fermée ou lève :" "exc:`GeneratorExit` (parce qu'elle ne gère pas l'exception), *close* revient " "vers l'appelant. Si le générateur produit une valeur, une :exc:" "`RuntimeError` est levée. Si le générateur lève une autre exception, elle " @@ -834,7 +834,7 @@ msgid "" "generator functions::" msgstr "" "Voici un exemple simple qui montre le comportement des générateurs et des " -"fonctions générateurs ::" +"fonctions génératrices ::" #: ../Doc/reference/expressions.rst:528 msgid "" @@ -842,11 +842,11 @@ msgid "" "Python.\"" msgstr "" "Pour des exemples d'utilisation de ``yield from``, lisez la :ref:`pep-380` " -"dans \"Les nouveautés de Python\"." +"dans « Les nouveautés de Python »." #: ../Doc/reference/expressions.rst:534 msgid "Asynchronous generator functions" -msgstr "Fonctions générateurs asynchrones" +msgstr "Fonctions génératrices asynchrones" #: ../Doc/reference/expressions.rst:536 msgid "" @@ -867,9 +867,9 @@ msgid "" "coroutine function analogously to how a generator object would be used in a :" "keyword:`for` statement." msgstr "" -"Quand une fonction générateur asynchrone est appelée, elle renvoie un " +"Quand une fonction génératrice asynchrone est appelée, elle renvoie un " "itérateur asynchrone, autrement appelé objet générateur asynchrone. Cet " -"objet contrôle l'exécution de la fonction générateur. Un objet générateur " +"objet contrôle l'exécution de la fonction génératrice. Un objet générateur " "asynchrone est typiquement utilisé dans une instruction :keyword:`async for` " "à l'intérieur d'une fonction coroutine de la même manière qu'un objet " "générateur serait utilisé dans une instruction :keyword:`for`." @@ -960,7 +960,7 @@ msgid "" "asynchronous generator function." msgstr "" "L'expression ``yield from `` produit une erreur de syntaxe quand elle " -"est utilisée dans une fonction générateur asynchrone." +"est utilisée dans une fonction génératrice asynchrone." #: ../Doc/reference/expressions.rst:590 msgid "Asynchronous generator-iterator methods" @@ -973,7 +973,7 @@ msgid "" msgstr "" "Cette sous-section décrit les méthodes des générateurs-itérateurs " "asynchrones. Elles sont utilisées pour contrôler l’exécution des fonctions " -"générateurs." +"génératrices." #: ../Doc/reference/expressions.rst:600 msgid "" @@ -1023,7 +1023,7 @@ msgid "" msgstr "" "Renvoie un *awaitable* qui, lorsqu'il a la main, reprend l'exécution du " "générateur asynchrone. Comme pour la méthode :meth:`~generator.send()` d'un " -"générateur, elle \"envoie\" une valeur *value* à la fonction générateur " +"générateur, elle « envoie » une valeur *value* à la fonction générateur " "asynchrone et cet argument devient le résultat de l'expression ``yield`` " "courante. Le *awaitable* renvoyé par la méthode :meth:`asend` renvoie la " "valeur suivante produite par le générateur comme valeur de l'exception :exc:" @@ -1068,8 +1068,8 @@ msgid "" "will return an awaitable that does nothing." msgstr "" "Renvoie un *awaitable* qui, quand il s'exécute, lève une exception :exc:" -"`GeneratorExit` dans la fonction générateur asynchrone à l'endroit où le " -"générateur était en pause. Si la fonction générateur asynchrone termine " +"`GeneratorExit` dans la fonction génératrice asynchrone à l'endroit où le " +"générateur était en pause. Si la fonction génératrice asynchrone termine " "normalement, est déjà fermée ou lève :exc:`GeneratorExit` (parce qu'elle ne " "gère pas l'exception), alors le *awaitable* renvoyé lève une exception :exc:" "`StopIteration`. Tout nouveau *awaitable* produit par un appel postérieur au " @@ -1115,7 +1115,7 @@ msgid "" msgstr "" "La primaire doit s'évaluer à un objet d'un type qui gère les références aux " "attributs, ce qui est le cas de la plupart des objets. Cet objet doit alors " -"produire l'attribut dont le nom est \"identifier\". Cette production peut " +"produire l'attribut dont le nom est « identifier ». Cette production peut " "être personnalisée en surchargeant la méthode :meth:`__getattr__`. Si " "l'attribut n'est pas disponible, une exception :exc:`AttributeError` est " "levée. Sinon, le type et la valeur de l'objet produit sont déterminés par " @@ -1359,7 +1359,7 @@ msgid "" "`PyArg_ParseTuple` to parse their arguments." msgstr "" "Une implémentation peut fournir des fonctions natives dont les paramètres " -"positionnels n'ont pas de nom, même s'ils sont \"nommés\" pour les besoins " +"positionnels n'ont pas de nom, même s'ils sont « nommés » pour les besoins " "de la documentation. Ils ne peuvent donc pas être spécifiés par mot-clé. En " "CPython, les fonctions implémentées en C qui utilisent :c:func:" "`PyArg_ParseTuple` pour analyser leurs arguments en font partie." @@ -1756,7 +1756,7 @@ msgid "" msgstr "" "En plus de calculer le modulo sur les nombres, l'opérateur ``%`` est aussi " "surchargé par les objets chaînes de caractères pour effectuer le formatage " -"de chaîne \"à l'ancienne\". La syntaxe pour le formatage de chaînes est " +"de chaîne « à l'ancienne ». La syntaxe pour le formatage de chaînes est " "décrit dans la référence de la bibliothèque Python, dans la section :ref:" "`old-string-formatting`." @@ -2003,8 +2003,8 @@ msgid "" msgstr "" "Le comportement du test d'égalité par défaut, à savoir que les instances " "avec des identités différentes ne sont jamais égales, peut être en " -"contradiction avec les types qui définissent la \"valeur\" d'un objet et se " -"basent sur cette \"valeur\" pour l'égalité. De tels types doivent " +"contradiction avec les types qui définissent la « valeur » d'un objet et se " +"basent sur cette « valeur » pour l'égalité. De tels types doivent " "personnaliser leurs tests de comparaison et, en fait, c'est ce qu'ont fait " "un certain nombre de types natifs." @@ -2264,7 +2264,10 @@ msgstr "``x < y and y <= z`` implique ``x < z``" msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" -msgstr "Si vous inversez la comparaison, le résultat a négation " +msgstr "" +"Si vous inversez la comparaison, cela doit en produire la négation " +"booléenne. En d'autres termes, les expressions suivantes doivent produire le " +"même résultat :" #: ../Doc/reference/expressions.rst:1410 msgid "``x == y`` and ``not x != y``" @@ -2482,7 +2485,7 @@ msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" -"Les expressions conditionnelles (parfois appelées \"opérateur ternaire\") " +"Les expressions conditionnelles (parfois appelées « opérateur ternaire ») " "sont les moins prioritaires de toutes les opérations Python." #: ../Doc/reference/expressions.rst:1553 @@ -2612,7 +2615,7 @@ msgstr "" "ont la même priorité. À moins que la syntaxe ne soit explicitement indiquée, " "les opérateurs sont binaires. Les opérateurs dans la même cases regroupent " "de la gauche vers la droite (sauf pour la puissance qui regroupe de la " -"droite vers la gauche). " +"droite vers la gauche)." #: ../Doc/reference/expressions.rst:1664 msgid "" @@ -2832,11 +2835,11 @@ msgid "" msgstr "" "Le standard Unicode distingue les :dfn:`points codes` (*code points* en " "anglais, par exemple *U+0041*) et les :dfn:`caractères abstraits` (*abstract " -"characters* en anglais, par exemple \"LATIN CAPITAL LETTER A\"). Bien que la " +"characters* en anglais, par exemple « LATIN CAPITAL LETTER A »). Bien que la " "plupart des caractères abstraits de l'Unicode ne sont représentés que par un " "seul point code, il y a un certain nombre de caractères abstraits qui " "peuvent être représentés par une séquence de plus qu'un point code. Par " -"exemple, le caractère abstrait \"LATIN CAPITAL LETTER C WITH CEDILLA\" peut " +"exemple, le caractère abstrait « LATIN CAPITAL LETTER C WITH CEDILLA » peut " "être représenté comme un unique :dfn:`caractère précomposé` au point code *U" "+00C7*, ou en tant que séquence d'un :dfn:`caractère de base` à la position " "*U+0043* (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " diff --git a/reference/import.po b/reference/import.po index debc83693..1c45e0859 100644 --- a/reference/import.po +++ b/reference/import.po @@ -191,7 +191,7 @@ msgstr "" "Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom " "du paquet parent par des points (`.`), à l'instar de la syntaxe standard " "d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :" -"mod:`sys` et un paquet nommé :mod:`email`, qui a son tour possède un sous-" +"mod:`sys` et un paquet nommé :mod:`email`, qui à son tour possède un sous-" "paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:" "`email.mime.text`." @@ -212,7 +212,7 @@ msgid "" "additional attributes to the module when it is imported." msgstr "" "Python définit deux types de paquets, les :term:`paquets classiques ` et les :term:`paquets espaces de noms `. Les " +"package>` et les :term:`paquets espaces de nommage `. Les " "paquets classiques sont les paquets traditionnels tels qu'ils existaient " "dans Python 3.2 et antérieurs. Un paquet classique est typiquement " "implémenté sous la forme d'un répertoire contenant un fichier ``__init__." @@ -241,7 +241,7 @@ msgstr "" #: ../Doc/reference/import.rst:128 msgid "Namespace packages" -msgstr "Paquets espaces de noms" +msgstr "Paquets espaces de nommage" #: ../Doc/reference/import.rst:134 msgid "" @@ -253,14 +253,14 @@ msgid "" "objects on the file system; they may be virtual modules that have no " "concrete representation." msgstr "" -"Un paquet-espace de noms est la combinaison de plusieurs :term:`portions " +"Un paquet-espace de nommage est la combinaison de plusieurs :term:`portions " "` où chaque portion fournit un sous-paquet au paquet parent. Les " "portions peuvent être situées à différents endroits du système de fichiers. " "Les portions peuvent aussi être stockées dans des fichiers zip, sur le " "réseau ou à tout autre endroit dans lequel Python cherche pendant " -"l'importation. Les paquets-espaces de noms peuvent correspondre directement " -"à des objets du système de fichiers, ou pas ; ils peuvent être des modules " -"virtuels qui n'ont aucune représentation concrète." +"l'importation. Les paquets-espaces de nommage peuvent correspondre " +"directement à des objets du système de fichiers, ou pas ; ils peuvent être " +"des modules virtuels qui n'ont aucune représentation concrète." #: ../Doc/reference/import.rst:142 msgid "" @@ -270,7 +270,7 @@ msgid "" "that package if the path of their parent package (or :data:`sys.path` for a " "top level package) changes." msgstr "" -"Les paquets-espaces de noms n'utilisent pas une liste ordinaire pour leur " +"Les paquets-espaces de nommage n'utilisent pas une liste ordinaire pour leur " "attribut ``__path__``. Ils utilisent en lieu et place un type itérable " "personnalisé qui effectue automatiquement une nouvelle recherche de portions " "de paquets à la tentative suivante d'importation dans le paquet si le chemin " @@ -286,18 +286,19 @@ msgid "" "create a namespace package for the top-level ``parent`` package whenever it " "or one of its subpackages is imported." msgstr "" -"Pour les paquets-espaces de noms, il n'existe pas de fichier ``parent/" +"Pour les paquets-espaces de nommage, il n'existe pas de fichier ``parent/" "__init__.py``. En fait, il peut y avoir plusieurs répertoires ``parent`` " "trouvés pendant le processus d'importation, où chacun est apporté par une " "portion différente. Ainsi, ``parent/one`` n'est pas forcément physiquement à " -"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de noms " +"côté de ``parent/two``. Dans ce cas, Python crée un paquet-espace de nommage " "pour le paquet de plus haut niveau ``parent`` dès que lui ou l'un de ses " "sous-paquet est importé." #: ../Doc/reference/import.rst:155 msgid "See also :pep:`420` for the namespace package specification." msgstr "" -"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de noms." +"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de " +"nommage." #: ../Doc/reference/import.rst:159 msgid "Searching" @@ -491,7 +492,7 @@ msgstr "" "Le mécanisme d'importation est conçu pour être extensible ; vous pouvez y " "insérer des *points d'entrée automatique* (*hooks* en anglais). Il existe " "deux types de points d'entrée automatique pour l'importation : les *méta-" -"points d'entrée* et les *points d'entrée sur le chemin des imports*." +"points d'entrée* et les *points d'entrée sur le chemin des importations*." #: ../Doc/reference/import.rst:260 msgid "" @@ -516,11 +517,11 @@ msgid "" "encountered. Import path hooks are registered by adding new callables to :" "data:`sys.path_hooks` as described below." msgstr "" -"Les points d'entrée sur le chemin des imports sont appelés pendant le " +"Les points d'entrée sur le chemin des importations sont appelés pendant le " "traitement de :data:`sys.path` (ou ``package.__path__``), au moment où le " "chemin qui leur correspond est atteint. Les points d'entrée sur le chemin " -"des imports sont enregistrés en ajoutant de nouveaux appelables à :data:`sys." -"path_hooks`, comme décrit ci-dessous." +"des importations sont enregistrés en ajoutant de nouveaux appelables à :data:" +"`sys.path_hooks`, comme décrit ci-dessous." #: ../Doc/reference/import.rst:273 msgid "The meta path" @@ -629,7 +630,7 @@ msgid "" msgstr "" "Le :data:`sys.meta_path` de Python comprend trois chercheurs par défaut : un " "qui sait importer les modules natifs, un qui sait importer les modules gelés " -"et un qui sait importer les modules depuis un :term:`chemin des imports " +"et un qui sait importer les modules depuis un :term:`chemin des importations " "` (c'est le :term:`chercheur dans path `)." #: ../Doc/reference/import.rst:324 @@ -694,7 +695,7 @@ msgid "" "effect, must remain in the cache. This contrasts with reloading where even " "the failing module is left in :data:`sys.modules`." msgstr "" -"Si le chargement échoue, le module en cause -- et seulement ce module -- est " +"Si le chargement échoue, le module en cause (et seulement ce module) est " "enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys." "modules` et tout module qui a été chargé avec succès par effet de bord doit " "rester dans le cache. C'est différent dans le cas d'un rechargement où même " @@ -720,7 +721,7 @@ msgid "" "which gets to decide what gets populated and how." msgstr "" "L'exécution du module est le moment clé du chargement dans lequel l'espace " -"de noms du module est peuplé. L'exécution est entièrement déléguée au " +"de nommage du module est peuplé. L'exécution est entièrement déléguée au " "chargeur qui doit décider ce qui est peuplé et comment." #: ../Doc/reference/import.rst:396 @@ -845,7 +846,7 @@ msgstr "" "La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités " "de chargement décrites ci-dessus en plus de l'exécution du module. Toutes " "les contraintes s'appliquent aussi, avec quelques précisions " -"supplémentaires :" +"supplémentaires :" #: ../Doc/reference/import.rst:450 msgid "" @@ -885,7 +886,7 @@ msgid "" "A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." msgstr "" -"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " +"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " "est définie mais ``create_module()`` ne l'est pas." #: ../Doc/reference/import.rst:469 @@ -911,7 +912,7 @@ msgid "" msgstr "" "Quand un sous-module est chargé, quel que soit le mécanisme (par exemple " "avec les instructions ``import``, ``import-from`` ou avec la fonction native " -"``__import__()``), une liaison est créée dans l'espace de noms du module " +"``__import__()``), une liaison est créée dans l'espace de nommage du module " "parent vers l'objet sous-module. Par exemple, si le paquet ``spam`` possède " "un sous-module ``foo``, après l'importation de ``spam.foo``, ``spam`` " "possède un attribut ``foo`` qui est lié au sous-module. Supposons que nous " @@ -1097,9 +1098,9 @@ msgid "" "details on the semantics of ``__path__`` are given :ref:`below `." msgstr "" -"Si le module est un paquet (classique ou espace de noms), l'attribut " +"Si le module est un paquet (classique ou espace de nommage), l'attribut " "``__path__`` de l'objet module doit être défini. La valeur doit être un " -"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " "contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " "lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " "``__path__`` :ref:`plus loin ci-dessous `." @@ -1181,7 +1182,7 @@ msgid "" "data:`sys.path_hooks` (described below) are consulted when traversing a " "package's ``__path__``." msgstr "" -"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " "être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " "``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " "donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." @@ -1197,11 +1198,11 @@ msgid "" msgstr "" "Le fichier ``__init__.py`` d'un paquet peut définir ou modifier l'attribut " "``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" -"espaces de noms avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, les " -"paquets-espaces de noms n'ont plus besoin d'avoir des fichiers ``__init__." -"py`` qui ne font que de la manipulation de ``__path__`` ; le mécanisme " -"d'importation définit automatiquement ``__path__`` correctement pour un " -"paquet-espace de noms." +"espaces de nommage avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, " +"les paquets-espaces de nommage n'ont plus besoin d'avoir des fichiers " +"``__init__.py`` qui ne font que de la manipulation de ``__path__`` ; le " +"mécanisme d'importation définit automatiquement ``__path__`` correctement " +"pour un paquet-espace de nommage." #: ../Doc/reference/import.rst:641 msgid "Module reprs" @@ -1237,7 +1238,7 @@ msgstr "" #: ../Doc/reference/import.rst:654 msgid "Here are the exact rules used:" -msgstr "Les règles exactes utilisées sont :" +msgstr "Les règles exactes utilisées sont :" #: ../Doc/reference/import.rst:656 msgid "" @@ -1309,8 +1310,8 @@ msgstr "" "Comme indiqué précédemment, Python est livré par défaut avec plusieurs " "chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " "path ` (:class:`~importlib.machinery.PathFinder`), " -"recherche dans le :term:`chemin des imports ` qui contient une " -"liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"recherche dans le :term:`chemin des importations ` qui contient " +"une liste :term:`d'entrées dans path `. Chaque entrée désigne un " "emplacement où rechercher des modules." #: ../Doc/reference/import.rst:691 @@ -1366,9 +1367,9 @@ msgstr "" "Le chercheur dans *path* fournit aussi des points d'entrées (ou *hooks*) et " "des protocoles de manière à pouvoir étendre et personnaliser les types de " "chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " -"dans des URL réseau, vous pouvez écrire une fonction \"point d'entrée\" qui " +"dans des URL réseau, vous pouvez écrire une fonction « point d'entrée » qui " "implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " -"point d'entrée (qui doit être un *callable*) doit renvoyer un :term:" +"point d'entrée (qui doit être un appelable) doit renvoyer un :term:" "`chercheur d'entrée dans path ` qui gère le protocole " "décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " "la toile." @@ -1435,7 +1436,7 @@ msgstr "" "MetaPathFinder.find_spec` décrit précédemment. Cependant, il autorise des " "points d'entrée (*hooks* en anglais) supplémentaires qui peuvent être " "utilisés pour personnaliser la façon dont les modules sont trouvés et " -"chargés depuis le :term:`chemin des imports `." +"chargés depuis le :term:`chemin des importations `." #: ../Doc/reference/import.rst:747 msgid "" @@ -1463,10 +1464,10 @@ msgid "" "determined by the individual :term:`path entry finders `." msgstr "" ":data:`sys.path` contient une liste de chaînes de caractères indiquant des " -"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " "partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " "autres valeurs par défaut qui dépendent de l'installation et de " -"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " "du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" "\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " "bases de données où Python doit rechercher des modules. :data:`sys.path` ne " @@ -1487,9 +1488,9 @@ msgid "" msgstr "" "Le :term:`chercheur dans path ` est un :term:`chercheur " "dans les méta-chemins `, donc le mécanisme d'importation " -"commence la recherche dans le :term:`chemin des imports ` par " -"un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` du " -"chercheur dans *path*, comme décrit précédemment. Quand l'argument *path* " +"commence la recherche dans le :term:`chemin des importations ` " +"par un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` " +"du chercheur dans *path*, comme décrit précédemment. Quand l'argument *path* " "de :meth:`~importlib.machinery.PathFinder.find_spec` est donné, c'est une " "liste de chemins à parcourir, typiquement un attribut ``__path__`` pour une " "importation à l'intérieur d'un paquet. Si l'argument *path* est ``None``, " @@ -1550,10 +1551,10 @@ msgstr "" "`ImportError` est utilisée par le chercheur dans *path* pour signaler que le " "point d'entrée n'a pas trouvé de :term:`chercheur d'entrée dans path ` pour cette :term:`entrée `. L'exception est " -"ignorée et l'itération sur le :term:`chemin des imports ` se " -"poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne de " -"caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est à " -"la main du point d'entrée (par exemple, ce peut être l'encodage du système " +"ignorée et l'itération sur le :term:`chemin des importations ` " +"se poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne " +"de caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est " +"à la main du point d'entrée (par exemple, ce peut être l'encodage du système " "de fichiers, de l'UTF-8 ou autre chose) et, si le point d'entrée n'arrive " "pas à décoder l'argument, il doit lever une :exc:`ImportError`." @@ -1598,8 +1599,8 @@ msgid "" "machinery.PathFinder.find_spec` will be the actual current working directory " "and not the empty string." msgstr "" -"Le répertoire de travail courant -- noté sous la forme d'une chaîne de " -"caractères vide -- est géré d'une manière légèrement différente des autres " +"Le répertoire de travail courant — noté sous la forme d'une chaîne de " +"caractères vide — est géré d'une manière légèrement différente des autres " "entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " "s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." "path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " @@ -1619,8 +1620,8 @@ msgid "" "the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." msgstr "" "Afin de gérer les importations de modules, l'initialisation des paquets et " -"d'être capables de contribuer aux portions des paquets-espaces de noms, les " -"chercheurs d'entrée dans *path* doivent implémenter la méthode :meth:" +"d'être capables de contribuer aux portions des paquets-espaces de nommage, " +"les chercheurs d'entrée dans *path* doivent implémenter la méthode :meth:" "`~importlib.abc.PathEntryFinder.find_spec`." #: ../Doc/reference/import.rst:827 @@ -1643,7 +1644,7 @@ msgid "" "``None`` and \"submodule_search_locations\" to a list containing the portion." msgstr "" "Pour indiquer au mécanisme d'importation que le spécificateur représente " -"une :term:`portion ` d'un espace de noms, le chercheur d'entrée " +"une :term:`portion ` d'un espace de nommage, le chercheur d'entrée " "dans *path* définit le chargeur du spécificateur à ``None`` et l'attribut " "*submodule_search_locations* à une liste contenant la portion." @@ -1667,10 +1668,10 @@ msgid "" "path entry finder, the legacy methods are ignored." msgstr "" "Les vieux chercheurs d'entrée dans *path* peuvent implémenter une des deux " -"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont " -"toujours prises en compte dans le cadre de la compatibilité descendante. " -"Cependant, si ``find_spec()`` est implémentée par le chercheur d'entrée dans " -"*path*, les méthodes historiques sont ignorées." +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont toujours " +"prises en compte dans le cadre de la compatibilité descendante. Cependant, " +"si ``find_spec()`` est implémentée par le chercheur d'entrée dans *path*, " +"les méthodes historiques sont ignorées." #: ../Doc/reference/import.rst:848 msgid "" @@ -1689,15 +1690,15 @@ msgstr "" "La méthode :meth:`~importlib.abc.PathEntryFinder.find_loader` prend un " "argument, le nom complètement qualifié du module en cours d'importation. " "``find_loader()`` renvoie un couple dont le premier élément est le chargeur " -"et le second est une :term:`portion ` d'espace de noms. Quand le " +"et le second est une :term:`portion ` d'espace de nommage. Quand le " "premier élément (c'est-à-dire le chargeur) est ``None``, cela signifie que, " "bien que le chercheur d'entrée dans *path* n'a pas de chargeur pour le " "module considéré, il sait que cette entrée contribue à une portion d'espace " -"de noms pour le module considéré. C'est presque toujours le cas quand vous " -"demandez à Python d'importer un paquet-espace de noms qui n'est pas présent " -"physiquement sur le système de fichiers. Quand un chercheur d'entrée dans " -"*path* renvoie ``None`` pour le chargeur, la valeur du second élément du " -"couple renvoyé doit être une séquence, éventuellement vide." +"de nommage pour le module considéré. C'est presque toujours le cas quand " +"vous demandez à Python d'importer un paquet-espace de nommage qui n'est pas " +"présent physiquement sur le système de fichiers. Quand un chercheur d'entrée " +"dans *path* renvoie ``None`` pour le chargeur, la valeur du second élément " +"du couple renvoyé doit être une séquence, éventuellement vide." #: ../Doc/reference/import.rst:860 msgid "" @@ -1736,8 +1737,8 @@ msgid "" msgstr "" "La méthode ``find_module()`` des chercheurs d'entrée dans *path* est " "obsolète car elle n'autorise pas le chercheur d'entrée dans *path* à " -"contribuer aux portions d'espaces de noms des paquets-espaces de noms. Si à " -"la fois ``find_loader()`` et ``find_module()`` sont définies pour un " +"contribuer aux portions d'espaces de nommage des paquets-espaces de nommage. " +"Si à la fois ``find_loader()`` et ``find_module()`` sont définies pour un " "chercheur d'entrée dans *path*, le système d'importation utilise toujours " "``find_loader()`` plutôt que ``find_module()``." @@ -1788,7 +1789,7 @@ msgstr "" #: ../Doc/reference/import.rst:900 msgid "Special considerations for __main__" -msgstr "Cas particulier de __main__" +msgstr "Cas particulier de ``__main__``" #: ../Doc/reference/import.rst:902 msgid "" @@ -1810,7 +1811,7 @@ msgstr "" #: ../Doc/reference/import.rst:913 msgid "__main__.__spec__" -msgstr "__main__.__spec__" +msgstr "``__main__.__spec__``" #: ../Doc/reference/import.rst:915 msgid "" @@ -1883,7 +1884,7 @@ msgstr "" "que ``__main__.__spec__`` est défini en conséquence, ils seront toujours " "considérés comme des modules *distincts*. Cela est dû au fait que le bloc " "encadré par ``if __name__ == \"__main__\":`` ne s'exécute que quand le " -"module est utilisé pour peupler l'espace de noms de ``__main__``, et pas " +"module est utilisé pour peupler l'espace de nommage de ``__main__``, et pas " "durant une importation normale." #: ../Doc/reference/import.rst:945 @@ -1959,9 +1960,9 @@ msgid "" "Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as " "an alternative to :meth:`find_module`." msgstr "" -"La :pep:`420` a introduit les :term:`paquets-espaces de noms ` pour Python 3.3. :pep:`420` a aussi introduit le protocole :meth:" -"`recherche du chargeur ` comme une alternative à :meth:" +"La :pep:`420` a introduit les :term:`paquets-espaces de nommage ` pour Python 3.3. La :pep:`420` a aussi introduit le protocole :" +"meth:`recherche du chargeur ` comme une alternative à :meth:" "`find_module`." #: ../Doc/reference/import.rst:978 diff --git a/reference/index.po b/reference/index.po index 9e76f5131..cd9f70f90 100644 --- a/reference/index.po +++ b/reference/index.po @@ -32,8 +32,8 @@ msgid "" "picture of how to write a Python extension module, and the :ref:`c-api-" "index` describes the interfaces available to C/C++ programmers in detail." msgstr "" -"Cette documentation décrit la syntaxe et la \"sémantique interne\" du " -"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " +"Cette documentation décrit la syntaxe et la « sémantique interne » du " +"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " "La sémantique des objets natifs secondaires, des fonctions, et des modules " "est documentée dans :ref:`library-index`. Pour une présentation informelle " "du langage, voyez plutôt :ref:`tutorial-index`. Pour les développeurs C ou C+" diff --git a/reference/introduction.po b/reference/introduction.po index 85795ee26..88dc0d4b5 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -44,7 +44,7 @@ msgid "" "volunteer your time --- or invent a cloning machine :-)." msgstr "" "Nous essayons d'être le plus précis possible et nous utilisons le français " -"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " +"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " "plutôt que des spécifications formelles, sauf pour la syntaxe et l’analyse " "lexicale. Nous espérons ainsi rendre ce document plus compréhensible pour un " "grand nombre de lecteurs, même si cela laisse un peu de place à l’ambiguïté. " @@ -53,7 +53,7 @@ msgstr "" "hypothèses et, finalement, vous aurez certainement implémenté un langage " "sensiblement différent. D’un autre côté, si vous utilisez Python et que vous " "vous demandez quelles règles s’appliquent pour telle partie du langage, vous " -"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " +"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " "définition plus formelle du langage, nous acceptons toutes les bonnes " "volontés (ou bien inventez une machine pour nous cloner ☺)." @@ -232,7 +232,7 @@ msgid "" msgstr "" "La première ligne indique qu'un ``name`` est un ``lc_letter`` suivi d'une " "suite de zéro ou plus ``lc_letter``\\s ou tiret bas. Un ``lc_letter`` est, à " -"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " +"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " "effectivement respectée pour les noms définis dans les règles lexicales et " "grammaticales de ce document)." @@ -275,11 +275,11 @@ msgid "" "'control character' if needed." msgstr "" "Dans les définitions lexicales (comme dans l'exemple ci-dessus), deux autres " -"conventions sont utilisées : deux caractères littéraux séparés par des " +"conventions sont utilisées : deux caractères littéraux séparés par des " "points de suspension signifient le choix d'un seul caractère dans la plage " "donnée (en incluant les bornes) de caractères ASCII. Une phrase entre les " "signes inférieur et supérieur (``<...>``) donne une description informelle " -"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " +"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " "contrôle\" si nécessaire." #: ../Doc/reference/introduction.rst:126 @@ -293,9 +293,9 @@ msgid "" "definitions." msgstr "" "Même si la notation utilisée est presque la même, il existe une grande " -"différence entre la signification des définitions lexicales et syntaxiques : " +"différence entre la signification des définitions lexicales et syntaxiques : " "une définition lexicale opère sur les caractères individuels de l'entrée, " "tandis qu'une définition syntaxique opère sur le flux de lexèmes générés par " "l'analyse lexicale. Toutes les notations sous la forme BNF dans le chapitre " -"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " +"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " "notations dans les chapitres suivants sont des définitions syntaxiques." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 963387c67..0d4263707 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -37,7 +37,7 @@ msgid "" "`3120` for details. If the source file cannot be decoded, a :exc:" "`SyntaxError` is raised." msgstr "" -"Python lit le texte du programme comme des suites de caractères Unicode ; " +"Python lit le texte du programme comme des suites de caractères Unicode ; " "l'encodage du fichier source peut être spécifié par une déclaration " "d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " "Si le fichier source ne peut pas être décodé, une exception :exc:" @@ -87,7 +87,7 @@ msgstr "" "Une ligne physique est une suite de caractères terminée par une séquence de " "fin de ligne. Dans les fichiers sources et les chaînes de caractères, " "n'importe quelle séquence de fin de ligne des plateformes standards peut " -"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " +"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " "ligne en français), Windows utilise la séquence CR LF (*carriage return* " "suivi de *linefeed*) et Macintosh utilisait le caractère ASCII CR. Toutes " "ces séquences peuvent être utilisées, quelle que soit la plateforme. La fin " @@ -137,15 +137,15 @@ msgid "" msgstr "" "Si un commentaire placé sur la première ou deuxième ligne du script Python " "correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " -"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " "de cette expression désigne l'encodage du fichier source. Cette déclaration " "d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " "ligne, la première ligne doit aussi être une ligne composée uniquement d'un " -"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" #: ../Doc/reference/lexical_analysis.rst:91 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "qui est reconnue aussi par GNU Emacs et ::" +msgstr "qui est reconnue aussi par GNU Emacs et ::" #: ../Doc/reference/lexical_analysis.rst:95 msgid "which is recognized by Bram Moolenaar's VIM." @@ -353,7 +353,7 @@ msgid "" "generated. At the end of the file, a DEDENT token is generated for each " "number remaining on the stack that is larger than zero." msgstr "" -"Avant que la première ligne du fichier ne soit lue, un \"zéro\" est posé sur " +"Avant que la première ligne du fichier ne soit lue, un « zéro » est posé sur " "la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " "strictement croissants de bas en haut. Au début de chaque ligne logique, le " "niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " @@ -399,7 +399,7 @@ msgid "" "is one token, but a b is two tokens)." msgstr "" "Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " -"caractères \"blancs\" espace, tabulation et saut de page peuvent être " +"caractères « blancs » espace, tabulation et saut de page peuvent être " "utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " "nécessaire entre deux lexèmes que si leur concaténation pourrait être " "interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " @@ -444,7 +444,7 @@ msgid "" "for further details." msgstr "" "La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " -"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" "pep:`3131` pour plus de détails." #: ../Doc/reference/lexical_analysis.rst:286 @@ -468,8 +468,8 @@ msgid "" msgstr "" "Python 3.0 introduit des caractères supplémentaires en dehors de " "l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " -"classification utilise la version de la \"base de données des caractères " -"Unicode\" telle qu'incluse dans le module :mod:`unicodedata`." +"classification utilise la version de la « base de données des caractères " +"Unicode » telle qu'incluse dans le module :mod:`unicodedata`." #: ../Doc/reference/lexical_analysis.rst:295 msgid "Identifiers are unlimited in length. Case is significant." @@ -483,48 +483,48 @@ msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" #: ../Doc/reference/lexical_analysis.rst:306 msgid "*Lu* - uppercase letters" -msgstr "*Lu* -- lettre majuscules" +msgstr "*Lu* — lettres majuscules" #: ../Doc/reference/lexical_analysis.rst:307 msgid "*Ll* - lowercase letters" -msgstr "*Ll* -- lettres minuscules" +msgstr "*Ll* — lettres minuscules" #: ../Doc/reference/lexical_analysis.rst:308 msgid "*Lt* - titlecase letters" msgstr "" -"*Lt* -- lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" +"*Lt* — lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" #: ../Doc/reference/lexical_analysis.rst:309 msgid "*Lm* - modifier letters" -msgstr "*Lm* -- lettres modificatives avec chasse" +msgstr "*Lm* — lettres modificatives avec chasse" #: ../Doc/reference/lexical_analysis.rst:310 msgid "*Lo* - other letters" -msgstr "*Lo* -- autres lettres" +msgstr "*Lo* — autres lettres" #: ../Doc/reference/lexical_analysis.rst:311 msgid "*Nl* - letter numbers" -msgstr "*Nl* -- nombres lettres (par exemple, les nombres romains)" +msgstr "*Nl* — nombres lettres (par exemple, les nombres romains)" #: ../Doc/reference/lexical_analysis.rst:312 msgid "*Mn* - nonspacing marks" msgstr "" -"*Mn* -- symboles que l'on combine avec d'autres (accents ou autres) sans " +"*Mn* — symboles que l'on combine avec d'autres (accents ou autres) sans " "générer d'espace (*nonspacing marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:313 msgid "*Mc* - spacing combining marks" msgstr "" -"*Mc* -- symboles que l'on combine avec d'autres en générant une espace " +"*Mc* — symboles que l'on combine avec d'autres en générant une espace " "(*spacing combining marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:314 msgid "*Nd* - decimal numbers" -msgstr "*Nd* -- chiffres (arabes et autres)" +msgstr "*Nd* — chiffres (arabes et autres)" #: ../Doc/reference/lexical_analysis.rst:315 msgid "*Pc* - connector punctuations" -msgstr "*Pc* -- connecteurs (tirets et autres lignes)" +msgstr "*Pc* — connecteurs (tirets et autres lignes)" #: ../Doc/reference/lexical_analysis.rst:316 msgid "" @@ -538,7 +538,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:319 msgid "*Other_ID_Continue* - likewise" -msgstr "*Other_ID_Continue* -- pareillement" +msgstr "*Other_ID_Continue* — pareillement" #: ../Doc/reference/lexical_analysis.rst:321 msgid "" @@ -584,7 +584,7 @@ msgid "" "underscore characters:" msgstr "" "Certaines classes d'identifiants (outre les mots-clés) ont une signification " -"particulière. Ces classes se reconnaissent par des caractères de " +"particulière. Ces classes se reconnaissent par des caractères de " "soulignement en tête et en queue d'identifiant :" #: ../Doc/reference/lexical_analysis.rst:371 @@ -599,9 +599,9 @@ msgid "" "interactive mode, ``_`` has no special meaning and is not defined. See " "section :ref:`import`." msgstr "" -"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " "Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " -"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " "vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " "particulière et n'est pas défini. Voir la section :ref:`import`." @@ -648,11 +648,11 @@ msgid "" "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" -"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " "utilisés dans le contexte d'une définition de classe, sont réécrits sous une " -"forme modifiée pour éviter les conflits de noms entre les attributs \"privés" -"\" des classes de base et les classes dérivées. Voir la section :ref:`atom-" -"identifiers`." +"forme modifiée pour éviter les conflits de noms entre les attributs " +"« privés » des classes de base et les classes dérivées. Voir la section :ref:" +"`atom-identifiers`." #: ../Doc/reference/lexical_analysis.rst:391 msgid "Literals" @@ -683,10 +683,10 @@ msgid "" "is given in the source file; see section :ref:`encodings`." msgstr "" "Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " -"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " "reste du littéral. Le jeu de caractères source est défini par la déclaration " "d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " -"dans le fichier source ; voir la section :ref:`encodings`." +"dans le fichier source ; voir la section :ref:`encodings`." #: ../Doc/reference/lexical_analysis.rst:438 msgid "" @@ -698,9 +698,9 @@ msgid "" "newline, backslash itself, or the quote character." msgstr "" "Description en français : les deux types de littéraux peuvent être encadrés " -"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils " -"peuvent aussi être encadrés par une paire de trois guillemets simples ou une " -"paire de trois guillemets doubles (on appelle alors généralement ces chaînes " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils peuvent " +"aussi être encadrés par une paire de trois guillemets simples ou une paire " +"de trois guillemets doubles (on appelle alors généralement ces chaînes " "*entre triples guillemets*). La barre oblique inversée peut être utilisée " "pour échapper des caractères qui auraient sinon une signification spéciale, " "tels que le retour à la ligne, la barre oblique inversée elle-même ou le " @@ -777,7 +777,7 @@ msgstr "" "Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " "peuvent ne pas être échappés (et sont donc pris en compte), mais trois " "guillemets non échappés à la suite terminent le littéral (on entend par " -"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " "``'`` ou ``\"``)." #: ../Doc/reference/lexical_analysis.rst:477 @@ -789,7 +789,7 @@ msgstr "" "À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " "d'échappement dans les littéraux de chaînes et suites d'octets sont " "interprétées comme elles le seraient par le C Standard. Les séquences " -"d'échappement reconnues sont :" +"d'échappement reconnues sont :" #: ../Doc/reference/lexical_analysis.rst:482 #: ../Doc/reference/lexical_analysis.rst:515 @@ -828,7 +828,7 @@ msgstr "``\\'``" #: ../Doc/reference/lexical_analysis.rst:488 msgid "Single quote (``'``)" -msgstr "guillemet simple (``'``)" +msgstr "guillemet simple (``'``)" #: ../Doc/reference/lexical_analysis.rst:490 msgid "``\\\"``" @@ -1139,8 +1139,8 @@ msgstr "" "remplacées par la simple accolade correspondante. Une simple accolade " "ouvrante ``'{'`` marque le début du champ à remplacer, qui commence par une " "expression Python. Après l'expression, il peut y avoir un champ de " -"conversion, introduit par un point d'exclamation ``'!'``. La spécification " -"de format peut aussi être ajouté, introduite par le caractère deux-points " +"conversion, introduit par un point d'exclamation ``'!'``. Une spécification " +"de format peut aussi être ajoutée, introduite par le caractère deux-points " "``':'``. Le champ à remplacer se termine par une accolade fermante ``'}'``." #: ../Doc/reference/lexical_analysis.rst:640 @@ -1230,8 +1230,8 @@ msgstr "" msgid "" "Backslashes are not allowed in format expressions and will raise an error::" msgstr "" -"La barre oblique inversée n'est pas autorisée dans les expressions des " -"champs à remplacer et son utilisation génère une erreur ::" +"La barre oblique inversée (ou antislash) n'est pas autorisée dans les " +"expressions des champs à remplacer et son utilisation génère une erreur ::" #: ../Doc/reference/lexical_analysis.rst:698 msgid "" @@ -1306,7 +1306,7 @@ msgid "" "They can be used to group digits for enhanced readability. One underscore " "can occur between digits, and after base specifiers like ``0x``." msgstr "" -"Les soulignés sont ignorés pour déterminer la valeur numérique du littéral. " +"Les tirets bas sont ignorés pour déterminer la valeur numérique du littéral. " "Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " "lecture. Un souligné peut être placé entre des chiffres ou après la " "spécification de la base telle que ``0x``." @@ -1329,7 +1329,7 @@ msgstr "Quelques exemples d'entiers littéraux ::" #: ../Doc/reference/lexical_analysis.rst:774 #: ../Doc/reference/lexical_analysis.rst:802 msgid "Underscores are now allowed for grouping purposes in literals." -msgstr "Les soulignés ne sont pas autorisés pour grouper les littéraux." +msgstr "Les tirets bas ne sont pas autorisés pour grouper les littéraux." #: ../Doc/reference/lexical_analysis.rst:781 msgid "Floating point literals" @@ -1420,7 +1420,7 @@ msgid "" "other tokens or are otherwise significant to the lexical analyzer:" msgstr "" "Les caractères ASCII suivants ont une signification spéciale en tant que " -"partie d'autres lexèmes ou ont une signification particulière pour " +"partie d'autres lexèmes ou ont une signification particulière pour " "l'analyseur lexical :" #: ../Doc/reference/lexical_analysis.rst:870 diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 2cdb75a5c..ce2ae3bb3 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -45,7 +45,7 @@ msgid "" msgstr "" "Les expressions sont utilisées (généralement de manière interactive) comme " "instructions pour calculer et écrire des valeurs, appeler une procédure (une " -"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " "procédures renvoient la valeur ``None``). D'autres utilisations des " "expressions sont autorisées et parfois utiles. La syntaxe pour une " "expression en tant qu'instruction est :" @@ -200,16 +200,17 @@ msgid "" "current local namespace." msgstr "" "si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" -"`nonlocal` (respectivement) du bloc de code courant : le nom est lié à " -"l'objet dans l'espace courant des noms locaux." +"`nonlocal` (respectivement) du bloc de code courant, le nom est lié à " +"l'objet dans l'espace courant des noms locaux ;" #: ../Doc/reference/simple_stmts.rst:149 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" -"Sinon : le nom est lié à l'objet dans l'espace des noms globaux ou dans un " -"espace de noms plus large déterminé par :keyword:`nonlocal`, respectivement." +"sinon le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"espace de nommage plus large déterminé par :keyword:`nonlocal`, " +"respectivement." #: ../Doc/reference/simple_stmts.rst:154 msgid "" @@ -320,7 +321,7 @@ msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" -"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " "les arguments appropriés." #: ../Doc/reference/simple_stmts.rst:221 @@ -347,8 +348,8 @@ msgstr "" "résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " "séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " "la tranche avec les éléments de la séquence à assigner. La longueur de la " -"tranche peut être différent de la longueur de la séquence à assigner, ce qui " -"modifie alors la longueur de la séquence cible, si celle-ci le permet." +"tranche peut être différente de la longueur de la séquence à assigner, ce " +"qui modifie alors la longueur de la séquence cible, si celle-ci le permet." #: ../Doc/reference/simple_stmts.rst:235 msgid "" @@ -369,7 +370,7 @@ msgid "" "instance, the following program prints ``[0, 2]``::" msgstr "" "Bien que la définition de l'assignation implique que le passage entre le " -"côté gauche et le côté droit soient \"simultanés\" (par exemple, ``a, b = b, " +"côté gauche et le côté droit soient « simultanés » (par exemple, ``a, b = b, " "a`` permute les deux variables), le passage *à l'intérieur* des collections " "de variables que l'on assigne intervient de la gauche vers la droite, ce qui " "peut entraîner quelques confusions. Par exemple, le programme suivant " @@ -559,13 +560,13 @@ msgstr "" #: ../Doc/reference/simple_stmts.rst:375 msgid "The simple form, ``assert expression``, is equivalent to ::" -msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:380 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" -"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:389 msgid "" @@ -593,7 +594,7 @@ msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" -"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " "native est déterminée au moment où l'interpréteur démarre." #: ../Doc/reference/simple_stmts.rst:405 @@ -642,7 +643,7 @@ msgstr "" "La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " "locaux, ou l'espace des noms globaux si ce nom apparaît dans une " "instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " -"lié, une exception :exc:`NameError` est levée." +"lié, une exception :exc:`NameError` est levée." #: ../Doc/reference/simple_stmts.rst:453 msgid "" @@ -743,11 +744,11 @@ msgstr "" "`expression yield `. L'instruction *yield* peut être utilisée " "pour omettre les parenthèses qui seraient autrement requises dans " "l'instruction équivalente d'expression *yield*. Par exemple, les " -"instructions *yield* ::" +"instructions *yield* ::" #: ../Doc/reference/simple_stmts.rst:523 msgid "are equivalent to the yield expression statements ::" -msgstr "sont équivalentes aux instructions expressions *yield* ::" +msgstr "sont équivalentes aux instructions expressions *yield* ::" #: ../Doc/reference/simple_stmts.rst:528 msgid "" @@ -793,7 +794,7 @@ msgid "" "`BaseException`. If it is a class, the exception instance will be obtained " "when needed by instantiating the class with no arguments." msgstr "" -"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " "exception. Ce doit être une sous-classe ou une instance de :class:" "`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " "en instanciant la classe sans argument (au moment voulu)." @@ -815,7 +816,7 @@ msgid "" "exception instance, with its traceback set to its argument), like so::" msgstr "" "Normalement, un objet *trace d'appels* est créé automatiquement quand une " -"exception est levée et il lui est rattaché comme attribut :attr:" +"exception est levée et il lui est rattaché comme attribut :attr:" "`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " "définir votre propre trace d'appels d'un seul coup en utilisant la méthode " "des exceptions :meth:`with_traceback` (qui renvoie la même instance " @@ -830,7 +831,7 @@ msgid "" "be printed::" msgstr "" "La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " -"fournissez, la seconde \"expression\" doit être une autre classe ou instance " +"fournissez, la seconde « expression » doit être une autre classe ou instance " "d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" "`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " "deux exceptions sont affichées ::" @@ -991,7 +992,7 @@ msgid "" "module, which includes execution of the module's code." msgstr "" "Les détails de la première étape, de recherche et de chargement des modules " -"sont décrits largement dans la section relative au :ref:`système " +"sont décrits largement dans la section relative au :ref:`système " "d'importation `, qui décrit également les différents types de " "paquets et modules qui peuvent être importés, de même que les points " "d'entrée pouvant être utilisés pour personnaliser le système d'importation. " @@ -1005,7 +1006,7 @@ msgid "" "in the local namespace in one of three ways:" msgstr "" "Si le module requis est bien récupéré, il est mis à disposition de l'espace " -"de noms locaux suivant l'une des trois façons suivantes :" +"de nommage local suivant l'une des trois façons suivantes :" #: ../Doc/reference/simple_stmts.rst:746 msgid "" @@ -1082,7 +1083,7 @@ msgstr "" #: ../Doc/reference/simple_stmts.rst:776 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/reference/simple_stmts.rst:784 msgid "" @@ -1107,16 +1108,16 @@ msgid "" "API (such as library modules which were imported and used within the module)." msgstr "" "Les *noms publics* définis par un module sont déterminés en cherchant dans " -"l'espace de noms du module une variable nommée ``__all__`` ; Si elle est " +"l'espace de nommage du module une variable nommée ``__all__`` ; Si elle est " "définie, elle doit être une séquence de chaînes désignant les noms définis " "ou importés par ce module. Les noms donnés dans ``__all__`` sont tous " "considérés publics et doivent exister. Si ``__all__`` n'est pas définie, " "l'ensemble des noms publics contient tous les noms trouvés dans l'espace des " "noms du module qui ne commencent pas par un caractère souligné (``_``). " "``__all__`` doit contenir toute l'API publique. Elle est destinée à éviter " -"l'export accidentel d'éléments qui ne font pas partie de l'API (tels que des " -"modules de bibliothèques qui ont été importés et utilisé à l'intérieur du " -"module)." +"l'exportation accidentelle d'éléments qui ne font pas partie de l'API (tels " +"que des modules de bibliothèques qui ont été importés et utilisés à " +"l'intérieur du module)." #: ../Doc/reference/simple_stmts.rst:800 msgid "" @@ -1269,7 +1270,7 @@ msgid "" msgstr "" "La sémantique à l'exécution est la même que pour toute autre instruction " "d'importation : il existe un module standard :mod:`__future__`, décrit plus " -"loin, qui est importé comme les autres au moment ou l'instruction *future* " +"loin, qui est importé comme les autres au moment où l'instruction *future* " "est exécutée." #: ../Doc/reference/simple_stmts.rst:878 @@ -1304,8 +1305,7 @@ msgstr "" "`compile` dans un module :mod:`M` comportant une instruction *future* " "utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " "l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " -"à :func:`compile` --- voir la documentation de cette fonction pour les " -"détails." +"à :func:`compile` — voir la documentation de cette fonction pour les détails." #: ../Doc/reference/simple_stmts.rst:894 msgid "" @@ -1317,18 +1317,18 @@ msgid "" msgstr "" "Une instruction *future* entrée à l'invite de l'interpréteur interactif est " "effective pour le reste de la session de l'interpréteur. Si l'interpréteur " -"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " "être exécuté et que ce script contient une instruction *future*, elle est " "effective pour la session interactive qui démarre après l'exécution du " "script." #: ../Doc/reference/simple_stmts.rst:902 msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` -- retour vers le __future__" +msgstr ":pep:`236` — retour vers le ``__future__``" #: ../Doc/reference/simple_stmts.rst:903 msgid "The original proposal for the __future__ mechanism." -msgstr "La proposition originale pour le mécanisme de __future__." +msgstr "La proposition originale pour le mécanisme de ``__future__``." #: ../Doc/reference/simple_stmts.rst:909 msgid "The :keyword:`global` statement" @@ -1366,8 +1366,8 @@ msgid "" msgstr "" "Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " "définis en tant que paramètre formel, cible d'une boucle :keyword:`for`, " -"dans une définition de :keyword:`class`, de fonction, d'instruction :" -"keyword:`import` ou une annotation de variable." +"dans une définition de :keyword:`class`, de fonction, d'instruction :keyword:" +"`import` ou une annotation de variable." #: ../Doc/reference/simple_stmts.rst:934 msgid "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index bec51a29c..e09620198 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -55,7 +55,7 @@ msgstr "" "modules intégrés et standard sont disponibles mais aucun n'a été initialisé, " "à l'exception de :mod:`sys` (divers services système), :mod:`builtins` " "(fonctions natives, exceptions et ``None``) et :mod:`__main__`. Ce dernier " -"est utilisé pour avoir des espaces de noms locaux et globaux pour " +"est utilisé pour avoir des espaces de nommage locaux et globaux pour " "l'exécution du programme complet." #: ../Doc/reference/toplevel_components.rst:36 @@ -74,11 +74,11 @@ msgid "" "identical to that of a complete program; each statement is executed in the " "namespace of :mod:`__main__`." msgstr "" -"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " +"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " "il ne lit et n'exécute pas un programme complet mais lit et exécute une " "seule instruction (éventuellement composée) à la fois. L'environnement " -"initial est identique à celui d'un programme complet ; chaque instruction " -"est exécutée dans l'espace de noms de :mod:`__main__`." +"initial est identique à celui d'un programme complet ; chaque instruction " +"est exécutée dans l'espace de nommage de :mod:`__main__`." #: ../Doc/reference/toplevel_components.rst:54 msgid "" @@ -103,21 +103,21 @@ msgstr "Fichier d'entrée" msgid "All input read from non-interactive files has the same form:" msgstr "" "Toutes les entrées lues à partir de fichiers non interactifs sont de la même " -"forme :" +"forme :" #: ../Doc/reference/toplevel_components.rst:71 msgid "This syntax is used in the following situations:" -msgstr "Cette syntaxe est utilisée dans les situations suivantes :" +msgstr "Cette syntaxe est utilisée dans les situations suivantes :" #: ../Doc/reference/toplevel_components.rst:73 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" "lors de l'analyse d'un programme Python complet (à partir d'un fichier ou " -"d'une chaîne de caractères) ;" +"d'une chaîne de caractères) ;" #: ../Doc/reference/toplevel_components.rst:75 msgid "when parsing a module;" -msgstr "lors de l'analyse d'un module ;" +msgstr "lors de l'analyse d'un module ;" #: ../Doc/reference/toplevel_components.rst:77 msgid "when parsing a string passed to the :func:`exec` function;" @@ -132,7 +132,7 @@ msgstr "Entrée interactive" #: ../Doc/reference/toplevel_components.rst:85 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" -"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" +"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" #: ../Doc/reference/toplevel_components.rst:90 msgid "" @@ -141,7 +141,7 @@ msgid "" "input." msgstr "" "Notez qu'une instruction composée (de niveau supérieur) doit être suivie " -"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " +"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " "l'analyseur à détecter la fin de l'entrée." #: ../Doc/reference/toplevel_components.rst:97 @@ -155,4 +155,4 @@ msgid "" msgstr "" ":func:`eval` est utilisée pour évaluer les expressions entrées. Elle ignore " "les espaces en tête. L'argument de :func:`eval`, de type chaîne de " -"caractères, doit être de la forme suivante :" +"caractères, doit être de la forme suivante :" diff --git a/sphinx.po b/sphinx.po index 44e75230d..26d08b4b0 100644 --- a/sphinx.po +++ b/sphinx.po @@ -23,7 +23,7 @@ msgstr "Cette page" #: ../Doc/tools/templates/customsourcelink.html:5 msgid "Report a Bug" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/customsourcelink.html:8 msgid "Show Source" @@ -88,7 +88,7 @@ msgstr "Installation et utilisation de Python" #: ../Doc/tools/templates/indexcontent.html:22 msgid "how to use Python on different platforms" -msgstr "Utilisation de Python sur différentes plateformes" +msgstr "utilisation de Python sur différentes plateformes" #: ../Doc/tools/templates/indexcontent.html:23 msgid "Python HOWTOs" @@ -104,7 +104,7 @@ msgstr "Installation de modules Python" #: ../Doc/tools/templates/indexcontent.html:27 msgid "installing from the Python Package Index & other sources" -msgstr "Installation depuis le *Python Package Index* ou d'autres sources" +msgstr "installation depuis le *Python Package Index* ou d'autres sources" #: ../Doc/tools/templates/indexcontent.html:28 msgid "Distributing Python Modules" @@ -164,7 +164,7 @@ msgstr "Glossaire" #: ../Doc/tools/templates/indexcontent.html:47 msgid "the most important terms explained" -msgstr "Explication des mots les plus importants" +msgstr "explication des mots les plus importants" #: ../Doc/tools/templates/indexcontent.html:49 msgid "Search page" @@ -188,7 +188,7 @@ msgstr "Méta informations :" #: ../Doc/tools/templates/indexcontent.html:59 msgid "Reporting bugs" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/indexcontent.html:60 msgid "About the documentation" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 3c10247e3..01d0056f6 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -77,7 +77,7 @@ msgid "" "like shell scripts, by putting the line ::" msgstr "" "Sur les systèmes Unix, un script Python peut être rendu directement " -"exécutable, comme un script *shell*, en ajoutant la ligne : ::" +"exécutable, comme un script *shell*, en ajoutant la ligne ::" #: ../Doc/tutorial/appendix.rst:45 msgid "" @@ -112,7 +112,7 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Sur les systèmes Windows il n'y a pas de \"mode exécutable\". L'installateur " "Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " "de telle sorte qu'un double clic sur un fichier Python le lance comme un " "script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " @@ -150,7 +150,7 @@ msgstr "" "instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " "explicitement comme fichier source (pour tout le reste, Python se comporte " "alors comme dans une session interactive). Les instructions de ce fichier " -"sont exécutées dans le même espace de noms que vos commandes, donc les " +"sont exécutées dans le même espace de nommage que vos commandes, donc les " "objets définis et modules importés peuvent être utilisés directement dans la " "session interactive. Dans ce fichier, il est aussi possible de changer les " "invites de commande ``sys.ps1`` et ``sys.ps2``." @@ -165,9 +165,9 @@ msgid "" msgstr "" "Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " "vous pouvez le programmer dans le fichier de démarrage global, par exemple " -"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." +"avec le code suivant : ``if os.path.isfile('.pythonrc.py'): exec(open('." "pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " -"depuis un script, vous devez le faire explicitement dans le script : ::" +"depuis un script, vous devez le faire explicitement dans le script ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" @@ -182,8 +182,8 @@ msgid "" msgstr "" "Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" "`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " -"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " -"Démarrez Python et exécutez ce code : ::" +"trouver l'emplacement de votre dossier « site-packages » utilisateur. " +"Démarrez Python et exécutez ce code ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -195,7 +195,7 @@ msgstr "" "Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y " "écrire ce que vous voulez. Il est toujours pris en compte par Python, peu " "importe le mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui " -"désactive l'import automatique." +"désactive l'importation automatique." #: ../Doc/tutorial/appendix.rst:116 msgid "" @@ -215,4 +215,4 @@ msgstr "Notes" #: ../Doc/tutorial/appendix.rst:124 msgid "A problem with the GNU Readline package may prevent this." -msgstr "Un problème avec GNU Readline peut l'en empêcher." +msgstr "Un problème avec GNU *Readline* peut l'en empêcher." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index 8dc3a0388..19a5eefe1 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -30,8 +30,8 @@ msgid "" "custom database, or a specialized GUI application, or a simple game." msgstr "" "Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " -"automatiser certaines tâches : par exemple, effectuer une recherche et un " -"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " +"automatiser certaines tâches : par exemple, effectuer une recherche et un " +"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " "réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " "être créer une petite base de données, une application graphique ou un " "simple jeu." @@ -88,15 +88,15 @@ msgid "" "in Python as in those languages." msgstr "" "Python reste facile à utiliser, mais c'est un vrai langage de " -"programmation : il offre une bien meilleure structure et prise en charge des " +"programmation : il offre une bien meilleure structure et prise en charge des " "grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " "Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " "tant que *langage de très haut niveau*, il possède nativement des types de " "données très évolués tels que les tableaux de taille variable ou les " "dictionnaires. Grâce à ses types de données plus universels, Python est " -"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être Awk " -"ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au moins " -"aussi facilement en Python que dans ces langages." +"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être " +"*Awk* ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au " +"moins aussi facilement en Python que dans ces langages." #: ../Doc/tutorial/appetite.rst:37 msgid "" @@ -111,8 +111,9 @@ msgstr "" "réutilisés dans d'autres programmes Python. Il est fourni avec une grande " "variété de modules standards que vous pouvez utiliser comme base de vos " "programmes, ou comme exemples pour apprendre à programmer. Certains de ces " -"modules donnent accès aux entrées/sorties, aux appels système, aux sockets " -"réseaux et même aux outils comme Tk pour créer des interfaces graphiques." +"modules donnent accès aux entrées/sorties, aux appels système, aux " +"connecteurs réseaux et même aux outils comme Tk pour créer des interfaces " +"graphiques." #: ../Doc/tutorial/appetite.rst:44 msgid "" @@ -171,7 +172,7 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" -"Python est *extensible* : si vous savez écrire un programme en C, une " +"Python est *extensible* : si vous savez écrire un programme en C, une " "nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " "afin de l'étendre, que ce soit pour effectuer des opérations critiques à " "vitesse maximale ou pour lier des programmes en Python à des bibliothèques " @@ -187,10 +188,10 @@ msgid "" "Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" -"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " -"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " +"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " +"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " "sketchs des Monty Python dans la documentation n'est pas seulement permis, " -"c'est encouragé !" +"c'est encouragé !" #: ../Doc/tutorial/appetite.rst:74 msgid "" diff --git a/tutorial/classes.po b/tutorial/classes.po index fb547e1c2..e1402a15a 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -95,11 +95,11 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"Par manque d'ontologie pour parler des classes, nous utilisons parfois des " -"termes de Smalltalk et C++. Nous voulions utiliser les termes de Modula-3 " -"puisque sa sémantique orientée objet est plus proche de celle de Python que C" -"++, mais il est probable que seul un petit nombre de lecteurs les " -"connaissent." +"En l'absence d'une terminologie communément admise pour parler des classes, " +"nous utilisons parfois des termes de Smalltalk et C++. Nous voulions " +"utiliser les termes de Modula-3 puisque sa sémantique orientée objet est " +"plus proche de celle de Python que C++, mais il est probable que seul un " +"petit nombre de lecteurs les connaissent." #: ../Doc/tutorial/classes.rst:43 msgid "A Word About Names and Objects" @@ -122,7 +122,7 @@ msgid "" msgstr "" "Les objets possèdent une existence propre et plusieurs noms peuvent être " "utilisés (dans divers contextes) pour faire référence à un même objet. Ce " -"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " +"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " "pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " "travaille avec des types de base immuables (nombres, chaînes, tuples). " "Cependant, les alias peuvent produire des effets surprenants sur la " @@ -131,13 +131,13 @@ msgstr "" "utilisation est bénéfique au programme car les alias se comportent, d'un " "certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " "n'a aucun coût car c'est simplement un pointeur qui est transmis par " -"l'implémentation ; et si une fonction modifie un objet passé en argument, le " +"l'implémentation ; et si une fonction modifie un objet passé en argument, le " "code à l'origine de l'appel voit le changement. Ceci élimine le besoin " "d'avoir deux mécanismes de transmission d'arguments comme en Pascal." #: ../Doc/tutorial/classes.rst:61 msgid "Python Scopes and Namespaces" -msgstr "Portées et espaces de noms en Python" +msgstr "Portées et espaces de nommage en Python" #: ../Doc/tutorial/classes.rst:63 msgid "" @@ -149,9 +149,9 @@ msgid "" msgstr "" "Avant de présenter les classes, nous devons aborder la notion de portée en " "Python. Les définitions de classes font d'habiles manipulations avec les " -"espaces de noms, vous devez donc savoir comment les portées et les espaces " -"de noms fonctionnent. Soit dit en passant, la connaissance de ce sujet est " -"aussi utile aux développeurs Python expérimentés." +"espaces de nommage, vous devez donc savoir comment les portées et les " +"espaces de nommage fonctionnent. Soit dit en passant, la connaissance de ce " +"sujet est aussi utile aux développeurs Python expérimentés." #: ../Doc/tutorial/classes.rst:69 msgid "Let's begin with some definitions." @@ -171,19 +171,19 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" -"Un *espace de noms* est une table de correspondance entre des noms et des " -"objets. La plupart des espaces de noms sont actuellement implémentés sous " +"Un *espace de nommage* est une table de correspondance entre des noms et des " +"objets. La plupart des espaces de nommage sont actuellement implémentés sous " "forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " "pour les performances) et peut changer dans le futur. Comme exemples " -"d'espaces de noms, nous pouvons citer les primitives (fonctions comme :func:" -"`abs` et les noms des exceptions de base) ; les noms globaux dans un " -"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " +"d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :" +"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " +"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " "manière, l'ensemble des attributs d'un objet forme lui-même un espace de " -"noms. L'important à retenir concernant les espaces de noms est qu'il n'y a " -"absolument aucun lien entre les noms de différents espaces de noms ; par " -"exemple, deux modules différents peuvent définir une fonction ``maximize`` " -"sans qu'il n'y ait de confusion. Les utilisateurs des modules doivent " -"préfixer le nom de la fonction avec celui du module." +"nommage. L'important à retenir concernant les espaces de nommage est qu'il " +"n'y a absolument aucun lien entre les noms de différents espaces de " +"nommage ; par exemple, deux modules différents peuvent définir une fonction " +"``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules " +"doivent préfixer le nom de la fonction avec celui du module." #: ../Doc/tutorial/classes.rst:82 msgid "" @@ -202,7 +202,7 @@ msgstr "" "nomfonction``, ``nommodule`` est un objet module et ``nomfonction`` est un " "attribut de cet objet. Dans ces conditions, il existe une correspondance " "directe entre les attributs du module et les noms globaux définis dans le " -"module : ils partagent le même espace de noms [#]_ !" +"module : ils partagent le même espace de nommage [#]_ !" #: ../Doc/tutorial/classes.rst:90 msgid "" @@ -231,17 +231,17 @@ msgid "" "`__main__`, so they have their own global namespace. (The built-in names " "actually also live in a module; this is called :mod:`builtins`.)" msgstr "" -"Les espaces de noms sont créés à différents moments et ont différentes " -"durées de vie. L'espace de noms contenant les primitives est créé au " -"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de noms " -"globaux pour un module est créé lorsque la définition du module est lue. " -"Habituellement, les espaces de noms des modules durent aussi jusqu'à l'arrêt " -"de l'interpréteur. Les instructions exécutées par la première invocation de " -"l'interpréteur, qu'elles soient lues depuis un fichier de script ou de " -"manière interactive, sont considérées comme faisant partie d'un module " -"appelé :mod:`__main__`, de façon qu'elles possèdent leur propre espace de " -"noms (les primitives vivent elles-mêmes dans un module, appelé :mod:" -"`builtins`)." +"Les espaces de nommage sont créés à différents moments et ont différentes " +"durées de vie. L'espace de nommage contenant les primitives est créé au " +"démarrage de l'interpréteur Python et n'est jamais effacé. L'espace de " +"nommage globaux pour un module est créé lorsque la définition du module est " +"lue. Habituellement, les espaces de nommage des modules durent aussi jusqu'à " +"l'arrêt de l'interpréteur. Les instructions exécutées par la première " +"invocation de l'interpréteur, qu'elles soient lues depuis un fichier de " +"script ou de manière interactive, sont considérées comme faisant partie d'un " +"module appelé :mod:`__main__`, de façon qu'elles possèdent leur propre " +"espace de nommage (les primitives vivent elles-mêmes dans un module, appelé :" +"mod:`builtins`)." #: ../Doc/tutorial/classes.rst:106 msgid "" @@ -253,9 +253,9 @@ msgid "" msgstr "" "L'espace des noms locaux d'une fonction est créé lors de son appel, puis " "effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " -"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " +"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " "passe réellement). Bien sûr, des invocations récursives ont chacune leur " -"propre espace de noms." +"propre espace de nommage." #: ../Doc/tutorial/classes.rst:112 msgid "" @@ -263,9 +263,10 @@ msgid "" "directly accessible. \"Directly accessible\" here means that an unqualified " "reference to a name attempts to find the name in the namespace." msgstr "" -"La *portée* est la zone textuelle d'un programme Python où un espace de noms " -"est directement accessible. « Directement accessible » signifie ici qu'une " -"référence non qualifiée à un nom est cherchée dans l'espace de noms." +"La *portée* est la zone textuelle d'un programme Python où un espace de " +"nommage est directement accessible. « Directement accessible » signifie ici " +"qu'une référence non qualifiée à un nom est cherchée dans l'espace de " +"nommage." #: ../Doc/tutorial/classes.rst:116 msgid "" @@ -275,14 +276,14 @@ msgid "" msgstr "" "Bien que les portées soient déterminées de manière statique, elles sont " "utilisées de manière dynamique. À n'importe quel moment de l'exécution, il y " -"a au minimum trois portées imbriquées dont les espaces de noms sont " +"a au minimum trois portées imbriquées dont les espaces de nommage sont " "directement accessibles :" #: ../Doc/tutorial/classes.rst:120 msgid "the innermost scope, which is searched first, contains the local names" msgstr "" "la portée la plus au centre, celle qui est consultée en premier, contient " -"les noms locaux ;" +"les noms locaux ;" #: ../Doc/tutorial/classes.rst:121 msgid "" @@ -302,8 +303,8 @@ msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" -"la portée englobante, consultée en dernier, est l'espace de noms contenant " -"les primitives." +"la portée englobante, consultée en dernier, est l'espace de nommage " +"contenant les primitives." #: ../Doc/tutorial/classes.rst:126 msgid "" @@ -333,8 +334,9 @@ msgid "" msgstr "" "Habituellement, la portée locale référence les noms locaux de la fonction " "courante. En dehors des fonctions, la portée locale référence le même espace " -"de noms que la portée globale : l'espace de noms du module. Les définitions " -"de classes créent un nouvel espace de noms dans la portée locale." +"de nommage que la portée globale : l'espace de nommage du module. Les " +"définitions de classes créent un nouvel espace de nommage dans la portée " +"locale." #: ../Doc/tutorial/classes.rst:138 msgid "" @@ -348,12 +350,12 @@ msgid "" msgstr "" "Il est important de réaliser que les portées sont déterminées de manière " "textuelle : la portée globale d'une fonction définie dans un module est " -"l'espace de noms de ce module, quelle que soit la provenance de l'appel à la " -"fonction. En revanche, la recherche réelle des noms est faite dynamiquement " -"au moment de l'exécution. Cependant la définition du langage est en train " -"d'évoluer vers une résolution statique des noms au moment de la « " -"compilation », donc ne vous basez pas sur une résolution dynamique (en " -"réalité, les variables locales sont déjà déterminées de manière statique) !" +"l'espace de nommage de ce module, quelle que soit la provenance de l'appel à " +"la fonction. En revanche, la recherche réelle des noms est faite " +"dynamiquement au moment de l'exécution. Cependant la définition du langage " +"est en train d'évoluer vers une résolution statique des noms au moment de la " +"« compilation », donc ne vous basez pas sur une résolution dynamique (en " +"réalité, les variables locales sont déjà déterminées de manière statique) !" #: ../Doc/tutorial/classes.rst:146 msgid "" @@ -370,11 +372,12 @@ msgstr "" "n'est active, les affectations de noms vont toujours dans la portée la plus " "proche. Les affectations ne copient aucune donnée : elles se contentent de " "lier des noms à des objets. Ceci est également vrai pour l'effacement : " -"l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de noms " -"référencé par la portée locale. En réalité, toutes les opérations qui " -"impliquent des nouveaux noms utilisent la portée locale : en particulier, " -"les instructions :keyword:`import` et les définitions de fonctions " -"effectuent une liaison du module ou du nom de fonction dans la portée locale." +"l'instruction ``del x`` supprime la liaison de ``x`` dans l'espace de " +"nommage référencé par la portée locale. En réalité, toutes les opérations " +"qui impliquent des nouveaux noms utilisent la portée locale : en " +"particulier, les instructions :keyword:`import` et les définitions de " +"fonctions effectuent une liaison du module ou du nom de fonction dans la " +"portée locale." #: ../Doc/tutorial/classes.rst:154 msgid "" @@ -385,12 +388,12 @@ msgid "" msgstr "" "L'instruction :keyword:`global` peut être utilisée pour indiquer que " "certaines variables existent dans la portée globale et doivent être reliées " -"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " +"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " "existent dans une portée supérieure et doivent être reliées en local." #: ../Doc/tutorial/classes.rst:162 msgid "Scopes and Namespaces Example" -msgstr "Exemple de portées et d'espaces de noms" +msgstr "Exemple de portées et d'espaces de nommage" #: ../Doc/tutorial/classes.rst:164 msgid "" @@ -399,7 +402,7 @@ msgid "" "variable binding::" msgstr "" "Ceci est un exemple montrant comment utiliser les différentes portées et " -"espaces de noms, et comment :keyword:`global` et :keyword:`nonlocal` " +"espaces de nommage, et comment :keyword:`global` et :keyword:`nonlocal` " "modifient l'affectation de variable ::" #: ../Doc/tutorial/classes.rst:191 @@ -482,10 +485,10 @@ msgid "" "new namespace. In particular, function definitions bind the name of the new " "function here." msgstr "" -"Quand une classe est définie, un nouvel espace de noms est créé et utilisé " -"comme portée locale --- Ainsi, toutes les affectations de variables locales " -"entrent dans ce nouvel espace de noms. En particulier, les définitions de " -"fonctions y lient le nom de la nouvelle fonction." +"Quand une classe est définie, un nouvel espace de nommage est créé et " +"utilisé comme portée locale --- Ainsi, toutes les affectations de variables " +"locales entrent dans ce nouvel espace de nommage. En particulier, les " +"définitions de fonctions y lient le nom de la nouvelle fonction." #: ../Doc/tutorial/classes.rst:247 msgid "" @@ -498,12 +501,12 @@ msgid "" "`ClassName` in the example)." msgstr "" "À la fin de la définition d'une classe, un *objet classe* est créé. C'est, " -"pour simplifier, une encapsulation du contenu de l'espace de noms créé par " -"la définition de classe. Nous revoyons les objets classes dans la prochaine " -"section. La portée locale initiale (celle qui prévaut avant le début de la " -"définition de la classe) est ré-instanciée et l'objet de classe est lié ici " -"au nom de classe donné dans l'en-tête de définition de classe (:class:" -"`ClassName` dans l'exemple)." +"pour simplifier, une encapsulation du contenu de l'espace de nommage créé " +"par la définition de classe. Nous revoyons les objets classes dans la " +"prochaine section. La portée locale initiale (celle qui prévaut avant le " +"début de la définition de la classe) est ré-instanciée et l'objet de classe " +"est lié ici au nom de classe donné dans l'en-tête de définition de classe (:" +"class:`ClassName` dans l'exemple)." #: ../Doc/tutorial/classes.rst:259 msgid "Class Objects" @@ -527,8 +530,8 @@ msgstr "" "Les *références d'attributs* utilisent la syntaxe standard utilisée pour " "toutes les références d'attributs en Python : ``obj.nom``. Les noms " "d'attribut valides sont tous les noms qui se trouvaient dans l'espace de " -"noms de la classe quand l'objet classe a été créé. Donc, si la définition de " -"classe est de cette forme ::" +"nommage de la classe quand l'objet classe a été créé. Donc, si la définition " +"de classe est de cette forme ::" #: ../Doc/tutorial/classes.rst:276 msgid "" @@ -597,7 +600,7 @@ msgid "" msgstr "" "Bien sûr, la méthode :meth:`__init__` peut avoir des arguments pour une plus " "grande flexibilité. Dans ce cas, les arguments donnés à l'opérateur " -"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" +"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" #: ../Doc/tutorial/classes.rst:322 msgid "Instance Objects" @@ -659,7 +662,7 @@ msgid "" "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" "Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " -"définition, tous les attributs d'une classe qui sont des objets fonction " +"définition, tous les attributs d'une classe qui sont des objets fonctions " "définissent les méthodes correspondantes de ses instances. Donc, dans notre " "exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " "est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " @@ -683,8 +686,8 @@ msgid "" msgstr "" "Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " -"méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " -"coté et être appelé plus tard. Par exemple ::" +"méthode directement : ``x.f`` est un objet méthode, il peut être gardé de " +"côté et être appelé plus tard. Par exemple ::" #: ../Doc/tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." @@ -704,7 +707,7 @@ msgstr "" "alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " "un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " "exception lorsqu'une fonction qui requiert un argument est appelée sans -- " -"même si l'argument n'est pas utilisé..." +"même si l'argument n'est pas utilisé…" #: ../Doc/tutorial/classes.rst:382 msgid "" @@ -719,7 +722,7 @@ msgstr "" "En fait, vous avez peut-être deviné la réponse : la particularité des " "méthodes est que l'objet est passé comme premier argument de la fonction. " "Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass." -"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " +"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " "équivalent à appeler la fonction correspondante avec une liste d'arguments " "créée en ajoutant l'instance de l'objet de la méthode avant le premier " "argument." @@ -770,11 +773,10 @@ msgid "" "by all *Dog* instances::" msgstr "" "Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" -"`muable ` (telles que les listes, dictionnaires, etc...) peuvent " -"avoir des effets surprenants. Par exemple, la liste *tricks* dans le code " -"suivant ne devrait pas être utilisée en tant que variable de classe car, " -"dans ce cas, une seule liste est partagée par toutes les instances de " -"*Dog* ::" +"`muable ` (telles que les listes, dictionnaires, etc.) peuvent avoir " +"des effets surprenants. Par exemple, la liste *tricks* dans le code suivant " +"ne devrait pas être utilisée en tant que variable de classe car, dans ce " +"cas, une seule liste est partagée par toutes les instances de *Dog* ::" #: ../Doc/tutorial/classes.rst:450 msgid "Correct design of the class should use an instance variable instead::" @@ -819,9 +821,9 @@ msgstr "" "des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " "les classes ne sont pas utilisables pour implémenter des types de données " "purement abstraits. En fait, il n'est pas possible en Python d'imposer de " -"masquer des données --- tout est basé sur des conventions (d'un autre coté, " +"masquer des données — tout est basé sur des conventions (d'un autre côté, " "l'implémentation de Python, écrite en C, peut complètement masquer les " -"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " +"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " "ceci peut être utilisé par des extensions de Python écrites en C)." #: ../Doc/tutorial/classes.rst:493 @@ -848,7 +850,7 @@ msgid "" "variables when glancing through a method." msgstr "" "Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " -"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " +"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " "en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " "variables locales et variables d'instances quand on regarde le code d'une " "méthode." @@ -1025,7 +1027,7 @@ msgstr "" #: ../Doc/tutorial/classes.rst:608 msgid "Python has two built-in functions that work with inheritance:" -msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" +msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" #: ../Doc/tutorial/classes.rst:610 msgid "" @@ -1077,7 +1079,7 @@ msgstr "" "de gauche à droite, sans chercher deux fois dans la même classe si elle " "apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " "trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " -"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " +"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " "est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " "et ainsi de suite." @@ -1186,7 +1188,7 @@ msgid "" "private. This can even be useful in special circumstances, such as in the " "debugger." msgstr "" -"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " +"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " "reste possible d'accéder ou de modifier une variable considérée comme " "privée. Ceci peut même être utile dans certaines circonstances, comme au " "sein du débogueur." @@ -1201,7 +1203,7 @@ msgid "" "referencing ``__dict__`` directly." msgstr "" "Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " -"pas le nom de la classe appelante comme étant la classe courante ; le même " +"pas le nom de la classe appelante comme étant la classe courante ; le même " "effet s'applique à la directive ``global`` dont l'effet est, de la même " "façon, restreint au code compilé dans le même ensemble de byte-code. Les " "mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " @@ -1308,10 +1310,10 @@ msgid "" "data values and which statement was last executed). An example shows that " "generators can be trivially easy to create::" msgstr "" -"Les :term:`générateur`\\s sont des outils simples et puissants pour créer " -"des itérateurs. Ils sont écrits comme des fonctions classiques mais " -"utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer des " -"données. À chaque fois qu'il est appelé par :func:`next`, le générateur " +"Les :term:`générateurs ` sont des outils simples et puissants " +"pour créer des itérateurs. Ils sont écrits comme des fonctions classiques " +"mais utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer " +"des données. À chaque fois qu'il est appelé par :func:`next`, le générateur " "reprend son exécution là où il s'était arrêté (en conservant tout son " "contexte d'exécution). Un exemple montre très bien combien les générateurs " "sont simples à créer ::" @@ -1377,11 +1379,11 @@ msgstr "" #: ../Doc/tutorial/classes.rst:885 msgid "Examples::" -msgstr "Exemples : ::" +msgstr "Exemples ::" #: ../Doc/tutorial/classes.rst:909 msgid "Footnotes" -msgstr "Notes" +msgstr "Notes de bas de page" #: ../Doc/tutorial/classes.rst:910 msgid "" @@ -1394,10 +1396,11 @@ msgid "" msgstr "" "Il existe une exception : les modules disposent d'un attribut secret en " "lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " -"utilisé pour implémenter l'espace de noms du module ; le nom :attr:`~object." -"__dict__` est un attribut mais pas un nom global. Évidemment, si vous " -"l'utilisez, vous brisez l'abstraction de l'implémentation des espaces de " -"noms. Il est donc réservé à des choses comme les débogueurs post-mortem." +"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" +"`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si " +"vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces " +"de nommage. Il est donc réservé à des choses comme les débogueurs post-" +"mortem." #~ msgid "Exceptions Are Classes Too" #~ msgstr "Les exceptions sont aussi des classes" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 69d111927..ccc9c65bc 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -109,7 +109,7 @@ msgid "" "If you do need to iterate over a sequence of numbers, the built-in function :" "func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" -"Si vous devez itérer sur une suite de nombres, la fonction intégrée :func:" +"Si vous devez itérer sur une suite de nombres, la fonction native :func:" "`range` est faite pour cela. Elle génère des suites arithmétiques ::" #: ../Doc/tutorial/controlflow.rst:102 @@ -120,10 +120,10 @@ msgid "" "a different increment (even negative; sometimes this is called the 'step')::" msgstr "" "Le dernier élément fourni en paramètre ne fait jamais partie de la liste " -"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " -"vont de 0 à 9. Il est possible de spécifier une valeur de début et/ou une " -"valeur d'incrément différente(s) (y compris négative pour cette dernière, " -"que l'on appelle également parfois le 'pas') ::" +"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " +"vont de 0 à 9. Il est possible de spécifier une valeur de début et une " +"valeur d'incrément différentes (y compris négative pour cette dernière, que " +"l'on appelle également parfois le 'pas') ::" #: ../Doc/tutorial/controlflow.rst:116 msgid "" @@ -243,7 +243,7 @@ msgid "" "next iteration of the loop::" msgstr "" "L'instruction :keyword:`continue`, également empruntée au C, fait passer la " -"boucle à son itération suivante : ::" +"boucle à son itération suivante ::" #: ../Doc/tutorial/controlflow.rst:217 msgid ":keyword:`pass` Statements" @@ -256,12 +256,12 @@ msgid "" msgstr "" "L'instruction :keyword:`pass` ne fait rien. Elle peut être utilisée " "lorsqu'une instruction est nécessaire pour fournir une syntaxe correcte, " -"mais qu'aucune action ne doit être effectuée. Par exemple : ::" +"mais qu'aucune action ne doit être effectuée. Par exemple ::" #: ../Doc/tutorial/controlflow.rst:226 msgid "This is commonly used for creating minimal classes::" msgstr "" -"On utilise couramment cette instruction pour créer des classes minimales : ::" +"On utilise couramment cette instruction pour créer des classes minimales ::" #: ../Doc/tutorial/controlflow.rst:232 msgid "" @@ -285,7 +285,7 @@ msgid "" "boundary::" msgstr "" "On peut créer une fonction qui écrit la suite de Fibonacci jusqu'à une " -"limite imposée : ::" +"limite imposée ::" #: ../Doc/tutorial/controlflow.rst:265 msgid "" @@ -310,13 +310,13 @@ msgid "" "write, so make a habit of it." msgstr "" "La première instruction d'une fonction peut, de façon facultative, être une " -"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " +"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " "chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " "la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " "qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " -"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 !" +"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." #: ../Doc/tutorial/controlflow.rst:277 msgid "" @@ -350,7 +350,7 @@ msgid "" msgstr "" "Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " "table de symboles locale de la fonction appelée au moment où elle est " -"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " +"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " "la *valeur* étant toujours une *référence* à un objet et non la valeur de " "l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " "nouvelle table de symboles locale est créée pour cet appel." @@ -365,9 +365,10 @@ msgid "" msgstr "" "Une définition de fonction introduit le nom de la fonction dans la table de " "symboles courante. La valeur du nom de la fonction est un type qui est " -"reconnu par l'interpréteur comme une fonction utilisateur. Cette valeur peut " -"être affectée à un autre nom qui pourra alors être utilisé également comme " -"une fonction. Ceci fournit un mécanisme de renommage général : ::" +"reconnu par l'interpréteur comme une fonction définie par l'utilisateur. " +"Cette valeur peut être affectée à un autre nom qui pourra alors être utilisé " +"également comme une fonction. Ceci fournit un mécanisme de renommage " +"général ::" #: ../Doc/tutorial/controlflow.rst:304 msgid "" @@ -394,13 +395,13 @@ msgid "" "Fibonacci series, instead of printing it::" msgstr "" "Il est facile d'écrire une fonction qui renvoie une liste de la série de " -"Fibonacci au lieu de l'afficher : ::" +"Fibonacci au lieu de l'afficher ::" #: ../Doc/tutorial/controlflow.rst:331 msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de " -"Python :" +"Python :" #: ../Doc/tutorial/controlflow.rst:333 msgid "" @@ -434,7 +435,7 @@ msgstr "" "même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " "types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" "classes`). La méthode :meth:`append` donnée dans cet exemple est définie " -"pour les listes ; elles ajoute un nouvel élément à la fin de la liste. Dans " +"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " "cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle " "est plus efficace." @@ -462,17 +463,17 @@ msgid "" msgstr "" "La forme la plus utile consiste à indiquer une valeur par défaut pour " "certains arguments. Ceci crée une fonction qui pourra être appelée avec " -"moins d'arguments que ceux présents dans sa définition. Par exemple : ::" +"moins d'arguments que ceux présents dans sa définition. Par exemple ::" #: ../Doc/tutorial/controlflow.rst:379 msgid "This function can be called in several ways:" -msgstr "Cette fonction peut être appelée de plusieurs façons :" +msgstr "Cette fonction peut être appelée de plusieurs façons :" #: ../Doc/tutorial/controlflow.rst:381 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" -"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " +"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " "want to quit?')``" #: ../Doc/tutorial/controlflow.rst:383 @@ -480,7 +481,7 @@ msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " +"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " "overwrite the file?', 2)``" #: ../Doc/tutorial/controlflow.rst:385 @@ -488,7 +489,7 @@ msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" msgstr "" -"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " +"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " "'Come on, only yes or no!')``" #: ../Doc/tutorial/controlflow.rst:388 @@ -505,11 +506,11 @@ msgid "" "*defining* scope, so that ::" msgstr "" "Les valeurs par défaut sont évaluées lors de la définition de la fonction " -"dans la portée de *définition*, de telle sorte que : ::" +"dans la portée de *définition*, de telle sorte que ::" #: ../Doc/tutorial/controlflow.rst:402 msgid "will print ``5``." -msgstr "Affiche ``5``." +msgstr "affiche ``5``." #: ../Doc/tutorial/controlflow.rst:404 msgid "" @@ -522,11 +523,11 @@ msgstr "" "seule fois. Ceci fait une différence lorsque cette valeur par défaut est un " "objet muable tel qu'une liste, un dictionnaire ou des instances de la " "plupart des classes. Par exemple, la fonction suivante accumule les " -"arguments qui lui sont passés au fil des appels successifs : ::" +"arguments qui lui sont passés au fil des appels successifs ::" #: ../Doc/tutorial/controlflow.rst:417 msgid "This will print ::" -msgstr "Ceci affiche : ::" +msgstr "Ceci affiche ::" #: ../Doc/tutorial/controlflow.rst:423 msgid "" @@ -534,7 +535,7 @@ msgid "" "write the function like this instead::" 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 : ::" +"appels successifs, vous pouvez écrire la fonction de cette façon ::" #: ../Doc/tutorial/controlflow.rst:436 msgid "Keyword Arguments" @@ -548,7 +549,7 @@ msgid "" msgstr "" "Les fonctions peuvent également être appelées en utilisant des :term:" "`arguments nommés ` sous la forme ``kwarg=value``. Par " -"exemple, la fonction suivante : ::" +"exemple, la fonction suivante ::" #: ../Doc/tutorial/controlflow.rst:447 msgid "" @@ -558,11 +559,11 @@ msgid "" msgstr "" "accepte un argument obligatoire (``voltage``) et trois arguments facultatifs " "(``state``, ``action`` et ``type``). Cette fonction peut être appelée de " -"n'importe laquelle des façons suivantes : ::" +"n'importe laquelle des façons suivantes ::" #: ../Doc/tutorial/controlflow.rst:458 msgid "but all the following calls would be invalid::" -msgstr "mais tous les appels qui suivent sont incorrects : ::" +msgstr "mais tous les appels qui suivent sont incorrects ::" #: ../Doc/tutorial/controlflow.rst:465 msgid "" @@ -578,10 +579,10 @@ msgstr "" "positionnés. Tous les arguments nommés doivent correspondre à l'un des " "arguments acceptés par la fonction (par exemple, ``actor`` n'est pas un " "argument accepté par la fonction ``parrot``), mais leur ordre n'est pas " -"important. Ceci inclut également les arguments facultatifs " +"important. Ceci inclut également les arguments obligatoires " "(``parrot(voltage=1000)`` est également correct). Aucun argument ne peut " "recevoir une valeur plus d'une fois, comme l'illustre cet exemple incorrect " -"du fait de cette restriction : ::" +"du fait de cette restriction ::" #: ../Doc/tutorial/controlflow.rst:481 msgid "" @@ -604,7 +605,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:498 msgid "It could be called like this::" -msgstr "Elle pourrait être appelée comme ceci : ::" +msgstr "Elle pourrait être appelée comme ceci ::" #: ../Doc/tutorial/controlflow.rst:506 msgid "and of course it would print:" @@ -633,7 +634,7 @@ msgstr "" "fonction peut être appelée avec un nombre arbitraire d'arguments. Ces " "arguments sont intégrés dans un tuple (voir :ref:`tut-tuples`). Avant le " "nombre variable d'arguments, zéro arguments normaux ou plus peuvent " -"apparaître : ::" +"apparaître ::" #: ../Doc/tutorial/controlflow.rst:540 msgid "" @@ -645,7 +646,7 @@ msgid "" msgstr "" "Normalement, ces arguments ``variadiques`` sont les derniers paramètres, " "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." +"après le paramètre ``*arg`` ne pourra être utilisé que par son nom. ::" #: ../Doc/tutorial/controlflow.rst:557 msgid "Unpacking Argument Lists" @@ -666,7 +667,7 @@ msgstr "" "func:`range` attend des arguments *start* et *stop* distincts. S'ils ne sont " "pas disponibles séparément, écrivez l'appel de fonction en utilisant " "l'opérateur ``*`` pour séparer les arguments présents dans une liste ou un " -"tuple : ::" +"tuple ::" #: ../Doc/tutorial/controlflow.rst:575 msgid "" @@ -691,13 +692,12 @@ msgid "" "scope::" msgstr "" "Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " -"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " +"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " "a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " "fonction est attendu. Elles sont syntaxiquement restreintes à une seule " "expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " "définition de fonction normale. Comme les fonctions imbriquées, les " -"fonctions lambda peuvent référencer des variables de la portée " -"englobante : ::" +"fonctions lambda peuvent référencer des variables de la portée englobante ::" #: ../Doc/tutorial/controlflow.rst:610 msgid "" @@ -763,7 +763,7 @@ msgstr "" "L'analyseur de code Python ne supprime pas l'indentation des chaînes de " "caractères littérales multi-lignes, donc les outils qui utilisent la " "documentation doivent si besoin faire cette opération eux-mêmes. La " -"convention suivante s'applique : la première ligne non vide *après* la " +"convention suivante s'applique : la première ligne non vide *après* la " "première détermine la profondeur d'indentation de l'ensemble de la chaîne de " "documentation (on ne peut pas utiliser la première ligne qui est " "généralement accolée aux guillemets d'ouverture de la chaîne de caractères " @@ -776,7 +776,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:655 msgid "Here is an example of a multi-line docstring::" -msgstr "Voici un exemple de chaîne de documentation multi-lignes : ::" +msgstr "Voici un exemple de chaîne de documentation multi-lignes ::" #: ../Doc/tutorial/controlflow.rst:673 msgid "Function Annotations" @@ -790,8 +790,7 @@ msgid "" msgstr "" ":ref:`Les annotations de fonction ` sont des métadonnées " "optionnelles décrivant les types utilisés par une fonction définie par " -"l'utilisateur (voir les PEPs :pep:`3107` et la :pep:`484` pour plus " -"d'informations)." +"l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)." #: ../Doc/tutorial/controlflow.rst:684 msgid "" @@ -815,7 +814,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:706 msgid "Intermezzo: Coding Style" -msgstr "Aparté : le style de codage" +msgstr "Aparté : le style de codage" #: ../Doc/tutorial/controlflow.rst:711 msgid "" @@ -828,7 +827,7 @@ msgstr "" "Maintenant que vous êtes prêt à écrire des programmes plus longs et plus " "complexes, il est temps de parler du *style de codage*. La plupart des " "langages peuvent être écrits (ou plutôt *formatés*) selon différents " -"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " +"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " "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." @@ -840,9 +839,9 @@ msgid "" "points extracted for you:" msgstr "" "En Python, la plupart des projets adhèrent au style défini dans la :pep:" -"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " +"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " "Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " -"que possible ; voici ses principaux points notables :" +"que possible ; voici ses principaux points notables :" #: ../Doc/tutorial/controlflow.rst:722 msgid "Use 4-space indentation, and no tabs." @@ -885,7 +884,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:736 msgid "When possible, put comments on a line of their own." msgstr "" -"Lorsque c'est possible, placez les commentaires sur leur propres lignes." +"Lorsque c'est possible, placez les commentaires sur leurs propres lignes." #: ../Doc/tutorial/controlflow.rst:738 msgid "Use docstrings." @@ -897,7 +896,7 @@ msgid "" "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." 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)``." +"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." #: ../Doc/tutorial/controlflow.rst:743 msgid "" @@ -945,7 +944,7 @@ msgstr "" "En fait, *appels par référence d'objets* serait sans doute une description " "plus juste dans la mesure où, si un objet muable est passé en argument, " "l'appelant verra toutes les modifications qui lui auront été apportées par " -"l'appelé (insertion d'éléments dans une liste...)." +"l'appelé (insertion d'éléments dans une liste…)." #~ msgid "" #~ "Note that the list of keyword argument names is created by sorting the " diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index cb2c6d87c..587b3f87a 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -39,7 +39,7 @@ msgid "" "list objects:" msgstr "" "Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " -"des objets de type liste :" +"des objets de type liste :" #: ../Doc/tutorial/datastructures.rst:22 msgid "" @@ -52,7 +52,7 @@ msgid "" "Extend the list by appending all the items from the iterable. Equivalent to " "``a[len(a):] = iterable``." msgstr "" -"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " +"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " "``a[len(a):] = iterable``." #: ../Doc/tutorial/datastructures.rst:35 @@ -87,7 +87,7 @@ msgstr "" "valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " "renvoie le dernier élément de la liste (les crochets autour du *i* dans la " "signature de la méthode indiquent que ce paramètre est facultatif et non que " -"vous devez placer des crochets dans votre code ! Vous retrouverez cette " +"vous devez placer des crochets dans votre code ! Vous retrouverez cette " "notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." #: ../Doc/tutorial/datastructures.rst:60 @@ -112,7 +112,7 @@ msgid "" msgstr "" "Les arguments optionnels *start* et *end* sont interprétés de la même " "manière que dans la notation des tranches et sont utilisés pour limiter la " -"recherche à une sous-séquence particulière. L'index renvoyé est calculé " +"recherche à une sous-séquence particulière. L'indice renvoyé est calculé " "relativement au début de la séquence complète et non relativement à *start*." #: ../Doc/tutorial/datastructures.rst:78 @@ -124,12 +124,12 @@ msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" -"Classe les éléments sur place (les arguments peuvent personnaliser le " -"classement, voir :func:`sorted` pour leur explication)." +"Ordonne les éléments dans la liste (les arguments peuvent personnaliser " +"l'ordonnancement, voir :func:`sorted` pour leur explication)." #: ../Doc/tutorial/datastructures.rst:91 msgid "Reverse the elements of the list in place." -msgstr "Inverse l'ordre des éléments de la liste, sur place." +msgstr "Inverse l'ordre des éléments dans la liste." #: ../Doc/tutorial/datastructures.rst:97 msgid "Return a shallow copy of the list. Equivalent to ``a[:]``." @@ -137,7 +137,7 @@ msgstr "Renvoie une copie superficielle de la liste. Équivalent à ``a[:]``." #: ../Doc/tutorial/datastructures.rst:100 msgid "An example that uses most of the list methods::" -msgstr "L'exemple suivant utilise la plupart des méthodes des listes : ::" +msgstr "L'exemple suivant utilise la plupart des méthodes des listes ::" #: ../Doc/tutorial/datastructures.rst:123 msgid "" @@ -148,7 +148,7 @@ msgid "" msgstr "" "Vous avez probablement remarqué que les méthodes telles que ``insert``, " "``remove`` ou ``sort``, qui ne font que modifier la liste, n'affichent pas " -"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " +"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " "respecté par toutes les structures de données variables en Python." #: ../Doc/tutorial/datastructures.rst:132 @@ -164,11 +164,11 @@ msgid "" "For example::" msgstr "" "Les méthodes des listes rendent très facile leur utilisation comme des " -"piles, où le dernier élément ajouté est le premier récupéré (\"dernier " -"entré, premier sorti\" ou LIFO pour *last-in, first-out* en anglais). Pour " +"piles, où le dernier élément ajouté est le premier récupéré (« dernier " +"entré, premier sorti » ou LIFO pour *last-in, first-out* en anglais). Pour " "ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " "récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " -"indicateur de position. Par exemple : ::" +"indicateur de position. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:162 msgid "Using Lists as Queues" @@ -183,8 +183,8 @@ msgid "" "(because all of the other elements have to be shifted by one)." msgstr "" "Il est également possible d'utiliser une liste comme une file, où le premier " -"élément ajouté est le premier récupéré (\"premier entré, premier sorti\" ou " -"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " +"élément ajouté est le premier récupéré (« premier entré, premier sorti » ou " +"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " "efficaces pour réaliser ce type de traitement. Alors que les ajouts et " "suppressions en fin de liste sont rapides, les opérations d'insertions ou de " "retraits en début de liste sont lentes (car tous les autres éléments doivent " @@ -197,7 +197,7 @@ msgid "" msgstr "" "Pour implémenter une file, utilisez la classe :class:`collections.deque` qui " "a été conçue pour réaliser rapidement les opérations d'ajouts et de retraits " -"aux deux extrémités. Par exemple : ::" +"aux deux extrémités. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:190 msgid "List Comprehensions" @@ -213,13 +213,13 @@ msgstr "" "Les compréhensions de listes fournissent un moyen de construire des listes " "de manière très concise. Une application classique est la construction de " "nouvelles listes où chaque élément est le résultat d'une opération appliquée " -"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " +"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " "éléments satisfaisant une condition spécifique." #: ../Doc/tutorial/datastructures.rst:197 msgid "For example, assume we want to create a list of squares, like::" msgstr "" -"Par exemple, supposons que l'on veuille créer une liste de carrés, comme : ::" +"Par exemple, supposons que l'on veuille créer une liste de carrés, comme ::" #: ../Doc/tutorial/datastructures.rst:206 msgid "" @@ -229,11 +229,11 @@ msgid "" msgstr "" "Notez que cela crée (ou remplace) une variable nommée ``x`` qui existe " "toujours après l'exécution de la boucle. On peut calculer une liste de " -"carrés sans effet de bord avec : ::" +"carrés sans effet de bord avec ::" #: ../Doc/tutorial/datastructures.rst:212 msgid "or, equivalently::" -msgstr "ou, de manière équivalente : ::" +msgstr "ou, de manière équivalente ::" #: ../Doc/tutorial/datastructures.rst:216 msgid "which is more concise and readable." @@ -257,7 +257,7 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:228 msgid "and it's equivalent to::" -msgstr "et c'est équivalent à : ::" +msgstr "et c'est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:239 msgid "" @@ -272,15 +272,15 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"Si l'expression est un tuple (c'est-à-dire ``(x, y)`` dans cet exemple), " -"elle doit être entourée par des parenthèses : ::" +"Si l'expression est un n-uplet (c'est-à-dire ``(x, y)`` dans cet exemple), " +"elle doit être entourée par des parenthèses ::" #: ../Doc/tutorial/datastructures.rst:273 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Les compréhensions de listes peuvent contenir des expressions complexes et " -"des fonctions imbriquées : ::" +"des fonctions imbriquées ::" #: ../Doc/tutorial/datastructures.rst:280 msgid "Nested List Comprehensions" @@ -300,11 +300,11 @@ msgid "" "lists of length 4::" msgstr "" "Voyez l'exemple suivant d'une matrice de 3 par 4, implémentée sous la forme " -"de 3 listes de 4 éléments : ::" +"de 3 listes de 4 éléments ::" #: ../Doc/tutorial/datastructures.rst:294 msgid "The following list comprehension will transpose rows and columns::" -msgstr "Cette compréhension de liste transpose les lignes et les colonnes : ::" +msgstr "Cette compréhension de liste transpose les lignes et les colonnes ::" #: ../Doc/tutorial/datastructures.rst:299 msgid "" @@ -314,11 +314,11 @@ msgid "" msgstr "" "Comme nous l'avons vu dans la section précédente, la compréhension de liste " "imbriquée est évaluée dans le contexte de l'instruction :keyword:`for` qui " -"la suit, donc cet exemple est équivalent à : ::" +"la suit, donc cet exemple est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:310 msgid "which, in turn, is the same as::" -msgstr "lequel à son tour est équivalent à : ::" +msgstr "lequel à son tour est équivalent à ::" #: ../Doc/tutorial/datastructures.rst:323 msgid "" @@ -327,7 +327,7 @@ msgid "" msgstr "" "Dans des cas concrets, il est toujours préférable d'utiliser des fonctions " "natives plutôt que des instructions de contrôle de flux complexes. La " -"fonction :func:`zip` ferait dans ce cas un excellent travail : ::" +"fonction :func:`zip` ferait dans ce cas un excellent travail ::" #: ../Doc/tutorial/datastructures.rst:329 msgid "" @@ -358,7 +358,7 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:353 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" -":keyword:`del` peut aussi être utilisée pour supprimer des variables : ::" +":keyword:`del` peut aussi être utilisée pour supprimer des variables ::" #: ../Doc/tutorial/datastructures.rst:357 msgid "" @@ -382,18 +382,19 @@ msgid "" "the *tuple*." msgstr "" "Nous avons vu que les listes et les chaînes de caractères ont beaucoup de " -"propriétés en commun, comme l'indexation et les opérations sur des tranches. " -"Ce sont deux exemple de *séquences* (voir :ref:`typesseq`). Comme Python est " -"un langage en constante évolution, d'autres types de séquences y seront peut-" -"être ajoutés. Il existe également un autre type standard de séquence : le " -"*tuple*." +"propriétés en commun, comme l'indiçage et les opérations sur des tranches. " +"Ce sont deux exemples de *séquences* (voir :ref:`typesseq`). Comme Python " +"est un langage en constante évolution, d'autres types de séquences y seront " +"peut-être ajoutés. Il existe également un autre type standard de séquence : " +"le *tuple* (ou n-uplet, dénomination que nous utiliserons dans la suite de " +"cette documentation)." #: ../Doc/tutorial/datastructures.rst:372 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" -"Un tuple consiste en différentes valeurs séparées par des virgules, comme " -"par exemple : ::" +"Un n-uplet consiste en différentes valeurs séparées par des virgules, par " +"exemple ::" #: ../Doc/tutorial/datastructures.rst:394 msgid "" @@ -404,12 +405,12 @@ msgid "" "the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" -"Comme vous pouvez le voir, les tuples sont toujours affichés entre " -"parenthèses, de façon à ce que des tuples imbriqués soient interprétés " -"correctement ; ils peuvent être entrés avec ou sans parenthèses, même si " -"celles-ci sont souvent nécessaires (notamment lorsqu'un tuple fait partie " +"Comme vous pouvez le voir, les n-uplets sont toujours affichés entre " +"parenthèses, de façon à ce que des n-uplets imbriqués soient interprétés " +"correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " +"celles-ci sont souvent nécessaires (notamment lorsqu'un n-uplet fait partie " "d'une expression plus longue). Il n'est pas possible d'affecter de valeur à " -"un élément d'un tuple ; par contre, il est possible de créer des tuples " +"un élément d'un n-uplet ; par contre, il est possible de créer des n-uplets " "contenant des objets muables, comme des listes." #: ../Doc/tutorial/datastructures.rst:401 @@ -422,14 +423,14 @@ msgid "" "`mutable`, and their elements are usually homogeneous and are accessed by " "iterating over the list." msgstr "" -"Si les tuples peuvent sembler similaires aux listes, ils sont souvent " -"utilisés dans des cas différents et pour des raisons différentes. Les tuples " -"sont :term:`immuable`\\s et contiennent souvent des séquences hétérogènes " -"d'éléments qui sont accédés par \"déballage\" (voir plus loin) ou indexation " -"(ou même par attributs dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`muable ` et " -"contiennent des éléments homogènes qui sont accédés par itération sur la " -"liste." +"Si les n-uplets peuvent sembler similaires aux listes, ils sont souvent " +"utilisés dans des cas différents et pour des raisons différentes. Les n-" +"uplets sont :term:`immuable`\\s et contiennent souvent des séquences " +"hétérogènes d'éléments qui sont accédés par « dissociation » (*unpacking* en " +"anglais, voir plus loin) ou par indice (ou même par attributs dans le cas " +"des :func:`namedtuples `). Les listes sont souvent :" +"term:`muable `\\s et contiennent des éléments généralement homogènes " +"qui sont accédés par itération sur la liste." #: ../Doc/tutorial/datastructures.rst:409 msgid "" @@ -439,12 +440,12 @@ msgid "" "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" -"Un problème spécifique est la construction de tuples ne contenant aucun ou " -"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " -"accommoder. Les tuples vides sont construits par une paire de parenthèses " -"vides ; un tuple avec un seul élément est construit en faisant suivre la " +"Un problème spécifique est la construction de n-uplets ne contenant aucun ou " +"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " +"accommoder. Les n-uplets vides sont construits par une paire de parenthèses " +"vides ; un n-uplet avec un seul élément est construit en faisant suivre la " "valeur par une virgule (il n'est pas suffisant de placer cette valeur entre " -"parenthèses). Pas très joli, mais efficace. Par exemple : ::" +"parenthèses). Pas très joli, mais efficace. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:424 msgid "" @@ -452,9 +453,10 @@ msgid "" "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" -"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un *emballage " -"de tuple* : les valeurs ``12345``, ``54321`` et ``hello !`` sont emballées " -"ensemble dans un tuple. L'opération inverse est aussi possible : ::" +"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un " +"*d'agrégation de n-uplet* (*tuple packing* en anglais) : les valeurs " +"``12345``, ``54321`` et ``hello !`` sont agrégées ensemble dans un n-uplet. " +"L'opération inverse est aussi possible ::" #: ../Doc/tutorial/datastructures.rst:430 msgid "" @@ -464,12 +466,12 @@ msgid "" "in the sequence. Note that multiple assignment is really just a combination " "of tuple packing and sequence unpacking." msgstr "" -"Ceci est appelé, de façon plus ou moins appropriée, un *déballage de " +"Ceci est appelé, de façon plus ou moins appropriée, un *dissociation de " "séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " -"séquence placée à droite de l'expression. Ce déballage requiert autant de " -"variables dans la partie gauche qu'il y a d'éléments dans la séquence. Notez " -"également que cette affectation multiple est juste une combinaison entre un " -"emballage de tuple et un déballage de séquence." +"séquence placée à droite de l'expression. Cette dissociation requiert autant " +"de variables dans la partie gauche qu'il y a d'éléments dans la séquence. " +"Notez également que cette affectation multiple est juste une combinaison " +"entre une agrégation de n-uplet et une dissociation de séquence." #: ../Doc/tutorial/datastructures.rst:440 msgid "Sets" @@ -498,12 +500,12 @@ msgid "" "section." msgstr "" "Des accolades ou la fonction :func:`set` peuvent être utilisés pour créer " -"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne " -"fonctionne pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." +"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne fonctionne " +"pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." #: ../Doc/tutorial/datastructures.rst:451 msgid "Here is a brief demonstration::" -msgstr "Voici une brève démonstration : ::" +msgstr "Voici une brève démonstration ::" #: ../Doc/tutorial/datastructures.rst:476 msgid "" @@ -511,7 +513,7 @@ msgid "" "are also supported::" msgstr "" "Tout comme pour les :ref:`compréhensions de listes `, il est " -"possible d'écrire des compréhensions d'ensembles : ::" +"possible d'écrire des compréhensions d'ensembles ::" #: ../Doc/tutorial/datastructures.rst:487 msgid "Dictionaries" @@ -532,15 +534,15 @@ msgid "" msgstr "" "Un autre type de donnée très utile, natif dans Python, est le *dictionnaire* " "(voir :ref:`typesmapping`). Ces dictionnaires sont parfois présents dans " -"d'autres langages sous le nom de \"mémoires associatives\" ou de \"tableaux " -"associatifs\". À la différence des séquences, qui sont indexées par des " +"d'autres langages sous le nom de « mémoires associatives » ou de « tableaux " +"associatifs ». À la différence des séquences, qui sont indexées par des " "nombres, les dictionnaires sont indexés par des *clés*, qui peuvent être de " -"n'importe quel type immuable ; les chaînes de caractères et les nombres " -"peuvent toujours être des clés. Des tuples peuvent être utilisés comme clés " -"s'ils ne contiennent que des chaînes, des nombres ou des tuples ; si un " -"tuple contient un objet muable, de façon directe ou indirecte, il ne peut " -"pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes comme " -"clés, car les listes peuvent être modifiées en place en utilisant des " +"n'importe quel type immuable ; les chaînes de caractères et les nombres " +"peuvent toujours être des clés. Des n-uplets peuvent être utilisés comme " +"clés s'ils ne contiennent que des chaînes, des nombres ou des n-uplets ; si " +"un n-uplet contient un objet muable, de façon directe ou indirecte, il ne " +"peut pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes " +"comme clés, car les listes peuvent être modifiées en place en utilisant des " "affectations par position, par tranches ou via des méthodes comme :meth:" "`append` ou :meth:`extend`." @@ -591,7 +593,7 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:517 msgid "Here is a small example using a dictionary::" -msgstr "Voici un petit exemple utilisant un dictionnaire : ::" +msgstr "Voici un petit exemple utilisant un dictionnaire ::" #: ../Doc/tutorial/datastructures.rst:538 msgid "" @@ -599,7 +601,7 @@ msgid "" "key-value pairs::" msgstr "" "Le constructeur :func:`dict` fabrique un dictionnaire directement à partir " -"d'une liste de paires clé-valeur stockées sous la forme de tuples : ::" +"d'une liste de paires clé-valeur stockées sous la forme de n-uplets ::" #: ../Doc/tutorial/datastructures.rst:544 msgid "" @@ -607,7 +609,7 @@ msgid "" "arbitrary key and value expressions::" msgstr "" "De plus, il est possible de créer des dictionnaires par compréhension depuis " -"un jeu de clef et valeurs : ::" +"un jeu de clef et valeurs ::" #: ../Doc/tutorial/datastructures.rst:550 msgid "" @@ -615,7 +617,7 @@ msgid "" "using keyword arguments::" msgstr "" "Lorsque les clés sont de simples chaînes de caractères, il est parfois plus " -"facile de spécifier les paires en utilisant des paramètres nommés : ::" +"facile de spécifier les paires en utilisant des paramètres nommés ::" #: ../Doc/tutorial/datastructures.rst:560 msgid "Looping Techniques" @@ -628,7 +630,7 @@ msgid "" msgstr "" "Lorsque vous faites une boucle sur un dictionnaire, les clés et leurs " "valeurs peuvent être récupérées en même temps en utilisant la méthode :meth:" -"`items` ::" +"`items` ::" #: ../Doc/tutorial/datastructures.rst:572 msgid "" @@ -637,7 +639,7 @@ msgid "" msgstr "" "Lorsque vous itérez sur une séquence, la position et la valeur " "correspondante peuvent être récupérées en même temps en utilisant la " -"fonction :func:`enumerate`. ::" +"fonction :func:`enumerate`. ::" #: ../Doc/tutorial/datastructures.rst:582 msgid "" @@ -645,7 +647,7 @@ msgid "" "paired with the :func:`zip` function. ::" msgstr "" "Pour faire des boucles sur deux séquences ou plus en même temps, les " -"éléments peuvent être associés par la fonction :func:`zip` ::" +"éléments peuvent être associés par la fonction :func:`zip` ::" #: ../Doc/tutorial/datastructures.rst:594 msgid "" @@ -654,16 +656,16 @@ msgid "" msgstr "" "Pour faire une boucle en sens inverse sur une séquence, commencez par " "spécifier la séquence dans son ordre normal, puis appliquez la fonction :" -"func:`reversed` ::" +"func:`reversed` ::" #: ../Doc/tutorial/datastructures.rst:606 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" -"Pour faire une boucle selon un certain classement sur une séquence, utilisez " -"la fonction :func:`sorted`, elle renvoie une nouvelle liste classée sans " -"altérer la source : ::" +"Pour parcourir les éléments d'une séquence de manière ordonnée, utilisez la " +"fonction :func:`sorted`, elle renvoie une nouvelle liste ordonnée sans " +"altérer la source ::" #: ../Doc/tutorial/datastructures.rst:618 msgid "" @@ -696,7 +698,7 @@ msgid "" 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`` " -"testent si deux objets sont vraiment le même objet ; ceci n'est important " +"testent si deux objets sont vraiment le même objet ; ceci n'est important " "que pour des objets muables comme des listes. Tous les opérateurs de " "comparaison ont la même priorité, qui est plus faible que celle des " "opérateurs numériques." @@ -707,7 +709,7 @@ msgid "" "is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" "Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste " -"si ``a`` est inférieur ou égal à ``b`` et si, de plus, ``b`` égale ``c``." +"si ``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``." #: ../Doc/tutorial/datastructures.rst:649 msgid "" @@ -721,7 +723,7 @@ msgstr "" "Les comparaisons peuvent être combinées en utilisant les opérateurs booléens " "``and`` et ``or``, le résultat d'une comparaison (ou de toute expression " "booléenne) pouvant être inversé avec ``not``. Ces opérateurs ont une " -"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " +"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " "``not`` a la priorité la plus élevée et ``or`` la plus faible, de telle " "sorte que ``A and not B or C`` est équivalent à ``(A and (not B)) or C``. " "Comme toujours, des parenthèses peuvent être utilisées pour exprimer " @@ -737,7 +739,7 @@ msgid "" "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " -"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " +"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " "l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " "``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " "l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " @@ -750,7 +752,7 @@ msgid "" "expression to a variable. For example, ::" msgstr "" "Il est possible d'affecter le résultat d'une comparaison ou d'une autre " -"expression booléenne à une variable. Par exemple : ::" +"expression booléenne à une variable. Par exemple ::" #: ../Doc/tutorial/datastructures.rst:671 msgid "" @@ -796,7 +798,7 @@ msgstr "" "une sous-séquence de l'autre, la séquence la plus courte est celle dont la " "valeur est inférieure. La comparaison lexicographique des chaînes de " "caractères utilise le code Unicode des caractères. Voici quelques exemples " -"de comparaisons entre séquences de même type : ::" +"de comparaisons entre séquences de même type ::" #: ../Doc/tutorial/datastructures.rst:702 msgid "" @@ -808,7 +810,7 @@ msgid "" msgstr "" "Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " "les objets ont des méthodes de comparaison appropriées. Par exemple, les " -"types numériques sont comparées via leur valeur numérique, donc 0 égale 0,0, " +"types numériques sont comparés via leur valeur numérique, donc 0 égale 0,0, " "etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " "l'interpréteur lève une exception :exc:`TypeError`." @@ -822,7 +824,7 @@ msgid "" "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" "D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " -"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." +"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." #: ../Doc/tutorial/datastructures.rst:714 msgid "" diff --git a/tutorial/errors.po b/tutorial/errors.po index e36cffa5b..32a3356fd 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Jusqu'ici, les messages d'erreurs ont seulement été mentionnés. Mais si vous " "avez essayé les exemples vous avez certainement vu plus que cela. En fait, " -"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " +"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " "et les *exceptions*." #: ../Doc/tutorial/errors.rst:15 @@ -43,7 +43,7 @@ msgid "" msgstr "" "Les erreurs de syntaxe, qui sont des erreurs d'analyse du code, sont peut-" "être celles que vous rencontrez le plus souvent lorsque vous êtes encore en " -"phase d'apprentissage de Python : ::" +"phase d'apprentissage de Python ::" #: ../Doc/tutorial/errors.rst:26 msgid "" @@ -54,7 +54,7 @@ msgid "" "colon (``':'``) is missing before it. File name and line number are printed " "so you know where to look in case the input came from a script." msgstr "" -"L'analyseur indique la ligne incriminée et affiche une petite 'flèche' " +"L'analyseur indique la ligne incriminée et affiche une petite « flèche » " "pointant vers le premier endroit de la ligne où l'erreur a été détectée. " "L'erreur est causée (ou, au moins, a été détectée comme telle) par le " "symbole placé *avant* la flèche. Dans cet exemple la flèche est sur la " @@ -77,10 +77,10 @@ msgid "" msgstr "" "Même si une instruction ou une expression est syntaxiquement correcte, elle " "peut générer une erreur lors de son exécution. Les erreurs détectées durant " -"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " +"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " "nous apprendrons bientôt comment les traiter dans vos programmes. La plupart " "des exceptions toutefois ne sont pas prises en charge par les programmes, ce " -"qui génère des messages d'erreurs comme celui-ci : ::" +"qui génère des messages d'erreurs comme celui-ci ::" #: ../Doc/tutorial/errors.rst:58 msgid "" @@ -95,13 +95,13 @@ msgid "" msgstr "" "La dernière ligne du message d'erreur indique ce qui s'est passé. Les " "exceptions peuvent être de différents types et ce type est indiqué dans le " -"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" +"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" "exc:`NameError` et :exc:`TypeError`. Le texte affiché comme type de " "l'exception est le nom de l'exception native qui a été déclenchée. Ceci est " "vrai pour toutes les exceptions natives mais n'est pas une obligation pour " "les exceptions définies par l'utilisateur (même si c'est une convention bien " "pratique). Les noms des exceptions standards sont des identifiants natifs " -"(pas des mots réservés)." +"(pas des mots-clef réservés)." #: ../Doc/tutorial/errors.rst:66 msgid "" @@ -118,11 +118,10 @@ msgid "" "a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"La partie précédente dans le message d'erreur indique le contexte dans " -"lequel s'est produite l'exception, sous la forme d'une trace de pile " -"d'exécution. En général, celle-ci contient les lignes du code source ; " -"toutefois, les lignes lues à partir de l'entrée standard ne sont pas " -"affichées." +"La partie précédente du message d'erreur indique le contexte dans lequel " +"s'est produite l'exception, sous la forme d'une trace de pile d'exécution. " +"En général, celle-ci contient les lignes du code source ; toutefois, les " +"lignes lues à partir de l'entrée standard ne sont pas affichées." #: ../Doc/tutorial/errors.rst:74 msgid "" @@ -150,7 +149,7 @@ msgstr "" "l'utilisateur d'interrompre le programme (en utilisant :kbd:`Control-C` ou " "un autre raccourci que le système accepte) ; notez qu'une interruption " "générée par l'utilisateur est signalée en levant l'exception :exc:" -"`KeyboardInterrupt`." +"`KeyboardInterrupt`. ::" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." @@ -162,7 +161,7 @@ msgid "" "keyword:`except` keywords) is executed." msgstr "" "premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" -"keyword:`try` et :keyword:`except`) est exécutée ;" +"keyword:`try` et :keyword:`except`) est exécutée." #: ../Doc/tutorial/errors.rst:101 msgid "" @@ -170,7 +169,7 @@ msgid "" "keyword:`try` statement is finished." msgstr "" "si aucune exception n'intervient, la clause ``except`` est sautée et " -"l'exécution de l'instruction :keyword:`try` est terminée ;" +"l'exécution de l'instruction :keyword:`try` est terminée." #: ../Doc/tutorial/errors.rst:104 msgid "" @@ -183,7 +182,7 @@ msgstr "" "reste de cette clause est sauté. Si le type d'exception levée correspond à " "un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " "correspondante est exécutée, puis l'exécution continue après l'instruction :" -"keyword:`try` ;" +"keyword:`try`." #: ../Doc/tutorial/errors.rst:109 msgid "" @@ -225,7 +224,7 @@ msgstr "" "exception si elle est de la même classe ou d'une de ses classes dérivées. " "Mais l'inverse n'est pas vrai, une clause ``except`` spécifiant une classe " "dérivée n'est pas compatible avec une classe de base. Par exemple, le code " -"suivant affiche B, C et D dans cet ordre : ::" +"suivant affiche B, C et D dans cet ordre ::" #: ../Doc/tutorial/errors.rst:147 msgid "" @@ -233,8 +232,8 @@ msgid "" "would have printed B, B, B --- the first matching except clause is triggered." msgstr "" "Notez que si les clauses ``except`` avaient été inversées (avec ``except B`` " -"en premier), il aurait affiché B, B, B --- la première clause ``except`` " -"correspondante étant déclenchée." +"en premier), il aurait affiché B, B, B — la première clause ``except`` qui " +"correspond est déclenchée." #: ../Doc/tutorial/errors.rst:150 msgid "" @@ -262,7 +261,7 @@ msgstr "" "*clause else* optionnelle qui, lorsqu'elle est présente, doit se placer " "après toutes les clauses ``except``. Elle est utile pour du code qui doit " "être exécuté lorsqu'aucune exception n'a été levée par la clause ``try``. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/tutorial/errors.rst:183 msgid "" @@ -320,7 +319,7 @@ msgstr "" "Les gestionnaires d'exceptions n'interceptent pas que les exceptions qui " "sont levées immédiatement dans leur clause ``try``, mais aussi celles qui " "sont levées au sein de fonctions appelées (parfois indirectement) dans la " -"clause ``try``. Par exemple : ::" +"clause ``try``. Par exemple ::" #: ../Doc/tutorial/errors.rst:237 msgid "Raising Exceptions" @@ -332,7 +331,7 @@ msgid "" "exception to occur. For example::" msgstr "" "L'instruction :keyword:`raise` permet au programmeur de déclencher une " -"exception spécifique. Par exemple : ::" +"exception spécifique. Par exemple ::" #: ../Doc/tutorial/errors.rst:247 msgid "" @@ -345,8 +344,7 @@ msgstr "" "Le seul argument à :keyword:`raise` indique l'exception à déclencher. Cela " "peut être soit une instance d'exception, soit une classe d'exception (une " "classe dérivée de :class:`Exception`). Si une classe est donnée, elle est " -"implicitement instanciée *via* l'appel de son constructeur, sans " -"argument : ::" +"implicitement instanciée *via* l'appel de son constructeur, sans argument ::" #: ../Doc/tutorial/errors.rst:254 msgid "" @@ -356,7 +354,7 @@ msgid "" msgstr "" "Si vous avez besoin de savoir si une exception a été levée mais que vous " "n'avez pas intention de la gérer, une forme plus simple de l'instruction :" -"keyword:`raise` permet de propager l'exception : ::" +"keyword:`raise` permet de propager l'exception ::" #: ../Doc/tutorial/errors.rst:273 msgid "User-defined Exceptions" @@ -391,7 +389,7 @@ msgstr "" "l'on crée un module qui peut déclencher plusieurs types d'erreurs distincts, " "une pratique courante est de créer une classe de base pour l'ensemble des " "exceptions définies dans ce module et de créer des sous-classes spécifiques " -"d'exceptions pour les différentes conditions d'erreurs : ::" +"d'exceptions pour les différentes conditions d'erreurs ::" #: ../Doc/tutorial/errors.rst:317 msgid "" @@ -424,7 +422,7 @@ msgid "" msgstr "" "L'instruction :keyword:`try` a une autre clause optionnelle qui est destinée " "à définir des actions de nettoyage devant être exécutées dans certaines " -"circonstances. Par exemple : ::" +"circonstances. Par exemple ::" #: ../Doc/tutorial/errors.rst:344 msgid "" @@ -486,8 +484,7 @@ msgstr "" "Certains objets définissent des actions de nettoyage standards qui doivent " "être exécutées lorsque l'objet n'est plus nécessaire, indépendamment du fait " "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 : ::" +"suivant, qui tente d'ouvrir un fichier et d'afficher son contenu à l'écran ::" #: ../Doc/tutorial/errors.rst:400 msgid "" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index ea1f9da9b..d4d6cabce 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" -msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" #: ../Doc/tutorial/floatingpoint.rst:14 msgid "" @@ -27,15 +27,14 @@ msgid "" "(binary) fractions. For example, the decimal fraction ::" msgstr "" "Les nombres à virgule flottante sont représentés, au niveau matériel, en " -"fractions de nombres binaires (base 2). Par exemple, la fraction " -"décimale : ::" +"fractions de nombres binaires (base 2). Par exemple, la fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:19 msgid "" "has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" msgstr "" "a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " -"binaire : ::" +"binaire ::" #: ../Doc/tutorial/floatingpoint.rst:23 msgid "" @@ -65,7 +64,7 @@ msgid "" "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" "Le problème est plus simple à aborder en base 10. Prenons par exemple, la " -"fraction 1/3. Vous pouvez l'approximer en une fraction décimale : ::" +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 msgid "or, better, ::" @@ -89,7 +88,7 @@ msgid "" msgstr "" "De la même manière, peu importe combien de décimales en base 2 vous " "utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " -"fraction binaire. En base 2, 1/10 est le nombre périodique suivant : ::" +"fraction binaire. En base 2, 1/10 est le nombre périodique suivant ::" #: ../Doc/tutorial/floatingpoint.rst:55 msgid "" @@ -119,7 +118,7 @@ msgstr "" "il est facile d'oublier que la valeur stockée est une approximation de la " "fraction décimale d'origine. Python n'affiche qu'une approximation décimale " "de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " -"décimale de l'approximation binaire stockée pour 0,1, il afficherait : ::" +"décimale de l'approximation binaire stockée pour 0,1, il afficherait ::" #: ../Doc/tutorial/floatingpoint.rst:71 msgid "" @@ -128,7 +127,7 @@ msgid "" msgstr "" "C'est bien plus de décimales que ce qu'attendent la plupart des " "utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " -"lisibilité : ::" +"lisibilité ::" #: ../Doc/tutorial/floatingpoint.rst:77 msgid "" @@ -200,7 +199,7 @@ msgid "" "simply rounding the *display* of the true machine value." msgstr "" "Il est important de comprendre que tout cela n'est, au sens propre, qu'une " -"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " "réellement dans la machine à *l'affichage*." #: ../Doc/tutorial/floatingpoint.rst:114 @@ -209,7 +208,7 @@ msgid "" "summing three values of 0.1 may not yield exactly 0.3, either::" msgstr "" "Une autre conséquence du fait que 0,1 n'est pas exactement stocké 1/10 est " -"que la somme de trois valeurs de 0,1 ne donne pas 0,3 non plus : ::" +"que la somme de trois valeurs de 0,1 ne donne pas 0,3 non plus ::" #: ../Doc/tutorial/floatingpoint.rst:120 msgid "" @@ -220,7 +219,7 @@ msgstr "" "Aussi, puisque 0,1 ne peut pas être stocké avec une représentation plus " "proche de sa valeur exacte 1/10, comme 0,3 qui ne peut pas être plus proche " "de sa valeur exacte 3/10, arrondir au préalable avec la fonction :func:" -"`round` n'aide en rien : ::" +"`round` n'aide en rien ::" #: ../Doc/tutorial/floatingpoint.rst:127 msgid "" @@ -230,7 +229,7 @@ msgid "" msgstr "" "Bien que les nombres ne peuvent se rapprocher plus de la valeur qu’on attend " "qu’ils aient, la fonction :func:`round` peut être utile à postériori pour " -"arrondir deux valeurs inexactes et pouvoir les comparer : ::" +"arrondir deux valeurs inexactes et pouvoir les comparer ::" #: ../Doc/tutorial/floatingpoint.rst:134 msgid "" @@ -257,7 +256,7 @@ msgid "" "error." msgstr "" "Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " -"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " "erreurs, en Python, dans les opérations de nombres à virgule flottante sont " "dues au matériel sous-jacent et, sur la plupart des machines, sont de " "l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " @@ -322,7 +321,7 @@ msgstr "" "Python fournit des outils qui peuvent être utiles dans les rares occasions " "où vous voulez réellement connaître la valeur exacte d'un nombre à virgule " "flottante. La méthode :meth:`float.as_integer_ratio` donne la valeur du " -"nombre sous forme de fraction : ::" +"nombre sous forme de fraction ::" #: ../Doc/tutorial/floatingpoint.rst:173 msgid "" @@ -330,7 +329,7 @@ msgid "" "value::" msgstr "" "Puisque le ratio est exact, il peut être utilisé pour recréer la valeur " -"originale sans perte : ::" +"originale sans perte ::" #: ../Doc/tutorial/floatingpoint.rst:179 msgid "" @@ -338,7 +337,7 @@ msgid "" "again giving the exact value stored by your computer::" msgstr "" "La méthode :meth:`float.hex` donne le nombre en hexadécimal (base 16), " -"donnant ici aussi la valeur exacte stockée par la machine : ::" +"donnant ici aussi la valeur exacte stockée par la machine ::" #: ../Doc/tutorial/floatingpoint.rst:185 msgid "" @@ -346,7 +345,7 @@ msgid "" "value exactly::" msgstr "" "Cette représentation hexadécimale petit être utilisée pour reconstruire, " -"sans approximation, le *float* : ::" +"sans approximation, le *float* ::" #: ../Doc/tutorial/floatingpoint.rst:191 msgid "" @@ -411,19 +410,19 @@ msgid "" "strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " "*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" msgstr "" -"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " "binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " "suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " -"virgule flottante et la plupart des plateformes utilisent un \"IEEE-754 " -"double précision\" pour représenter les *floats* de Python. Les \"IEEE-754 " -"double précision\" utilisent 53 bits de précision donc, à la lecture, " +"virgule flottante et la plupart des plateformes utilisent un « IEEE-754 " +"double précision » pour représenter les *floats* de Python. Les « IEEE-754 " +"double précision » utilisent 53 bits de précision donc, à la lecture, " "l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " "possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " -"bits. Pour réécrire : ::" +"bits. Pour réécrire ::" #: ../Doc/tutorial/floatingpoint.rst:229 msgid "as ::" -msgstr "en : ::" +msgstr "en ::" #: ../Doc/tutorial/floatingpoint.rst:233 msgid "" @@ -431,7 +430,7 @@ msgid "" "2**53``), the best value for *N* is 56::" msgstr "" "en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " -"2**53``), la meilleure valeur possible pour *N* est 56 : ::" +"2**53``), la meilleure valeur possible pour *N* est 56 ::" #: ../Doc/tutorial/floatingpoint.rst:239 msgid "" @@ -440,7 +439,7 @@ msgid "" msgstr "" "Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " "pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " -"arrondi : ::" +"arrondi ::" #: ../Doc/tutorial/floatingpoint.rst:246 msgid "" @@ -448,21 +447,21 @@ msgid "" "obtained by rounding up::" msgstr "" "Puisque la retenue est plus grande que la moitié de 10, la meilleure " -"approximation est obtenue en arrondissant par le haut : ::" +"approximation est obtenue en arrondissant par le haut ::" #: ../Doc/tutorial/floatingpoint.rst:252 msgid "" "Therefore the best possible approximation to 1/10 in 754 double precision " "is::" msgstr "" -"Par conséquent la meilleure approximation possible pour 1/10 en \"IEEE-754 " -"double précision\" est celle au-dessus de 2\\*\\*56, soit : ::" +"Par conséquent la meilleure approximation possible pour 1/10 en « IEEE-754 " +"double précision » est celle au-dessus de 2\\*\\*56, soit ::" #: ../Doc/tutorial/floatingpoint.rst:256 msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" -"Diviser le numérateur et le dénominateur par deux réduit la fraction à : ::" +"Diviser le numérateur et le dénominateur par deux réduit la fraction à ::" #: ../Doc/tutorial/floatingpoint.rst:260 msgid "" @@ -473,7 +472,7 @@ msgstr "" "Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " "réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " "haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " -"cas il ne vaut *exactement* 1/10 !" +"cas il ne vaut *exactement* 1/10 !" #: ../Doc/tutorial/floatingpoint.rst:264 msgid "" @@ -482,7 +481,7 @@ msgid "" msgstr "" "Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " "exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " -"virgule flottante double précision de l'\"IEEE-754\" : ::" +"virgule flottante double précision de l'« IEEE-754 » ::" #: ../Doc/tutorial/floatingpoint.rst:270 msgid "" @@ -490,7 +489,7 @@ msgid "" "decimal digits::" msgstr "" "Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " -"valeurs de ses 55 décimales de poids fort : ::" +"valeurs de ses 55 décimales de poids fort ::" #: ../Doc/tutorial/floatingpoint.rst:276 msgid "" @@ -503,12 +502,11 @@ msgstr "" "0,1000000000000000055511151231257827021181583404541015625. Au lieu " "d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " "versions de Python) arrondissent le résultat à la 17\\ :sup:`e` décimale " -"significative : ::" +"significative ::" #: ../Doc/tutorial/floatingpoint.rst:284 msgid "" "The :mod:`fractions` and :mod:`decimal` modules make these calculations " "easy::" msgstr "" -"Les modules :mod:`fractions` et :mod:`decimal` rendent simples ces " -"calculs : ::" +"Les modules :mod:`fractions` et :mod:`decimal` rendent simples ces calculs ::" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 464e39962..0132feb38 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -112,7 +112,7 @@ msgstr "" #: ../Doc/tutorial/inputoutput.rst:47 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" #: ../Doc/tutorial/inputoutput.rst:70 msgid "Here are two ways to write a table of squares and cubes::" @@ -157,13 +157,12 @@ msgid "" "the left with zeros. It understands about plus and minus signs::" msgstr "" "Il existe une autre méthode, :meth:`str.zfill`, qui comble une chaîne " -"numérique à gauche avec des zéros. Elle comprend les signes plus et " -"moins : ::" +"numérique à gauche avec des zéros. Elle comprend les signes plus et moins ::" #: ../Doc/tutorial/inputoutput.rst:125 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "" -"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci : ::" +"L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci ::" #: ../Doc/tutorial/inputoutput.rst:130 msgid "" @@ -183,12 +182,12 @@ msgid "" "are referred to by using the name of the argument. ::" msgstr "" "Si des arguments nommés sont utilisés dans la méthode :meth:`str.format`, " -"leurs valeurs sont utilisées en se basant sur le nom des arguments : ::" +"leurs valeurs sont utilisées en se basant sur le nom des arguments ::" #: ../Doc/tutorial/inputoutput.rst:147 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" -"Les arguments positionnés et nommés peuvent être combinés arbitrairement : ::" +"Les arguments positionnés et nommés peuvent être combinés arbitrairement ::" #: ../Doc/tutorial/inputoutput.rst:153 msgid "" @@ -229,7 +228,7 @@ msgstr "" "Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas " "découper, il est possible de référencer les variables à formater par leur " "nom plutôt que par leur position. Utilisez simplement un dictionnaire et la " -"notation entre crochets ``'[]'`` pour accéder aux clés : ::" +"notation entre crochets ``'[]'`` pour accéder aux clés ::" #: ../Doc/tutorial/inputoutput.rst:191 msgid "" @@ -269,7 +268,7 @@ msgstr "" "L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il " "interprète l'argument de gauche pratiquement comme une chaîne de formatage " "de la fonction :c:func:`sprintf` à appliquer à l'argument de droite, et il " -"renvoie la chaîne résultant de cette opération de formatage. Par exemple : ::" +"renvoie la chaîne résultant de cette opération de formatage. Par exemple ::" #: ../Doc/tutorial/inputoutput.rst:217 msgid "" @@ -444,7 +443,7 @@ msgid "" msgstr "" "Pour lire ligne à ligne, vous pouvez aussi boucler sur l'objet fichier. " "C'est plus efficace en terme de gestion mémoire, plus rapide et donne un " -"code plus simple : ::" +"code plus simple ::" #: ../Doc/tutorial/inputoutput.rst:340 msgid "" @@ -468,7 +467,7 @@ msgid "" "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" "Les autres types doivent être convertis, soit en une chaîne (en mode texte), " -"soit en objet *bytes* (en mode binaire) avant de les écrire : ::" +"soit en objet *bytes* (en mode binaire) avant de les écrire ::" #: ../Doc/tutorial/inputoutput.rst:357 msgid "" @@ -495,7 +494,7 @@ msgstr "" "de référence ; ce point de référence est déterminé par l'argument " "*a_partir_de* : 0 pour le début du fichier, 1 pour la position actuelle et 2 " "pour la fin du fichier. *a_partir_de* peut être omis et sa valeur par défaut " -"est 0 (Python utilise le début du fichier comme point de référence) : ::" +"est 0 (Python utilise le début du fichier comme point de référence) ::" #: ../Doc/tutorial/inputoutput.rst:380 msgid "" @@ -584,7 +583,7 @@ msgid "" "with a simple line of code::" msgstr "" "Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en " -"tapant simplement : ::" +"tapant simplement ::" #: ../Doc/tutorial/inputoutput.rst:427 msgid "" @@ -595,7 +594,7 @@ msgstr "" "Une variante de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " "sérialise simplement l'objet donné vers un :term:`fichier texte `. Donc si ``f`` est un :term:`fichier texte ` ouvert en " -"écriture, il est possible de faire : ::" +"écriture, il est possible de faire ::" #: ../Doc/tutorial/inputoutput.rst:433 msgid "" @@ -603,7 +602,7 @@ msgid "" "been opened for reading::" msgstr "" "Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` " -"ouvert en lecture : ::" +"ouvert en lecture ::" #: ../Doc/tutorial/inputoutput.rst:438 msgid "" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 9af4d7bed..90972fd23 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -54,7 +54,7 @@ msgid "" msgstr "" "La complétion de noms de variables et de modules est :ref:`automatiquement " "activée ` au démarrage de l'interpréteur. Ainsi, la " -"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " "s'effectue dans les noms d'instructions Python, les noms des variables " "locales et les noms de modules disponibles. Pour les expressions pointées " "telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " @@ -85,7 +85,7 @@ msgstr "" "(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " "complétion devrait utiliser la table de symboles de l'interpréteur. Une " "commande pour vérifier (ou même suggérer) les correspondances de " -"parenthèses, de guillemets..., serait également utile." +"parenthèses, de guillemets, etc., serait également utile." #: ../Doc/tutorial/interactive.rst:45 msgid "" @@ -96,7 +96,7 @@ msgid "" "interactive environment is bpython_." msgstr "" "Une alternative améliorée de l'interpréteur interactif est développée depuis " -"maintenant quelques temps : IPython_. Il fournit la complétion, " +"maintenant quelques temps : IPython_. Il fournit la complétion, " "l'exploration d'objets et une gestion avancée de l'historique. Il peut " "également être personnalisé en profondeur et embarqué dans d'autres " "applications. Un autre environnement interactif amélioré similaire est " diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index ef63c40d4..da633daf4 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -251,7 +251,7 @@ msgid "" msgstr "" "Pour annoncer un encodage différent de l'encodage par défaut, une ligne de " "commentaire particulière doit être ajoutée en tant que *première* ligne du " -"fichier. Sa syntaxe est la suivante : ::" +"fichier. Sa syntaxe est la suivante ::" #: ../Doc/tutorial/interpreter.rst:146 msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." @@ -263,7 +263,7 @@ msgid "" "line of your source code file should be::" msgstr "" "Par exemple, pour déclarer un encodage *Windows-1252*, la première ligne de " -"votre code source doit être : ::" +"votre code source doit être ::" #: ../Doc/tutorial/interpreter.rst:153 msgid "" @@ -273,8 +273,7 @@ msgid "" msgstr "" "Une exception à la règle *première ligne* est lorsque la première ligne est " "un :ref:`shebang UNIX `. Dans ce cas, la déclaration de " -"l'encodage doit être placée sur la deuxième ligne du fichier. Par " -"exemple : ::" +"l'encodage doit être placée sur la deuxième ligne du fichier. Par exemple ::" #: ../Doc/tutorial/interpreter.rst:161 msgid "Footnotes" diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 68847741c..4836a8f8e 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -31,11 +31,11 @@ msgid "" "type a blank line; this is used to end a multi-line command." msgstr "" "Dans les exemples qui suivent, les entrées et sorties se distinguent par la " -"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " +"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " "reproduire les exemples, vous devez taper tout ce qui est après l'invite, au " -"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " +"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " "les sorties de l'interpréteur. Notez qu'une invite secondaire affichée seule " -"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " +"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " "ceci est utilisé pour terminer une commande multi-lignes." #: ../Doc/tutorial/introduction.rst:14 @@ -60,7 +60,7 @@ msgstr "" #: ../Doc/tutorial/introduction.rst:22 msgid "Some examples::" -msgstr "Quelques exemples : ::" +msgstr "Quelques exemples ::" #: ../Doc/tutorial/introduction.rst:33 msgid "Using Python as a Calculator" @@ -86,11 +86,11 @@ msgid "" "languages (for example, Pascal or C); parentheses (``()``) can be used for " "grouping. For example::" msgstr "" -"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " +"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " "une expression et il vous affiche la valeur. La syntaxe des expressions est " -"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " -"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " -"être utilisées pour faire des regroupements. Par exemple : ::" +"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " +"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " +"être utilisées pour faire des regroupements. Par exemple ::" #: ../Doc/tutorial/introduction.rst:59 msgid "" @@ -98,7 +98,7 @@ msgid "" "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" "`float`. We will see more about numeric types later in the tutorial." msgstr "" -"Les nombre entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " +"Les nombres entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " "alors que les décimaux (comme ``5.0``, ``1.6``) sont de type :class:`float`. " "Vous trouvez plus de détails sur les types numériques plus loin dans ce " "tutoriel." @@ -112,7 +112,7 @@ msgstr "" "Les divisions (``/``) donnent toujours des :class:`float`. Utilisez " "l'opérateur ``//`` pour effectuer des divisions entières et donc obtenir un " "résultat entier. Pour obtenir le reste d'une division entière, utilisez " -"l'opérateur ``%`` : ::" +"l'opérateur ``%`` ::" #: ../Doc/tutorial/introduction.rst:77 msgid "" @@ -120,7 +120,7 @@ msgid "" "[#]_::" msgstr "" "En Python, il est possible de calculer des puissances avec l'opérateur " -"``**`` [#]_ : ::" +"``**`` [#]_ ::" #: ../Doc/tutorial/introduction.rst:84 msgid "" @@ -128,7 +128,7 @@ msgid "" "no result is displayed before the next interactive prompt::" msgstr "" "Le signe égal (``=``) est utilisé pour affecter une valeur à une variable. " -"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante : ::" +"Dans ce cas, aucun résultat n'est affiché avant l'invite suivante ::" #: ../Doc/tutorial/introduction.rst:92 msgid "" @@ -136,18 +136,18 @@ msgid "" "give you an error::" msgstr "" "Si une variable n'est pas \"définie\" (si aucune valeur ne lui a été " -"affectée), son utilisation produit une erreur : ::" +"affectée), son utilisation produit une erreur ::" #: ../Doc/tutorial/introduction.rst:100 msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" msgstr "" -"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " +"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " "le point *.* comme séparateur entre la partie entière et la partie décimale " -"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " +"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " "opérandes de types différents convertissent l'opérande de type entier en " -"type virgule flottante : ::" +"type virgule flottante ::" #: ../Doc/tutorial/introduction.rst:106 msgid "" @@ -157,7 +157,7 @@ msgid "" msgstr "" "En mode interactif, la dernière expression affichée est affectée à la " "variable ``_``. Ainsi, lorsque vous utilisez Python comme calculatrice, cela " -"vous permet de continuer des calculs facilement, par exemple : ::" +"vous permet de continuer des calculs facilement, par exemple ::" #: ../Doc/tutorial/introduction.rst:119 msgid "" @@ -198,7 +198,7 @@ msgstr "" "qui peuvent être exprimées de différentes manières. Elles peuvent être " "écrites entre guillemets simples (``'...'``) ou entre guillemets (``\"..." "\"``) sans distinction [#]_. ``\\`` peut être utilisé pour protéger un " -"guillemet : ::" +"guillemet ::" #: ../Doc/tutorial/introduction.rst:153 msgid "" @@ -220,7 +220,7 @@ msgstr "" "elle est affichée entre guillemets simples. La fonction :func:`print` " "affiche les chaînes de manière plus lisible, en retirant les guillemets et " "en affichant les caractères spéciaux qui étaient protégés par une barre " -"oblique inverse : ::" +"oblique inverse ::" #: ../Doc/tutorial/introduction.rst:173 msgid "" @@ -230,7 +230,7 @@ msgid "" msgstr "" "Si vous ne voulez pas que les caractères précédés d'un ``\\`` soient " "interprétés comme étant spéciaux, utilisez les *chaînes brutes* (*raw " -"strings* en anglais) en préfixant la chaîne d'un ``r`` : ::" +"strings* en anglais) en préfixant la chaîne d'un ``r`` ::" #: ../Doc/tutorial/introduction.rst:183 msgid "" @@ -240,10 +240,10 @@ msgid "" "end of the line. The following example::" msgstr "" "Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. Utilisez " -"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" +"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" "\"\"\"...\"\"\"``. Les retours à la ligne sont automatiquement inclus, mais " "on peut l'empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " -"suivant : ::" +"suivant ::" #: ../Doc/tutorial/introduction.rst:194 msgid "" @@ -251,7 +251,7 @@ msgid "" "included):" msgstr "" "produit l'affichage suivant (notez que le premier retour à la ligne n'est " -"pas inclus) :" +"pas inclus) :" #: ../Doc/tutorial/introduction.rst:202 msgid "" @@ -266,7 +266,7 @@ msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" -"Plusieurs chaînes de caractères, écrites littéralement (c'est à dire entre " +"Plusieurs chaînes de caractères, écrites littéralement (c'est-à-dire entre " "guillemets), côte à côte, sont automatiquement concaténées. ::" #: ../Doc/tutorial/introduction.rst:215 @@ -274,21 +274,21 @@ msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "Cette fonctionnalité est surtout intéressante pour couper des chaînes trop " -"longues : ::" +"longues ::" #: ../Doc/tutorial/introduction.rst:222 msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" "Cela ne fonctionne cependant qu'avec les chaînes littérales, pas avec les " -"variables ni les expressions : ::" +"variables ni les expressions ::" #: ../Doc/tutorial/introduction.rst:232 msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Pour concaténer des variables, ou des variables avec des chaînes littérales, " -"utilisez l'opérateur ``+`` : ::" +"utilisez l'opérateur ``+`` ::" #: ../Doc/tutorial/introduction.rst:237 msgid "" @@ -306,7 +306,7 @@ msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" "Les indices peuvent également être négatifs, on compte alors en partant de " -"la droite. Par exemple : ::" +"la droite. Par exemple ::" #: ../Doc/tutorial/introduction.rst:256 msgid "Note that since -0 is the same as 0, negative indices start from -1." @@ -323,7 +323,7 @@ msgstr "" "En plus d'accéder à un élément par son indice, il est aussi possible de " "\"trancher\" (*slice* en anglais) une chaîne. Accéder à une chaîne par un " "indice permet d'obtenir un caractère, *trancher* permet d'obtenir une sous-" -"chaîne : ::" +"chaîne ::" #: ../Doc/tutorial/introduction.rst:266 msgid "" @@ -331,16 +331,16 @@ msgid "" "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" "Notez que le début est toujours inclus et la fin toujours exclue. Cela " -"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` : ::" +"assure que ``s[:i] + s[i:]`` est toujours égal à ``s`` ::" #: ../Doc/tutorial/introduction.rst:274 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " +"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " "indice vaut zéro par défaut (i.e. lorsqu'il est omis), le deuxième " -"correspond par défaut à la taille de la chaîne de caractères : ::" +"correspond par défaut à la taille de la chaîne de caractères ::" #: ../Doc/tutorial/introduction.rst:284 msgid "" @@ -352,7 +352,7 @@ msgstr "" "Pour mémoriser la façon dont les tranches fonctionnent, vous pouvez imaginer " "que les indices pointent *entre* les caractères, le côté gauche du premier " "caractère ayant la position 0. Le côté droit du dernier caractère d'une " -"chaîne de *n* caractères a alors pour indice *n*. Par exemple : ::" +"chaîne de *n* caractères a alors pour indice *n*. Par exemple ::" #: ../Doc/tutorial/introduction.rst:295 msgid "" @@ -361,8 +361,8 @@ msgid "" "from *i* to *j* consists of all characters between the edges labeled *i* and " "*j*, respectively." msgstr "" -"La première ligne de nombres donne la position des indices 0...6 dans la " -"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " +"La première ligne de nombres donne la position des indices 0…6 dans la " +"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " "de *i* à *j* est constituée de tous les caractères situés entre les bords " "libellés *i* et *j*, respectivement." @@ -378,7 +378,7 @@ msgstr "" #: ../Doc/tutorial/introduction.rst:304 msgid "Attempting to use an index that is too large will result in an error::" -msgstr "Utiliser un indice trop grand produit une erreur : ::" +msgstr "Utiliser un indice trop grand produit une erreur ::" #: ../Doc/tutorial/introduction.rst:311 msgid "" @@ -386,7 +386,7 @@ msgid "" "slicing::" msgstr "" "Cependant, les indices hors bornes sont gérés silencieusement lorsqu'ils " -"sont utilisés dans des tranches : ::" +"sont utilisés dans des tranches ::" #: ../Doc/tutorial/introduction.rst:319 msgid "" @@ -394,18 +394,18 @@ msgid "" "assigning to an indexed position in the string results in an error::" msgstr "" "Les chaînes de caractères, en Python, ne peuvent pas être modifiées. On dit " -"qu'elles sont :term:`immuable`\\s. Affecter une nouvelle valeur à un indice " -"dans une chaîne produit une erreur : ::" +"qu'elles sont :term:`immuables `. Affecter une nouvelle valeur à " +"un indice dans une chaîne produit une erreur ::" #: ../Doc/tutorial/introduction.rst:329 msgid "If you need a different string, you should create a new one::" msgstr "" "Si vous avez besoin d'une chaîne différente, vous devez en créer une " -"nouvelle : ::" +"nouvelle ::" #: ../Doc/tutorial/introduction.rst:336 msgid "The built-in function :func:`len` returns the length of a string::" -msgstr "La fonction native :func:`len` renvoie la longueur d'une chaîne : ::" +msgstr "La fonction native :func:`len` renvoie la longueur d'une chaîne ::" #: ../Doc/tutorial/introduction.rst:347 msgid ":ref:`textseq`" @@ -416,7 +416,7 @@ msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"Les chaînes de caractères sont des exemples de *types séquences* ; elles " +"Les chaînes de caractères sont des exemples de *types séquences* ; elles " "acceptent donc les opérations classiques prises en charge par ces types." #: ../Doc/tutorial/introduction.rst:351 @@ -472,8 +472,8 @@ msgid "" "items of different types, but usually the items all have the same type. ::" msgstr "" "Python connaît différents types de données *combinés*, utilisés pour " -"regrouper plusieurs valeurs. La plus souple est la *liste*, qui peut être " -"écrite comme une suite, placée entre crochets, de valeurs (éléments) séparés " +"regrouper plusieurs valeurs. Le plus souple est la *liste*, qui peut être " +"écrit comme une suite, placée entre crochets, de valeurs (éléments) séparées " "par des virgules. Les éléments d'une liste ne sont pas obligatoirement tous " "du même type, bien qu'à l'usage ce soit souvent le cas. ::" @@ -493,20 +493,20 @@ msgid "" msgstr "" "Toutes les opérations par tranches renvoient une nouvelle liste contenant " "les éléments demandés. Cela signifie que l'opération suivante renvoie une " -"copie (superficielle) de la liste : ::" +"copie (superficielle) de la liste ::" #: ../Doc/tutorial/introduction.rst:394 msgid "Lists also support operations like concatenation::" -msgstr "Les listes gèrent aussi les opérations comme les concaténations : ::" +msgstr "Les listes gèrent aussi les opérations comme les concaténations ::" #: ../Doc/tutorial/introduction.rst:399 msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" -"Mais à la différence des chaînes qui sont :term:`immuable`\\s, les listes " -"sont :term:`muables `\\s : il est possible de modifier leur " -"contenu : ::" +"Mais à la différence des chaînes qui sont :term:`immuables `, les " +"listes sont :term:`muables ` : il est possible de modifier leur " +"contenu ::" #: ../Doc/tutorial/introduction.rst:409 msgid "" @@ -515,7 +515,7 @@ msgid "" msgstr "" "Il est aussi possible d'ajouter de nouveaux éléments à la fin d'une liste " "avec la méthode :meth:`~list.append` (les méthodes sont abordées plus " -"tard) : ::" +"tard) ::" #: ../Doc/tutorial/introduction.rst:417 msgid "" @@ -523,11 +523,11 @@ msgid "" "the list or clear it entirely::" msgstr "" "Des affectations de tranches sont également possibles, ce qui peut même " -"modifier la taille de la liste ou la vider complètement : ::" +"modifier la taille de la liste ou la vider complètement ::" #: ../Doc/tutorial/introduction.rst:436 msgid "The built-in function :func:`len` also applies to lists::" -msgstr "La primitive :func:`len` s'applique aussi aux listes : ::" +msgstr "La primitive :func:`len` s'applique aussi aux listes ::" #: ../Doc/tutorial/introduction.rst:442 msgid "" @@ -535,7 +535,7 @@ msgid "" "example::" msgstr "" "Il est possible d'imbriquer des listes (i.e. créer des listes contenant " -"d'autres listes). Par exemple : ::" +"d'autres listes). Par exemple ::" #: ../Doc/tutorial/introduction.rst:458 msgid "First Steps Towards Programming" @@ -563,7 +563,7 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" -"La première ligne contient une *affectation multiple* : les variables ``a`` " +"La première ligne contient une *affectation multiple* : les variables ``a`` " "et ``b`` se voient affecter simultanément leurs nouvelles valeurs 0 et 1. " "Cette méthode est encore utilisée à la dernière ligne, pour démontrer que " "les expressions sur la partie droite de l'affectation sont toutes évaluées " @@ -602,11 +602,11 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" -"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " +"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " "utilisée par Python pour regrouper des instructions. En mode interactif, " "vous devez saisir une tabulation ou des espaces pour chaque ligne indentée. " "En pratique, vous aurez intérêt à utiliser un éditeur de texte pour les " -"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " +"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " "disposent d'une fonction d'auto-indentation. Lorsqu'une expression composée " "est saisie en mode interactif, elle doit être suivie d'une ligne vide pour " "indiquer qu'elle est terminée (car l'analyseur ne peut pas deviner que vous " @@ -622,13 +622,13 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" -"La fonction :func:`print` écrit les valeur des paramètres qui lui sont " +"La fonction :func:`print` écrit les valeurs des paramètres qui lui sont " "fournis. Ce n'est pas la même chose que d'écrire l'expression que vous " "voulez afficher (comme nous l'avons fait dans l'exemple de la calculatrice), " "en raison de la manière qu'a ``print`` de gérer les paramètres multiples, " "les nombres décimaux et les chaînes. Les chaînes sont affichées sans " "apostrophe et une espace est insérée entre les éléments de telle sorte que " -"vous pouvez facilement formater les choses, comme ceci : ::" +"vous pouvez facilement formater les choses, comme ceci ::" #: ../Doc/tutorial/introduction.rst:515 msgid "" @@ -636,7 +636,7 @@ msgid "" "output, or end the output with a different string::" msgstr "" "Le paramètre nommé *end* peut servir pour enlever le retour à la ligne ou " -"pour terminer la ligne par une autre chaîne : ::" +"pour terminer la ligne par une autre chaîne ::" #: ../Doc/tutorial/introduction.rst:527 msgid "Footnotes" @@ -650,7 +650,7 @@ msgid "" msgstr "" "Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` est interprété ``-(3 " "** 2)`` et vaut donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez des " -"parenthèses : ``(-3) ** 2``." +"parenthèses : ``(-3) ** 2``." #: ../Doc/tutorial/introduction.rst:532 msgid "" diff --git a/tutorial/modules.po b/tutorial/modules.po index c24ec55a0..4eccc8c87 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -69,14 +69,13 @@ msgstr "" "nom de fichier est le nom du module suffixé de :file:`.py`. À l'intérieur " "d'un module, son propre nom est accessible par la variable ``__name__``. Par " "exemple, prenez votre éditeur favori et créez un fichier :file:`fibo.py` " -"dans le répertoire courant qui contient : ::" +"dans le répertoire courant qui contient ::" #: ../Doc/tutorial/modules.rst:45 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" -msgstr "" -"Maintenant, ouvrez un interpréteur et importez le module en tapant : ::" +msgstr "Maintenant, ouvrez un interpréteur et importez le module en tapant ::" #: ../Doc/tutorial/modules.rst:50 msgid "" @@ -86,14 +85,14 @@ msgid "" msgstr "" "Cela n'importe pas les noms des fonctions définies dans ``fibo`` directement " "dans la table des symboles courants mais y ajoute simplement ``fibo``. Vous " -"pouvez donc appeler les fonctions *via* le nom du module : ::" +"pouvez donc appeler les fonctions *via* le nom du module ::" #: ../Doc/tutorial/modules.rst:61 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" "Si vous avez l'intention d'utiliser souvent une fonction, il est possible de " -"lui assigner un nom local : ::" +"lui assigner un nom local ::" #: ../Doc/tutorial/modules.rst:71 msgid "More on Modules" @@ -127,7 +126,7 @@ msgstr "" "sans se soucier de collisions de noms avec des variables globales définies " "par l'utilisateur du module. Cependant, si vous savez ce que vous faites, " "vous pouvez modifier une variable globale d'un module avec la même notation " -"que pour accéder aux fonctions : ``nommodule.nomelement``." +"que pour accéder aux fonctions : ``nommodule.nomelement``." #: ../Doc/tutorial/modules.rst:85 msgid "" @@ -149,7 +148,7 @@ msgid "" msgstr "" "Il existe une variante de l'instruction :keyword:`import` qui importe les " "noms d'un module directement dans la table de symboles du module qui " -"l'importe, par exemple : ::" +"l'importe, par exemple ::" #: ../Doc/tutorial/modules.rst:97 msgid "" @@ -164,7 +163,7 @@ msgstr "" msgid "There is even a variant to import all names that a module defines::" msgstr "" "Il existe même une variante permettant d'importer tous les noms qu'un module " -"définit : ::" +"définit ::" #: ../Doc/tutorial/modules.rst:106 msgid "" @@ -219,9 +218,9 @@ msgid "" msgstr "" "pour des raisons de performance, chaque module n'est importé qu'une fois par " "session. Si vous changez le code d'un module vous devez donc redémarrer " -"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " +"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " "seul module que vous voulez tester en mode interactif, vous pouvez le ré-" -"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " "``import importlib; importlib.reload(nommodule)``." #: ../Doc/tutorial/modules.rst:146 @@ -230,7 +229,7 @@ msgstr "Exécuter des modules comme des scripts" #: ../Doc/tutorial/modules.rst:148 msgid "When you run a Python module with ::" -msgstr "Lorsque vous exécutez un module Python avec : ::" +msgstr "Lorsque vous exécutez un module Python avec ::" #: ../Doc/tutorial/modules.rst:152 msgid "" @@ -240,7 +239,7 @@ msgid "" msgstr "" "le code du module est exécuté comme si vous l'aviez importé mais son " "``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " -"module : ::" +"module ::" #: ../Doc/tutorial/modules.rst:160 msgid "" @@ -254,7 +253,7 @@ msgstr "" #: ../Doc/tutorial/modules.rst:169 msgid "If the module is imported, the code is not run::" -msgstr "Si le fichier est importé, le code n'est pas exécuté : ::" +msgstr "Si le fichier est importé, le code n'est pas exécuté ::" #: ../Doc/tutorial/modules.rst:174 msgid "" @@ -281,7 +280,7 @@ msgstr "" "recherché parmi les modules natifs puis, s'il n'est pas trouvé, " "l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de " "dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." -"path` est initialisée à : ::" +"path` est initialisée à ::" #: ../Doc/tutorial/modules.rst:190 msgid "" @@ -289,7 +288,7 @@ msgid "" "file is specified)." msgstr "" "le dossier contenant le script courant (ou le dossier courant si aucun " -"script n'est donné) ;" +"script n'est donné) ;" #: ../Doc/tutorial/modules.rst:192 msgid "" @@ -297,7 +296,7 @@ msgid "" "shell variable :envvar:`PATH`)." msgstr "" ":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " -"la variable shell :envvar:`PATH`) ;" +"la variable shell :envvar:`PATH`) ;" #: ../Doc/tutorial/modules.rst:194 msgid "The installation-dependent default." @@ -375,16 +374,16 @@ msgid "" "distribution, the compiled module must be in the source directory, and there " "must not be a source module." msgstr "" -"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " +"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " "est lorsque le module est donné par la ligne de commande (cas où le module " -"est toujours recompilé, sans même cacher sa version compilée) ; le second " +"est toujours recompilé, sans même cacher sa version compilée) ; le second " "cas est lorsque le module n'a pas de source. Pour gérer un module sans " "source (où seule la version compilée est fournie), le module compilé doit se " "trouver dans le dossier source et sa source ne doit pas être présente." #: ../Doc/tutorial/modules.rst:234 msgid "Some tips for experts:" -msgstr "Astuces pour les experts :" +msgstr "Astuces pour les experts :" #: ../Doc/tutorial/modules.rst:236 msgid "" @@ -403,7 +402,7 @@ msgstr "" "besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous " "savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-" "`` et sont généralement plus petits. Les versions futures de Python " -"pourraient changer les effets de l'optimisation ;" +"pourraient changer les effets de l'optimisation ;" #: ../Doc/tutorial/modules.rst:244 msgid "" @@ -412,7 +411,7 @@ msgid "" "pyc`` files is the speed with which they are loaded." msgstr "" "un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " -"il est juste chargé plus vite ;" +"il est juste chargé plus vite ;" #: ../Doc/tutorial/modules.rst:248 msgid "" @@ -420,7 +419,7 @@ msgid "" "directory." msgstr "" "le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " -"modules d'un dossier ;" +"modules d'un dossier ;" #: ../Doc/tutorial/modules.rst:251 msgid "" @@ -458,7 +457,7 @@ msgstr "" "mod:`winreg` n'est proposé que sur les systèmes Windows. Un module mérite " "une attention particulière, le module :mod:`sys`, qui est présent dans tous " "les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " -"définissent les chaînes d'invites principales et secondaires : ::" +"définissent les chaînes d'invites principales et secondaires ::" #: ../Doc/tutorial/modules.rst:285 msgid "" @@ -481,7 +480,7 @@ msgstr "" "chemin par défaut pris de la variable d'environnement :envvar:`PYTHONPATH` " "ou d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas " "définie. ``sys.path`` est modifiable en utilisant les opérations habituelles " -"des listes : ::" +"des listes ::" #: ../Doc/tutorial/modules.rst:300 msgid "The :func:`dir` Function" @@ -494,18 +493,18 @@ msgid "" msgstr "" "La fonction interne :func:`dir` est utilisée pour trouver quels noms sont " "définis par un module. Elle donne une liste de chaînes classées par ordre " -"lexicographique : ::" +"lexicographique ::" #: ../Doc/tutorial/modules.rst:327 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" -msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis : ::" +msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis ::" #: ../Doc/tutorial/modules.rst:335 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" -"Notez qu'elle liste tous les types de noms : les variables, fonctions, " +"Notez qu'elle liste tous les types de noms : les variables, fonctions, " "modules, etc." #: ../Doc/tutorial/modules.rst:339 @@ -516,7 +515,7 @@ msgid "" msgstr "" ":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. " "Si vous voulez les lister, elles sont définies dans le module :mod:" -"`builtins` : ::" +"`builtins` ::" #: ../Doc/tutorial/modules.rst:378 msgid "Packages" @@ -532,7 +531,7 @@ msgid "" "authors of multi-module packages like NumPy or Pillow from having to worry " "about each other's module names." msgstr "" -"Les paquets sont un moyen de structurer les espaces de noms des modules " +"Les paquets sont un moyen de structurer les espaces de nommage des modules " "Python en utilisant une notation \"pointée\". Par exemple, le nom de module :" "mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même manière " "que l'utilisation des modules évite aux auteurs de différents modules " @@ -562,11 +561,11 @@ msgstr "" "file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un " "nombre croissant de modules pour gérer la conversion entre tous ces formats. " "Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces " -"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " +"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " "artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire " "une myriade de modules permettant d'effectuer ces opérations. Voici une " "structure possible pour votre paquet (exprimée sous la forme d'une " -"arborescence de fichiers :" +"arborescence de fichiers :" #: ../Doc/tutorial/modules.rst:425 msgid "" @@ -600,7 +599,7 @@ msgid "" "example::" msgstr "" "Les utilisateurs d'un module peuvent importer ses modules individuellement, " -"par exemple : ::" +"par exemple ::" #: ../Doc/tutorial/modules.rst:440 msgid "" @@ -612,7 +611,7 @@ msgstr "" #: ../Doc/tutorial/modules.rst:445 msgid "An alternative way of importing the submodule is::" -msgstr "Une autre manière d'importer des sous-modules est : ::" +msgstr "Une autre manière d'importer des sous-modules est ::" #: ../Doc/tutorial/modules.rst:449 msgid "" @@ -620,7 +619,7 @@ msgid "" "its package prefix, so it can be used as follows::" msgstr "" "charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à " -"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci : ::" +"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci ::" #: ../Doc/tutorial/modules.rst:454 msgid "" @@ -628,7 +627,7 @@ msgid "" "directly::" msgstr "" "Une autre méthode consiste à importer la fonction ou la variable désirée " -"directement : ::" +"directement ::" #: ../Doc/tutorial/modules.rst:458 msgid "" @@ -636,7 +635,7 @@ msgid "" "func:`echofilter` directly available::" msgstr "" "Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:" -"`echofilter` est disponible directement : ::" +"`echofilter` est disponible directement ::" #: ../Doc/tutorial/modules.rst:463 msgid "" @@ -679,7 +678,7 @@ msgid "" "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" -"Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " +"Qu'arrive-t-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " "Idéalement, on pourrait espérer que Python aille chercher tous les sous-" "modules du paquet sur le système de fichiers et qu'ils seraient tous " "importés. Cela pourrait être long et importer certains sous-modules pourrait " @@ -707,7 +706,7 @@ msgstr "" "cette liste à jour lorsque de nouvelles versions du paquet sont publiées. Un " "auteur de paquet peut aussi décider de ne pas autoriser d'importer ``*`` " "pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` " -"peut contenir le code suivant : ::" +"peut contenir le code suivant ::" #: ../Doc/tutorial/modules.rst:501 msgid "" @@ -731,13 +730,13 @@ msgid "" msgstr "" "Si ``__all__`` n'est pas définie, l'instruction ``from sound.effects import " "*`` n'importe *pas* tous les sous-modules du paquet :mod:`sound.effects` " -"dans l'espace de noms courant mais s'assure seulement que le paquet :mod:" +"dans l'espace de nommage courant mais s'assure seulement que le paquet :mod:" "`sound.effects` a été importé (i.e. que tout le code du fichier :file:" "`__init__.py` a été exécuté) et importe ensuite les noms définis dans le " "paquet. Cela inclut tous les noms définis (et sous-modules chargés " "explicitement) par :file:`__init__.py`. Sont aussi inclus tous les sous-" "modules du paquet ayant été chargés explicitement par une instruction :" -"keyword:`import`. Typiquement : ::" +"keyword:`import`. Typiquement ::" #: ../Doc/tutorial/modules.rst:517 msgid "" @@ -747,7 +746,7 @@ msgid "" "when ``__all__`` is defined.)" msgstr "" "Dans cet exemple, les modules :mod:`echo` et :mod:`surround` sont importés " -"dans l'espace de noms courant lorsque ``from...import`` est exécuté parce " +"dans l'espace de nommage courant lorsque ``from...import`` est exécuté parce " "qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne " "aussi lorsque ``__all__`` est définie)." @@ -787,10 +786,10 @@ msgid "" "package, it can use ``from sound.effects import echo``." msgstr "" "Lorsque les paquets sont organisés en sous-paquets (comme le paquet :mod:" -"`sound` par exemple), vous pouvez utiliser des imports absolus pour cibler " -"des paquets voisins. Par exemple, si le module :mod:`sound.filters.vocoder` " -"a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il peut " -"utiliser ``from sound.effects import echo``." +"`sound` par exemple), vous pouvez utiliser des importations absolues pour " +"cibler des paquets voisins. Par exemple, si le module :mod:`sound.filters." +"vocoder` a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il " +"peut utiliser ``from sound.effects import echo``." #: ../Doc/tutorial/modules.rst:541 msgid "" @@ -799,10 +798,10 @@ msgid "" "current and parent packages involved in the relative import. From the :mod:" "`surround` module for example, you might use::" msgstr "" -"Il est aussi possible d'écrire des imports relatifs de la forme ``from " -"module import name``. Ces imports relatifs sont préfixés par des points pour " -"indiquer leur origine (paquet courant ou parent). Depuis le module :mod:" -"`surround`, par exemple vous pouvez écrire : ::" +"Il est aussi possible d'écrire des importations relatives de la forme ``from " +"module import name``. Ces importations relatives sont préfixées par des " +"points pour indiquer leur origine (paquet courant ou parent). Depuis le " +"module :mod:`surround`, par exemple vous pouvez écrire ::" #: ../Doc/tutorial/modules.rst:550 msgid "" @@ -811,10 +810,10 @@ msgid "" "intended for use as the main module of a Python application must always use " "absolute imports." msgstr "" -"Notez que les imports relatifs se fient au nom du module actuel. Puisque le " -"nom du module principal est toujours ``\"__main__\"``, les modules utilisés " -"par le module principal d'une application ne peuvent être importés que par " -"des imports absolus." +"Notez que les importations relatives se fient au nom du module actuel. " +"Puisque le nom du module principal est toujours ``\"__main__\"``, les " +"modules utilisés par le module principal d'une application ne peuvent être " +"importés que par des importations absolues." #: ../Doc/tutorial/modules.rst:556 msgid "Packages in Multiple Directories" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 5676cb476..df9354b96 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -27,7 +27,7 @@ msgid "" "operating system::" msgstr "" "Le module :mod:`os` propose des dizaines de fonctions pour interagir avec le " -"système d'exploitation : ::" +"système d'exploitation ::" #: ../Doc/tutorial/stdlib.rst:23 msgid "" @@ -45,7 +45,7 @@ msgid "" "interactive aids for working with large modules like :mod:`os`::" msgstr "" "Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " -"vous travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` ::" #: ../Doc/tutorial/stdlib.rst:38 msgid "" @@ -53,7 +53,7 @@ msgid "" "provides a higher level interface that is easier to use::" msgstr "" "Pour la gestion des fichiers et dossiers, le module :mod:`shutil` expose une " -"interface plus abstraite et plus facile à utiliser : ::" +"interface plus abstraite et plus facile à utiliser ::" #: ../Doc/tutorial/stdlib.rst:51 msgid "File Wildcards" @@ -65,7 +65,7 @@ msgid "" "directory wildcard searches::" msgstr "" "Le module :mod:`glob` fournit une fonction pour construire des listes de " -"fichiers à partir de motifs : ::" +"fichiers à partir de motifs ::" #: ../Doc/tutorial/stdlib.rst:64 msgid "Command Line Arguments" @@ -82,7 +82,7 @@ msgstr "" "paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " "variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " "exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " -"two three`` depuis la ligne de commande : ::" +"two three`` depuis la ligne de commande ::" #: ../Doc/tutorial/stdlib.rst:75 msgid "" @@ -107,7 +107,7 @@ msgid "" msgstr "" "Le module :mod:`sys` a aussi des attributs pour *stdin*, *stdout* et " "*stderr*. Ce dernier est utile pour émettre des messages d'avertissement ou " -"d'erreur qui restent visibles même si *stdout* est redirigé : ::" +"d'erreur qui restent visibles même si *stdout* est redirigé ::" #: ../Doc/tutorial/stdlib.rst:92 msgid "The most direct way to terminate a script is to use ``sys.exit()``." @@ -127,8 +127,7 @@ msgstr "" "Le module :mod:`re` fournit des outils basés sur les expressions " "rationnelles permettant des opérations complexes sur les chaînes. C'est une " "solution optimisée, utilisant une syntaxe concise, pour rechercher des " -"motifs complexes ou effectuer des remplacements complexes dans les " -"chaînes : ::" +"motifs complexes ou effectuer des remplacements complexes dans les chaînes ::" #: ../Doc/tutorial/stdlib.rst:110 msgid "" @@ -136,8 +135,7 @@ msgid "" "because they are easier to read and debug::" msgstr "" "Lorsque les opérations sont simples, il est préférable d'utiliser les " -"méthodes des chaînes. Elles sont plus lisibles et plus faciles à " -"déboguer : ::" +"méthodes des chaînes. Elles sont plus lisibles et plus faciles à déboguer ::" #: ../Doc/tutorial/stdlib.rst:120 msgid "Mathematics" @@ -149,13 +147,12 @@ msgid "" "for floating point math::" msgstr "" "Le module :mod:`math` donne accès aux fonctions sur les nombres à virgule " -"flottante (*float* en anglais) de la bibliothèque C : ::" +"flottante (*float* en anglais) de la bibliothèque C ::" #: ../Doc/tutorial/stdlib.rst:131 msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" -"Le module :mod:`random` offre des outils pour faire des tirages " -"aléatoires : ::" +"Le module :mod:`random` offre des outils pour faire des tirages aléatoires ::" #: ../Doc/tutorial/stdlib.rst:143 msgid "" @@ -163,7 +160,7 @@ msgid "" "mean, median, variance, etc.) of numeric data::" msgstr "" "Le module :mod:`statistics` permet de calculer des valeurs statistiques " -"basiques (moyenne, médiane, variance, ...) : ::" +"basiques (moyenne, médiane, variance…) ::" #: ../Doc/tutorial/stdlib.rst:155 msgid "" @@ -186,12 +183,13 @@ msgstr "" "Il existe beaucoup de modules permettant d'accéder à internet et gérer les " "protocoles réseaux. Les deux plus simples sont :mod:`urllib.request` qui " "permet de récupérer des données à partir d'une URL et :mod:`smtplib` pour " -"envoyer des courriers électroniques : ::" +"envoyer des courriers électroniques ::" #: ../Doc/tutorial/stdlib.rst:186 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -"Notez que le deuxième exemple a besoin d'un serveur mail tournant localement." +"(Notez que le deuxième exemple a besoin d'un serveur mail tournant " +"localement.)" #: ../Doc/tutorial/stdlib.rst:192 msgid "Dates and Times" @@ -210,7 +208,7 @@ msgstr "" "dates et d'heures soit possible, la priorité de l'implémentation est mise " "sur l'extraction efficace des attributs pour le formatage et la " "manipulation. Le module gère aussi les objets dépendant des fuseaux " -"horaires : ::" +"horaires ::" #: ../Doc/tutorial/stdlib.rst:218 msgid "Data Compression" @@ -249,7 +247,7 @@ msgstr "" "Par exemple, pour échanger deux variables, il peut être tentant d'utiliser " "l'empaquetage et le dépaquetage de tuples plutôt que la méthode " "traditionnelle. Le module :mod:`timeit` montre rapidement le léger gain de " -"performance obtenu : ::" +"performance obtenu ::" #: ../Doc/tutorial/stdlib.rst:256 msgid "" @@ -271,7 +269,7 @@ msgid "" "function as it is developed and to run those tests frequently during the " "development process." msgstr "" -"Une approche possible pour développer des application de très bonne qualité " +"Une approche possible pour développer des applications de très bonne qualité " "est d'écrire des tests pour chaque fonction au fur et à mesure de son " "développement, puis d'exécuter ces tests fréquemment lors du processus de " "développement." @@ -288,7 +286,7 @@ msgstr "" "Le module :mod:`doctest` cherche des tests dans les chaînes de " "documentation. Un test ressemble à un simple copier-coller d'un appel et son " "résultat depuis le mode interactif. Cela améliore la documentation en " -"fournissant des exemples tout en prouvant qu'ils sont justes : ::" +"fournissant des exemples tout en prouvant qu'ils sont justes ::" #: ../Doc/tutorial/stdlib.rst:288 msgid "" @@ -298,7 +296,7 @@ msgid "" msgstr "" "Le module :mod:`unittest` requiert plus d'efforts que le module :mod:" "`doctest` mais il permet de construire un jeu de tests plus complet que l'on " -"fait évoluer dans un fichier séparé : ::" +"fait évoluer dans un fichier séparé ::" #: ../Doc/tutorial/stdlib.rst:310 msgid "Batteries Included" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index d402249f8..75bb04eb7 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -40,7 +40,7 @@ msgid "" msgstr "" "Le module :mod:`reprlib` est une variante de la fonction :func:`repr`, " "spécialisé dans l'affichage concis de conteneurs volumineux ou fortement " -"imbriqués : ::" +"imbriqués ::" #: ../Doc/tutorial/stdlib2.rst:23 msgid "" @@ -53,7 +53,7 @@ msgstr "" "objets, aussi bien natifs que ceux définis par l'utilisateur, de manière à " "être lisible par l'interpréteur. Lorsque le résultat fait plus d'une ligne, " "il est séparé sur plusieurs lignes et est indenté pour rendre la structure " -"plus visible : ::" +"plus visible ::" #: ../Doc/tutorial/stdlib2.rst:39 msgid "" @@ -61,7 +61,7 @@ msgid "" "width::" msgstr "" "Le module :mod:`textwrap` formate des paragraphes de texte pour tenir sur un " -"écran d'une largeur donnée : ::" +"écran d'une largeur donnée ::" #: ../Doc/tutorial/stdlib2.rst:53 msgid "" @@ -72,11 +72,11 @@ msgstr "" "Le module :mod:`locale` utilise une base de données des formats spécifiques " "à chaque région pour les dates, nombres, etc. L'attribut ``grouping`` de la " "fonction de formatage permet de formater directement des nombres avec un " -"séparateur : ::" +"séparateur ::" #: ../Doc/tutorial/stdlib2.rst:72 msgid "Templating" -msgstr "Gabarits (Templates)" +msgstr "Gabarits (*templates* en anglais)" #: ../Doc/tutorial/stdlib2.rst:74 msgid "" @@ -85,7 +85,7 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" -"Le module :mod:`string` contient une classe polyvalente : :class:`~string." +"Le module :mod:`string` contient une classe polyvalente : :class:`~string." "Template`. Elle permet d'écrire des gabarits (*templates* en anglais) avec " "une syntaxe simple, dans le but d'être utilisable par des non-développeurs. " "Ainsi, vos utilisateurs peuvent personnaliser leur application sans la " @@ -103,7 +103,7 @@ msgstr "" "Python valide (caractères alphanumériques et tirets-bas). Entourer le " "marqueur d'accolades permet de lui coller d'autres caractères " "alphanumériques sans intercaler une espace. Écrire ``$$`` produit un simple " -"``$`` : ::" +"``$`` ::" #: ../Doc/tutorial/stdlib2.rst:88 msgid "" @@ -118,7 +118,7 @@ msgstr "" "ni sous forme d'un paramètre nommé. Dans certains cas, lorsque la donnée à " "appliquer peut n'être fournie que partiellement par l'utilisateur, la " "méthode :meth:`~string.Template.safe_substitute` est plus appropriée car " -"elle laisse tels quels les marqueurs manquants : ::" +"elle laisse tels quels les marqueurs manquants ::" #: ../Doc/tutorial/stdlib2.rst:103 msgid "" @@ -130,7 +130,7 @@ msgstr "" "Les classes filles de ``Template`` peuvent définir leur propre délimiteur. " "Typiquement, un script de renommage de photos par lots peut choisir le " "symbole pourcent comme marqueur pour les champs tels que la date actuelle, " -"le numéro de l'image ou son format : ::" +"le numéro de l'image ou son format ::" #: ../Doc/tutorial/stdlib2.rst:125 msgid "" @@ -140,7 +140,7 @@ msgid "" msgstr "" "Une autre utilisation des gabarits consiste à séparer la logique métier des " "détails spécifiques à chaque format de sortie. Il est ainsi possible de " -"générer des gabarits spécifiques pour les fichiers XML, texte, HTML ..." +"générer des gabarits spécifiques pour les fichiers XML, texte, HTML…" #: ../Doc/tutorial/stdlib2.rst:133 msgid "Working with Binary Data Record Layouts" @@ -157,11 +157,11 @@ msgid "" msgstr "" "Le module :mod:`struct` expose les fonctions :func:`~struct.pack` et :func:" "`~struct.unpack` permettant de travailler avec des données binaires. " -"L'exemple suivant montre comment parcourir une entête de fichier ZIP sans " +"L'exemple suivant montre comment parcourir un entête de fichier ZIP sans " "recourir au module :mod:`zipfile`. Les marqueurs ``\"H\"`` et ``\"I\"`` " "représentent des nombres entiers non signés, stockés respectivement sur deux " "et quatre octets. Le ``\"<\"`` indique qu'ils ont une taille standard et " -"utilisent la convention petit-boutiste : ::" +"utilisent la convention petit-boutiste ::" #: ../Doc/tutorial/stdlib2.rst:166 msgid "Multi-threading" @@ -190,7 +190,7 @@ msgid "" msgstr "" "Le code suivant donne un exemple d'utilisation du module :mod:`threading` " "exécutant des tâches en arrière-plan pendant que le programme principal " -"continue de s'exécuter : ::" +"continue de s'exécuter ::" #: ../Doc/tutorial/stdlib2.rst:197 msgid "" @@ -237,11 +237,11 @@ msgid "" msgstr "" "Le module :mod:`logging` est un système de journalisation complet. Dans son " "utilisation la plus élémentaire, les messages sont simplement envoyés dans " -"un fichier ou sur ``sys.stderr`` : ::" +"un fichier ou sur ``sys.stderr`` ::" #: ../Doc/tutorial/stdlib2.rst:225 msgid "This produces the following output:" -msgstr "Cela produit l'affichage suivant :" +msgstr "Cela produit l'affichage suivant :" #: ../Doc/tutorial/stdlib2.rst:233 msgid "" @@ -254,11 +254,11 @@ msgid "" msgstr "" "Par défaut, les messages d'information et de débogage sont ignorés, les " "autres sont envoyés vers la sortie standard. Il est aussi possible d'envoyer " -"les messages par courriel, datagrammes, sur des sockets ou vers un serveur " -"HTTP. Des nouveaux filtres permettent d'utiliser des sorties différentes en " -"fonction de la priorité du message : :const:`~logging.DEBUG`, :const:" -"`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging.ERROR` et :" -"const:`~logging.CRITICAL`." +"les messages par courriel, datagrammes, en utilisant des connecteurs réseau " +"ou vers un serveur HTTP. Des nouveaux filtres permettent d'utiliser des " +"sorties différentes en fonction de la priorité du message : :const:`~logging." +"DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging." +"ERROR` et :const:`~logging.CRITICAL`." #: ../Doc/tutorial/stdlib2.rst:240 msgid "" @@ -304,7 +304,7 @@ msgstr "" "une référence. Lorsqu'un objet n'est pas utilisé, il est automatiquement " "supprimé du tableau des références faibles et une fonction de rappel " "(*callback* en anglais) est appelée. Un exemple typique est le cache " -"d'objets coûteux à créer : ::" +"d'objets coûteux à créer ::" #: ../Doc/tutorial/stdlib2.rst:289 msgid "Tools for Working with Lists" @@ -332,7 +332,7 @@ msgstr "" "permettant de stocker que des listes homogènes mais d'une manière plus " "compacte. L'exemple suivant montre une liste de nombres stockés chacun sur " "deux octets non signés (marqueur ``\"H\"``) plutôt que d'utiliser 16 octets " -"comme l'aurait fait une liste classique : ::" +"comme l'aurait fait une liste classique ::" #: ../Doc/tutorial/stdlib2.rst:308 msgid "" @@ -346,7 +346,7 @@ msgstr "" "ou l'extraction des éléments par la gauche et plus lente pour accéder aux " "éléments du milieu. Ces objets sont particulièrement adaptés pour construire " "des queues ou des algorithmes de parcours d'arbres en largeur (ou BFS, pour " -"*Breadth First Search* en anglais) : ::" +"*Breadth First Search* en anglais) ::" #: ../Doc/tutorial/stdlib2.rst:329 msgid "" @@ -356,7 +356,7 @@ msgid "" msgstr "" "En plus de fournir des implémentations de listes alternatives, la " "bibliothèque fournit des outils tels que :mod:`bisect`, un module contenant " -"des fonctions de manipulation de listes triées : ::" +"des fonctions de manipulation de listes triées ::" #: ../Doc/tutorial/stdlib2.rst:339 msgid "" @@ -369,7 +369,7 @@ msgstr "" "partir de simples listes. La valeur la plus faible est toujours à la " "première position (indice 0). C'est utile dans les cas où l'application " "accède souvent à l'élément le plus petit mais sans vouloir classer " -"entièrement la liste : ::" +"entièrement la liste ::" #: ../Doc/tutorial/stdlib2.rst:355 msgid "Decimal Floating Point Arithmetic" @@ -381,10 +381,10 @@ msgid "" "decimal floating point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" -"Le module :mod:`decimal` expose la classe :class:`~decimal.Decimal` : elle " +"Le module :mod:`decimal` exporte la classe :class:`~decimal.Decimal` : elle " "est spécialisée dans le calcul de nombres décimaux représentés en virgule " "flottante. Par rapport à la classe native :class:`float`, elle est " -"particulièrement utile pour :" +"particulièrement utile pour :" #: ../Doc/tutorial/stdlib2.rst:361 msgid "" @@ -422,10 +422,10 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" -"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " +"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " "résultat différent en nombre à virgule flottante binaire et décimale. La " "différence devient significative lorsqu'on arrondit le résultat au centime " -"près : ::" +"près ::" #: ../Doc/tutorial/stdlib2.rst:379 msgid "" @@ -451,7 +451,7 @@ msgid "" msgstr "" "La représentation exacte de la classe :class:`~decimal.Decimal` lui permet " "de faire des calculs de modulo ou des tests d'égalité qui ne seraient pas " -"possibles avec une représentation à virgule flottante binaire : ::" +"possibles avec une représentation à virgule flottante binaire ::" #: ../Doc/tutorial/stdlib2.rst:399 msgid "" @@ -459,4 +459,4 @@ msgid "" "needed::" msgstr "" "Le module :mod:`decimal` permet de faire des calculs avec autant de " -"précision que nécessaire : ::" +"précision que nécessaire ::" diff --git a/tutorial/venv.po b/tutorial/venv.po index d71715340..0846c157a 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -92,7 +92,7 @@ msgid "" "system, you can select a specific Python version by running ``python3`` or " "whichever version you want." msgstr "" -"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" +"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" "mod:`venv`. :mod:`venv` installe en général la version de Python la plus " "récente dont vous disposez. Si plusieurs versions de Python sont sur votre " "système, vous pouvez choisir une version particulière en exécutant ``python3." @@ -106,7 +106,7 @@ msgid "" msgstr "" "Pour créer un environnement virtuel, décidez d'un dossier où vous voulez le " "placer et exécutez le module :mod:`venv` comme un script avec le chemin du " -"dossier : ::" +"dossier ::" #: ../Doc/tutorial/venv.rst:49 msgid "" @@ -124,11 +124,11 @@ msgstr "Une fois l'environnement virtuel créé, vous pouvez l'activer." #: ../Doc/tutorial/venv.rst:55 msgid "On Windows, run::" -msgstr "Sur Windows, lancez : ::" +msgstr "Sur Windows, lancez ::" #: ../Doc/tutorial/venv.rst:59 msgid "On Unix or MacOS, run::" -msgstr "Sur Unix et MacOS, lancez : ::" +msgstr "Sur Unix et MacOS, lancez ::" #: ../Doc/tutorial/venv.rst:63 msgid "" @@ -149,9 +149,9 @@ msgid "" msgstr "" "Activer l'environnement virtuel change le prompt de votre ligne de commande " "pour afficher le nom de l'environnement virtuel que vous utilisez. Cela " -"modifie aussi l'environnement afin, lorsque vous tapez``python``, d'exécuter " -"la version spécifique de Python installée dans l'environnement. Par " -"exemple : ::" +"modifie aussi l'environnement afin, lorsque vous tapez ``python``, " +"d'exécuter la version spécifique de Python installée dans l'environnement. " +"Par exemple ::" #: ../Doc/tutorial/venv.rst:87 msgid "Managing Packages with pip" @@ -177,7 +177,7 @@ msgid "" "\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete " "documentation for ``pip``.)" msgstr "" -"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " +"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " "``freeze``, etc. Consultez le guide :ref:`installing-index` pour une " "documentation exhaustive sur ``pip``." @@ -186,8 +186,7 @@ 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 : ::" +"Vous pouvez installer la dernière version d'un paquet en indiquant son nom ::" #: ../Doc/tutorial/venv.rst:120 msgid "" @@ -195,7 +194,7 @@ msgid "" "name followed by ``==`` and the version number:" 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 : ::" +"du paquet suivi de ``==`` et du numéro de version souhaitée ::" #: ../Doc/tutorial/venv.rst:131 msgid "" @@ -207,7 +206,7 @@ msgstr "" "Si vous relancez cette commande, ``pip`` remarque que la version demandée " "est déjà installée et ne fait rien. Vous pouvez fournir un numéro de version " "différent pour récupérer cette version ou lancer ``pip install --upgrade`` " -"pour mettre à jour le paquet à la dernière version : ::" +"pour mettre à jour le paquet à la dernière version ::" #: ../Doc/tutorial/venv.rst:146 msgid "" @@ -226,8 +225,7 @@ 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 : ::" +"``pip list`` liste tous les paquets installés dans l'environnement virtuel ::" #: ../Doc/tutorial/venv.rst:178 msgid "" @@ -237,7 +235,7 @@ msgid "" msgstr "" "``pip freeze`` produit une liste similaire des paquets installés mais " "l'affichage adopte un format que ``pip install`` peut lire. La convention " -"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" +"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" #: ../Doc/tutorial/venv.rst:190 msgid "" @@ -248,7 +246,7 @@ msgstr "" "Le fichier ``requirements.txt`` peut alors être ajouté dans un système de " "gestion de versions comme faisant partie de votre application. Les " "utilisateurs peuvent alors installer tous les paquets nécessaires à " -"l'application avec ``install -r`` :" +"l'application avec ``install -r`` :" #: ../Doc/tutorial/venv.rst:207 msgid "" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 3d5ab5a8e..df305a7b7 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "La lecture de ce tutoriel a probablement renforcé votre intérêt pour Python " "et vous devez être impatient de l'utiliser pour résoudre des vrais " -"problèmes. Où aller pour en apprendre plus ?" +"problèmes. Où aller pour en apprendre plus ?" #: ../Doc/tutorial/whatnow.rst:11 msgid "" @@ -37,11 +37,11 @@ msgid "" "in the set are:" msgstr "" "Ce tutoriel fait partie de la documentation de Python, et la documentation " -"de Python est vaste : ::" +"de Python est vaste ::" #: ../Doc/tutorial/whatnow.rst:14 msgid ":ref:`library-index`:" -msgstr ":ref:`library-index`:" +msgstr ":ref:`library-index` :" #: ../Doc/tutorial/whatnow.rst:16 msgid "" @@ -127,7 +127,7 @@ msgid "" "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" -"https://code.activestate.com/recipes/langs/python/: \"The Python Cookbook\" " +"https://code.activestate.com/recipes/langs/python/ : \"The Python Cookbook\" " "est un recueil assez imposant d'exemples de code, de modules et de scripts. " "Les contributions les plus remarquables y sont regroupées dans le livre " "\"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3)." @@ -166,7 +166,7 @@ msgid "" msgstr "" "Pour poser des questions ou remonter des problèmes liés à Python, vous " "pouvez écrire sur le forum :newsgroup:`comp.lang.python` ou les envoyer à la " -"liste de diffusion à python-list@python.org. Le forum et la liste de " +"liste de diffusion . Le forum et la liste de " "diffusion sont liées, un message publié sur l'un sera automatiquement " "transféré sur l'autre. Des centaines de messages y sont publiés chaque jour, " "posant (ou répondant à) des questions, suggérant de nouvelles " diff --git a/using/cmdline.po b/using/cmdline.po index a86f408ce..6a6cdefab 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -184,11 +184,11 @@ msgid "" "passed to the interpreter as the script argument." msgstr "" "Les noms de paquets sont aussi autorisés (ainsi que les paquets-espace de " -"noms, *namespace packages* en anglais). Quand un nom de paquet est donné à " -"la place d'un simple module, l'interpréteur exécute ``.__main__`` comme " -"module principal. Ce comportement est délibérément identique au traitement " -"d'un dossier ou d'un fichier zip donné en argument à l'interpréteur comme " -"script." +"nommage, *namespace packages* en anglais). Quand un nom de paquet est donné " +"à la place d'un simple module, l'interpréteur exécute ``.__main__`` " +"comme module principal. Ce comportement est délibérément identique au " +"traitement d'un dossier ou d'un fichier zip donné en argument à " +"l'interpréteur comme script." #: ../Doc/using/cmdline.rst:93 msgid "" @@ -197,8 +197,8 @@ msgid "" "still be used for precompiled modules, even if the original source file is " "not available." msgstr "" -"cette option ne peut pas être utilisée avec les modules intégrés et les " -"modules d'extension écrits en C, étant donné qu'il ne possèdent pas de " +"Cette option ne peut pas être utilisée avec les modules natifs et les " +"modules d'extension écrits en C, étant donné qu'ils ne possèdent pas de " "fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " "les modules pré-compilés, même si le fichier source original n'est pas " "disponible." @@ -242,7 +242,7 @@ msgstr "Fournir le nom d'un paquet pour exécuter un sous-module ``__main__``." #: ../Doc/using/cmdline.rst:119 msgid "namespace packages are also supported" -msgstr "Les paquets-espaces de noms sont supportés." +msgstr "les paquets-espaces de nommage sont aussi gérés" #: ../Doc/using/cmdline.rst:125 msgid "" @@ -326,7 +326,7 @@ msgstr ":ref:`tut-invoking`" #: ../Doc/using/cmdline.rst:164 msgid "Automatic enabling of tab-completion and history editing." msgstr "" -"activation automatique de la complétion par tabulation et édition de " +"Activation automatique de la complétion par tabulation et édition de " "l'historique." #: ../Doc/using/cmdline.rst:169 @@ -350,7 +350,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:194 msgid "The ``-VV`` option." -msgstr "option ``-VV``." +msgstr "L'option ``-VV``." #: ../Doc/using/cmdline.rst:200 msgid "Miscellaneous options" @@ -376,8 +376,8 @@ msgid "" "If given, Python won't try to write ``.pyc`` files on the import of source " "modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." msgstr "" -"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc``` ou ``." -"pyo`` à l'importation des modules source. Voir aussi :envvar:" +"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc`` ou ``.pyo`` " +"à l'importation des modules sources. Voir aussi :envvar:" "`PYTHONDONTWRITEBYTECODE`." #: ../Doc/using/cmdline.rst:219 @@ -447,7 +447,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:258 ../Doc/using/cmdline.rst:268 msgid "Modify ``.pyc`` filenames according to :pep:`488`." -msgstr "modifie les noms de fichiers ``.pyc`` suivant la :pep:`488`." +msgstr "Modifie les noms de fichiers ``.pyc`` suivant la :pep:`488`." #: ../Doc/using/cmdline.rst:264 msgid "" @@ -494,11 +494,11 @@ msgid "" "performance of a dict construction, O(n^2) complexity. See http://www.ocert." "org/advisories/ocert-2011-003.html for details." msgstr "" -"La randomisation des empreintes a pour objectif de se protéger contre les " +"L'imprévisibilité des empreintes a pour objectif de se protéger contre les " "dénis de service qui utiliseraient des valeurs d'entrée judicieusement " "choisies afin de forcer la construction des dictionnaires dans le pire cas, " -"c'est-à-dire avec une complexité en O(n^2). Voir http://www.ocert.org/" -"advisories/ocert-2011-003.html pour obtenir les détails." +"c'est-à-dire avec une complexité en O(n\\ :sup:`2`). Voir http://www.ocert." +"org/advisories/ocert-2011-003.html pour obtenir les détails." #: ../Doc/using/cmdline.rst:295 msgid "" @@ -519,7 +519,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:308 ../Doc/using/cmdline.rst:599 #: ../Doc/using/cmdline.rst:611 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." +msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur" #: ../Doc/using/cmdline.rst:313 msgid "" @@ -562,7 +562,7 @@ msgstr "" "l'emplacement (nom du fichier ou module natif) à partir duquel il est " "chargé. Lorsque l'option est doublée (:option:`!-vv`), affiche un message " "pour chaque fichier vérifié lors de la recherche du module. Fournit aussi " -"des informations sur le nettoyage du module à la fin. Voir aussi :envvar:" +"des informations sur le nettoyage des modules à la fin. Voir aussi :envvar:" "`PYTHONVERBOSE`." #: ../Doc/using/cmdline.rst:341 @@ -788,15 +788,15 @@ msgstr "L'option :option:`-X` a été ajoutée." #: ../Doc/using/cmdline.rst:432 msgid "The ``-X faulthandler`` option." -msgstr "option ``-X faulthandler``." +msgstr "L'option ``-X faulthandler``." #: ../Doc/using/cmdline.rst:435 msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." -msgstr "options ``-X showrefcount`` et ``-X tracemalloc`` ." +msgstr "Les options ``-X showrefcount`` et ``-X tracemalloc`` ." #: ../Doc/using/cmdline.rst:438 msgid "The ``-X showalloccount`` option." -msgstr "option ``-X showalloccount``." +msgstr "L'option ``-X showalloccount``." #: ../Doc/using/cmdline.rst:443 msgid "Options you shouldn't use" @@ -817,10 +817,10 @@ msgid "" "command-line switches override environmental variables where there is a " "conflict." msgstr "" -"Ces variables d'environnement modifient le comportement de Python. Elles " -"sont analysées avant les options de la ligne de commande, autres que *-E* ou " -"*-I*. Il est d'usage que les options de la ligne de commande prennent le pas " -"sur les variables d'environnement en cas de conflit." +"Les variables d'environnement suivantes modifient le comportement de Python. " +"Elles sont analysées avant les options de la ligne de commande, autres que *-" +"E* ou *-I*. Il est d'usage que les options de la ligne de commande prennent " +"le pas sur les variables d'environnement en cas de conflit." #: ../Doc/using/cmdline.rst:464 msgid "" @@ -845,7 +845,7 @@ msgstr "" "Quand :envvar:`PYTHONHOME` est défini à un simple répertoire, sa valeur " "remplace à la fois :file:`{préfixe}` et :file:`{préfixe_exec}`. Pour " "spécifier des valeurs différentes à ces variables, définissez :envvar:" -"`PYTHONHOME` à :file:`{prefix}:{exec_prefix}`." +"`PYTHONHOME` à :file:`{préfixe}:{préfixe_exec}`." #: ../Doc/using/cmdline.rst:477 msgid "" @@ -856,9 +856,9 @@ msgid "" msgstr "" "Augmente le chemin de recherche par défaut des fichiers de modules. Le " "format est le même que pour :envvar:`PATH` du shell : un ou plusieurs " -"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, deux " -"points sous Unix et point-virgule sous Windows). Les répertoires qui " -"n'existent pas sont ignorés silencieusement." +"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, le " +"caractère deux-points sous Unix et point-virgule sous Windows). Les " +"répertoires qui n'existent pas sont ignorés silencieusement." #: ../Doc/using/cmdline.rst:482 msgid "" @@ -906,11 +906,11 @@ msgid "" msgstr "" "S'il s'agit d'un nom de fichier accessible en lecture, les commandes Python " "de ce fichier sont exécutées avant que la première invite ne soit affichée " -"en mode interactif. Le fichier est exécuté dans le même espace de noms que " -"les commandes interactives, de manière à ce que les objets définis ou " +"en mode interactif. Le fichier est exécuté dans le même espace de nommage " +"que les commandes interactives, de manière à ce que les objets définis ou " "importés puissent être utilisés sans qualificatif dans la session " "interactive. Vous pouvez aussi changer les invites :data:`sys.ps1` et :data:" -"`sys.ps2` ainsi que la fonction automatique (*hook* en anglais) :data:`sys." +"`sys.ps2` ainsi que le point d'entrée (*hook* en anglais) :data:`sys." "__interactivehook__` dans ce fichier." #: ../Doc/using/cmdline.rst:508 @@ -938,7 +938,7 @@ msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." msgstr "" -"Si elle est définie à une chaîne non vide, C'est équivalent à spécifier " +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " "l'option :option:`-i`." #: ../Doc/using/cmdline.rst:525 @@ -1002,7 +1002,7 @@ msgid "" msgstr "" "Si :envvar:`PYTHONHASHSEED` est définie à une valeur entière, elle est " "utilisée comme valeur de salage pour générer les empreintes des types " -"utilisant la randomisation du hachage." +"utilisant l'imprévisibilité du hachage." #: ../Doc/using/cmdline.rst:564 msgid "" @@ -1019,8 +1019,8 @@ msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" -"Le nombre entier doit être écrit en base 10 et compris entre 0 et " -"4 294 967 295. Spécifier la valeur 0 désactive la randomisation des " +"Le nombre entier doit être écrit en base 10 et être compris entre 0 et " +"4 294 967 295. Spécifier la valeur 0 désactive l'imprévisibilité des " "empreintes." #: ../Doc/using/cmdline.rst:576 @@ -1047,7 +1047,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:584 msgid "The ``encodingname`` part is now optional." -msgstr "la partie ``nom_encodage`` est maintenant optionnelle." +msgstr "La partie ``nom_encodage`` est maintenant optionnelle." #: ../Doc/using/cmdline.rst:587 msgid "" @@ -1067,7 +1067,7 @@ msgid "" "` to :data:`sys.path`." msgstr "" "Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " -"utilisateur ` à :data:`sys.path`." +"propre à l'utilisateur ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:604 msgid "" @@ -1077,9 +1077,10 @@ msgid "" "for ``python setup.py install --user``." msgstr "" "Définit le répertoire :data:`base utilisateur `. Celui-ci " -"est utilisé pour déterminer le chemin du répertoire utilisateur :data:`site-" -"packages ` et :ref:`Installation alternative : le schéma " -"user ` pour ``python setup.py install --user``." +"est utilisé pour déterminer le chemin du :data:`répertoire site-packages " +"propre à l'utilisateur ` et des :ref:`schémas d'installation " +"de Distutils ` pour ``python setup.py install --" +"user``." #: ../Doc/using/cmdline.rst:616 msgid "" @@ -1088,7 +1089,7 @@ msgid "" "X." msgstr "" "Si cette variable d'environnement est définie, ``sys.argv[0]`` est définie à " -"la même valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " +"cette valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " "que sur Mac OS X." #: ../Doc/using/cmdline.rst:622 @@ -1140,8 +1141,8 @@ msgstr "" #: ../Doc/using/cmdline.rst:658 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" -"Définit l'allocateur mémoire de Python ou installe des fonctions " -"automatiques de débogage." +"Définit l'allocateur mémoire de Python ou installe des points d'entrée " +"(*hooks* en anglais) de débogage." #: ../Doc/using/cmdline.rst:660 msgid "Set the family of memory allocators used by Python:" @@ -1170,7 +1171,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:669 msgid "Install debug hooks:" -msgstr "Installe des fonctions automatiques de débogage :" +msgstr "Installe des points d'entrée de débogage :" #: ../Doc/using/cmdline.rst:671 msgid "``debug``: install debug hooks on top of the default memory allocator" diff --git a/using/mac.po b/using/mac.po index 0288d5591..e686f4416 100644 --- a/using/mac.po +++ b/using/mac.po @@ -38,7 +38,7 @@ msgstr "" "Python sur un Macintosh exécutant Mac OS X est en principe très similaire à " "Python sur n'importe quelle autre plateforme Unix, mais il y a un certain " "nombre de fonctionnalités additionnelle telle que l'IDE et le gestionnaire " -"de packages qui méritent d'être soulignées." +"de paquets qui méritent d'être soulignées." #: ../Doc/using/mac.rst:18 msgid "Getting and Installing MacPython" @@ -53,10 +53,10 @@ msgid "" "CPU's, is available there." msgstr "" "Mac OS X 10.8 contient déjà Python 2.7 pré-installé par Apple. Si vous le " -"souhaitez,vous êtes invités à installer la version la plus récente de Python " -"3 à partir du site de Python (https://www.python.org). Une version \"binaire " -"universelle\" de Python, qui s'exécute nativement sur les nouveaux " -"processeurs Intel de Macet les processeurs PPC, CPUs hérités de Mac, y est " +"souhaitez, vous êtes invités à installer la version la plus récente de " +"Python 3 à partir du site de Python (https://www.python.org). Une version " +"\"binaire universelle\" de Python, qui s'exécute nativement sur les nouveaux " +"processeurs Intel de Mac et les processeurs PPC, CPUs hérités de Mac, y est " "disponible." #: ../Doc/using/mac.rst:26 diff --git a/using/unix.po b/using/unix.po index b4bdfc40b..64177fe0d 100644 --- a/using/unix.po +++ b/using/unix.po @@ -246,7 +246,7 @@ msgid "" "is usually ::" msgstr "" "et mettre un *shebang* approprié en haut du script. Un bon choix est " -"généralement ::" +"généralement ::" #: ../Doc/using/unix.rst:132 msgid "" diff --git a/using/windows.po b/using/windows.po index 040679437..23083b726 100644 --- a/using/windows.po +++ b/using/windows.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/using/windows.rst:7 msgid "Using Python on Windows" -msgstr "Utiliser Python sur Windows" +msgstr "Utilisation de Python sur Windows" #: ../Doc/using/windows.rst:12 msgid "" @@ -181,7 +181,9 @@ msgstr "" #: ../Doc/using/windows.rst:73 msgid "The standard library can be pre-compiled to bytecode" -msgstr "La bibliothèque standard peut être pré-compilée en *bytecode*" +msgstr "" +"La bibliothèque standard peut être pré-compilée en code intermédiaire " +"(*bytecode* en anglais)" #: ../Doc/using/windows.rst:74 msgid "" @@ -950,7 +952,7 @@ msgstr "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" #: ../Doc/using/windows.rst:397 msgid "Setting Environment variables, Louis J. Farrugia" -msgstr "Définir les variables d'environnement, Louis J. Farrugia" +msgstr "Définir les variables d'environnement, *Louis J. Farrugia*" #: ../Doc/using/windows.rst:402 msgid "Finding the Python executable" @@ -1396,7 +1398,7 @@ msgstr "" #: ../Doc/using/windows.rst:659 msgid "Examples:" -msgstr "Exemples : ::" +msgstr "Exemples :" #: ../Doc/using/windows.rst:661 msgid "" @@ -1463,7 +1465,7 @@ msgstr "" #: ../Doc/using/windows.rst:686 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/using/windows.rst:688 msgid "Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:" @@ -1538,9 +1540,9 @@ msgstr "" "d'environnement sont ignorées, le mode isolé est activé et :mod:`site` n'est " "pas importé, sauf si une ligne du fichier spécifie ``import site``. Les " "chemins et les lignes vides commençant par ``#`` sont ignorés. Chaque chemin " -"d'accès peut être absolu ou relatif à l'emplacement du fichier. Les imports " -"autre que vers *site* ne sont pas autorisés, ni n'importe quelle instruction " -"Python." +"d'accès peut être absolu ou relatif à l'emplacement du fichier. Les " +"importations autres que vers *site* ne sont pas autorisées, ni n'importe " +"quelle instruction Python." #: ../Doc/using/windows.rst:740 msgid "" @@ -1806,7 +1808,7 @@ msgid "" "includes utilities for:" msgstr "" "Le module `PyWin32 `_ de Mark Hammond est " -"une collection de modules pour un support avancé spécifique à Windows. Cela " +"une collection de modules pour un support avancé spécifique à Windows. Cela " "inclut les services pour :" #: ../Doc/using/windows.rst:855 @@ -1823,7 +1825,7 @@ msgstr "Registre" #: ../Doc/using/windows.rst:858 msgid "Event log" -msgstr "journal d'événement" +msgstr "Journal d'événement" #: ../Doc/using/windows.rst:859 msgid "" @@ -1840,7 +1842,7 @@ msgid "" "It is an embeddable IDE with a built-in debugger." msgstr "" "`PythonWin `_ est une exemple d'application MFC livrée avec PyWin32. " +"windows/pythonwin/>`_ est un exemple d'application MFC livrée avec PyWin32. " "Il s'agit d'un IDE embarqué avec débogueur intégré." #: ../Doc/using/windows.rst:869 From 5087de50b25fbf85695340dc2345f12f821e7381 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 4 Jun 2021 13:52:38 +0200 Subject: [PATCH 4/5] Backporting using pomerge --no-overwrite --to-files *.po */*.po --- c-api/arg.po | 45 ++ c-api/bytes.po | 2 +- c-api/intro.po | 2 +- c-api/mapping.po | 15 +- c-api/memory.po | 2 +- c-api/memoryview.po | 20 + c-api/structures.po | 2 +- c-api/tuple.po | 2 +- c-api/unicode.po | 2 +- distutils/apiref.po | 5 +- distutils/introduction.po | 145 +++++- distutils/setupscript.po | 459 +++++++++++++++--- extending/extending.po | 291 +++++++++++- extending/newtypes.po | 97 ++-- howto/clinic.po | 353 ++++++++++---- howto/curses.po | 410 ++++++++++++++-- howto/sockets.po | 199 +++++++- howto/urllib2.po | 1 + install/index.po | 39 +- library/argparse.po | 665 +++++++++++++++++++++++++- library/calendar.po | 80 +++- library/compileall.po | 105 ++++- library/configparser.po | 257 +++++++++- library/ctypes.po | 187 +++++++- library/curses.po | 4 +- library/difflib.po | 118 ++++- library/email.errors.po | 70 ++- library/ipaddress.po | 2 +- library/logging.config.po | 10 +- library/logging.handlers.po | 194 ++++++-- library/logging.po | 2 +- library/mailbox.po | 68 ++- library/marshal.po | 77 ++- library/msilib.po | 2 +- library/platform.po | 122 ++++- library/py_compile.po | 47 +- library/resource.po | 2 +- library/socket.po | 4 +- library/stat.po | 2 +- library/statistics.po | 156 +++++-- library/sunau.po | 2 +- library/tarfile.po | 432 ++++++++++++++--- library/tkinter.ttk.po | 4 +- library/turtle.po | 902 ++++++++++++++++++++++++++++-------- library/typing.po | 351 +++++++++++--- library/uuid.po | 102 +++- whatsnew/2.0.po | 191 +++++++- whatsnew/2.6.po | 2 +- whatsnew/2.7.po | 2 +- whatsnew/3.2.po | 2 +- whatsnew/3.3.po | 4 +- whatsnew/3.5.po | 2 +- whatsnew/3.6.po | 2 +- 53 files changed, 5495 insertions(+), 768 deletions(-) diff --git a/c-api/arg.po b/c-api/arg.po index eb00829f3..e4a0c2e68 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -90,6 +90,10 @@ msgid "" "this object. You won't have to release any memory yourself. The only " "exceptions are ``es``, ``es#``, ``et`` and ``et#``." msgstr "" +"En général, lorsqu'un format définit un pointeur vers un tampon, le tampon " +"est géré par l'objet Python correspondant et le tampon partage la durée de " +"vie de cet objet. vous n'avez pas à libérer de mémoire. Les seules " +"exceptions sont ``es``, ``es#``, ``et`` et ``et#``." #: ../Doc/c-api/arg.rst:42 msgid "" @@ -152,6 +156,13 @@ msgid "" "is raised. Unicode objects are converted to C strings using ``'utf-8'`` " "encoding. If this conversion fails, a :exc:`UnicodeError` is raised." msgstr "" +"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " +"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " +"est stocké dans la variable de type pointeur vers un caractère dont vous " +"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " +"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " +"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " +"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." #: ../Doc/c-api/arg.rst:77 msgid "" @@ -160,12 +171,19 @@ msgid "" "strings, it is preferable to use the ``O&`` format with :c:func:" "`PyUnicode_FSConverter` as *converter*." msgstr "" +"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " +"d'octets `. Si vous voulez accepter les chemins du " +"système de fichiers et les convertir vers des chaînes de caractères C, il " +"est préférable d'utiliser le format ``O&`` avec :c:func:" +"`PyUnicode_FSConverter` en tant que *converter*." #: ../Doc/c-api/arg.rst:83 ../Doc/c-api/arg.rst:150 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." msgstr "" +"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " +"Python contenait des codes NULL." #: ../Doc/c-api/arg.rst:91 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" @@ -178,12 +196,19 @@ msgid "" "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" +"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " +"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " +"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " +"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " +"utilisant l'encodage ``'utf-8'``." #: ../Doc/c-api/arg.rst:98 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " "int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" #: ../Doc/c-api/arg.rst:94 msgid "" @@ -192,6 +217,11 @@ msgid "" "second one its length. The string may contain embedded null bytes. Unicode " "objects are converted to C strings using ``'utf-8'`` encoding." msgstr "" +"La même chose que ``s*``, mais n'accepte pas les objets muables. Le résultat " +"est stocké dans deux variables C, la première est un pointeur vers une " +"chaîne de caractères C, la seconde contient sa taille. La chaîne de " +"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " +"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." #: ../Doc/c-api/arg.rst:102 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" @@ -234,6 +264,8 @@ msgstr "" #: ../Doc/c-api/arg.rst:120 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" +"``y`` (lecture seule :term:`objet compatible avec une chaîne d'octets `) [constante char \\*]" #: ../Doc/c-api/arg.rst:113 msgid "" @@ -242,12 +274,18 @@ msgid "" "contain embedded null bytes; if it does, a :exc:`ValueError` exception is " "raised." msgstr "" +"Ce format convertit un *objet compatible avec une chaîne d'octets* en un " +"pointeur C vers une chaîne de caractères ; il n'accepte pas les objets " +"Unicode. Le tampon d'octets ne doit pas contenir d'octets *null* ; si c'est " +"le cas, une exception :exc:`ValueError` est levée." #: ../Doc/c-api/arg.rst:118 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" +"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " +"rencontrés dans le tampon d'octets." #: ../Doc/c-api/arg.rst:125 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" @@ -308,6 +346,13 @@ msgid "" "Python string must not contain embedded null code points; if it does, a :exc:" "`ValueError` exception is raised." msgstr "" +"Convertit un objet Python Unicode en un pointeur C vers un tampon de " +"caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " +"pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " +"tampon Unicode existant. Veuillez noter que la taille d'un :c:type:" +"`Py_UNICODE` dépend des options de compilation (soit 16, soit 32 bits). La " +"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en " +"contient, une exception :exc:`ValueError` est levée." #: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 #: ../Doc/c-api/arg.rst:182 diff --git a/c-api/bytes.po b/c-api/bytes.po index 5ad4bd041..6e7412d7c 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -75,7 +75,7 @@ msgstr "" #: ../Doc/c-api/bytes.rst:68 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/bytes.rst:68 msgid "Type" diff --git a/c-api/intro.po b/c-api/intro.po index 8dee4b087..9bb3723aa 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -157,7 +157,7 @@ msgstr "" #: ../Doc/c-api/intro.rst:113 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" #: ../Doc/c-api/intro.rst:115 msgid "" diff --git a/c-api/mapping.po b/c-api/mapping.po index 2073a7289..842fa4659 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -19,13 +19,15 @@ msgstr "" #: ../Doc/c-api/mapping.rst:6 msgid "Mapping Protocol" -msgstr "" +msgstr "Protocole de correspondance" #: ../Doc/c-api/mapping.rst:8 msgid "" "See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" "`PyObject_DelItem`." msgstr "" +"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` et :c:func:" +"`PyObject_DelItem`." #: ../Doc/c-api/mapping.rst:14 msgid "" @@ -40,6 +42,8 @@ msgid "" "Returns the number of keys in object *o* on success, and ``-1`` on failure. " "This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." #: ../Doc/c-api/mapping.rst:32 msgid "" @@ -61,12 +65,18 @@ msgid "" "on failure. This is equivalent to the Python statement ``del o[key]``. This " "is an alias of :c:func:`PyObject_DelItem`." msgstr "" +"Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." #: ../Doc/c-api/mapping.rst:53 msgid "" "Remove the mapping for the string *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." #: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:66 msgid "" @@ -74,6 +84,9 @@ msgid "" "This is equivalent to the Python expression ``key in o``. This function " "always succeeds." msgstr "" +"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " +"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " +"fonction ne provoque jamais d'erreur." #: ../Doc/c-api/mapping.rst:73 msgid "" diff --git a/c-api/memory.po b/c-api/memory.po index 3426abbeb..6cb1d4249 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -384,7 +384,7 @@ msgstr "" #: ../Doc/c-api/memory.rst:340 ../Doc/c-api/memory.rst:477 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/memory.rst:340 ../Doc/c-api/memory.rst:477 msgid "Meaning" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index f5d49afc2..c65d36aa5 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -27,6 +27,9 @@ msgid "" "` as a Python object which can then be passed around like any " "other object." msgstr "" +"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " +"` du C. Cet objet peut ensuite être passé comme n'importe " +"quel objet." #: ../Doc/c-api/memoryview.rst:18 msgid "" @@ -35,12 +38,18 @@ msgid "" "will be read/write, otherwise it may be either read-only or read/write at " "the discretion of the exporter." msgstr "" +"Crée un objet *memoryview* à partir d'un objet implémentant le protocole " +"tampon. Si *obj* permet d'exporter des tampons modifiables, l'objet " +"*memoryview* crée acceptera la lecture et écriture, sinon l'objet crée est " +"soit en lecture seule ou lecture/écriture, à la discrétion de l'*exporteur*." #: ../Doc/c-api/memoryview.rst:25 msgid "" "Create a memoryview object using *mem* as the underlying buffer. *flags* can " "be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" +"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " +"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." #: ../Doc/c-api/memoryview.rst:32 msgid "" @@ -48,6 +57,8 @@ msgid "" "simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " "function." msgstr "" +"Crée un objet *memoryview* à partir de la structure tampon *view*. Pour de " +"simples tampons d'octets, :c:func:`PyMemoryView_FromMemory` est préférée." #: ../Doc/c-api/memoryview.rst:38 msgid "" @@ -57,6 +68,11 @@ msgid "" "original memory. Otherwise, a copy is made and the memoryview points to a " "new bytes object." msgstr "" +"Crée un objet *memoryview* vers un segment de mémoire :term:`contiguous` " +"(organisé comme en ``'C'`` ou comme en ``'F'`` pour Fortran) à partir d'un " +"objet qui expose le protocole tampon. Si la mémoire est contiguë, l'objet " +"*memoryview* pointe vers la mémoire d'origine. Sinon une copie est faite et " +"la *memoryview* pointe vers un nouvel objet *bytes*." #: ../Doc/c-api/memoryview.rst:47 msgid "" @@ -70,6 +86,10 @@ msgid "" "*mview* **must** be a memoryview instance; this macro doesn't check its " "type, you must do it yourself or you will risk crashes." msgstr "" +"Retourne un pointeur vers la copie privée du tampon de l'*exporteur* de " +"*memoryview*. *mview* **doit** être une instance de *memoryview*; cette " +"macro ne vérifie pas le type, vous devez le faire vous-même sinon vous " +"pourriez subir un crash." #: ../Doc/c-api/memoryview.rst:59 msgid "" diff --git a/c-api/structures.po b/c-api/structures.po index f7aee6ba2..772b2aca5 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -135,7 +135,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:129 ../Doc/c-api/structures.rst:240 #: ../Doc/c-api/structures.rst:305 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/structures.rst:129 ../Doc/c-api/structures.rst:240 #: ../Doc/c-api/structures.rst:305 diff --git a/c-api/tuple.po b/c-api/tuple.po index 649d12327..b93aa6103 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -153,7 +153,7 @@ msgstr "" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "C Type" diff --git a/c-api/unicode.po b/c-api/unicode.po index bfca5557e..6825afe0b 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -440,7 +440,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:447 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/unicode.rst:447 msgid "Type" diff --git a/distutils/apiref.po b/distutils/apiref.po index c9e6d84e4..99f68ba13 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -452,9 +452,8 @@ msgid "" "the full name of the extension, including any packages --- ie. *not* a " "filename or pathname, but Python dotted name" msgstr "" -"Le nom complet de l'extension, incluant n'importe quel paquet — c-à-d " -"*pas* un nom de fichier ou de chemin mais un nom Python séparé par des " -"points." +"Le nom complet de l'extension, incluant n'importe quel paquet — c-à-d *pas* " +"un nom de fichier ou de chemin mais un nom Python séparé par des points." #: ../Doc/distutils/apiref.rst:183 msgid "*sources*" diff --git a/distutils/introduction.po b/distutils/introduction.po index 0130d7909..93a24310c 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/distutils/introduction.rst:5 msgid "An Introduction to Distutils" -msgstr "" +msgstr "Introduction à Distutils" #: ../Doc/distutils/introduction.rst:7 msgid "" @@ -28,6 +28,10 @@ msgid "" "information on installing Python modules, you should refer to the :ref:" "`install-index` chapter." msgstr "" +"Ce document traite de l'utilisation de Distutils pour distribuer des modules " +"Python, en se concentrant sur le rôle de développeur/distributeur : si vous " +"cherchez des informations sur l'installation de modules Python, vous devriez " +"vous référer au chapitre :ref:`install-index`." #: ../Doc/distutils/introduction.rst:16 msgid "Concepts & Terminology" @@ -40,26 +44,30 @@ msgid "" "responsibilities (apart from writing solid, well-documented and well-tested " "code, of course!) are:" msgstr "" +"Utiliser Distuils est assez simple, à la fois pour les développeurs de " +"module et pour les utilisateurs/administrateurs qui installent des modules " +"tiers. En tant que développeur, vos responsabilités (en plus d'écrire du " +"code solide, bien documenté et bien testé, bien entendu !) sont :" #: ../Doc/distutils/introduction.rst:23 msgid "write a setup script (:file:`setup.py` by convention)" -msgstr "" +msgstr "écrire un script d'installation (:file:`setup.py` par convention) ;" #: ../Doc/distutils/introduction.rst:25 msgid "(optional) write a setup configuration file" -msgstr "" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" #: ../Doc/distutils/introduction.rst:27 msgid "create a source distribution" -msgstr "" +msgstr "créer une distribution source ;" #: ../Doc/distutils/introduction.rst:29 msgid "(optional) create one or more built (binary) distributions" -msgstr "" +msgstr "(optionnel) créer une ou plusieurs distributions compilées (binaires)." #: ../Doc/distutils/introduction.rst:31 msgid "Each of these tasks is covered in this document." -msgstr "" +msgstr "Chacune de ces tâches est couverte dans ce document." #: ../Doc/distutils/introduction.rst:33 msgid "" @@ -73,6 +81,16 @@ msgid "" "module distributions in the most natural way for their platform, without " "having to run a single setup script or compile a line of code." msgstr "" +"Tous les développeurs de modules n'ont pas accès à une multitude de " +"plateformes, donc on ne peut pas exiger d'eux qu'ils créent une multitude de " +"distributions compilées. On s'attend à ce que certains intermédiaires, " +"appelés *packagers*, prennent en charge ce besoin. Les packagers vont " +"prendre les sources des distributions publiées par les développeurs de " +"modules, les construire sur on ou plusieurs plateformes, et publier les " +"distributions compilées résultantes. Ainsi, les utilisateurs sur les " +"plateformes les plus populaires vont pouvoir installer la plupart des " +"modules Python de la façon la plus naturelle qui soit pour leur plateforme, " +"sans avoir à exécuter de script ou à compiler du code." #: ../Doc/distutils/introduction.rst:47 msgid "A Simple Example" @@ -87,22 +105,33 @@ msgid "" "script may be run multiple times in the course of building and installing " "your module distribution." msgstr "" +"Le script d'installation est habituellement assez simple, même s'il n'y a " +"pas de limite à ce qu'il peut faire (il est écrit en Python, n'est-ce " +"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations " +"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le " +"script d'installation peut être amené à être exécuté plusieurs fois au cours " +"de la compilation et de l'installation du module. " #: ../Doc/distutils/introduction.rst:56 msgid "" "If all you want to do is distribute a module called :mod:`foo`, contained in " "a file :file:`foo.py`, then your setup script can be as simple as this::" msgstr "" +"Si tout ce que vous voulez est de distribuer un module appelé :mod:`foo`, " +"contenu dans un fichier :file:`foo.py`, alors votre script d'installation " +"peut se résumer à :" #: ../Doc/distutils/introduction.rst:65 msgid "Some observations:" -msgstr "" +msgstr "Quelques observations :" #: ../Doc/distutils/introduction.rst:67 msgid "" "most information that you supply to the Distutils is supplied as keyword " "arguments to the :func:`setup` function" msgstr "" +"la plupart des informations que vous fournissez à Distutils sont fournies en " +"tant que qu'arguments nommés à la fonction :func:`setup`;" #: ../Doc/distutils/introduction.rst:70 msgid "" @@ -110,12 +139,17 @@ msgid "" "version number) and information about what's in the package (a list of pure " "Python modules, in this case)" msgstr "" +"ces arguments nommés tombent dans deux catégories : métadonnées du paquet " +"(nom, numéro de version) et des informations sur le contenu du paquet paquet " +"(une liste de purs modules Python, dans ce cas) ; " #: ../Doc/distutils/introduction.rst:74 msgid "" "modules are specified by module name, not filename (the same will hold true " "for packages and extensions)" msgstr "" +"les modules sont listés par nom de module, plutôt que par nom de fichier (le " +"cas est similaire pour les paquets et extensions) ;" #: ../Doc/distutils/introduction.rst:77 msgid "" @@ -123,6 +157,9 @@ msgid "" "name, email address and a URL for the project (see section :ref:`setup-" "script` for an example)" msgstr "" +"il est recommandé de fournir un minimum de métadonnées, en particulier votre " +"nom, une adresse de courriel et une URL pour le projet (voir section :ref:" +"`setup-script` pour un exemple)." #: ../Doc/distutils/introduction.rst:81 msgid "" @@ -130,12 +167,17 @@ msgid "" "script, :file:`setup.py`, containing the above code, and run this command " "from a terminal::" msgstr "" +"Pour créer une distribution source pour ce module, il faut créer un script " +"d'installation, :file:`setup.py`, contenant le code ci-dessus, et exécuter " +"cette commande depuis un terminal :" #: ../Doc/distutils/introduction.rst:87 msgid "" "For Windows, open a command prompt window (:menuselection:`Start --> " "Accessories`) and change the command to::" msgstr "" +"Pour Windows, ouvrez une invite de commande (:menuselection:`Démarrer --> " +"Accessoires`) et changez la commande en :" #: ../Doc/distutils/introduction.rst:92 msgid "" @@ -144,6 +186,11 @@ msgid "" "module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` " "(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`." msgstr "" +":command:`sdist` va créer un fichier d'archive (p. ex. une archive *tar* sur " +"Unix, un fichier ZIP sous Windows) contenant votre script d'installation :" +"file:`setup.py`, et votre module :file:`foo.py`. Le fichier d'archive va " +"être nommé :file:`foo-1.0.tar.gz` (ou :file:`.zip`), et va se décompresser " +"dans un répertoire :file:`foo-1.0`." #: ../Doc/distutils/introduction.rst:97 msgid "" @@ -157,6 +204,8 @@ msgid "" "which will ultimately copy :file:`foo.py` to the appropriate directory for " "third-party modules in their Python installation." msgstr "" +"ce qui va finalement copier :file:`foo.py` dans le répertoire approprié pour " +"un module tiers dans son installation Python." #: ../Doc/distutils/introduction.rst:106 msgid "" @@ -167,6 +216,13 @@ msgid "" "while :command:`install` is more often for installers (although most " "developers will want to install their own code occasionally)." msgstr "" +"Ce simple exemple démontre des concepts fondamentaux de Distutils, " +"Premièrement, les développeurs et installeurs ont la même interface " +"utilisateur basique, p. ex. le script d'installation. La différence est " +"quelle *commande* Distutils ils utilisent : la commande :command:`sdist` est " +"quasiment exclusivement pour les développeurs de modules Python, tandis que :" +"command:`install` est plus souvent pour les installeurs (bien que la plupart " +"des développeurs vont vouloir installer leur code occasionnellement)." #: ../Doc/distutils/introduction.rst:113 msgid "" @@ -177,12 +233,21 @@ msgid "" "distribution for this platform) with the :command:`bdist_wininst` command. " "For example::" msgstr "" +"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, " +"vous pouvez créer on ou plusieurs distributions compilées pour eux. En " +"l’occurrence, si vous tournez sous une machine Windows, et que vous voulez " +"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez " +"créer un installateur exécutable (le mode de distribution le plus approprié " +"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par " +"exemple :" #: ../Doc/distutils/introduction.rst:121 msgid "" "will create an executable installer, :file:`foo-1.0.win32.exe`, in the " "current directory." msgstr "" +"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le " +"répertoire courant." #: ../Doc/distutils/introduction.rst:124 msgid "" @@ -191,6 +256,11 @@ msgid "" "and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the " "following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::" msgstr "" +"D'autres formats de distributions compilés utiles sont RPM, implémenté par " +"la commande :command:`bdist_rpm`, Solaris :program:`pkgtool` (:command:" +"`bdist_pkgtool`), et HP-UX :program:`swinstall` (:command:`bdist_sdux`). Par " +"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0." +"noarch.rpm`::" #: ../Doc/distutils/introduction.rst:132 msgid "" @@ -198,16 +268,21 @@ msgid "" "therefore this has to be run on an RPM-based system such as Red Hat Linux, " "SuSE Linux, or Mandrake Linux.)" msgstr "" +"(La commande :command:`bdist_rpm` utilise l'exécutable :command:`rpm`, " +"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat " +"Linux, SuSE Linux, or Mandrake Linux.)" #: ../Doc/distutils/introduction.rst:136 msgid "" "You can find out what distribution formats are available at any time by " "running ::" msgstr "" +"Vous pouvez trouver quelles sont les formats de distribution disponibles à " +"n'importe quel moment en exécutant :" #: ../Doc/distutils/introduction.rst:145 msgid "General Python terminology" -msgstr "" +msgstr "Terminologie Python générale" #: ../Doc/distutils/introduction.rst:147 msgid "" @@ -216,6 +291,10 @@ msgid "" "everyone is operating from a common starting point, we offer the following " "glossary of common Python terms:" msgstr "" +"Si vous lisez ce document, vous avez probablement une bonne idée de ce que " +"sont les modules, extensions, etc. Néanmoins, juste pour être sur que tout " +"le monde opère depuis un point d'entrée commun, nous reprécisons le " +"glossaire suivant des termes Python communs :" #: ../Doc/distutils/introduction.rst:155 msgid "module" @@ -227,10 +306,13 @@ msgid "" "some other code. Three types of modules concern us here: pure Python " "modules, extension modules, and packages." msgstr "" +"unité de base de la réutilisabilité en Python : un bloc de code importé par " +"un autre code. Trois types de modules nous concernent ici : les purs modules " +"Python, les modules d'extension, et les packages." #: ../Doc/distutils/introduction.rst:160 msgid "pure Python module" -msgstr "" +msgstr "pur module Python" #: ../Doc/distutils/introduction.rst:158 msgid "" @@ -238,6 +320,8 @@ msgid "" "possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure " "module.\"" msgstr "" +"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et " +"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\"" #: ../Doc/distutils/introduction.rst:168 msgid "extension module" @@ -253,6 +337,13 @@ msgid "" "(Note that currently, the Distutils only handles C/C++ extensions for " "Python.)" msgstr "" +"un module écrit dans un langage de bas niveau de l'implémentation Python: C/C" +"++ pour Python, Java pour Jython. Typiquement contenu dans un unique fichier " +"pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`.so`) pour " +"des extensions Python sous Unix, un fichier DLL (étant donné l'extension :" +"file:`.pyd`) pour les extensions Python sous Windows, ou un fichier de " +"classe Java pour les extensions Jython (notez qu'actuellement, Distutils " +"gère seulement les extensions Python C/C++)." #: ../Doc/distutils/introduction.rst:173 msgid "package" @@ -264,6 +355,9 @@ msgid "" "the filesystem and distinguished from other directories by the presence of a " "file :file:`__init__.py`." msgstr "" +"un module qui contient d'autres modules ; très souvent contenu dans un " +"répertoire du système de fichier et qui se distingue des autres répertoires " +"par la présence d'un fichier :file:`__init__.py`." #: ../Doc/distutils/introduction.rst:183 msgid "root package" @@ -279,20 +373,30 @@ msgid "" "package can be found in many directories: in fact, every directory listed in " "``sys.path`` contributes modules to the root package." msgstr "" +"la racine de la hiérarchie de paquets. (Ce n'est pas vraiment un paquet, " +"puisqu'il n'a pas un fichier :file:`__init__.py`. Mais nous devons bien le " +"nommer.) La grande majorité de la bibliothèque standard est dans le package " +"racine, comme le sont certains petits, des packages tiers autonomes qui " +"n'appartiennent pas à une un module plus grand. Contrairement aux packages " +"réguliers, les modules dans le package racine peuvent être trouvés dans " +"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` " +"contribuent à faire partie du package racine." #: ../Doc/distutils/introduction.rst:188 msgid "Distutils-specific terminology" -msgstr "" +msgstr "Terminologie spécifique à Distutils" #: ../Doc/distutils/introduction.rst:190 msgid "" "The following terms apply more specifically to the domain of distributing " "Python modules using the Distutils:" msgstr "" +"Les termes suivant s'appliquent plus spécifiquement au domaine de la " +"distribution de modules Python en utilisant les Distutils :" #: ../Doc/distutils/introduction.rst:199 msgid "module distribution" -msgstr "" +msgstr "module de distribution" #: ../Doc/distutils/introduction.rst:194 msgid "" @@ -302,30 +406,40 @@ msgid "" "called a *package*, except that term is already taken in the Python context: " "a single module distribution may contain zero, one, or many Python packages.)" msgstr "" +"une collection de modules Python distribués ensemble, comme une unique " +"ressource téléchargeable et ayant pour but d'être installé *en bloc*. Des " +"exemples de modules distribués bien connus sont *NumPy*, *SciPy*, *Pillow*, " +"ou *mxBase*. (On pourrait les appeler des *packages*, malgré que le terme " +"soit déjà pris dans le contexte Python : une distribution de module simple " +"pourrait contenir zéro, on ou plusieurs packages Python" #: ../Doc/distutils/introduction.rst:203 msgid "pure module distribution" -msgstr "" +msgstr "distribution de modules purs" #: ../Doc/distutils/introduction.rst:202 msgid "" "a module distribution that contains only pure Python modules and packages. " "Sometimes referred to as a \"pure distribution.\"" msgstr "" +"une distribution de module qui contient seulement des modules purs et " +"packages Python. Parfois appelée « distribution pure »." #: ../Doc/distutils/introduction.rst:207 msgid "non-pure module distribution" -msgstr "" +msgstr "distribution de module non pur" #: ../Doc/distutils/introduction.rst:206 msgid "" "a module distribution that contains at least one extension module. " "Sometimes referred to as a \"non-pure distribution.\"" msgstr "" +"une distribution de module qui contient au moins un module d'extension. " +"Parfois appelée « distribution non-pure »." #: ../Doc/distutils/introduction.rst:211 msgid "distribution root" -msgstr "" +msgstr "distribution racine" #: ../Doc/distutils/introduction.rst:210 msgid "" @@ -333,3 +447,6 @@ msgid "" "directory where :file:`setup.py` exists. Generally :file:`setup.py` will " "be run from this directory." msgstr "" +"le répertoire de plus haut niveau de votre arborescence (ou distribution " +"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:" +"`setup.py` est exécuté depuis ce répertoire." diff --git a/distutils/setupscript.po b/distutils/setupscript.po index acedbe15e..f8c07ad53 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:5 msgid "Writing the Setup Script" -msgstr "" +msgstr "Rédaction du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:7 msgid "" @@ -32,6 +32,15 @@ msgid "" "Distutils by the module developer is supplied as keyword arguments to :func:" "`setup`." msgstr "" +"Le script ``setup.py`` est au centre de toute opération de construction, de " +"distribution et d'installation des modules utilisant les *Distutils*. " +"L'objectif principal du script ``setup.py`` est de décrire le module aux " +"*Distutils*, de telle sorte que les diverses commandes qui agissent sur " +"votre module fassent les bonnes choses. Comme nous avons vu dans la section :" +"ref:`distutils-simple-example` au-dessus, le script ``setup.py`` consiste " +"principalement à un appel à :func:`setup`, et la plupart des informations " +"fournies aux *Distutils* par le développeur du module sont fournies en tant " +"qu'arguments nommés à :func:`setup.py`." #: ../Doc/distutils/setupscript.rst:15 msgid "" @@ -42,6 +51,14 @@ msgid "" "install other module distributions. The Distutils' own setup script, shown " "here, is used to install the package into Python 1.5.2.) ::" msgstr "" +"Voici un exemple un peu plus concret, que nous allons suivre pour les " +"quelques sections suivantes : le propre script ``setup.py`` des *Distutils* " +"(gardez toujours à l'esprit qu'en dépit de l'inclusion des *Distutils* dans " +"python 1.6 et ses versions successives, ils ont aussi une existence à part " +"entière de telle sorte que les utilisateurs de Python 1.5.2 puissent les " +"utiliser pour installer d'autres modules. Le propre script ``setup.py`` des " +"*Distutils* montré ici est utilisé pour installer le paquet dans Python " +"1.5.2). ::" #: ../Doc/distutils/setupscript.rst:35 msgid "" @@ -53,6 +70,14 @@ msgid "" "module would be tedious to generate and difficult to maintain. For more " "information on the additional meta-data, see section :ref:`meta-data`." msgstr "" +"Il y a seulement deux différences entre cet exemple et l'exemple trivial de " +"la distribution d'un unique fichier présenté dans la partie :ref:`distutils-" +"simple-example` : plus de métadonnées, et la définition de modules purement " +"Python par paquet, plutôt que par module. C'est important car les " +"*Distutils* sont composés de quelques douzaines de modules séparés (pour le " +"moment) en deux paquets ; une liste explicite de chaque module serait " +"pénible à générer et difficile à maintenir. Pour plus d'information sur les " +"métadonnées supplémentaires, voir la partie :ref:`meta-data`." #: ../Doc/distutils/setupscript.rst:43 msgid "" @@ -64,6 +89,15 @@ msgid "" "systems, which of course is one of the major goals of the Distutils. In " "this spirit, all pathnames in this document are slash-separated." msgstr "" +"À noter que chaque chemin d'accès fourni au script ``setup.py`` doit être " +"écrit selon la convention Unix. Autrement dit, séparé par des barres " +"obliques (slash). Les *Distutils* prendront soin de convertir cette " +"représentation indépendante de la plateforme en une représentation adaptée à " +"votre plateforme actuelle avant d'effectivement utiliser le chemin d'accès. " +"Cela rend votre script ``setup.py`` portable d'un système d'exploitation à " +"l'autre, ce qui évidemment est l'un des buts majeurs des *Distutils*. Dans " +"cet esprit, tous les chemins d'accès dans ce document sont séparés par des " +"barres obliques (slash)." #: ../Doc/distutils/setupscript.rst:51 msgid "" @@ -72,10 +106,15 @@ msgid "" "or :func:`os.listdir` to specify files, you should be careful to write " "portable code instead of hardcoding path separators::" msgstr "" +"Cela, évidemment, s'applique uniquement aux chemins d'accès passés aux " +"fonctions de *Distutils*. Si vous, par exemple, vous utilisez les fonctions " +"standards de Python telles que :func:`glob.glob` or :func:`os.listdir` pour " +"définir des fichiers, vous devez prendre soin d'écrire du code portable au " +"lieu de coder en dur les séparateurs de chemin ::" #: ../Doc/distutils/setupscript.rst:63 msgid "Listing whole packages" -msgstr "" +msgstr "Lister l'ensemble des paquets" #: ../Doc/distutils/setupscript.rst:65 msgid "" @@ -92,6 +131,19 @@ msgid "" "break this promise, the Distutils will issue a warning but still process the " "broken package anyway." msgstr "" +"L'option ``packages`` dit aux *Distutils* de traiter (construire, " +"distribuer, installer, etc.) tous les modules en Python pur trouvés dans " +"chaque paquet mentionné dans la liste ``packages``. À cette fin, évidemment, " +"il faut une correspondance entre les noms des paquets et des répertoires " +"dans le système de fichiers. La correspondance par défaut est la plus " +"évidente. À savoir : le paquet :mod:`distutils` se trouve dans le " +"répertoire :file:`distutils` situé à la racine de la distribution. Ainsi, " +"quand vous écrivez ``packages = ['foo']`` dans votre script ``setup.py``, " +"vous vous engagez à ce que les *Distutils* trouvent un fichier ``foo/" +"__init__.py`` (qui peut s'épeler différemment sur votre système, mais vous " +"voyez l'idée) à un emplacement relatif au répertoire où se trouve le script " +"``setup.py``. Si ce n'est pas le cas, les *Distutils* lèvent un " +"avertissement mais traitent tout de même le paquet défectueux." #: ../Doc/distutils/setupscript.rst:77 msgid "" @@ -102,6 +154,14 @@ msgid "" "in any package at all) are in :file:`lib`, modules in the :mod:`foo` package " "are in :file:`lib/foo`, and so forth. Then you would put ::" msgstr "" +"Si vous utilisez une convention différente pour arranger votre répertoire de " +"sources, ce n'est pas un problème : vous avez seulement à fournir l'option " +"``package_dir`` pour prévenir les *Distutils* de l'usage de cette " +"convention. Par exemple, supposons que vous gardez toutes les sources Python " +"sous :file:`lib`, de telle sorte que les modules dans le « paquet " +"racine » (c'est-à-dire dans aucun paquet du tout) sont dans :file:`lib`, les " +"modules dans le paquet :mod:`foo` sont dans :file:`lib/foo`, et ainsi de " +"suite. Alors, vous pouvez mettre ::" #: ../Doc/distutils/setupscript.rst:86 msgid "" @@ -111,6 +171,11 @@ msgid "" "``packages = ['foo']``, you are promising that the file :file:`lib/foo/" "__init__.py` exists." msgstr "" +"dans votre script ``setup.py``. Les clés de ce dictionnaire sont les noms " +"des paquets, et un nom de paquet vide fait office de paquet racine. Les " +"valeurs sont des noms de répertoires relatifs à la racine de votre " +"distribution. Dans ce cas, lorsque vous dites ``packages = ['foo']``, vous " +"vous engagez à ce que le fichier :file:`lib/foo/__init__.py` existe." #: ../Doc/distutils/setupscript.rst:91 msgid "" @@ -118,6 +183,9 @@ msgid "" "`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be " "written in the setup script as ::" msgstr "" +"Une autre convention possible est de mettre le paquet :mod:`foo` directement " +"dans :file:`lib`, le paquet :mod:`foo.bar` dans :file:`lib/bar`, etc. Cela " +"s'écrirait ainsi dans le script ``setup.py`` : ::" #: ../Doc/distutils/setupscript.rst:97 msgid "" @@ -133,7 +201,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:110 msgid "Listing individual modules" -msgstr "" +msgstr "Lister chaque module indépendamment" #: ../Doc/distutils/setupscript.rst:112 msgid "" @@ -143,6 +211,11 @@ msgid "" "shown in section :ref:`distutils-simple-example`; here is a slightly more " "involved example::" msgstr "" +"Pour un petit projet, vous pouvez préférer lister tous les modules plutôt " +"que les paquets — surtout le cas d'un module seul qui va dans le « paquet " +"racine » (à savoir, aucun paquet du tout). Le cas le plus simple a été " +"montré dans la partie :ref:`distutils-simple-example` ; voici un exemple " +"plus concret ::" #: ../Doc/distutils/setupscript.rst:119 msgid "" @@ -153,10 +226,16 @@ msgid "" "you can override the package/directory correspondence using the " "``package_dir`` option." msgstr "" +"Deux modules sont décrits, l'un dans le paquet « racine », l'autre dans le " +"paquet :mod:`pkg`. Encore une fois, la structure paquet/répertoire par " +"défaut implique que ces deux modules peuvent être trouvés dans :file:`mod1." +"py` et :file:`pkg/mod2.py`, et que :file:`pkg/__init__.py` existe aussi. Là " +"aussi, vous pouvez redéfinir la correspondance paquet/répertoire en " +"utilisant l'option ``package_dir``." #: ../Doc/distutils/setupscript.rst:129 msgid "Describing extension modules" -msgstr "" +msgstr "Description des modules d'extension" #: ../Doc/distutils/setupscript.rst:131 msgid "" @@ -167,6 +246,13 @@ msgid "" "have to specify the extension name, source file(s), and any compile/link " "requirements (include directories, libraries to link with, etc.)." msgstr "" +"Tout comme écrire des modules d'extension Python est un peu plus compliqué " +"que d’écrire des modules purement en Python, les décrire aux *Distutils* est " +"un peu plus compliqué. Contrairement aux modules purs, il ne suffit pas de " +"simplement lister les modules ou les paquets et d'attendre que les " +"*Distutils* trouvent par eux-mêmes les bons fichiers ; vous devez définir le " +"nom de l'extension, du ou des fichiers de sources, et les prérequis de " +"compilation/lien (répertoires à inclure, bibliothèques à lier, etc.)." #: ../Doc/distutils/setupscript.rst:140 msgid "" @@ -178,6 +264,13 @@ msgid "" "instructions to the compiler/linker are needed, describing this extension is " "quite simple::" msgstr "" +"Tout ceci est fait à l'aide d'un autre argument nommé passé à :func:`setup`, " +"l'option ``ext_modules``. ``ext_modules`` est simplement une liste de " +"classes :class:`~distutils.core.Extension`, chacune décrivant une seule " +"extension de module. Supposons que votre distribution inclut une seule " +"extension appelée :mod:`foo` et implémentée par :file:`foo.c`. Si aucune " +"instruction supplémentaire au compilateur/lieur n'est requise, décrire cette " +"extension est assez simple ::" #: ../Doc/distutils/setupscript.rst:150 msgid "" @@ -185,6 +278,9 @@ msgid "" "along with :func:`setup`. Thus, the setup script for a module distribution " "that contains only this one extension and nothing else might be::" msgstr "" +"La classe :class:`Extension` peut être importée depuis :mod:`distutils.core` " +"en même temps que :func:`setup`. Ainsi, le script ``setup.py`` pour un " +"module qui ne contient que cette seule extension et rien d'autre peut être ::" #: ../Doc/distutils/setupscript.rst:160 msgid "" @@ -193,10 +289,14 @@ msgid "" "deal of flexibility in describing Python extensions, which is explained in " "the following sections." msgstr "" +"La classe :class:`Extension` (en réalité, la machinerie sous-jacente " +"construisant les extensions implémentées par la commande :command:" +"`build_ext`) permet une grande flexibilité dans la description des " +"extensions Python, ce qui est expliqué dans les parties suivantes." #: ../Doc/distutils/setupscript.rst:167 msgid "Extension names and packages" -msgstr "" +msgstr "Nom des extensions et paquets" #: ../Doc/distutils/setupscript.rst:169 msgid "" @@ -204,10 +304,12 @@ msgid "" "always the name of the extension, including any package names. For " "example, ::" msgstr "" +"Le premier argument du constructeur :class:`~distutils.core.Extension` est " +"toujours le nom de l'extension, incluant tout nom de paquet. Par exemple ::" #: ../Doc/distutils/setupscript.rst:174 msgid "describes an extension that lives in the root package, while ::" -msgstr "" +msgstr "décrit une extension qui se situe dans le paquet racine, tandis que ::" #: ../Doc/distutils/setupscript.rst:178 msgid "" @@ -216,6 +318,11 @@ msgid "" "is where in the filesystem (and therefore where in Python's namespace " "hierarchy) the resulting extension lives." msgstr "" +"décrit la même extension dans le paquet :mod:`pkg`. Les fichiers sources et " +"le code objet résultant sont identiques dans les deux cas ; la seule " +"différence est où, dans le système de fichier (et conséquemment dans la " +"hiérarchie de l'espace de nommage de Python), l'extension résultante se " +"situe." #: ../Doc/distutils/setupscript.rst:183 msgid "" @@ -223,16 +330,21 @@ msgid "" "same base package), use the ``ext_package`` keyword argument to :func:" "`setup`. For example, ::" msgstr "" +"Si vous avez un certain nombre d'extensions toutes dans le même paquet (ou " +"toutes sous le même paquet de base), utilisez l'argument nommé " +"``ext_package`` de :func:`setup`. Par exemple ::" #: ../Doc/distutils/setupscript.rst:193 msgid "" "will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar." "c` to :mod:`pkg.subpkg.bar`." msgstr "" +"compile :file:`foo.c` en l’extension :mod:`pkg.foo`, et :file:`bar.c` en :" +"mod:`pkg.subpkg.bar`." #: ../Doc/distutils/setupscript.rst:198 msgid "Extension source files" -msgstr "" +msgstr "Fichiers sources d'extension" #: ../Doc/distutils/setupscript.rst:200 msgid "" @@ -243,6 +355,12 @@ msgid "" "files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and " "Windows compilers.)" msgstr "" +"Le second argument du constructeur d'\\ :class:`~distutils.core.Extension` " +"est une liste de fichiers sources. Puisque les *Distutils* ne gèrent que les " +"extensions en C, C++ et Objective-C, ce sont normalement des fichiers " +"sources en C/C++/Objective-C (assurez vous d'utiliser les extensions " +"appropriées pour détecter les fichiers sources en C++ : :file:`.cc` et :file:" +"`.cpp` semblent être reconnus tant par les compilateurs Unix que Windows)." #: ../Doc/distutils/setupscript.rst:207 msgid "" @@ -251,16 +369,22 @@ msgid "" "will run SWIG on the interface file and compile the resulting C/C++ file " "into your extension." msgstr "" +"Néanmoins, vous pouvez également inclure des fichiers d'interface SWIG (:" +"file:`.i`) dans la liste ; la commande :command:`build_ext` sait comment " +"gérer les extensions SWIG : il lancera SWIG sur un fichier d'interface et " +"compilera le fichier en C/C++ en une extension." #: ../Doc/distutils/setupscript.rst:214 msgid "" "This warning notwithstanding, options to SWIG can be currently passed like " "this::" msgstr "" +"Malgré cet avertissement, les options peuvent être actuellement passées à " +"SWIG de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:223 msgid "Or on the commandline like this::" -msgstr "" +msgstr "Ou en ligne de commande de cette façon ::" #: ../Doc/distutils/setupscript.rst:227 msgid "" @@ -270,10 +394,16 @@ msgid "" "rc`) files for Visual C++. These will be compiled to binary resource (:file:" "`.res`) files and linked into the executable." msgstr "" +"Sur certaines plateformes, vous pouvez inclure des fichiers autres que des " +"sources qui seront traités par le compilateur et inclus dans votre " +"extension. Pour l'instant, cela concerne seulement les fichiers de messages " +"texte Windows (:file:`.mc`) et les fichiers de définition de ressource pour " +"Visual C++ (:file:`.rc`). Ils seront compilés en fichiers de ressources " +"binaires (:file:`.res`) et liés à l'exécutable." #: ../Doc/distutils/setupscript.rst:235 msgid "Preprocessor options" -msgstr "" +msgstr "Options de préprocesseur" #: ../Doc/distutils/setupscript.rst:237 msgid "" @@ -281,12 +411,19 @@ msgid "" "you need to specify include directories to search or preprocessor macros to " "define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``." msgstr "" +"Trois arguments optionnels de :class:`~distutils.core.Extension` aident si " +"vous avez besoin de préciser les dossiers d’en-têtes à chercher ou les " +"macros de préprocesseurs à charger ou ignorer : ``include_dirs``, " +"``define_macros``, et ``undef_macros``." #: ../Doc/distutils/setupscript.rst:241 msgid "" "For example, if your extension requires header files in the :file:`include` " "directory under your distribution root, use the ``include_dirs`` option::" msgstr "" +"Par exemple, si votre extension nécessite des fichiers d'en-tête dans le " +"répertoire :file:`include` à la racine de votre distribution, utilisez " +"l'option ``include_dirs`` ::" #: ../Doc/distutils/setupscript.rst:246 msgid "" @@ -294,12 +431,17 @@ msgid "" "will only be built on Unix systems with X11R6 installed to :file:`/usr`, you " "can get away with ::" msgstr "" +"Ici, vous pouvez définir le chemin absolu des répertoires ; si vous savez " +"que votre extension sera compilée sur un système Unix avec ``X11R6`` " +"installé dans :file:`/usr`, vous pouvez vous en sortir avec ::" #: ../Doc/distutils/setupscript.rst:252 msgid "" "You should avoid this sort of non-portable usage if you plan to distribute " "your code: it's probably better to write C code like ::" msgstr "" +"Il convient d'éviter ce type d'utilisation non portable si vous envisagez de " +"distribuer votre code : Il est probablement mieux d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:257 msgid "" @@ -313,6 +455,17 @@ msgid "" "in this case---is always included in the search path when building Python " "extensions, the best approach is to write C code like ::" msgstr "" +"Si vous avez besoin d'inclure des fichiers d'en-tête provenant d'autres " +"extensions Python, vous pouvez profiter du fait que les fichiers d'en-têtes " +"sont installés de façon cohérente par la commande :command:`install_headers` " +"des *Distutils*. Par exemple, les fichiers d'en-têtes de *Numerical Python* " +"(NumPy) sont installés (dans le cas d'une installation Unix standard) dans :" +"file:`/usr/local/include/python1.5/Numerical` — l'emplacement exact diffère " +"selon votre plateforme et votre installation de Python. Vu que le " +"répertoire :file:`include` de Python —\\ :file:`/usr/local/include/" +"python1.5` dans ce cas-ci — est toujours inclus dans le chemin de recherche " +"quand vous construisez des extensions Python, la meilleure approche est " +"d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:269 msgid "" @@ -320,6 +473,10 @@ msgid "" "header search path, though, you can find that directory using the Distutils :" "mod:`distutils.sysconfig` module::" msgstr "" +"Si vous devez mettre le répertoire :file:`include` de :file:`Numerical` " +"directement dans l'en-tête du chemin de recherche, cependant, vous pouvez " +"trouver ce répertoire en utilisant le module :mod:`distutils.sysconfig` des " +"*Distutils* ::" #: ../Doc/distutils/setupscript.rst:279 msgid "" @@ -327,6 +484,9 @@ msgid "" "installation, regardless of platform---it's probably easier to just write " "your C code in the sensible way." msgstr "" +"Même si c'est assez portable — ça marche sur la plupart des installations de " +"Python, indépendamment de la plateforme — il est probablement plus facile " +"d'écrire un code C un peu plus réfléchi." #: ../Doc/distutils/setupscript.rst:283 msgid "" @@ -338,6 +498,14 @@ msgid "" "your C source: with most compilers, this sets ``FOO`` to the string ``1``.) " "``undef_macros`` is just a list of macros to undefine." msgstr "" +"Vous pouvez définir ou ignorer des macros de pré-processeur avec les options " +"``define_macros`` et ``undef_macros``. ``define_macros`` prend une liste de " +"paires ``(nom, valeur)``, où ``nom`` est le nom de la macro à définir (une " +"chaîne de caractères) et ``valeur`` est sa valeur ; soit une chaîne de " +"caractères, soit ``None`` (définir une macro ``FOO`` à ``None`` est " +"équivalent à un simple ``#define FOO`` dans votre source en C ; pour la " +"majorité des compilateurs, cela définit la valeur de ``FOO`` à la chaîne de " +"caractère ``1``). ``undef_macros`` est juste une liste de macros à supprimer." #: ../Doc/distutils/setupscript.rst:291 msgid "For example::" @@ -345,11 +513,11 @@ msgstr "Par exemple ::" #: ../Doc/distutils/setupscript.rst:298 msgid "is the equivalent of having this at the top of every C source file::" -msgstr "" +msgstr "est équivalent à avoir ceci au début de chaque fichier source en C ::" #: ../Doc/distutils/setupscript.rst:307 msgid "Library options" -msgstr "" +msgstr "Options des bibliothèques" #: ../Doc/distutils/setupscript.rst:309 msgid "" @@ -360,24 +528,37 @@ msgid "" "time, and ``runtime_library_dirs`` is a list of directories to search for " "shared (dynamically loaded) libraries at run-time." msgstr "" +"Vous pouvez aussi définir les bibliothèques à lier quand vous construisez " +"votre extension, ainsi que le répertoire de recherche pour ces " +"bibliothèques. L'option ``libraries`` est une liste de bibliothèques à lier, " +"``library_dirs`` est une liste de répertoires dans lesquels chercher des " +"bibliothèques au moment de la liaison, et ``runtime_library_dirs`` est une " +"liste de répertoires pour la recherche des bibliothèques partagées (chargées " +"dynamiquement) à l'exécution." #: ../Doc/distutils/setupscript.rst:315 msgid "" "For example, if you need to link against libraries known to be in the " "standard library search path on target systems ::" msgstr "" +"Par exemple, pour lier des bibliothèques que l'on sait dans le chemin des " +"bibliothèques standards des systèmes cibles ::" #: ../Doc/distutils/setupscript.rst:321 msgid "" "If you need to link with libraries in a non-standard location, you'll have " "to include the location in ``library_dirs``::" msgstr "" +"Pour lier une bibliothèque se trouvant à un emplacement non standard, vous " +"devez inclure son emplacement dans ``library_dirs`` ::" #: ../Doc/distutils/setupscript.rst:328 msgid "" "(Again, this sort of non-portable construct should be avoided if you intend " "to distribute your code.)" msgstr "" +"Là aussi, ce genre de construction non portable doit être évité si vous avez " +"l'intention de distribuer votre code." #: ../Doc/distutils/setupscript.rst:335 msgid "Other options" @@ -387,6 +568,8 @@ msgstr "Autres options" msgid "" "There are still some other options which can be used to handle special cases." msgstr "" +"Il y a encore d'autres options qui peuvent être utilisées pour gérer des cas " +"spéciaux." #: ../Doc/distutils/setupscript.rst:339 msgid "" @@ -394,6 +577,9 @@ msgid "" "extension will not abort the build process, but instead simply not install " "the failing extension." msgstr "" +"L'option ``optional`` est un booléen ; s'il est vrai, un échec de la " +"construction dans l'extension n'annule pas le processus de construction, " +"mais à la place, l'extension en échec ne sera pas installée." #: ../Doc/distutils/setupscript.rst:343 msgid "" @@ -401,6 +587,9 @@ msgid "" "linker. These files must not have extensions, as the default extension for " "the compiler is used." msgstr "" +"L'option ``extra_objects`` est une liste d'objets fichiers à passer à " +"l'éditeur de liens. Ces fichiers ne doivent pas avoir d'extensions car " +"l'extension par défaut du compilateur est utilisée." #: ../Doc/distutils/setupscript.rst:347 msgid "" @@ -408,6 +597,9 @@ msgid "" "additional command line options for the respective compiler and linker " "command lines." msgstr "" +"``extra_compile_args`` et ``extra_link_args`` peuvent être utilisées pour " +"définir des options additionnelles en ligne de commande propres aux lignes " +"de commandes respectives du compilateur et de l'éditeur de liens." #: ../Doc/distutils/setupscript.rst:351 msgid "" @@ -416,6 +608,10 @@ msgid "" "when building compiled extensions: Distutils will automatically add " "``initmodule`` to the list of exported symbols." msgstr "" +"``export_symbols`` est seulement utile sur Windows. Elle peut contenir une " +"liste de symboles (fonctions ou variables) à exporter. Cette option n'est " +"pas requise pour la construction d'extensions compilées : *Distutils* ajoute " +"automatiquement ``initmodule`` à la liste des symboles exportés." #: ../Doc/distutils/setupscript.rst:356 msgid "" @@ -424,32 +620,40 @@ msgid "" "sources to rebuild extension if any on this files has been modified since " "the previous build." msgstr "" +"L'option ``depends`` est une liste de fichiers dont les extensions dépendent " +"(par exemple les fichiers d'en-têtes). La commande ``build`` appelle le " +"compilateur sur les sources pour reconstruire l'extension si un de ces " +"fichiers a été modifié depuis la dernière construction." #: ../Doc/distutils/setupscript.rst:362 msgid "Relationships between Distributions and Packages" -msgstr "" +msgstr "Relations entre distributions et paquets" #: ../Doc/distutils/setupscript.rst:364 msgid "A distribution may relate to packages in three specific ways:" msgstr "" +"Une distribution peut se rapporter à des paquets de trois manières " +"spécifiques :" #: ../Doc/distutils/setupscript.rst:366 msgid "It can require packages or modules." -msgstr "" +msgstr "elle peut nécessiter des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:368 msgid "It can provide packages or modules." -msgstr "" +msgstr "elle peut fournir des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:370 msgid "It can obsolete packages or modules." -msgstr "" +msgstr "elle peut rendre obsolète des paquets ou des modules." #: ../Doc/distutils/setupscript.rst:372 msgid "" "These relationships can be specified using keyword arguments to the :func:" "`distutils.core.setup` function." msgstr "" +"Ces relations peuvent être définies en utilisant des paramètres nommés dans " +"la fonction :func:`distutils.core.setup`." #: ../Doc/distutils/setupscript.rst:375 msgid "" @@ -458,6 +662,10 @@ msgid "" "be a list of strings. Each string specifies a package that is required, and " "optionally what versions are sufficient." msgstr "" +"Les dépendances à d'autres modules et paquets Python peuvent être définies " +"en fournissant le paramètre nommé ``requires`` à :func:`setup`. La valeur " +"doit être une liste de chaînes de caractères. Chaque chaîne de caractères " +"définit un paquet requis et, en option, les versions minimales." #: ../Doc/distutils/setupscript.rst:380 msgid "" @@ -465,6 +673,9 @@ msgid "" "should consist entirely of the module or package name. Examples include " "``'mymodule'`` and ``'xml.parsers.expat'``." msgstr "" +"S'il n'est pas nécessaire de préciser la version d'un module ou d'un paquet, " +"la chaîne de caractères contient simplement les noms de modules ou de " +"paquets. Par exemple ``mymodule`` et ``'xml.parsers.expat'``." #: ../Doc/distutils/setupscript.rst:384 msgid "" @@ -472,6 +683,10 @@ msgid "" "in parentheses. Each qualifier may consist of a comparison operator and a " "version number. The accepted comparison operators are::" msgstr "" +"Si des versions spécifiques sont requises, une suite de qualificatifs peut " +"être fournie entre parenthèses. Chaque qualificatif peut contenir un " +"opérateur de comparaison et un numéro de version. Les opérateurs de " +"comparaison acceptés sont ::" #: ../Doc/distutils/setupscript.rst:391 msgid "" @@ -479,14 +694,18 @@ msgid "" "optional whitespace). In this case, all of the qualifiers must be matched; " "a logical AND is used to combine the evaluations." msgstr "" +"Ils peuvent être combinés en utilisant plusieurs qualificatifs séparés par " +"des virgules (et de façon optionnelle, des espaces). Dans ce cas, tous les " +"qualificatifs doivent être respectés ; un ET logique est utilisé pour " +"combiner les évaluations." #: ../Doc/distutils/setupscript.rst:395 msgid "Let's look at a bunch of examples:" -msgstr "" +msgstr "Jetons un œil à quelques exemples :" #: ../Doc/distutils/setupscript.rst:398 msgid "Requires Expression" -msgstr "" +msgstr "Valeur de ``requires``" #: ../Doc/distutils/setupscript.rst:398 ../Doc/distutils/setupscript.rst:416 msgid "Explanation" @@ -494,20 +713,22 @@ msgstr "Explication" #: ../Doc/distutils/setupscript.rst:400 msgid "``==1.0``" -msgstr "" +msgstr "``==1.0``" #: ../Doc/distutils/setupscript.rst:400 msgid "Only version ``1.0`` is compatible" -msgstr "" +msgstr "Seule la version ``1.0`` est compatible." #: ../Doc/distutils/setupscript.rst:402 msgid "``>1.0, !=1.5.1, <2.0``" -msgstr "" +msgstr "``>1.0, !=1.5.1, <2.0``" #: ../Doc/distutils/setupscript.rst:402 msgid "" "Any version after ``1.0`` and before ``2.0`` is compatible, except ``1.5.1``" msgstr "" +"Toute version après ``1.0`` et avant ``2.0`` est compatible, à l'exception " +"de ``1.5.1``." #: ../Doc/distutils/setupscript.rst:406 msgid "" @@ -518,6 +739,13 @@ msgid "" "optionally identifies the version. If the version is not specified, it is " "assumed to match that of the distribution." msgstr "" +"Maintenant que nous pouvons définir des dépendances, nous devons également " +"être en mesure de définir ce que d'autres distributions peuvent attendre de " +"notre part. Cela est réalisé en utilisant l'argument nommé *provides* dans :" +"func:`setup`. La valeur de cet argument est une liste de chaînes de " +"caractères, chacune d'entre elles étant un module Python ou un paquet et, de " +"façon optionnelle, identifie une version. Si la version n'est pas définie, " +"il est supposé qu'elle correspond à celle de la distribution." #: ../Doc/distutils/setupscript.rst:413 msgid "Some examples:" @@ -525,23 +753,25 @@ msgstr "Quelques exemples :" #: ../Doc/distutils/setupscript.rst:416 msgid "Provides Expression" -msgstr "" +msgstr "Valeur de ``provides``" #: ../Doc/distutils/setupscript.rst:418 msgid "``mypkg``" -msgstr "" +msgstr "``mypkg``" #: ../Doc/distutils/setupscript.rst:418 msgid "Provide ``mypkg``, using the distribution version" -msgstr "" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." #: ../Doc/distutils/setupscript.rst:421 msgid "``mypkg (1.1)``" -msgstr "" +msgstr "``mypkg (1.1)``" #: ../Doc/distutils/setupscript.rst:421 msgid "Provide ``mypkg`` version 1.1, regardless of the distribution version" msgstr "" +"Fournit ``mypkg`` en version 1.1, indépendamment de la version de la " +"distribution." #: ../Doc/distutils/setupscript.rst:425 msgid "" @@ -552,6 +782,13 @@ msgid "" "more version qualifiers. Version qualifiers are given in parentheses after " "the module or package name." msgstr "" +"On peut déclarer d'autres paquets obsolètes dans un paquet en utilisant " +"l'argument nommé *obsoletes*. La valeur pour celui-ci est similaire à celui " +"de l'argument nommé *requires* : une liste de chaînes de caractères donnant " +"les spécifications du module ou du paquet. Chaque spécification est " +"constituée d'un nom de module ou de paquet qui peut être suivi au choix par " +"un ou plusieurs qualificateurs de versions. Les qualificateurs de versions " +"sont donnés entre parenthèses après le nom de module ou de paquet." #: ../Doc/distutils/setupscript.rst:432 msgid "" @@ -559,16 +796,23 @@ msgid "" "the distribution being described. If no qualifiers are given, all versions " "of the named module or package are understood to be obsoleted." msgstr "" +"Les versions identifiées par les qualificateurs sont celles qui sont rendues " +"obsolètes par la distribution décrite. Si aucun qualificateur n'est donné, " +"toutes les versions du module ou du paquet nommé sont considérées comme " +"obsolètes." #: ../Doc/distutils/setupscript.rst:439 msgid "Installing Scripts" -msgstr "" +msgstr "Installation des scripts" #: ../Doc/distutils/setupscript.rst:441 msgid "" "So far we have been dealing with pure and non-pure Python modules, which are " "usually not run by themselves but imported by scripts." msgstr "" +"Jusqu'à présent nous avons interagi avec des modules Python purs ou non, qui " +"ne sont habituellement pas lancés par eux-mêmes mais importés par des " +"scripts." #: ../Doc/distutils/setupscript.rst:444 msgid "" @@ -581,22 +825,35 @@ msgid "" "`!--executable` (or :option:`!-e`) option will allow the interpreter path to " "be explicitly overridden." msgstr "" +"Les scripts sont des fichiers contenant du code source Python prévus pour " +"être lancés en ligne de commande. Les scripts n'ont pas besoin des " +"*Distutils* pour faire quoi que ce soit de très compliqué. La seule " +"fonctionnalité astucieuse est que la première ligne du script commence par " +"``#!`` et contient le mot « python », les *Distutils* ajusteront la première " +"ligne pour faire référence à l'emplacement actuel de l'interpréteur. Par " +"défaut, elle est remplacée par l'emplacement de l'interpréteur en fonction. " +"L'option :option:`!--executable` (ou :option:`!-e`) permet de définir " +"explicitement le chemin vers l'interpréteur." #: ../Doc/distutils/setupscript.rst:452 msgid "" "The ``scripts`` option simply is a list of files to be handled in this way. " "From the PyXML setup script::" msgstr "" +"L'option ``scripts`` est simplement une liste de fichiers à utiliser de " +"cette façon. Dans le script ``setup.py`` de PyML ::" #: ../Doc/distutils/setupscript.rst:459 msgid "" "All the scripts will also be added to the ``MANIFEST`` file if no template " "is provided. See :ref:`manifest`." msgstr "" +"Tous les scripts seront aussi ajoutés au fichier ``MANIFEST`` si aucun " +"modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:467 msgid "Installing Package Data" -msgstr "" +msgstr "Installation de paquets de données" #: ../Doc/distutils/setupscript.rst:469 msgid "" @@ -605,6 +862,11 @@ msgid "" "text files containing documentation that might be of interest to programmers " "using the package. These files are called :dfn:`package data`." msgstr "" +"Souvent, des fichiers additionnels doivent être installés dans le paquet. " +"Ces fichiers sont souvent de la donnée qui est intimement liée à " +"l'implémentation du paquet, ou des fichiers textes contenant de la " +"documentation intéressant le programmeur utilisant le paquet. Ces fichiers " +"sont appelés :dfn:`paquets de données `." #: ../Doc/distutils/setupscript.rst:474 msgid "" @@ -616,32 +878,47 @@ msgid "" "appropriate); that is, the files are expected to be part of the package in " "the source directories. They may contain glob patterns as well." msgstr "" +"Les paquets de données peuvent être ajoutés en utilisant l'argument nommé " +"``package_data`` dans la fonction :func:`setup`. La valeur doit être un " +"tableau de correspondances entre le nom du paquet et une liste de chemins " +"relatifs à copier dans le paquet. Les chemins sont interprétés relativement " +"au répertoire contenant le paquet (l'information du mappage ``package_dir`` " +"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers " +"fassent partie du répertoire source du paquet. Ils peuvent également " +"contenir des motifs `glob`." #: ../Doc/distutils/setupscript.rst:482 msgid "" "The path names may contain directory portions; any necessary directories " "will be created in the installation." msgstr "" +"Les chemins d'accès peuvent contenir une hiérarchie de répertoires ; tout " +"répertoire nécessaire sera créé dans cette installation." #: ../Doc/distutils/setupscript.rst:485 msgid "" "For example, if a package should contain a subdirectory with several data " "files, the files can be arranged like this in the source tree::" msgstr "" +"Par exemple, si un paquet doit inclure un sous-répertoire avec plusieurs " +"fichiers de donnée, les fichiers peuvent être organisés dans l'arborescence " +"de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:498 msgid "The corresponding call to :func:`setup` might be::" -msgstr "" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" #: ../Doc/distutils/setupscript.rst:507 msgid "" "All the files that match ``package_data`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``package_data`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:515 msgid "Installing Additional Files" -msgstr "" +msgstr "Installation de fichiers additionnels" #: ../Doc/distutils/setupscript.rst:517 msgid "" @@ -649,12 +926,18 @@ msgid "" "the module distribution: configuration files, message catalogs, data files, " "anything which doesn't fit in the previous categories." msgstr "" +"L'option ``data_files`` peut être utilisée pour définir des fichiers " +"additionnels requis pour la distribution du module : fichiers de " +"configuration, catalogues de messages, fichiers de donnée, tout ce qui ne " +"rentre pas dans les catégories précédentes." #: ../Doc/distutils/setupscript.rst:521 msgid "" "``data_files`` specifies a sequence of (*directory*, *files*) pairs in the " "following way::" msgstr "" +"``data_files`` définit une séquence de paires (*répertoires*, *fichiers*) de " +"la façon suivante ::" #: ../Doc/distutils/setupscript.rst:530 msgid "" @@ -682,26 +965,36 @@ msgid "" "files directly in the target directory, an empty string should be given as " "the directory." msgstr "" +"Vous pouvez définir les options ``data_files`` comme une simple succession " +"de fichiers sans définir de répertoire cible, mais cela n'est pas " +"recommandé, et la commande :command:`install` affichera un message d'alerte " +"dans ce cas. Pour installer des fichiers de donnée directement dans le " +"répertoire cible, une chaîne de caractère vide doit être donnée en tant que " +"répertoire." #: ../Doc/distutils/setupscript.rst:548 msgid "" "All the files that match ``data_files`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``data_files`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:556 msgid "Additional meta-data" -msgstr "" +msgstr "Métadonnées additionnelles" #: ../Doc/distutils/setupscript.rst:558 msgid "" "The setup script may include additional meta-data beyond the name and " "version. This information includes:" msgstr "" +"Le script ``setup.py`` peut inclure des métadonnées additionnelles en plus " +"du nom et de la version. Cela inclut les informations suivantes :" #: ../Doc/distutils/setupscript.rst:562 msgid "Meta-Data" -msgstr "" +msgstr "Métadonnées" #: ../Doc/distutils/setupscript.rst:562 msgid "Description" @@ -721,13 +1014,13 @@ msgstr "``name``" #: ../Doc/distutils/setupscript.rst:564 msgid "name of the package" -msgstr "" +msgstr "nom du paquet" #: ../Doc/distutils/setupscript.rst:564 ../Doc/distutils/setupscript.rst:566 #: ../Doc/distutils/setupscript.rst:568 ../Doc/distutils/setupscript.rst:573 #: ../Doc/distutils/setupscript.rst:580 ../Doc/distutils/setupscript.rst:594 msgid "short string" -msgstr "" +msgstr "courte chaîne de caractères" #: ../Doc/distutils/setupscript.rst:564 ../Doc/distutils/setupscript.rst:578 msgid "\\(1)" @@ -739,7 +1032,7 @@ msgstr "``version``" #: ../Doc/distutils/setupscript.rst:566 msgid "version of this release" -msgstr "" +msgstr "version de la publication" #: ../Doc/distutils/setupscript.rst:566 msgid "(1)(2)" @@ -747,11 +1040,11 @@ msgstr "(1)(2)" #: ../Doc/distutils/setupscript.rst:568 msgid "``author``" -msgstr "" +msgstr "``author``" #: ../Doc/distutils/setupscript.rst:568 msgid "package author's name" -msgstr "" +msgstr "nom de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:568 ../Doc/distutils/setupscript.rst:570 #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:575 @@ -760,31 +1053,31 @@ msgstr "\\(3)" #: ../Doc/distutils/setupscript.rst:570 msgid "``author_email``" -msgstr "" +msgstr "``author_email``" #: ../Doc/distutils/setupscript.rst:570 msgid "email address of the package author" -msgstr "" +msgstr "adresse courriel de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:570 ../Doc/distutils/setupscript.rst:575 msgid "email address" -msgstr "" +msgstr "adresse de courriel" #: ../Doc/distutils/setupscript.rst:573 msgid "``maintainer``" -msgstr "" +msgstr "``maintainer``" #: ../Doc/distutils/setupscript.rst:573 msgid "package maintainer's name" -msgstr "" +msgstr "nom du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:575 msgid "``maintainer_email``" -msgstr "" +msgstr "``maintainer_email``" #: ../Doc/distutils/setupscript.rst:575 msgid "email address of the package maintainer" -msgstr "" +msgstr "adresse du courriel du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:578 msgid "``url``" @@ -792,11 +1085,11 @@ msgstr "``url``" #: ../Doc/distutils/setupscript.rst:578 msgid "home page for the package" -msgstr "" +msgstr "page d’accueil du paquet" #: ../Doc/distutils/setupscript.rst:578 ../Doc/distutils/setupscript.rst:587 msgid "URL" -msgstr "" +msgstr "URL" #: ../Doc/distutils/setupscript.rst:580 msgid "``description``" @@ -804,7 +1097,7 @@ msgstr "``description``" #: ../Doc/distutils/setupscript.rst:580 msgid "short, summary description of the package" -msgstr "" +msgstr "bref résumé décrivant le paquet" #: ../Doc/distutils/setupscript.rst:584 msgid "``long_description``" @@ -812,11 +1105,11 @@ msgstr "``long_description``" #: ../Doc/distutils/setupscript.rst:584 msgid "longer description of the package" -msgstr "" +msgstr "description plus complète du paquet" #: ../Doc/distutils/setupscript.rst:584 msgid "long string" -msgstr "" +msgstr "longue chaîne de caractères" #: ../Doc/distutils/setupscript.rst:584 msgid "\\(5)" @@ -824,11 +1117,11 @@ msgstr "\\(5)" #: ../Doc/distutils/setupscript.rst:587 msgid "``download_url``" -msgstr "" +msgstr "``download_url``" #: ../Doc/distutils/setupscript.rst:587 msgid "location where the package may be downloaded" -msgstr "" +msgstr "endroit où le paquet peut être téléchargé" #: ../Doc/distutils/setupscript.rst:587 ../Doc/distutils/setupscript.rst:590 msgid "\\(4)" @@ -836,23 +1129,23 @@ msgstr "\\(4)" #: ../Doc/distutils/setupscript.rst:590 msgid "``classifiers``" -msgstr "" +msgstr "``classifiers``" #: ../Doc/distutils/setupscript.rst:590 msgid "a list of classifiers" -msgstr "" +msgstr "une liste de classificateurs" #: ../Doc/distutils/setupscript.rst:590 ../Doc/distutils/setupscript.rst:592 msgid "list of strings" -msgstr "" +msgstr "liste de chaînes de caractères" #: ../Doc/distutils/setupscript.rst:592 msgid "``platforms``" -msgstr "" +msgstr "``platforms``" #: ../Doc/distutils/setupscript.rst:592 msgid "a list of platforms" -msgstr "" +msgstr "une liste de plateformes" #: ../Doc/distutils/setupscript.rst:594 msgid "``license``" @@ -860,7 +1153,7 @@ msgstr "``license``" #: ../Doc/distutils/setupscript.rst:594 msgid "license for the package" -msgstr "" +msgstr "licence du paquet" #: ../Doc/distutils/setupscript.rst:594 msgid "\\(6)" @@ -872,18 +1165,22 @@ msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:600 msgid "These fields are required." -msgstr "" +msgstr "Ces champs sont requis." #: ../Doc/distutils/setupscript.rst:603 msgid "" "It is recommended that versions take the form *major.minor[.patch[.sub]]*." msgstr "" +"Il est recommandé que les versions prennent la forme *majeure.mineure[." +"correctif[.sous-correctif]]*." #: ../Doc/distutils/setupscript.rst:606 msgid "" "Either the author or the maintainer must be identified. If maintainer is " "provided, distutils lists it as the author in :file:`PKG-INFO`." msgstr "" +"L'auteur ou un mainteneur doit être identifié. Si un mainteneur est fourni, " +"*distutils* l'indique en tant qu'auteur dans le fichier :file:`PKG-INFO`." #: ../Doc/distutils/setupscript.rst:610 msgid "" @@ -906,6 +1203,11 @@ msgid "" "See the ``Classifier`` field. Notice that there's a ``licence`` distribution " "option which is deprecated but still acts as an alias for ``license``." msgstr "" +"Le champ ``license`` est un texte indiquant la licence du paquet quand la " +"licence n'est pas indiquée dans les classificateurs de type « Licence » " +"Trove. Voir le champ ``Classifier``. À noter qu'il y a une option de " +"distribution ``licence`` qui est obsolète mais agit toujours comme un alias " +"pour ``license``." #: ../Doc/distutils/setupscript.rst:627 msgid "'short string'" @@ -913,7 +1215,7 @@ msgstr "'chaîne courte'" #: ../Doc/distutils/setupscript.rst:627 msgid "A single line of text, not more than 200 characters." -msgstr "" +msgstr "Une simple ligne de texte ne dépassant par 200 caractères." #: ../Doc/distutils/setupscript.rst:631 msgid "'long string'" @@ -924,6 +1226,8 @@ msgid "" "Multiple lines of plain text in reStructuredText format (see http://docutils." "sourceforge.net/)." msgstr "" +"De multiples lignes de texte au format ReStructuredText (voir http://" +"docutils.sourceforge.net/)." #: ../Doc/distutils/setupscript.rst:634 msgid "'list of strings'" @@ -931,7 +1235,7 @@ msgstr "'liste de chaînes'" #: ../Doc/distutils/setupscript.rst:634 msgid "See below." -msgstr "" +msgstr "Voir ci-dessous." #: ../Doc/distutils/setupscript.rst:636 msgid "" @@ -947,22 +1251,34 @@ msgid "" "which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " "testing). Some examples:" msgstr "" +"Encoder les informations de version est un art en soi. Les paquets Python " +"adhèrent généralement au format de version *majeure.mineure[.correctif]" +"[sous]*. Le numéro majeur 0 est utilisé pour les publications " +"expérimentales, initiales d'un logiciel. Il est incrémenté pour les " +"publications qui représentent des étapes majeures pour le paquet. Le nombre " +"mineur est incrémenté quand d'importantes nouvelles fonctionnalités sont " +"ajoutées au paquet. Le numéro de correctif s'incrémente lors de la " +"publication d'une correction de bogue est faite. Celles-ci sont \"*a1,a2,...," +"aN*\" (pour les publications alpha, où les fonctionnalités et l'API peut " +"changer), \"*b1,b2,...,bN*\" (pour les publications *beta*, qui corrigent " +"seulement les bogues) et \"*pr1,pr2,...,prN*\" (pour les ultimes pré-" +"publication et publications de test). Quelques exemples :" #: ../Doc/distutils/setupscript.rst:648 msgid "0.1.0" -msgstr "" +msgstr "0.1.0" #: ../Doc/distutils/setupscript.rst:648 msgid "the first, experimental release of a package" -msgstr "" +msgstr "la première, publication expérimentale du paquet" #: ../Doc/distutils/setupscript.rst:651 msgid "1.0.1a2" -msgstr "" +msgstr "1.0.1a2" #: ../Doc/distutils/setupscript.rst:651 msgid "the second alpha release of the first patch version of 1.0" -msgstr "" +msgstr "la seconde publication alpha du premier correctif de la version 1.0" #: ../Doc/distutils/setupscript.rst:653 msgid "``classifiers`` are specified in a Python list::" @@ -970,13 +1286,15 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:677 msgid "Debugging the setup script" -msgstr "" +msgstr "Débogage du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:679 msgid "" "Sometimes things go wrong, and the setup script doesn't do what the " "developer wants." msgstr "" +"Parfois les choses tournent mal et le script ``setup.py`` ne fait pas ce que " +"le développeur veut." #: ../Doc/distutils/setupscript.rst:682 msgid "" @@ -988,6 +1306,14 @@ msgid "" "or the Python installation is broken because they don't read all the way " "down to the bottom and see that it's a permission problem." msgstr "" +"*Distutils* intercepte toute exception lors de l'exécution du script ``setup." +"py`` et affiche un message d'erreur simple avant d'arrêter le script. L'idée " +"est de ne pas embrouiller les administrateurs qui ne savent pas grand-chose " +"de Python et qui essayent d'installer un paquet. S'ils reçoivent une grosse " +"et longue trace d'appels provenant des entrailles de *Distutils*, ils " +"peuvent penser que le paquet ou que l'installation de Python est corrompue " +"car, ils ne lisent pas tout jusqu'en bas alors que c'est un problème de " +"droits." #: ../Doc/distutils/setupscript.rst:690 msgid "" @@ -998,3 +1324,10 @@ msgid "" "traceback when an exception occurs, and print the whole command line when an " "external program (like a C compiler) fails." msgstr "" +"D'un autre côté, cela n'aide pas le développeur à trouver la cause du " +"problème. À cette fin, la variable d'environnement :envvar:`DISTUTILS_DEBUG` " +"peut être assignée à n'importe quoi sauf une chaîne de caractères vide, et " +"*distutils* affichera maintenant une information détaillée à propos de ce " +"qu'il fait, déversera la trace d'appels complète lors d'une exception, et " +"affichera la ligne de commande complète quand un programme externe (comme un " +"compilateur C) échoue." diff --git a/extending/extending.po b/extending/extending.po index 97f1dfb6a..c7122f63f 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -627,6 +627,10 @@ msgid "" "`PyInit_name`, where *name* is the name of the module, and should be the " "only non-\\ ``static`` item defined in the module file::" msgstr "" +"Cette structure, à son tour, doit être transmise à l'interpréteur dans la " +"fonction d'initialisation du module. La fonction d'initialisation doit être " +"nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit être le " +"seul élément non ``static`` défini dans le fichier du module ::" #: ../Doc/extending/extending.rst:357 msgid "" @@ -634,6 +638,10 @@ msgid "" "type, declares any special linkage declarations required by the platform, " "and for C++ declares the function as ``extern \"C\"``." msgstr "" +"Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet de " +"type ``PyObject *``, et déclare également toute déclaration de liaison " +"spéciale requise par la plate-forme, et pour le C++ déclare la fonction " +"comme un C ``extern``." #: ../Doc/extending/extending.rst:361 msgid "" @@ -656,6 +664,11 @@ msgid "" "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" +"Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est pas " +"appelée automatiquement, sauf s'il y a une entrée dans la table :c:data:" +"`PyImport_Inittab`. Pour ajouter le module à la table d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivi éventuellement d'une " +"importation du module ::" #: ../Doc/extending/extending.rst:408 msgid "" @@ -665,6 +678,12 @@ msgid "" "extension modules. Extension module authors should exercise caution when " "initializing internal data structures." msgstr "" +"Supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un processus (ou suivre un :c:func:" +"`fork` sans l'intervention d'un :c:func:`exec`) peut créer des problèmes " +"pour certains modules d'extension. Les auteurs de modules d'extension " +"doivent faire preuve de prudence lorsqu'ils initialisent des structures de " +"données internes." #: ../Doc/extending/extending.rst:414 msgid "" @@ -672,6 +691,9 @@ msgid "" "distribution as :file:`Modules/xxmodule.c`. This file may be used as a " "template or simply read as an example." msgstr "" +"Un exemple de module plus substantiel est inclus dans la distribution des " +"sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " +"utilisé comme modèle ou simplement lu comme exemple." #: ../Doc/extending/extending.rst:420 msgid "" @@ -680,10 +702,15 @@ msgid "" "``PyInit_spam``, and creation of the module is left to the import machinery. " "For details on multi-phase initialization, see :PEP:`489`." msgstr "" +"Contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phase* (nouveau en Python 3.5), où une structure " +"*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " +"module est laissée au mécanisme d'importation. Pour plus de détails sur " +"l'initialisation multi-phase, voir :PEP:`489`." #: ../Doc/extending/extending.rst:429 msgid "Compilation and Linkage" -msgstr "" +msgstr "Compilation et liaison" #: ../Doc/extending/extending.rst:431 msgid "" @@ -722,7 +749,7 @@ msgstr "" #: ../Doc/extending/extending.rst:466 msgid "Calling Python Functions from C" -msgstr "" +msgstr "Appeler des fonctions Python en C" #: ../Doc/extending/extending.rst:468 msgid "" @@ -761,6 +788,10 @@ msgid "" "c:func:`PyArg_ParseTuple` function and its arguments are documented in " "section :ref:`parsetuple`." msgstr "" +"Cette fonction doit être déclarée en utilisant le drapeau :const:" +"`METH_VARARGS` ; ceci est décrit dans la section :ref:`methodtable`. La " +"fonction :c:func:`PyArg_ParseTuple` et ses arguments sont documentés dans la " +"section :ref:`parsetuple`." #: ../Doc/extending/extending.rst:517 msgid "" @@ -822,6 +853,16 @@ msgid "" "simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " "you want to pass an integral event code, you might use the following code::" msgstr "" +"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " +"peut-être aussi fournir une liste d'arguments à :c:func:" +"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également " +"fournie par le programme Python, par l'intermédiaire de la même interface " +"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et " +"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous " +"pouvez avoir à construire un nouveau n-uplet à passer comme liste " +"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:" +"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement " +"intégral, vous pouvez utiliser le code suivant ::" #: ../Doc/extending/extending.rst:588 msgid "" @@ -837,14 +878,18 @@ msgid "" "`PyObject_Call`, which supports arguments and keyword arguments. As in the " "above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" msgstr "" +"Vous pouvez également appeler une fonction avec des arguments nommés en " +"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " +"arguments nommés. Comme dans l'exemple ci-dessus, nous utilisons :c:func:" +"`Py_BuildValue` pour construire le dictionnaire. ::" #: ../Doc/extending/extending.rst:610 msgid "Extracting Parameters in Extension Functions" -msgstr "" +msgstr "Extraire des paramètres dans des fonctions d'extension" #: ../Doc/extending/extending.rst:614 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" -msgstr "" +msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" #: ../Doc/extending/extending.rst:618 msgid "" @@ -874,16 +919,17 @@ msgstr "" #: ../Doc/extending/extending.rst:632 msgid "Some example calls::" -msgstr "" +msgstr "Quelques exemples d'appels ::" #: ../Doc/extending/extending.rst:702 msgid "Keyword Parameters for Extension Functions" -msgstr "" +msgstr "Paramètres nommés pour des fonctions d'extension" #: ../Doc/extending/extending.rst:706 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" +"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" #: ../Doc/extending/extending.rst:711 msgid "" @@ -902,22 +948,29 @@ msgid "" "parameters passed in which are not present in the *kwlist* will cause :exc:" "`TypeError` to be raised." msgstr "" +"Les n-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments de type mot-clé ! Ceux-ci doivent apparaître dans dans *kwlist*, " +"dans le cas contraire une exception :exc:`TypeError` est levée." #: ../Doc/extending/extending.rst:727 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" +"Voici un exemple de module qui utilise des mots-clés, basé sur un exemple de " +"*Geoff Philbrick* (philbrick@hks.com) ::" #: ../Doc/extending/extending.rst:781 msgid "Building Arbitrary Values" -msgstr "" +msgstr "Créer des valeurs arbitraires" #: ../Doc/extending/extending.rst:783 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" +"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " +"déclarée comme suit ::" #: ../Doc/extending/extending.rst:788 msgid "" @@ -926,6 +979,11 @@ msgid "" "not output) must not be pointers, just values. It returns a new Python " "object, suitable for returning from a C function called from Python." msgstr "" +"Il reconnaît un ensemble d'unités de format similaires à celles reconnues " +"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " +"entrée de fonction, et non de la sortie) ne doivent pas être des pointeurs, " +"mais juste des valeurs. Il renvoie un nouvel objet Python, adapté pour être " +"renvoyé par une fonction C appelée depuis Python." #: ../Doc/extending/extending.rst:793 msgid "" @@ -943,10 +1001,11 @@ msgstr "" msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" +"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" #: ../Doc/extending/extending.rst:827 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" #: ../Doc/extending/extending.rst:829 msgid "" @@ -956,6 +1015,12 @@ msgid "" "``new`` and ``delete`` are used with essentially the same meaning and we'll " "restrict the following discussion to the C case." msgstr "" +"Dans les langages comme le C ou le C++, le développeur est responsable de " +"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " +"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " +"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " +"essentiellement la même signification et nous limiterons la discussion " +"suivante au cas du C." #: ../Doc/extending/extending.rst:835 msgid "" @@ -999,6 +1064,14 @@ msgid "" "reference to it is deleted. When the counter reaches zero, the last " "reference to the object has been deleted and the object is freed." msgstr "" +"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:" +"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:" +"`reference counting`. Le principe est simple : chaque objet contient un " +"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée " +"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est " +"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet " +"a été supprimée et l'objet est libéré." #: ../Doc/extending/extending.rst:867 msgid "" @@ -1015,6 +1088,19 @@ msgid "" "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" +"Une stratégie alternative est appelée :dfn:`automatic garbage collection` " +"(ramasse-miettes). Parfois, le comptage des références est également appelé " +"stratégie de ramasse-miettes, d'où l'utilisation du terme \"automatique\" " +"pour distinguer les deux. Le grand avantage du ramasse-miettes est que " +"l'utilisateur n'a pas besoin d'appeler :c:func:`free` explicitement. (Un " +"autre avantage important est l'amélioration de la vitesse ou de " +"l'utilisation de la mémoire, ce n'est cependant pas un fait avéré). " +"L'inconvénient est que pour C, il n'y a pas de ramasse-miettes portable " +"proprement-dit, alors que le comptage des références peut être implémenté de " +"façon portable (tant que les fonctions :c:func:`malloc` et :c:func:`free` " +"soient disponibles, ce que la norme C garantit). Peut-être qu'un jour un " +"ramasse-miettes suffisamment portable sera disponible pour C. D'ici là, nous " +"devrons utiliser les compteurs des références." #: ../Doc/extending/extending.rst:879 msgid "" @@ -1029,6 +1115,18 @@ msgid "" "in a reference cycle, or referenced from the objects in the cycle, even " "though there are no further references to the cycle itself." msgstr "" +"Bien que Python utilise l'implémentation traditionnelle de comptage de " +"référence, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de référence. Cela permet aux applications d'empêcher la " +"création de références circulaires directes ou indirectes ; ceci sont les " +"faiblesses du ramasse-miettes mis en œuvre en utilisant uniquement le " +"comptage de référence. Les cycles de référence sont constitués d'objets qui " +"contiennent des références (éventuellement indirectes) à eux-mêmes, de sorte " +"que chaque objet du cycle a un comptage de référence qui n'est pas nul. Les " +"implémentations typiques de comptage de référence ne sont pas capables de " +"récupérer la mémoire appartenant à des objets dans un cycle de référence, ou " +"référencés à partir des objets dans le cycle, même s'il n'y a pas d'autres " +"références au cycle lui-même." #: ../Doc/extending/extending.rst:890 msgid "" @@ -1044,7 +1142,7 @@ msgstr "" #: ../Doc/extending/extending.rst:904 msgid "Reference Counting in Python" -msgstr "" +msgstr "Comptage de références en Python" #: ../Doc/extending/extending.rst:906 msgid "" @@ -1056,6 +1154,13 @@ msgid "" "this purpose (and others), every object also contains a pointer to its type " "object." msgstr "" +"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " +"l'incrémentation et la décrémentation du comptage de référence. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le comptage atteint zéro. Pour " +"plus de flexibilité, il n'appelle pas :c:func:`free` directement — plutôt, " +"il fait un appel à travers un pointeur de fonction dans l'objet :dfn:`type " +"objet` de l'objet. À cette fin (et pour d'autres), chaque objet contient " +"également un pointeur vers son objet type." #: ../Doc/extending/extending.rst:913 msgid "" @@ -1069,6 +1174,16 @@ msgid "" "on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " "reference creates a memory leak." msgstr "" +"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " +"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " +"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " +"comptage de références d'un objet est maintenant défini comme étant le " +"nombre de références à cet objet. Le propriétaire d'une référence est " +"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " +"nécessaire. La propriété d'une référence peut être transférée. Il y a trois " +"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :" +"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite " +"de mémoire." #: ../Doc/extending/extending.rst:922 msgid "" @@ -1089,6 +1204,14 @@ msgid "" "code a borrowed reference can be used after the owner from which it was " "borrowed has in fact disposed of it." msgstr "" +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence est que " +"vous n'avez pas à vous soucier de disposer de la référence sur tous les " +"chemins possibles dans le code — en d'autres termes, avec une référence " +"empruntée, vous ne courez pas le risque de fuites lors d'une sortie " +"prématurée. L'inconvénient de l'emprunt par rapport à la possession est " +"qu'il existe certaines situations subtiles où, dans un code apparemment " +"correct, une référence empruntée peut être utilisée après que le " +"propriétaire auquel elle a été empruntée l'a en fait éliminée." #: ../Doc/extending/extending.rst:936 msgid "" @@ -1101,7 +1224,7 @@ msgstr "" #: ../Doc/extending/extending.rst:946 msgid "Ownership Rules" -msgstr "" +msgstr "Règles concernant la propriété de références" #: ../Doc/extending/extending.rst:948 msgid "" @@ -1109,6 +1232,10 @@ msgid "" "of the function's interface specification whether ownership is transferred " "with the reference or not." msgstr "" +"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " +"l'extérieur d'une fonction, elle fait partie de la spécification de " +"l'interface de la fonction, peu importe que la propriété soit transférée " +"avec la référence ou non." #: ../Doc/extending/extending.rst:952 msgid "" @@ -1168,7 +1295,7 @@ msgstr "" #: ../Doc/extending/extending.rst:993 msgid "Thin Ice" -msgstr "" +msgstr "Terrain dangereux" #: ../Doc/extending/extending.rst:995 msgid "" @@ -1177,6 +1304,10 @@ msgid "" "invocations of the interpreter, which can cause the owner of a reference to " "dispose of it." msgstr "" +"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " +"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " +"lien avec des invocations implicites de l’interpréteur, et peuvent amener le " +"propriétaire d'une référence à s'en défaire." #: ../Doc/extending/extending.rst:999 msgid "" @@ -1184,6 +1315,9 @@ msgid "" "on an unrelated object while borrowing a reference to a list item. For " "instance::" msgstr "" +"Le premier cas, et le plus important à connaître, est celui de l'application " +"de :c:func:`Py_DECREF` à un objet non relié, tout en empruntant une " +"référence à un élément de liste. Par exemple ::" #: ../Doc/extending/extending.rst:1011 msgid "" @@ -1191,6 +1325,9 @@ msgid "" "``list[1]`` with the value ``0``, and finally prints the borrowed reference. " "Looks harmless, right? But it's not!" msgstr "" +"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " +"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " +"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" #: ../Doc/extending/extending.rst:1015 msgid "" @@ -1201,6 +1338,13 @@ msgid "" "defined a :meth:`__del__` method. If this class instance has a reference " "count of 1, disposing of it will call its :meth:`__del__` method." msgstr "" +"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " +"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " +"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " +"l'élément 1 original était une instance d'une classe définie par " +"l'utilisateur, et supposons en outre que la classe définisse une méthode :" +"meth:`__del__`. Si l'instance de cette classe a un nombre des références de " +"1, sa destruction appellera sa méthode :meth:`__del__`." #: ../Doc/extending/extending.rst:1022 msgid "" @@ -1212,6 +1356,13 @@ msgid "" "this was the last reference to that object, it would free the memory " "associated with it, thereby invalidating ``item``." msgstr "" +"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " +"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " +"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " +"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " +"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " +"supposant que ce soit la dernière référence à cet objet, elle libérerait la " +"mémoire qui lui est associée, invalidant ainsi ``item``." #: ../Doc/extending/extending.rst:1030 msgid "" @@ -1238,10 +1389,20 @@ msgid "" "complete. Obviously, the following function has the same problem as the " "previous one::" msgstr "" +"Le deuxième cas de problèmes liés à une référence empruntée est une variante " +"impliquant des fils de discussion. Normalement, plusieurs threads dans " +"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " +"verrou global protégeant tout l'espace objet de Python. Cependant, il est " +"possible de libérer temporairement ce verrou en utilisant la macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en utilisant :c:macro:" +"`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour bloquer les appels " +"d'entrées/sorties, afin de permettre aux autres threads d'utiliser le " +"processeur en attendant que les E/S soient terminées. Évidemment, la " +"fonction suivante a le même problème que la précédente ::" #: ../Doc/extending/extending.rst:1071 msgid "NULL Pointers" -msgstr "" +msgstr "Pointeurs ``NULL``" #: ../Doc/extending/extending.rst:1073 msgid "" @@ -1293,7 +1454,7 @@ msgstr "" #: ../Doc/extending/extending.rst:1110 msgid "Writing Extensions in C++" -msgstr "" +msgstr "Écrire des extensions en C++" #: ../Doc/extending/extending.rst:1112 msgid "" @@ -1307,10 +1468,21 @@ msgid "" "`` --- they use this form already if the symbol ``__cplusplus`` is defined " "(all recent C++ compilers define this symbol)." msgstr "" +"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " +"conditions. Si le programme principal (l'interpréteur Python) est compilé et " +"lié par le compilateur C, les objets globaux ou statiques avec les " +"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " +"programme principal est relié par le compilateur C++. Les fonctions qui " +"seront appelées par l'interpréteur Python (en particulier, les fonctions " +"d'initialisation des modules) doivent être déclarées en utilisant ``extern " +"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " +"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " +"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " +"symbole)." #: ../Doc/extending/extending.rst:1126 msgid "Providing a C API for an Extension Module" -msgstr "" +msgstr "Fournir une API en langage C pour un module d'extension" #: ../Doc/extending/extending.rst:1131 msgid "" @@ -1322,6 +1494,15 @@ msgid "" "create and manipulate lists, this new collection type should have a set of C " "functions for direct manipulation from other extension modules." msgstr "" +"De nombreux modules d'extension fournissent simplement de nouvelles " +"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " +"le code d'un module d'extension peut être utile pour d'autres modules " +"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " +"\"collection\" qui fonctionne comme des listes sans ordre. Tout comme le " +"type de liste Python standard possède une API C qui permet aux modules " +"d'extension de créer et de manipuler des listes, ce nouveau type de " +"collection devrait posséder un ensemble de fonctions C pour une manipulation " +"directe à partir d'autres modules d'extension." #: ../Doc/extending/extending.rst:1139 msgid "" @@ -1338,6 +1519,20 @@ msgid "" "if symbols are globally visible, the module whose functions one wishes to " "call might not have been loaded yet!" msgstr "" +"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " +"les déclarer \"statiques\", bien sûr), de fournir un fichier d'en-tête " +"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " +"les modules d'extension étaient toujours liés statiquement avec " +"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " +"des bibliothèques partagées, les symboles définis dans un module peuvent ne " +"pas être visibles par un autre module. Les détails de la visibilité " +"dépendent du système d'exploitation ; certains systèmes utilisent un espace " +"de noms global pour l'interpréteur Python et tous les modules d'extension " +"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " +"symboles importés au moment de la liaison des modules (AIX en est un " +"exemple), ou offrent un choix de stratégies différentes (la plupart des " +"*Unix*). Et même si les symboles sont globalement visibles, le module dont " +"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" #: ../Doc/extending/extending.rst:1151 msgid "" @@ -1348,6 +1543,14 @@ msgid "" "section :ref:`methodtable`). And it means that symbols that *should* be " "accessible from other extension modules must be exported in a different way." msgstr "" +"La portabilité exige donc de ne faire aucune supposition sur la visibilité " +"des symboles. Cela signifie que tous les symboles des modules d'extension " +"doivent être déclarés ``static``, à l'exception de la fonction " +"d'initialisation du module, afin d'éviter les conflits de noms avec les " +"autres modules d'extension (comme discuté dans la section :ref:" +"`methodtable`). Et cela signifie que les symboles qui *devraient* être " +"accessibles à partir d'autres modules d'extension doivent être exportés " +"d'une manière différente." #: ../Doc/extending/extending.rst:1158 msgid "" @@ -1370,6 +1573,13 @@ msgid "" "distributed in different ways between the module providing the code and the " "client modules." msgstr "" +"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " +"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " +"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " +"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " +"stockage et de récupération des pointeurs peuvent être réparties de " +"différentes manières entre le module fournissant le code et les modules " +"clients." #: ../Doc/extending/extending.rst:1172 msgid "" @@ -1405,6 +1615,14 @@ msgid "" "takes care of importing the module and retrieving its C API pointers; client " "modules only have to call this macro before accessing the C API." msgstr "" +"L'exemple suivant montre une approche qui fait peser la plus grande partie " +"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " +"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " +"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " +"pointeurs :c:type:`void` qui devient la valeur d'une Capsule. Le fichier " +"d'en-tête correspondant au module fournit une macro qui se charge d'importer " +"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " +"qu'à appeler cette macro avant d'accéder à l'API C." #: ../Doc/extending/extending.rst:1197 msgid "" @@ -1415,6 +1633,13 @@ msgid "" "complicated in reality (such as adding \"spam\" to every command). This " "function :c:func:`PySpam_System` is also exported to other extension modules." msgstr "" +"Le module d'exportation est une modification du module :mod:`spam` de la " +"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " +"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " +"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " +"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " +"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " +"modules d'extension." #: ../Doc/extending/extending.rst:1204 msgid "" @@ -1424,15 +1649,15 @@ msgstr "" #: ../Doc/extending/extending.rst:1213 msgid "The function :c:func:`spam_system` is modified in a trivial way::" -msgstr "" +msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" #: ../Doc/extending/extending.rst:1227 msgid "In the beginning of the module, right after the line ::" -msgstr "" +msgstr "Au début du module, immédiatement après la ligne ::" #: ../Doc/extending/extending.rst:1231 msgid "two more lines must be added::" -msgstr "" +msgstr "on doit ajouter deux lignes supplémentaires ::" #: ../Doc/extending/extending.rst:1236 msgid "" @@ -1441,18 +1666,26 @@ msgid "" "initialization function must take care of initializing the C API pointer " "array::" msgstr "" +"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " +"qu'il est inclus dans le module d'exportation, et non dans un module client. " +"Enfin, la fonction d'initialisation du module doit prendre en charge " +"l'initialisation du tableau de pointeurs de l'API C ::" #: ../Doc/extending/extending.rst:1262 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :func:`PyInit_spam` terminates!" msgstr "" +"Notez que ``PySpam_API`` est déclaré ``static`` ; sinon le tableau de " +"pointeurs disparaîtrait lorsque :func:`PyInit_spam`` se finit !" #: ../Doc/extending/extending.rst:1265 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" +"L'essentiel du travail se trouve dans le fichier d'en-tête :file:`spammodule." +"h`, qui ressemble à ceci ::" #: ../Doc/extending/extending.rst:1316 msgid "" @@ -1460,6 +1693,9 @@ msgid "" "func:`PySpam_System` is to call the function (or rather macro) :c:func:" "`import_spam` in its initialization function::" msgstr "" +"Tout ce qu'un module client doit faire pour avoir accès à la fonction :c:" +"func:`PySpam_System` est d'appeler la fonction (ou plutôt la macro) :c:func:" +"`import_spam` dans sa fonction d'initialisation ::" #: ../Doc/extending/extending.rst:1334 msgid "" @@ -1467,6 +1703,10 @@ msgid "" "is rather complicated. However, the basic structure is the same for each " "function that is exported, so it has to be learned only once." msgstr "" +"Le principal inconvénient de cette approche est que le fichier :file:" +"`spammodule.h` est assez compliqué. Cependant, la structure de base est la " +"même pour chaque fonction exportée, ce qui fait qu'elle ne doit être apprise " +"qu'une seule fois." #: ../Doc/extending/extending.rst:1338 msgid "" @@ -1477,6 +1717,13 @@ msgid "" "Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " "in the Python source code distribution)." msgstr "" +"Enfin, il convient de mentionner que Capsules offrent des fonctionnalités " +"supplémentaires, qui sont particulièrement utiles pour l'allocation de la " +"mémoire et la dés-allocation du pointeur stocké dans un objet Capsule. Les " +"détails sont décrits dans le manuel de référence de l'API Python/C dans la " +"section :ref:`capsules` et dans l'implémentation des Capsules (fichiers :" +"file:`Include/pycapsule.h` et :file:`Objects/pycapsule.c` dans la " +"distribution du code source Python)." #: ../Doc/extending/extending.rst:1346 msgid "Footnotes" @@ -1487,12 +1734,16 @@ msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" +"Une interface pour cette fonction existe déjà dans le module standard :mod:" +"`os`, elle a été choisie comme un exemple simple et direct." #: ../Doc/extending/extending.rst:1350 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" +"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " +"le propriétaire a toujours une copie de la référence." #: ../Doc/extending/extending.rst:1353 msgid "" @@ -1500,9 +1751,15 @@ msgid "" "reference count itself could be in freed memory and may thus be reused for " "another object!" msgstr "" +"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " +"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " +"peut donc être réutilisé pour un autre objet !" #: ../Doc/extending/extending.rst:1357 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." msgstr "" +"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " +"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " +"existant." diff --git a/extending/newtypes.po b/extending/newtypes.po index da41f03ec..5048e90a4 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:5 msgid "Defining Extension Types: Assorted Topics" -msgstr "" +msgstr "Définir les types d'extension : divers sujets" #: ../Doc/extending/newtypes.rst:9 msgid "" @@ -71,16 +71,21 @@ msgid "" "Here you can put a string (or its address) that you want returned when the " "Python script references ``obj.__doc__`` to retrieve the doc string." msgstr "" +"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " +"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " +"*docstring*." #: ../Doc/extending/newtypes.rst:47 msgid "" "Now we come to the basic type methods -- the ones most extension types will " "implement." msgstr "" +"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " +"plupart des types d'extension mettront en œuvre." #: ../Doc/extending/newtypes.rst:52 msgid "Finalization and De-allocation" -msgstr "" +msgstr "Finalisation et de-allocation" #: ../Doc/extending/newtypes.rst:64 msgid "" @@ -128,11 +133,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:134 msgid ":pep:`442` explains the new finalization scheme." -msgstr "" +msgstr ":pep:`442` explique le nouveau schéma de finalisation." #: ../Doc/extending/newtypes.rst:141 msgid "Object Presentation" -msgstr "" +msgstr "Présentation de l'objet" #: ../Doc/extending/newtypes.rst:143 msgid "" @@ -168,11 +173,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:174 msgid "Here is a simple example::" -msgstr "" +msgstr "Voici un exemple simple ::" #: ../Doc/extending/newtypes.rst:186 msgid "Attribute Management" -msgstr "" +msgstr "Gestion des attributs" #: ../Doc/extending/newtypes.rst:188 msgid "" @@ -206,7 +211,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:217 msgid "Generic Attribute Management" -msgstr "" +msgstr "Gestion des attributs génériques" #: ../Doc/extending/newtypes.rst:219 msgid "" @@ -219,6 +224,8 @@ msgid "" "The name of the attributes must be known when :c:func:`PyType_Ready` is " "called." msgstr "" +"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:" +"`PyType_Ready`." #: ../Doc/extending/newtypes.rst:225 msgid "" @@ -247,6 +254,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:239 msgid "The tables are declared as three fields of the type object::" msgstr "" +"Les tables sont déclarées sous la forme de trois champs de type objet ::" #: ../Doc/extending/newtypes.rst:245 msgid "" @@ -298,35 +306,35 @@ msgstr "Signification" #: ../Doc/extending/newtypes.rst:286 msgid ":const:`READONLY`" -msgstr "" +msgstr ":const:`READONLY`" #: ../Doc/extending/newtypes.rst:286 msgid "Never writable." -msgstr "" +msgstr "Jamais disponible en écriture." #: ../Doc/extending/newtypes.rst:288 msgid ":const:`READ_RESTRICTED`" -msgstr "" +msgstr ":const:`READ_RESTRICTED`" #: ../Doc/extending/newtypes.rst:288 msgid "Not readable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture, dans le mode restreint." #: ../Doc/extending/newtypes.rst:290 msgid ":const:`WRITE_RESTRICTED`" -msgstr "" +msgstr ":const:`WRITE_RESTRICTED`" #: ../Doc/extending/newtypes.rst:290 msgid "Not writable in restricted mode." -msgstr "" +msgstr "Non disponible en écriture dans le mode restreint." #: ../Doc/extending/newtypes.rst:292 msgid ":const:`RESTRICTED`" -msgstr "" +msgstr ":const:`RESTRICTED`" #: ../Doc/extending/newtypes.rst:292 msgid "Not readable or writable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture ou écriture, en mode restreint." #: ../Doc/extending/newtypes.rst:301 msgid "" @@ -337,6 +345,13 @@ msgid "" "the descriptor from the class object, and get the doc string using its :attr:" "`__doc__` attribute." msgstr "" +"Un avantage intéressant de l'utilisation de la table :c:member:" +"`~PyTypeObject.tp_members` pour construire les descripteurs qui sont " +"utilisés à l'exécution, est que à tout attribut défini de cette façon on " +"peut associer un *docstring*, en écrivant simplement le texte dans la table. " +"Une application peut utiliser l'API d'introspection pour récupérer le " +"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` " +"pour renvoyer le *docstring*." #: ../Doc/extending/newtypes.rst:307 msgid "" @@ -346,7 +361,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:321 msgid "Type-specific Attribute Management" -msgstr "" +msgstr "Gestion des attributs de type spécifiques" #: ../Doc/extending/newtypes.rst:323 msgid "" @@ -382,7 +397,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:365 msgid "Object Comparison" -msgstr "" +msgstr "Comparaison des objets" #: ../Doc/extending/newtypes.rst:371 msgid "" @@ -411,7 +426,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:414 msgid "Abstract Protocol Support" -msgstr "" +msgstr "Support pour le protocole abstrait" #: ../Doc/extending/newtypes.rst:416 msgid "" @@ -469,7 +484,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:470 msgid "This function takes three arguments:" -msgstr "" +msgstr "Cette fonction prend trois arguments :" #: ../Doc/extending/newtypes.rst:472 msgid "" @@ -494,7 +509,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:484 msgid "Here is a toy ``tp_call`` implementation::" -msgstr "" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" #: ../Doc/extending/newtypes.rst:510 msgid "" @@ -512,6 +527,10 @@ msgid "" "tp_iter` handler, which must return an :term:`iterator` object. Here the " "same guidelines apply as for Python classes:" msgstr "" +"Tout objet :term:`iterable` doit implémenter le gestionnaire :c:member:" +"`~PyTypeObject.tp_iter`, qui doit renvoyer un objet de type :term:" +"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que " +"pour les classes *Python* :" #: ../Doc/extending/newtypes.rst:521 msgid "" @@ -519,6 +538,9 @@ msgid "" "independent iterators, a new iterator should be created and returned by each " "call to :c:member:`~PyTypeObject.tp_iter`." msgstr "" +"Pour les collections (telles que les listes et les n-uplets) qui peuvent " +"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " +"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." #: ../Doc/extending/newtypes.rst:524 msgid "" @@ -544,7 +566,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:545 msgid "Weak Reference Support" -msgstr "" +msgstr "Prise en charge de la référence faible" #: ../Doc/extending/newtypes.rst:547 msgid "" @@ -552,16 +574,22 @@ msgid "" "type to participate in the weak reference mechanism without incurring the " "overhead on performance-critical objects (such as numbers)." msgstr "" +"L'un des objectifs de l'implémentation de la référence faible de *Python* " +"est de permettre à tout type d'objet de participer au mécanisme de référence " +"faible sans avoir à supporter le surcoût de la performance critique des " +"certains objets, tels que les nombres." #: ../Doc/extending/newtypes.rst:552 msgid "Documentation for the :mod:`weakref` module." -msgstr "" +msgstr "Documentation pour le module :mod:`weakref`." #: ../Doc/extending/newtypes.rst:554 msgid "" "For an object to be weakly referencable, the extension type must do two " "things:" msgstr "" +"Pour qu'un objet soit faiblement référençable, le type d'extension doit " +"faire deux choses :" #: ../Doc/extending/newtypes.rst:556 msgid "" @@ -577,16 +605,23 @@ msgid "" "offset of the aforementioned field in the C object structure, so that the " "interpreter knows how to access and modify that field." msgstr "" +"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " +"la valeur de décalage (*offset*) du champ susmentionné dans la structure de " +"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le " +"modifier." #: ../Doc/extending/newtypes.rst:565 msgid "" "Concretely, here is how a trivial object structure would be augmented with " "the required field::" msgstr "" +"Concrètement, voici comment une structure d'objet simple serait complétée " +"par le champ requis ::" #: ../Doc/extending/newtypes.rst:573 msgid "And the corresponding member in the statically-declared type object::" msgstr "" +"Et le membre correspondant dans l'objet de type déclaré statiquement ::" #: ../Doc/extending/newtypes.rst:581 msgid "" @@ -597,7 +632,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:597 msgid "More Suggestions" -msgstr "" +msgstr "Plus de suggestions" #: ../Doc/extending/newtypes.rst:599 msgid "" @@ -607,6 +642,12 @@ msgid "" "want (for example, ``tp_richcompare``). You will find examples of the " "function you want to implement." msgstr "" +"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " +"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " +"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " +"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " +"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " +"voulez implémenter." #: ../Doc/extending/newtypes.rst:605 msgid "" @@ -614,23 +655,27 @@ msgid "" "you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " "sample of its use might be something like the following::" msgstr "" +"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " +"du type que vous implémentez, utilisez la fonction :c:func:" +"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" #: ../Doc/extending/newtypes.rst:616 msgid "Download CPython source releases." -msgstr "" +msgstr "Télécharger les versions sources de *CPython*." #: ../Doc/extending/newtypes.rst:616 msgid "https://www.python.org/downloads/source/" -msgstr "" +msgstr "https://www.python.org/downloads/source/" #: ../Doc/extending/newtypes.rst:618 msgid "" "The CPython project on GitHub, where the CPython source code is developed." msgstr "" +"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." #: ../Doc/extending/newtypes.rst:619 msgid "https://github.com/python/cpython" -msgstr "" +msgstr "https://github.com/python/cpython" #~ msgid "Footnotes" #~ msgstr "Notes" diff --git a/howto/clinic.po b/howto/clinic.po index e94053ce9..365004fa6 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:5 msgid "Argument Clinic How-To" -msgstr "" +msgstr "Guide Argument Clinic" #: ../Doc/howto/clinic.rst:0 msgid "author" @@ -27,7 +27,7 @@ msgstr "auteur" #: ../Doc/howto/clinic.rst:7 msgid "Larry Hastings" -msgstr "" +msgstr "Larry Hastings" #: ../Doc/howto/clinic.rst:None msgid "Abstract" @@ -898,7 +898,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:578 msgid "Renaming the C functions and variables generated by Argument Clinic" -msgstr "" +msgstr "Renommer les fonctions et variables C générées par Argument Clinic" #: ../Doc/howto/clinic.rst:580 msgid "" @@ -911,6 +911,14 @@ msgid "" "function, then add ``\"_impl\"`` to the end and use that for the name of the " "impl function." msgstr "" +"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, " +"cela peut poser des problèmes, si le nom généré entre en collision avec le " +"nom d'une fonction C existante. Il y a une solution simple : surcharger les " +"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` " +"sur la ligne de la déclaration de la fonction, suivi par le nom de la " +"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de " +"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` " +"à la fin et utilisera ce nom pour la fonction ``impl``." #: ../Doc/howto/clinic.rst:588 msgid "" @@ -945,6 +953,8 @@ msgid "" "Here, the name used in Python (in the signature and the ``keywords`` array) " "would be ``file``, but the C variable would be named ``file_obj``." msgstr "" +"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " +"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." #: ../Doc/howto/clinic.rst:617 msgid "You can use this to rename the ``self`` parameter too!" @@ -962,6 +972,12 @@ msgid "" "appropriate. All arguments should be marked positional-only (add a ``/`` on " "a line by itself after the last argument)." msgstr "" +"Afin de convertir une fonction analysant ses arguments via :c:func:" +"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les " +"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` " +"d'argument afin de le forcer au type approprié. Tous les arguments devraient " +"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la " +"ligne après le dernier argument)." #: ../Doc/howto/clinic.rst:629 msgid "" @@ -985,6 +1001,14 @@ msgid "" "optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was " "created." msgstr "" +"Certaines fonctions de base ont une approche particulière pour analyser " +"leurs arguments : elles comptent le nombre d'arguments positionnels, puis " +"elles utilisent une condition ``switch`` basée sur le nombre d'arguments " +"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " +"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant " +"qu'arguments nommés). Cette approche était utilisée pour simuler des " +"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit " +"créée." #: ../Doc/howto/clinic.rst:642 msgid "" @@ -999,6 +1023,17 @@ msgid "" "the function passing in ``x``, you must also pass in ``y``—and if you don't " "pass in ``x`` you may not pass in ``y`` either.)" msgstr "" +"Alors que les fonctions utilisant cette approche peuvent normalement être " +"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " +"arguments optionnels et des valeurs par défaut, ce n'est pas toujours " +"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:" +"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la " +"fonction native ``range()``, qui possède un argument optionnel à *gauche* de " +"ses arguments requis ! Un autre exemple est la fonction ``curses.window." +"addch()``, qui possède un groupe de deux arguments qui doivent toujours être " +"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous " +"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne " +"passez pas ``x``, vous ne devez pas passer ``y`` non plus)." #: ../Doc/howto/clinic.rst:654 msgid "" @@ -1009,6 +1044,14 @@ msgid "" "all be passed in together. They can be to the left or the right of the " "required arguments. They can *only* be used with positional-only parameters." msgstr "" +"Dans tous les cas, le but d'Argument Clinic est de prendre en charge " +"l'analyse des arguments pour toutes les fonctions natives de CPython sans " +"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette " +"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes " +"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent " +"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche " +"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant " +"que paramètres positionnels." #: ../Doc/howto/clinic.rst:662 msgid "" @@ -1020,6 +1063,14 @@ msgid "" "doesn't understand the concept. Please avoid using optional groups wherever " "possible." msgstr "" +"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions " +"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions " +"qui utilisent *au moins une* des autres approches ne doivent *presque " +"jamais* être converties à Argument Clinic en utilisant les groupes " +"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de " +"signature précise en Python, parce que celui-ci ne peut simplement pas " +"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes " +"optionnels si possible." #: ../Doc/howto/clinic.rst:671 msgid "" @@ -1029,6 +1080,11 @@ msgid "" "optional groups to make the first two parameters and the last parameter " "optional::" msgstr "" +"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " +"avant les paramètres que vous souhaitez inclure dans le groupe, puis un " +"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment " +"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel " +"les deux premiers paramètres ainsi que le dernier :" #: ../Doc/howto/clinic.rst:700 msgid "Notes:" @@ -1046,6 +1102,16 @@ msgid "" "was unused, and set to non-zero if this group was used. (By used or unused, " "I mean whether or not the parameters received arguments in this invocation.)" msgstr "" +"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " +"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé " +"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` " +"ou ``left`` suivant que le groupe est situé avant ou après les paramètres " +"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant " +"la distance entre le groupe et les paramètres requis. Quand la fonction " +"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a " +"pas été utilisé, et positionné à un nombre entier positif sinon (par " +"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet " +"appel)." #: ../Doc/howto/clinic.rst:713 msgid "" @@ -1060,10 +1126,13 @@ msgid "" "In the case of ambiguity, the argument parsing code favors parameters on the " "left (before the required parameters)." msgstr "" +"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à " +"gauche (avant les paramètres obligatoires)." #: ../Doc/howto/clinic.rst:719 msgid "Optional groups can only contain positional-only parameters." msgstr "" +"Les groupes optionnels ne peuvent contenir que des arguments positionnels." #: ../Doc/howto/clinic.rst:721 msgid "" @@ -1076,6 +1145,8 @@ msgstr "" #: ../Doc/howto/clinic.rst:726 msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" msgstr "" +"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " +"« adaptateurs de base »" #: ../Doc/howto/clinic.rst:728 msgid "" @@ -1085,17 +1156,25 @@ msgid "" "explicitly to make porting existing code to Argument Clinic easier. And to " "be clear, their use is acceptable when porting code for Python 3.4." msgstr "" +"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " +"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " +"« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " +"facilement du code existant sous Argument Clinic. Et pour être clair, leur " +"utilisation est tout à fait acceptable pour porter du code Python 3.4." #: ../Doc/howto/clinic.rst:735 msgid "" "However, in the long term we probably want all our blocks to use Argument " "Clinic's real syntax for converters. Why? A couple reasons:" msgstr "" +"Cependant, sur le long terme, il est certainement préférable que tous vos " +"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " +"Pourquoi ? Voici quelques raisons :" #: ../Doc/howto/clinic.rst:739 msgid "" "The proper converters are far easier to read and clearer in their intent." -msgstr "" +msgstr "Les adaptateurs sont plus simples et plus clairs." #: ../Doc/howto/clinic.rst:740 msgid "" @@ -1103,6 +1182,9 @@ msgid "" "because they require arguments, and the legacy converter syntax doesn't " "support specifying arguments." msgstr "" +"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », " +"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne " +"supporte pas cela." #: ../Doc/howto/clinic.rst:743 msgid "" @@ -1110,12 +1192,18 @@ msgid "" "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " "won't be available to parameters using legacy converters." msgstr "" +"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " +"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " +"accepte ; cette flexibilité ne serait pas accessible aux paramètres " +"utilisant des adaptateurs de base." #: ../Doc/howto/clinic.rst:747 msgid "" "Therefore, if you don't mind a little extra effort, please use the normal " "converters instead of legacy converters." msgstr "" +"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " +"devriez utiliser les adaptateurs normaux plutôt que ceux de base." #: ../Doc/howto/clinic.rst:750 msgid "" @@ -1124,16 +1212,22 @@ msgid "" "the function (all functions take their default values), you may omit the " "parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters." msgstr "" +"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel " +"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction " +"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les " +"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur." #: ../Doc/howto/clinic.rst:756 msgid "" "All arguments to Argument Clinic converters are keyword-only. All Argument " "Clinic converters accept the following arguments:" msgstr "" +"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " +"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" #: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1246 msgid "``c_default``" -msgstr "" +msgstr "``c_default``" #: ../Doc/howto/clinic.rst:760 msgid "" @@ -1142,10 +1236,15 @@ msgid "" "\". See :ref:`the section on default values ` for how to " "use this. Specified as a string." msgstr "" +"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, " +"il servira à initialiser la variable déclarée dans la « fonction " +"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut " +"` pour apprendre à l'utiliser. Spécifié en tant que chaîne " +"de caractères." #: ../Doc/howto/clinic.rst:769 msgid "``annotation``" -msgstr "" +msgstr "``annotation``" #: ../Doc/howto/clinic.rst:767 msgid "" @@ -1158,10 +1257,12 @@ msgid "" "In addition, some converters accept additional arguments. Here is a list of " "these arguments, along with their meanings:" msgstr "" +"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la " +"liste de ces arguments, avec leur explication :" #: ../Doc/howto/clinic.rst:780 msgid "``accept``" -msgstr "" +msgstr "``accept``" #: ../Doc/howto/clinic.rst:775 msgid "" @@ -1170,14 +1271,18 @@ msgid "" "purpose facility; as a rule it only supports specific lists of types as " "shown in the legacy converter table.)" msgstr "" +"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " +"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas " +"destiné à une utilisation généralisée ; en fait, il gère seulement les types " +"listés dans la table des adaptateurs de base)." #: ../Doc/howto/clinic.rst:780 msgid "To accept ``None``, add ``NoneType`` to this set." -msgstr "" +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." #: ../Doc/howto/clinic.rst:785 msgid "``bitwise``" -msgstr "" +msgstr "``bitwise``" #: ../Doc/howto/clinic.rst:783 msgid "" @@ -1185,10 +1290,13 @@ msgid "" "Python argument will be written to the parameter without any range checking, " "even for negative values." msgstr "" +"Autorisé seulement pour les entiers non signés. La valeur native de cet " +"argument Python sera transcrite dans le paramètre sans aucune vérification " +"de plage, même pour des valeurs négatives." #: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1260 msgid "``converter``" -msgstr "" +msgstr "``converter``" #: ../Doc/howto/clinic.rst:788 msgid "" @@ -1196,6 +1304,9 @@ msgid "" "\"converter function\" ` to use to convert this object to a " "native type." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:" +"`« fonction de conversion » depuis C ` à utiliser pour " +"convertir cet objet en type natif." #: ../Doc/howto/clinic.rst:795 msgid "``encoding``" @@ -1206,16 +1317,21 @@ msgid "" "Only supported for strings. Specifies the encoding to use when converting " "this string from a Python str (Unicode) value into a C ``char *`` value." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " +"utiliser lors de la conversion de cette chaîne depuis une valeur de type " +"Python ``str`` (Unicode) en valeur C ``char *``." #: ../Doc/howto/clinic.rst:799 msgid "``subclass_of``" -msgstr "" +msgstr "``subclass_of``" #: ../Doc/howto/clinic.rst:798 msgid "" "Only supported for the ``object`` converter. Requires that the Python value " "be a subclass of a Python type, as expressed in C." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " +"Python soit une sous-classe d'un type Python, telle qu'exprimée en C." #: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1232 msgid "``type``" @@ -1227,10 +1343,13 @@ msgid "" "type that will be used to declare the variable. Default value is ``" "\"PyObject *\"``." msgstr "" +"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le " +"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est " +"``\"PyObject *\"``." #: ../Doc/howto/clinic.rst:810 msgid "``zeroes``" -msgstr "" +msgstr "``zeroes``" #: ../Doc/howto/clinic.rst:807 msgid "" @@ -1239,6 +1358,10 @@ msgid "" "the impl function, just after the string parameter, as a parameter named " "``_length``." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL " +"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera " +"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que " +"paramètre nommé ``_length``." #: ../Doc/howto/clinic.rst:812 msgid "" @@ -1250,6 +1373,14 @@ msgid "" "any existing format unit. So Argument Clinic doesn't support it. (Or, at " "least, not yet.)" msgstr "" +"Attention de bien noter que toutes les combinaisons d'arguments ne " +"fonctionnent pas. Normalement, ces arguments sont mis en place via des " +"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " +"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " +"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " +"raisonnable de penser que ça puisse fonctionner, cette écriture ne " +"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, " +"pas pour le moment)." #: ../Doc/howto/clinic.rst:820 msgid "" @@ -1257,6 +1388,9 @@ msgid "" "Clinic converters. On the left is the legacy converter, on the right is the " "text you'd replace it with." msgstr "" +"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre " +"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les " +"adaptateurs de base et, à droite, le texte qui les remplace." #: ../Doc/howto/clinic.rst:825 msgid "``'B'``" @@ -1264,7 +1398,7 @@ msgstr "``'B'``" #: ../Doc/howto/clinic.rst:825 msgid "``unsigned_char(bitwise=True)``" -msgstr "" +msgstr "``unsigned_char(bitwise=True)``" #: ../Doc/howto/clinic.rst:826 msgid "``'b'``" @@ -1272,7 +1406,7 @@ msgstr "``'b'``" #: ../Doc/howto/clinic.rst:826 msgid "``unsigned_char``" -msgstr "" +msgstr "``unsigned_char``" #: ../Doc/howto/clinic.rst:827 msgid "``'c'``" @@ -1280,15 +1414,15 @@ msgstr "``'c'``" #: ../Doc/howto/clinic.rst:827 msgid "``char``" -msgstr "" +msgstr "``char``" #: ../Doc/howto/clinic.rst:828 msgid "``'C'``" -msgstr "" +msgstr "``'C'``" #: ../Doc/howto/clinic.rst:828 msgid "``int(accept={str})``" -msgstr "" +msgstr "``int(accept={str})``" #: ../Doc/howto/clinic.rst:829 msgid "``'d'``" @@ -1296,7 +1430,7 @@ msgstr "``'d'``" #: ../Doc/howto/clinic.rst:829 msgid "``double``" -msgstr "" +msgstr "``double``" #: ../Doc/howto/clinic.rst:830 msgid "``'D'``" @@ -1304,41 +1438,43 @@ msgstr "``'D'``" #: ../Doc/howto/clinic.rst:830 msgid "``Py_complex``" -msgstr "" +msgstr "``Py_complex``" #: ../Doc/howto/clinic.rst:831 msgid "``'es'``" -msgstr "" +msgstr "``'es'``" #: ../Doc/howto/clinic.rst:831 msgid "``str(encoding='name_of_encoding')``" -msgstr "" +msgstr "``str(encoding='name_of_encoding')``" #: ../Doc/howto/clinic.rst:832 msgid "``'es#'``" -msgstr "" +msgstr "``'es#'``" #: ../Doc/howto/clinic.rst:832 msgid "``str(encoding='name_of_encoding', zeroes=True)``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', zeroes=True)``" #: ../Doc/howto/clinic.rst:833 msgid "``'et'``" -msgstr "" +msgstr "``'et'``" #: ../Doc/howto/clinic.rst:833 msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" #: ../Doc/howto/clinic.rst:834 msgid "``'et#'``" -msgstr "" +msgstr "``'et#'``" #: ../Doc/howto/clinic.rst:834 msgid "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" msgstr "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" #: ../Doc/howto/clinic.rst:835 msgid "``'f'``" @@ -1346,7 +1482,7 @@ msgstr "``'f'``" #: ../Doc/howto/clinic.rst:835 msgid "``float``" -msgstr "" +msgstr "``float``" #: ../Doc/howto/clinic.rst:836 msgid "``'h'``" @@ -1354,7 +1490,7 @@ msgstr "``'h'``" #: ../Doc/howto/clinic.rst:836 msgid "``short``" -msgstr "" +msgstr "``short``" #: ../Doc/howto/clinic.rst:837 msgid "``'H'``" @@ -1362,7 +1498,7 @@ msgstr "``'H'``" #: ../Doc/howto/clinic.rst:837 msgid "``unsigned_short(bitwise=True)``" -msgstr "" +msgstr "``unsigned_short(bitwise=True)``" #: ../Doc/howto/clinic.rst:838 msgid "``'i'``" @@ -1378,23 +1514,23 @@ msgstr "``'I'``" #: ../Doc/howto/clinic.rst:839 msgid "``unsigned_int(bitwise=True)``" -msgstr "" +msgstr "``unsigned_int(bitwise=True)``" #: ../Doc/howto/clinic.rst:840 msgid "``'k'``" -msgstr "" +msgstr "``'k'``" #: ../Doc/howto/clinic.rst:840 msgid "``unsigned_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:841 msgid "``'K'``" -msgstr "" +msgstr "``'K'``" #: ../Doc/howto/clinic.rst:841 msgid "``unsigned_long_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:842 msgid "``'l'``" @@ -1410,7 +1546,7 @@ msgstr "``'L'``" #: ../Doc/howto/clinic.rst:843 msgid "``long long``" -msgstr "" +msgstr "``long long``" #: ../Doc/howto/clinic.rst:844 msgid "``'n'``" @@ -1418,39 +1554,39 @@ msgstr "``'n'``" #: ../Doc/howto/clinic.rst:844 msgid "``Py_ssize_t``" -msgstr "" +msgstr "``Py_ssize_t``" #: ../Doc/howto/clinic.rst:845 msgid "``'O'``" -msgstr "" +msgstr "``'O'``" #: ../Doc/howto/clinic.rst:845 msgid "``object``" -msgstr "" +msgstr "``object``" #: ../Doc/howto/clinic.rst:846 msgid "``'O!'``" -msgstr "" +msgstr "``'O!'``" #: ../Doc/howto/clinic.rst:846 msgid "``object(subclass_of='&PySomething_Type')``" -msgstr "" +msgstr "``object(subclass_of='&PySomething_Type')``" #: ../Doc/howto/clinic.rst:847 msgid "``'O&'``" -msgstr "" +msgstr "``'O&'``" #: ../Doc/howto/clinic.rst:847 msgid "``object(converter='name_of_c_function')``" -msgstr "" +msgstr "``object(converter='name_of_c_function')``" #: ../Doc/howto/clinic.rst:848 msgid "``'p'``" -msgstr "" +msgstr "``'p'``" #: ../Doc/howto/clinic.rst:848 msgid "``bool``" -msgstr "" +msgstr "``bool``" #: ../Doc/howto/clinic.rst:849 msgid "``'S'``" @@ -1458,7 +1594,7 @@ msgstr "``'S'``" #: ../Doc/howto/clinic.rst:849 msgid "``PyBytesObject``" -msgstr "" +msgstr "``PyBytesObject``" #: ../Doc/howto/clinic.rst:850 msgid "``'s'``" @@ -1466,23 +1602,23 @@ msgstr "``'s'``" #: ../Doc/howto/clinic.rst:850 msgid "``str``" -msgstr "" +msgstr "``str``" #: ../Doc/howto/clinic.rst:851 msgid "``'s#'``" -msgstr "" +msgstr "``'s#'``" #: ../Doc/howto/clinic.rst:851 msgid "``str(zeroes=True)``" -msgstr "" +msgstr "``str(zeroes=True)``" #: ../Doc/howto/clinic.rst:852 msgid "``'s*'``" -msgstr "" +msgstr "``'s*'``" #: ../Doc/howto/clinic.rst:852 msgid "``Py_buffer(accept={buffer, str})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str})``" #: ../Doc/howto/clinic.rst:853 msgid "``'U'``" @@ -1490,7 +1626,7 @@ msgstr "``'U'``" #: ../Doc/howto/clinic.rst:853 msgid "``unicode``" -msgstr "" +msgstr "``unicode``" #: ../Doc/howto/clinic.rst:854 msgid "``'u'``" @@ -1498,101 +1634,103 @@ msgstr "``'u'``" #: ../Doc/howto/clinic.rst:854 msgid "``Py_UNICODE``" -msgstr "" +msgstr "``Py_UNICODE``" #: ../Doc/howto/clinic.rst:855 msgid "``'u#'``" -msgstr "" +msgstr "``'u#'``" #: ../Doc/howto/clinic.rst:855 msgid "``Py_UNICODE(zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(zeroes=True)``" #: ../Doc/howto/clinic.rst:856 msgid "``'w*'``" -msgstr "" +msgstr "``'w*'``" #: ../Doc/howto/clinic.rst:856 msgid "``Py_buffer(accept={rwbuffer})``" -msgstr "" +msgstr "``Py_buffer(accept={rwbuffer})``" #: ../Doc/howto/clinic.rst:857 msgid "``'Y'``" -msgstr "" +msgstr "``'Y'``" #: ../Doc/howto/clinic.rst:857 msgid "``PyByteArrayObject``" -msgstr "" +msgstr "``PyByteArrayObject``" #: ../Doc/howto/clinic.rst:858 msgid "``'y'``" -msgstr "" +msgstr "``'y'``" #: ../Doc/howto/clinic.rst:858 msgid "``str(accept={bytes})``" -msgstr "" +msgstr "``str(accept={bytes})``" #: ../Doc/howto/clinic.rst:859 msgid "``'y#'``" -msgstr "" +msgstr "``'y#'``" #: ../Doc/howto/clinic.rst:859 msgid "``str(accept={robuffer}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={robuffer}, zeroes=True)``" #: ../Doc/howto/clinic.rst:860 msgid "``'y*'``" -msgstr "" +msgstr "``'y*'``" #: ../Doc/howto/clinic.rst:860 msgid "``Py_buffer``" -msgstr "" +msgstr "``Py_buffer``" #: ../Doc/howto/clinic.rst:861 msgid "``'Z'``" -msgstr "" +msgstr "``'Z'``" #: ../Doc/howto/clinic.rst:861 msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:862 msgid "``'Z#'``" -msgstr "" +msgstr "``'Z#'``" #: ../Doc/howto/clinic.rst:862 msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" #: ../Doc/howto/clinic.rst:863 msgid "``'z'``" -msgstr "" +msgstr "``'z'``" #: ../Doc/howto/clinic.rst:863 msgid "``str(accept={str, NoneType})``" -msgstr "" +msgstr "``str(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:864 msgid "``'z#'``" -msgstr "" +msgstr "``'z#'``" #: ../Doc/howto/clinic.rst:864 msgid "``str(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" #: ../Doc/howto/clinic.rst:865 msgid "``'z*'``" -msgstr "" +msgstr "``'z*'``" #: ../Doc/howto/clinic.rst:865 msgid "``Py_buffer(accept={buffer, str, NoneType})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" #: ../Doc/howto/clinic.rst:868 msgid "" "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " "converter::" msgstr "" +"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " +"approprié ::" #: ../Doc/howto/clinic.rst:881 msgid "" @@ -1601,10 +1739,14 @@ msgid "" "default value for each parameter. Just run ``Tools/clinic/clinic.py --" "converters`` to see the full list." msgstr "" +"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " +"adaptateur, il vous liste également l'ensemble des paramètres qu'ils " +"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement " +"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste." #: ../Doc/howto/clinic.rst:887 msgid "Py_buffer" -msgstr "" +msgstr "Py_buffer" #: ../Doc/howto/clinic.rst:889 msgid "" @@ -1613,16 +1755,23 @@ msgid "" "`PyBuffer_Release` on the provided buffer. Argument Clinic generates code " "that does it for you (in the parsing function)." msgstr "" +"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de " +"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " +"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " +"génère du code qui le fait pour vous (dans la fonction d'analyse)." #: ../Doc/howto/clinic.rst:897 msgid "Advanced converters" -msgstr "" +msgstr "Adaptateurs avancés" #: ../Doc/howto/clinic.rst:899 msgid "" "Remember those format units you skipped for your first time because they " "were advanced? Here's how to handle those too." msgstr "" +"Vous vous souvenez de ces spécifications de format que vous avez laissées de " +"côté la première fois parce qu'il s'agissait de notions avancées ? Voici " +"comment les utiliser." #: ../Doc/howto/clinic.rst:902 msgid "" @@ -1634,6 +1783,14 @@ msgid "" "``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " "units that start with ``e``)." msgstr "" +"L'astuce est que toutes ces spécifications de format acceptent des arguments " +"— aussi bien des fonctions de conversion que des types, ou des chaînes " +"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les " +"arguments. C'est pourquoi nous les avions laissés de côté pour votre " +"première fonction.) L'argument que vous aviez spécifié à la spécification de " +"format est désormais un argument du convertisseur ; cet argument est soit " +"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` " +"(pour toutes les spécifications de format qui commencent par ``e``)." #: ../Doc/howto/clinic.rst:910 msgid "" @@ -1643,6 +1800,12 @@ msgid "" "is a subclass of ``PyUnicode_Type``, you probably want to use the converter " "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." msgstr "" +"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " +"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous " +"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous " +"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, " +"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject " +"*', subclass_of='&PyUnicode_Type')``." #: ../Doc/howto/clinic.rst:916 msgid "" @@ -1656,30 +1819,46 @@ msgid "" "unreasonable; CPython itself always passes in static hard-coded encoding " "strings for parameters whose format units start with ``e``." msgstr "" +"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire " +"la flexibilité des spécifications de format commençant par ``e``. Lorsque " +"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " +"théoriquement décider quelle chaîne d'encodage passer à :c:func:" +"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au " +"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; " +"elle permet une gestion plus simple de cette spécification de format, et " +"peut permettre de futures optimisations. Cette restriction ne semble pas " +"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en " +"dur pour les paramètres dont les spécifications de format commencent par " +"``e``." #: ../Doc/howto/clinic.rst:929 msgid "Parameter default values" -msgstr "" +msgstr "Valeurs par défaut des paramètres" #: ../Doc/howto/clinic.rst:931 msgid "" "Default values for parameters can be any of a number of values. At their " "simplest, they can be string, int, or float literals:" msgstr "" +"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. " +"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :" #: ../Doc/howto/clinic.rst:940 msgid "They can also use any of Python's built-in constants:" msgstr "" +"Vous pouvez également utiliser n'importe quelle constante native de Python :" #: ../Doc/howto/clinic.rst:948 msgid "" "There's also special support for a default value of ``NULL``, and for simple " "expressions, documented in the following sections." msgstr "" +"La valeur ``NULL`` est également acceptée, ainsi que des expressions " +"simples, comme expliqué dans les sections suivantes." #: ../Doc/howto/clinic.rst:953 msgid "The ``NULL`` default value" -msgstr "" +msgstr "La valeur par défaut ``NULL``" #: ../Doc/howto/clinic.rst:955 msgid "" @@ -1690,10 +1869,16 @@ msgid "" "behaves like a default value of ``None``, but the C variable is initialized " "with ``NULL``." msgstr "" +"Pour les paramètres chaînes et objets, vous pouvez les positionner à " +"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " +"cela signifie que la variable C sera initialisée à ``Py_None``. Par " +"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette " +"raison : du point de vue de Python, cette valeur se comporte comme la valeur " +"par défaut ``None``, mais la variable C est initialisée à ``NULL``." #: ../Doc/howto/clinic.rst:963 msgid "Expressions specified as default values" -msgstr "" +msgstr "Expressions spécifiées comme valeurs par défaut" #: ../Doc/howto/clinic.rst:965 msgid "" @@ -1702,10 +1887,14 @@ msgid "" "on objects. However, this support isn't exactly simple, because of some non-" "obvious semantics." msgstr "" +"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " +"littérale. Il peut s'agir d'une expression, utilisant des opérateurs " +"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est " +"pas aussi simple, notamment à cause de sémantiques peu évidentes." #: ../Doc/howto/clinic.rst:970 msgid "Consider the following example:" -msgstr "" +msgstr "Examinons l'exemple suivant :" #: ../Doc/howto/clinic.rst:976 msgid "" @@ -1756,11 +1945,11 @@ msgstr "" #: ../Doc/howto/clinic.rst:1012 msgid "Function calls." -msgstr "" +msgstr "des appels de fonction." #: ../Doc/howto/clinic.rst:1013 msgid "Inline if statements (``3 if foo else 5``)." -msgstr "" +msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" #: ../Doc/howto/clinic.rst:1014 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." diff --git a/howto/curses.po b/howto/curses.po index 73864efcd..065be25d1 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/curses.rst:5 msgid "Curses Programming with Python" -msgstr "" +msgstr "Programmation *Curses* avec Python" #: ../Doc/howto/curses.rst:0 msgid "Author" @@ -27,7 +27,7 @@ msgstr "Auteur" #: ../Doc/howto/curses.rst:7 msgid "A.M. Kuchling, Eric S. Raymond" -msgstr "" +msgstr "A.M. Kuchling, Eric S. Raymond" #: ../Doc/howto/curses.rst:0 msgid "Release" @@ -35,7 +35,7 @@ msgstr "Version" #: ../Doc/howto/curses.rst:8 msgid "2.04" -msgstr "" +msgstr "2.04" #: ../Doc/howto/curses.rst:None msgid "Abstract" @@ -46,10 +46,12 @@ msgid "" "This document describes how to use the :mod:`curses` extension module to " "control text-mode displays." msgstr "" +"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour " +"contrôler l'affichage en mode texte." #: ../Doc/howto/curses.rst:18 msgid "What is curses?" -msgstr "" +msgstr "Qu'est-ce que *curses* ?" #: ../Doc/howto/curses.rst:20 msgid "" @@ -61,6 +63,14 @@ msgid "" "areas. Different terminals use widely differing codes, and often have their " "own minor quirks." msgstr "" +"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " +"gestion du clavier indépendante du terminal pour les terminaux textuels ; " +"ces terminaux comprennent les *VT100*, la console Linux et le terminal " +"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " +"charge divers codes de commande pour effectuer des opérations courantes " +"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " +"Différents terminaux utilisent des codes très différents et ont souvent " +"leurs propres bizarreries mineures." #: ../Doc/howto/curses.rst:28 msgid "" @@ -71,6 +81,15 @@ msgid "" "an X server. Another is tools such as OS installers and kernel " "configurators that may have to run before any graphical support is available." msgstr "" +"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " +"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " +"caractère sont une technologie obsolète, mais il existe des niches pour " +"lesquelles la possibilité de faire des choses fantaisistes est encore " +"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " +"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " +"les outils tels que les installateurs d'OS et les outils de configuration du " +"noyau qui doivent être exécutés avant qu'un support graphique ne soit " +"disponible." #: ../Doc/howto/curses.rst:36 msgid "" @@ -84,6 +103,16 @@ msgid "" "features, consider a user interface library such as `Urwid `_." msgstr "" +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." #: ../Doc/howto/curses.rst:46 msgid "" @@ -97,6 +126,16 @@ msgid "" "older versions of curses carried by some proprietary Unixes may not support " "everything, though." msgstr "" +"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " +"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " +"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " +"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " +"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " +"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " +"plupart des versions commerciales actuelles d'Unix sont basées sur le code " +"*System V*, toutes les fonctions décrites ici seront probablement " +"disponibles. Les anciennes versions de *curses* portées par certains Unix " +"propriétaires pourraient ne pas gérer toutes les fonctions." #: ../Doc/howto/curses.rst:56 msgid "" @@ -107,10 +146,16 @@ msgid "" "API as curses but provides cursor-addressable text output and full support " "for mouse and keyboard input." msgstr "" +"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " +"version portée appelée `UniCurses `_ est " +"disponible. Vous pouvez également essayer le `Windows console driver `_ écrit par Fredrik Lundh, qui n'utilise " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " +"curseur et une prise en charge complète de la souris et du clavier." #: ../Doc/howto/curses.rst:66 msgid "The Python curses module" -msgstr "" +msgstr "Le module *curses* de Python" #: ../Doc/howto/curses.rst:68 msgid "" @@ -122,6 +167,13 @@ msgid "" "`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " "this covered in more detail later." msgstr "" +"Le module Python est une surcouche assez simple enrobant les fonctions C " +"fournies par *curses* ; si vous êtes déjà familier avec la programmation " +"*curses* en C, il est très facile de transférer cette connaissance à Python. " +"La plus grande différence est que l'interface Python simplifie les choses en " +"fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:func:" +"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window." +"addstr`. Nous voyons cela plus en détail ci-après." #: ../Doc/howto/curses.rst:76 msgid "" @@ -130,10 +182,15 @@ msgid "" "that, see the Python library guide's section on ncurses, and the C manual " "pages for ncurses. It will, however, give you the basic ideas." msgstr "" +"Ce guide pratique est une introduction à l'écriture de programmes en mode " +"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " +"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " +"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " +"cependant les idées de base." #: ../Doc/howto/curses.rst:83 msgid "Starting and ending a curses application" -msgstr "" +msgstr "Lancement et arrêt une application *curses*" #: ../Doc/howto/curses.rst:85 msgid "" @@ -144,6 +201,12 @@ msgid "" "object representing the entire screen; this is usually called ``stdscr`` " "after the name of the corresponding C variable. ::" msgstr "" +"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " +"cela la fonction :func:`~curses.initscr`, elle détermine le type de " +"terminal, envoie tous les codes de configuration requis au terminal et crée " +"diverses structures de données internes. En cas de succès, :func:`initscr` " +"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " +"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" #: ../Doc/howto/curses.rst:96 msgid "" @@ -151,6 +214,10 @@ msgid "" "screen, in order to be able to read keys and only display them under certain " "circumstances. This requires calling the :func:`~curses.noecho` function. ::" msgstr "" +"Habituellement, les applications *curses* désactivent l'écho automatique des " +"touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " +"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" +"`~curses.noecho`. ::" #: ../Doc/howto/curses.rst:103 msgid "" @@ -158,6 +225,10 @@ msgid "" "requiring the Enter key to be pressed; this is called cbreak mode, as " "opposed to the usual buffered input mode. ::" msgstr "" +"Également, les applications réagissent généralement instantanément aux " +"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " +"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " +"avec un tampon. ::" #: ../Doc/howto/curses.rst:109 msgid "" @@ -168,12 +239,21 @@ msgid "" "const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable " "keypad mode. ::" msgstr "" +"Les terminaux renvoient généralement les touches spéciales, telles que les " +"touches de curseur ou les touches de navigation (Page précédente et Accueil " +"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " +"que vous puissiez écrire votre application pour vous attendre à de telles " +"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " +"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " +"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" #: ../Doc/howto/curses.rst:118 msgid "" "Terminating a curses application is much easier than starting one. You'll " "need to call::" msgstr "" +"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " +"une. Appelez ::" #: ../Doc/howto/curses.rst:125 msgid "" @@ -181,6 +261,9 @@ msgid "" "`~curses.endwin` function to restore the terminal to its original operating " "mode. ::" msgstr "" +"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " +"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " +"son mode de fonctionnement original. ::" #: ../Doc/howto/curses.rst:131 msgid "" @@ -190,12 +273,21 @@ msgid "" "raises an uncaught exception. Keys are no longer echoed to the screen when " "you type them, for example, which makes using the shell difficult." msgstr "" +"Un problème courant lors du débogage d'une application *curses* est de se " +"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " +"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " +"souvent lorsque votre code est bogué et lève une exception non interceptée. " +"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " +"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " +"difficile." #: ../Doc/howto/curses.rst:137 msgid "" "In Python you can avoid these complications and make debugging much easier " "by importing the :func:`curses.wrapper` function and using it like this::" msgstr "" +"En Python, vous pouvez éviter ces complications et faciliter le débogage en " +"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" #: ../Doc/howto/curses.rst:156 msgid "" @@ -209,10 +301,19 @@ msgid "" "funny state on exception and you'll be able to read the exception's message " "and traceback." msgstr "" +"La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " +"initialisations décrites ci-dessus, initialisant également les couleurs si " +"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " +"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " +"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" +"`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du " +"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste " +"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le " +"message de l'exception et la trace de la pile d'appels." #: ../Doc/howto/curses.rst:168 msgid "Windows and Pads" -msgstr "" +msgstr "Fenêtres et tampons (*pads* en anglais)" #: ../Doc/howto/curses.rst:170 msgid "" @@ -220,6 +321,10 @@ msgid "" "rectangular area of the screen, and supports methods to display text, erase " "it, allow the user to input strings, and so forth." msgstr "" +"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " +"représente une zone rectangulaire de l'écran qui gère des méthodes pour " +"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " +"chaînes, etc." #: ../Doc/howto/curses.rst:174 msgid "" @@ -230,6 +335,12 @@ msgid "" "newwin` function creates a new window of a given size, returning the new " "window object. ::" msgstr "" +"L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " +"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " +"n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " +"en fenêtres plus petites, afin de les redessiner ou de les effacer " +"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " +"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" #: ../Doc/howto/curses.rst:185 msgid "" @@ -240,6 +351,13 @@ msgid "" "difference from most other computer applications, but it's been part of " "curses since it was first written, and it's too late to change things now." msgstr "" +"Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " +"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " +"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " +"convention normale des coordonnées où la coordonnée *x* vient en premier. " +"C'est une différence malheureuse par rapport à la plupart des autres " +"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " +"été écrit et il est trop tard pour changer les choses maintenant." #: ../Doc/howto/curses.rst:193 msgid "" @@ -248,6 +366,10 @@ msgid "" "sizes. Legal coordinates will then extend from ``(0,0)`` to ``(curses.LINES " "- 1, curses.COLS - 1)``." msgstr "" +"Votre application peut déterminer la taille de l'écran en utilisant les " +"variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " +"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " +"``(curses.LINES - 1, curses.COLS - 1)``." #: ../Doc/howto/curses.rst:198 msgid "" @@ -255,6 +377,9 @@ msgid "" "immediately show up on the display. Instead you must call the :meth:" "`~curses.window.refresh` method of window objects to update the screen." msgstr "" +"Quand vous appelez une méthode pour afficher ou effacer du texte, " +"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :" +"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran." #: ../Doc/howto/curses.rst:203 msgid "" @@ -266,6 +391,14 @@ msgid "" "and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" +"C'est parce que *curses* a été écrit du temps des terminaux avec une " +"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " +"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " +"modifications à apporter à l'écran pour les afficher de la manière la plus " +"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " +"si votre programme affiche du texte dans une fenêtre puis efface cette " +"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " +"visible." #: ../Doc/howto/curses.rst:212 msgid "" @@ -276,6 +409,14 @@ msgid "" "redrawn before pausing to wait for user input, by first calling ``stdscr." "refresh()`` or the :meth:`refresh` method of some other relevant window." msgstr "" +"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " +"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " +"plupart des programmes effectuent une rafale de traitements puis attendent " +"qu'une touche soit pressée ou toute autre action de la part de " +"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " +"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " +"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " +"fenêtre adéquate." #: ../Doc/howto/curses.rst:220 msgid "" @@ -285,6 +426,12 @@ msgid "" "giving the coordinates of the on-screen area where a subsection of the pad " "will be displayed. ::" msgstr "" +"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " +"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " +"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " +"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " +"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " +"sera affichée." #: ../Doc/howto/curses.rst:241 msgid "" @@ -294,6 +441,11 @@ msgid "" "Beyond that difference, pads are exactly like ordinary windows and support " "the same methods." msgstr "" +"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " +"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " +"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " +"tampon. À part cette différence, les tampons sont exactement comme les " +"fenêtres ordinaires et gèrent les mêmes méthodes." #: ../Doc/howto/curses.rst:247 msgid "" @@ -301,28 +453,39 @@ msgid "" "way to update the screen and prevent annoying screen flicker as each part of " "the screen gets updated. :meth:`refresh` actually does two things:" msgstr "" +"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " +"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " +"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" #: ../Doc/howto/curses.rst:252 msgid "" "Calls the :meth:`~curses.window.noutrefresh` method of each window to update " "an underlying data structure representing the desired state of the screen." msgstr "" +"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " +"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " +"l'affichage voulu ;" #: ../Doc/howto/curses.rst:255 msgid "" "Calls the function :func:`~curses.doupdate` function to change the physical " "screen to match the desired state recorded in the data structure." msgstr "" +"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " +"physique afin de correspondre à l'état défini par les données sous-jacentes." #: ../Doc/howto/curses.rst:258 msgid "" "Instead you can call :meth:`noutrefresh` on a number of windows to update " "the data structure, and then call :func:`doupdate` to update the screen." msgstr "" +"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " +"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " +"l'écran." #: ../Doc/howto/curses.rst:264 msgid "Displaying Text" -msgstr "" +msgstr "Affichage de texte" #: ../Doc/howto/curses.rst:266 msgid "" @@ -334,6 +497,14 @@ msgid "" "allows specifying a window to use instead of using ``stdscr`` by default. :c:" "func:`mvwaddstr` allows specifying both a window and a coordinate." msgstr "" +"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " +"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:" +"func:`addstr` affiche une chaîne à la position actuelle du curseur de la " +"fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace d'abord " +"jusqu'aux coordonnées (y,x) avant d'afficher la chaîne. :c:func:`waddstr` " +"est comme :c:func:`addstr`, mais permet de spécifier la fenêtre au lieu " +"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à " +"la fois les coordonnées et la fenêtre." #: ../Doc/howto/curses.rst:275 msgid "" @@ -342,10 +513,14 @@ msgid "" "addstr` accept multiple argument forms. Usually there are four different " "forms." msgstr "" +"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " +"objet fenêtre comme les autres et les méthodes telles que :meth:`~curses." +"window.addstr` acceptent leurs arguments sous de multiples formes, " +"habituellement quatre." #: ../Doc/howto/curses.rst:281 msgid "Form" -msgstr "" +msgstr "Forme" #: ../Doc/howto/curses.rst:281 ../Doc/howto/curses.rst:350 msgid "Description" @@ -353,39 +528,45 @@ msgstr "Description" #: ../Doc/howto/curses.rst:283 msgid "*str* or *ch*" -msgstr "" +msgstr "*str* ou *ch*" #: ../Doc/howto/curses.rst:283 msgid "Display the string *str* or character *ch* at the current position" -msgstr "" +msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" #: ../Doc/howto/curses.rst:286 msgid "*str* or *ch*, *attr*" -msgstr "" +msgstr "*str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:286 msgid "" "Display the string *str* or character *ch*, using attribute *attr* at the " "current position" msgstr "" +"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " +"à la position actuelle" #: ../Doc/howto/curses.rst:290 msgid "*y*, *x*, *str* or *ch*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*" #: ../Doc/howto/curses.rst:290 msgid "Move to position *y,x* within the window, and display *str* or *ch*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch*" #: ../Doc/howto/curses.rst:293 msgid "*y*, *x*, *str* or *ch*, *attr*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:293 msgid "" "Move to position *y,x* within the window, and display *str* or *ch*, using " "attribute *attr*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch* en utilisant l'attribut *attr*" #: ../Doc/howto/curses.rst:297 msgid "" @@ -393,6 +574,9 @@ msgid "" "underline, reverse code, or in color. They'll be explained in more detail " "in the next subsection." msgstr "" +"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " +"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " +"suivante." #: ../Doc/howto/curses.rst:302 msgid "" @@ -402,12 +586,21 @@ msgid "" "window's :attr:`encoding` attribute; this defaults to the default system " "encoding as returned by :func:`locale.getpreferredencoding`." msgstr "" +"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " +"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " +"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " +"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " +"l'encodage du système tel que renvoyé par :func:`locale." +"getpreferredencoding`." #: ../Doc/howto/curses.rst:309 msgid "" "The :meth:`~curses.window.addch` methods take a character, which can be " "either a string of length 1, a bytestring of length 1, or an integer." msgstr "" +"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " +"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " +"d'un entier." #: ../Doc/howto/curses.rst:312 msgid "" @@ -416,6 +609,11 @@ msgid "" "symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " "for drawing borders). You can also use the appropriate Unicode character." msgstr "" +"Des constantes sont disponibles pour étendre les caractères ; ces constantes " +"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " +"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " +"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " +"pouvez aussi utiliser les caractères Unicode adéquats." #: ../Doc/howto/curses.rst:318 msgid "" @@ -427,6 +625,14 @@ msgid "" "some location where it won't be distracting; it can be confusing to have the " "cursor blinking at some apparently random location." msgstr "" +"Windows se souvient de l'endroit où le curseur était positionné lors de la " +"dernière opération, de manière à ce que si vous n'utilisez pas les " +"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " +"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " +"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " +"assurer que celui-ci est positionné à un endroit où il ne distrait pas " +"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " +"endroits apparemment aléatoires)." #: ../Doc/howto/curses.rst:326 msgid "" @@ -437,10 +643,17 @@ msgid "" "attempt to suppress the flashing cursor, and you won't need to worry about " "leaving it in odd locations." msgstr "" +"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " +"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " +"compatibilité avec les anciennes versions de *curses*, il existe la fonction " +"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " +"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " +"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " +"trainer à des endroits bizarres." #: ../Doc/howto/curses.rst:335 msgid "Attributes and Color" -msgstr "" +msgstr "Attributs et couleurs" #: ../Doc/howto/curses.rst:337 msgid "" @@ -449,6 +662,11 @@ msgid "" "to highlight certain words. curses supports this by allowing you to specify " "an attribute for each cell on the screen." msgstr "" +"Les caractères peuvent être affichés de différentes façons. Les lignes de " +"statut des applications en mode texte sont généralement affichées en mode " +"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " +"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " +"caractère à l'écran." #: ../Doc/howto/curses.rst:342 msgid "" @@ -459,6 +677,13 @@ msgid "" "being used, so it's safest to stick to the most commonly available " "attributes, listed here." msgstr "" +"Un attribut est un entier dont chaque bit représente un attribut différent. " +"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " +"simultanément mais *curses* ne garantit pas que toutes les combinaisons " +"soient prises en compte ou que le résultat soit visuellement différent. Cela " +"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " +"se cantonner aux attributs les plus communément utilisés, dont la liste est " +"fournie ci-dessous." #: ../Doc/howto/curses.rst:350 msgid "Attribute" @@ -466,57 +691,59 @@ msgstr "Attribut" #: ../Doc/howto/curses.rst:352 msgid ":const:`A_BLINK`" -msgstr "" +msgstr ":const:`A_BLINK`" #: ../Doc/howto/curses.rst:352 msgid "Blinking text" -msgstr "" +msgstr "Texte clignotant" #: ../Doc/howto/curses.rst:354 msgid ":const:`A_BOLD`" -msgstr "" +msgstr ":const:`A_BOLD`" #: ../Doc/howto/curses.rst:354 msgid "Extra bright or bold text" -msgstr "" +msgstr "Texte en surbrillance ou en gras" #: ../Doc/howto/curses.rst:356 msgid ":const:`A_DIM`" -msgstr "" +msgstr ":const:`A_DIM`" #: ../Doc/howto/curses.rst:356 msgid "Half bright text" -msgstr "" +msgstr "Texte en demi-ton" #: ../Doc/howto/curses.rst:358 msgid ":const:`A_REVERSE`" -msgstr "" +msgstr ":const:`A_REVERSE`" #: ../Doc/howto/curses.rst:358 msgid "Reverse-video text" -msgstr "" +msgstr "Texte en mode vidéo inversé" #: ../Doc/howto/curses.rst:360 msgid ":const:`A_STANDOUT`" -msgstr "" +msgstr ":const:`A_STANDOUT`" #: ../Doc/howto/curses.rst:360 msgid "The best highlighting mode available" -msgstr "" +msgstr "Le meilleur mode de mis en valeur pour le texte" #: ../Doc/howto/curses.rst:362 msgid ":const:`A_UNDERLINE`" -msgstr "" +msgstr ":const:`A_UNDERLINE`" #: ../Doc/howto/curses.rst:362 msgid "Underlined text" -msgstr "" +msgstr "Texte souligné" #: ../Doc/howto/curses.rst:365 msgid "" "So, to display a reverse-video status line on the top line of the screen, " "you could code::" msgstr "" +"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " +"vidéo inversé, vous pouvez coder ::" #: ../Doc/howto/curses.rst:372 msgid "" @@ -524,6 +751,9 @@ msgid "" "The most common such terminal is probably the Linux console, followed by " "color xterms." msgstr "" +"La bibliothèque *curses* gère également les couleurs pour les terminaux " +"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " +"suivie par *xterm* en couleurs." #: ../Doc/howto/curses.rst:376 msgid "" @@ -536,6 +766,14 @@ msgid "" "to the British spelling, you'll have to resign yourself to misspelling it " "for the sake of these functions.)" msgstr "" +"Pour utiliser les couleurs, vous devez d'abord appeler la fonction :func:" +"`~curses.start_color` juste après avoir appelé :func:`~curses.initscr` afin " +"d'initialiser (la fonction :func:`curses.wrapper` le fait automatiquement). " +"Ensuite, la fonction :func:`~curses.has_colors` renvoie ``True`` si le " +"terminal utilisé gère les couleurs (note : *curses* utilise l'orthographe " +"américaine *color* et non pas l'orthographe britannique ou canadienne " +"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez " +"vous résigner à mal l'orthographier tant que vous utilisez *curses*)." #: ../Doc/howto/curses.rst:386 msgid "" @@ -546,10 +784,19 @@ msgid "" "as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " "work on all terminals." msgstr "" +"La bibliothèque *curses* maintient un nombre restreint de paires de " +"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " +"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " +"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " +"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " +"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " +"combinaisons risquent de ne pas fonctionner sur tous les terminaux." #: ../Doc/howto/curses.rst:393 msgid "An example, which displays a line of text using color pair 1::" msgstr "" +"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " +"1 ::" #: ../Doc/howto/curses.rst:398 msgid "" @@ -558,6 +805,11 @@ msgid "" "pair *n*, to foreground color f and background color b. Color pair 0 is " "hard-wired to white on black, and cannot be changed." msgstr "" +"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " +"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " +"la définition de la paire de couleurs *n*, en définissant la couleur de " +"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " +"dur à blanc sur noir et ne peut être modifiée." #: ../Doc/howto/curses.rst:403 msgid "" @@ -567,12 +819,20 @@ msgid "" "named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" "const:`curses.COLOR_RED`, and so forth." msgstr "" +"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " +"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " +"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " +"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " +"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " +"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses." +"COLOR_RED` et ainsi de suite." #: ../Doc/howto/curses.rst:409 msgid "" "Let's put all this together. To change color 1 to red text on a white " "background, you would call::" msgstr "" +"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" #: ../Doc/howto/curses.rst:414 msgid "" @@ -580,6 +840,9 @@ msgid "" "pair will change to the new colors. You can also display new text in this " "color with::" msgstr "" +"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " +"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " +"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" #: ../Doc/howto/curses.rst:420 msgid "" @@ -592,10 +855,19 @@ msgid "" "there. If you're lucky enough to have such a talented terminal, consult " "your system's man pages for more information." msgstr "" +"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " +"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " +"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " +"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " +"incapable de la tester et de vous en fournir un exemple. Vous pouvez " +"vérifier si votre terminal la prend en charge en appelant :func:`~curses." +"can_change_color`, qui renvoie ``True`` en cas de succès. Si vous avez la " +"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel " +"de votre système pour obtenir plus d'informations." #: ../Doc/howto/curses.rst:431 msgid "User Input" -msgstr "" +msgstr "Entrées de l'utilisateur" #: ../Doc/howto/curses.rst:433 msgid "" @@ -604,10 +876,14 @@ msgid "" "`Urwid `_ have more extensive collections " "of widgets.)" msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." #: ../Doc/howto/curses.rst:438 msgid "There are two methods for getting input from a window:" -msgstr "" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" #: ../Doc/howto/curses.rst:440 msgid "" @@ -616,6 +892,10 @@ msgid "" "called earlier. You can optionally specify a coordinate to which the cursor " "should be moved before pausing." msgstr "" +":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " +"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " +"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " +"positionner le curseur avant la mise en pause ;" #: ../Doc/howto/curses.rst:445 msgid "" @@ -624,6 +904,11 @@ msgid "" "special keys such as function keys return longer strings containing a key " "name such as ``KEY_UP`` or ``^G``." msgstr "" +":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " +"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " +"alors que les touches spéciales (telles que les touches de fonction) " +"renvoient des chaînes plus longues contenant le nom de la touche (tel que " +"``KEY_UP`` ou ``^G``)." #: ../Doc/howto/curses.rst:450 msgid "" @@ -636,6 +921,15 @@ msgid "" "`getch`; if no input becomes available within a specified delay (measured in " "tenths of a second), curses raises an exception." msgstr "" +"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " +"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " +"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " +"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " +"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " +"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " +"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " +"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " +"seconde), *curses* lève une exception." #: ../Doc/howto/curses.rst:460 msgid "" @@ -646,6 +940,13 @@ msgid "" "`curses.KEY_HOME`, or :const:`curses.KEY_LEFT`. The main loop of your " "program may look something like this::" msgstr "" +"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " +"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " +"touches spéciales telles que Page Précédente, Accueil ou les touches du " +"curseur. Vous pouvez comparer la valeur renvoyée aux constantes :const:" +"`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, etc. " +"La boucle principale de votre programme pourrait ressembler à quelque chose " +"comme ::" #: ../Doc/howto/curses.rst:476 msgid "" @@ -656,6 +957,13 @@ msgid "" "arguments and return the same type. For example, :func:`curses.ascii.ctrl` " "returns the control character corresponding to its argument." msgstr "" +"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " +"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " +"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " +"dans ce genre de boucles. Il fournit également des fonctions de conversion " +"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " +"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii." +"ctrl` renvoie le caractère de contrôle correspondant à son paramètre." #: ../Doc/howto/curses.rst:483 msgid "" @@ -665,6 +973,11 @@ msgid "" "key, which terminates the string. It can optionally be limited to a fixed " "number of characters. ::" msgstr "" +"Il existe aussi une méthode pour récupérer une chaîne entière, :meth:" +"`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car son utilité " +"est limitée : les seules touches d'édition disponibles sont le retour " +"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, " +"être limitée à un nombre fixé de caractères. ::" #: ../Doc/howto/curses.rst:494 msgid "" @@ -673,15 +986,22 @@ msgid "" "Textbox` class support editing with input validation and gathering the edit " "results either with or without trailing spaces. Here's an example::" msgstr "" +"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " +"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " +"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " +"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " +"et de fin. Par exemple ::" #: ../Doc/howto/curses.rst:518 msgid "" "See the library documentation on :mod:`curses.textpad` for more details." msgstr "" +"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:" +"`curses.textpad`." #: ../Doc/howto/curses.rst:522 msgid "For More Information" -msgstr "" +msgstr "Pour aller plus loin" #: ../Doc/howto/curses.rst:524 msgid "" @@ -690,6 +1010,11 @@ msgid "" "Python library page for the :mod:`curses` module is now reasonably " "complete. You should browse it next." msgstr "" +"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " +"du contenu de l'écran ou la capture des événements relatifs à la souris dans " +"une instance *xterm*, mais la page de la bibliothèque Python du module :mod:" +"`curses` est maintenant suffisamment complète. Nous vous encourageons à la " +"parcourir." #: ../Doc/howto/curses.rst:529 msgid "" @@ -699,6 +1024,12 @@ msgid "" "quirks, and provide complete lists of all the functions, attributes, and :" "const:`ACS_\\*` characters available to you." msgstr "" +"Si vous vous posez des questions sur le fonctionnement précis de fonctions " +"*curses*, consultez les pages de manuel de l'implémentation *curses* de " +"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " +"pages de manuel documentent toutes les bizarreries et vous donneront les " +"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " +"caractères disponibles." #: ../Doc/howto/curses.rst:536 msgid "" @@ -709,12 +1040,23 @@ msgid "" "would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." #: ../Doc/howto/curses.rst:544 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." #: ../Doc/howto/curses.rst:546 msgid "`The ncurses man page `_" @@ -724,6 +1066,8 @@ msgstr "" msgid "" "`The ncurses FAQ `_" msgstr "" +"`La FAQ ncurses `_ " +"(ressource en anglais)" #: ../Doc/howto/curses.rst:548 msgid "" @@ -731,6 +1075,9 @@ msgid "" "v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using " "curses or Urwid." msgstr "" +"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " +"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." #: ../Doc/howto/curses.rst:550 msgid "" @@ -738,3 +1085,6 @@ msgid "" "console-applications-with-urwid>`_: video of a PyCon CA 2012 talk " "demonstrating some applications written using Urwid." msgstr "" +"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*." diff --git a/howto/sockets.po b/howto/sockets.po index 00402c730..e53ee5f07 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:5 msgid "Socket Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation avec les *sockets*" #: ../Doc/howto/sockets.rst:0 msgid "Author" @@ -42,6 +42,12 @@ msgid "" "a lot of them), but I hope it will give you enough background to begin using " "them decently." msgstr "" +"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " +"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " +"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " +"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " +"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " +"d'informations pour commencer à les utiliser correctement." #: ../Doc/howto/sockets.rst:20 msgid "Sockets" @@ -80,6 +86,14 @@ msgid "" "sockets exclusively; the web server it's talking to uses both \"server\" " "sockets and \"client\" sockets." msgstr "" +"Une partie de la difficulté à comprendre ces choses est que « connecteur » " +"peut désigner plusieurs choses très légèrement différentes, selon le " +"contexte. Faisons donc d'abord une distinction entre un connecteur " +"« client » — point final d'une conversation — et un connecteur « serveur », " +"qui ressemble davantage à un standardiste. L'application cliente (votre " +"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " +"le serveur web avec lequel elle parle utilise à la fois des connecteurs " +"« serveur » et des connecteurs « client »." #: ../Doc/howto/sockets.rst:40 msgid "History" @@ -92,6 +106,11 @@ msgid "" "other forms of IPC that are faster, but for cross-platform communication, " "sockets are about the only game in town." msgstr "" +"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " +"les connecteurs sont de loin les plus populaires. Sur une plate-forme " +"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " +"mais pour la communication entre plates-formes, les connecteurs sont à peu " +"près la seule solution valable." #: ../Doc/howto/sockets.rst:47 msgid "" @@ -100,6 +119,11 @@ msgid "" "of sockets with INET makes talking to arbitrary machines around the world " "unbelievably easy (at least compared to other schemes)." msgstr "" +"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " +"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " +"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " +"avec n’importe quelle machine dans le monde entier incroyablement facile (du " +"moins par rapport à d'autres systèmes)." #: ../Doc/howto/sockets.rst:54 msgid "Creating a Socket" @@ -110,6 +134,8 @@ msgid "" "Roughly speaking, when you clicked on the link that brought you to this " "page, your browser did something like the following::" msgstr "" +"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " +"page, votre navigateur a fait quelque chose comme ceci ::" #: ../Doc/howto/sockets.rst:64 msgid "" @@ -118,12 +144,19 @@ msgid "" "then be destroyed. That's right, destroyed. Client sockets are normally only " "used for one exchange (or a small set of sequential exchanges)." msgstr "" +"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " +"utilisé pour envoyer une requête demandant le texte de la page. Le même " +"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " +"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " +"échange (ou un petit ensemble d'échanges séquentiels)." #: ../Doc/howto/sockets.rst:70 msgid "" "What happens in the web server is a bit more complex. First, the web server " "creates a \"server socket\"::" msgstr "" +"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " +"le serveur web crée un « connecteur serveur » ::" #: ../Doc/howto/sockets.rst:80 msgid "" @@ -168,6 +201,8 @@ msgid "" "Now that we have a \"server\" socket, listening on port 80, we can enter the " "mainloop of the web server::" msgstr "" +"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " +"80, nous pouvons entrer dans la boucle principale du serveur web ::" #: ../Doc/howto/sockets.rst:106 msgid "" @@ -184,6 +219,20 @@ msgid "" "The two \"clients\" are free to chat it up - they are using some dynamically " "allocated port which will be recycled when the conversation ends." msgstr "" +"Il y a en fait trois façons générales de faire fonctionner cette boucle : " +"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " +"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " +"application pour utiliser des connecteurs non bloquants, et multiplexer " +"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " +"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " +"importante à comprendre maintenant est la suivante : c'est *tout* ce que " +"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " +"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " +"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " +"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " +"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " +"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " +"port alloué dynamiquement qui sera recyclé à la fin de la conversation." #: ../Doc/howto/sockets.rst:121 msgid "IPC" @@ -209,10 +258,12 @@ msgid "" "The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " "API." msgstr "" +"Le :mod:`multiprocessing` intègre de l’IPC multiplateforme dans une API de " +"plus haut niveau." #: ../Doc/howto/sockets.rst:134 msgid "Using a Socket" -msgstr "" +msgstr "Utilisation d'un connecteur" #: ../Doc/howto/sockets.rst:136 msgid "" @@ -224,6 +275,14 @@ msgid "" "in a request, or perhaps a signon. But that's a design decision - it's not a " "rule of sockets." msgstr "" +"La première chose à noter, c'est que la prise « client » du navigateur web " +"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" +"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " +"autrement, *en tant que concepteur, vous devrez décider quelles sont les " +"règles d'étiquette pour une conversation*. Normalement, la connexion via " +"``connect`` lance la conversation en envoyant une demande, ou peut-être un " +"signe. Mais c'est une décision de conception — ce n'est pas une règle des " +"connecteurs." #: ../Doc/howto/sockets.rst:143 msgid "" @@ -236,6 +295,16 @@ msgid "" "reply. Without a ``flush`` in there, you may wait forever for the reply, " "because the request may still be in your output buffer." msgstr "" +"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " +"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " +"connecteur client en une bête imitant un fichier et utiliser ``read`` et " +"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " +"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " +"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " +"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " +"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " +"pouvez attendre la réponse pour toujours, parce que la requête peut encore " +"être dans votre mémoire tampon de sortie." #: ../Doc/howto/sockets.rst:152 msgid "" @@ -247,6 +316,14 @@ msgid "" "you how many bytes they handled. It is *your* responsibility to call them " "again until your message has been completely dealt with." msgstr "" +"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " +"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " +"pas nécessairement tous les octets que vous leur passez (ou que vous " +"attendez d'eux), car leur principal objectif est de gérer les tampons " +"réseau. En général, leur exécution se termine lorsque les tampons réseau " +"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " +"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " +"les rappeler jusqu'à ce que votre message ait été complètement traité." #: ../Doc/howto/sockets.rst:160 msgid "" @@ -255,6 +332,10 @@ msgid "" "data on this connection. Ever. You may be able to send data successfully; " "I'll talk more about this later." msgstr "" +"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " +"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " +"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " +"succès. J’en parlerai plus tard." #: ../Doc/howto/sockets.rst:165 msgid "" @@ -310,6 +391,12 @@ msgid "" "gets more complex. (And in C, it's not much worse, except you can't use " "``strlen`` if the message has embedded ``\\0``\\ s.)" msgstr "" +"Le code d'envoi ici est utilisable pour presque tous les systèmes de " +"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " +"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " +"contient des caractères ``\\0``). C'est surtout le code de réception qui " +"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " +"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." #: ../Doc/howto/sockets.rst:223 msgid "" @@ -321,6 +408,15 @@ msgid "" "chunk size, (4096 or 8192 is frequently a good match for network buffer " "sizes), and scanning what you've received for a delimiter." msgstr "" +"Le plus simple est de faire du premier caractère du message un indicateur du " +"type de message, et de faire en sorte que le type détermine la longueur. " +"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " +"ce premier caractère afin de pouvoir déterminer la longueur, et le second " +"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " +"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " +"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " +"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " +"délimiteur." #: ../Doc/howto/sockets.rst:231 msgid "" @@ -330,6 +426,12 @@ msgid "" "of a following message. You'll need to put that aside and hold onto it, " "until it's needed." msgstr "" +"Une subtilité dont il faut être conscient : si votre protocole de " +"conversation permet de renvoyer plusieurs messages les uns à la suite des " +"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " +"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " +"message suivant. Vous devrez alors le mettre de côté et le conserver, " +"jusqu'à ce que vous en ayez besoin." #: ../Doc/howto/sockets.rst:237 msgid "" @@ -342,6 +444,16 @@ msgid "" "not always manage to get rid of everything in one pass. And despite having " "read this, you will eventually get bit by it!" msgstr "" +"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " +"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " +"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " +"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " +"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " +"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " +"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " +"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " +"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " +"avertissement, vous finirez par vous faire avoir par cette subtilité !" #: ../Doc/howto/sockets.rst:246 msgid "" @@ -349,6 +461,10 @@ msgid "" "competitive position), these enhancements are left as an exercise for the " "reader. Lets move on to cleaning up." msgstr "" +"Pour garder une longueur raisonnable à cette page, pour forger votre " +"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " +"ces améliorations ne seront pas abordées et sont laissées en exercice au " +"lecteur. Passons maintenant au nettoyage." #: ../Doc/howto/sockets.rst:252 msgid "Binary Data" @@ -366,6 +482,18 @@ msgid "" "order is host order, these do nothing, but where the machine is byte-" "reversed, these swap the bytes around appropriately." msgstr "" +"Il est parfaitement possible d’envoyer des données binaires sur un " +"connecteur. Le gros problème est que toutes les machines n’utilisent pas les " +"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " +"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et " +"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 " +"00. Les bibliothèques de connecteurs ont des appels pour convertir des " +"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie " +"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie " +"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du " +"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine " +"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière " +"appropriée." #: ../Doc/howto/sockets.rst:264 msgid "" @@ -375,6 +503,13 @@ msgid "" "The string \"0\" would be two bytes, while binary is four. Of course, this " "doesn't fit well with fixed-length messages. Decisions, decisions." msgstr "" +"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " +"données binaires est souvent plus compacte que la représentation binaire. " +"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur " +"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " +"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " +"très bien avec les messages de longueur fixe. Ah, les décisions, les " +"décisions…" #: ../Doc/howto/sockets.rst:272 msgid "Disconnecting" @@ -391,6 +526,15 @@ msgid "" "same as ``shutdown(); close()``. So in most situations, an explicit " "``shutdown`` is not needed." msgstr "" +"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " +"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " +"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " +"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " +"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " +"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " +"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " +"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " +"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." #: ../Doc/howto/sockets.rst:282 msgid "" @@ -401,6 +545,13 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" +"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " +"de type HTTP. Le client envoie une requête et effectue ensuite un " +"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " +"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " +"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " +"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " +"effet, le client était encore en train de recevoir." #: ../Doc/howto/sockets.rst:289 msgid "" @@ -411,10 +562,17 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" +"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " +"connecteur est collecté par le ramasse-miette, il effectue automatiquement " +"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " +"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " +"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " +"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " +"connecteurs quand vous avez terminé *s’il vous plait*." #: ../Doc/howto/sockets.rst:297 msgid "When Sockets Die" -msgstr "" +msgstr "Quand les connecteurs meurent" #: ../Doc/howto/sockets.rst:299 msgid "" @@ -430,10 +588,23 @@ msgid "" "automatic recycling of resources. In other words, if you do manage to kill " "the thread, your whole process is likely to be screwed up." msgstr "" +"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " +"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " +"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " +"est un protocole fiable, et il attendra très, très longtemps avant " +"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " +"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " +"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " +"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " +"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " +"fils sont plus efficients que les processus, c'est en partie parce qu'ils " +"évitent les coûts significatifs liés au recyclage automatique des " +"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " +"processus risque d'être foutu." #: ../Doc/howto/sockets.rst:313 msgid "Non-blocking Sockets" -msgstr "" +msgstr "Connecteurs non bloquants" #: ../Doc/howto/sockets.rst:315 msgid "" @@ -473,6 +644,13 @@ msgid "" "will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " "and do it right." msgstr "" +"La différence majeure de fonctionnement est que `send``, ``recv``, " +"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " +"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " +"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " +"croyez pas, essayez un jour. Votre application va grossir, boguer et " +"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " +"le départ et faisons les choses correctement." #: ../Doc/howto/sockets.rst:334 msgid "Use ``select``." @@ -498,6 +676,15 @@ msgid "" "generally a sensible thing to do - give it a nice long timeout (say a " "minute) unless you have good reason to do otherwise." msgstr "" +"Vous passez à ``select`` trois listes : la première contient tous les " +"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " +"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " +"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " +"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " +"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " +"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " +"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " +"ne pas le faire." #: ../Doc/howto/sockets.rst:355 msgid "" @@ -505,6 +692,10 @@ msgid "" "actually readable, writable and in error. Each of these lists is a subset " "(possibly empty) of the corresponding list you passed in." msgstr "" +"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " +"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " +"est un sous-ensemble (éventuellement vide) de la liste correspondante que " +"vous avez transmise." #: ../Doc/howto/sockets.rst:359 msgid "" diff --git a/howto/urllib2.po b/howto/urllib2.po index a1ac1d8b2..3416c8c42 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -20,6 +20,7 @@ msgstr "" #: ../Doc/howto/urllib2.rst:5 msgid "HOWTO Fetch Internet Resources Using The urllib Package" msgstr "" +"Guide pratique : récupérer des ressources web en utilisant le module *urllib*" #: ../Doc/howto/urllib2.rst:0 msgid "Author" diff --git a/install/index.po b/install/index.po index a076f7c5e..e00d8adfe 100644 --- a/install/index.po +++ b/install/index.po @@ -1005,12 +1005,18 @@ msgid "" "`!--prefix` option has traditionally been used to install additional " "packages in separate locations on Windows. ::" msgstr "" +"Windows n'a pas de concept de répertoire utilisateur, et comme " +"l'installation standard de Python sur Windows est plus simple que sur Unix, " +"l':option:`!--prefix` option a traditionnellement été utilisée pour " +"installer des paquets supplémentaires à des endroits séparés sur Windows. ::" #: ../Doc/install/index.rst:512 msgid "" "to install modules to the :file:`\\\\Temp\\\\Python` directory on the " "current drive." msgstr "" +"pour installer des modules dans le dossier :file:`\\\\Temp\\\\Python` du " +"disque courant." #: ../Doc/install/index.rst:514 msgid "" @@ -1019,10 +1025,14 @@ msgid "" "that pure Python modules and extension modules are installed into the same " "location. Files are installed as follows:" msgstr "" +"Le dossier racine de l'installation est défini par l'option :option:`!--" +"prefix`. L'option :option:`!--exec-prefix` n'est pas gérée sur Windows, ce " +"qui signifie que les modules Python et les modules d'extension sont " +"installés au même endroit. Les fichiers sont installés selon ce tableau :" #: ../Doc/install/index.rst:523 msgid ":file:`{prefix}\\\\Scripts`" -msgstr "" +msgstr ":file:`{prefix}\\\\Scripts`" #: ../Doc/install/index.rst:525 msgid ":file:`{prefix}\\\\Include\\\\{distname}`" @@ -1030,7 +1040,7 @@ msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" #: ../Doc/install/index.rst:532 msgid "Custom Installation" -msgstr "" +msgstr "Installation personnalisée" #: ../Doc/install/index.rst:534 msgid "" @@ -1040,6 +1050,12 @@ msgid "" "directory, or you might want to completely redefine the installation " "scheme. In either case, you're creating a *custom installation scheme*." msgstr "" +"Parfois, les procédés d'installation alternatifs décrits dans la section :" +"ref:`inst-alt-install` ne font pas ce que vous attendiez. Vous pourriez " +"vouloir modifier seulement un ou deux répertoires en conservant tout le " +"reste sous la même racine, ou vouloir redéfinir l'ensemble du procédé " +"d'installation. Quel que soit le cas, vous créez ainsi un *procédé " +"d'installation personnalisé*." #: ../Doc/install/index.rst:540 msgid "" @@ -1047,38 +1063,41 @@ msgid "" "schemes and override some of the installation directories used for the " "various types of files, using these options:" msgstr "" +"Pour créer un modèle d'installation personnalisé, partez d'un modèle " +"alternatif et remplacez les dossiers d'installation de types de fichiers " +"donnés via ces options :" #: ../Doc/install/index.rst:545 msgid "Override option" -msgstr "" +msgstr "Option" #: ../Doc/install/index.rst:547 msgid "``--install-purelib``" -msgstr "" +msgstr "``--install-purelib``" #: ../Doc/install/index.rst:548 msgid "``--install-platlib``" -msgstr "" +msgstr "``--install-platlib``" #: ../Doc/install/index.rst:549 msgid "all modules" -msgstr "" +msgstr "tous les modules" #: ../Doc/install/index.rst:549 msgid "``--install-lib``" -msgstr "" +msgstr "``--install-lib``" #: ../Doc/install/index.rst:550 msgid "``--install-scripts``" -msgstr "" +msgstr "``--install-scripts``" #: ../Doc/install/index.rst:551 msgid "``--install-data``" -msgstr "" +msgstr "``--install-data``" #: ../Doc/install/index.rst:552 msgid "``--install-headers``" -msgstr "" +msgstr "``--install-headers``" #: ../Doc/install/index.rst:555 msgid "" diff --git a/library/argparse.po b/library/argparse.po index b18915d94..1f0d5cfe5 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -163,6 +163,11 @@ msgid "" "most cases, this means a simple :class:`Namespace` object will be built up " "from attributes parsed out of the command line::" msgstr "" +":class:`ArgumentParser` analyse les arguments avec la méthode :meth:" +"`~ArgumentParser.parse_args`. Cette méthode inspecte la ligne de commande, " +"convertit chaque argument au type approprié et invoque l'action requise. " +"Dans la plupart des cas, le résultat est la construction d'un objet :class:" +"`Namespace` à partir des attributs analysés dans la ligne de commande ::" #: ../Doc/library/argparse.rst:132 msgid "" @@ -170,6 +175,9 @@ msgid "" "with no arguments, and the :class:`ArgumentParser` will automatically " "determine the command-line arguments from :data:`sys.argv`." msgstr "" +"Dans un script, :meth:`~ArgumentParser.parse_args` est généralement appelée " +"sans arguments et l'objet :class:`ArgumentParser` détermine automatiquement " +"les arguments de la ligne de commande à partir de :data:`sys.argv`." #: ../Doc/library/argparse.rst:138 msgid "ArgumentParser objects" @@ -181,69 +189,92 @@ msgid "" "as keyword arguments. Each parameter has its own more detailed description " "below, but in short they are:" msgstr "" +"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " +"être passés en arguments nommés. Chaque paramètre a sa propre description " +"détaillée ci-dessous, mais en résumé ils sont :" #: ../Doc/library/argparse.rst:151 msgid "prog_ - The name of the program (default: ``sys.argv[0]``)" -msgstr "" +msgstr "prog_ – Nom du programme (par défaut : ``sys.argv[0]``) ;" #: ../Doc/library/argparse.rst:153 msgid "" "usage_ - The string describing the program usage (default: generated from " "arguments added to parser)" msgstr "" +"usage_ – Chaîne décrivant l'utilisation du programme (par défaut : générée à " +"partir des arguments ajoutés à l'analyseur) ;" #: ../Doc/library/argparse.rst:156 msgid "description_ - Text to display before the argument help (default: none)" msgstr "" +"description_ – Texte à afficher avant l'aide des arguments (par défaut : " +"vide) ;" #: ../Doc/library/argparse.rst:158 msgid "epilog_ - Text to display after the argument help (default: none)" msgstr "" +"epilog_ – Texte à afficher après l'aide des arguments (par défaut : vide) ;" #: ../Doc/library/argparse.rst:160 msgid "" "parents_ - A list of :class:`ArgumentParser` objects whose arguments should " "also be included" msgstr "" +"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " +"qui devraient aussi être inclus ;" #: ../Doc/library/argparse.rst:163 msgid "formatter_class_ - A class for customizing the help output" msgstr "" +"formatter_class_ – Classe pour personnaliser la sortie du message d'aide ;" #: ../Doc/library/argparse.rst:165 msgid "" "prefix_chars_ - The set of characters that prefix optional arguments " "(default: '-')" msgstr "" +"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " +"défaut : ``'-'``) ;" #: ../Doc/library/argparse.rst:168 msgid "" "fromfile_prefix_chars_ - The set of characters that prefix files from which " "additional arguments should be read (default: ``None``)" msgstr "" +"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " +"arguments additionnels doivent être lus (par défaut : ``None``) ;" #: ../Doc/library/argparse.rst:171 msgid "" "argument_default_ - The global default value for arguments (default: " "``None``)" msgstr "" +"argument_default_ – Valeur globale par défaut pour les arguments (par " +"défaut : ``None``) ;" #: ../Doc/library/argparse.rst:174 msgid "" "conflict_handler_ - The strategy for resolving conflicting optionals " "(usually unnecessary)" msgstr "" +"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " +"optionnels (non-nécessaire en général) ;" #: ../Doc/library/argparse.rst:177 msgid "" "add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" msgstr "" +"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " +"défaut : ``True``) ;" #: ../Doc/library/argparse.rst:179 msgid "" "allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " "unambiguous. (default: ``True``)" msgstr "" +"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " +"options longues (par défaut : ``True``) ;" #: ../Doc/library/argparse.rst:182 msgid "*allow_abbrev* parameter was added." @@ -252,6 +283,8 @@ msgstr "Le paramètre *allow_abbrev* est ajouté." #: ../Doc/library/argparse.rst:185 ../Doc/library/argparse.rst:683 msgid "The following sections describe how each of these are used." msgstr "" +"Les sections suivantes décrivent comment chacune de ces options sont " +"utilisées." #: ../Doc/library/argparse.rst:189 msgid "prog" @@ -265,18 +298,28 @@ msgid "" "program was invoked on the command line. For example, consider a file named " "``myprogram.py`` with the following code::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " +"déterminer comment afficher le nom du programme dans les messages d'aide. " +"Cette valeur par défaut est presque toujours souhaitable, car elle produit " +"un message d'aide qui correspond à la méthode utilisée pour lancer le " +"programme sur la ligne de commande. Par exemple, si on a un fichier nommé " +"``myprogram.py`` avec le code suivant ::" #: ../Doc/library/argparse.rst:202 msgid "" "The help for this program will display ``myprogram.py`` as the program name " "(regardless of where the program was invoked from):" msgstr "" +"Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom du " +"programme (peu importe d'où le programme est lancé) :" #: ../Doc/library/argparse.rst:221 msgid "" "To change this default behavior, another value can be supplied using the " "``prog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Pour changer ce comportement par défaut, une valeur alternative est passée " +"par l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:231 msgid "" @@ -284,6 +327,9 @@ msgid "" "the ``prog=`` argument, is available to help messages using the ``%(prog)s`` " "format specifier." msgstr "" +"Prenez note que le nom du programme, peu importe s'il provient de ``sys." +"argv[0]`` ou de l'argument ``prog=``, est accessible aux messages d'aide " +"grâce au spécificateur de formatage ``%(prog)s``." #: ../Doc/library/argparse.rst:248 msgid "usage" @@ -294,17 +340,23 @@ msgid "" "By default, :class:`ArgumentParser` calculates the usage message from the " "arguments it contains::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " +"l'utilisation à partir des arguments qu'il contient ::" #: ../Doc/library/argparse.rst:266 msgid "" "The default message can be overridden with the ``usage=`` keyword argument::" msgstr "" +"Le message par défaut peut être remplacé grâce à l'argument nommé " +"``usage=`` ::" #: ../Doc/library/argparse.rst:281 msgid "" "The ``%(prog)s`` format specifier is available to fill in the program name " "in your usage messages." msgstr "" +"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " +"nom du programme dans vos messages d'utilisation." #: ../Doc/library/argparse.rst:286 msgid "description" @@ -318,12 +370,20 @@ msgid "" "description is displayed between the command-line usage string and the help " "messages for the various arguments::" msgstr "" +"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " +"l'argument nommé ``description=``. Cet argument donne une brève description " +"de ce que fait le programme et de comment il fonctionne. Dans les messages " +"d'aide, cette description est affichée entre le prototype de ligne de " +"commande et les messages d'aide des arguments ::" #: ../Doc/library/argparse.rst:303 msgid "" "By default, the description will be line-wrapped so that it fits within the " "given space. To change this behavior, see the formatter_class_ argument." msgstr "" +"Par défaut, la description est sujette au retour à la ligne automatique pour " +"se conformer à l'espace disponible. Pour changer ce comportement, voyez " +"l'argument formatter_class_." #: ../Doc/library/argparse.rst:308 msgid "epilog" @@ -335,6 +395,9 @@ msgid "" "the description of the arguments. Such text can be specified using the " "``epilog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Certains programmes aiment afficher un texte supplémentaire après la " +"description des arguments. Un tel texte peut être spécifié grâce à " +"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:327 msgid "" @@ -342,6 +405,10 @@ msgid "" "wrapped, but this behavior can be adjusted with the formatter_class_ " "argument to :class:`ArgumentParser`." msgstr "" +"De même que pour l'argument description_, le texte passé à ``epilog=`` est " +"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " +"grâce à l'argument formatter_class_ du constructeur d':class:" +"`ArgumentParser`." #: ../Doc/library/argparse.rst:333 msgid "parents" @@ -357,6 +424,14 @@ msgid "" "actions from them, and adds these actions to the :class:`ArgumentParser` " "object being constructed::" msgstr "" +"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " +"que de répéter les définitions de ces arguments, un analyseur commun qui " +"contient tous les arguments partagés peut être utilisé, puis passé à " +"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " +"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " +"accumule toutes les actions positionnelles et optionnelles de ces objets, " +"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " +"création ::" #: ../Doc/library/argparse.rst:355 msgid "" @@ -364,6 +439,10 @@ msgid "" "the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " "parent and one in the child) and raise an error." msgstr "" +"Prenez note que la majorité des analyseurs parents doivent spécifier " +"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " +"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " +"l'instance en cours de création) et va lever une erreur." #: ../Doc/library/argparse.rst:360 msgid "" @@ -371,6 +450,9 @@ msgid "" "If you change the parent parsers after the child parser, those changes will " "not be reflected in the child." msgstr "" +"Vous devez initialiser complètement les analyseurs avant de les passer à " +"``parents=``. Si vous changez les analyseurs parents après la création de " +"l'analyseur enfant, ces changements ne seront pas répercutés sur l'enfant." #: ../Doc/library/argparse.rst:366 msgid "formatter_class" @@ -382,6 +464,9 @@ msgid "" "by specifying an alternate formatting class. Currently, there are four such " "classes:" msgstr "" +"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " +"en page des messages d'aide en spécifiant une classe de formatage " +"alternative. Il y a actuellement quatre classes de formatage :" #: ../Doc/library/argparse.rst:377 msgid "" @@ -390,6 +475,11 @@ msgid "" "`ArgumentParser` objects line-wrap the description_ and epilog_ texts in " "command-line help messages::" msgstr "" +":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " +"donnent plus de contrôle sur comment les descriptions textuelles sont " +"affichées. Par défaut, les contenus de description_ et epilog_ des objets :" +"class:`ArgumentParser` font l'objet du retour à la ligne automatique dans " +"les messages d'aide ::" #: ../Doc/library/argparse.rst:402 msgid "" @@ -397,6 +487,10 @@ msgid "" "indicates that description_ and epilog_ are already correctly formatted and " "should not be line-wrapped::" msgstr "" +"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " +"que les textes de description_ et d'epilog_ ont déjà été formatés " +"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " +"automatique ::" #: ../Doc/library/argparse.rst:428 msgid "" @@ -405,12 +499,19 @@ msgid "" "replaced with one. If you wish to preserve multiple blank lines, add spaces " "between the newlines." msgstr "" +":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " +"catégories de textes d'aide, y compris les descriptions des arguments. Notez " +"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " +"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " +"entre les caractères de changement de ligne." #: ../Doc/library/argparse.rst:433 msgid "" ":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " "default values to each of the argument help messages::" msgstr "" +":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " +"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" #: ../Doc/library/argparse.rst:451 msgid "" @@ -418,6 +519,9 @@ msgid "" "each argument as the display name for its values (rather than using the " "dest_ as the regular formatter does)::" msgstr "" +":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " +"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " +"au formateur standard qui utilise dest_) ::" #: ../Doc/library/argparse.rst:472 msgid "prefix_chars" @@ -430,6 +534,11 @@ msgid "" "for options like ``+f`` or ``/foo``, may specify them using the " "``prefix_chars=`` argument to the ArgumentParser constructor::" msgstr "" +"La majorité des options sur la ligne de commande utilisent ``-`` comme " +"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " +"accepter des caractères préfixes autres ou additionnels (par exemple pour " +"les options ``+f`` ou ``/foo``), vous devez les spécifier en utilisant " +"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" #: ../Doc/library/argparse.rst:486 msgid "" @@ -437,6 +546,9 @@ msgid "" "characters that does not include ``-`` will cause ``-f/--foo`` options to be " "disallowed." msgstr "" +"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " +"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" +"f/--foo``." #: ../Doc/library/argparse.rst:492 msgid "fromfile_prefix_chars" @@ -451,6 +563,13 @@ msgid "" "with any of the specified characters will be treated as files, and will be " "replaced by the arguments they contain. For example::" msgstr "" +"Parfois, par exemple quand on traite une liste d'arguments particulièrement " +"longue, il est logique de stocker la liste d'arguments dans un fichier " +"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " +"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur de :class:" +"`ArgumentParser`, alors les arguments qui commencent par l'un des caractères " +"spécifiés seront traités comme des fichiers et seront remplacés par les " +"arguments contenus dans ces fichiers. Par exemple ::" #: ../Doc/library/argparse.rst:508 msgid "" @@ -461,12 +580,21 @@ msgid "" "'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" "f', 'bar']``." msgstr "" +"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " +"une nouvelle ligne (voir aussi :meth:`~ArgumentParser." +"convert_arg_line_to_args`) et ils sont traités comme s'ils étaient au même " +"emplacement que le fichier original référençant les arguments de la ligne de " +"commande. Ainsi dans l'exemple ci-dessus, l'expression ``['-f', 'foo', " +"'@args.txt']`` est équivalente à l'expression ``['-f', 'foo', '-f', 'bar']``." #: ../Doc/library/argparse.rst:514 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" +"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " +"signifie que les arguments ne seront pas traités en tant que références à " +"des fichiers." #: ../Doc/library/argparse.rst:519 msgid "argument_default" @@ -483,6 +611,16 @@ msgid "" "suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " "supply ``argument_default=SUPPRESS``::" msgstr "" +"Généralement, les valeurs par défaut des arguments sont spécifiées soit en " +"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " +"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " +"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " +"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " +"peut activer ce comportement en passant la valeur désirée à l'argument nommé " +"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " +"exemple, pour supprimer globalement la création d'attributs pendant l'appel " +"de :meth:`~ArgumentParser.parse_args`, on fournit " +"``argument_default=SUPPRESS`` ::" #: ../Doc/library/argparse.rst:541 msgid "allow_abbrev" @@ -494,10 +632,15 @@ msgid "" "parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " "abbreviations ` of long options." msgstr "" +"En temps normal, lorsque vous passez une liste d'arguments à la méthode :" +"meth:`~ArgumentParser.parse_args` d':class:`ArgumentParser` :ref:`elle " +"accepte les abréviations ` des options longues." #: ../Doc/library/argparse.rst:547 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" +"Cette fonctionnalité peut être désactivée en passant ``False`` à " +"``allow_abbrev`` ::" #: ../Doc/library/argparse.rst:560 msgid "conflict_handler" @@ -510,6 +653,10 @@ msgid "" "exception if an attempt is made to create an argument with an option string " "that is already in use::" msgstr "" +"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " +"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " +"lèvent une exception si on essaie de créer un argument avec une chaîne " +"d'option qui est déjà utilisée ::" #: ../Doc/library/argparse.rst:574 msgid "" @@ -518,6 +665,10 @@ msgid "" "value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " "of :class:`ArgumentParser`::" msgstr "" +"Parfois, par exemple si on utilise des analyseurs parents_, il est " +"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " +"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " +"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:590 msgid "" @@ -526,6 +677,10 @@ msgid "" "foo`` action is retained as the ``-f`` action, because only the ``--foo`` " "option string was overridden." msgstr "" +"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " +"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" +"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " +"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." #: ../Doc/library/argparse.rst:597 msgid "add_help" @@ -537,12 +692,17 @@ msgid "" "parser's help message. For example, consider a file named ``myprogram.py`` " "containing the following code::" msgstr "" +"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " +"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " +"fichier ``myprogram.py`` qui contient le code suivant ::" #: ../Doc/library/argparse.rst:608 msgid "" "If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " "help will be printed:" msgstr "" +"Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " +"d'aide de l'``ArgumentParser`` sera affiché :" #: ../Doc/library/argparse.rst:620 msgid "" @@ -550,6 +710,9 @@ msgid "" "This can be achieved by passing ``False`` as the ``add_help=`` argument to :" "class:`ArgumentParser`::" msgstr "" +"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " +"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " +"constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:632 msgid "" @@ -558,6 +721,11 @@ msgid "" "h`` and ``--help`` are not valid options. In this case, the first character " "in ``prefix_chars`` is used to prefix the help options::" msgstr "" +"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " +"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" +"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " +"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " +"des options d'aide ::" #: ../Doc/library/argparse.rst:647 msgid "The add_argument() method" @@ -568,27 +736,34 @@ msgid "" "Define how a single command-line argument should be parsed. Each parameter " "has its own more detailed description below, but in short they are:" msgstr "" +"Définie comment une option de ligne de commande doit être analysée. Chacun " +"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" #: ../Doc/library/argparse.rst:656 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " "or ``-f, --foo``." msgstr "" +"`name_or_flags`_ – Nom ou liste de chaînes d'options. Par exemple : ``foo`` " +"ou ``-f, --foo`` ;" #: ../Doc/library/argparse.rst:659 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" +"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " +"reconnu sur la ligne de commande ;" #: ../Doc/library/argparse.rst:662 msgid "nargs_ - The number of command-line arguments that should be consumed." -msgstr "" +msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer ;" #: ../Doc/library/argparse.rst:664 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" +"const_ – Valeur constante requise par certains choix d'action_ et de nargs_ ;" #: ../Doc/library/argparse.rst:666 msgid "" @@ -600,30 +775,38 @@ msgstr "" msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" +"type_ – Type vers lequel l'argument sur la ligne de commande doit être " +"converti ;" #: ../Doc/library/argparse.rst:671 msgid "choices_ - A container of the allowable values for the argument." msgstr "" +"choices_ – Conteneur qui contient toutes les valeurs permises pour cet " +"argument ;" #: ../Doc/library/argparse.rst:673 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" +"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " +"(ne s'applique qu'aux arguments optionnels) ;" #: ../Doc/library/argparse.rst:676 msgid "help_ - A brief description of what the argument does." -msgstr "" +msgstr "help_ – Brève description de ce que fait l'argument ;" #: ../Doc/library/argparse.rst:678 msgid "metavar_ - A name for the argument in usage messages." -msgstr "" +msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations ;" #: ../Doc/library/argparse.rst:680 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" +"dest_ – Nom de l'attribut qui sera ajouté à l'objet retourné par :meth:" +"`parse_args`." #: ../Doc/library/argparse.rst:687 msgid "name or flags" @@ -638,10 +821,17 @@ msgid "" "or a simple argument name. For example, an optional argument could be " "created like::" msgstr "" +"La méthode :meth:`~ArgumentParser.add_argument` doit savoir si c'est un " +"argument optionnel (tel que ``-f`` ou ``--foo``) ou plutôt un argument " +"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " +"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " +"soit une série de noms d'options tels qu'ils apparaissent sur la ligne de " +"commande, soit simplement un nom si on désire un argument positionnel. Par " +"exemple, un argument optionnel est créé comme suit ::" #: ../Doc/library/argparse.rst:698 msgid "while a positional argument could be created like::" -msgstr "" +msgstr "alors qu'un argument positionnel est créé comme suit ::" #: ../Doc/library/argparse.rst:702 msgid "" @@ -649,6 +839,9 @@ msgid "" "be identified by the ``-`` prefix, and the remaining arguments will be " "assumed to be positional::" msgstr "" +"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " +"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " +"sont présumés positionnels ::" #: ../Doc/library/argparse.rst:719 msgid "action" @@ -663,12 +856,21 @@ msgid "" "``action`` keyword argument specifies how the command-line arguments should " "be handled. The supplied actions are:" msgstr "" +"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " +"commande avec des actions. Ces actions peuvent soumettre les arguments de la " +"ligne de commande auxquels elles sont associées à un traitement arbitraire, " +"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " +"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " +"indique comment l'argument de la ligne de commande sera traité. Les actions " +"natives sont :" #: ../Doc/library/argparse.rst:727 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action. For example::" msgstr "" +"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " +"l'action par défaut. Par exemple ::" #: ../Doc/library/argparse.rst:735 msgid "" @@ -676,6 +878,10 @@ msgid "" "argument. The ``'store_const'`` action is most commonly used with optional " "arguments that specify some sort of flag. For example::" msgstr "" +"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. " +"L'action ``'store_const'`` est typiquement utilisée avec des arguments " +"optionnels qui représentent un drapeau ou une condition similaire. Par " +"exemple ::" #: ../Doc/library/argparse.rst:744 msgid "" @@ -684,6 +890,10 @@ msgid "" "respectively. In addition, they create default values of ``False`` and " "``True`` respectively. For example::" msgstr "" +"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " +"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " +"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " +"par défaut ``False`` et ``True``, respectivement. Par exemple ::" #: ../Doc/library/argparse.rst:756 msgid "" @@ -691,6 +901,9 @@ msgid "" "list. This is useful to allow an option to be specified multiple times. " "Example usage::" msgstr "" +"``'append'`` – Stocke une liste et ajoute la valeur de l'argument à la " +"liste. Ceci est pratique pour les options qui peuvent être répétées sur la " +"ligne de commande ::" #: ../Doc/library/argparse.rst:765 msgid "" @@ -700,12 +913,19 @@ msgid "" "useful when multiple arguments need to store constants to the same list. For " "example::" msgstr "" +"``'append_const'`` – Stocke une liste et ajoute la valeur passée à " +"l'argument nommé const_ à la fin de la liste. Notez que la valeur par défaut " +"de l'argument nommé const_ est ``None``. L'action ``'append_const'`` est " +"pratique quand plusieurs arguments ont besoin de stocker des constantes dans " +"la même liste. Par exemple ::" #: ../Doc/library/argparse.rst:777 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" msgstr "" +"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " +"pratique, par exemple, pour augmenter le niveau de verbosité ::" #: ../Doc/library/argparse.rst:785 msgid "" @@ -714,6 +934,10 @@ msgid "" "added to the parser. See :class:`ArgumentParser` for details of how the " "output is created." msgstr "" +"``'help'`` – Affiche le message d'aide complet pour toutes les options de " +"l'analyseur puis termine l'exécution. Une action ``help`` est " +"automatiquement ajoutée à l'analyseur par défaut. Consultez :class:" +"`ArgumentParser` pour les détails de la création du contenu de l'aide." #: ../Doc/library/argparse.rst:790 msgid "" @@ -721,6 +945,9 @@ msgid "" "`~ArgumentParser.add_argument` call, and prints version information and " "exits when invoked::" msgstr "" +"``'version'`` – Affiche la version du programme puis termine l'exécution. " +"Cette action requiert l'argument nommé ``version=`` dans l'appel à :meth:" +"`~ArgumentParser.add_argument` ::" #: ../Doc/library/argparse.rst:800 msgid "" @@ -749,18 +976,27 @@ msgid "" "different number of command-line arguments with a single action. The " "supported values are:" msgstr "" +"En général, les objets ``ArgumentParser`` associent un seul argument de la " +"ligne de commande à une seule action à entreprendre. L'argument nommé " +"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " +"une action. Les valeurs reconnues sont :" #: ../Doc/library/argparse.rst:835 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" +"``N`` (un entier). ``N`` arguments de la ligne de commande seront capturés " +"ensemble et stockés dans une liste. Par exemple ::" #: ../Doc/library/argparse.rst:844 msgid "" "Note that ``nargs=1`` produces a list of one item. This is different from " "the default, in which the item is produced by itself." msgstr "" +"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " +"différent du comportement par défaut qui produit l'élément directement " +"(comme un scalaire)." #: ../Doc/library/argparse.rst:847 msgid "" @@ -771,12 +1007,20 @@ msgid "" "by a command-line argument. In this case the value from const_ will be " "produced. Some examples to illustrate this::" msgstr "" +"``'?'``. Un argument sera capturé de la ligne de commande et produit " +"directement. Si aucun argument n'est présent sur la ligne de commande, la " +"valeur de default_ est produite. Prenez note que pour les arguments " +"optionnels, il est aussi possible que la chaîne d'option soit présente mais " +"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " +"est produite. Voici quelques exemples pour illustrer ceci ::" #: ../Doc/library/argparse.rst:864 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" +"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " +"de sortie optionnels ::" #: ../Doc/library/argparse.rst:879 msgid "" @@ -785,6 +1029,11 @@ msgid "" "argument with ``nargs='*'``, but multiple optional arguments with " "``nargs='*'`` is possible. For example::" msgstr "" +"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " +"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " +"argument positionnel avec ``nargs='*'``, mais il est par contre possible " +"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " +"exemple ::" #: ../Doc/library/argparse.rst:891 msgid "" @@ -792,6 +1041,10 @@ msgid "" "a list. Additionally, an error message will be generated if there wasn't at " "least one command-line argument present. For example::" msgstr "" +"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " +"commande sont capturés dans une liste. De plus, un message d'erreur est " +"produit s'il n'y a pas au moins un argument présent sur la ligne de " +"commande. Par exemple ::" #: ../Doc/library/argparse.rst:905 msgid "" @@ -807,6 +1060,9 @@ msgid "" "command-line argument will be consumed and a single item (not a list) will " "be produced." msgstr "" +"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " +"capturés est déterminé par l'action_. En général, c'est un seul argument de " +"la ligne de commande qui est capturé et il est produit directement." #: ../Doc/library/argparse.rst:922 msgid "const" @@ -819,6 +1075,10 @@ msgid "" "required for the various :class:`ArgumentParser` actions. The two most " "common uses of it are:" msgstr "" +"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " +"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " +"est requise par certaines actions d':class:`ArgumentParser`. Les deux " +"utilisations les plus communes sont :" #: ../Doc/library/argparse.rst:928 msgid "" @@ -827,6 +1087,11 @@ msgid "" "the ``const`` value to one of the attributes of the object returned by :meth:" "`~ArgumentParser.parse_args`. See the action_ description for examples." msgstr "" +"quand :meth:`~ArgumentParser.add_argument` est appelée avec " +"``action='store_const'`` ou ``action='append_const'``. Ces actions ajoutent " +"la valeur de ``const`` à l'un des attributs de l'objet renvoyé par :meth:" +"`~ArgumentParser.parse_args`. Consultez la description d'action_ pour voir " +"quelques exemples ;" #: ../Doc/library/argparse.rst:933 msgid "" @@ -837,12 +1102,22 @@ msgid "" "command-line argument following it, the value of ``const`` will be assumed " "instead. See the nargs_ description for examples." msgstr "" +"Quand la méthode :meth:`~ArgumentParser.add_argument` est appelée avec des " +"chaînes d'options (telles que ``-f`` ou ``--foo``) et ``nargs='?'``. Ceci " +"crée un argument optionnel qui peut être suivi de zéro ou un argument de " +"ligne de commande. Quand la ligne de commande est analysée, si la chaîne " +"d'option est trouvée mais qu'elle n'est pas suivie par un argument, la " +"valeur de ``const`` est utilisée. Consultez la description de nargs_ pour " +"voir quelques exemples." #: ../Doc/library/argparse.rst:940 msgid "" "With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " "keyword argument must be given. For other actions, it defaults to ``None``." msgstr "" +"Pour les actions ``'store_const'`` et ``'append_const'``, l'argument nommé " +"``const`` doit être spécifié. Pour toutes les autres actions, il est " +"optionnel et sa valeur par défaut est ``None``." #: ../Doc/library/argparse.rst:945 msgid "default" @@ -857,6 +1132,12 @@ msgid "" "the ``default`` value is used when the option string was not present at the " "command line::" msgstr "" +"Tous les arguments optionnels et certains arguments positionnels peuvent " +"être omis à la ligne de commande. L'argument nommé ``default`` de la " +"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " +"indique quelle valeur sera utilisé si l'argument est absent de la ligne de " +"commande. Pour les arguments optionnels, la valeur de ``default`` est " +"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" #: ../Doc/library/argparse.rst:961 msgid "" @@ -865,18 +1146,29 @@ msgid "" "conversion argument, if provided, before setting the attribute on the :class:" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" +"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " +"comme si c'était un argument de la ligne de commande. En particulier, " +"l'analyseur applique la conversion spécifiée par l'argument type_ (si elle " +"est fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` " +"renvoyé. Autrement, l'analyseur utilise la valeur telle qu'elle ::" #: ../Doc/library/argparse.rst:972 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" msgstr "" +"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " +"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " +"de commande ::" #: ../Doc/library/argparse.rst:983 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" +"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut ne sera ajouté " +"à l'objet ``Namespace`` quand l'argument est absent de la ligne de " +"commande ::" #: ../Doc/library/argparse.rst:995 msgid "type" @@ -898,6 +1190,8 @@ msgid "" "See the section on the default_ keyword argument for information on when the " "``type`` argument is applied to default arguments." msgstr "" +"Consultez la rubrique de l'argument nommé default_ pour plus d'information " +"sur quand l'argument ``type`` est appliqué aux arguments par défaut." #: ../Doc/library/argparse.rst:1013 msgid "" @@ -906,18 +1200,28 @@ msgid "" "``errors=`` arguments of the :func:`open` function. For example, " "``FileType('w')`` can be used to create a writable file::" msgstr "" +"Pour faciliter l'utilisation de types de fichiers variés, le module " +"``argparse`` fournit le type fabrique ``FileType`` qui accepte les arguments " +"``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la fonction :func:" +"`open`. Par exemple, ``FileType('w')`` peut être utilisé pour créer un " +"fichier en mode écriture ::" #: ../Doc/library/argparse.rst:1023 msgid "" "``type=`` can take any callable that takes a single string argument and " "returns the converted value::" msgstr "" +"``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " +"prend une seule chaîne de caractère comme argument et qui renvoie la valeur " +"convertie ::" #: ../Doc/library/argparse.rst:1042 msgid "" "The choices_ keyword argument may be more convenient for type checkers that " "simply check against a range of values::" msgstr "" +"L'argument nommé choices_ est parfois plus facile d'utilisation pour les " +"vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" #: ../Doc/library/argparse.rst:1053 msgid "See the choices_ section for more details." @@ -935,6 +1239,12 @@ msgid "" "line is parsed, argument values will be checked, and an error message will " "be displayed if the argument was not one of the acceptable values::" msgstr "" +"Certains arguments de la ligne de commande doivent être choisis parmi un " +"ensemble fermé de valeurs. Ceux-ci peuvent être gérés en passant un " +"conteneur à l'argument nommé *choices* de la méthode :meth:`~ArgumentParser." +"add_argument`. Quand la ligne de commande est analysée, les valeurs de " +"l'argument sont comparées et un message d'erreur est affiché si l'argument " +"n'est pas parmi les valeurs acceptables ::" #: ../Doc/library/argparse.rst:1074 msgid "" @@ -942,6 +1252,9 @@ msgid "" "conversions have been performed, so the type of the objects in the *choices* " "container should match the type_ specified::" msgstr "" +"Prenez note que le test d'inclusion dans le conteur *choices* est fait après " +"la conversion de type_. Le type des objets dans le conteneur *choices* " +"doivent donc correspondre au type_ spécifié ::" #: ../Doc/library/argparse.rst:1086 msgid "" @@ -961,6 +1274,11 @@ msgid "" "command line. To make an option *required*, ``True`` can be specified for " "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" +"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " +"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " +"toujours être omis de la ligne de commande. Pour rendre une option " +"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` d':" +"meth:`~ArgumentParser.add_argument` ::" #: ../Doc/library/argparse.rst:1107 msgid "" @@ -968,12 +1286,18 @@ msgid "" "`~ArgumentParser.parse_args` will report an error if that option is not " "present at the command line." msgstr "" +"Tel qu'illustré' dans l'exemple, quand l'option est marquée comme " +"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " +"l'option est absente de la ligne de commande." #: ../Doc/library/argparse.rst:1113 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." msgstr "" +"En général, les options obligatoires manifestent un style boiteux, car les " +"utilisateurs s'attendent que les *options* soient *optionnelles*. Elles " +"devraient donc être évitées si possible." #: ../Doc/library/argparse.rst:1118 msgid "help" @@ -986,6 +1310,10 @@ msgid "" "at the command line), these ``help`` descriptions will be displayed with " "each argument::" msgstr "" +"La valeur de ``help`` est une chaîne qui contient une brève description de " +"l'argument. Quand un utilisateur demande de l'aide (en général par " +"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " +"descriptions d'aide seront affichées pour chacun des arguments ::" #: ../Doc/library/argparse.rst:1140 msgid "" @@ -995,18 +1323,29 @@ msgid "" "arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``" "%(type)s``, etc.::" msgstr "" +"La chaîne ``help`` peut contenir des spécificateurs de formatage afin " +"d'éviter la répétition de contenu tel que le nom du programme et la valeur " +"par défaut de l'argument (voir default_). Les spécificateurs de formatage " +"disponibles incluent entre autres le nom du programme, ``%(prog)s``, et la " +"plupart des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels " +"que ``%(default)s``, ``%(type)s``, etc. ::" #: ../Doc/library/argparse.rst:1157 msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " "appear in the help string, you must escape it as ``%%``." msgstr "" +"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " +"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " +"faire l’échappement avec ``%%``." #: ../Doc/library/argparse.rst:1160 msgid "" ":mod:`argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" +":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " +"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" #: ../Doc/library/argparse.rst:1173 msgid "metavar" @@ -1023,10 +1362,19 @@ msgid "" "optional argument ``--foo`` that should be followed by a single command-line " "argument will be referred to as ``FOO``. An example::" msgstr "" +"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " +"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " +"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " +"objet. Par défaut, la valeur de dest_ est utilisée telle quelle pour les " +"actions d'arguments positionnels et elle (dest_) est convertie en majuscules " +"pour les actions d'arguments optionnels. Ainsi, un argument positionnel " +"unique avec ``dest='bar'`` sera affiché comme ``bar`` et un argument " +"positionnel unique ``--foo`` qui prend un seul argument sur la ligne de " +"commande sera affiché comme ``FOO``. Par exemple ::" #: ../Doc/library/argparse.rst:1199 msgid "An alternative name can be specified with ``metavar``::" -msgstr "" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" #: ../Doc/library/argparse.rst:1216 msgid "" @@ -1034,6 +1382,9 @@ msgid "" "attribute on the :meth:`~ArgumentParser.parse_args` object is still " "determined by the dest_ value." msgstr "" +"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " +"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " +"est toujours déterminé par la valeur de dest_." #: ../Doc/library/argparse.rst:1220 msgid "" @@ -1041,6 +1392,9 @@ msgid "" "times. Providing a tuple to ``metavar`` specifies a different display for " "each of the arguments::" msgstr "" +"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " +"plus d'une fois. Passer un *n-uplet* à ``metavar`` indique les différents " +"noms à afficher pour chacun des arguments ::" #: ../Doc/library/argparse.rst:1237 msgid "dest" @@ -1055,6 +1409,12 @@ msgid "" "is normally supplied as the first argument to :meth:`~ArgumentParser." "add_argument`::" msgstr "" +"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " +"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " +"de l'attribut est déterminé par l'argument nommé ``dest`` d':meth:" +"`~ArgumentParser.add_argument`. Pour les arguments positionnels, ``dest`` " +"est généralement le premier argument d':meth:`~ArgumentParser." +"add_argument` ::" #: ../Doc/library/argparse.rst:1251 msgid "" @@ -1067,10 +1427,18 @@ msgid "" "characters to make sure the string is a valid attribute name. The examples " "below illustrate this behavior::" msgstr "" +"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " +"généralement inférée à partir des chaînes d'options. :class:`ArgumentParser` " +"génère la valeur de ``dest`` en prenant la première chaîne d'option longue " +"et en retirant le préfixe ``--``. Si une chaîne d'option longue n'est pas " +"fournie, ``dest`` est dérivée de la première chaîne d'option courte sans le " +"préfixe ``-``. Tous les ``-`` subséquents seront convertis en ``_`` pour " +"s'assurer que la chaîne est un nom d'attribut valide. Les exemples suivants " +"illustrent ce comportement ::" #: ../Doc/library/argparse.rst:1268 msgid "``dest`` allows a custom attribute name to be provided::" -msgstr "" +msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" #: ../Doc/library/argparse.rst:1276 msgid "Action classes" @@ -1082,6 +1450,10 @@ msgid "" "which processes arguments from the command-line. Any object which follows " "this API may be passed as the ``action`` parameter to :meth:`add_argument`." msgstr "" +"Les classes ``Action`` implémentent l'API Action, un appelable qui retourne " +"un appelable qui traite les arguments de la ligne de commande. Tout objet " +"qui suit cette API peut être passé comme paramètre ``action`` d':meth:" +"`add_argument`." #: ../Doc/library/argparse.rst:1287 msgid "" @@ -1091,6 +1463,11 @@ msgid "" "keyword arguments passed to :meth:`ArgumentParser.add_argument` except for " "the ``action`` itself." msgstr "" +"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " +"représenter l'information nécessaire à l'analyse d'un seul argument à partir " +"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " +"doit accepter les deux arguments positionnels d':meth:`ArgumentParser." +"add_argument` ainsi que tous ses arguments nommés, sauf ``action``." #: ../Doc/library/argparse.rst:1293 msgid "" @@ -1099,16 +1476,24 @@ msgid "" "\"type\", \"required\", \"help\", etc. defined. The easiest way to ensure " "these attributes are defined is to call ``Action.__init__``." msgstr "" +"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " +"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " +"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " +"plus simple de s'assurer que ces attributs sont définis est d'appeler " +"``Action.__init__``." #: ../Doc/library/argparse.rst:1298 msgid "" "Action instances should be callable, so subclasses must override the " "``__call__`` method, which should accept four parameters:" msgstr "" +"Les instances d'``Action`` doivent être appelables et donc les sous-classes " +"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " +"quatre paramètres :" #: ../Doc/library/argparse.rst:1301 msgid "``parser`` - The ArgumentParser object which contains this action." -msgstr "" +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action ;" #: ../Doc/library/argparse.rst:1303 msgid "" @@ -1116,6 +1501,9 @@ msgid "" "`~ArgumentParser.parse_args`. Most actions add an attribute to this object " "using :func:`setattr`." msgstr "" +"``namespace`` – L'objet :class:`Namespace` qui sera renvoyé par :meth:" +"`~ArgumentParser.parse_args`. La majorité des actions ajoutent un attribut à " +"cet objet avec :func:`setattr` ;" #: ../Doc/library/argparse.rst:1307 msgid "" @@ -1123,6 +1511,10 @@ msgid "" "conversions applied. Type conversions are specified with the type_ keyword " "argument to :meth:`~ArgumentParser.add_argument`." msgstr "" +"``values`` – Les arguments de la ligne de commande associés à l'action après " +"les avoir soumis à la conversion de type. Les conversions de types sont " +"spécifiées grâce à l’argument nommé type_ d':meth:`~ArgumentParser." +"add_argument` ;" #: ../Doc/library/argparse.rst:1311 msgid "" @@ -1130,12 +1522,18 @@ msgid "" "The ``option_string`` argument is optional, and will be absent if the action " "is associated with a positional argument." msgstr "" +"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " +"L'argument ``option_string`` est optionnel et est absent si l'action est " +"associée à un argument positionnel." #: ../Doc/library/argparse.rst:1315 msgid "" "The ``__call__`` method may perform arbitrary actions, but will typically " "set attributes on the ``namespace`` based on ``dest`` and ``values``." msgstr "" +"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " +"général elle affecte des attributs sur le ``namespace`` en fonction de " +"``dest`` et de ``values``." #: ../Doc/library/argparse.rst:1320 msgid "The parse_args() method" @@ -1146,6 +1544,8 @@ msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" +"Convertie les chaînes d'arguments en objets et les assigne comme attributs " +"de l'objet ``namespace``. Retourne l'objet ``namespace`` rempli." #: ../Doc/library/argparse.rst:1327 msgid "" @@ -1153,22 +1553,29 @@ msgid "" "created and how they are assigned. See the documentation for :meth:" "`add_argument` for details." msgstr "" +"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " +"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " +"d':meth:`add_argument` pour les détails." #: ../Doc/library/argparse.rst:1331 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" +"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " +"dans : :data:`sys.argv`." #: ../Doc/library/argparse.rst:1334 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" +"namespace_ – Un objet pour recevoir les attributs. Par défaut : une nouvelle " +"instance (vide) de :class:`Namespace`." #: ../Doc/library/argparse.rst:1339 msgid "Option value syntax" -msgstr "" +msgstr "Syntaxe de la valeur des options" #: ../Doc/library/argparse.rst:1341 msgid "" @@ -1176,6 +1583,10 @@ msgid "" "specifying the value of an option (if it takes one). In the simplest case, " "the option and its value are passed as two separate arguments::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " +"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " +"simple, l'option et sa valeur sont passées en tant que deux arguments " +"distincts ::" #: ../Doc/library/argparse.rst:1353 msgid "" @@ -1183,18 +1594,26 @@ msgid "" "option and value can also be passed as a single command-line argument, using " "``=`` to separate them::" msgstr "" +"Pour les options longues (les options qui ont un nom plus long qu'un seul " +"caractère), l'option et sa valeur peuvent être passées comme un seul " +"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" #: ../Doc/library/argparse.rst:1360 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" +"Pour les options courtes (les options qui utilisent un seul caractère), " +"l'option et sa valeur peuvent être concaténées ::" #: ../Doc/library/argparse.rst:1366 msgid "" "Several short options can be joined together, using only a single ``-`` " "prefix, as long as only the last option (or none of them) requires a value::" msgstr "" +"Plusieurs options courtes peuvent être groupées ensemble après un seul " +"préfixe ``-`` pour autant que seule la dernière (ou aucune) nécessite une " +"valeur ::" #: ../Doc/library/argparse.rst:1378 msgid "Invalid arguments" @@ -1207,6 +1626,12 @@ msgid "" "options, wrong number of positional arguments, etc. When it encounters such " "an error, it exits and prints the error along with a usage message::" msgstr "" +"Quand elle fait l'analyse de la ligne de commande, la méthode :meth:" +"`~ArgumentParser.parse_args` vérifie plusieurs erreurs possibles : entre " +"autres, options ambigües, types invalides, options invalides, nombre " +"incorrect d'arguments positionnels, etc. Quand une erreur est rencontrée, " +"elle affiche l'erreur accompagnée du message d'aide puis termine " +"l'exécution ::" #: ../Doc/library/argparse.rst:1406 msgid "Arguments containing ``-``" @@ -1223,6 +1648,15 @@ msgid "" "like negative numbers and there are no options in the parser that look like " "negative numbers::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " +"quand l'utilisateur s'est clairement trompé. Par contre, certaines " +"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " +"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " +"option qu'une tentative de passer un argument positionnel. La méthode :meth:" +"`~ArgumentParser.parse_args` est prudente : les arguments positionnels ne " +"peuvent commencer par ``-`` que s'ils ont l'apparence d'un nombre négatif et " +"que l'analyseur ne contient aucune option qui a l'apparence d'un nombre " +"négatif ::" #: ../Doc/library/argparse.rst:1446 msgid "" @@ -1231,6 +1665,10 @@ msgid "" "tells :meth:`~ArgumentParser.parse_args` that everything after that is a " "positional argument::" msgstr "" +"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " +"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" +"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " +"traiter tout ce qui suit comme un argument positionnel ::" #: ../Doc/library/argparse.rst:1457 msgid "Argument abbreviations (prefix matching)" @@ -1242,12 +1680,19 @@ msgid "" "` allows long options to be abbreviated to a prefix, if the " "abbreviation is unambiguous (the prefix matches a unique option)::" msgstr "" +"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " +"options longues soient :ref:`abrégées ` par un préfixe pour " +"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " +"corresponde qu'à une seule option ::" #: ../Doc/library/argparse.rst:1474 msgid "" "An error is produced for arguments that could produce more than one options. " "This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." msgstr "" +"Une erreur est générée pour les arguments qui peuvent produire plus d'une " +"option. Ce comportement peut être désactivé en passant ``False`` à :ref:" +"`allow_abbrev`." #: ../Doc/library/argparse.rst:1480 msgid "Beyond ``sys.argv``" @@ -1260,6 +1705,11 @@ msgid "" "of strings to :meth:`~ArgumentParser.parse_args`. This is useful for " "testing at the interactive prompt::" msgstr "" +"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " +"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " +"traitement en passant une liste de chaînes à :meth:`~ArgumentParser." +"parse_args`. Cette approche est pratique pour faire des tests depuis " +"l'invite de commande ::" #: ../Doc/library/argparse.rst:1502 msgid "The Namespace object" @@ -1270,6 +1720,9 @@ msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" +"Classe rudimentaire qui est utilisé par défaut par :meth:`~ArgumentParser." +"parse_args` pour créer un objet qui stock les attributs. Cet objet est " +"renvoyé par ``ArgumentParser.parse_args``." #: ../Doc/library/argparse.rst:1509 msgid "" @@ -1277,6 +1730,10 @@ msgid "" "readable string representation. If you prefer to have dict-like view of the " "attributes, you can use the standard Python idiom, :func:`vars`::" msgstr "" +"Cette classe est délibérément rudimentaire : une sous-classe d':class:" +"`object` avec une représentation textuelle intelligible. Si vous préférez " +"une vue *dict-compatible*, vous devez utiliser :func:`vars` (un idiome " +"Python classique) ::" #: ../Doc/library/argparse.rst:1519 msgid "" @@ -1284,6 +1741,10 @@ msgid "" "to an already existing object, rather than a new :class:`Namespace` object. " "This can be achieved by specifying the ``namespace=`` keyword argument::" msgstr "" +"Il est parfois utile de demander à :class:`ArgumentParser` de faire " +"l'affectation des attributs sur un objet existant plutôt que de faire la " +"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " +"l'argument nommé ``namespace=`` ::" #: ../Doc/library/argparse.rst:1535 msgid "Other utilities" @@ -1308,6 +1769,18 @@ msgid "" "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." msgstr "" +"Certains programmes divisent leurs fonctionnalités entre un nombre de sous-" +"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " +"checkout``, ``svn update`` et ``svn commit``. Séparer les fonctionnalités de " +"cette façon est judicieux quand le programme effectue plusieurs fonctions " +"différentes qui requièrent différents types de lignes de commandes. :class:" +"`ArgumentParser` prend en charge la création de ce genre de sous-commandes " +"grâce à la méthode :meth:`add_subparsers`. La méthode :meth:`add_subparsers` " +"est généralement appelée sans argument et elle renvoie un objet ``Action`` " +"spécial. Cet objet possède une seule méthode, :meth:`~ArgumentParser." +"add_parser`, qui prend le nom d'une commande et n'importe quels arguments du " +"constructeur d':class:`ArgumentParser` ; elle renvoie un objet :class:" +"`ArgumentParser` qui peut être modifié normalement." #: ../Doc/library/argparse.rst:1557 msgid "Description of parameters:" @@ -1319,12 +1792,17 @@ msgid "" "\"subcommands\" if description is provided, otherwise uses title for " "positional arguments" msgstr "" +"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " +"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " +"la valeur de ``title`` de la section sur les arguments positionnels ;" #: ../Doc/library/argparse.rst:1563 msgid "" "description - description for the sub-parser group in help output, by " "default ``None``" msgstr "" +"``description`` – description du groupe de ce sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" #: ../Doc/library/argparse.rst:1566 msgid "" @@ -1332,34 +1810,49 @@ msgid "" "default the name of the program and any positional arguments before the " "subparser argument" msgstr "" +"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" +"commandes ; par défaut : le nom du programme et les arguments positionnels " +"qui arrivent avant l'argument de ce sous-analyseur ;" #: ../Doc/library/argparse.rst:1570 msgid "" "parser_class - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. ArgumentParser)" msgstr "" +"``parser_class`` – classe utilisée pour créer les instances de sous-" +"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " +"``ArgumentParser``) ;" #: ../Doc/library/argparse.rst:1573 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" +"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " +"de commande ;" #: ../Doc/library/argparse.rst:1576 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" msgstr "" +"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " +"défaut : ``None`` et aucune valeur n'est stockée ;" #: ../Doc/library/argparse.rst:1579 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" +"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" #: ../Doc/library/argparse.rst:1581 msgid "" "metavar_ - string presenting available sub-commands in help; by default it " "is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" msgstr "" +"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " +"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " +"chaîne suivant le format ``'{cmd1, cmd2, …}'``." #: ../Doc/library/argparse.rst:1584 msgid "Some example usage::" @@ -1374,6 +1867,13 @@ msgid "" "present, and when the ``b`` command is specified, only the ``foo`` and " "``baz`` attributes are present." msgstr "" +"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " +"attributs reconnus par l'analyseur principal et le sous-analyseur " +"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " +"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " +"commande ``a`` est spécifiée, seuls les attributs ``foo`` et ``bar`` sont " +"présents ; quand la commande ``b`` est spécifiée, seuls les attributs " +"``foo`` et ``baz`` sont présents." #: ../Doc/library/argparse.rst:1612 msgid "" @@ -1383,6 +1883,12 @@ msgid "" "subparser command, however, can be given by supplying the ``help=`` argument " "to :meth:`add_parser` as above.)" msgstr "" +"De même, quand le message d'aide est demandé depuis l'un des sous-" +"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " +"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" +"analyseurs au même niveau. Il est toutefois possible de fournir un message " +"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` d':meth:" +"`add_parser` tel qu'illustré ci-dessus." #: ../Doc/library/argparse.rst:1648 msgid "" @@ -1390,6 +1896,10 @@ msgid "" "``description`` keyword arguments. When either is present, the subparser's " "commands will appear in their own group in the help output. For example::" msgstr "" +"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " +"``description``. Quand au moins l'un des deux est présent, les commandes du " +"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " +"Par exemple ::" #: ../Doc/library/argparse.rst:1669 msgid "" @@ -1397,6 +1907,10 @@ msgid "" "which allows multiple strings to refer to the same subparser. This example, " "like ``svn``, aliases ``co`` as a shorthand for ``checkout``::" msgstr "" +"De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " +"permet à plusieurs chaînes de faire référence au même sous-analyseur. " +"L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " +"abréviation de ``checkout`` ::" #: ../Doc/library/argparse.rst:1680 msgid "" @@ -1405,6 +1919,10 @@ msgid "" "so that each subparser knows which Python function it should execute. For " "example::" msgstr "" +"Une façon efficace de traiter les sous-commandes est de combiner " +"l'utilisation de la méthode :meth:`add_subparsers` avec des appels à :meth:" +"`set_defaults` pour que chaque sous-analyseur sache quelle fonction Python " +"doit être exécutée. Par exemple ::" #: ../Doc/library/argparse.rst:1717 msgid "" @@ -1415,6 +1933,12 @@ msgid "" "to check the name of the subparser that was invoked, the ``dest`` keyword " "argument to the :meth:`add_subparsers` call will work::" msgstr "" +"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " +"l'appel à la bonne fonction après avoir analysé les arguments. Associer " +"fonctions et actions est en général la façon la plus facile de gérer des " +"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " +"avez besoin de consulter le nom de du sous-analyseur qui a été invoqué, vous " +"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" #: ../Doc/library/argparse.rst:1735 msgid "FileType objects" @@ -1428,6 +1952,12 @@ msgid "" "with the requested modes, buffer sizes, encodings and error handling (see " "the :func:`open` function for more details)::" msgstr "" +"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " +"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " +"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " +"ligne de commande en tant que fichiers avec les options spécifiées : mode, " +"taille du tampon, encodage et gestion des erreurs (voir la fonction :func:" +"`open` pour plus de détails) ::" #: ../Doc/library/argparse.rst:1751 msgid "" @@ -1435,6 +1965,10 @@ msgid "" "convert this into ``sys.stdin`` for readable :class:`FileType` objects and " "``sys.stdout`` for writable :class:`FileType` objects::" msgstr "" +"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et en font " +"automatiquement la conversion vers ``sys.stdin`` pour les objets :class:" +"`FileType` ouverts en lecture et vers ``sys.stdout`` pour les objets :class:" +"`FileType` ouverts en écriture ::" #: ../Doc/library/argparse.rst:1760 msgid "The *encodings* and *errors* keyword arguments." @@ -1452,6 +1986,11 @@ msgid "" "default one, appropriate groups can be created using the :meth:" "`add_argument_group` method::" msgstr "" +"Par défaut, :class:`ArgumentParser` sépare les arguments de la ligne de " +"commande entre les groupes « arguments positionnels » et « arguments " +"optionnels » au moment d'afficher les messages d'aide. S'il existe un " +"meilleur regroupement conceptuel des arguments, les groupes adéquats peuvent " +"être créés avec la méthode :meth:`add_argument_group` ::" #: ../Doc/library/argparse.rst:1786 msgid "" @@ -1463,12 +2002,22 @@ msgid "" "accepts *title* and *description* arguments which can be used to customize " "this display::" msgstr "" +"La méthode :meth:`add_argument_group` renvoie un objet représentant le " +"groupe d'arguments. Cet objet possède une méthode :meth:`~ArgumentParser." +"add_argument` semblable à celle d':class:`ArgumentParser`. Quand un argument " +"est ajouté au groupe, l'analyseur le traite comme un argument normal, mais " +"il affiche le nouvel argument dans un groupe séparé dans les messages " +"d'aide. Afin de personnaliser l'affichage, la méthode :meth:" +"`add_argument_group` accepte les arguments ``title`` et ``description`` ::" #: ../Doc/library/argparse.rst:1812 msgid "" "Note that any arguments not in your user-defined groups will end up back in " "the usual \"positional arguments\" and \"optional arguments\" sections." msgstr "" +"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " +"affiché dans l'une des sections usuelles *positional arguments* et *optional " +"arguments*." #: ../Doc/library/argparse.rst:1817 msgid "Mutual exclusion" @@ -1480,6 +2029,9 @@ msgid "" "one of the arguments in the mutually exclusive group was present on the " "command line::" msgstr "" +"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " +"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " +"la ligne de commande ::" #: ../Doc/library/argparse.rst:1837 msgid "" @@ -1487,6 +2039,9 @@ msgid "" "argument, to indicate that at least one of the mutually exclusive arguments " "is required::" msgstr "" +"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " +"``required`` pour indiquer qu'au moins un des arguments mutuellement " +"exclusifs est nécessaire ::" #: ../Doc/library/argparse.rst:1849 msgid "" @@ -1494,6 +2049,9 @@ msgid "" "*title* and *description* arguments of :meth:`~ArgumentParser." "add_argument_group`." msgstr "" +"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " +"n'acceptent pas les arguments ``title`` et ``description`` d':meth:" +"`~ArgumentParser.add_argument_group`." #: ../Doc/library/argparse.rst:1855 msgid "Parser defaults" @@ -1507,11 +2065,18 @@ msgid "" "additional attributes that are determined without any inspection of the " "command line to be added::" msgstr "" +"Dans la majorité des cas, les attributs de l'objet renvoyé par :meth:" +"`parse_args` sont entièrement définis par l'inspection des arguments de la " +"ligne de commande et par les actions des arguments. La méthode :meth:" +"`set_defaults` permet l'ajout d'attributs additionnels qui sont définis sans " +"nécessiter l'inspection de la ligne de commande ::" #: ../Doc/library/argparse.rst:1871 msgid "" "Note that parser-level defaults always override argument-level defaults::" msgstr "" +"Prenez note que les valeurs par défaut au niveau de l'analyseur ont " +"précédence sur les valeurs par défaut au niveau de l'argument ::" #: ../Doc/library/argparse.rst:1879 msgid "" @@ -1519,12 +2084,18 @@ msgid "" "parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " "example of this type." msgstr "" +"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " +"quand on travaille avec plusieurs analyseurs. Voir la méthode :meth:" +"`~ArgumentParser.add_subparsers` pour un exemple de cette utilisation." #: ../Doc/library/argparse.rst:1885 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" msgstr "" +"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " +"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou par :" +"meth:`~ArgumentParser.set_defaults` ::" #: ../Doc/library/argparse.rst:1896 msgid "Printing help" @@ -1536,6 +2107,9 @@ msgid "" "care of formatting and printing any usage or error messages. However, " "several formatting methods are available:" msgstr "" +"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " +"charge du formatage et de l'affichage des messages d'erreur et " +"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" #: ../Doc/library/argparse.rst:1904 msgid "" @@ -1543,6 +2117,9 @@ msgid "" "invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " "assumed." msgstr "" +"Affiche une brève description sur la façon d'invoquer l':class:" +"`ArgumentParser` depuis la ligne de commande. Si ``file`` est ``None``, " +"utilise :data:`sys.stdout`." #: ../Doc/library/argparse.rst:1910 msgid "" @@ -1550,24 +2127,34 @@ msgid "" "arguments registered with the :class:`ArgumentParser`. If *file* is " "``None``, :data:`sys.stdout` is assumed." msgstr "" +"Affiche un message d'aide qui inclut l'utilisation du programme et " +"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " +"Si ``file`` est ``None``, utilise :data:`sys.stdout`." #: ../Doc/library/argparse.rst:1914 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" +"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " +"que de l'afficher :" #: ../Doc/library/argparse.rst:1919 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" +"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " +"l':class:`ArgumentParser` depuis la ligne de commande." #: ../Doc/library/argparse.rst:1924 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." msgstr "" +"Renvoie une chaîne représentant un message d'aide qui inclut des " +"informations sur l'utilisation du programme et sur les arguments définis " +"dans l':class:`ArgumentParser`." #: ../Doc/library/argparse.rst:1929 msgid "Partial parsing" @@ -1583,6 +2170,13 @@ msgid "" "a two item tuple containing the populated namespace and the list of " "remaining argument strings." msgstr "" +"Parfois, un script n'analyse que de quelques-uns des arguments de la ligne " +"de commande avant de passer les arguments non-traités à un autre script ou " +"un autre programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " +"utile dans ces cas. Elle fonctionne similairement à :meth:`~ArgumentParser." +"parse_args`, mais elle ne lève pas d'erreur quand des arguments non-reconnus " +"sont présents. Au lieu, elle renvoie une paire de valeurs : l'objet " +"``Namespace`` rempli et la liste des arguments non-traités." #: ../Doc/library/argparse.rst:1949 msgid "" @@ -1591,6 +2185,10 @@ msgid "" "prefix of one of its known options, instead of leaving it in the remaining " "arguments list." msgstr "" +"Les règles d':ref:`acceptation des abréviations ` sont " +"applicables à :meth:`parse_known_args`. L'analyseur peut ainsi capturer une " +"option même si elle n'est que le préfixe d'une option reconnue plutôt que de " +"la laisser dans la liste des arguments non-traités." #: ../Doc/library/argparse.rst:1956 msgid "Customizing file parsing" @@ -1603,6 +2201,10 @@ msgid "" "per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " "reading." msgstr "" +"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " +"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " +"un traitement plus élaboré. Voir aussi l'argument nommé " +"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." #: ../Doc/library/argparse.rst:1965 msgid "" @@ -1610,16 +2212,24 @@ msgid "" "the argument file. It returns a list of arguments parsed from this string. " "The method is called once per line read from the argument file, in order." msgstr "" +"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " +"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " +"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " +"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " +"préservé." #: ../Doc/library/argparse.rst:1969 msgid "" "A useful override of this method is one that treats each space-separated " "word as an argument. The following example demonstrates how to do this::" msgstr "" +"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " +"par des espaces d'être traité comme un argument. L'exemple suivant illustre " +"comment réaliser ceci ::" #: ../Doc/library/argparse.rst:1978 msgid "Exiting methods" -msgstr "" +msgstr "Méthodes d'interruptions" #: ../Doc/library/argparse.rst:1982 msgid "" @@ -1632,6 +2242,9 @@ msgid "" "This method prints a usage message including the *message* to the standard " "error and terminates the program with a status code of 2." msgstr "" +"Cette méthode affiche un message d'utilisation qui inclut la chaîne " +"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " +"code de fin d'exécution 2." #: ../Doc/library/argparse.rst:1993 msgid "Upgrading optparse code" @@ -1647,12 +2260,20 @@ msgid "" "patched, it no longer seemed practical to try to maintain the backwards " "compatibility." msgstr "" +"Initialement, le module :mod:`argparse` tentait de rester compatible avec :" +"mod:`optparse`. Hélas, il était difficile de faire des améliorations à :mod:" +"`optparse` de façon transparente, en particulier pour les changements requis " +"pour gérer les nouveaux spécificateurs de ``nargs=`` et les messages " +"d'utilisation améliorés. Après avoir porté ou surchargé tout le code d':mod:" +"`optparse`, la rétro-compatibilité pouvait difficilement être conservée." #: ../Doc/library/argparse.rst:2002 msgid "" "The :mod:`argparse` module improves on the standard library :mod:`optparse` " "module in a number of ways including:" msgstr "" +"Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " +"module :mod:`optparse` de la bibliothèque standard :" #: ../Doc/library/argparse.rst:2005 msgid "Handling positional arguments." @@ -1682,13 +2303,15 @@ msgstr "" #: ../Doc/library/argparse.rst:2012 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -msgstr "" +msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" #: ../Doc/library/argparse.rst:2014 msgid "" "Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" "`ArgumentParser.add_argument` calls." msgstr "" +"Remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " +"appels à :meth:`ArgumentParser.add_argument` ;" #: ../Doc/library/argparse.rst:2017 msgid "" @@ -1697,6 +2320,11 @@ msgid "" "for the positional arguments. Keep in mind that what was previously called " "``options``, now in the :mod:`argparse` context is called ``args``." msgstr "" +"Remplacer ``(options, args) = parser.parse_args()`` par ``args = parser." +"parse_args()`` et ajouter des appels à :meth:`ArgumentParser.add_argument` " +"pour les arguments positionnels. Prenez note que les valeurs précédemment " +"appelées ``options`` sont appelées ``args`` dans le contexte d':mod:" +"`argparse` ;" #: ../Doc/library/argparse.rst:2022 msgid "" @@ -1711,18 +2339,26 @@ msgid "" "Replace callback actions and the ``callback_*`` keyword arguments with " "``type`` or ``action`` arguments." msgstr "" +"Remplacer les actions de rappel (*callback actions* en anglais) et les " +"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions`` ;" #: ../Doc/library/argparse.rst:2030 msgid "" "Replace string names for ``type`` keyword arguments with the corresponding " "type objects (e.g. int, float, complex, etc)." msgstr "" +"Remplacer les chaînes représentant le nom des types pour l'argument nommé " +"``type`` par les objets types correspondants (par exemple : ``int``, " +"``float``, ``complex``, etc) ;" #: ../Doc/library/argparse.rst:2033 msgid "" "Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." "OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." msgstr "" +"Remplacer :class:`optparse.Values` par :class:`Namespace` ; et :exc:" +"`optparse.OptionError` et :exc:`optparse.OptionValueError` par :exc:" +"`ArgumentError` ;" #: ../Doc/library/argparse.rst:2037 msgid "" @@ -1730,6 +2366,10 @@ msgid "" "with the standard Python syntax to use dictionaries to format strings, that " "is, ``%(default)s`` and ``%(prog)s``." msgstr "" +"Remplacer les chaînes avec des arguments de formatage implicite (tels que ``" +"%default`` ou ``%prog``) par la syntaxe standard de Python pour " +"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" +"dire ``%(default)s`` et ``%(prog)s``) ;" #: ../Doc/library/argparse.rst:2041 msgid "" @@ -1737,3 +2377,6 @@ msgid "" "``parser.add_argument('--version', action='version', version='')``." msgstr "" +"Remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " +"appel à ``parser.add_argument('--version', action='version', version='')``." diff --git a/library/calendar.po b/library/calendar.po index d12b2ccba..382fd4208 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" -msgstr "" +msgstr ":mod:`calendar` — Fonctions calendaires générales" #: ../Doc/library/calendar.rst:10 msgid "**Source code:** :source:`Lib/calendar.py`" @@ -233,12 +233,17 @@ msgid "" "Return a month's calendar as an HTML table. If *withyear* is true the year " "will be included in the header, otherwise just the month name will be used." msgstr "" +"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " +"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " +"mois sera utilisé." #: ../Doc/library/calendar.rst:161 msgid "" "Return a year's calendar as an HTML table. *width* (defaulting to 3) " "specifies the number of months per row." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " +"(par défaut à 3) spécifie le nombre de mois par ligne." #: ../Doc/library/calendar.rst:167 msgid "" @@ -248,6 +253,12 @@ msgid "" "be used. *encoding* specifies the encoding to be used for the output " "(defaulting to the system default encoding)." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " +"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " +"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " +"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " +"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " +"défaut du système)." #: ../Doc/library/calendar.rst:176 msgid "" @@ -256,6 +267,11 @@ msgid "" "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Le constructeur de cette sous-classe de :class:`TextCalendar` accepte un " +"paramètre régional *locale* : une langue au format ``\"fr_FR.UTF-8\"``, et " +"renvoie les noms de mois et de jours de la semaine traduits dans cette " +"langue. Si ce lieu possède un encodage, toutes les chaînes contenant des " +"noms de mois ou de jours de la semaine seront renvoyées en Unicode." #: ../Doc/library/calendar.rst:184 msgid "" @@ -264,6 +280,11 @@ msgid "" "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Cette sous-classe de :class:`HTMLCalendar` peut recevoir un nom de lieu dans " +"le constructeur et renvoie les noms de mois et de jours de la semaine selon " +"le lieu spécifié. Si ce lieu possède un encodage, toutes les chaînes " +"contenant des noms de mois ou de jours de la semaine seront renvoyées en " +"Unicode." #: ../Doc/library/calendar.rst:191 msgid "" @@ -272,10 +293,16 @@ msgid "" "Because the current locale is a process-wide setting, they are not thread-" "safe." msgstr "" +"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " +"classes changent temporairement le paramètre régional courant pour le " +"paramètre donné via *locale* . Comme le paramètre régional est un réglage de " +"l'ensemble du processus, elles ne sont pas utilisables de manière sûre avec " +"les programmes à fils d'exécution multiples." #: ../Doc/library/calendar.rst:196 msgid "For simple text calendars this module provides the following functions." msgstr "" +"Pour les calendriers texte simples ce module fournit les fonctions suivantes." #: ../Doc/library/calendar.rst:200 msgid "" @@ -284,43 +311,62 @@ msgid "" "`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are " "provided for convenience. For example, to set the first weekday to Sunday::" msgstr "" +"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " +"débute chaque semaine. Les valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:" +"`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, et :" +"const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " +"premier jour de la semaine à dimanche ::" #: ../Doc/library/calendar.rst:211 msgid "Returns the current setting for the weekday to start each week." msgstr "" +"Renvoie le réglage courant pour le jour de la semaine débutant chaque " +"semaine." #: ../Doc/library/calendar.rst:216 msgid "" "Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." msgstr "" +"Renvoie :const:`True` si *year* est une année bissextile, sinon :const:" +"`False`." #: ../Doc/library/calendar.rst:221 msgid "" "Returns the number of leap years in the range from *y1* to *y2* (exclusive), " "where *y1* and *y2* are years." msgstr "" +"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " +"inclus), où *y1* et *y2* sont des années." #: ../Doc/library/calendar.rst:224 msgid "This function works for ranges spanning a century change." msgstr "" +"Cette fonction marche pour les périodes couvrant un changement de siècle." #: ../Doc/library/calendar.rst:229 msgid "" "Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " "*month* (``1``--``12``), *day* (``1``--``31``)." msgstr "" +"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " +"*month* (``1``--``12``), *day* (``1``--``31``)." #: ../Doc/library/calendar.rst:235 msgid "" "Return a header containing abbreviated weekday names. *n* specifies the " "width in characters for one weekday." msgstr "" +"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " +"la largeur en caractères pour un jour de la semaine." #: ../Doc/library/calendar.rst:241 msgid "" "Returns weekday of first day of the month and number of days in month, for " "the specified *year* and *month*." msgstr "" +"Renvoie le jour de la semaine correspondant au premier jour du mois et le " +"nombre de jours dans le mois, pour l'année *year* et le mois *month* " +"spécifiés." #: ../Doc/library/calendar.rst:247 msgid "" @@ -331,24 +377,31 @@ msgstr "" #: ../Doc/library/calendar.rst:254 msgid "Prints a month's calendar as returned by :func:`month`." -msgstr "" +msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." #: ../Doc/library/calendar.rst:259 msgid "" "Returns a month's calendar in a multi-line string using the :meth:" "`formatmonth` of the :class:`TextCalendar` class." msgstr "" +"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " +"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." #: ../Doc/library/calendar.rst:265 msgid "" "Prints the calendar for an entire year as returned by :func:`calendar`." msgstr "" +"Affiche le calendrier pour une année entière tel que renvoyé par :func:" +"`calendar`." #: ../Doc/library/calendar.rst:270 msgid "" "Returns a 3-column calendar for an entire year as a multi-line string using " "the :meth:`formatyear` of the :class:`TextCalendar` class." msgstr "" +"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " +"multi-lignes en utilisant la méthode :meth:`formatyear` de la classe :class:" +"`TextCalendar`." #: ../Doc/library/calendar.rst:276 msgid "" @@ -358,20 +411,29 @@ msgid "" "encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " "inverse." msgstr "" +"Une fonction sans rapport mais pratique, qui prend un *n*-uplet temporel tel " +"que celui renvoyé par la fonction :func:`~time.gmtime` dans le module :mod:" +"`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en anglais) " +"correspondante, en supposant une époque de 1970, et l'encodage POSIX. En " +"fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de l'autre." #: ../Doc/library/calendar.rst:283 msgid "The :mod:`calendar` module exports the following data attributes:" -msgstr "" +msgstr "Le module :mod:`calendar` exporte les attributs suivants :" #: ../Doc/library/calendar.rst:287 msgid "An array that represents the days of the week in the current locale." msgstr "" +"Un tableau qui représente les jours de la semaine pour les paramètres " +"régionaux actifs." #: ../Doc/library/calendar.rst:292 msgid "" "An array that represents the abbreviated days of the week in the current " "locale." msgstr "" +"Un tableau qui représente les jours de la semaine en abrégé pour les " +"paramètres régionaux actifs." #: ../Doc/library/calendar.rst:297 msgid "" @@ -379,6 +441,10 @@ msgid "" "follows normal convention of January being month number 1, so it has a " "length of 13 and ``month_name[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année pour les paramètres régionaux " +"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " +"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " +"vide." #: ../Doc/library/calendar.rst:304 msgid "" @@ -386,6 +452,10 @@ msgid "" "locale. This follows normal convention of January being month number 1, so " "it has a length of 13 and ``month_abbr[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " +"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " +"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " +"chaîne vide." #: ../Doc/library/calendar.rst:313 msgid "Module :mod:`datetime`" @@ -396,6 +466,8 @@ msgid "" "Object-oriented interface to dates and times with similar functionality to " "the :mod:`time` module." msgstr "" +"Interface orientée objet pour les dates et les heures avec des " +"fonctionnalités similaires au module :mod:`time`." #: ../Doc/library/calendar.rst:315 msgid "Module :mod:`time`" @@ -403,4 +475,4 @@ msgstr "Module :mod:`time`" #: ../Doc/library/calendar.rst:316 msgid "Low-level time related functions." -msgstr "" +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/compileall.po b/library/compileall.po index 36ff9d4e2..d34fa6f10 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -20,6 +20,7 @@ msgstr "" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" msgstr "" +":mod:`compileall` — Génération du code intermédiaire des bibliothèques Python" #: ../Doc/library/compileall.rst:7 msgid "**Source code:** :source:`Lib/compileall.py`" @@ -33,16 +34,25 @@ msgid "" "installation time, which makes them available for use even by users who " "don't have write permission to the library directories." msgstr "" +"Ce module contient des fonctions qui facilitent l'installation de " +"bibliothèques Python. Elles compilent, sous forme de code intermédiaire " +"(*bytecode*), les fichiers source situés dans un dossier de votre choix. Ce " +"module est particulièrement utile pour générer les fichiers de code " +"intermédiaire lors de l'installation d'une bibliothèque, les rendant " +"disponibles même pour les utilisateurs qui n'ont pas les privilèges " +"d'écriture dans l'emplacement d'installation." #: ../Doc/library/compileall.rst:19 msgid "Command-line use" -msgstr "" +msgstr "Utilisation en ligne de commande" #: ../Doc/library/compileall.rst:21 msgid "" "This module can work as a script (using :program:`python -m compileall`) to " "compile Python sources." msgstr "" +"On peut se servir de ce module comme d'un script (avec :program:`python -m " +"compileall`) pour compiler les fichiers source Python." #: ../Doc/library/compileall.rst:29 msgid "" @@ -50,22 +60,33 @@ msgid "" "files, traversed recursively. If no argument is given, behave as if the " "command line was ``-l ``." msgstr "" +"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " +"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " +"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " +"reçoit aucun argument, il fait comme s'il avait été appelé avec `-l `." #: ../Doc/library/compileall.rst:35 msgid "" "Do not recurse into subdirectories, only compile source code files directly " "contained in the named or implied directories." msgstr "" +"Compiler uniquement les fichiers situés directement dans les dossiers passés " +"en argument ou implicites, sans descendre récursivement dans les sous-" +"dossiers." #: ../Doc/library/compileall.rst:40 msgid "Force rebuild even if timestamps are up-to-date." -msgstr "" +msgstr "Forcer la recompilation même si les horodatages sont à jour." #: ../Doc/library/compileall.rst:44 msgid "" "Do not print the list of files compiled. If passed once, error messages will " "still be printed. If passed twice (``-qq``), all output is suppressed." msgstr "" +"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " +"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " +"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." #: ../Doc/library/compileall.rst:49 msgid "" @@ -75,12 +96,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Ce nom de dossier est ajouté en tête du chemin de chaque fichier compilé. Il " +"aura une influence sur les traces d'appels pour les erreurs levées lors de " +"la compilation, et sera reflété dans les fichiers de code intermédiaire, " +"pour utilisation dans les traces d'appels et autres messages si le fichier " +"source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:57 msgid "" "regex is used to search the full path to each file considered for " "compilation, and if the regex produces a match, the file is skipped." msgstr "" +"Exclut tous les fichiers dont les noms correspondent à l'expression " +"régulière *regex*." #: ../Doc/library/compileall.rst:62 msgid "" @@ -88,6 +116,8 @@ msgid "" "files and directories to compile. If ``list`` is ``-``, read lines from " "``stdin``." msgstr "" +"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. " +"*list* peut être ``-``, auquel cas le script lit l'entrée standard." #: ../Doc/library/compileall.rst:68 msgid "" @@ -96,6 +126,11 @@ msgid "" "is to write files to their :pep:`3147` locations and names, which allows " "byte-code files from multiple versions of Python to coexist." msgstr "" +"Utilise l'ancienne manière de nommer et placer les fichiers de code " +"intermédiaire, en écrasant éventuellement ceux générés par une autre version " +"de Python. Par défaut, les règles décrites dans la :pep:`3147` s'appliquent. " +"Elles permettent à différentes versions de l'interpréteur Python de " +"coexister en conservant chacune ses propres fichiers ``.pyc``." #: ../Doc/library/compileall.rst:75 msgid "" @@ -104,16 +139,23 @@ msgid "" "compileall -r 0` is equivalent to :program:`python -m compileall " " -l`." msgstr "" +"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " +"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " +"compileall -r 0` revient au même que :program:`python -m " +"compileall -l`." #: ../Doc/library/compileall.rst:82 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.cpu_count()` will be used." msgstr "" +"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " +"de processus sont créés que la machine dispose de processeurs (résultat de :" +"func:`os.cpu_count()`)." #: ../Doc/library/compileall.rst:86 msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "" +msgstr "ajout des options ``-i``, ``-b`` et ``-h``." #: ../Doc/library/compileall.rst:89 msgid "" @@ -121,6 +163,9 @@ msgid "" "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" +"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " +"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " +"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." #: ../Doc/library/compileall.rst:95 msgid "" @@ -128,10 +173,14 @@ msgid "" "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" +"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " +"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " +"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:" +"`python -O -m compileall`." #: ../Doc/library/compileall.rst:100 msgid "Public functions" -msgstr "" +msgstr "Fonctions publiques" #: ../Doc/library/compileall.rst:104 msgid "" @@ -139,6 +188,9 @@ msgid "" "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" +"Parcourt récursivement le dossier *dir*, en compilant tous les fichiers :" +"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés " +"sans erreur, et une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:108 msgid "" @@ -154,12 +206,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " +"seraient levées lors de la compilation. De plus, il se retrouve dans les " +"fichiers de code intermédiaire, pour utilisation dans les traces et autres " +"messages si le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:117 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" +"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " +"sont à jour." #: ../Doc/library/compileall.rst:120 msgid "" @@ -174,6 +233,10 @@ msgid "" "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" +"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " +"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " +"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " +"émise." #: ../Doc/library/compileall.rst:128 ../Doc/library/compileall.rst:178 msgid "" @@ -183,6 +246,12 @@ msgid "" "names, which allows byte-code files from multiple versions of Python to " "coexist." msgstr "" +"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " +"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " +"une autre version de Python. Par défaut, les règles décrites dans la :pep:" +"`3147` s'appliquent. Elles permettent à différentes versions de " +"l'interpréteur Python de coexister en conservant chacune ses propres " +"fichiers ``.pyc``." #: ../Doc/library/compileall.rst:134 ../Doc/library/compileall.rst:184 msgid "" @@ -201,16 +270,16 @@ msgstr "" #: ../Doc/library/compileall.rst:143 ../Doc/library/compileall.rst:206 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "ajout des paramètres *legacy* et *optimize*." #: ../Doc/library/compileall.rst:146 msgid "Added the *workers* parameter." -msgstr "" +msgstr "ajout du paramètre *workers*." #: ../Doc/library/compileall.rst:149 ../Doc/library/compileall.rst:189 #: ../Doc/library/compileall.rst:209 msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." #: ../Doc/library/compileall.rst:152 ../Doc/library/compileall.rst:192 #: ../Doc/library/compileall.rst:212 @@ -218,6 +287,8 @@ msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" +"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``." +"pyo``, sont générés, quel que soit le niveau d'optimisation." #: ../Doc/library/compileall.rst:156 msgid "Accepts a :term:`path-like object`." @@ -228,6 +299,8 @@ msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" +"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " +"valeur vraie si et seulement si le fichier est compilé sans erreur." #: ../Doc/library/compileall.rst:164 msgid "" @@ -237,6 +310,11 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " +"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " +"code intermédiaire, pour utilisation dans les traces et autres messages si " +"le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:170 msgid "" @@ -251,6 +329,9 @@ msgid "" "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" +"Compile tous les fichiers :file:`.py` contenus dans les dossiers de ``sys." +"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et " +"une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:201 msgid "" @@ -259,17 +340,23 @@ msgid "" "`compile_dir` function. Note that unlike the other compile functions, " "``maxlevels`` defaults to ``0``." msgstr "" +"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " +"exclu de la recherche. Les autres paramètres sont passés à :func:" +"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la " +"valeur par défaut de ``maxlevels`` est ``0``." #: ../Doc/library/compileall.rst:216 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" +"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " +"dossier :file:`Lib/` et tous ses sous-dossiers ::" #: ../Doc/library/compileall.rst:233 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Module :mod:`py_compile`" #: ../Doc/library/compileall.rst:234 msgid "Byte-compile a single source file." -msgstr "" +msgstr "Compiler un fichier source unique." diff --git a/library/configparser.po b/library/configparser.po index 0b15dd62c..6ec21e7ef 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/configparser.rst:2 msgid ":mod:`configparser` --- Configuration file parser" -msgstr "" +msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration" #: ../Doc/library/configparser.rst:14 msgid "**Source code:** :source:`Lib/configparser.py`" @@ -32,40 +32,55 @@ msgid "" "found in Microsoft Windows INI files. You can use this to write Python " "programs which can be customized by end users easily." msgstr "" +"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente " +"un langage de configuration basique, proche de ce que l'on peut trouver dans " +"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour " +"écrire des programmes Python qui sont facilement configurables par " +"l'utilisateur final." #: ../Doc/library/configparser.rst:31 msgid "" "This library does *not* interpret or write the value-type prefixes used in " "the Windows Registry extended version of INI syntax." msgstr "" +"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui " +"permet de lire ou d'écrire des valeurs dans la base de registre Windows en " +"utilisant divers préfixes." #: ../Doc/library/configparser.rst:38 msgid "Module :mod:`shlex`" -msgstr "" +msgstr "Module :mod:`shlex`" #: ../Doc/library/configparser.rst:37 msgid "" "Support for creating Unix shell-like mini-languages which can be used as an " "alternate format for application configuration files." msgstr "" +"Ce module fournit les outils permettant de créer des mini-langages de " +"programmation ressemblant au shell Unix, qui peuvent être utilisés comme " +"alternative pour les fichiers de configuration d'une application." #: ../Doc/library/configparser.rst:41 msgid "Module :mod:`json`" -msgstr "" +msgstr "Module :mod:`json`" #: ../Doc/library/configparser.rst:41 msgid "" "The json module implements a subset of JavaScript syntax which can also be " "used for this purpose." msgstr "" +"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui " +"peut aussi être utilisée à cet effet." #: ../Doc/library/configparser.rst:46 msgid "Quick Start" -msgstr "" +msgstr "Premiers pas" #: ../Doc/library/configparser.rst:48 msgid "Let's take a very basic configuration file that looks like this:" msgstr "" +"Prenons pour exemple un fichier de configuration très simple ressemblant à " +"ceci :" #: ../Doc/library/configparser.rst:65 msgid "" @@ -75,6 +90,11 @@ msgid "" "classes can read and write such files. Let's start by creating the above " "configuration file programmatically." msgstr "" +"La structure des fichiers *INI* est décrite dans la `section suivante " +"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de " +"sections, chacune des sections comprenant des clés associées à des valeurs. " +"Les classes du module :mod:`configparser` peuvent écrire et lire de tels " +"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus." #: ../Doc/library/configparser.rst:89 msgid "" @@ -82,12 +102,20 @@ msgid "" "are differences, `outlined later <#mapping-protocol-access>`_, but the " "behavior is very close to what you would expect from a dictionary." msgstr "" +"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par " +"l'analyse du fichier de configuration comme s'il s'agissait d'un " +"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-" +"protocol-access>`_, mais le comportement de l'instance est très proche de ce " +"que vous pourriez attendre d'un dictionnaire." #: ../Doc/library/configparser.rst:93 msgid "" "Now that we have created and saved a configuration file, let's read it back " "and explore the data it holds." msgstr "" +"Nous venons de créer et sauvegarder un fichier de configuration. Voyons " +"maintenant comment nous pouvons le lire et accéder aux données qu'il " +"contient." #: ../Doc/library/configparser.rst:129 msgid "" @@ -96,10 +124,15 @@ msgid "" "other sections [1]_. Note also that keys in sections are case-insensitive " "and stored in lowercase [1]_." msgstr "" +"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un " +"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par " +"défaut pour toutes les autres sections [1]_. Notez également que les clés à " +"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " +"stockées en minuscules. [1]_." #: ../Doc/library/configparser.rst:136 msgid "Supported Datatypes" -msgstr "" +msgstr "Types de données prises en charge" #: ../Doc/library/configparser.rst:138 msgid "" @@ -107,6 +140,10 @@ msgid "" "always storing them internally as strings. This means that if you need " "other datatypes, you should convert on your own:" msgstr "" +"Les lecteurs de configuration n'essayent jamais de deviner le type des " +"valeurs présentes dans les fichiers de configuration, et elles sont toujours " +"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " +"type différent, vous devez effectuer la conversion vous-même :" #: ../Doc/library/configparser.rst:149 msgid "" @@ -118,6 +155,16 @@ msgid "" "and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " "``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" msgstr "" +"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " +"configurations fournissent un ensemble d'accesseurs permettant de gérer les " +"entiers, les flottants et les booléens plus facilement. Le cas des booléens " +"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " +"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " +"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " +"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " +"la casse et interprète correctement les valeurs booléennes associées aux " +"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " +"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" #: ../Doc/library/configparser.rst:166 msgid "" @@ -126,16 +173,22 @@ msgid "" "methods. You can register your own converters and customize the provided " "ones. [1]_" msgstr "" +"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " +"fournissent également des méthodes similaires comme :meth:`~ConfigParser." +"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos " +"propres convertisseurs et personnaliser ceux déjà fournis. [1]_" #: ../Doc/library/configparser.rst:172 msgid "Fallback Values" -msgstr "" +msgstr "Valeurs de substitution" #: ../Doc/library/configparser.rst:174 msgid "" "As with a dictionary, you can use a section's :meth:`get` method to provide " "fallback values:" msgstr "" +"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " +"d'une section en spécifiant une valeur de substitution :" #: ../Doc/library/configparser.rst:187 msgid "" @@ -145,6 +198,11 @@ msgid "" "``'topsecret.server.com'``, we will always get the default, even if we " "specify a fallback:" msgstr "" +"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " +"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " +"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " +"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " +"valeur par défaut, même en ayant spécifié une valeur de substitution :" #: ../Doc/library/configparser.rst:198 msgid "" @@ -153,6 +211,10 @@ msgid "" "compatibility. When using this method, a fallback value can be provided via " "the ``fallback`` keyword-only argument:" msgstr "" +"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " +"l'analyseur fournit une interface particulière et plus complexe, qui est " +"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " +"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" #: ../Doc/library/configparser.rst:209 msgid "" @@ -160,10 +222,13 @@ msgid "" "getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " "methods, for example:" msgstr "" +"L'argument ``fallback`` peut être utilisé de la même façon avec les " +"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :" +"meth:`~ConfigParser.getboolean`. Par exemple :" #: ../Doc/library/configparser.rst:225 msgid "Supported INI File Structure" -msgstr "" +msgstr "Structure des fichiers *INI* prise en change" #: ../Doc/library/configparser.rst:227 msgid "" @@ -176,6 +241,17 @@ msgid "" "indented deeper than the first line of the value. Depending on the parser's " "mode, blank lines may be treated as parts of multiline values or ignored." msgstr "" +"Un fichier de configuration est constitué de sections. Chacune des sections " +"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" +"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " +"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " +"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " +"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " +"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " +"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " +"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " +"vides peuvent être considérées comme faisant partie des valeurs multi " +"lignes, en fonction de la configuration de l'analyseur." #: ../Doc/library/configparser.rst:236 msgid "" @@ -183,6 +259,10 @@ msgid "" "(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " "otherwise empty line, possibly indented. [1]_" msgstr "" +"Les fichiers de configuration peuvent contenir des commentaires, préfixés " +"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " +"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " +"aussi être indentés. [1]_" #: ../Doc/library/configparser.rst:240 ../Doc/library/configparser.rst:301 msgid "For example:" @@ -190,7 +270,7 @@ msgstr "Par exemple :" #: ../Doc/library/configparser.rst:288 msgid "Interpolation of values" -msgstr "" +msgstr "Interpolation des valeurs" #: ../Doc/library/configparser.rst:290 msgid "" @@ -198,6 +278,9 @@ msgid "" "interpolation. This means values can be preprocessed before returning them " "from ``get()`` calls." msgstr "" +"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " +"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " +"avant d'être renvoyées par les appels aux méthodes ``get()``." #: ../Doc/library/configparser.rst:296 msgid "" @@ -206,6 +289,11 @@ msgid "" "or values in the special default section [1]_. Additional default values " "can be provided on initialization." msgstr "" +"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " +"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " +"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " +"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " +"fournies au moment de l'initialisation de cette classe." #: ../Doc/library/configparser.rst:311 msgid "" @@ -216,6 +304,13 @@ msgid "" "keys used in the chain of references do not have to be specified in any " "specific order in the configuration file." msgstr "" +"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " +"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " +"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " +"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" +"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " +"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " +"être définies dans le fichier de configuration dans n'importe quel ordre." #: ../Doc/library/configparser.rst:318 msgid "" @@ -223,6 +318,9 @@ msgid "" "%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" "lumberjack`` as the value of ``my_dir``." msgstr "" +"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie ``" +"%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" +"lumberjack`` comme valeur pour ``my_dir``." #: ../Doc/library/configparser.rst:324 msgid "" @@ -233,20 +331,30 @@ msgid "" "`` part is omitted, interpolation defaults to the current section (and " "possibly the default values from the special section)." msgstr "" +"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " +"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " +"chaîne de formatage ``{section:option}}`` pour désigner une valeur " +"appartenant à une autre section. L'interpolation peut s'étendre sur " +"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " +"l'interpolation utilise la section courante par défaut (et, le cas échéant, " +"les valeurs de la section par défaut spéciale)." #: ../Doc/library/configparser.rst:331 msgid "" "For example, the configuration specified above with basic interpolation, " "would look like this with extended interpolation:" msgstr "" +"Voici comment transformer la configuration ci-dessus avec la syntaxe " +"d'interpolation étendue :" #: ../Doc/library/configparser.rst:341 msgid "Values from other sections can be fetched as well:" msgstr "" +"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" #: ../Doc/library/configparser.rst:363 msgid "Mapping Protocol Access" -msgstr "" +msgstr "Protocole d'accès associatif" #: ../Doc/library/configparser.rst:367 msgid "" @@ -255,6 +363,11 @@ msgid "" "`configparser`, the mapping interface implementation is using the " "``parser['section']['option']`` notation." msgstr "" +"Le terme « protocole d'accès associatif » est utilisé pour décrire la " +"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " +"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " +"l’implémentation du protocole utilise la notation ``parser['section']" +"['option']``." #: ../Doc/library/configparser.rst:372 msgid "" @@ -264,6 +377,12 @@ msgid "" "values are changed on a section proxy, they are actually mutated in the " "original parser." msgstr "" +"En particulier, ``parser['section']`` renvoie un mandataire vers les données " +"de la section correspondantes dans l'analyseur. Cela signifie que les " +"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " +"demande. Plus important encore, lorsque les valeurs sont changées dans un " +"mandataire pour une section, elles sont en réalité changées dans l'analyseur " +"initial." #: ../Doc/library/configparser.rst:378 msgid "" @@ -272,6 +391,11 @@ msgid "" "`~collections.abc.MutableMapping` ABC. However, there are a few differences " "that should be taken into account:" msgstr "" +"Les objets du module :mod:`configparser` se comportent le plus possible " +"comme des vrais dictionnaires. L'interface est complète et suit les " +"définitions fournies par la classe abstraite :class:`~collections.abc." +"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de " +"différences :" #: ../Doc/library/configparser.rst:383 msgid "" @@ -281,6 +405,11 @@ msgid "" "default. At the same time, for a section that holds the key ``'a'``, both " "expressions return ``True``::" msgstr "" +"Par défaut, toutes les clés des sections sont accessibles sans respect de la " +"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " +"uniquement les clés telles que transformées par la méthode ``optionxform``, " +"c'est-à-dire des clés transformées en minuscules. De même, pour une section " +"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" #: ../Doc/library/configparser.rst:391 msgid "" @@ -294,7 +423,7 @@ msgstr "" #: ../Doc/library/configparser.rst:398 msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" #: ../Doc/library/configparser.rst:400 msgid "trying to delete it raises ``ValueError``," @@ -302,11 +431,11 @@ msgstr "" #: ../Doc/library/configparser.rst:402 msgid "``parser.clear()`` leaves it intact," -msgstr "" +msgstr "appeler ``parser.clear()`` la laisse intacte ;" #: ../Doc/library/configparser.rst:404 msgid "``parser.popitem()`` never returns it." -msgstr "" +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." #: ../Doc/library/configparser.rst:406 msgid "" @@ -314,6 +443,10 @@ msgid "" "fallback value. Note however that the section-level ``get()`` methods are " "compatible both with the mapping protocol and the classic configparser API." msgstr "" +"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " +"**pas** une valeur de substitution. Notez cependant que les méthodes " +"``get()`` fournies par les sections sont compatibles à la fois avec le " +"protocole associatif et avec l'API classique de *configparser*." #: ../Doc/library/configparser.rst:410 msgid "" @@ -324,6 +457,13 @@ msgid "" "*value* pairs for a specified ``section``, with all interpolations expanded " "(unless ``raw=True`` is provided)." msgstr "" +"La méthode ``parser.items()`` est compatible avec le protocole d'accès " +"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " +"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " +"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " +"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " +"section spécifiée, en interprétant les interpolations (à moins d'utiliser " +"``raw=True``)." #: ../Doc/library/configparser.rst:417 msgid "" @@ -331,10 +471,13 @@ msgid "" "that subclasses overriding the original interface still should have mappings " "working as expected." msgstr "" +"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " +"sous-classes qui écrasent des méthodes de l'interface originale se " +"comportent correctement du point de vue du protocole d'accès." #: ../Doc/library/configparser.rst:423 msgid "Customizing Parser Behaviour" -msgstr "" +msgstr "Personnalisation du comportement de l'analyseur" #: ../Doc/library/configparser.rst:425 msgid "" @@ -344,16 +487,25 @@ msgid "" "dictated by historical background and it's very likely that you will want to " "customize some of the features." msgstr "" +"Il existe pratiquement autant de variations du format *INI* que " +"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " +"possible pour gérer le plus grand nombre de variantes raisonnables du style " +"*INI*. Le comportement par défaut est principalement contraint par des " +"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " +"de personnaliser certaines des fonctionnalités de ce module." #: ../Doc/library/configparser.rst:431 msgid "" "The most common way to change the way a specific config parser works is to " "use the :meth:`__init__` options:" msgstr "" +"La méthode la plus fréquemment utilisée pour changer la façon dont se " +"comporte un analyseur est d’utiliser les options de la méthode :meth:" +"`__init__` :" #: ../Doc/library/configparser.rst:434 msgid "*defaults*, default value: ``None``" -msgstr "" +msgstr "*defaults*, valeur par défaut : ``None``" #: ../Doc/library/configparser.rst:436 msgid "" @@ -362,12 +514,20 @@ msgid "" "concise configuration files that don't specify values which are the same as " "the documented default." msgstr "" +"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " +"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " +"élégante de prendre en charge des fichiers de configuration qui n'ont pas " +"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " +"par défaut documentées." #: ../Doc/library/configparser.rst:441 msgid "" "Hint: if you want to specify default values for a specific section, use :" "meth:`read_dict` before you read the actual file." msgstr "" +"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " +"configuration si vous voulez spécifier des valeurs par défaut pour une " +"section spécifique." #: ../Doc/library/configparser.rst:444 msgid "*dict_type*, default value: :class:`collections.OrderedDict`" @@ -401,7 +561,7 @@ msgstr "" #: ../Doc/library/configparser.rst:508 msgid "*allow_no_value*, default value: ``False``" -msgstr "" +msgstr "*allow_no_value*, valeur par défaut : ``False``" #: ../Doc/library/configparser.rst:510 msgid "" @@ -410,10 +570,15 @@ msgid "" "*allow_no_value* parameter to the constructor can be used to indicate that " "such values should be accepted:" msgstr "" +"Certains fichiers de configurations sont connus pour contenir des options " +"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " +"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " +"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " +"construction de l'instance :" #: ../Doc/library/configparser.rst:545 msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" #: ../Doc/library/configparser.rst:547 msgid "" @@ -421,20 +586,30 @@ msgid "" "The first occurrence of a delimiting substring on a line is considered a " "delimiter. This means values (but not keys) can contain the delimiters." msgstr "" +"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " +"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " +"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " +"contenir certains des délimiteurs (mais pas les clés)." #: ../Doc/library/configparser.rst:551 msgid "" "See also the *space_around_delimiters* argument to :meth:`ConfigParser." "write`." msgstr "" +"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:" +"`ConfigParser.write`." #: ../Doc/library/configparser.rst:554 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" #: ../Doc/library/configparser.rst:556 msgid "*inline_comment_prefixes*, default value: ``None``" msgstr "" +"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " +"défaut : ``('#', ';')``" #: ../Doc/library/configparser.rst:558 msgid "" @@ -445,12 +620,23 @@ msgid "" "well). By default inline comments are disabled and ``'#'`` and ``';'`` are " "used as prefixes for whole line comments." msgstr "" +"Les préfixes de commentaire indiquent le début d'un commentaire valide au " +"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " +"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " +"préfixes de commentaires en ligne peuvent être utilisés après n'importe " +"quelle valeur valide (comme les noms des sections, les options et les lignes " +"vides). Par défaut, les commentaires en ligne sont désactivés et les " +"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " +"sont `'#'`` et ``';'``." #: ../Doc/library/configparser.rst:565 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." msgstr "" +"Les précédentes versions du module :mod:`configparser` se comportent comme " +"en utilisant ``comment_prefixes=('#',';')`` et " +"``inline_comment_prefixes=(';',)``." #: ../Doc/library/configparser.rst:569 msgid "" @@ -461,10 +647,17 @@ msgid "" "storing comment prefix characters at the beginning of a line in multiline " "values is to interpolate the prefix, for example::" msgstr "" +"Notez que les analyseurs ne prennent pas en charge l'échappement des " +"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " +"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " +"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " +"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " +"la seule façon de stocker des préfixes de commentaires au début d'une valeur " +"multi lignes est d'interpoler ceux-ci, par exemple ::" #: ../Doc/library/configparser.rst:615 msgid "*strict*, default value: ``True``" -msgstr "" +msgstr "*scrict*, valeur par défaut : ``True``" #: ../Doc/library/configparser.rst:617 msgid "" @@ -473,16 +666,23 @@ msgid "" "meth:`read_string` or :meth:`read_dict`). It is recommended to use strict " "parsers in new applications." msgstr "" +"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " +"option dupliquée lors de la lecture d'une source unique (lorsque :meth:" +"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il " +"est recommandé d'utiliser un mode de fonctionnement strict pour les " +"analyseurs employés par de nouvelles applications." #: ../Doc/library/configparser.rst:622 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``strict=False``." msgstr "" +"Les versions précédentes du module :mod:`configparser` se comportent comme " +"en utilisant ``strict=False``." #: ../Doc/library/configparser.rst:626 msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" #: ../Doc/library/configparser.rst:628 msgid "" @@ -493,6 +693,13 @@ msgid "" "when configuration files get big and complex, it is easy for the user to " "lose track of the file structure. Take for instance:" msgstr "" +"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " +"lignes à partir du moment où elles sont plus indentées que la clé qui les " +"contient. Par défaut les analyseurs autorisent les lignes vides à faire " +"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " +"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " +"est probable que l'utilisateur perde de vue la structure du fichier lorsque " +"celui-ci devient long et complexe. Prenez par exemple :" #: ../Doc/library/configparser.rst:643 msgid "" @@ -502,12 +709,20 @@ msgid "" "This will make empty lines split keys every time. In the example above, it " "would produce two keys, ``key`` and ``this``." msgstr "" +"Ceci est particulièrement problématique si l'utilisateur a configuré son " +"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " +"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " +"moins que votre application en ait besoin. Dans ce cas, les lignes vides " +"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" +"dessus, cela produit deux clés : ``key`` et ``this``." #: ../Doc/library/configparser.rst:649 msgid "" "*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``" "\"DEFAULT\"``)" msgstr "" +"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " +"(autrement dit : ``\"DEFAULT\"``)" #: ../Doc/library/configparser.rst:652 msgid "" @@ -578,6 +793,12 @@ msgid "" "``'off'``. You can override this by specifying a custom dictionary of " "strings and their Boolean outcomes. For example:" msgstr "" +"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " +"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et " +"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " +"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " +"Par exemple :" #: ../Doc/library/configparser.rst:714 msgid "" diff --git a/library/ctypes.po b/library/ctypes.po index 9cf82795f..8e444368d 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -1517,6 +1517,9 @@ msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." msgstr "" +"Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " +"moment de la compilation, de l'édition de liens et pendant l'exécution du " +"programme." #: ../Doc/library/ctypes.rst:1237 msgid "" @@ -1526,12 +1529,20 @@ msgid "" "while the ctypes library loaders act like when a program is run, and call " "the runtime loader directly." msgstr "" +"Le but de la fonction :func:`find_library` est de trouver une bibliothèque " +"de la même façon que le ferait le compilateur ou le chargeur (sur les plates-" +"formes avec plusieurs versions de la même bibliothèque, la plus récente est " +"chargée), alors que les chargeurs de bibliothèques de *ctypes* se comportent " +"de la même façon qu'un programme qui s'exécute, et appellent directement le " +"chargeur." #: ../Doc/library/ctypes.rst:1243 msgid "" "The :mod:`ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" +"Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " +"bibliothèque charger." #: ../Doc/library/ctypes.rst:1251 msgid "" @@ -1540,10 +1551,15 @@ msgid "" "number (this is the form used for the posix linker option :option:`!-l`). " "If no library can be found, returns ``None``." msgstr "" +"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " +"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " +"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " +"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " +"trouver de bibliothèque, elle renvoie ``None``." #: ../Doc/library/ctypes.rst:1256 ../Doc/library/ctypes.rst:1840 msgid "The exact functionality is system dependent." -msgstr "" +msgstr "Le mode opératoire exact dépend du système." #: ../Doc/library/ctypes.rst:1258 msgid "" @@ -1551,6 +1567,9 @@ msgid "" "ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " "returns the filename of the library file." msgstr "" +"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " +"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." #: ../Doc/library/ctypes.rst:1262 msgid "" @@ -1558,16 +1577,21 @@ msgid "" "when searching for libraries, if a library cannot be found by any other " "means." msgstr "" +"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " +"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." #: ../Doc/library/ctypes.rst:1266 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/library/ctypes.rst:1277 msgid "" "On OS X, :func:`find_library` tries several predefined naming schemes and " "paths to locate the library, and returns a full pathname if successful::" msgstr "" +"Sous OS X, :func:`find_library` regarde dans des chemins et conventions de " +"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " +"complet si elle la trouve :" #: ../Doc/library/ctypes.rst:1291 msgid "" @@ -1575,6 +1599,10 @@ msgid "" "returns the full pathname, but since there is no predefined naming scheme a " "call like ``find_library(\"c\")`` will fail and return ``None``." msgstr "" +"Sous Windows, :func:`find_library` examine le chemin de recherche du système " +"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " +"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " +"et renvoient ``None``." #: ../Doc/library/ctypes.rst:1295 msgid "" @@ -1583,6 +1611,11 @@ msgid "" "into the wrapper module instead of using :func:`find_library` to locate the " "library at runtime." msgstr "" +"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " +"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " +"lors du développement et de l'écrire en dur dans le module d'encapsulation, " +"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " +"l'exécution." #: ../Doc/library/ctypes.rst:1303 msgid "Loading shared libraries" @@ -1593,6 +1626,9 @@ msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" msgstr "" +"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " +"processus Python. L'un d'entre eux consiste à instancier une des classes " +"suivantes :" #: ../Doc/library/ctypes.rst:1311 msgid "" @@ -1600,6 +1636,9 @@ msgid "" "these libraries use the standard C calling convention, and are assumed to " "return :c:type:`int`." msgstr "" +"Une instance de cette classe représente une bibliothèque partagée déjà " +"chargée. Les fonctions de cette bibliothèque utilisent la convention d'appel " +"C standard et doivent renvoyer un :c:type:`int`." #: ../Doc/library/ctypes.rst:1318 msgid "" @@ -1610,6 +1649,13 @@ msgid "" "failed or succeeded, together with additional error code. If the return " "value signals a failure, an :class:`OSError` is automatically raised." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall*, et doivent renvoyer un code :" +"class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " +"contiennent des informations précisant si l'appel de la fonction a échoué ou " +"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " +"retour signale un échec, une :class:`OSError` est levée automatiquement." #: ../Doc/library/ctypes.rst:1325 msgid ":exc:`WindowsError` used to be raised." @@ -1621,6 +1667,10 @@ msgid "" "functions in these libraries use the ``stdcall`` calling convention, and are " "assumed to return :c:type:`int` by default." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut un :" +"c:type:`int`." #: ../Doc/library/ctypes.rst:1335 msgid "" @@ -1628,12 +1678,18 @@ msgid "" "the :class:`WinDLL` and :class:`OleDLL` use the standard calling convention " "on this platform." msgstr "" +"Sous Windows CE, seule la convention d'appel standard est utilisée. Pour des " +"raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " +"convention d'appel standard sur cette plate-forme." #: ../Doc/library/ctypes.rst:1339 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" +"Le :term:`verrou global de l'interpréteur ` Python " +"est relâché avant chaque appel d'une fonction exposée par ces bibliothèques " +"et ré-activé après." #: ../Doc/library/ctypes.rst:1345 msgid "" @@ -1642,10 +1698,15 @@ msgid "" "function execution the Python error flag is checked. If the error flag is " "set, a Python exception is raised." msgstr "" +"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " +"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " +"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " +"Python est levée." #: ../Doc/library/ctypes.rst:1350 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" +"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." #: ../Doc/library/ctypes.rst:1352 msgid "" @@ -1656,6 +1717,12 @@ msgid "" "``LoadLibrary`` function is used to load the library into the process, and " "to get a handle to it." msgstr "" +"Toutes ces classes peuvent être instanciées en les appelant avec le chemin " +"de la bibliothèque partagée comme unique argument. Il est aussi possible de " +"passer un lien vers une bibliothèque déjà chargée en utilisant le paramètre " +"``handle``. Sinon, les fonctions ``dlopen`` ou ``LoadLibrary`` de la plate-" +"forme sous-jacente permettent de charger la bibliothèque dans le processus, " +"et d'en obtenir un lien." #: ../Doc/library/ctypes.rst:1359 msgid "" @@ -1664,6 +1731,10 @@ msgid "" "ignored. On posix systems, RTLD_NOW is always added, and is not " "configurable." msgstr "" +"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " +"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " +"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " +"est toujours ajouté. Ceci n'est pas configurable." #: ../Doc/library/ctypes.rst:1364 msgid "" @@ -1674,6 +1745,13 @@ msgid "" "the :data:`errno` value before the function call is swapped with the ctypes " "private copy, the same happens immediately after the function call." msgstr "" +"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " +"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " +"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " +"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " +"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " +"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " +"produit juste après l'appel de la fonction." #: ../Doc/library/ctypes.rst:1371 msgid "" @@ -1681,6 +1759,9 @@ msgid "" "private copy, and the function :func:`ctypes.set_errno` changes the ctypes " "private copy to a new value and returns the former value." msgstr "" +"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " +"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " +"la copie privée et renvoie l'ancienne valeur." #: ../Doc/library/ctypes.rst:1375 msgid "" @@ -1690,24 +1771,36 @@ msgid "" "and :func:`ctypes.set_last_error` are used to request and change the ctypes " "private copy of the windows error code." msgstr "" +"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " +"le code d'erreur de Windows qui est géré par les fonctions :func:" +"`GetLastError` et :func:`SetLastError` de l'API Windows ; :func:`ctypes." +"get_last_error` et :func:`ctypes.set_last_error` servent à obtenir et " +"modifier la copie privée *ctypes* de ce code d'erreur." #: ../Doc/library/ctypes.rst:1384 msgid "" "Flag to use as *mode* parameter. On platforms where this flag is not " "available, it is defined as the integer zero." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où " +"ce drapeau n'est pas disponible." #: ../Doc/library/ctypes.rst:1391 msgid "" "Flag to use as *mode* parameter. On platforms where this is not available, " "it is the same as *RTLD_GLOBAL*." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-" +"formes où ce drapeau n'est pas disponible." #: ../Doc/library/ctypes.rst:1398 msgid "" "The default mode which is used to load shared libraries. On OSX 10.3, this " "is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." msgstr "" +"Mode de chargement par défaut des bibliothèques partagées. Vaut " +"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes " +"d'exploitation." #: ../Doc/library/ctypes.rst:1401 msgid "" @@ -1723,6 +1816,8 @@ msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" msgstr "" +"Les attributs publics suivants sont disponibles, leur nom commence par un " +"tiret bas pour éviter les conflits avec les noms des fonctions exportées :" #: ../Doc/library/ctypes.rst:1418 msgid "The system handle used to access the library." @@ -1730,7 +1825,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1423 msgid "The name of the library passed in the constructor." -msgstr "" +msgstr "Nom de la bibliothèque donné au constructeur." #: ../Doc/library/ctypes.rst:1425 msgid "" @@ -1739,12 +1834,18 @@ msgid "" "calling the :meth:`LoadLibrary` method, or by retrieving the library as " "attribute of the loader instance." msgstr "" +"Il est possible de charger une bibliothèque partagée soit en utilisant une " +"instance de la classe :class:`LibraryLoader`, soit en appelant la méthode :" +"meth:`LoadLibrary`, soit en récupérant la bibliothèque comme attribut de " +"l'instance du chargeur." #: ../Doc/library/ctypes.rst:1433 msgid "" "Class which loads shared libraries. *dlltype* should be one of the :class:" "`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." msgstr "" +"Classe pour charger une bibliothèque partagée. *dlltype* doit être de type :" +"class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`." #: ../Doc/library/ctypes.rst:1436 msgid "" @@ -1752,38 +1853,44 @@ msgid "" "by accessing it as attribute of a library loader instance. The result is " "cached, so repeated attribute accesses return the same library each time." msgstr "" +":meth:`__getattr__` a un comportement particulier : elle charge une " +"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " +"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " +"fois." #: ../Doc/library/ctypes.rst:1442 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." msgstr "" +"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " +"méthode renvoie toujours une nouvelle instance de la bibliothèque." #: ../Doc/library/ctypes.rst:1446 msgid "These prefabricated library loaders are available:" -msgstr "" +msgstr "Plusieurs chargeurs sont fournis :" #: ../Doc/library/ctypes.rst:1451 msgid "Creates :class:`CDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`CDLL`." #: ../Doc/library/ctypes.rst:1457 msgid "Windows only: Creates :class:`WinDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1463 msgid "Windows only: Creates :class:`OleDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1469 msgid "Creates :class:`PyDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`PyDLL`." #: ../Doc/library/ctypes.rst:1472 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" -msgstr "" +msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" #: ../Doc/library/ctypes.rst:1478 msgid "" @@ -1792,6 +1899,11 @@ msgid "" "`int`, which is of course not always the truth, so you have to assign the " "correct :attr:`restype` attribute to use these functions." msgstr "" +"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " +"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " +"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " +"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " +"utiliser." #: ../Doc/library/ctypes.rst:1487 msgid "Foreign functions" @@ -1805,28 +1917,41 @@ msgid "" "instances as arguments, and return the default result type specified by the " "library loader. They are instances of a private class:" msgstr "" +"Comme expliqué dans la section précédente, on peut accéder aux fonctions " +"externes au travers des attributs des bibliothèques partagées. Un objet " +"fonction créé de cette façon accepte par défaut un nombre quelconque " +"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il " +"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des " +"instances de la classe privée :" #: ../Doc/library/ctypes.rst:1498 msgid "Base class for C callable foreign functions." -msgstr "" +msgstr "Classe de base pour les fonctions externes C." #: ../Doc/library/ctypes.rst:1500 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" +"Une instance de fonction externe est également un type de donnée compatible " +"avec le C ; elle représente un pointeur vers une fonction." #: ../Doc/library/ctypes.rst:1503 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" +"Son comportement peut-être personnalisé en réaffectant les attributs " +"spécifiques de l'objet représentant la fonction externe." #: ../Doc/library/ctypes.rst:1508 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:type:`void`, a function not returning anything." msgstr "" +"Fait correspondre le type de retour de la fonction externe à un type " +"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), " +"utilisez ``None``." #: ../Doc/library/ctypes.rst:1511 msgid "" @@ -1837,6 +1962,14 @@ msgid "" "or error checking use a ctypes data type as :attr:`restype` and assign a " "callable to the :attr:`errcheck` attribute." msgstr "" +"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas " +"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est " +"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet " +"entier, ce qui permet ainsi de faire des actions supplémentaires comme " +"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple " +"de faire des actions supplémentaires ou de la vérification consiste à " +"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à " +"l'attribut :attr:`errcheck`." #: ../Doc/library/ctypes.rst:1520 msgid "" @@ -1846,6 +1979,11 @@ msgid "" "tuple; functions using the C calling convention accept additional, " "unspecified arguments as well." msgstr "" +"Fait correspondre le type des arguments que la fonction accepte avec un *n*-" +"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel " +"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que " +"la taille du *n*-uplet mais les fonctions qui utilisent la convention " +"d'appel C acceptent aussi des arguments additionnels non-définis." #: ../Doc/library/ctypes.rst:1526 msgid "" @@ -1856,6 +1994,13 @@ msgid "" "attr:`argtypes` tuple will convert a string passed as argument into a bytes " "object using ctypes conversion rules." msgstr "" +"À l'appel d'une fonction externe, chaque argument est passé à la méthode de " +"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet des :" +"attr:`argtypes`. Cette méthode convertit l'argument initial en un objet que " +"la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` dans " +"le *n*-uplet des :attr:`argtypes` va transformer la chaîne de caractères " +"passée en argument en un objet chaîne d'octets selon les règles de " +"conversion *ctypes*." #: ../Doc/library/ctypes.rst:1533 msgid "" @@ -1864,30 +2009,47 @@ msgid "" "usable as argument (integer, string, ctypes instance). This allows defining " "adapters that can adapt custom objects as function parameters." msgstr "" +"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas " +"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une " +"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme " +"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet " +"de créer des adaptateurs qui convertissent des objets arbitraires en des " +"paramètres de fonction." #: ../Doc/library/ctypes.rst:1540 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" msgstr "" +"Définit une fonction Python ou tout autre appelable qui sera appelé avec " +"trois arguments ou plus :" #: ../Doc/library/ctypes.rst:1547 msgid "" "*result* is what the foreign function returns, as specified by the :attr:" "`restype` attribute." msgstr "" +"*result* est la valeur de retour de la fonction externe, comme défini par " +"l'attribut :attr:`restype`." #: ../Doc/library/ctypes.rst:1550 msgid "" "*func* is the foreign function object itself, this allows reusing the same " "callable object to check or post process the results of several functions." msgstr "" +"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur " +"permet de réutiliser le même appelable pour vérifier le résultat de " +"plusieurs fonctions ou de faire des actions supplémentaires après leur " +"exécution." #: ../Doc/library/ctypes.rst:1554 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." msgstr "" +"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à " +"la fonction, ceci permet de spécialiser le comportement des arguments " +"utilisés." #: ../Doc/library/ctypes.rst:1558 msgid "" @@ -1895,12 +2057,17 @@ msgid "" "function call, but it can also check the result value and raise an exception " "if the foreign function call failed." msgstr "" +"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la " +"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever " +"une exception si l'appel a échoué." #: ../Doc/library/ctypes.rst:1565 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" +"Exception levée quand un appel à la fonction externe ne peut pas convertir " +"un des arguments qu'elle a reçus." #: ../Doc/library/ctypes.rst:1572 msgid "Function prototypes" diff --git a/library/curses.po b/library/curses.po index f5b9749a5..a2a5a1224 100644 --- a/library/curses.po +++ b/library/curses.po @@ -1626,7 +1626,7 @@ msgstr "" #: ../Doc/library/curses.rst:1359 msgid "Key" -msgstr "" +msgstr "Clé" #: ../Doc/library/curses.rst:1361 msgid "``KEY_MIN``" @@ -2954,7 +2954,7 @@ msgstr "" #: ../Doc/library/curses.rst:1763 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/curses.rst:1765 msgid ":kbd:`Control-A`" diff --git a/library/difflib.po b/library/difflib.po index 8147d07b5..420ddc22b 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" -msgstr "" +msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" #: ../Doc/library/difflib.rst:11 msgid "**Source code:** :source:`Lib/difflib.py`" @@ -49,6 +49,20 @@ msgid "" "minimal edit sequences, but does tend to yield matches that \"look right\" " "to people." msgstr "" +"C'est une classe flexible permettant de comparer des séquences deux à deux " +"de n'importe quel type, tant que les éléments des séquences sont :term:" +"`hachables `. L'algorithme de base est antérieur, et un peu plus " +"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et " +"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est " +"de trouver la plus longue sous-séquence d'appariement contiguë qui ne " +"contient pas d'éléments « indésirables » ; ces éléments « indésirables » " +"sont ceux qui sont inintéressants dans un certain sens, comme les lignes " +"blanches ou les espaces. (Le traitement des éléments indésirables est une " +"extension de l'algorithme de Ratcliff et Obershelp). La même idée est " +"ensuite appliquée récursivement aux morceaux des séquences à gauche et à " +"droite de la sous-séquence correspondante. Cela ne donne pas des séquences " +"de montage minimales, mais tend à donner des correspondances qui « semblent " +"correctes » pour les gens." #: ../Doc/library/difflib.rst:40 msgid "" @@ -58,6 +72,12 @@ msgid "" "dependent in a complicated way on how many elements the sequences have in " "common; best case time is linear." msgstr "" +"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " +"de complexité cubique dans le pire cas et de complexité quadratique dans le " +"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " +"pire cas et son comportement dans le cas attendu dépend de façon complexe du " +"nombre d'éléments que les séquences ont en commun ; le temps dans le " +"meilleur cas est linéaire." #: ../Doc/library/difflib.rst:46 msgid "" @@ -70,10 +90,20 @@ msgid "" "This heuristic can be turned off by setting the ``autojunk`` argument to " "``False`` when creating the :class:`SequenceMatcher`." msgstr "" +"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " +"utilise une heuristique qui traite automatiquement certains éléments de la " +"séquence comme indésirables. L'heuristique compte combien de fois chaque " +"élément individuel apparaît dans la séquence. Si les doublons d'un élément " +"(après le premier) représentent plus de 1 % de la séquence et que la " +"séquence compte au moins 200 éléments, cet élément est marqué comme " +"« populaire » et est traité comme indésirable aux fins de la comparaison des " +"séquences. Cette heuristique peut être désactivée en réglant l'argument " +"``autojunk`` sur ``False`` lors de la création de la classe :class:" +"`SequenceMatcher`." #: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:383 msgid "The *autojunk* parameter." -msgstr "" +msgstr "Le paramètre *autojunk*." #: ../Doc/library/difflib.rst:60 msgid "" @@ -82,10 +112,17 @@ msgid "" "both to compare sequences of lines, and to compare sequences of characters " "within similar (near-matching) lines." msgstr "" +"Il s'agit d'une classe permettant de comparer des séquences de lignes de " +"texte et de produire des différences ou deltas humainement lisibles. " +"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " +"séquences de lignes, et pour comparer des séquences de caractères dans des " +"lignes similaires (quasi-correspondantes)." #: ../Doc/library/difflib.rst:65 msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" msgstr "" +"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " +"lettres :" #: ../Doc/library/difflib.rst:68 msgid "Code" @@ -101,7 +138,7 @@ msgstr "``'- '``" #: ../Doc/library/difflib.rst:70 msgid "line unique to sequence 1" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 1" #: ../Doc/library/difflib.rst:72 msgid "``'+ '``" @@ -109,7 +146,7 @@ msgstr "``'+ '``" #: ../Doc/library/difflib.rst:72 msgid "line unique to sequence 2" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 2" #: ../Doc/library/difflib.rst:74 msgid "``' '``" @@ -117,7 +154,7 @@ msgstr "``' '``" #: ../Doc/library/difflib.rst:74 msgid "line common to both sequences" -msgstr "" +msgstr "ligne commune aux deux séquences" #: ../Doc/library/difflib.rst:76 msgid "``'? '``" @@ -125,7 +162,7 @@ msgstr "``'? '``" #: ../Doc/library/difflib.rst:76 msgid "line not present in either input sequence" -msgstr "" +msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" #: ../Doc/library/difflib.rst:79 msgid "" @@ -133,6 +170,10 @@ msgid "" "differences, and were not present in either input sequence. These lines can " "be confusing if the sequences contain tab characters." msgstr "" +"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " +"différences intralignes, et n'étaient présentes dans aucune des séquences " +"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " +"des caractères de tabulation." #: ../Doc/library/difflib.rst:86 msgid "" @@ -141,26 +182,35 @@ msgid "" "text with inter-line and intra-line change highlights. The table can be " "generated in either full or contextual difference mode." msgstr "" +"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " +"HTML complet contenant le tableau) montrant une comparaison côte à côte, " +"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " +"Le tableau peut être généré en mode de différence complet ou contextuel." #: ../Doc/library/difflib.rst:91 msgid "The constructor for this class is:" -msgstr "" +msgstr "Le constructeur pour cette classe est :" #: ../Doc/library/difflib.rst:96 msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "" +msgstr "Initialise l'instance de :class:`HtmlDiff`." #: ../Doc/library/difflib.rst:98 msgid "" "*tabsize* is an optional keyword argument to specify tab stop spacing and " "defaults to ``8``." msgstr "" +"*tabsize* est argument nommé optionnel pour spécifier l'espacement des " +"tabulations et sa valeur par défaut est ``8``." #: ../Doc/library/difflib.rst:101 msgid "" "*wrapcolumn* is an optional keyword to specify column number where lines are " "broken and wrapped, defaults to ``None`` where lines are not wrapped." msgstr "" +"*wrapcolumn* est un argument nommé optionnel pour spécifier le numéro de la " +"colonne où les lignes sont coupées pour être ré-agencées, la valeur par " +"défaut est ``None`` lorsque les lignes ne sont pas ré-agencées." #: ../Doc/library/difflib.rst:104 msgid "" @@ -169,10 +219,14 @@ msgid "" "differences). See :func:`ndiff` documentation for argument default values " "and descriptions." msgstr "" +"*linejunk* et *charjunk* sont des arguments nommés optionnels passés dans :" +"func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les différences " +"HTML côte à côte). Voir la documentation de :func:`ndiff` pour les valeurs " +"par défaut des arguments et les descriptions." #: ../Doc/library/difflib.rst:108 msgid "The following methods are public:" -msgstr "" +msgstr "Les méthodes suivantes sont publiques :" #: ../Doc/library/difflib.rst:113 msgid "" @@ -180,12 +234,19 @@ msgid "" "which is a complete HTML file containing a table showing line by line " "differences with inter-line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " +"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " +"un tableau montrant les différences ligne par ligne avec les changements " +"inter-lignes et intralignes mis en évidence." #: ../Doc/library/difflib.rst:117 msgid "" "*fromdesc* and *todesc* are optional keyword arguments to specify from/to " "file column header strings (both default to an empty string)." msgstr "" +"*fromdesc* et *todesc* sont des arguments nommés optionnels pour spécifier " +"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " +"chaînes vides par défaut)." #: ../Doc/library/difflib.rst:120 msgid "" @@ -199,12 +260,25 @@ msgid "" "hyperlinks to place the next difference highlight at the top of the browser " "without any leading context)." msgstr "" +"*context* et *numlines* sont tous deux des arguments nommés facultatifs. " +"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " +"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " +"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " +"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte " +"qui entourent les différences mise en évidence. Lorsque *context* est " +"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " +"un surlignage de différence lors de l'utilisation des hyperliens " +"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " +"« suivants » placeraient le surlignage de différence suivant en haut du " +"navigateur sans aucun contexte introductif)." #: ../Doc/library/difflib.rst:130 msgid "" "*charset* keyword-only argument was added. The default charset of HTML " "document changed from ``'ISO-8859-1'`` to ``'utf-8'``." msgstr "" +"l'argument nommé *charset* a été ajouté. Le jeu de caractères par défaut du " +"document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." #: ../Doc/library/difflib.rst:136 msgid "" @@ -212,24 +286,34 @@ msgid "" "which is a complete HTML table showing line by line differences with inter-" "line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " +"qui est un tableau HTML complet montrant les différences ligne par ligne " +"avec les changements inter-lignes et intralignes mis en évidence." #: ../Doc/library/difflib.rst:140 msgid "" "The arguments for this method are the same as those for the :meth:" "`make_file` method." msgstr "" +"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:" +"`make_file`." #: ../Doc/library/difflib.rst:143 msgid "" ":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " "contains a good example of its use." msgstr "" +":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette " +"classe et contient un bon exemple de son utilisation." #: ../Doc/library/difflib.rst:149 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in context diff format." msgstr "" +"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :" +"term:`generateur ` générant les lignes delta) dans un format de " +"différence de contexte." #: ../Doc/library/difflib.rst:152 msgid "" @@ -246,12 +330,20 @@ msgid "" "with :func:`io.IOBase.writelines` since both the inputs and outputs have " "trailing newlines." msgstr "" +"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " +"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " +"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " +"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " +"puisque les entrées et les sorties ont des nouvelles lignes de fin." #: ../Doc/library/difflib.rst:162 ../Doc/library/difflib.rst:293 msgid "" "For inputs that do not have trailing newlines, set the *lineterm* argument " "to ``\"\"`` so that the output will be uniformly newline free." msgstr "" +"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " +"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " +"ligne." #: ../Doc/library/difflib.rst:165 ../Doc/library/difflib.rst:296 msgid "" @@ -261,10 +353,18 @@ msgid "" "normally expressed in the ISO 8601 format. If not specified, the strings " "default to blanks." msgstr "" +"Le format de contexte de différence comporte normalement un en-tête pour les " +"noms de fichiers et les heures de modification. Tout ou partie de ces " +"éléments peuvent être spécifiés en utilisant les chaînes de caractères " +"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " +"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " +"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." #: ../Doc/library/difflib.rst:188 ../Doc/library/difflib.rst:317 msgid "See :ref:`difflib-interface` for a more detailed example." msgstr "" +"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." #: ../Doc/library/difflib.rst:193 msgid "" diff --git a/library/email.errors.po b/library/email.errors.po index 550b30533..1ab02dfac 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -19,17 +19,19 @@ msgstr "" #: ../Doc/library/email.errors.rst:2 msgid ":mod:`email.errors`: Exception and Defect classes" -msgstr "" +msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" #: ../Doc/library/email.errors.rst:7 msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/errors.py`" #: ../Doc/library/email.errors.rst:11 msgid "" "The following exception classes are defined in the :mod:`email.errors` " "module:" msgstr "" +"Les classes d'exception suivantes sont définies dans le module :mod:`email." +"errors` :" #: ../Doc/library/email.errors.rst:16 msgid "" @@ -37,6 +39,9 @@ msgid "" "raise. It is derived from the standard :exc:`Exception` class and defines " "no additional methods." msgstr "" +"Exception de base, dont héritent toutes les exceptions du paquet :mod:" +"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne " +"définit aucune méthode additionnelle." #: ../Doc/library/email.errors.rst:23 msgid "" @@ -44,6 +49,9 @@ msgid "" "Parser` class. It is derived from :exc:`MessageError`. This class is also " "used internally by the parser used by :mod:`~email.headerregistry`." msgstr "" +"Exception de base pour les exceptions levées par la classe :class:`~email." +"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi " +"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`." #: ../Doc/library/email.errors.rst:31 msgid "" @@ -56,10 +64,19 @@ msgid "" "header (that is, there is what is supposed to be a continuation line that " "has no leading whitespace and looks like a header)." msgstr "" +"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " +"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " +"message. Lorsque la méthode :meth:`~email.message.EmailMessage." +"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est " +"inconnu. La classe :class:`~email.header.Header` lève cette exception pour " +"certains types d'erreurs provenant du décodage base64. Elle la lève aussi " +"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, " +"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas " +"par des caractères d'espacement." #: ../Doc/library/email.errors.rst:43 msgid "Deprecated and no longer used." -msgstr "" +msgstr "Obsolète, n'est plus utilisé." #: ../Doc/library/email.errors.rst:48 msgid "" @@ -69,6 +86,12 @@ msgid "" "`multipart` or missing. :exc:`MultipartConversionError` multiply inherits " "from :exc:`MessageError` and the built-in :exc:`TypeError`." msgstr "" +"Cette exception est levée quand le contenu, que la méthode :meth:" +"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, " +"est déjà un scalaire et que le type principal du message :mailheader:" +"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:" +"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :" +"exc:`TypeError`." #: ../Doc/library/email.errors.rst:54 msgid "" @@ -78,6 +101,11 @@ msgid "" "derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:" "`~email.mime.image.MIMEImage`)." msgstr "" +"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception " +"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:" +"`~email.message.Message.attach` est invoquée sur une instance de classe " +"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:" +"`~email.mime.image.MIMEImage`)." #: ../Doc/library/email.errors.rst:62 msgid "" @@ -88,41 +116,60 @@ msgid "" "nested message object would have a defect, but the containing messages would " "not." msgstr "" +"Voici la liste des anomalies que peut identifier :class:`~email.parser." +"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont " +"signalées à l'endroit où elles sont détectées : par exemple, dans le cas " +"d'une malformation de l'en-tête d'un message imbriqué dans un message de " +"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le " +"message imbriqué seulement." #: ../Doc/library/email.errors.rst:68 msgid "" "All defect classes are subclassed from :class:`email.errors.MessageDefect`." msgstr "" +"Toutes les anomalies sont des sous-classes de :class:`email.errors." +"MessageDefect`." #: ../Doc/library/email.errors.rst:70 msgid "" ":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, " "but had no :mimetype:`boundary` parameter." msgstr "" +":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " +"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:" +"`boundary`." #: ../Doc/library/email.errors.rst:73 msgid "" ":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :" "mailheader:`Content-Type` header was never found." msgstr "" +":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " +"séparateur de départ indiqué dans le :mailheader:`Content-Type`." #: ../Doc/library/email.errors.rst:76 msgid "" ":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no " "corresponding close boundary was ever found." msgstr "" +":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " +"mais pas le séparateur de fin correspondant." #: ../Doc/library/email.errors.rst:81 msgid "" ":class:`FirstHeaderLineIsContinuationDefect` -- The message had a " "continuation line as its first header line." msgstr "" +":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" +"tête du message est une ligne de continuation." #: ../Doc/library/email.errors.rst:84 msgid "" ":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in " "the middle of a header block." msgstr "" +":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " +"à l'intérieur d'un bloc d'en-tête." #: ../Doc/library/email.errors.rst:87 msgid "" @@ -130,16 +177,21 @@ msgid "" "headers that had no leading white space but contained no ':'. Parsing " "continues assuming that the line represents the first line of the body." msgstr "" +":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " +"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " +"en supposant qu'il s'agit donc de la première ligne du corps du message." #: ../Doc/library/email.errors.rst:93 msgid "" ":class:`MalformedHeaderDefect` -- A header was found that was missing a " "colon, or was otherwise malformed." msgstr "" +":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " +"« : »." #: ../Doc/library/email.errors.rst:96 msgid "This defect has not been used for several Python versions." -msgstr "" +msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." #: ../Doc/library/email.errors.rst:99 msgid "" @@ -155,6 +207,9 @@ msgid "" "encoded bytes, the padding was not correct. Enough padding is added to " "perform the decode, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " +"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " +"pour permettre le décodage, mais le résultat du décodage peut être invalide." #: ../Doc/library/email.errors.rst:108 msgid "" @@ -162,6 +217,10 @@ msgid "" "encoded bytes, characters outside the base64 alphabet were encountered. The " "characters are ignored, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " +"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " +"encodés en base64. Les caractères ont été ignorés, mais le résultat du " +"décodage peut être invalide." #: ../Doc/library/email.errors.rst:112 msgid "" @@ -169,3 +228,6 @@ msgid "" "encoded bytes, the number of non-padding base64 characters was invalid (1 " "more than a multiple of 4). The encoded block was kept as-is." msgstr "" +":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " +"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " +"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." diff --git a/library/ipaddress.po b/library/ipaddress.po index 28696ff89..6c69ddbef 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -23,7 +23,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:9 msgid "**Source code:** :source:`Lib/ipaddress.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/ipaddress.py`" #: ../Doc/library/ipaddress.rst:13 msgid "" diff --git a/library/logging.config.po b/library/logging.config.po index b5c348130..e226a7ffc 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -29,18 +29,20 @@ msgstr "" msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.config.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.config.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.config.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.config.rst:23 msgid "This section describes the API for configuring the logging module." @@ -138,7 +140,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.config.rst:90 msgid "" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index cd954b782..840cc8a46 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -19,28 +19,30 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:2 msgid ":mod:`logging.handlers` --- Logging handlers" -msgstr "" +msgstr ":mod:`logging.handlers` — Gestionnaires de journalisation" #: ../Doc/library/logging.handlers.rst:10 msgid "**Source code:** :source:`Lib/logging/handlers.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/handlers.py`" #: ../Doc/library/logging.handlers.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.handlers.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.handlers.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.handlers.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.handlers.rst:25 msgid "" @@ -49,10 +51,15 @@ msgid "" "`NullHandler`) are actually defined in the :mod:`logging` module itself, but " "have been documented here along with the other handlers." msgstr "" +"Les gestionnaires suivants, très utiles, sont fournis dans le paquet. Notez " +"que trois des gestionnaires (:class:`StreamHandler`, :class:`FileHandler` " +"et :class:`NullHandler`) sont en réalité définis dans le module :mod:" +"`logging` lui-même, mais qu’ils sont documentés ici avec les autres " +"gestionnaires." #: ../Doc/library/logging.handlers.rst:33 msgid "StreamHandler" -msgstr "" +msgstr "Gestionnaire à flux — *StreamHandler*" #: ../Doc/library/logging.handlers.rst:35 msgid "" @@ -61,6 +68,10 @@ msgid "" "or any file-like object (or, more precisely, any object which supports :meth:" "`write` and :meth:`flush` methods)." msgstr "" +"La classe :class:`StreamHandler`, du paquet :mod:`logging`, envoie les " +"sorties de journalisation dans des flux tels que *sys.stdout*, *sys.stderr* " +"ou n’importe quel objet fichier-compatible (ou, plus précisément, tout objet " +"qui gère les méthodes :meth:`write` et :meth:`flush`)." #: ../Doc/library/logging.handlers.rst:43 msgid "" @@ -68,6 +79,9 @@ msgid "" "specified, the instance will use it for logging output; otherwise, *sys." "stderr* will be used." msgstr "" +"Renvoie une nouvelle instance de la classe :class:`StreamHandler`. Si " +"*stream* est spécifié, l’instance l’utilise pour les sorties de " +"journalisation ; autrement elle utilise *sys.stderr*." #: ../Doc/library/logging.handlers.rst:50 msgid "" @@ -83,6 +97,10 @@ msgid "" "`close` method is inherited from :class:`~logging.Handler` and so does no " "output, so an explicit :meth:`flush` call may be needed at times." msgstr "" +"Purge le flux en appelant sa méthode :meth:`flush`. Notez que la méthode :" +"meth:`close` est héritée de :class:`~logging.Handler` donc elle n'écrit " +"rien. Par conséquent, un appel explicite à :meth:`flush` peut parfois " +"s'avérer nécessaire." #: ../Doc/library/logging.handlers.rst:62 msgid "" @@ -95,7 +113,7 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:72 msgid "FileHandler" -msgstr "" +msgstr "Gestionnaire à fichier — *FileHandler*" #: ../Doc/library/logging.handlers.rst:74 msgid "" @@ -103,6 +121,9 @@ msgid "" "sends logging output to a disk file. It inherits the output functionality " "from :class:`StreamHandler`." msgstr "" +"La classe :class:`FileHandler`, du paquet :mod:`logging`, envoie les sorties " +"de journalisation dans un fichier. Elle hérite des fonctionnalités de sortie " +"de :class:`StreamHandler`." #: ../Doc/library/logging.handlers.rst:81 msgid "" @@ -122,18 +143,20 @@ msgid "" "As well as string values, :class:`~pathlib.Path` objects are also accepted " "for the *filename* argument." msgstr "" +"L'argument *filename* accepte les objets :class:`~pathlib.Path` aussi bien " +"que les chaînes de caractères." #: ../Doc/library/logging.handlers.rst:93 msgid "Closes the file." -msgstr "" +msgstr "Ferme le fichier." #: ../Doc/library/logging.handlers.rst:98 msgid "Outputs the record to the file." -msgstr "" +msgstr "Écrit l’enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:104 msgid "NullHandler" -msgstr "" +msgstr "Gestionnaire à puits sans fond — *NullHandler*" #: ../Doc/library/logging.handlers.rst:108 msgid "" @@ -141,31 +164,38 @@ msgid "" "does not do any formatting or output. It is essentially a 'no-op' handler " "for use by library developers." msgstr "" +"La classe :class:`NullHandler`, située dans le paquet principal :mod:" +"`logging`, ne produit aucun formatage ni sortie. C’est essentiellement un " +"gestionnaire « fantôme » destiné aux développeurs de bibliothèques." #: ../Doc/library/logging.handlers.rst:114 msgid "Returns a new instance of the :class:`NullHandler` class." -msgstr "" +msgstr "Renvoie une nouvelle instance de la classe :class:`NullHandler`." #: ../Doc/library/logging.handlers.rst:118 #: ../Doc/library/logging.handlers.rst:122 msgid "This method does nothing." -msgstr "" +msgstr "Cette méthode ne fait rien." #: ../Doc/library/logging.handlers.rst:126 msgid "" "This method returns ``None`` for the lock, since there is no underlying I/O " "to which access needs to be serialized." msgstr "" +"Cette méthode renvoie ``None`` pour le verrou, étant donné qu’il n’y a aucun " +"flux d'entrée-sortie sous-jacent dont l’accès doit être sérialisé." #: ../Doc/library/logging.handlers.rst:130 msgid "" "See :ref:`library-config` for more information on how to use :class:" "`NullHandler`." msgstr "" +"Voir :ref:`library-config` pour plus d’information sur l'utilisation de :" +"class:`NullHandler`." #: ../Doc/library/logging.handlers.rst:136 msgid "WatchedFileHandler" -msgstr "" +msgstr "Gestionnaire à fichier avec surveillance — *WatchedFileHandler*" #: ../Doc/library/logging.handlers.rst:140 msgid "" @@ -174,6 +204,10 @@ msgid "" "logging to. If the file changes, it is closed and reopened using the file " "name." msgstr "" +"La classe :class:`WatchedFileHandler`, située dans le module :mod:`logging." +"handlers`, est un :class:`FileHandler` qui surveille le fichier dans lequel " +"il journalise. Si le fichier change, il est fermé et rouvert en utilisant le " +"nom du fichier." #: ../Doc/library/logging.handlers.rst:144 msgid "" @@ -184,6 +218,14 @@ msgid "" "changed.) If the file has changed, the old file stream is closed, and the " "file opened to get a new stream." msgstr "" +"Un changement du fichier peut arriver à cause de l’utilisation de programmes " +"tels que *newsyslog* ou *logrotate* qui assurent le roulement des fichiers " +"de journalisation. Ce gestionnaire, destiné à une utilisation sous Unix/" +"Linux, surveille le fichier pour voir s’il a changé depuis la dernière " +"écriture (un fichier est réputé avoir changé si son nœud d’index ou le " +"périphérique auquel il est rattaché a changé). Si le fichier a changé, " +"l’ancien flux vers ce fichier est fermé, et le fichier est ouvert pour " +"établir un nouveau flux." #: ../Doc/library/logging.handlers.rst:151 msgid "" @@ -193,6 +235,12 @@ msgid "" "*ST_INO* is not supported under Windows; :func:`~os.stat` always returns " "zero for this value." msgstr "" +"Ce gestionnaire n’est pas approprié pour une utilisation sous *Windows*, car " +"sous *Windows* les fichiers de journalisation ouverts ne peuvent être ni " +"déplacés, ni renommés — la journalisation ouvre les fichiers avec des " +"verrous exclusifs — de telle sorte qu’il n’y a pas besoin d’un tel " +"gestionnaire. En outre, *ST_INO* n’est pas géré par *Windows* ; :func:`~os." +"stat` renvoie toujours zéro pour cette valeur." #: ../Doc/library/logging.handlers.rst:160 msgid "" @@ -210,16 +258,21 @@ msgid "" "flushed and closed and the file opened again, typically as a precursor to " "outputting the record to the file." msgstr "" +"Vérifie si le fichier a changé. Si c’est le cas, le flux existant est purgé " +"et fermé et le fichier est rouvert, généralement avant d'effectuer " +"l’écriture de l'enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:181 msgid "" "Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to " "reopen the file if it has changed." msgstr "" +"Écrit l’enregistrement dans le fichier, mais appelle d’abord :meth:" +"`reopenIfNeeded` pour rouvrir le fichier s’il a changé." #: ../Doc/library/logging.handlers.rst:187 msgid "BaseRotatingHandler" -msgstr "" +msgstr "Base des gestionnaires à roulement *BaseRotatingHandler*" #: ../Doc/library/logging.handlers.rst:189 msgid "" @@ -229,10 +282,17 @@ msgid "" "need to instantiate this class, but it has attributes and methods you may " "need to override." msgstr "" +"La classe :class:`BaseRotatingHandler`, située dans le module :mod:`logging." +"handlers`, est la classe de base pour les gestionnaires à roulement, :class:" +"`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Vous ne devez " +"pas initialiser cette classe, mais elle a des attributs et des méthodes que " +"vous devrez peut-être surcharger." #: ../Doc/library/logging.handlers.rst:197 msgid "The parameters are as for :class:`FileHandler`. The attributes are:" msgstr "" +"Les paramètres sont les mêmes que pour :class:`FileHandler`. Les attributs " +"sont :" #: ../Doc/library/logging.handlers.rst:201 msgid "" @@ -240,6 +300,9 @@ msgid "" "delegates to this callable. The parameters passed to the callable are those " "passed to :meth:`rotation_filename`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, la méthode :meth:" +"`rotation_filename` se rapporte à cet appelable. Les paramètres passés à " +"l’appelable sont ceux passés à :meth:`rotation_filename`." #: ../Doc/library/logging.handlers.rst:205 msgid "" @@ -248,6 +311,10 @@ msgid "" "every time for a given input, otherwise the rollover behaviour may not work " "as expected." msgstr "" +"La fonction *namer* est appelée pas mal de fois durant le roulement, de " +"telle sorte qu’elle doit être aussi simple et rapide que possible. Elle doit " +"aussi renvoyer toujours la même sortie pour une entrée donnée, autrement le " +"comportement du roulement pourrait être différent de celui attendu." #: ../Doc/library/logging.handlers.rst:215 msgid "" @@ -255,14 +322,18 @@ msgid "" "to this callable. The parameters passed to the callable are those passed " "to :meth:`rotate`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, cet appelable se substitue " +"à la méthode :meth:`rotate`. Les paramètres passés à l’appelable sont ceux " +"passés à :meth:`rotate`." #: ../Doc/library/logging.handlers.rst:223 msgid "Modify the filename of a log file when rotating." msgstr "" +"Modifie le nom du fichier d’un fichier de journalisation lors du roulement." #: ../Doc/library/logging.handlers.rst:225 msgid "This is provided so that a custom filename can be provided." -msgstr "" +msgstr "Cette méthode sert à pouvoir produire un nom de fichier personnalisé." #: ../Doc/library/logging.handlers.rst:227 msgid "" @@ -270,18 +341,21 @@ msgid "" "it's callable, passing the default name to it. If the attribute isn't " "callable (the default is ``None``), the name is returned unchanged." msgstr "" +"L’implémentation par défaut appelle l’attribut *namer* du gestionnaire, si " +"c’est un appelable, lui passant le nom par défaut. Si l’attribut n’est pas " +"un appelable (le défaut est ``None``), le nom est renvoyé tel quel." #: ../Doc/library/logging.handlers.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.handlers.rst:231 msgid "The default name for the log file." -msgstr "" +msgstr "Le nom par défaut du fichier de journalisation." #: ../Doc/library/logging.handlers.rst:238 msgid "When rotating, rotate the current log." -msgstr "" +msgstr "Lors du roulement, effectue le roulement du journal courant." #: ../Doc/library/logging.handlers.rst:240 msgid "" @@ -290,17 +364,25 @@ msgid "" "isn't callable (the default is ``None``), the source is simply renamed to " "the destination." msgstr "" +"L’implémentation par défaut appelle l’attribut *rotator* du gestionnaire, si " +"c’est un appelable, lui passant les arguments *source* et *dest*. Si " +"l’attribut n’est pas un appelable (le défaut est ``None``), le nom de la " +"source est simplement renommé avec la destination." #: ../Doc/library/logging.handlers.rst:245 msgid "" "The source filename. This is normally the base filename, e.g. 'test.log'." msgstr "" +"Le nom du fichier source. Il s’agit normalement du nom du fichier, par " +"exemple ``\"test.log\"``." #: ../Doc/library/logging.handlers.rst:247 msgid "" "The destination filename. This is normally what the source is rotated to, e." "g. 'test.log.1'." msgstr "" +"Le nom du fichier de destination. Il s’agit normalement du nom donné à la " +"source après le roulement, par exemple ``\"test.log.1\"``." #: ../Doc/library/logging.handlers.rst:252 msgid "" @@ -311,26 +393,36 @@ msgid "" "exception during an :meth:`emit` call, i.e. via the :meth:`handleError` " "method of the handler." msgstr "" +"La raison d’être de ces attributs est de vous épargner la création d’une " +"sous-classe — vous pouvez utiliser les mêmes appels pour des instances de :" +"class:`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Si le " +"*namer* ou le *rotator* appelable lève une exception, ce sera géré de la " +"même manière que n’importe quelle exception durant un appel :meth:`emit`, " +"c'est-à-dire par la méthode :meth:`handleError` du gestionnaire." #: ../Doc/library/logging.handlers.rst:259 msgid "" "If you need to make more significant changes to rotation processing, you can " "override the methods." msgstr "" +"Si vous avez besoin de faire d’importantes modifications au processus de " +"roulement, surchargez les méthodes." #: ../Doc/library/logging.handlers.rst:262 msgid "For an example, see :ref:`cookbook-rotator-namer`." -msgstr "" +msgstr "Pour un exemple, voir :ref:`cookbook-rotator-namer`." #: ../Doc/library/logging.handlers.rst:268 msgid "RotatingFileHandler" -msgstr "" +msgstr "Gestionnaire à roulement de fichiers — *RotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:270 msgid "" "The :class:`RotatingFileHandler` class, located in the :mod:`logging." "handlers` module, supports rotation of disk log files." msgstr "" +"La classe :class:`RotatingFileHandler`, située dans le module :mod:`logging." +"handlers`, gère le roulement des fichiers de journalisation sur disque." #: ../Doc/library/logging.handlers.rst:276 msgid "" @@ -359,21 +451,41 @@ msgid "" "log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then " "they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." msgstr "" +"Utilisez les valeurs *maxBytes* et *backupCount* pour autoriser le roulement " +"du fichier (:dfn:`rollover`) à une taille prédéterminée. Quand la taille " +"limite est sur le point d’être dépassée, le fichier est fermé et un nouveau " +"fichier est discrètement ouvert en tant que sortie. Un roulement se produit " +"dès que le fichier de journalisation actuel atteint presque une taille de " +"*maxBytes* ; si *maxBytes* ou *backupCount* est à 0, le roulement ne se " +"produit jamais, donc en temps normal il convient de définir *backupCount* à " +"au moins 1, et avoir une valeur de *maxBytes* non nulle. Quand *backupCount* " +"est non nul, le système sauvegarde les anciens fichiers de journalisation en " +"leur ajoutant au nom du fichier, les suffixes ``\".1\"``, ``\".2\"`` et " +"ainsi de suite. Par exemple, avec un *backupCount* de 5 et :file:`app.log` " +"comme radical du fichier, vous obtiendrez :file:`app.log`, :file:`app." +"log.1`, :file:`app.log.2`, jusqu’à :file:`app.log.5`. Le fichier dans lequel " +"on écrit est toujours :file:`app.log`. Quand ce fichier est rempli, il est " +"fermé et renommé en :file:`app.log.1`, et si les fichiers :file:`app." +"log.1`, :file:`app.log.2`, etc. existent, alors ils sont renommés " +"respectivement en :file:`app.log.2`, :file:`app.log.3` etc." #: ../Doc/library/logging.handlers.rst:303 #: ../Doc/library/logging.handlers.rst:403 msgid "Does a rollover, as described above." -msgstr "" +msgstr "Effectue un roulement, comme décrit au-dessus." #: ../Doc/library/logging.handlers.rst:308 msgid "" "Outputs the record to the file, catering for rollover as described " "previously." msgstr "" +"Écrit l'enregistrement dans le fichier, effectuant un roulement au besoin " +"comme décrit précédemment." #: ../Doc/library/logging.handlers.rst:314 msgid "TimedRotatingFileHandler" msgstr "" +"Gestionnaire à roulement de fichiers périodique — *TimedRotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:316 msgid "" @@ -381,6 +493,9 @@ msgid "" "handlers` module, supports rotation of disk log files at certain timed " "intervals." msgstr "" +"La classe :class:`TimedRotatingFileHandler`, située dans le module :mod:" +"`logging.handlers`, gère le roulement des fichiers de journalisation sur le " +"disque à un intervalle de temps spécifié." #: ../Doc/library/logging.handlers.rst:323 msgid "" @@ -389,12 +504,19 @@ msgid "" "also sets the filename suffix. Rotating happens based on the product of " "*when* and *interval*." msgstr "" +"Renvoie une nouvelle instance de la classe :class:" +"`TimedRotatingFileHandler`. Le fichier spécifié est ouvert et utilisé en " +"tant que flux de sortie pour la journalisation. Au moment du roulement, il " +"met également à jour le suffixe du nom du fichier. Le roulement se produit " +"sur la base combinée de *when* et *interval*." #: ../Doc/library/logging.handlers.rst:328 msgid "" "You can use the *when* to specify the type of *interval*. The list of " "possible values is below. Note that they are not case sensitive." msgstr "" +"Utilisez le *when* pour spécifier le type de l’*interval*. La liste des " +"valeurs possibles est ci-dessous. Notez qu’elles sont sensibles à la casse." #: ../Doc/library/logging.handlers.rst:332 msgid "Value" @@ -402,11 +524,11 @@ msgstr "Valeur" #: ../Doc/library/logging.handlers.rst:332 msgid "Type of interval" -msgstr "" +msgstr "Type d’intervalle" #: ../Doc/library/logging.handlers.rst:332 msgid "If/how *atTime* is used" -msgstr "" +msgstr "Si/comment *atTime* est utilisé" #: ../Doc/library/logging.handlers.rst:334 msgid "``'S'``" @@ -414,7 +536,7 @@ msgstr "``'S'``" #: ../Doc/library/logging.handlers.rst:334 msgid "Seconds" -msgstr "" +msgstr "Secondes" #: ../Doc/library/logging.handlers.rst:334 #: ../Doc/library/logging.handlers.rst:336 @@ -429,7 +551,7 @@ msgstr "``'M'``" #: ../Doc/library/logging.handlers.rst:336 msgid "Minutes" -msgstr "" +msgstr "Minutes" #: ../Doc/library/logging.handlers.rst:338 msgid "``'H'``" @@ -437,7 +559,7 @@ msgstr "``'H'``" #: ../Doc/library/logging.handlers.rst:338 msgid "Hours" -msgstr "" +msgstr "Heures" #: ../Doc/library/logging.handlers.rst:340 msgid "``'D'``" @@ -445,7 +567,7 @@ msgstr "``'D'``" #: ../Doc/library/logging.handlers.rst:340 msgid "Days" -msgstr "" +msgstr "Jours" #: ../Doc/library/logging.handlers.rst:342 msgid "``'W0'-'W6'``" @@ -453,12 +575,12 @@ msgstr "``'W0'-'W6'``" #: ../Doc/library/logging.handlers.rst:342 msgid "Weekday (0=Monday)" -msgstr "" +msgstr "Jour de la semaine (0=lundi)" #: ../Doc/library/logging.handlers.rst:342 #: ../Doc/library/logging.handlers.rst:345 msgid "Used to compute initial rollover time" -msgstr "" +msgstr "Utilisé pour calculer le moment du roulement" #: ../Doc/library/logging.handlers.rst:345 msgid "``'midnight'``" @@ -467,6 +589,8 @@ msgstr "``'midnight'``" #: ../Doc/library/logging.handlers.rst:345 msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" msgstr "" +"Roulement du fichier à minuit, si *atTime* n’est pas spécifié, sinon à " +"l’heure *atTime*" #: ../Doc/library/logging.handlers.rst:350 msgid "" @@ -474,6 +598,10 @@ msgid "" "Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " "*interval* isn't used." msgstr "" +"Lors de l’utilisation d’un roulement basé sur les jours de la semaine, " +"définir *W0* pour lundi, *W1* pour mardi, et ainsi de suite jusqu’à *W6* " +"pour dimanche. Dans ce cas, la valeur indiquée pour *interval* n’est pas " +"utilisée." #: ../Doc/library/logging.handlers.rst:354 msgid "" @@ -481,6 +609,10 @@ msgid "" "The extensions are date-and-time based, using the strftime format ``%Y-%m-%d_" "%H-%M-%S`` or a leading portion thereof, depending on the rollover interval." msgstr "" +"Le système sauvegarde les anciens fichiers de journalisation en ajoutant une " +"extension au nom du fichier. Les extensions sont basées sur la date et " +"l’heure, en utilisation le format *strftime* ``%Y-%m-%d_%H-%M-%S`` ou le " +"début de celui-ci, selon l’intervalle du roulement." #: ../Doc/library/logging.handlers.rst:359 msgid "" @@ -488,6 +620,10 @@ msgid "" "is created), the last modification time of an existing log file, or else the " "current time, is used to compute when the next rotation will occur." msgstr "" +"Lors du premier calcul du roulement suivant (quand le gestionnaire est " +"créé), la dernière date de modification d’un fichier de journalisation " +"existant, ou sinon la date actuelle, est utilisée pour calculer la date du " +"prochain roulement." #: ../Doc/library/logging.handlers.rst:363 msgid "" diff --git a/library/logging.po b/library/logging.po index f667b09c0..bf8ca5561 100644 --- a/library/logging.po +++ b/library/logging.po @@ -932,7 +932,7 @@ msgstr "" #: ../Doc/library/logging.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.rst:672 msgid "" diff --git a/library/mailbox.po b/library/mailbox.po index 27174167d..14793fc5b 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -270,6 +270,8 @@ msgid "" "The behavior of :meth:`__iter__` is unlike that of dictionaries, which " "iterate over keys." msgstr "" +"Le comportement de :meth:`__iter__` diffère de celui d'un dictionnaire, pour " +"lequel l'itération se fait sur ses clés." #: ../Doc/library/mailbox.rst:156 msgid "" @@ -280,6 +282,13 @@ msgid "" "subclass unless a custom message factory was specified when the :class:" "`Mailbox` instance was initialized." msgstr "" +"Renvoie un itérateur sur les paires (*key*, *message*), où *key* est une clé " +"et *message* est la représentation d'un message, si appelée en tant que :" +"meth:`iteritems` ; ou renvoie une liste de paires semblables si appelée en " +"tant que :meth:`items`. Les messages sont représentés comme instances au " +"format approprié et spécifique d'une sous-classe de :class:`Message` à moins " +"qu'une moulinette personnalisée de message ait été spécifiée lors de " +"l'initialisation de l'instance :class:`Mailbox`." #: ../Doc/library/mailbox.rst:167 msgid "" @@ -347,7 +356,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:232 msgid "Delete all messages from the mailbox." -msgstr "" +msgstr "Supprime tous les messages de la boîte de courriel." #: ../Doc/library/mailbox.rst:237 msgid "" @@ -1531,7 +1540,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:1134 msgid "Sequence" -msgstr "" +msgstr "Séquence" #: ../Doc/library/mailbox.rst:1136 ../Doc/library/mailbox.rst:1223 msgid "unseen" @@ -1734,16 +1743,20 @@ msgid "" "When a :class:`BabylMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`BabylMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1337 msgid ":class:`MMDFMessage`" -msgstr "" +msgstr ":class:`MMDFMessage`" #: ../Doc/library/mailbox.rst:1342 msgid "" "A message with MMDF-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" +"Un message avec des comportements spécifiques à *MMDF*. Le paramètre " +"*message* a le même sens que pour le constructeur de :class:`Message`." #: ../Doc/library/mailbox.rst:1345 msgid "" @@ -1752,18 +1765,27 @@ msgid "" "\"From \". Likewise, flags that indicate the state of the message are " "typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." msgstr "" +"Comme pour le message d'une boîte de courriel *mbox*, les messages *MMDF* " +"sont stockés avec l'adresse de l'expéditeur et la date d'expédition dans la " +"ligne initiale commençant avec « From ». De même, les options indiquant " +"l'état du message sont stockées dans les en-têtes :mailheader:`Status` et :" +"mailheader:`X-Status`." #: ../Doc/library/mailbox.rst:1350 msgid "" "Conventional flags for MMDF messages are identical to those of mbox message " "and are as follows:" msgstr "" +"Les options conventionnelles des messages *MMDF* sont identiques à celles de " +"message *mbox* et sont les suivantes :" #: ../Doc/library/mailbox.rst:1371 msgid "" ":class:`MMDFMessage` instances offer the following methods, which are " "identical to those offered by :class:`mboxMessage`:" msgstr "" +"Les méthodes des instances :class:`MMDFMessage` sont identiques à celles de :" +"class:`mboxMessage` et sont les suivantes :" #: ../Doc/library/mailbox.rst:1420 msgid "" @@ -1772,18 +1794,26 @@ msgid "" "class:`MaildirMessage` instance's delivery date, and the following " "conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MaildirMessage`, la ligne « From » est générée sur la base " +"de la date de remise de l'instance :class:`MaildirMessage` et les " +"conversions suivantes ont lieu :" #: ../Doc/library/mailbox.rst:1439 msgid "" "When an :class:`MMDFMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1454 msgid "" "When an :class:`MMDFMessage` instance is created based upon a :class:" "`BabylMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`BabylMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1469 msgid "" @@ -1791,10 +1821,13 @@ msgid "" "`mboxMessage` instance, the \"From \" line is copied and all flags directly " "correspond:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`mboxMessage`, la ligne « From » est copiée et toutes les " +"options ont une correspondance directe :" #: ../Doc/library/mailbox.rst:1474 msgid ":class:`mboxMessage` state" -msgstr "" +msgstr "état de :class:`mboxMessage`" #: ../Doc/library/mailbox.rst:1489 msgid "Exceptions" @@ -1804,10 +1837,13 @@ msgstr "Exceptions" msgid "" "The following exception classes are defined in the :mod:`mailbox` module:" msgstr "" +"Les exceptions de classes suivantes sont définies dans le module :mod:" +"`mailbox` :" #: ../Doc/library/mailbox.rst:1496 msgid "The based class for all other module-specific exceptions." msgstr "" +"Classe de base pour toutes les autres exceptions spécifiques à ce module." #: ../Doc/library/mailbox.rst:1501 msgid "" @@ -1816,12 +1852,18 @@ msgid "" "(and with the *create* parameter set to ``False``), or when opening a folder " "that does not exist." msgstr "" +"Levée lorsqu'une boîte de courriel est attendue mais introuvable, comme " +"quand on instancie une sous-classe :class:`Mailbox` avec un chemin qui " +"n'existe pas (et avec le paramètre *create* fixé à ``False``), ou quand on " +"ouvre un répertoire qui n'existe pas." #: ../Doc/library/mailbox.rst:1508 msgid "" "Raised when a mailbox is not empty but is expected to be, such as when " "deleting a folder that contains messages." msgstr "" +"Levée lorsqu'une boîte de courriel n'est pas vide mais devrait l'être, comme " +"lorsqu'on supprime un répertoire contenant des messages." #: ../Doc/library/mailbox.rst:1514 msgid "" @@ -1830,12 +1872,19 @@ msgid "" "that another program already holds a lock, or when a uniquely-generated file " "name already exists." msgstr "" +"Levée lorsqu'une condition liée à la boîte de courriel est hors de contrôle " +"du programme et l'empêche de se poursuivre, comme lors de l’échec " +"d'acquisition du verrou ou lorsqu'un nom de fichier censé être unique existe " +"déjà." #: ../Doc/library/mailbox.rst:1522 msgid "" "Raised when the data in a file cannot be parsed, such as when an :class:`MH` " "instance attempts to read a corrupted :file:`.mh_sequences` file." msgstr "" +"Levée lorsque la donnée dans le fichier ne peut être analysée, comme lorsque " +"l'instance de :class:`MH` tente de lire un fichier :file:`.mh_sequences` " +"corrompu." #: ../Doc/library/mailbox.rst:1529 msgid "Examples" @@ -1846,12 +1895,18 @@ msgid "" "A simple example of printing the subjects of all messages in a mailbox that " "seem interesting::" msgstr "" +"Un exemple simple d'affichage de l'objet, qui semble pertinent, de tous les " +"messages d'une boîte de courriel ::" #: ../Doc/library/mailbox.rst:1540 msgid "" "To copy all mail from a Babyl mailbox to an MH mailbox, converting all of " "the format-specific information that can be converted::" msgstr "" +"Cet exemple copie tout le courriel d'une boite de courriel au format " +"*Babyl* vers une boite de courriel au format *MH*, convertissant toute " +"l'information qu'il est possible de convertir du premier format vers le " +"second ::" #: ../Doc/library/mailbox.rst:1551 msgid "" @@ -1860,3 +1915,8 @@ msgid "" "other programs, mail loss due to interruption of the program, or premature " "termination due to malformed messages in the mailbox::" msgstr "" +"Cet exemple trie le courriel en provenance de plusieurs listes de diffusion " +"vers différentes boîtes de courriel, tout en évitant une corruption à cause " +"de modifications concurrentielles par d'autres programmes, une perte due à " +"une interruption du programme ou un arrêt prématuré causé par des messages " +"mal structurés ::" diff --git a/library/marshal.po b/library/marshal.po index 255913fd0..6e945f759 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/marshal.rst:2 msgid ":mod:`marshal` --- Internal Python object serialization" -msgstr "" +msgstr ":mod:`marshal` — Sérialisation interne des objets Python" #: ../Doc/library/marshal.rst:10 msgid "" @@ -30,6 +30,13 @@ msgid "" "are undocumented on purpose; it may change between Python versions (although " "it rarely does). [#]_" msgstr "" +"Ce module contient des fonctions permettant de lire et écrire des valeurs " +"Python au format binaire. Ce format est propre à Python, mais indépendant " +"de l'architecture de la machine (p. ex., vous pouvez écrire une valeur " +"Python dans un fichier sur un PC, envoyer le fichier vers une machine Sun et " +"la lire à nouveau). Les détails du format sont volontairement non " +"documentés ; il peut changer d'une version Python à l'autre (bien que ce " +"soit rarement le cas). [#]_" #: ../Doc/library/marshal.rst:21 msgid "" @@ -44,6 +51,17 @@ msgid "" "guaranteed, and pickle supports a substantially wider range of objects than " "marshal." msgstr "" +"Ce module ne permet pas de « sérialiser » des objets de manière permanente. " +"Pour des questions de sérialisation en général ou de transfert d'objets " +"Python par des appels RPC, référez-vous aux modules :mod:`pickle` et :mod:" +"`shelve`. Le module :mod:`marshal` existe principalement pour permettre la " +"lecture et l'écriture de code « pseudo-compilé » pour les modules Python des " +"fichiers :file:`.pyc`. Par conséquent, les mainteneurs Python se réservent " +"le droit de modifier le format *marshal* en cassant la rétrocompatibilité si " +"besoin. Si vous sérialisez et dé-sérialisez des objets Python, utilisez " +"plutôt le module :mod:`pickle` — les performances sont comparables, " +"l'indépendance par rapport à la version est garantie, et *pickle* prend en " +"charge une gamme d'objets beaucoup plus large que *marshal*." #: ../Doc/library/marshal.rst:33 msgid "" @@ -51,6 +69,9 @@ msgid "" "maliciously constructed data. Never unmarshal data received from an " "untrusted or unauthenticated source." msgstr "" +"N'utilisez pas le module :mod:`marshal` pour lire des données erronées ou " +"malveillantes. Ne démantelez jamais des données reçues d'une source non " +"fiable ou non authentifiée." #: ../Doc/library/marshal.rst:39 msgid "" @@ -66,22 +87,39 @@ msgid "" "*version* lower than 3, recursive lists, sets and dictionaries cannot be " "written (see below)." msgstr "" +"Tous les types d'objets Python ne sont pas pris en charge ; en général, " +"seuls les objets dont la valeur est indépendante d'une invocation " +"particulière de Python peuvent être écrits et lus par ce module. Les types " +"suivants sont pris en charge : booléens, entiers, nombres à virgule " +"flottante, nombres complexes, chaînes de caractères, octets, *bytearrays*, " +"*n*-uplets, listes, ensembles, ensembles figés, dictionnaires et objets, " +"étant entendu que les *n*-uplets, listes, ensembles, ensembles figés et " +"dictionnaires sont pris en charge si les valeurs qu'ils contiennent sont " +"elles-mêmes prises en charge. Les singletons :const:`None`, :const:" +"`Ellipsis` et :exc:`StopIteration` peuvent également être « pseudo-" +"compilés » et « dé-pseudo-compilés ». Pour le format des *versions* " +"inférieures à 3, les listes récursives, les ensembles et les dictionnaires " +"ne peuvent pas être écrits (voir ci-dessous)." #: ../Doc/library/marshal.rst:51 msgid "" "There are functions that read/write files as well as functions operating on " "bytes-like objects." msgstr "" +"Il existe des fonctions de lecture-écriture de fichiers ainsi que des " +"fonctions opérant sur des objets octet." #: ../Doc/library/marshal.rst:54 msgid "The module defines these functions:" -msgstr "" +msgstr "Le module définit ces fonctions :" #: ../Doc/library/marshal.rst:59 msgid "" "Write the value on the open file. The value must be a supported type. The " "file must be a writeable :term:`binary file`." msgstr "" +"Écrit la valeur sur le fichier ouvert. La valeur doit être un type pris en " +"charge. Le fichier doit être un :term:`fichier binaire` ouvert en écriture." #: ../Doc/library/marshal.rst:62 msgid "" @@ -90,12 +128,18 @@ msgid "" "written to the file. The object will not be properly read back by :func:" "`load`." msgstr "" +"Si la valeur est (ou contient un objet qui est) d'un type non implémenté, " +"une exception :exc:`ValueError` est levée — mais le contenu de la mémoire " +"sera également écrit dans le fichier. L'objet ne sera pas correctement lu " +"par :func:`load`." #: ../Doc/library/marshal.rst:66 msgid "" "The *version* argument indicates the data format that ``dump`` should use " "(see below)." msgstr "" +"L'argument *version* indique le format de données que le ``dump`` doit " +"utiliser (voir ci-dessous)." #: ../Doc/library/marshal.rst:72 msgid "" @@ -104,12 +148,19 @@ msgid "" "format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The " "file must be a readable :term:`binary file`." msgstr "" +"Lit une valeur du fichier ouvert et la renvoie. Si aucune valeur valide " +"n'est lue (p. ex. parce que les données ont un format décompilé incompatible " +"avec une autre version de Python), :exc:`EOFError`, :exc:`ValueError` ou :" +"exc:`TypeError` est levée. Le fichier doit être un :term:`fichier binaire` " +"ouvert en lecture." #: ../Doc/library/marshal.rst:79 msgid "" "If an object containing an unsupported type was marshalled with :func:" "`dump`, :func:`load` will substitute ``None`` for the unmarshallable type." msgstr "" +"Si un objet contenant un type non pris en charge a été dé-compilé avec :func:" +"`dump`, :func:`load` remplacera le type non « dé-compilable » par ``None``." #: ../Doc/library/marshal.rst:85 msgid "" @@ -117,12 +168,18 @@ msgid "" "file)``. The value must be a supported type. Raise a :exc:`ValueError` " "exception if value has (or contains an object that has) an unsupported type." msgstr "" +"Renvoie les octets qui seraient écrits dans un fichier par ``dump(value, " +"file)``. La valeur doit être un type pris en charge. Lève une exception :" +"exc:`ValueError` si la valeur a (ou contient un objet qui a) un type qui " +"n'est pas pris en charge." #: ../Doc/library/marshal.rst:89 msgid "" "The *version* argument indicates the data format that ``dumps`` should use " "(see below)." msgstr "" +"L'argument *version* indique le format de données que ``dumps`` doivent " +"utiliser (voir ci-dessous)." #: ../Doc/library/marshal.rst:95 msgid "" @@ -130,10 +187,13 @@ msgid "" "found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra " "bytes in the input are ignored." msgstr "" +"Convertit le :term:`bytes-like object` en une valeur. Si aucune valeur " +"valide n'est trouvée, :exc:`EOFError`, :exc:`ValueError` ou :exc:`TypeError` " +"est levée. Les octets supplémentaires de l'entrée sont ignorés." #: ../Doc/library/marshal.rst:100 msgid "In addition, the following constants are defined:" -msgstr "" +msgstr "De plus, les constantes suivantes sont définies :" #: ../Doc/library/marshal.rst:104 msgid "" @@ -142,6 +202,11 @@ msgid "" "for floating point numbers. Version 3 adds support for object instancing and " "recursion. The current version is 4." msgstr "" +"Indique le format que le module utilise. La version 0 est le format " +"originel, la version 1 partage des chaînes de caractères internes et la " +"version 2 utilise un format binaire pour les nombres à virgule flottante. La " +"version 3 ajoute la prise en charge de l'instanciation et de la récursivité " +"des objets. La version actuelle est la 4." #: ../Doc/library/marshal.rst:112 msgid "Footnotes" @@ -155,3 +220,9 @@ msgid "" "marshal\" means to convert some data from internal to external form (in an " "RPC buffer for instance) and \"unmarshalling\" for the reverse process." msgstr "" +"Le nom de ce module provient d'un peu de terminologie utilisée par les " +"concepteurs de Modula-3 (entre autres), qui utilisent le terme *marshalling* " +"pour l'envoi de données sous une forme autonome. À proprement parler, *to " +"marshal* signifie convertir certaines données d'une forme interne à une " +"forme externe (dans une mémoire tampon RPC par exemple) et *unmarshalling* " +"désigne le processus inverse." diff --git a/library/msilib.po b/library/msilib.po index e13e0abb4..cc0aa0042 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -454,7 +454,7 @@ msgstr "" #: ../Doc/library/msilib.rst:408 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/library/msilib.rst:413 msgid "" diff --git a/library/platform.po b/library/platform.po index 90a032b34..ade8e28b0 100644 --- a/library/platform.po +++ b/library/platform.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/platform.rst:2 msgid ":mod:`platform` --- Access to underlying platform's identifying data" -msgstr "" +msgstr ":mod:`platform` — Accès aux données sous-jacentes de la plateforme" #: ../Doc/library/platform.rst:10 msgid "**Source code:** :source:`Lib/platform.py`" @@ -30,16 +30,20 @@ msgid "" "Specific platforms listed alphabetically, with Linux included in the Unix " "section." msgstr "" +"Les spécificités des plateformes sont regroupées dans des sections triées " +"par ordre alphabétique. Linux est inclus dans la section Unix." #: ../Doc/library/platform.rst:21 msgid "Cross Platform" -msgstr "" +msgstr "Multi-plateforme" #: ../Doc/library/platform.rst:26 msgid "" "Queries the given executable (defaults to the Python interpreter binary) for " "various architecture information." msgstr "" +"Interroge l'exécutable fourni (par défaut l'interpréteur Python) sur les " +"informations de l'architecture." #: ../Doc/library/platform.rst:29 msgid "" @@ -47,6 +51,9 @@ msgid "" "architecture and the linkage format used for the executable. Both values are " "returned as strings." msgstr "" +"Renvoie un *n*-uplet de ``(bits, linkage)`` qui contient de l'information " +"sur l'architecture binaire et le format de lien. Les deux valeurs sont des " +"chaînes de caractères." #: ../Doc/library/platform.rst:33 msgid "" @@ -55,6 +62,11 @@ msgid "" "``sizeof(long)`` on Python version < 1.5.2) is used as indicator for the " "supported pointer size." msgstr "" +"Lorsqu'une valeur ne peut être déterminée, la valeur passée en paramètre est " +"utilisée. Si la valeur passée à *bits* est ``''``, la valeur de " +"``sizeof(pointer)`` (ou ``sizeof(long)`` sur les versions Python antérieures " +"à 1.5.2) est utilisée comme indicateur de la taille de pointeur prise en " +"charge." #: ../Doc/library/platform.rst:38 msgid "" @@ -63,42 +75,61 @@ msgid "" "platforms and then only if the executable points to the Python interpreter. " "Reasonable defaults are used when the above needs are not met." msgstr "" +"La fonction dépend de la commande :file:`file` du système pour accomplir la " +"tâche. `file` est disponible sur quasiment toutes les plateformes Unix ainsi " +"que sur certaines plateformes hors de la famille Unix et l'exécutable doit " +"pointer vers l'interpréteur Python. Des valeurs par défaut raisonnables sont " +"utilisées lorsque les conditions précédentes ne sont pas atteintes." #: ../Doc/library/platform.rst:45 msgid "" "On Mac OS X (and perhaps other platforms), executable files may be universal " "files containing multiple architectures." msgstr "" +"Sur Mac OS X (ainsi que d'autres plateformes), les fichiers exécutables " +"peuvent être universels et contenir plusieurs architectures." #: ../Doc/library/platform.rst:48 msgid "" "To get at the \"64-bitness\" of the current interpreter, it is more reliable " "to query the :attr:`sys.maxsize` attribute::" msgstr "" +"Afin de déterminer si l'interpréteur courant est 64-bit, une méthode plus " +"fiable est d'interroger l'attribut :attr:`sys.maxsize` ::" #: ../Doc/library/platform.rst:56 msgid "" "Returns the machine type, e.g. ``'i386'``. An empty string is returned if " "the value cannot be determined." msgstr "" +"Renvoie le type de machine. Par exemple, ``'i386'``. Une chaîne de " +"caractères vide est renvoyée si la valeur ne peut être déterminée." #: ../Doc/library/platform.rst:62 msgid "" "Returns the computer's network name (may not be fully qualified!). An empty " "string is returned if the value cannot be determined." msgstr "" +"Renvoie le nom de l'ordinateur sur le réseau (pas forcément pleinement " +"qualifié). Une chaîne de caractères vide est renvoyée s'il ne peut pas être " +"déterminé." #: ../Doc/library/platform.rst:68 msgid "" "Returns a single string identifying the underlying platform with as much " "useful information as possible." msgstr "" +"Renvoie une chaîne de caractère identifiant la plateforme avec le plus " +"d'informations possible." #: ../Doc/library/platform.rst:71 msgid "" "The output is intended to be *human readable* rather than machine parseable. " "It may look different on different platforms and this is intended." msgstr "" +"La valeur renvoyée est destinée à la *lecture humaine* plutôt que " +"l'interprétation machine. Il est possible qu'elle soit différente selon la " +"plateforme et c'est voulu." #: ../Doc/library/platform.rst:74 msgid "" @@ -107,16 +138,22 @@ msgid "" "SunOS will be reported as Solaris. The :func:`system_alias` function is " "used to implement this." msgstr "" +"Si *aliased* est vrai, la fonction utilisera des alias pour certaines " +"plateformes qui utilisent des noms de système qui diffèrent de leurs noms " +"communs. Par exemple, SunOS sera reconnu comme Solaris. La fonction :func:" +"`system_alias` est utilisée pour l'implémentation." #: ../Doc/library/platform.rst:79 msgid "" "Setting *terse* to true causes the function to return only the absolute " "minimum information needed to identify the platform." msgstr "" +"Si *terse* est vrai, la fonction ne renverra que l'information nécessaire à " +"l'identification de la plateforme." #: ../Doc/library/platform.rst:85 msgid "Returns the (real) processor name, e.g. ``'amdk6'``." -msgstr "" +msgstr "Renvoie le (vrai) nom du processeur. Par exemple : ``'amdk6'``." #: ../Doc/library/platform.rst:87 msgid "" @@ -124,58 +161,83 @@ msgid "" "many platforms do not provide this information or simply return the same " "value as for :func:`machine`. NetBSD does this." msgstr "" +"Une chaîne de caractères vide est renvoyée si la valeur ne peut être " +"déterminée. Prenez note que plusieurs plateformes ne fournissent pas cette " +"information ou renvoient la même valeur que la fonction :func:`machine`. " +"NetBSD agit ainsi." #: ../Doc/library/platform.rst:94 msgid "" "Returns a tuple ``(buildno, builddate)`` stating the Python build number and " "date as strings." msgstr "" +"Renvoie une paire ``(buildno, builddate)`` de chaîne de caractères " +"identifiant la version et la date de compilation de Python." #: ../Doc/library/platform.rst:100 msgid "Returns a string identifying the compiler used for compiling Python." msgstr "" +"Renvoie une chaîne de caractères identifiant le compilateur utilisé pour " +"compiler Python." #: ../Doc/library/platform.rst:105 msgid "Returns a string identifying the Python implementation SCM branch." msgstr "" +"Renvoie la chaîne de caractères identifiant la branche du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:110 msgid "" "Returns a string identifying the Python implementation. Possible return " "values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." msgstr "" +"Renvoie une chaîne de caractères identifiant l'implémentation de Python. Des " +"valeurs possibles sont : ``CPython``, ``IronPython``, ``Jython``, ``Pypy``." #: ../Doc/library/platform.rst:116 msgid "Returns a string identifying the Python implementation SCM revision." msgstr "" +"Renvoie la chaîne de caractères identifiant la révision du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:121 msgid "Returns the Python version as string ``'major.minor.patchlevel'``." msgstr "" +"Renvoie la version de Python comme une chaîne de caractères ``'major.minor." +"patchlevel'``." #: ../Doc/library/platform.rst:123 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to 0)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de 0) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:129 msgid "" "Returns the Python version as tuple ``(major, minor, patchlevel)`` of " "strings." msgstr "" +"Renvoie la version de Python comme un triplet de chaînes de caractères " +"``(major, minor, patchlevel)``." #: ../Doc/library/platform.rst:131 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to ``'0'``)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de ``'0'``) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:137 msgid "" "Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string " "is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système, par exemple, ``'2.2.0'`` ou " +"``'NT'``. Une chaîne de caractères vide signifie qu'aucune valeur ne peut " +"être déterminée." #: ../Doc/library/platform.rst:143 msgid "" @@ -189,12 +251,18 @@ msgid "" "used for some systems. It also does some reordering of the information in " "some cases where it would otherwise cause confusion." msgstr "" +"Renvoie ``(system, release, version)`` avec des alias pour les noms communs " +"de certains systèmes. Modifie aussi l'ordre de l'information pour éviter la " +"confusion." #: ../Doc/library/platform.rst:156 msgid "" "Returns the system's release version, e.g. ``'#3 on degas'``. An empty " "string is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système. Par exemple, ``'#3 on " +"degas'``. Une chaîne de caractères vide est renvoyée si aucune valeur ne " +"peut être déterminée." #: ../Doc/library/platform.rst:162 msgid "" @@ -202,6 +270,9 @@ msgid "" "containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :" "attr:`version`, :attr:`machine`, and :attr:`processor`." msgstr "" +"Interface de *uname* relativement portable. Renvoie un :func:`~collections." +"namedtuple` contenant six attributs : :attr:`system`, :attr:`node`, :attr:" +"`release`, :attr:`version`, :attr:`machine` et :attr:`processor`." #: ../Doc/library/platform.rst:166 msgid "" @@ -210,10 +281,14 @@ msgid "" "the first two attributes; :func:`os.uname` names them :attr:`sysname` and :" "attr:`nodename`." msgstr "" +"Prenez note qu'il y a un attribut supplémentaire (:attr:`processor`) par " +"rapport à la valeur de retour de :func:`os.uname`. De plus, les deux " +"premiers attributs changent de nom ; ils s'appellent :attr:`sysname` et :" +"attr:`nodename` pour la fonction :func:`os.uname`." #: ../Doc/library/platform.rst:171 msgid "Entries which cannot be determined are set to ``''``." -msgstr "" +msgstr "Les entrées qui ne peuvent pas être identifiées ont la valeur ``''``." #: ../Doc/library/platform.rst:173 msgid "Result changed from a tuple to a namedtuple." @@ -221,11 +296,11 @@ msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." #: ../Doc/library/platform.rst:178 msgid "Java Platform" -msgstr "" +msgstr "Plateforme Java" #: ../Doc/library/platform.rst:183 msgid "Version interface for Jython." -msgstr "" +msgstr "Version de l'interface pour Jython." #: ../Doc/library/platform.rst:185 msgid "" @@ -234,10 +309,15 @@ msgid "" "``(os_name, os_version, os_arch)``. Values which cannot be determined are " "set to the defaults given as parameters (which all default to ``''``)." msgstr "" +"Renvoie un *n*-uplet ``(release, vendor, vminfo, osinfo)``. *vminfo* est un " +"triplet de valeur ``(vm_name, vm_release, vm_vendor)`` et *osinfo* est un " +"triplet de valeur ``(os_name, os_version, os_arch)``. Les valeurs " +"indéterminables ont la valeur des paramètres par défaut (valeur de ``''`` " +"par défaut)." #: ../Doc/library/platform.rst:192 msgid "Windows Platform" -msgstr "" +msgstr "Plateforme Windows" #: ../Doc/library/platform.rst:197 msgid "" @@ -245,6 +325,10 @@ msgid "" "tuple ``(release, version, csd, ptype)`` referring to OS release, version " "number, CSD level (service pack) and OS type (multi/single processor)." msgstr "" +"Interroge le registre Windows pour de l'information supplémentaire et " +"renvoie un triplet de ``(release, version, csd, ptype)`` faisant référence " +"au numéro de version du SE, le numéro de version, le niveau de CSD (Service " +"Pack) et le type de SE (monoprocesseur ou multiprocesseur)." #: ../Doc/library/platform.rst:201 msgid "" @@ -254,6 +338,11 @@ msgid "" "also state *'Checked'* which means the OS version uses debugging code, i.e. " "code that checks arguments, ranges, etc." msgstr "" +"Astuce : *ptype* est ``'Uniprocessor Free'`` sur des machines NT ayant qu'un " +"seul processeur et ``'Multiprocessor Free'`` sur des machines ayant " +"plusieurs processeurs. La composante *'Free'* fait référence à l'absence de " +"code de débogage dans le SE. Au contraire, *'Checked'* indique que le SE " +"utilise du code de débogage pour valider les paramètres, etc." #: ../Doc/library/platform.rst:209 msgid "" @@ -281,7 +370,7 @@ msgstr "" #: ../Doc/library/platform.rst:230 msgid "Mac OS Platform" -msgstr "" +msgstr "Plateforme Mac OS" #: ../Doc/library/platform.rst:235 msgid "" @@ -289,16 +378,21 @@ msgid "" "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " "dev_stage, non_release_version)``." msgstr "" +"Renvoie les informations de version de Mac OS avec un triplet de ``(release, " +"versioninfo, machine)``. *versioninfo* est un triplet de ``(version, " +"dev_stage, non_release_version)``." #: ../Doc/library/platform.rst:239 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." msgstr "" +"Les entrées qui ne peuvent pas être identifiées auront la valeur ``''``. Les " +"membres du *n*-uplet sont tous des chaînes de caractères." #: ../Doc/library/platform.rst:244 msgid "Unix Platforms" -msgstr "" +msgstr "Plateformes Unix" #: ../Doc/library/platform.rst:249 msgid "This is another name for :func:`linux_distribution`." @@ -341,6 +435,10 @@ msgid "" "``(lib, version)`` which default to the given parameters in case the lookup " "fails." msgstr "" +"Tente d'identifier la version de la bibliothèque standard C à laquelle le " +"fichier exécutable (par défaut l'interpréteur Python) est lié. Renvoie une " +"paire de chaînes de caractères ``(lib, version)``. Les valeurs passées en " +"paramètre seront retournées si la recherche échoue." #: ../Doc/library/platform.rst:279 msgid "" @@ -348,7 +446,11 @@ msgid "" "versions add symbols to the executable is probably only usable for " "executables compiled using :program:`gcc`." msgstr "" +"Prenez note que cette fonction a une connaissance profonde des méthodes " +"utilisées par les versions de la bibliothèque standard C pour ajouter des " +"symboles au fichier exécutable. Elle n'est probablement utilisable qu'avec " +"des exécutables compilés avec :program:`gcc`." #: ../Doc/library/platform.rst:283 msgid "The file is read and scanned in chunks of *chunksize* bytes." -msgstr "" +msgstr "Le fichier est lu en blocs de *chunksize* octets." diff --git a/library/py_compile.po b/library/py_compile.po index 63e5ac6dc..6f8914ade 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/py_compile.rst:2 msgid ":mod:`py_compile` --- Compile Python source files" -msgstr "" +msgstr ":mod:`py_compile` — Compilation de sources Python" #: ../Doc/library/py_compile.rst:10 msgid "**Source code:** :source:`Lib/py_compile.py`" @@ -31,6 +31,9 @@ msgid "" "file from a source file, and another function used when the module source " "file is invoked as a script." msgstr "" +"Le module :mod:`py_compile` définit une fonction principale qui génère un " +"fichier de code intermédiaire à partir d'un fichier source. Il exporte " +"également la fonction qu'il exécute quand il est lancé en tant que script." #: ../Doc/library/py_compile.rst:20 msgid "" @@ -38,11 +41,15 @@ msgid "" "for shared use, especially if some of the users may not have permission to " "write the byte-code cache files in the directory containing the source code." msgstr "" +"Bien que ce module ne soit pas d'usage fréquent, il peut servir lors de " +"l'installation de bibliothèques partagées, notamment dans le cas où tous les " +"utilisateurs n'ont pas les privilèges d'écriture dans l'emplacement " +"d'installation." #: ../Doc/library/py_compile.rst:27 msgid "" "Exception raised when an error occurs while attempting to compile the file." -msgstr "" +msgstr "Exception levée quand une erreur se produit à la compilation." #: ../Doc/library/py_compile.rst:32 msgid "" @@ -68,6 +75,14 @@ msgid "" "a side-effect of import using file renaming to place the final byte-compiled " "file into place to prevent concurrent file writing issues." msgstr "" +"Si le chemin de destination, explicité par *cfile* ou choisi " +"automatiquement, est un lien symbolique, ou n'est pas un véritable fichier, " +"une exception de type :exc:`FileExistsError` est levée. Ceci, dans le but de " +"vous avertir que le système d'importation changera ces chemins en fichiers " +"s'il est autorisé à y écrire des fichiers de code intermédiaire. En effet, " +"les importations passent par un renommage final du fichier de code " +"intermédiaire vers sa destination, afin d'éviter les problèmes liés à " +"l'écriture simultanée d'un même fichier par plusieurs processus." #: ../Doc/library/py_compile.rst:52 msgid "" @@ -75,6 +90,10 @@ msgid "" "func:`compile` function. The default of ``-1`` selects the optimization " "level of the current interpreter." msgstr "" +"*optimize* règle le niveau d'optimisation. Ce paramètre est passé " +"directement à la fonction native :func:`compile`. Avec la valeur par défaut " +"de ``-1``, le code intermédiaire hérite du niveau d'optimisation de " +"l'interpréteur courant." #: ../Doc/library/py_compile.rst:56 msgid "" @@ -82,6 +101,10 @@ msgid "" "default was *file* + ``'c'`` (``'o'`` if optimization was enabled). Also " "added the *optimize* parameter." msgstr "" +"la méthode de choix de destination a changé au profit de celle décrite dans " +"la :pep:`3147`. Auparavant, le nom du fichier de code intermédiaire était " +"*file* + ``'c'`` (ou ``'o'`` lorsque les optimisations étaient actives). Le " +"paramètre *optimize* a été ajouté." #: ../Doc/library/py_compile.rst:61 msgid "" @@ -91,6 +114,12 @@ msgid "" "that :exc:`FileExistsError` is raised if *cfile* is a symlink or non-regular " "file." msgstr "" +"le code a été modifié pour faire appel à :mod:`importlib` dans les " +"opérations d'écriture du code intermédiaire. Ce module se comporte donc " +"exactement comme :mod:`importlib` en ce qui concerne, par exemple, les " +"permissions, ou le renommage final qui garantit une opération atomique. :exc:" +"`FileExistsError` est désormais levée si la destination est un lien " +"symbolique ou n'est pas un véritable fichier." #: ../Doc/library/py_compile.rst:71 msgid "" @@ -101,10 +130,16 @@ msgid "" "If ``'-'`` is the only parameter in args, the list of files is taken from " "standard input." msgstr "" +"Compile et met en cache tous les fichiers de la séquence *args*, ou ceux " +"passés comme arguments en ligne de commande si *args* est ``None``. Cette " +"fonction n'effectue aucune recherche des fichiers sources dans des dossiers. " +"Elle compile simplement les fichiers nommés un par un. Si ``'-'`` est le " +"seul paramètre dans *args*, la liste des fichiers est lue sur l'entrée " +"standard." #: ../Doc/library/py_compile.rst:78 msgid "Added support for ``'-'``." -msgstr "" +msgstr "prise en charge de ``'-'``." #: ../Doc/library/py_compile.rst:81 msgid "" @@ -112,11 +147,15 @@ msgid "" "the files named on the command line. The exit status is nonzero if one of " "the files could not be compiled." msgstr "" +"Lorsque ce module est exécuté en tant que script, la fonction :func:`main` " +"compile tous les fichiers passés comme arguments sur la ligne de commande. " +"Le code de retour vaut zéro si tous ont été compilés sans erreur." #: ../Doc/library/py_compile.rst:88 msgid "Module :mod:`compileall`" -msgstr "" +msgstr "Module :mod:`compileall`" #: ../Doc/library/py_compile.rst:89 msgid "Utilities to compile all Python source files in a directory tree." msgstr "" +"Utilitaires pour compiler des fichiers source Python dans une arborescence" diff --git a/library/resource.po b/library/resource.po index 2e984ad97..e19c9eabe 100644 --- a/library/resource.po +++ b/library/resource.po @@ -313,7 +313,7 @@ msgstr "Index" #: ../Doc/library/resource.rst:279 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/resource.rst:279 msgid "Resource" diff --git a/library/socket.po b/library/socket.po index dd620b128..356ac5036 100644 --- a/library/socket.po +++ b/library/socket.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/socket.rst:2 msgid ":mod:`socket` --- Low-level networking interface" -msgstr "" +msgstr ":mod:`socket` — Gestion réseau de bas niveau" #: ../Doc/library/socket.rst:7 msgid "**Source code:** :source:`Lib/socket.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/socket.rst:11 msgid "" diff --git a/library/stat.po b/library/stat.po index 03a0091af..8a85626bb 100644 --- a/library/stat.po +++ b/library/stat.po @@ -172,7 +172,7 @@ msgstr "" #: ../Doc/library/stat.rst:189 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/stat.rst:194 msgid "" diff --git a/library/statistics.po b/library/statistics.po index 5cf95ac46..95adefaa3 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/statistics.rst:2 msgid ":mod:`statistics` --- Mathematical statistics functions" -msgstr "" +msgstr ":mod:`statistics` — Fonctions mathématiques pour les statistiques" #: ../Doc/library/statistics.rst:12 msgid "**Source code:** :source:`Lib/statistics.py`" @@ -44,65 +44,68 @@ msgstr "" #: ../Doc/library/statistics.rst:35 msgid "Averages and measures of central location" -msgstr "" +msgstr "Moyennes et mesures de la tendance centrale" #: ../Doc/library/statistics.rst:37 msgid "" "These functions calculate an average or typical value from a population or " "sample." msgstr "" +"Ces fonctions calculent une moyenne ou une valeur typique à partir d'une " +"population ou d'un échantillon." #: ../Doc/library/statistics.rst:41 msgid ":func:`mean`" -msgstr "" +msgstr ":func:`mean`" #: ../Doc/library/statistics.rst:41 msgid "Arithmetic mean (\"average\") of data." -msgstr "" +msgstr "Moyenne arithmétique des données." #: ../Doc/library/statistics.rst:42 msgid ":func:`harmonic_mean`" -msgstr "" +msgstr ":func:`harmonic_mean`" #: ../Doc/library/statistics.rst:42 msgid "Harmonic mean of data." -msgstr "" +msgstr "Moyenne harmonique des données." #: ../Doc/library/statistics.rst:43 msgid ":func:`median`" -msgstr "" +msgstr ":func:`median`" #: ../Doc/library/statistics.rst:43 msgid "Median (middle value) of data." -msgstr "" +msgstr "Médiane (valeur centrale) des données." #: ../Doc/library/statistics.rst:44 msgid ":func:`median_low`" -msgstr "" +msgstr ":func:`median_low`" #: ../Doc/library/statistics.rst:44 msgid "Low median of data." -msgstr "" +msgstr "Médiane basse des données." #: ../Doc/library/statistics.rst:45 msgid ":func:`median_high`" -msgstr "" +msgstr ":func:`median_high`" #: ../Doc/library/statistics.rst:45 msgid "High median of data." -msgstr "" +msgstr "Médiane haute des données." #: ../Doc/library/statistics.rst:46 msgid ":func:`median_grouped`" -msgstr "" +msgstr ":func:`median_grouped`" #: ../Doc/library/statistics.rst:46 msgid "Median, or 50th percentile, of grouped data." msgstr "" +"Médiane de données groupées, calculée comme le 50\\ :sup:`e` percentile." #: ../Doc/library/statistics.rst:47 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/statistics.rst:47 msgid "Mode (most common value) of discrete data." @@ -110,55 +113,60 @@ msgstr "" #: ../Doc/library/statistics.rst:51 msgid "Measures of spread" -msgstr "" +msgstr "Mesures de la dispersion" #: ../Doc/library/statistics.rst:53 msgid "" "These functions calculate a measure of how much the population or sample " "tends to deviate from the typical or average values." msgstr "" +"Ces fonctions mesurent la tendance de la population ou d'un échantillon à " +"dévier des valeurs typiques ou des valeurs moyennes." #: ../Doc/library/statistics.rst:57 msgid ":func:`pstdev`" -msgstr "" +msgstr ":func:`pstdev`" #: ../Doc/library/statistics.rst:57 msgid "Population standard deviation of data." -msgstr "" +msgstr "Écart-type de la population." #: ../Doc/library/statistics.rst:58 msgid ":func:`pvariance`" -msgstr "" +msgstr ":func:`pvariance`" #: ../Doc/library/statistics.rst:58 msgid "Population variance of data." -msgstr "" +msgstr "Variance de la population." #: ../Doc/library/statistics.rst:59 msgid ":func:`stdev`" -msgstr "" +msgstr ":func:`stdev`" #: ../Doc/library/statistics.rst:59 msgid "Sample standard deviation of data." -msgstr "" +msgstr "Écart-type d'un échantillon." #: ../Doc/library/statistics.rst:60 msgid ":func:`variance`" -msgstr "" +msgstr ":func:`variance`" #: ../Doc/library/statistics.rst:60 msgid "Sample variance of data." -msgstr "" +msgstr "Variance d'un échantillon." #: ../Doc/library/statistics.rst:65 msgid "Function details" -msgstr "" +msgstr "Détails des fonctions" #: ../Doc/library/statistics.rst:67 msgid "" "Note: The functions do not require the data given to them to be sorted. " "However, for reading convenience, most of the examples show sorted sequences." msgstr "" +"Note : les fonctions ne requièrent pas que les données soient ordonnées. " +"Toutefois, pour en faciliter la lecture, les exemples utiliseront des " +"séquences croissantes." #: ../Doc/library/statistics.rst:72 msgid "" @@ -173,14 +181,19 @@ msgid "" "many different mathematical averages. It is a measure of the central " "location of the data." msgstr "" +"La moyenne arithmétique est la somme des valeurs divisée par le nombre " +"d'observations. Il s'agit de la valeur couramment désignée comme la " +"« moyenne » bien qu'il existe de multiples façons de définir " +"mathématiquement la moyenne. C'est une mesure de la tendance centrale des " +"données." #: ../Doc/library/statistics.rst:79 msgid "If *data* is empty, :exc:`StatisticsError` will be raised." -msgstr "" +msgstr "Une erreur :exc:`StatisticsError` est levée si *data* est vide." #: ../Doc/library/statistics.rst:81 msgid "Some examples of use:" -msgstr "" +msgstr "Exemples d'utilisation :" #: ../Doc/library/statistics.rst:100 msgid "" @@ -227,6 +240,9 @@ msgid "" "companies, with P/E (price/earning) ratios of 2.5, 3 and 10. What is the " "average P/E ratio for the investor's portfolio?" msgstr "" +"Supposons qu'un investisseur achète autant de parts dans trois compagnies " +"chacune de ratio cours sur bénéfices (*P/E*) 2,5, 3 et 10. Quel est le ratio " +"cours sur bénéfices moyen du portefeuille de l'investisseur ?" #: ../Doc/library/statistics.rst:137 msgid "" @@ -239,6 +255,8 @@ msgid "" ":exc:`StatisticsError` is raised if *data* is empty, or any element is less " "than zero." msgstr "" +"Une erreur :exc:`StatisticsError` est levée si *data* est vide ou si l'un de " +"ses éléments est inférieur à zéro." #: ../Doc/library/statistics.rst:148 msgid "" @@ -259,12 +277,16 @@ msgid "" "When the number of data points is even, the median is interpolated by taking " "the average of the two middle values:" msgstr "" +"Lorsque le nombre d'observations est pair, la médiane est interpolée en " +"calculant la moyenne des deux valeurs du milieu :" #: ../Doc/library/statistics.rst:169 msgid "" "This is suited for when your data is discrete, and you don't mind that the " "median may not be an actual data point." msgstr "" +"Cette approche est adaptée à des données discrètes à condition que vous " +"acceptiez que la médiane ne fasse pas nécessairement partie des observations." #: ../Doc/library/statistics.rst:172 msgid ":func:`median_low`, :func:`median_high`, :func:`median_grouped`" @@ -282,12 +304,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the smaller " "of the two middle values is returned." msgstr "" +"La médiane basse est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus petite des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:191 msgid "" "Use the low median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane basse lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:197 msgid "" @@ -301,12 +329,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the larger of " "the two middle values is returned." msgstr "" +"La médiane haute est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus grande des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:211 msgid "" "Use the high median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane haute lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:217 msgid "" @@ -323,30 +357,45 @@ msgid "" "etc. With the data given, the middle value falls somewhere in the class " "3.5--4.5, and interpolation is used to estimate it:" msgstr "" +"Dans l'exemple ci-dessous, les valeurs sont arrondies de sorte que chaque " +"valeur représente le milieu d'un groupe. Par exemple 1 est le milieu du " +"groupe 0,5 - 1, 2 est le milieu du groupe 1,5 - 2,5, 3 est le milieu de 2,5 -" +" 3,5, etc. Compte-tenu des valeurs ci-dessous, la valeur centrale se situe " +"quelque part dans le groupe 3,5 - 4,5 et est estimée par interpolation :" #: ../Doc/library/statistics.rst:237 msgid "" "Optional argument *interval* represents the class interval, and defaults to " "1. Changing the class interval naturally will change the interpolation:" msgstr "" +"L'argument optionnel *interval* représente la largeur de l'intervalle des " +"groupes (par défaut, 1). Changer l'intervalle des groupes change bien sûr " +"l'interpolation :" #: ../Doc/library/statistics.rst:247 msgid "" "This function does not check whether the data points are at least *interval* " "apart." msgstr "" +"Cette fonction ne vérifie pas que les valeurs sont bien séparées d'au moins " +"une fois *interval*." #: ../Doc/library/statistics.rst:252 msgid "" "Under some circumstances, :func:`median_grouped` may coerce data points to " "floats. This behaviour is likely to change in the future." msgstr "" +"Sous certaines conditions, :func:`median_grouped` peut convertir les valeurs " +"en nombres à virgule flottante. Ce comportement est susceptible de changer " +"dans le futur." #: ../Doc/library/statistics.rst:257 msgid "" "\"Statistics for the Behavioral Sciences\", Frederick J Gravetter and Larry " "B Wallnau (8th Edition)." msgstr "" +"*Statistics for the Behavioral Sciences*, Frederick J Gravetter et Larry B " +"Wallnau (8\\ :sup:`e` édition, ouvrage en anglais)." #: ../Doc/library/statistics.rst:260 msgid "" @@ -360,6 +409,10 @@ msgid "" "spreadsheet, including `this discussion `_." msgstr "" +"La fonction `SSMEDIAN `_ du tableur Gnome Gnumeric ainsi que " +"`cette discussion `_." #: ../Doc/library/statistics.rst:270 msgid "" @@ -391,6 +444,9 @@ msgid "" "Return the population standard deviation (the square root of the population " "variance). See :func:`pvariance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de la population (racine carrée de la variance de la " +"population). Voir :func:`pvariance` pour les arguments et d'autres " +"précisions." #: ../Doc/library/statistics.rst:307 msgid "" @@ -414,10 +470,13 @@ msgid "" "estimate the variance from a sample, the :func:`variance` function is " "usually a better choice." msgstr "" +"Utilisez cette fonction pour calculer la variance sur une population " +"complète. Pour estimer la variance à partir d'un échantillon, utilisez " +"plutôt :func:`variance` à la place." #: ../Doc/library/statistics.rst:321 msgid "Raises :exc:`StatisticsError` if *data* is empty." -msgstr "" +msgstr "Lève une erreur :exc:`StatisticsError` si *data* est vide." #: ../Doc/library/statistics.rst:323 ../Doc/library/statistics.rst:397 msgid "Examples:" @@ -428,6 +487,9 @@ msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *mu* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *mu* lors de l'appel de fonction pour éviter de la " +"calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:340 msgid "" @@ -438,7 +500,7 @@ msgstr "" #: ../Doc/library/statistics.rst:344 msgid "Decimals and Fractions are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:358 msgid "" @@ -446,6 +508,10 @@ msgid "" "σ². When called on a sample instead, this is the biased sample variance s², " "also known as variance with N degrees of freedom." msgstr "" +"Cette fonction renvoie la variance de la population σ² lorsqu'elle est " +"appliquée sur la population entière. Si elle est appliquée seulement sur un " +"échantillon, le résultat est alors la variance de l'échantillon s² ou " +"variance à N degrés de liberté." #: ../Doc/library/statistics.rst:362 msgid "" @@ -461,6 +527,8 @@ msgid "" "Return the sample standard deviation (the square root of the sample " "variance). See :func:`variance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de l'échantillon (racine carrée de la variance de " +"l'échantillon). Voir :func:`variance` pour les arguments et plus de détails." #: ../Doc/library/statistics.rst:382 msgid "" @@ -470,6 +538,11 @@ msgid "" "that the data is spread out; a small variance indicates it is clustered " "closely around the mean." msgstr "" +"Renvoie la variance de l'échantillon *data*, un itérable d'au moins deux " +"valeurs réelles. La variance, ou moment de second ordre, est une mesure de " +"la variabilité (ou dispersion) des données. Une variance élevée indique que " +"les données sont très dispersées ; une variance faible indique que les " +"valeurs sont resserrées autour de la moyenne." #: ../Doc/library/statistics.rst:388 msgid "" @@ -477,22 +550,33 @@ msgid "" "*data*. If it is missing or ``None`` (the default), the mean is " "automatically calculated." msgstr "" +"Si le second argument optionnel *xbar* est spécifié, celui-ci doit " +"correspondre à la moyenne de *data*. S'il n'est pas spécifié ou ``None`` " +"(par défaut), la moyenne est automatiquement calculée." #: ../Doc/library/statistics.rst:392 msgid "" "Use this function when your data is a sample from a population. To calculate " "the variance from the entire population, see :func:`pvariance`." msgstr "" +"Utilisez cette fonction lorsque vos données forment un échantillon d'une " +"population plus grande. Pour calculer la variance d'une population complète, " +"utilisez :func:`pvariance`." #: ../Doc/library/statistics.rst:395 msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." msgstr "" +"Lève une erreur :exc:`StatisticsError` si *data* contient moins de deux " +"éléments." #: ../Doc/library/statistics.rst:405 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *xbar* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *xbar* lors de l'appel de fonction pour éviter de " +"la calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:414 msgid "" @@ -500,10 +584,13 @@ msgid "" "mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " "impossible results." msgstr "" +"Cette fonction ne vérifie pas que la valeur passée dans l'argument *xbar* " +"correspond bien à la moyenne. Utiliser des valeurs arbitraires pour *xbar* " +"produit des résultats impossibles ou incorrects." #: ../Doc/library/statistics.rst:418 msgid "Decimal and Fraction values are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:432 msgid "" @@ -512,6 +599,11 @@ msgid "" "representative (e.g. independent and identically distributed), the result " "should be an unbiased estimate of the true population variance." msgstr "" +"Cela correspond à la variance s² de l'échantillon avec correction de Bessel " +"(ou variance à N-1 degrés de liberté). En supposant que les observations " +"sont représentatives de la population (c'est-à-dire indépendantes et " +"identiquement distribuées), alors le résultat est une estimation non biaisée " +"de la variance." #: ../Doc/library/statistics.rst:437 msgid "" @@ -519,6 +611,9 @@ msgid "" "func:`pvariance` function as the *mu* parameter to get the variance of a " "sample." msgstr "" +"Si vous connaissez d'avance la vraie moyenne μ de la population, vous " +"devriez la passer à :func:`pvariance` comme paramètre *mu* pour obtenir la " +"variance de l'échantillon." #: ../Doc/library/statistics.rst:442 msgid "Exceptions" @@ -526,8 +621,9 @@ msgstr "Exceptions" #: ../Doc/library/statistics.rst:444 msgid "A single exception is defined:" -msgstr "" +msgstr "Une seule exception est définie :" #: ../Doc/library/statistics.rst:448 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" +"Sous-classe de :exc:`ValueError` pour les exceptions liées aux statistiques." diff --git a/library/sunau.po b/library/sunau.po index 6f5a6b4ef..97b32a8a7 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -40,7 +40,7 @@ msgstr "" #: ../Doc/library/sunau.rst:21 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/sunau.rst:21 msgid "Contents" diff --git a/library/tarfile.po b/library/tarfile.po index 1706cdffb..3080d3b86 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:2 msgid ":mod:`tarfile` --- Read and write tar archive files" -msgstr "" +msgstr ":mod:`tarfile` — Lecture et écriture de fichiers d'archives **tar**" #: ../Doc/library/tarfile.rst:10 msgid "**Source code:** :source:`Lib/tarfile.py`" @@ -32,20 +32,29 @@ msgid "" "module to read or write :file:`.zip` files, or the higher-level functions " "in :ref:`shutil `." msgstr "" +"Le module :mod:`tarfile` rend possible la lecture et l'écriture des archives " +"*tar*, incluant celles utilisant la compression *gzip*, *bz2* et *lzma*. " +"Utilisez le module :mod:`zipfile` pour lire ou écrire des fichiers :file:" +"`zip`, ou les fonctions de niveau supérieur dans :ref:`shutil `." #: ../Doc/library/tarfile.rst:19 msgid "Some facts and figures:" -msgstr "" +msgstr "Quelques faits et chiffres :" #: ../Doc/library/tarfile.rst:21 msgid "" "reads and writes :mod:`gzip`, :mod:`bz2` and :mod:`lzma` compressed archives " "if the respective modules are available." msgstr "" +"lit et écrit des archives compressées avec :mod:`gzip`, :mod:`bz2` ou :mod:" +"`lzma` si les modules respectifs sont disponibles." #: ../Doc/library/tarfile.rst:24 msgid "read/write support for the POSIX.1-1988 (ustar) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-1988* " +"(*ustar*)." #: ../Doc/library/tarfile.rst:26 msgid "" @@ -53,10 +62,15 @@ msgid "" "*longlink* extensions, read-only support for all variants of the *sparse* " "extension including restoration of sparse files." msgstr "" +"prise en charge de la lecture/écriture pour le format GNU *tar* incluant les " +"extensions *longname* et *longlink*, prise en charge de la lecture seule de " +"toutes les variantes de l'extension *sparse* incluant la restauration des " +"fichiers discontinus." #: ../Doc/library/tarfile.rst:30 msgid "read/write support for the POSIX.1-2001 (pax) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:32 msgid "" @@ -64,10 +78,15 @@ msgid "" "character devices and block devices and is able to acquire and restore file " "information like timestamp, access permissions and owner." msgstr "" +"gère les répertoires, les fichiers normaux, les liens directs (*hard links* " +"en anglais), les liens symboliques, les tubes nommés (*FIFO* en anglais), " +"les périphériques de caractère et les périphériques de bloc et est en mesure " +"d'acquérir et de restaurer les informations du fichier comme l'horodatage, " +"les autorisations d'accès et le propriétaire." #: ../Doc/library/tarfile.rst:36 msgid "Added support for :mod:`lzma` compression." -msgstr "" +msgstr "prise en charge de la compression :mod:`lzma`." #: ../Doc/library/tarfile.rst:42 msgid "" @@ -75,16 +94,22 @@ msgid "" "information on :class:`TarFile` objects and the keyword arguments that are " "allowed, see :ref:`tarfile-objects`." msgstr "" +"Renvoie un objet :class:`TarFile` pour le nom de chemin *name*. Pour plus " +"d'informations sur les objets :class:`TarFile` et les mot-clefs arguments " +"permis, voir :ref:`tarfile-objects`." #: ../Doc/library/tarfile.rst:46 msgid "" "*mode* has to be a string of the form ``'filemode[:compression]'``, it " "defaults to ``'r'``. Here is a full list of mode combinations:" msgstr "" +"Le *mode* doit être une chaîne de caractères de la forme ``'filemode[:" +"compression]'``, par défaut à ``'r'``. Voici une liste complète des " +"combinaisons de mode :" #: ../Doc/library/tarfile.rst:50 msgid "mode" -msgstr "" +msgstr "mode" #: ../Doc/library/tarfile.rst:50 msgid "action" @@ -96,7 +121,7 @@ msgstr "``'r' ou 'r:*'``" #: ../Doc/library/tarfile.rst:52 msgid "Open for reading with transparent compression (recommended)." -msgstr "" +msgstr "Ouvre en lecture avec compression transparente (recommandé)." #: ../Doc/library/tarfile.rst:55 msgid "``'r:'``" @@ -104,7 +129,7 @@ msgstr "``'r:'``" #: ../Doc/library/tarfile.rst:55 msgid "Open for reading exclusively without compression." -msgstr "" +msgstr "Ouvre en lecture, sans compression." #: ../Doc/library/tarfile.rst:58 msgid "``'r:gz'``" @@ -112,7 +137,7 @@ msgstr "``'r:gz'``" #: ../Doc/library/tarfile.rst:58 msgid "Open for reading with gzip compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *gzip*." #: ../Doc/library/tarfile.rst:60 msgid "``'r:bz2'``" @@ -120,7 +145,7 @@ msgstr "``'r:bz2'``" #: ../Doc/library/tarfile.rst:60 msgid "Open for reading with bzip2 compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *bzip2*." #: ../Doc/library/tarfile.rst:62 msgid "``'r:xz'``" @@ -128,7 +153,7 @@ msgstr "``'r:xz'``" #: ../Doc/library/tarfile.rst:62 msgid "Open for reading with lzma compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:64 msgid "``'x'`` or ``'x:'``" @@ -139,6 +164,8 @@ msgid "" "Create a tarfile exclusively without compression. Raise an :exc:" "`FileExistsError` exception if it already exists." msgstr "" +"Crée un fichier *tar* sans compression. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:69 msgid "``'x:gz'``" @@ -149,6 +176,8 @@ msgid "" "Create a tarfile with gzip compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *gzip*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:73 msgid "``'x:bz2'``" @@ -159,6 +188,8 @@ msgid "" "Create a tarfile with bzip2 compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *bzip2*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:77 msgid "``'x:xz'``" @@ -169,6 +200,8 @@ msgid "" "Create a tarfile with lzma compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *lzma*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:81 msgid "``'a' or 'a:'``" @@ -179,6 +212,8 @@ msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "" +"Ouvre pour ajouter à la fin, sans compression. Le fichier est créé s'il " +"n'existe pas." #: ../Doc/library/tarfile.rst:84 msgid "``'w' or 'w:'``" @@ -186,7 +221,7 @@ msgstr "``'w' ou 'w:'``" #: ../Doc/library/tarfile.rst:84 msgid "Open for uncompressed writing." -msgstr "" +msgstr "Ouvre en écriture, sans compression." #: ../Doc/library/tarfile.rst:86 msgid "``'w:gz'``" @@ -194,7 +229,7 @@ msgstr "``'w:gz'``" #: ../Doc/library/tarfile.rst:86 msgid "Open for gzip compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *gzip*." #: ../Doc/library/tarfile.rst:88 msgid "``'w:bz2'``" @@ -202,7 +237,7 @@ msgstr "``'w:bz2'``" #: ../Doc/library/tarfile.rst:88 msgid "Open for bzip2 compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *bzip2*." #: ../Doc/library/tarfile.rst:90 msgid "``'w:xz'``" @@ -210,7 +245,7 @@ msgstr "``'w:xz'``" #: ../Doc/library/tarfile.rst:90 msgid "Open for lzma compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:93 msgid "" @@ -219,12 +254,20 @@ msgid "" "`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a compression " "method is not supported, :exc:`CompressionError` is raised." msgstr "" +"Notez que les combinaisons ``'a:gz'``, ``'a:bz2'`` ou ``'a:xz'`` ne sont pas " +"possibles. Si le mode n'est pas adapté pour ouvrir un certain fichier " +"(compressé) pour la lecture, une exception :exc:`ReadError` est levée. " +"Utilisez le mode ``'r'`` pour éviter cela. Si une méthode de compression " +"n'est pas prise en charge, :exc:`CompressionError` est levée." #: ../Doc/library/tarfile.rst:98 msgid "" "If *fileobj* is specified, it is used as an alternative to a :term:`file " "object` opened in binary mode for *name*. It is supposed to be at position 0." msgstr "" +"Si *fileobj* est spécifié, il est utilisé comme une alternative au :term:" +"`file object` ouvert en mode binaire pour *name*. Il est censé être à la " +"position 0." #: ../Doc/library/tarfile.rst:101 msgid "" @@ -232,6 +275,9 @@ msgid "" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" +"Pour les modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, " +"``'x:bz2'``, :func:`tarfile.open` accepte l'argument nommé *compresslevel* " +"(par défaut à ``9``) pour spécifier le niveau de compression du fichier." #: ../Doc/library/tarfile.rst:105 msgid "" @@ -246,14 +292,25 @@ msgid "" "does not allow random access, see :ref:`tar-examples`. The currently " "possible modes:" msgstr "" +"Pour des cas particuliers, il existe un deuxième format pour le *mode* : " +"``'filemode[compression]'``. :func:`tarfile.open` renvoie un objet :class:" +"`TarFile` qui traite ses données comme un flux de blocs. Aucun retour en " +"arrière ne sera effectué lors de la lecture du fichier. S'il est donné, " +"*fileobj* peut être n'importe quel objet qui a une méthode :meth:`read` ou :" +"meth:`write` (selon le *mode*). Le paramètre *bufsize* spécifie la taille du " +"bloc et vaut par défaut ``20 * 512`` octets. Utilisez cette variante en " +"combinaison avec par exemple ``sys.stdin``, une connexion (*socket* en " +"anglais) :term:`file object` ou un dispositif de bande. Cependant, un tel " +"objet :class:`TarFile` est limité en ce qu'il ne permet pas l'accès " +"aléatoire, voir :ref:`tar-examples`. Les modes actuellement possibles :" #: ../Doc/library/tarfile.rst:117 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/tarfile.rst:117 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/tarfile.rst:119 msgid "``'r|*'``" @@ -262,6 +319,8 @@ msgstr "``'r|*'``" #: ../Doc/library/tarfile.rst:119 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" +"Ouvre un *flux* des blocs de *tar* en lecture avec une compression " +"transparente." #: ../Doc/library/tarfile.rst:122 msgid "``'r|'``" @@ -269,7 +328,7 @@ msgstr "``'r|'``" #: ../Doc/library/tarfile.rst:122 msgid "Open a *stream* of uncompressed tar blocks for reading." -msgstr "" +msgstr "Ouvre un *flux* de blocs *tar* non compressés en lecture." #: ../Doc/library/tarfile.rst:125 msgid "``'r|gz'``" @@ -277,7 +336,7 @@ msgstr "``'r|gz'``" #: ../Doc/library/tarfile.rst:125 msgid "Open a gzip compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un flux compressé avec *gzip* en lecture." #: ../Doc/library/tarfile.rst:128 msgid "``'r|bz2'``" @@ -285,7 +344,7 @@ msgstr "``'r|bz2'``" #: ../Doc/library/tarfile.rst:128 msgid "Open a bzip2 compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en lecture." #: ../Doc/library/tarfile.rst:131 msgid "``'r|xz'``" @@ -293,7 +352,7 @@ msgstr "``'r|xz'``" #: ../Doc/library/tarfile.rst:131 msgid "Open an lzma compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en lecture." #: ../Doc/library/tarfile.rst:134 msgid "``'w|'``" @@ -301,7 +360,7 @@ msgstr "``'w|'``" #: ../Doc/library/tarfile.rst:134 msgid "Open an uncompressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* non compressé en écriture." #: ../Doc/library/tarfile.rst:136 msgid "``'w|gz'``" @@ -309,7 +368,7 @@ msgstr "``'w|gz'``" #: ../Doc/library/tarfile.rst:136 msgid "Open a gzip compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *gzip* en écriture." #: ../Doc/library/tarfile.rst:139 msgid "``'w|bz2'``" @@ -317,7 +376,7 @@ msgstr "``'w|bz2'``" #: ../Doc/library/tarfile.rst:139 msgid "Open a bzip2 compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en écriture." #: ../Doc/library/tarfile.rst:142 msgid "``'w|xz'``" @@ -325,7 +384,7 @@ msgstr "``'w|xz'``" #: ../Doc/library/tarfile.rst:142 msgid "Open an lzma compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en écriture." #: ../Doc/library/tarfile.rst:146 ../Doc/library/tarfile.rst:324 msgid "The ``'x'`` (exclusive creation) mode was added." @@ -334,13 +393,16 @@ msgstr "Le mode ``'x'`` (création exclusive) est créé." #: ../Doc/library/tarfile.rst:149 ../Doc/library/tarfile.rst:327 #: ../Doc/library/tarfile.rst:498 msgid "The *name* parameter accepts a :term:`path-like object`." -msgstr "" +msgstr "le paramètre *name* accepte un :term:`path-like object`." #: ../Doc/library/tarfile.rst:155 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." msgstr "" +"Classe pour la lecture et l'écriture d'archives *tar*. N'utilisez pas cette " +"classe directement, préférez :func:`tarfile.open`. Voir :ref:`tarfile-" +"objects`." #: ../Doc/library/tarfile.rst:161 msgid "" @@ -350,49 +412,61 @@ msgstr "" #: ../Doc/library/tarfile.rst:165 msgid "The :mod:`tarfile` module defines the following exceptions:" -msgstr "" +msgstr "Le module :mod:`tarfile` définit les exceptions suivantes :" #: ../Doc/library/tarfile.rst:170 msgid "Base class for all :mod:`tarfile` exceptions." -msgstr "" +msgstr "Classe de base pour toutes les exceptions du module :mod:`tarfile`." #: ../Doc/library/tarfile.rst:175 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." msgstr "" +"Est levée lors de l'ouverture d'une archive *tar*, qui ne peut pas être " +"gérée par le module :mod:`tarfile` ou est invalide." #: ../Doc/library/tarfile.rst:181 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" +"Est levée lorsqu'une méthode de compression n'est pas prise en charge ou " +"lorsque les données ne peuvent pas être décodées correctement." #: ../Doc/library/tarfile.rst:187 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." msgstr "" +"Est levée pour les limitations typiques des objets de type flux :class:" +"`TarFile`." #: ../Doc/library/tarfile.rst:193 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" +"Est levée pour des erreurs *non-fatales* lors de l'utilisation de :meth:" +"`TarFile.extract`, mais uniquement si :attr:`TarFile.errorlevel`\\ `` == 2``." #: ../Doc/library/tarfile.rst:199 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" +"Est levée par :meth:`TarInfo.frombuf` si le tampon qu'il obtient n'est pas " +"valide." #: ../Doc/library/tarfile.rst:202 msgid "The following constants are available at the module level:" -msgstr "" +msgstr "Les constantes suivantes sont disponibles au niveau du module :" #: ../Doc/library/tarfile.rst:206 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" +"L'encodage des caractères par défaut est ``'utf-8'`` sous Windows, sinon la " +"valeur renvoyée par :func:`sys.getfilesystemencoding`." #: ../Doc/library/tarfile.rst:210 msgid "" @@ -400,18 +474,21 @@ msgid "" "`tarfile` module is able to create. See section :ref:`tar-formats` for " "details." msgstr "" +"Chacune des constantes suivantes définit un format d'archive *tar* que le " +"module :mod:`tarfile` est capable de créer. Voir la section :ref:`tar-" +"formats` pour plus de détails." #: ../Doc/library/tarfile.rst:217 msgid "POSIX.1-1988 (ustar) format." -msgstr "" +msgstr "Le format *POSIX.1-1988* (*ustar*)." #: ../Doc/library/tarfile.rst:222 msgid "GNU tar format." -msgstr "" +msgstr "Le format GNU *tar*." #: ../Doc/library/tarfile.rst:227 msgid "POSIX.1-2001 (pax) format." -msgstr "" +msgstr "Le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:232 msgid "" @@ -421,35 +498,41 @@ msgstr "" #: ../Doc/library/tarfile.rst:238 msgid "Module :mod:`zipfile`" -msgstr "" +msgstr "Module :mod:`zipfile`" #: ../Doc/library/tarfile.rst:238 msgid "Documentation of the :mod:`zipfile` standard module." -msgstr "" +msgstr "Documentation du module standard :mod:`zipfile`." #: ../Doc/library/tarfile.rst:242 msgid ":ref:`archiving-operations`" -msgstr "" +msgstr ":ref:`archiving-operations`" #: ../Doc/library/tarfile.rst:241 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" +"Documentation des outils d'archivage de haut niveau fournis par le module " +"standard :mod:`shutil`." #: ../Doc/library/tarfile.rst:244 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" +"`Manuel GNU *tar*, format *tar* basique (en anglais) `_" #: ../Doc/library/tarfile.rst:245 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" +"Documentation pour les fichiers d'archive *tar*, y compris les extensions " +"*tar* GNU." #: ../Doc/library/tarfile.rst:251 msgid "TarFile Objects" -msgstr "" +msgstr "Les objets *TarFile*" #: ../Doc/library/tarfile.rst:253 msgid "" @@ -459,6 +542,12 @@ msgid "" "in a tar archive several times. Each archive member is represented by a :" "class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" +"L'objet :class:`TarFile` fournit une interface vers une archive *tar*. Une " +"archive *tar* est une séquence de blocs. Un membre d'archive (un fichier " +"stocké) est composé d'un bloc d'en-tête suivi des blocs de données. Il est " +"possible de stocker plusieurs fois un fichier dans une archive *tar*. Chaque " +"membre d'archive est représenté par un objet :class:`TarInfo`, voir :ref:" +"`tarinfo-objects` pour plus de détails." #: ../Doc/library/tarfile.rst:259 msgid "" @@ -468,16 +557,23 @@ msgid "" "for writing will not be finalized; only the internally used file object will " "be closed. See the :ref:`tar-examples` section for a use case." msgstr "" +"Un objet :class:`TarFile` peut être utilisé comme gestionnaire de contexte " +"dans une instruction :keyword:`with`. Il sera automatiquement fermé une fois " +"le bloc terminé. Veuillez noter qu'en cas d'exception, une archive ouverte " +"en écriture ne sera pas finalisée ; seul l'objet fichier utilisé en interne " +"sera fermé. Voir la section :ref:`tar-examples` pour un cas d'utilisation." #: ../Doc/library/tarfile.rst:265 msgid "Added support for the context management protocol." -msgstr "" +msgstr "Ajout de la prise en charge du protocole de gestion de contexte." #: ../Doc/library/tarfile.rst:270 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" +"Tous les arguments suivants sont facultatifs et sont également accessibles " +"en tant qu'instance d'attributs." #: ../Doc/library/tarfile.rst:273 msgid "" @@ -485,6 +581,9 @@ msgid "" "object`. It can be omitted if *fileobj* is given. In this case, the file " "object's :attr:`name` attribute is used if it exists." msgstr "" +"Le *name* est le chemin d'accès de l'archive. *name* peut être un :term:" +"`path-like object`. Il peut être omis si *fileobj* est donné. Dans ce cas, " +"l'attribut :attr:`name` de l'objet fichier est utilisé s'il existe." #: ../Doc/library/tarfile.rst:277 msgid "" @@ -493,6 +592,10 @@ msgid "" "existing one, or ``'x'`` to create a new file only if it does not already " "exist." msgstr "" +"Le *mode* est soit ``'r'`` pour lire à partir d'une archive existante, " +"``'a'`` pour ajouter des données à un fichier existant, ``'w'`` pour créer " +"un nouveau fichier en écrasant un existant, ou ``'x'`` pour créer un nouveau " +"fichier uniquement s'il n'existe pas déjà." #: ../Doc/library/tarfile.rst:281 msgid "" @@ -500,10 +603,13 @@ msgid "" "determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " "from position 0." msgstr "" +"Si *fileobj* est fourni, il est utilisé pour lire ou écrire des données. " +"S'il peut être déterminé, le *mode* est remplacé par le mode de *fileobj*. " +"*fileobj* sera utilisé à partir de la position 0." #: ../Doc/library/tarfile.rst:287 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." -msgstr "" +msgstr "*fileobj* n'est pas fermé, lorsque :class:`TarFile` est fermé." #: ../Doc/library/tarfile.rst:289 msgid "" @@ -517,6 +623,8 @@ msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" +"L'argument *tarinfo* peut être utilisé pour remplacer la classe par défaut :" +"class:`TarInfo` par une autre." #: ../Doc/library/tarfile.rst:296 msgid "" @@ -524,6 +632,10 @@ msgid "" "archive. If it is :const:`True`, add the content of the target files to the " "archive. This has no effect on systems that do not support symbolic links." msgstr "" +"Si *dereference* est :const:`False`, ajoute des liens symboliques et " +"physiques à l'archive. Si c'est :const:`True`, ajoute le contenu des " +"fichiers cibles à l'archive. Cela n'a aucun effet sur les systèmes qui ne " +"prennent pas en charge les liens symboliques." #: ../Doc/library/tarfile.rst:300 msgid "" @@ -532,12 +644,18 @@ msgid "" "get as many members as possible. This is only useful for reading " "concatenated or damaged archives." msgstr "" +"Si *ignore_zeros* est :const:`False`, traite un bloc vide comme la fin de " +"l'archive. Si c'est le cas :const:`True`, saute les blocs vides (et " +"invalides) et essaye d'obtenir autant de membres que possible. Ceci n'est " +"utile que pour lire des archives concaténées ou endommagées." #: ../Doc/library/tarfile.rst:304 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." msgstr "" +"*debug* peut être défini de ``0`` (aucun message de débogage) à ``3`` (tous " +"les messages de débogage). Les messages sont écrits dans ``sys.stderr``." #: ../Doc/library/tarfile.rst:307 msgid "" @@ -547,6 +665,12 @@ msgid "" "`OSError` exceptions. If ``2``, all *non-fatal* errors are raised as :exc:" "`TarError` exceptions as well." msgstr "" +"Si *errorlevel* est ``0``, toutes les erreurs sont ignorées lors de " +"l'utilisation de :meth:`TarFile.extract`. Néanmoins, ils apparaissent comme " +"des messages d'erreur dans la sortie de débogage, lorsque le débogage est " +"activé. Si ``1``, toutes les erreurs *fatales* sont déclenchées comme des " +"exceptions :exc:`OSError`. Si ``2``, toutes les erreurs *non-fatales* sont " +"déclenchées comme des exceptions :exc:`TarError` également." #: ../Doc/library/tarfile.rst:313 msgid "" @@ -555,46 +679,66 @@ msgid "" "to be handled. The default settings will work for most users. See section :" "ref:`tar-unicode` for in-depth information." msgstr "" +"Les arguments *encoding* et *errors* définissent l'encodage de caractères à " +"utiliser pour lire ou écrire l'archive et comment les erreurs de conversion " +"vont être traitées. Les paramètres par défaut fonctionneront pour la plupart " +"des utilisateurs. Voir la section :ref:`tar-unicode` pour des informations " +"détaillées." #: ../Doc/library/tarfile.rst:318 msgid "" "The *pax_headers* argument is an optional dictionary of strings which will " "be added as a pax global header if *format* is :const:`PAX_FORMAT`." msgstr "" +"L'argument *pax_headers* est un dictionnaire facultatif de chaînes de " +"caractères qui sera ajouté en tant qu'en-tête global *pax* si le *format* " +"est :const:`PAX_FORMAT`." #: ../Doc/library/tarfile.rst:321 ../Doc/library/tarfile.rst:551 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" +"Utilise ``'surrogateescape'`` comme valeur par défaut pour l'argument " +"*errors*." #: ../Doc/library/tarfile.rst:333 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" +"Constructeur alternatif. La fonction :func:`tarfile.open` est en fait un " +"raccourci vers cette méthode de classe." #: ../Doc/library/tarfile.rst:339 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." msgstr "" +"Renvoie un objet :class:`TarInfo` pour le membre *name*. Si *name* est " +"introuvable dans l'archive, :exc:`KeyError` est levée." #: ../Doc/library/tarfile.rst:344 msgid "" "If a member occurs more than once in the archive, its last occurrence is " "assumed to be the most up-to-date version." msgstr "" +"Si un membre apparaît plus d'une fois dans l'archive, sa dernière occurrence " +"est supposée être la version la plus récente." #: ../Doc/library/tarfile.rst:350 msgid "" "Return the members of the archive as a list of :class:`TarInfo` objects. The " "list has the same order as the members in the archive." msgstr "" +"Renvoie les membres de l'archive sous la forme d'une liste d'objets :class:" +"`TarInfo`. La liste a le même ordre que les membres de l'archive." #: ../Doc/library/tarfile.rst:356 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." msgstr "" +"Renvoie les membres comme une liste de leurs noms. Il a le même ordre que la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:362 msgid "" @@ -603,10 +747,15 @@ msgid "" "similar to that of :program:`ls -l` is produced. If optional *members* is " "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" +"Imprime une table des matières dans ``sys.stdout``. Si *verbose* est :const:" +"`False`, seuls les noms des membres sont imprimés. Si c'est :const:`True`, " +"une sortie similaire à celle de :program:`ls -l` est produite. Si des " +"*membres* facultatifs sont fournis, il doit s'agir d'un sous-ensemble de la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:367 msgid "Added the *members* parameter." -msgstr "" +msgstr "Ajout du paramètre *members*." #: ../Doc/library/tarfile.rst:373 msgid "" @@ -614,6 +763,9 @@ msgid "" "class:`TarFile` is opened for reading. Return :const:`None` if there is no " "more available." msgstr "" +"Renvoie le membre suivant de l'archive en tant qu'objet :class:`TarInfo`, " +"lorsque la classe :class:`TarFile` est ouverte en lecture. Renvoie :const:" +"`None` s'il n'y a pas." #: ../Doc/library/tarfile.rst:380 msgid "" @@ -626,6 +778,15 @@ msgid "" "directory's permissions do not allow writing, extracting files to it will " "fail." msgstr "" +"Extrait tous les membres de l'archive vers le répertoire de travail actuel " +"ou le répertoire *chemin*. Si des *membres* facultatifs sont fournis, il " +"doit s'agir d'un sous-ensemble de la liste renvoyée par :meth:`getmembers`. " +"Les informations d'annuaire telles que le propriétaire, l'heure de " +"modification et les autorisations sont définies une fois tous les membres " +"extraits. Cela est fait pour contourner deux problèmes : l'heure de " +"modification d'un répertoire est réinitialisée chaque fois qu'un fichier y " +"est créé. Et, si les autorisations d'un répertoire ne permettent pas " +"l'écriture, l'extraction de fichiers échoue." #: ../Doc/library/tarfile.rst:388 ../Doc/library/tarfile.rst:414 msgid "" @@ -633,6 +794,9 @@ msgid "" "tarfile are used to set the owner/group for the extracted files. Otherwise, " "the named values from the tarfile are used." msgstr "" +"Si *numeric_owner* est :const:`True`, les numéros *uid* et *gid* du fichier " +"*tar* sont utilisés pour définir le propriétaire et le groupe des fichiers " +"extraits. Sinon, les valeurs nommées du fichier *tar* sont utilisées." #: ../Doc/library/tarfile.rst:394 msgid "" @@ -641,10 +805,14 @@ msgid "" "absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." "\"``." msgstr "" +"Ne jamais extraire des archives de sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*chemin*, par exemple : les membres qui ont des noms de fichiers absolus " +"commençant par ``\"/\"`` ou des noms de fichiers avec deux points ``\"..\"``." #: ../Doc/library/tarfile.rst:399 ../Doc/library/tarfile.rst:430 msgid "Added the *numeric_owner* parameter." -msgstr "" +msgstr "Ajout du paramètre *numeric_owner*." #: ../Doc/library/tarfile.rst:402 ../Doc/library/tarfile.rst:433 msgid "The *path* parameter accepts a :term:`path-like object`." @@ -660,20 +828,30 @@ msgid "" "different directory using *path*. *path* may be a :term:`path-like object`. " "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" +"Extrait un membre de l'archive vers le répertoire de travail actuel, en " +"utilisant son nom complet. Les informations de son fichier sont extraites " +"aussi précisément que possible. Le membre peut être un nom de fichier ou un " +"objet :class:`TarInfo`. Vous pouvez spécifier un répertoire différent en " +"utilisant *path*. *path* peut être un :term:`path-like object`. Les " +"attributs de fichier (propriétaire, *mtime*, mode) sont définis sauf si " +"*set_attrs* est faux." #: ../Doc/library/tarfile.rst:420 msgid "" "The :meth:`extract` method does not take care of several extraction issues. " "In most cases you should consider using the :meth:`extractall` method." msgstr "" +"La méthode :meth:`extract` ne prend pas en charge plusieurs problèmes " +"d'extraction. Dans la plupart des cas, vous devriez envisager d'utiliser la " +"méthode :meth:`extractall`." #: ../Doc/library/tarfile.rst:425 msgid "See the warning for :meth:`extractall`." -msgstr "" +msgstr "Voir l'avertissement pour :meth:`extractall`." #: ../Doc/library/tarfile.rst:427 msgid "Added the *set_attrs* parameter." -msgstr "" +msgstr "Ajout du paramètre *set_attrs*." #: ../Doc/library/tarfile.rst:439 msgid "" @@ -685,7 +863,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:444 msgid "Return an :class:`io.BufferedReader` object." -msgstr "" +msgstr "Renvoie un objet :class:`io.BufferedReader`." #: ../Doc/library/tarfile.rst:450 msgid "" @@ -705,7 +883,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:463 msgid "Added the *filter* parameter." -msgstr "" +msgstr "Ajout du paramètre *filter*." #: ../Doc/library/tarfile.rst:466 msgid "" @@ -720,6 +898,11 @@ msgid "" "read from it and added to the archive. You can create :class:`TarInfo` " "objects directly, or by using :meth:`gettarinfo`." msgstr "" +"Ajoute l'objet :class:`TarInfo` *tarinfo* à l'archive. Si *fileobj* est " +"donné, il convient que ce soit un :term:`fichier binaire`, et les octets " +"``tarinfo.size`` sont lus à partir de celui-ci et ajoutés à l'archive. Vous " +"pouvez créer des objets :class:`TarInfo` directement, ou en utilisant :meth:" +"`gettarinfo`." #: ../Doc/library/tarfile.rst:481 msgid "" @@ -731,6 +914,13 @@ msgid "" "from *fileobj*’s :attr:`~io.FileIO.name` attribute, or the *name* argument. " "The name should be a text string." msgstr "" +"Crée un objet :class:`TarInfo` à partir du résultat de :func:`os.stat` ou " +"équivalent sur un fichier existant. Le fichier est soit nommé par *name*, " +"soit spécifié comme :term:`file object` *fileobj* avec un descripteur de " +"fichier. *name* peut être un :term:`objet` semblable à un chemin. S'il est " +"donné, *arcname* spécifie un autre nom pour le fichier dans l'archive, " +"sinon, le nom est tiré de l'attribut *fileobj* :attr:`~io.FileIO.name`, ou " +"de l'argument *name*. Le nom doit être une chaîne de texte." #: ../Doc/library/tarfile.rst:490 msgid "" @@ -741,20 +931,30 @@ msgid "" "`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be modified, in which " "case *arcname* could be a dummy string." msgstr "" +"Vous pouvez modifier certains des attributs de :class:`TarInfo` avant de les " +"ajouter en utilisant :meth:`addfile`. Si l'objet fichier n'est pas un objet " +"fichier ordinaire positionné au début du fichier, des attributs tels que :" +"attr:`~TarInfo.size` peuvent nécessiter une modification. C'est le cas pour " +"des objets tels que :class:`~gzip.GzipFile`. Le :attr:`~TarInfo.name` peut " +"également être modifié, auquel cas *arcname* pourrait être une chaîne " +"factice." #: ../Doc/library/tarfile.rst:504 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" +"Ferme le :class:`TarFile`. En mode écriture, deux blocs de finition à zéro " +"sont ajoutés à l'archive." #: ../Doc/library/tarfile.rst:510 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'en-têtes globaux *pax*." #: ../Doc/library/tarfile.rst:517 msgid "TarInfo Objects" -msgstr "" +msgstr "Les objets *TarInfo*" #: ../Doc/library/tarfile.rst:519 msgid "" @@ -763,56 +963,69 @@ msgid "" "permissions, owner etc.), it provides some useful methods to determine its " "type. It does *not* contain the file's data itself." msgstr "" +"Un objet :class:`TarInfo` représente un membre dans un :class:`TarFile`. En " +"plus de stocker tous les attributs requis d'un fichier (comme le type de " +"fichier, la taille, l'heure, les autorisations, le propriétaire, etc.), il " +"fournit quelques méthodes utiles pour déterminer son type. Il ne contient " +"pas les données du fichier lui-même." #: ../Doc/library/tarfile.rst:524 msgid "" ":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" "`getmember`, :meth:`getmembers` and :meth:`gettarinfo`." msgstr "" +"Les objets :class:`TarInfo` sont renvoyés par les méthodes de :class:" +"`TarFile` :meth:`getmember`, :meth:`getmembers` et :meth:`gettarinfo`." #: ../Doc/library/tarfile.rst:530 msgid "Create a :class:`TarInfo` object." -msgstr "" +msgstr "Crée un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:535 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" +"Crée et renvoie un objet :class:`TarInfo` à partir de la chaîne tampon *buf*." #: ../Doc/library/tarfile.rst:537 msgid "Raises :exc:`HeaderError` if the buffer is invalid." -msgstr "" +msgstr "Lève :exc:`HeaderError` si le tampon n'est pas valide." #: ../Doc/library/tarfile.rst:542 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" +"Lit le membre suivant dans l'objet :class:`TarFile` *tarfile* et le renvoie " +"comme un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:548 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." msgstr "" +"Crée un tampon de chaîne de caractères à partir d'un objet :class:`TarInfo`. " +"Pour plus d'informations sur les arguments, voir le constructeur de la " +"classe :class:`TarFile`." #: ../Doc/library/tarfile.rst:555 msgid "A ``TarInfo`` object has the following public data attributes:" -msgstr "" +msgstr "Un objet ``TarInfo`` a les attributs de données publics suivants :" #: ../Doc/library/tarfile.rst:560 msgid "Name of the archive member." -msgstr "" +msgstr "Nom du membre de l'archive." #: ../Doc/library/tarfile.rst:565 msgid "Size in bytes." -msgstr "" +msgstr "La taille en octets." #: ../Doc/library/tarfile.rst:570 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/tarfile.rst:575 msgid "Permission bits." -msgstr "" +msgstr "Bits d'autorisation." #: ../Doc/library/tarfile.rst:580 msgid "" @@ -822,74 +1035,88 @@ msgid "" "const:`GNUTYPE_SPARSE`. To determine the type of a :class:`TarInfo` object " "more conveniently, use the ``is*()`` methods below." msgstr "" +"Type de fichier. *type* est généralement l'une des constantes suivantes : :" +"const:`REGTYPE`, :const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :" +"const:`DIRTYPE`, :const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :" +"const:`BLKTYPE`, :const:`GNUTYPE_SPARSE`. Pour déterminer plus facilement le " +"type d'un objet :class:`TarInfo`, utilisez les méthodes ``is*()`` ci-dessous." #: ../Doc/library/tarfile.rst:589 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." msgstr "" +"Nom du fichier cible, qui n'est présent que dans les objets :class:" +"`TarInfo` de type :const:`LNKTYPE` et :const:`SYMTYPE`." #: ../Doc/library/tarfile.rst:595 msgid "User ID of the user who originally stored this member." -msgstr "" +msgstr "ID de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:600 msgid "Group ID of the user who originally stored this member." -msgstr "" +msgstr "ID de groupe de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:605 msgid "User name." -msgstr "" +msgstr "Nom d'utilisateur." #: ../Doc/library/tarfile.rst:610 msgid "Group name." -msgstr "" +msgstr "Nom de groupe." #: ../Doc/library/tarfile.rst:615 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'un en-tête étendu *pax* " +"associé." #: ../Doc/library/tarfile.rst:618 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" +"Un objet :class:`TarInfo` fournit également des méthodes de requête " +"pratiques :" #: ../Doc/library/tarfile.rst:623 msgid "Return :const:`True` if the :class:`Tarinfo` object is a regular file." msgstr "" +"Renvoie :const:`True` si l'objet :class:`Tarinfo` est un fichier normal." #: ../Doc/library/tarfile.rst:628 msgid "Same as :meth:`isfile`." -msgstr "" +msgstr "Identique à :meth:`isfile`." #: ../Doc/library/tarfile.rst:633 msgid "Return :const:`True` if it is a directory." -msgstr "" +msgstr "Renvoie :const:`True` si c'est un dossier." #: ../Doc/library/tarfile.rst:638 msgid "Return :const:`True` if it is a symbolic link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien symbolique." #: ../Doc/library/tarfile.rst:643 msgid "Return :const:`True` if it is a hard link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien physique." #: ../Doc/library/tarfile.rst:648 msgid "Return :const:`True` if it is a character device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de caractères." #: ../Doc/library/tarfile.rst:653 msgid "Return :const:`True` if it is a block device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de bloc." #: ../Doc/library/tarfile.rst:658 msgid "Return :const:`True` if it is a FIFO." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un tube nommé (*FIFO*)." #: ../Doc/library/tarfile.rst:663 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" +"Renvoie :const:`True` s'il s'agit d'un périphérique de caractères, d'un " +"périphérique de bloc ou d'un tube nommé." #: ../Doc/library/tarfile.rst:670 msgid "Command-Line Interface" @@ -900,12 +1127,16 @@ msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" +"Le module :mod:`tarfile` fournit une interface de ligne de commande simple " +"pour interagir avec les archives *tar*." #: ../Doc/library/tarfile.rst:677 msgid "" "If you want to create a new tar archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" msgstr "" +"Si vous souhaitez créer une nouvelle archive *tar*, spécifiez son nom après " +"l'option :option:`-c`, puis répertorie-le ou les noms de fichiers à inclure :" #: ../Doc/library/tarfile.rst:684 msgid "Passing a directory is also acceptable:" @@ -916,16 +1147,22 @@ msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" msgstr "" +"Si vous souhaitez extraire une archive *tar* dans le répertoire courant, " +"utilisez l'option :option:`-e` :" #: ../Doc/library/tarfile.rst:697 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" +"Vous pouvez également extraire une archive *tar* dans un autre répertoire en " +"passant le nom du répertoire :" #: ../Doc/library/tarfile.rst:704 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" +"Pour une liste des fichiers dans une archive *tar*, utilisez l'option :" +"option:`-l` :" #: ../Doc/library/tarfile.rst:712 msgid "Command-line options" @@ -933,24 +1170,26 @@ msgstr "Options de la ligne de commande" #: ../Doc/library/tarfile.rst:717 msgid "List files in a tarfile." -msgstr "" +msgstr "Liste les fichiers dans une archive *tar*." #: ../Doc/library/tarfile.rst:722 msgid "Create tarfile from source files." -msgstr "" +msgstr "Crée une archive *tar* à partir des fichiers sources." #: ../Doc/library/tarfile.rst:727 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" +"Extrait l'archive *tar* dans le répertoire courant si *output_dir* n'est pas " +"spécifié." #: ../Doc/library/tarfile.rst:732 msgid "Test whether the tarfile is valid or not." -msgstr "" +msgstr "Teste si l'archive *tar* est valide ou non." #: ../Doc/library/tarfile.rst:736 msgid "Verbose output." -msgstr "" +msgstr "Sortie verbeuse." #: ../Doc/library/tarfile.rst:741 msgid "Examples" @@ -959,42 +1198,53 @@ msgstr "Exemples" #: ../Doc/library/tarfile.rst:743 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" +"Comment extraire une archive *tar* dans le dossier de travail courant ::" #: ../Doc/library/tarfile.rst:750 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" msgstr "" +"Comment extraire un sous-ensemble d'une archive *tar* avec :meth:`TarFile." +"extractall` en utilisant une fonction de générateur au lieu d'une liste ::" #: ../Doc/library/tarfile.rst:765 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" +"Comment créer une archive *tar* non compressée à partir d'une liste de noms " +"de fichiers ::" #: ../Doc/library/tarfile.rst:773 msgid "The same example using the :keyword:`with` statement::" -msgstr "" +msgstr "Le même exemple en utilisant l'instruction :keyword:`with` ::" #: ../Doc/library/tarfile.rst:780 msgid "" "How to read a gzip compressed tar archive and display some member " "information::" msgstr "" +"Comment lire une archive *tar* compressée avec *gzip* et afficher des " +"informations des membres ::" #: ../Doc/library/tarfile.rst:794 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" +"Comment créer une archive et réinitialiser les informations de l'utilisateur " +"en utilisant le paramètre *filter* dans :meth:`TarFile.add` ::" #: ../Doc/library/tarfile.rst:810 msgid "Supported tar formats" -msgstr "" +msgstr "Formats *tar* pris en charge" #: ../Doc/library/tarfile.rst:812 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" +"Il existe trois formats *tar* qui peuvent être créés avec le module :mod:" +"`tarfile` :" #: ../Doc/library/tarfile.rst:814 msgid "" @@ -1003,6 +1253,10 @@ msgid "" "The maximum file size is 8 GiB. This is an old and limited but widely " "supported format." msgstr "" +"Le format *POSIX.1-1988* *ustar* (:const:`ustar_FORMAT`). Il prend en charge " +"les noms de fichiers jusqu'à une longueur maximale de 256 caractères et les " +"noms de liens jusqu'à 100 caractères. La taille maximale du fichier est de " +"8 Go. Il s'agit d'un format ancien et limité mais largement pris en charge." #: ../Doc/library/tarfile.rst:819 msgid "" @@ -1011,6 +1265,11 @@ msgid "" "standard on GNU/Linux systems. :mod:`tarfile` fully supports the GNU tar " "extensions for long names, sparse file support is read-only." msgstr "" +"Le format GNU *tar* (:const:`GNU_FORMAT`). Il prend en charge les noms de " +"fichiers longs et les noms de liens, les fichiers supérieurs à 8 Go et les " +"fichiers discontinus. C'est la norme de facto des systèmes GNU / Linux. :mod:" +"`tarfile` prend entièrement en charge les extensions GNU *tar* pour les noms " +"longs, la prise en charge des fichiers discontinus est en lecture seule." #: ../Doc/library/tarfile.rst:824 msgid "" @@ -1035,6 +1294,8 @@ msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" +"Il existe d'autres variantes du format *tar* qui peuvent être lues, mais pas " +"créées" #: ../Doc/library/tarfile.rst:838 msgid "" @@ -1044,16 +1305,23 @@ msgid "" "archives have miscalculated header checksums in case of fields with non-" "ASCII characters." msgstr "" +"L'ancien format *V7*. Il s'agit du premier format *tar* d'*Unix Seventh " +"Edition*, ne stockant que des fichiers et répertoires normaux. Les noms ne " +"doivent pas dépasser 100 caractères, il n'y a aucune information de nom " +"d'utilisateur / groupe. Certaines archives ont des sommes de contrôle d'en-" +"tête mal calculées dans le cas de champs avec des caractères non ASCII." #: ../Doc/library/tarfile.rst:843 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." msgstr "" +"Format étendu *SunOS* *tar*. Ce format est une variante du format " +"*POSIX.1-2001* *pax*, mais n'est pas compatible." #: ../Doc/library/tarfile.rst:849 msgid "Unicode issues" -msgstr "" +msgstr "Problèmes *unicode*" #: ../Doc/library/tarfile.rst:851 msgid "" @@ -1069,12 +1337,30 @@ msgid "" "encoding of an archive. The pax format was designed to solve this problem. " "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" +"Le format *tar* a été initialement conçu pour effectuer des sauvegardes sur " +"des lecteurs de bande en mettant principalement l'accent sur la préservation " +"des informations du système de fichiers. De nos jours, les archives *tar* " +"sont couramment utilisées pour la distribution de fichiers et l'échange " +"d'archives sur des réseaux. Un problème du format d'origine (qui est la base " +"de tous les autres formats) est qu'il n'existe aucun concept de prise en " +"charge d'encodages de caractères différents. Par exemple, une archive *tar* " +"ordinaire créée sur un système *UTF-8* ne peut pas être lue correctement sur " +"un système *Latin-1* si elle contient des caractères non *ASCII*. Les " +"métadonnées textuelles (comme les noms de fichiers, les noms de liens, les " +"noms d'utilisateurs / de groupes) sembleront endommagées. Malheureusement, " +"il n'y a aucun moyen de détecter automatiquement l'encodage d'une archive. " +"Le format *pax* a été conçu pour résoudre ce problème. Il stocke les " +"métadonnées non ASCII en utilisant l'encodage universel des caractères " +"*UTF-8*." #: ../Doc/library/tarfile.rst:863 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." msgstr "" +"Les détails de la conversion des caractères dans :mod:`tarfile` sont " +"contrôlés par les arguments nommés *encoding* et *errors* de la classe :" +"class:`TarFile`." #: ../Doc/library/tarfile.rst:866 msgid "" @@ -1084,6 +1370,11 @@ msgid "" "written, the metadata must be either decoded or encoded. If *encoding* is " "not set appropriately, this conversion may fail." msgstr "" +"*encoding* définit l'encodage de caractères à utiliser pour les métadonnées " +"de l'archive. La valeur par défaut est :func:`sys.getfilesystemencoding` ou " +"``'ascii'`` comme solution de rechange. Selon que l'archive est lue ou " +"écrite, les métadonnées doivent être décodées ou encodées. Si l'encodage " +"n'est pas défini correctement, cette conversion peut échouer." #: ../Doc/library/tarfile.rst:872 msgid "" @@ -1092,6 +1383,11 @@ msgid "" "default scheme is ``'surrogateescape'`` which Python also uses for its file " "system calls, see :ref:`os-filenames`." msgstr "" +"L'argument *errors* définit le traitement des caractères qui ne peuvent pas " +"être convertis. Les valeurs possibles sont répertoriées dans la section :ref:" +"`error-handlers`. Le schéma par défaut est ``'surrogateescape'`` que Python " +"utilise également pour ses appels de système de fichiers, voir :ref:`os-" +"filenames`." #: ../Doc/library/tarfile.rst:877 msgid "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 47d68331e..8fe43e780 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -916,7 +916,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:598 msgid "mode" -msgstr "" +msgstr "mode" #: ../Doc/library/tkinter.ttk.rst:598 msgid "One of \"determinate\" or \"indeterminate\"." @@ -1575,7 +1575,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1008 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/tkinter.ttk.rst:1008 msgid "The tree area." diff --git a/library/turtle.po b/library/turtle.po index f1f8e1414..4415ddbe6 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -286,7 +286,7 @@ msgstr ":func:`speed`" #: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:623 msgid "Tell Turtle's state" -msgstr "" +msgstr "Connaître l'état de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`position` | :func:`pos`" @@ -314,7 +314,7 @@ msgstr ":func:`distance`" #: ../Doc/library/turtle.rst:132 msgid "Setting and measurement" -msgstr "" +msgstr "Paramétrage et mesure" #: ../Doc/library/turtle.rst:0 msgid ":func:`degrees`" @@ -326,11 +326,11 @@ msgstr ":func:`radians`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:765 msgid "Pen control" -msgstr "" +msgstr "Réglage des stylos" #: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:768 msgid "Drawing state" -msgstr "" +msgstr "État des stylos" #: ../Doc/library/turtle.rst:0 msgid ":func:`pendown` | :func:`pd` | :func:`down`" @@ -354,7 +354,7 @@ msgstr ":func:`isdown`" #: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:857 msgid "Color control" -msgstr "" +msgstr "Réglage des couleurs" #: ../Doc/library/turtle.rst:0 msgid ":func:`color`" @@ -370,7 +370,7 @@ msgstr ":func:`fillcolor`" #: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:987 msgid "Filling" -msgstr "" +msgstr "Remplissage" #: ../Doc/library/turtle.rst:0 msgid ":func:`filling`" @@ -386,7 +386,7 @@ msgstr ":func:`end_fill`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1026 msgid "More drawing control" -msgstr "" +msgstr "Plus des réglages pour le dessin" #: ../Doc/library/turtle.rst:0 msgid ":func:`reset`" @@ -402,11 +402,11 @@ msgstr ":func:`write`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1071 msgid "Turtle state" -msgstr "" +msgstr "État de la tortue" #: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1074 msgid "Visibility" -msgstr "" +msgstr "Visibilité" #: ../Doc/library/turtle.rst:0 msgid ":func:`showturtle` | :func:`st`" @@ -422,7 +422,7 @@ msgstr ":func:`isvisible`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1111 msgid "Appearance" -msgstr "" +msgstr "Apparence" #: ../Doc/library/turtle.rst:0 msgid ":func:`shape`" @@ -462,7 +462,7 @@ msgstr ":func:`get_shapepoly`" #: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1307 msgid "Using events" -msgstr "" +msgstr "Utilisation des événements" #: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2343 msgid ":func:`onclick`" @@ -478,7 +478,7 @@ msgstr ":func:`ondrag`" #: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1377 msgid "Special Turtle methods" -msgstr "" +msgstr "Méthodes spéciales de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`begin_poly`" @@ -514,11 +514,11 @@ msgstr ":func:`undobufferentries`" #: ../Doc/library/turtle.rst:191 msgid "Methods of TurtleScreen/Screen" -msgstr "" +msgstr "Méthodes de *TurtleScreen*/*Screen*" #: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1522 msgid "Window control" -msgstr "" +msgstr "Réglage de la fenêtre" #: ../Doc/library/turtle.rst:0 msgid ":func:`bgcolor`" @@ -546,7 +546,7 @@ msgstr ":func:`setworldcoordinates`" #: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1636 msgid "Animation control" -msgstr "" +msgstr "Réglage de l'animation" #: ../Doc/library/turtle.rst:0 msgid ":func:`delay`" @@ -562,7 +562,7 @@ msgstr ":func:`update`" #: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1687 msgid "Using screen events" -msgstr "" +msgstr "Utilisation des événements concernant l'écran" #: ../Doc/library/turtle.rst:0 msgid ":func:`listen`" @@ -590,11 +590,11 @@ msgstr ":func:`mainloop` | :func:`done`" #: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1828 msgid "Settings and special methods" -msgstr "" +msgstr "Paramétrages et méthodes spéciales" #: ../Doc/library/turtle.rst:0 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/turtle.rst:0 msgid ":func:`colormode`" @@ -626,7 +626,7 @@ msgstr ":func:`window_width`" #: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1792 msgid "Input methods" -msgstr "" +msgstr "Méthodes de saisie" #: ../Doc/library/turtle.rst:0 msgid ":func:`textinput`" @@ -638,7 +638,7 @@ msgstr ":func:`numinput`" #: ../Doc/library/turtle.rst:233 msgid "Methods specific to Screen" -msgstr "" +msgstr "Méthodes spécifiques de *Screen*" #: ../Doc/library/turtle.rst:0 msgid ":func:`bye`" @@ -658,41 +658,47 @@ msgstr ":func:`title`" #: ../Doc/library/turtle.rst:236 msgid "Methods of RawTurtle/Turtle and corresponding functions" -msgstr "" +msgstr "Méthodes de *RawTurtle*/*Turtle* et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:238 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." msgstr "" +"La plupart des exemples de cette section se réfèrent à une instance de " +"*Turtle* appelée ``turtle``." #: ../Doc/library/turtle.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:290 #: ../Doc/library/turtle.rst:313 ../Doc/library/turtle.rst:369 #: ../Doc/library/turtle.rst:390 ../Doc/library/turtle.rst:411 msgid "a number (integer or float)" -msgstr "" +msgstr "un nombre (entier ou flottant)" #: ../Doc/library/turtle.rst:249 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" +"Avance la tortue de la *distance* spécifiée, dans la direction où elle se " +"dirige." #: ../Doc/library/turtle.rst:268 ../Doc/library/turtle.rst:458 #: ../Doc/library/turtle.rst:721 ../Doc/library/turtle.rst:1206 #: ../Doc/library/turtle.rst:1224 msgid "a number" -msgstr "" +msgstr "un nombre" #: ../Doc/library/turtle.rst:270 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" +"Déplace la tortue de *distance* vers l'arrière (dans le sens opposé à celui " +"vers lequel elle pointe). Ne change pas le cap de la tortue." #: ../Doc/library/turtle.rst:292 msgid "" @@ -700,6 +706,10 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à droite de *angle* unités (les unités sont par défaut des " +"degrés, mais peuvent être définies via les fonctions :func:`degrees` et :" +"func:`radians`). L'orientation de l'angle dépend du mode de la tortue, voir :" +"func:`mode`." #: ../Doc/library/turtle.rst:315 msgid "" @@ -707,96 +717,112 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à gauche d'une valeur de *angle* unités (les unités sont " +"par défaut des degrés, mais peuvent être définies via les fonctions :func:" +"`degrees` et :func:`radians`). L'orientation de l'angle dépend du mode de la " +"tortue, voir :func:`mode`." #: ../Doc/library/turtle.rst:337 msgid "a number or a pair/vector of numbers" -msgstr "" +msgstr "un nombre ou une paire / un vecteur de nombres" #: ../Doc/library/turtle.rst:338 msgid "a number or ``None``" -msgstr "" +msgstr "un nombre ou ``None``" #: ../Doc/library/turtle.rst:340 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." msgstr "" +"Si *y* est ``None``, *x* doit être une paire de coordonnées, ou bien une " +"instance de :class:`Vec2D` (par exemple, tel que renvoyé par :func:`pos`)." #: ../Doc/library/turtle.rst:343 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" +"Déplace la tortue vers une position absolue. Si le stylo est en bas, trace " +"une ligne. Ne change pas l'orientation de la tortue." #: ../Doc/library/turtle.rst:371 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" +"Définit la première coordonnée de la tortue à *x*, en laissant la deuxième " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:392 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" +"Définit la deuxième coordonnée de la tortue à *y*, en laissant la première " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:413 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" +"Règle l'orientation de la tortue à la valeur `to_angle`. Voici quelques " +"orientations courantes en degrés :" #: ../Doc/library/turtle.rst:417 msgid "standard mode" -msgstr "" +msgstr "mode standard" #: ../Doc/library/turtle.rst:417 msgid "logo mode" -msgstr "" +msgstr "mode logo" #: ../Doc/library/turtle.rst:419 msgid "0 - east" -msgstr "" +msgstr "0 – Est" #: ../Doc/library/turtle.rst:419 msgid "0 - north" -msgstr "" +msgstr "0 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - north" -msgstr "" +msgstr "90 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - east" -msgstr "" +msgstr "90 – Est" #: ../Doc/library/turtle.rst:421 msgid "180 - west" -msgstr "" +msgstr "180 – Ouest" #: ../Doc/library/turtle.rst:421 msgid "180 - south" -msgstr "" +msgstr "180 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - south" -msgstr "" +msgstr "270 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - west" -msgstr "" +msgstr "270 – Ouest" #: ../Doc/library/turtle.rst:434 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" +"Déplace la tortue à l'origine — coordonnées (0,0) — et l'oriente à son cap " +"initial (qui dépend du mode, voir :func:`mode`)." #: ../Doc/library/turtle.rst:459 msgid "a number (or ``None``)" -msgstr "" +msgstr "un nombre (ou ``None``)" #: ../Doc/library/turtle.rst:460 ../Doc/library/turtle.rst:550 msgid "an integer (or ``None``)" -msgstr "" +msgstr "un entier (ou ``None``)" #: ../Doc/library/turtle.rst:462 msgid "" @@ -808,6 +834,15 @@ msgid "" "otherwise in clockwise direction. Finally the direction of the turtle is " "changed by the amount of *extent*." msgstr "" +"Dessine un cercle de rayon `radius`. Le centre se trouve à une distance de " +"`radius` à gauche de la tortue ; l'angle `extent` détermine quelle partie du " +"cercle est dessinée. Si `extent` n'est pas fourni, dessine le cercle en " +"entier. Si `extent` ne correspond pas à un cercle entier, la position " +"actuelle du stylo est donnée par l'un des points d'extrémité de l'arc de " +"cercle. Si la valeur de `radius` est positive, dessine l'arc de cercle dans " +"le sens inverse des aiguilles d'une montre, sinon le dessine dans le sens " +"des aiguilles d'une montre. Enfin, la direction de la tortue peut être " +"modifiée en réglant la valeur de `extent`." #: ../Doc/library/turtle.rst:470 msgid "" @@ -815,20 +850,27 @@ msgid "" "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" +"Comme le cercle est approximé par un polygone régulier inscrit, `steps` " +"détermine le nombre de pas à utiliser. Si cette valeur n'est pas donnée, " +"elle sera calculée automatiquement. Elle peut être utilisée pour dessiner " +"des polygones réguliers." #: ../Doc/library/turtle.rst:495 msgid "an integer >= 1 (if given)" -msgstr "" +msgstr "un entier supérieur ou égal à 1 (si fourni)" #: ../Doc/library/turtle.rst:496 msgid "a colorstring or a numeric color tuple" -msgstr "" +msgstr "une chaîne qui désigne une couleur ou un triplet de couleur numérique" #: ../Doc/library/turtle.rst:498 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." msgstr "" +"Dessine un point circulaire de diamètre `size`, de la couleur `color`. Si le " +"paramètre `size` n'est pas indiqué, utilise la valeur maximum de la taille " +"du stylo plus 4 et de la taille du stylo multiplié par 2." #: ../Doc/library/turtle.rst:515 msgid "" @@ -836,14 +878,19 @@ msgid "" "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" +"Tamponne une copie de la forme de la tortue sur le canevas à la position " +"actuelle de la tortue. Renvoie un *stamp_id* pour ce tampon, qui peut être " +"utilisé pour le supprimer en appelant ``clearstamp(stamp_id)``." #: ../Doc/library/turtle.rst:529 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" +"un entier, doit être la valeur renvoyée par l'appel précédent de :func:" +"`stamp`" #: ../Doc/library/turtle.rst:532 msgid "Delete stamp with given *stampid*." -msgstr "" +msgstr "Supprime le tampon dont le *stampid* est donné." #: ../Doc/library/turtle.rst:552 msgid "" @@ -851,73 +898,94 @@ msgid "" "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " "*n* stamps." msgstr "" +"Supprime tous, les *n* premiers ou les *n* derniers tampons de la tortue. Si " +"*n* est ``None``, supprime tous les tampons, si *n* > 0, supprime les *n* " +"premiers tampons et si n < 0, supprime les *n* derniers tampons." #: ../Doc/library/turtle.rst:575 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" +"Annule la ou les dernières (si répété) actions de la tortue. Le nombre " +"d'annulations disponible est déterminé par la taille de la mémoire tampon " +"d'annulations." #: ../Doc/library/turtle.rst:589 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" +"un nombre entier compris dans l’intervalle entre 0 et 10 inclus, ou une " +"chaîne de vitesse (voir ci-dessous)" #: ../Doc/library/turtle.rst:591 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" +"Règle la vitesse de la tortue à une valeur entière comprise entre 0 et 10 " +"inclus. Si aucun argument n'est donné, renvoie la vitesse actuelle." #: ../Doc/library/turtle.rst:594 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" msgstr "" +"Si l'entrée est un nombre supérieur à 10 ou inférieur à 0,5, la vitesse est " +"fixée à 0. Les chaînes de vitesse sont mises en correspondance avec les " +"valeurs de vitesse comme suit :" #: ../Doc/library/turtle.rst:597 msgid "\"fastest\": 0" -msgstr "" +msgstr "« le plus rapide » : 0" #: ../Doc/library/turtle.rst:598 msgid "\"fast\": 10" -msgstr "" +msgstr "« rapide » : 10" #: ../Doc/library/turtle.rst:599 msgid "\"normal\": 6" -msgstr "" +msgstr "« vitesse normale » : 6" #: ../Doc/library/turtle.rst:600 msgid "\"slow\": 3" -msgstr "" +msgstr "« lent » : 3" #: ../Doc/library/turtle.rst:601 msgid "\"slowest\": 1" -msgstr "" +msgstr "« le plus lent » : 1" #: ../Doc/library/turtle.rst:603 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" +"Les vitesses de 1 à 10 permettent une animation de plus en plus rapide du " +"trait du dessin et de la rotation des tortues." #: ../Doc/library/turtle.rst:606 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." msgstr "" +"Attention : *speed* = 0 signifie qu'il n'y a *aucune* animation. *forward*/" +"*back* font sauter la tortue et, de même, *left*/*right* font tourner la " +"tortue instantanément." #: ../Doc/library/turtle.rst:628 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" +"Renvoie la position actuelle de la tortue (x,y) (en tant qu'un vecteur :" +"class:`Vec2d`)." #: ../Doc/library/turtle.rst:638 ../Doc/library/turtle.rst:697 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" +"un nombre, ou une paire / un vecteur de nombres, ou une instance de tortue" #: ../Doc/library/turtle.rst:639 ../Doc/library/turtle.rst:698 msgid "a number if *x* is a number, else ``None``" -msgstr "" +msgstr "un nombre si `x` est un nombre, sinon ``None``" #: ../Doc/library/turtle.rst:641 msgid "" @@ -929,51 +997,59 @@ msgstr "" #: ../Doc/library/turtle.rst:654 msgid "Return the turtle's x coordinate." -msgstr "" +msgstr "Renvoie la coordonnée x de la tortue." #: ../Doc/library/turtle.rst:669 msgid "Return the turtle's y coordinate." -msgstr "" +msgstr "Renvoie la coordonnée y de la tortue." #: ../Doc/library/turtle.rst:684 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" +"Renvoie le cap de la tortue (la valeur dépend du mode de la tortue, voir :" +"func:`mode`)." #: ../Doc/library/turtle.rst:700 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" +"Renvoie la distance entre la tortue et (x,y), le vecteur donné ou l'autre " +"tortue donnée. La valeur est exprimée en unités de pas de tortue." #: ../Doc/library/turtle.rst:717 msgid "Settings for measurement" -msgstr "" +msgstr "Paramètres de mesure" #: ../Doc/library/turtle.rst:723 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" +"Définit les unités de mesure des angles, c.-à-d. fixe le nombre de " +"« degrés » pour un cercle complet. La valeur par défaut est de 360 degrés." #: ../Doc/library/turtle.rst:745 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" +"Règle l'unité de mesure des angles sur radians. Équivalent à " +"``degrees(2*math.pi)``." #: ../Doc/library/turtle.rst:774 msgid "Pull the pen down -- drawing when moving." -msgstr "" +msgstr "Baisse la pointe du stylo — dessine quand il se déplace." #: ../Doc/library/turtle.rst:781 msgid "Pull the pen up -- no drawing when moving." -msgstr "" +msgstr "Lève la pointe du stylo — pas de dessin quand il se déplace." #: ../Doc/library/turtle.rst:787 msgid "a positive number" -msgstr "" +msgstr "un nombre positif" #: ../Doc/library/turtle.rst:789 msgid "" @@ -981,60 +1057,72 @@ msgid "" "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " "line thickness. If no argument is given, the current pensize is returned." msgstr "" +"Règle l'épaisseur de la ligne à *width* ou la renvoie. Si *resizemode* est " +"défini à \"auto\" et que *turtleshape* (la forme de la tortue) est un " +"polygone, le polygone est dessiné avec cette épaisseur. Si aucun argument " +"n'est passé, la taille actuelle du stylo (*pensize*) est renvoyée." #: ../Doc/library/turtle.rst:802 msgid "a dictionary with some or all of the below listed keys" -msgstr "" +msgstr "un dictionnaire avec certaines ou toutes les clés énumérées ci-dessous" #: ../Doc/library/turtle.rst:803 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" +"un ou plusieurs arguments par mots-clés avec les clés suivantes comme mots-" +"clés" #: ../Doc/library/turtle.rst:805 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" +"Renvoie ou définit les attributs du stylo dans un `\"pen-dictionary\"` avec " +"les paires clés / valeurs suivantes :" #: ../Doc/library/turtle.rst:808 msgid "\"shown\": True/False" -msgstr "" +msgstr "`\"shown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:809 msgid "\"pendown\": True/False" -msgstr "" +msgstr "`\"pendown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:810 msgid "\"pencolor\": color-string or color-tuple" msgstr "" +"`\"pencolor\"` : chaîne de caractères ou triplet désignant la couleur du " +"stylo" #: ../Doc/library/turtle.rst:811 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" +"`\"fillcolor\"` : chaîne de caractères ou triplet pour la couleur de " +"remplissage" #: ../Doc/library/turtle.rst:812 msgid "\"pensize\": positive number" -msgstr "" +msgstr "`\"pensize\"` : nombre positif" #: ../Doc/library/turtle.rst:813 msgid "\"speed\": number in range 0..10" -msgstr "" +msgstr "`\"speed\"` : nombre compris dans intervalle 0 et 10" #: ../Doc/library/turtle.rst:814 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -msgstr "" +msgstr "`\"resizemode\"` : `\"auto\"`, `\"user\"` ou `\"noresize\"`" #: ../Doc/library/turtle.rst:815 msgid "\"stretchfactor\": (positive number, positive number)" -msgstr "" +msgstr "`\"stretchfactor\"` : (nombre positif, nombre positif)" #: ../Doc/library/turtle.rst:816 msgid "\"outline\": positive number" -msgstr "" +msgstr "`\"outline\"` : nombre positif" #: ../Doc/library/turtle.rst:817 msgid "\"tilt\": number" -msgstr "" +msgstr "`\"tilt\"` : nombre" #: ../Doc/library/turtle.rst:819 msgid "" @@ -1043,18 +1131,24 @@ msgid "" "can be provided as keyword-arguments. This can be used to set several pen " "attributes in one statement." msgstr "" +"Ce dictionnaire peut être utilisé comme argument pour un appel ultérieur à :" +"func:`pen` pour restaurer l'ancien état du stylo. En outre, un ou plus de " +"ces attributs peuvent est passés en tant qu'arguments nommés. Cela peut être " +"utilisé pour définir plusieurs attributs du stylo en une instruction." #: ../Doc/library/turtle.rst:844 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" +"Renvoie ``True`` si la pointe du stylo est en bas et ``False`` si elle est " +"en haut." #: ../Doc/library/turtle.rst:861 msgid "Return or set the pencolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du stylo." #: ../Doc/library/turtle.rst:863 ../Doc/library/turtle.rst:911 msgid "Four input formats are allowed:" -msgstr "" +msgstr "Quatre formats d'entrée sont autorisés :" #: ../Doc/library/turtle.rst:868 msgid "``pencolor()``" @@ -1065,6 +1159,9 @@ msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." msgstr "" +"Renvoie la couleur du stylo actuelle en tant que chaine de spécification de " +"couleurs ou en tant qu'un *n*-uplet (voir l'exemple). Peut être utilisée " +"comme entrée à un autre appel de *color*/*pencolor*/*fillcolor*." #: ../Doc/library/turtle.rst:872 msgid "``pencolor(colorstring)``" @@ -1075,6 +1172,9 @@ msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur du stylo à `colorstring`, qui est une chaîne de " +"spécification de couleur *Tk*, telle que ``\"red\"``, ``\"yellow\"``, ou ``" +"\"#33cc8c\"``." #: ../Doc/library/turtle.rst:877 msgid "``pencolor((r, g, b))``" @@ -1086,6 +1186,9 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par le *n*-uplet de " +"*r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0.." +"colormode``, où *colormode* est vaut 1.0 ou 255 (voir :func:`colormode`)." #: ../Doc/library/turtle.rst:884 msgid "``pencolor(r, g, b)``" @@ -1096,16 +1199,20 @@ msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par *r*, *g* et " +"*b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0..colormode``." #: ../Doc/library/turtle.rst:883 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" +"Si la forme de la tortue est un polygone, le contour de ce polygone est " +"dessiné avec la nouvelle couleur du stylo." #: ../Doc/library/turtle.rst:909 msgid "Return or set the fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur de remplissage." #: ../Doc/library/turtle.rst:916 msgid "``fillcolor()``" @@ -1117,6 +1224,10 @@ msgid "" "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor call." msgstr "" +"Renvoie la couleur de remplissage actuelle (*fillcolor*) en tant que chaine " +"de spécification, possiblement en format *n*-uplet (voir l'exemple). Peut " +"être utilisée en entrée pour un autre appel de *color*/*pencolor*/" +"*fillcolor*." #: ../Doc/library/turtle.rst:920 msgid "``fillcolor(colorstring)``" @@ -1127,6 +1238,9 @@ msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur de remplissage (*fillcolor*) à *colorstring*, qui est une " +"chaine de spécification de couleur *Tk* comme par exemple ``\"red\"``, ``" +"\"yellow\"`` ou ``\"#33cc8c\"``." #: ../Doc/library/turtle.rst:925 msgid "``fillcolor((r, g, b))``" @@ -1138,6 +1252,10 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du remplissage (*fillcolor*) à la couleur RGB représentée " +"par le *n*-uplet *r*, *g*, *b*. Chacun des *r*, *g* et *b* doit être dans " +"l'intervalle ``0..colormode`` où *colormode* vaut 1.0 ou 255 (voir :func:" +"`colormode`)." #: ../Doc/library/turtle.rst:932 msgid "``fillcolor(r, g, b)``" @@ -1148,21 +1266,28 @@ msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du remplissage(*fillcolor*) à la couleur RGB représentée " +"par *r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle " +"``0..colormode``." #: ../Doc/library/turtle.rst:931 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" +"Si la forme de la tortue est un polygone, l'intérieur de ce polygone sera " +"dessiné avec la nouvelle couleur de remplissage." #: ../Doc/library/turtle.rst:952 msgid "Return or set pencolor and fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du stylo et la couleur de remplissage." #: ../Doc/library/turtle.rst:954 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" +"Plusieurs formats d'entrée sont autorisés. Ils peuvent avoir de zéro jusqu'à " +"trois arguments, employés comme suit :" #: ../Doc/library/turtle.rst:960 msgid "``color()``" @@ -1174,55 +1299,69 @@ msgid "" "specification strings or tuples as returned by :func:`pencolor` and :func:" "`fillcolor`." msgstr "" +"Renvoie la couleur du stylo actuelle et la couleur de remplissage actuelle " +"sous forme de paire, soit de chaines de spécification de couleur, soit de " +"*n*-uplets comme renvoyés par :func:`pencolor` et :func:`fillcolor`." #: ../Doc/library/turtle.rst:964 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -msgstr "" +msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" #: ../Doc/library/turtle.rst:963 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" +"Les formats d'entrée sont comme dans :func:`pencolor`. Définit à la fois la " +"couleur de remplissage et la couleur du stylo à la valeur passée." #: ../Doc/library/turtle.rst:971 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" #: ../Doc/library/turtle.rst:967 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" +"Équivalent à ``pencolor(colorstring1)`` et ``fillcolor(colorstring2)`` et de " +"manière analogue si un autre format d'entrée est utilisé." #: ../Doc/library/turtle.rst:970 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" +"Si la forme de la tortue est un polygone, le contour et l'intérieur de ce " +"polygone sont dessinés avec les nouvelles couleurs." #: ../Doc/library/turtle.rst:983 msgid "See also: Screen method :func:`colormode`." -msgstr "" +msgstr "Voir aussi : la méthode :func:`colormode` de *Screen*." #: ../Doc/library/turtle.rst:996 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" +"Renvoie l'état de remplissage (``True`` signifie en train de faire un " +"remplissage, ``False`` sinon)." #: ../Doc/library/turtle.rst:1010 msgid "To be called just before drawing a shape to be filled." -msgstr "" +msgstr "À appeler juste avant de dessiner une forme à remplir." #: ../Doc/library/turtle.rst:1015 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." -msgstr "" +msgstr "Remplit la forme dessinée après le dernier appel à :func:`begin_fill`." #: ../Doc/library/turtle.rst:1030 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" +"Supprime les dessins de la tortue de l'écran, recentre la tortue et assigne " +"les variables aux valeurs par défaut." #: ../Doc/library/turtle.rst:1050 msgid "" @@ -1230,22 +1369,27 @@ msgid "" "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" +"Supprime les dessins de la tortue de l'écran. Ne déplace pas la tortue. " +"L'état et la position de la tortue ainsi que les dessins des autres tortues " +"ne sont pas affectés." #: ../Doc/library/turtle.rst:1056 msgid "object to be written to the TurtleScreen" -msgstr "" +msgstr "objet à écrire sur le *TurtleScreen*" #: ../Doc/library/turtle.rst:1057 msgid "True/False" -msgstr "" +msgstr "``True`` / ``False``" #: ../Doc/library/turtle.rst:1058 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" +"l'une des chaînes de caractères suivantes : `\"left\"`, `\"center\"` ou `" +"\"right\"`" #: ../Doc/library/turtle.rst:1059 msgid "a triple (fontname, fontsize, fonttype)" -msgstr "" +msgstr "triplet (nom de police, taille de police, type de police)" #: ../Doc/library/turtle.rst:1061 msgid "" @@ -1261,18 +1405,21 @@ msgid "" "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" +"Rend la tortue invisible. C'est recommandé lorsque vous êtes en train de " +"faire un dessin complexe, vous observerez alors une accélération notable." #: ../Doc/library/turtle.rst:1091 msgid "Make the turtle visible." -msgstr "" +msgstr "Rend la tortue visible." #: ../Doc/library/turtle.rst:1100 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" +"Renvoie ``True`` si la tortue est visible, et ``False`` si elle est cachée." #: ../Doc/library/turtle.rst:1115 msgid "a string which is a valid shapename" -msgstr "" +msgstr "une chaîne de caractères qui correspond à un nom de forme valide" #: ../Doc/library/turtle.rst:1117 msgid "" @@ -1282,10 +1429,16 @@ msgid "" "\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn " "about how to deal with shapes see Screen method :func:`register_shape`." msgstr "" +"La tortue prend la forme *name* donnée, ou, si *name* n'est pas donné, " +"renvoie le nom de la forme actuelle. Le nom *name* donné doit exister dans " +"le dictionnaire de formes de *TurtleScreen*. Initialement, il y a les " +"polygones suivants : \"*arrow*\", \"*turtle*\", \"*circle*\", \"*square*\", " +"\"*triangle*\", \"*classic*\". Pour en apprendre plus sur comment gérer les " +"formes, voir la méthode de *Screen* :func:`register_shape`." #: ../Doc/library/turtle.rst:1134 msgid "one of the strings \"auto\", \"user\", \"noresize\"" -msgstr "" +msgstr "l'une des chaînes suivantes : `\"auto\"`, `\"user\"`, `\"noresize\"`" #: ../Doc/library/turtle.rst:1136 msgid "" @@ -1293,22 +1446,31 @@ msgid "" "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" +"Définit *resizemode* à l'une des valeurs suivantes : \"*auto*\", \"*user*\", " +"\"*noresize*\". Si \"*rmode*\" n'est pas donné, renvoie le *resizemode* " +"actuel. Les différents *resizemode* ont les effets suivants :" #: ../Doc/library/turtle.rst:1140 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" +"*\"auto\"* : adapte l'apparence de la tortue en fonction de la largeur du " +"stylo (*value of pensize* en anglais)." #: ../Doc/library/turtle.rst:1141 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" +"*\"user\"* : adapte l'apparence de la tortue en fonction des valeurs du " +"paramètre d'étirement et de la largeur des contours, déterminés par :func:" +"`shapesize`." #: ../Doc/library/turtle.rst:1144 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" +"*\"noresize\"* : il n'y a pas de modification de l'apparence de la tortue." #: ../Doc/library/turtle.rst:1146 msgid "" @@ -1318,7 +1480,7 @@ msgstr "" #: ../Doc/library/turtle.rst:1160 ../Doc/library/turtle.rst:1161 #: ../Doc/library/turtle.rst:1162 msgid "positive number" -msgstr "" +msgstr "nombre positif" #: ../Doc/library/turtle.rst:1164 msgid "" @@ -1329,11 +1491,18 @@ msgid "" "*stretch_len* is stretchfactor in direction of its orientation, *outline* " "determines the width of the shapes's outline." msgstr "" +"Renvoie ou définit les attributs x/y-stretchfactors* et/ou contour du stylo. " +"Définit *resizemode* à \"user\". Si et seulement si *resizemode* est à \"user" +"\", la tortue sera affichée étirée en fonction de ses facteurs d'étirements " +"(*stretchfactors*) : *stretch_wid* est le facteur d'étirement " +"perpendiculaire à son orientation, *stretch_len* est le facteur d'étirement " +"en direction de son orientation, *outlline* détermine la largeur de la " +"bordure de la forme." #: ../Doc/library/turtle.rst:1186 ../Doc/library/turtle.rst:1811 #: ../Doc/library/turtle.rst:1812 ../Doc/library/turtle.rst:1813 msgid "number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1188 msgid "" @@ -1343,12 +1512,21 @@ msgid "" "given: return the current shearfactor, i. e. the tangent of the shear angle, " "by which lines parallel to the heading of the turtle are sheared." msgstr "" +"Définit ou renvoie le paramétrage de cisaillement actuel. Déforme la tortue " +"en fonction du paramètre *shear* donné, qui est la tangente de l'angle de " +"cisaillement. Ne change pas le sens de déplacement de la tortue. Si le " +"paramètre *shear* n'est pas indiqué, renvoie la valeur actuelle du " +"cisaillement, c.-à-d. la valeur de la tangente de l'angle de cisaillement, " +"celui par rapport auquel les lignes parallèles à la direction de la tortue " +"sont cisaillées." #: ../Doc/library/turtle.rst:1208 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" +"Tourne la forme de la tortue de *angle* depuis son angle d'inclinaison " +"actuel, mais *ne change pas* le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1226 msgid "" @@ -1356,12 +1534,15 @@ msgid "" "regardless of its current tilt-angle. *Do not* change the turtle's heading " "(direction of movement)." msgstr "" +"Tourne la forme de la tortue pour pointer dans la direction spécifiée par " +"*angle*, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1245 ../Doc/library/turtle.rst:1267 #: ../Doc/library/turtle.rst:1268 ../Doc/library/turtle.rst:1269 #: ../Doc/library/turtle.rst:1270 msgid "a number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1247 msgid "" @@ -1372,10 +1553,18 @@ msgid "" "angle between the orientation of the turtleshape and the heading of the " "turtle (its direction of movement)." msgstr "" +"Définit ou renvoie l'angle d'inclinaison actuel. Si l'angle est donné, la " +"forme de la tortue est tournée pour pointer dans direction spécifiée par " +"l'angle, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement). Si l'angle n'est pas donné, " +"renvoie l'angle d'inclinaison actuel (L'angle entre l'orientation de la " +"forme de la tortue et le cap de la tortue (sa direction de mouvement))." #: ../Doc/library/turtle.rst:1272 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" +"Définit ou renvoie la matrice de transformation actuelle de la forme de la " +"tortue." #: ../Doc/library/turtle.rst:1274 msgid "" @@ -1392,6 +1581,9 @@ msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." msgstr "" +"Renvoie la forme actuelle du polygone en *n*-uplet de paires de coordonnées. " +"Vous pouvez l'utiliser afin de définir une nouvelle forme ou en tant que " +"composant pour une forme plus complexe." #: ../Doc/library/turtle.rst:1311 ../Doc/library/turtle.rst:1332 #: ../Doc/library/turtle.rst:1356 ../Doc/library/turtle.rst:1737 @@ -1399,11 +1591,13 @@ msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" +"une fonction à deux arguments qui sera appelée avec les coordonnées du point " +"cliqué sur le canevas" #: ../Doc/library/turtle.rst:1313 ../Doc/library/turtle.rst:1334 #: ../Doc/library/turtle.rst:1358 ../Doc/library/turtle.rst:1739 msgid "number of the mouse-button, defaults to 1 (left mouse button)" -msgstr "" +msgstr "numéro du bouton de la souris, par défaut 1 (bouton de gauche)" #: ../Doc/library/turtle.rst:1314 ../Doc/library/turtle.rst:1335 #: ../Doc/library/turtle.rst:1359 ../Doc/library/turtle.rst:1740 @@ -1411,6 +1605,8 @@ msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" +"``True`` ou ``False`` — si``True``, un nouveau lien est ajouté, sinon il " +"remplace un ancien lien" #: ../Doc/library/turtle.rst:1317 msgid "" @@ -1418,68 +1614,93 @@ msgid "" "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" +"Crée un lien vers *fun* pour les événements de clics de la souris sur cette " +"tortue. Si *fun* est ``None``, les liens existants sont supprimés. Exemple " +"pour la tortue anonyme, c'est-à-dire la manière procédurale :" #: ../Doc/library/turtle.rst:1338 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de relâchement d'un clic de la " +"souris sur cette tortue. Si *fun* est ``None``, les liens existants sont " +"supprimés." #: ../Doc/library/turtle.rst:1362 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de mouvement de la souris sur " +"cette tortue. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1365 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" +"Remarque : toutes les séquences d'événements de mouvement de la souris sur " +"une tortue sont précédées par un événement de clic de la souris sur cette " +"tortue." #: ../Doc/library/turtle.rst:1372 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" +"Par la suite, un cliquer-glisser sur la tortue la fait se déplacer au " +"travers de l'écran, produisant ainsi des dessins « à la main » (si le stylo " +"est posé)." #: ../Doc/library/turtle.rst:1381 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" +"Démarre l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue est le premier sommet du polygone." #: ../Doc/library/turtle.rst:1387 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." msgstr "" +"Arrête l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue sera le dernier sommet du polygone. Il sera connecté au premier " +"sommet." #: ../Doc/library/turtle.rst:1393 msgid "Return the last recorded polygon." -msgstr "" +msgstr "Renvoie le dernier polygone sauvegardé." #: ../Doc/library/turtle.rst:1411 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" +"Crée et renvoie un clone de la tortue avec les mêmes position, cap et " +"propriétés." #: ../Doc/library/turtle.rst:1423 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" +"Renvoie l'objet *Turtle* lui-même. Sa seule utilisation : comme fonction " +"pour renvoyer la \"tortue anonyme\" :" #: ../Doc/library/turtle.rst:1436 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" +"Renvoie l'objet :class:`TurtleScreen` sur lequel la tortue dessine. Les " +"méthodes de TurtleScreen peuvent être appelées pour cet objet." #: ../Doc/library/turtle.rst:1449 msgid "an integer or ``None``" -msgstr "" +msgstr "un entier ou ``None``" #: ../Doc/library/turtle.rst:1451 msgid "" @@ -1491,11 +1712,11 @@ msgstr "" #: ../Doc/library/turtle.rst:1463 msgid "Return number of entries in the undobuffer." -msgstr "" +msgstr "Renvoie le nombre d'entrées dans la mémoire d'annulation." #: ../Doc/library/turtle.rst:1475 msgid "Compound shapes" -msgstr "" +msgstr "Formes composées" #: ../Doc/library/turtle.rst:1477 msgid "" @@ -1503,16 +1724,21 @@ msgid "" "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" +"Pour utiliser des formes de tortues combinées, qui sont composées de " +"polygones de différentes couleurs, vous devez utiliser la classe utilitaire :" +"class:`Shape` explicitement comme décrit ci-dessous :" #: ../Doc/library/turtle.rst:1481 msgid "Create an empty Shape object of type \"compound\"." -msgstr "" +msgstr "Créez un objet Shape vide de type \"compound\"." #: ../Doc/library/turtle.rst:1482 msgid "" "Add as many components to this object as desired, using the :meth:" "`addcomponent` method." msgstr "" +"Ajoutez autant de composants que désirés à cet objet, en utilisant la " +"méthode :meth:`addcomponent`." #: ../Doc/library/turtle.rst:1485 msgid "For example:" @@ -1521,6 +1747,8 @@ msgstr "Par exemple :" #: ../Doc/library/turtle.rst:1495 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" +"Maintenant ajoutez la *Shape* à la liste des formes de *Screen* et utilisez " +"la :" #: ../Doc/library/turtle.rst:1505 msgid "" @@ -1528,30 +1756,42 @@ msgid "" "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" +"La classe :class:`Shape` est utilisée en interne par la méthode :func:" +"`register_shape` de différentes façons. Le développeur n'interagit avec la " +"classe Shape *que* lorsqu'il utilise des formes composées comme montré ci-" +"dessus !" #: ../Doc/library/turtle.rst:1511 msgid "Methods of TurtleScreen/Screen and corresponding functions" -msgstr "" +msgstr "Méthodes de TurtleScreen/Screen et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:1513 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" +"La plupart des exemples dans cette section font référence à une instance de " +"TurtleScreen appelée ``screen``." #: ../Doc/library/turtle.rst:1526 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" msgstr "" +"chaîne spécifiant une couleur ou trois nombres dans l'intervalle *0.." +"colormode* ou *n*-uplet de ces trois nombres" #: ../Doc/library/turtle.rst:1530 msgid "Set or return background color of the TurtleScreen." msgstr "" +"Définit ou renvoie la couleur de fond de l'écran de la tortue " +"(*TurtleScreen* en anglais)." #: ../Doc/library/turtle.rst:1544 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" msgstr "" +"une chaîne de caractères, le nom d'un fichier *gif*, ou ``\"nopic\"``, ou " +"``None``" #: ../Doc/library/turtle.rst:1546 msgid "" @@ -1560,6 +1800,10 @@ msgid "" "*picname* is ``\"nopic\"``, delete background image, if present. If " "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" +"Défini l'image de fond ou renvoie l'image de fond actuelle. Si *picname* est " +"un nom de fichier, cette image et mis en image de fond. Si *picname* est ``" +"\"nopic\"``, l'image de fond sera supprimée si présente. SI *picname* est " +"``None``, le nom du fichier de l'image de fond actuelle est renvoyé. ::" #: ../Doc/library/turtle.rst:1561 msgid "" @@ -1567,6 +1811,9 @@ msgid "" "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" +"Supprime tous les dessins et toutes les tortues du TurtleScreen. " +"Réinitialise le TurtleScreen maintenant vide à son état initial : fond " +"blanc, pas d'image de fond, pas d'événement liés, et traçage activé." #: ../Doc/library/turtle.rst:1566 msgid "" @@ -1574,10 +1821,13 @@ msgid "" "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``clearscreen``. La fonction globale ``clear`` est une " +"fonction différente dérivée de la méthode Turtle ``clear``." #: ../Doc/library/turtle.rst:1574 msgid "Reset all Turtles on the Screen to their initial state." -msgstr "" +msgstr "Remet toutes les tortues à l'écran dans leur état initial." #: ../Doc/library/turtle.rst:1577 msgid "" @@ -1585,18 +1835,25 @@ msgid "" "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``resetscreen``. La fonction globale ``reset`` est une " +"fonction différente dérivée de la méthode Turtle ``reset``." #: ../Doc/library/turtle.rst:1584 msgid "positive integer, new width of canvas in pixels" msgstr "" +"nombre entier positif, nouvelle largeur du canevas (zone sur laquelle se " +"déplace la tortue), en pixels" #: ../Doc/library/turtle.rst:1585 msgid "positive integer, new height of canvas in pixels" -msgstr "" +msgstr "nombre entier positif, nouvelle hauteur du canevas, en pixels" #: ../Doc/library/turtle.rst:1586 msgid "colorstring or color-tuple, new background color" msgstr "" +"chaîne de caractères indiquant la couleur ou triplet de couleurs, nouvelle " +"couleur de fond" #: ../Doc/library/turtle.rst:1588 msgid "" @@ -1606,26 +1863,32 @@ msgid "" "this method, one can make visible those parts of a drawing which were " "outside the canvas before." msgstr "" +"Si aucun arguments ne sont passés, renvoie l'actuel *(canvaswidth, " +"canvasheight)*. Sinon, redimensionne le canevas sur lequel les tortues " +"dessinent. Ne modifiez pas la fenêtre de dessin. Pour observer les parties " +"cachées du canevas, utilisez les barres de défilement. Avec cette méthode, " +"on peut rendre visible les parties d'un dessin qui étaient en dehors du " +"canevas précédemment." #: ../Doc/library/turtle.rst:1600 msgid "e.g. to search for an erroneously escaped turtle ;-)" -msgstr "" +msgstr "par exemple, chercher une tortue échappée de manière erronée" #: ../Doc/library/turtle.rst:1605 msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, coordonnée x du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1606 msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1607 msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée x du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1608 msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1610 msgid "" @@ -1633,16 +1896,22 @@ msgid "" "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" +"Configure un système de coordonnées défini par l'utilisateur et bascule vers " +"le mode \"world\" si nécessaire. Cela effectuera un ``screen.reset()``. Si " +"le mode \"world\" est déjà actif, tous les dessins sont re-déssinés par " +"rapport aux nouveaux coordonnées." #: ../Doc/library/turtle.rst:1614 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" +"**ATTENTION** : dans les systèmes de coordonnées définis par l'utilisateur, " +"les angles peuvent apparaître déformés." #: ../Doc/library/turtle.rst:1640 msgid "positive integer" -msgstr "" +msgstr "entier positif" #: ../Doc/library/turtle.rst:1642 msgid "" @@ -1650,14 +1919,17 @@ msgid "" "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" +"Défini ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet " +"approximativement le temps passé entre deux mises à jour du canevas.) Plus " +"le délai est long, plus l'animation sera lente." #: ../Doc/library/turtle.rst:1646 msgid "Optional argument:" -msgstr "" +msgstr "Argument facultatif :" #: ../Doc/library/turtle.rst:1659 ../Doc/library/turtle.rst:1660 msgid "nonnegative integer" -msgstr "" +msgstr "entier non-négatif" #: ../Doc/library/turtle.rst:1662 msgid "" @@ -1667,14 +1939,22 @@ msgid "" "arguments, returns the currently stored value of n. Second argument sets " "delay value (see :func:`delay`)." msgstr "" +"Active/désactive les animations des tortues et défini le délai pour mettre à " +"jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours " +"régulières de l'écran seront vraiment effectuées. (Peut être utilisé pour " +"accélérer le dessin de graphiques complexes.) Lorsqu'appelé sans arguments, " +"renvoie la valeur actuelle de *n*. Le deuxième argument défini la valeur du " +"délai (voir :func:`delay`)." #: ../Doc/library/turtle.rst:1681 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" +"Effectue une mise à jour de *TurtleScreen*. À utiliser lorsque le traceur " +"est désactivé." #: ../Doc/library/turtle.rst:1683 msgid "See also the RawTurtle/Turtle method :func:`speed`." -msgstr "" +msgstr "Voir aussi la méthode :func:`speed` de *RawTurtle*/*Turtle*." #: ../Doc/library/turtle.rst:1691 msgid "" @@ -1682,14 +1962,19 @@ msgid "" "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" +"Donne le focus à *TurtleScreen* (afin de collecter les événements clés). Des " +"arguments factices sont fournis afin de pouvoir passer :func:`listen` à la " +"méthode *onclick*." #: ../Doc/library/turtle.rst:1698 ../Doc/library/turtle.rst:1717 msgid "a function with no arguments or ``None``" -msgstr "" +msgstr "une fonction sans arguments ou ``None``" #: ../Doc/library/turtle.rst:1699 ../Doc/library/turtle.rst:1718 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" +"une chaîne : clé (par exemple \"*a*\") ou clé symbole (Par exemple \"*space*" +"\")" #: ../Doc/library/turtle.rst:1701 msgid "" @@ -1697,6 +1982,10 @@ msgid "" "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un relâchement d'une touche. Si *fun* est " +"``None``, les événements liés sont supprimés. Remarque : Pour pouvoir " +"enregistrer les événements lié au touches, TurtleScreen doit avoir le " +"*focus* (fenêtre en premier plan). (Voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1720 msgid "" @@ -1704,12 +1993,18 @@ msgid "" "event if no key is given. Remark: in order to be able to register key-" "events, TurtleScreen must have focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un pressement de touche si *key* (touche) est " +"donné, ou n'importe quelle touche si aucune touche n'est passée. Remarque : " +"Pour pouvoir enregistrer des événements liés au touches, TurtleScreen doit " +"être en premier plan. (voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1743 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de clique de la souris sur cet " +"écran. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1746 msgid "" @@ -1723,18 +2018,21 @@ msgid "" "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" +"Cette méthode de TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom de ``onscreenclick``. La fonction globale ``onclick`` " +"est une autre fonction dérivée de la méthode Turtle ``onclick``." #: ../Doc/library/turtle.rst:1763 msgid "a function with no arguments" -msgstr "" +msgstr "une fonction sans arguments" #: ../Doc/library/turtle.rst:1764 msgid "a number >= 0" -msgstr "" +msgstr "un nombre supérieur ou égal à 0" #: ../Doc/library/turtle.rst:1766 msgid "Install a timer that calls *fun* after *t* milliseconds." -msgstr "" +msgstr "Installe un minuteur qui appelle *fun* après *t* millisecondes." #: ../Doc/library/turtle.rst:1783 msgid "" @@ -1743,6 +2041,11 @@ msgid "" "run from within IDLE in -n mode (No subprocess) - for interactive use of " "turtle graphics. ::" msgstr "" +"Démarre la boucle d'événements - appelle la boucle principale de Tkinter. " +"Doit être la dernière opération dan un programme graphique *turtle*. **Ne " +"dois pas** être utilisé si un script est lancé depuis IDLE avec le mode `-n` " +"(pas de sous processus) - pour une utilisation interactive des graphiques " +"*turtle* ::" #: ../Doc/library/turtle.rst:1796 ../Doc/library/turtle.rst:1797 #: ../Doc/library/turtle.rst:1809 ../Doc/library/turtle.rst:1810 @@ -1756,6 +2059,10 @@ msgid "" "input. Return the string input. If the dialog is canceled, return " "``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer une chaine de caractères. Le " +"paramètre *title* est le titre de la fenêtre, *prompt* est le texte " +"expliquant quelle information écrire. Renvoie l'entrée utilisateur sous " +"forme de chaîne. Si le dialogue est annulé, renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1815 msgid "" @@ -1767,16 +2074,27 @@ msgid "" "open for correction. Return the number input. If the dialog is canceled, " "return ``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer un nombre. Le paramètre *title* est " +"le titre de la fenêtre, *prompt* est le texte expliquant quelle information " +"numérique écrire. *default* : Valeur par défaut, *minval* : valeur minimale " +"d'entrée, *maxval* : Valeur maximale d'entrée. Le nombre entré doit être " +"dans la gamme *minval..maxval* si ces valeurs sont données. Sinon, un indice " +"apparait et le dialogue reste ouvert pour corriger le nombre. Renvoie " +"l'entrée utilisateur sous forme de nombre. Si le dialogue est annulé, " +"renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1832 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" +"l'une des chaînes de caractères : `\"standard\"`, `\"logo\"` ou `\"world\"`" #: ../Doc/library/turtle.rst:1834 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" +"Règle le mode de la tortue (\"*standard*\", \"*logo*\" ou \"*world*\") et la " +"réinitialise. Si le mode n'est pas donné, le mode actuel est renvoyé." #: ../Doc/library/turtle.rst:1837 msgid "" @@ -1785,116 +2103,138 @@ msgid "" "\"world coordinates\". **Attention**: in this mode angles appear distorted " "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" +"Le mode \"*standard*\" est compatible avec l'ancien :mod:`turtle`. Le mode " +"\"*logo*\" est compatible avec la plupart des graphiques *turtle* Logo. Le " +"mode \"*world*\" utilise des \"coordonnées monde\" (*world coordinates*) " +"définis par l'utilisateur. **Attention** : Dans ce mode, les angles " +"apparaissent déformés si le ratio unitaire de ``x/y`` n'est pas 1." #: ../Doc/library/turtle.rst:1843 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/turtle.rst:1843 msgid "Initial turtle heading" -msgstr "" +msgstr "Orientation initiale de la tortue" #: ../Doc/library/turtle.rst:1843 msgid "positive angles" -msgstr "" +msgstr "angles positifs" #: ../Doc/library/turtle.rst:1845 msgid "\"standard\"" -msgstr "" +msgstr "\"standard\"" #: ../Doc/library/turtle.rst:1845 msgid "to the right (east)" -msgstr "" +msgstr "vers la droite (vers l'Est)" #: ../Doc/library/turtle.rst:1845 msgid "counterclockwise" -msgstr "" +msgstr "dans le sens inverse des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1846 msgid "\"logo\"" -msgstr "" +msgstr "\"logo\"" #: ../Doc/library/turtle.rst:1846 msgid "upward (north)" -msgstr "" +msgstr "vers le haut (vers le Nord)" #: ../Doc/library/turtle.rst:1846 msgid "clockwise" -msgstr "" +msgstr "dans le sens des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1858 msgid "one of the values 1.0 or 255" -msgstr "" +msgstr "l'une des valeurs suivantes : 1.0 ou 255" #: ../Doc/library/turtle.rst:1860 msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " "values of color triples have to be in the range 0..\\ *cmode*." msgstr "" +"Renvoie le mode de couleur (*colormode*) ou le défini à 1.0 ou 255. Les " +"valeurs *r*, *g* et *b* doivent aussi être dans la gamme `0..*cmode*`." #: ../Doc/library/turtle.rst:1880 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" +"Renvoie le canevas de ce TurtleScreen. Utile pour les initiés qui savent " +"quoi faire avec un canevas Tkinter." #: ../Doc/library/turtle.rst:1892 msgid "Return a list of names of all currently available turtle shapes." msgstr "" +"Renvoie une liste de noms de toutes les formes actuellement disponibles pour " +"les tortues." #: ../Doc/library/turtle.rst:1903 msgid "There are three different ways to call this function:" -msgstr "" +msgstr "Il existe trois façons différentes d’appeler cette fonction :" #: ../Doc/library/turtle.rst:1905 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" msgstr "" +"*name* est le nom d'un fichier *gif* et *shape* est ``None`` : Installe la " +"forme d'image correspondante. ::" #: ../Doc/library/turtle.rst:1911 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" +"Les formes d'images *ne tournent pas* lorsque la tortue tourne, donc elles " +"n'indiquent pas le cap de la tortue !" #: ../Doc/library/turtle.rst:1914 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un *n*-uplet " +"de paires de coordonnées : Installe le polygone correspondant." #: ../Doc/library/turtle.rst:1921 msgid "" "*name* is an arbitrary string and shape is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un objet :" +"class:`Shape` (composé) : Installe la forme composée correspondante." #: ../Doc/library/turtle.rst:1924 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" +"Ajoute une forme de tortue a la liste des formes du TurtleScreen. Seulement " +"les formes enregistrées de cette façon peuvent être utilisée avec la " +"commande ``shape(shapename)``." #: ../Doc/library/turtle.rst:1930 msgid "Return the list of turtles on the screen." -msgstr "" +msgstr "Renvoie la liste des tortues présentes sur l'écran." #: ../Doc/library/turtle.rst:1940 msgid "Return the height of the turtle window. ::" -msgstr "" +msgstr "Renvoie la hauteur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1948 msgid "Return the width of the turtle window. ::" -msgstr "" +msgstr "Renvoie la largeur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1957 msgid "Methods specific to Screen, not inherited from TurtleScreen" -msgstr "" +msgstr "Méthodes spécifiques à Screen, non héritées de TurtleScreen" #: ../Doc/library/turtle.rst:1961 msgid "Shut the turtlegraphics window." -msgstr "" +msgstr "Éteins la fenêtre *turtlegraphics*." #: ../Doc/library/turtle.rst:1966 msgid "Bind bye() method to mouse clicks on the Screen." @@ -1908,6 +2248,12 @@ msgid "" "file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " "client script." msgstr "" +"Si la valeur de \"*using_IDLE*\" dans le dictionnaire de configuration est " +"``False`` (valeur par défaut), démarre aussi la boucle principale. " +"Remarque : Si IDLE est lancé avec l'option ``-n`` (Pas de sous processus), " +"Cette valeur devrait être définie à ``True`` dans :file:`turtle.cfg`. Dans " +"ce cas, la boucle principale d'IDLE est active aussi pour le script du " +"client." #: ../Doc/library/turtle.rst:1978 msgid "" @@ -1915,97 +2261,133 @@ msgid "" "are stored in the configuration dictionary and can be changed via a :file:" "`turtle.cfg` file." msgstr "" +"Définit la taille et la position de la fenêtre principale. Les valeurs par " +"défaut des arguments sont stockées dans le dictionnaire de configuration et " +"peuvent être modifiées via un fichier :file:`turtle.cfg`." #: ../Doc/library/turtle.rst:1982 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" +"s'il s'agit d'un nombre entier, une taille en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est de 50 % " +"de l'écran" #: ../Doc/library/turtle.rst:1984 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" +"s'il s'agit d'un nombre entier, la hauteur en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est 75 % de " +"l'écran" #: ../Doc/library/turtle.rst:1986 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" msgstr "" +"s'il s'agit d'un nombre positif, position de départ en pixels à partir du " +"bord gauche de l'écran, s'il s'agit d'un nombre négatif, position de départ " +"en pixels à partir du bord droit, si c'est ``None``, centre la fenêtre " +"horizontalement" #: ../Doc/library/turtle.rst:1989 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" msgstr "" +"si positif, la position de départ en pixels depuis le haut de l'écran. Si " +"négatif, depuis de bas de l'écran. Si ``None``, Le centre de la fenêtre " +"verticalement" #: ../Doc/library/turtle.rst:2003 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" +"chaîne de caractères affichée dans la barre de titre de la fenêtre graphique " +"de la tortue" #: ../Doc/library/turtle.rst:2006 msgid "Set title of turtle window to *titlestring*." -msgstr "" +msgstr "Défini le titre de la fenêtre de la tortue à *titlestring*." #: ../Doc/library/turtle.rst:2014 msgid "Public classes" -msgstr "" +msgstr "Classes publiques" #: ../Doc/library/turtle.rst:2020 msgid "" "a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" +"un :class:`tkinter.Canvas`, un :class:`ScrolledCanvas` ou un :class:" +"`TurtleScreen`" #: ../Doc/library/turtle.rst:2023 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" +"Crée une tortue. Cette tortue à toutes les méthodes décrites ci-dessus comme " +"\"Méthode de Turtle/RawTurtle\"." #: ../Doc/library/turtle.rst:2029 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." msgstr "" +"Sous-classe de RawTurtle, à la même interface mais dessine sur un objet :" +"class:`screen` par défaut créé automatiquement lorsque nécessaire pour la " +"première fois." #: ../Doc/library/turtle.rst:2035 msgid "a :class:`tkinter.Canvas`" -msgstr "" +msgstr "un :class:`tkinter.Canvas`" #: ../Doc/library/turtle.rst:2037 msgid "" "Provides screen oriented methods like :func:`setbg` etc. that are described " "above." msgstr "" +"Fournis les méthodes liées à l'écran comme :func:`setbg`, etc. qui sont " +"décrites ci-dessus." #: ../Doc/library/turtle.rst:2042 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" +"Sous-classess de TurtleScreen, avec :ref:`quatre nouvelles méthodes " +"`." #: ../Doc/library/turtle.rst:2047 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" +"certain modules Tkinter pour contenir le ScrolledCanvas, c'est à dire, un " +"canevas Tkinter avec des barres de défilement ajoutées" #: ../Doc/library/turtle.rst:2050 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" +"Utilisé par la classe Screen, qui fournit donc automatiquement un " +"ScrolledCanvas comme terrain de jeu pour les tortues." #: ../Doc/library/turtle.rst:2055 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" +"l'une des chaînes suivantes : `\"polygon\"`, `\"image\"` ou `\"compound\"`" #: ../Doc/library/turtle.rst:2057 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" +"Formes de modélisation de la structure des données. La paire ``(type_, " +"data)`` doit suivre cette spécification :" #: ../Doc/library/turtle.rst:2062 msgid "*type_*" @@ -2017,41 +2399,45 @@ msgstr "*data*" #: ../Doc/library/turtle.rst:2064 msgid "\"polygon\"" -msgstr "" +msgstr "\"polygon\"" #: ../Doc/library/turtle.rst:2064 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" +"un polygone *n*-uplet, c'est-à-dire un *n*-uplet constitué de paires (chaque " +"paire définissant des coordonnées)" #: ../Doc/library/turtle.rst:2065 msgid "\"image\"" -msgstr "" +msgstr "\"image\"" #: ../Doc/library/turtle.rst:2065 msgid "an image (in this form only used internally!)" -msgstr "" +msgstr "une image (utilisée uniquement en interne sous ce format !)" #: ../Doc/library/turtle.rst:2066 msgid "\"compound\"" -msgstr "" +msgstr "\"compound\"" #: ../Doc/library/turtle.rst:2066 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" +"``None`` (une forme composée doit être construite en utilisant la méthode :" +"meth:`addcomponent`)" #: ../Doc/library/turtle.rst:2072 msgid "a polygon, i.e. a tuple of pairs of numbers" -msgstr "" +msgstr "un polygone, c.-à-d. un *n*-uplet de paires de nombres" #: ../Doc/library/turtle.rst:2073 msgid "a color the *poly* will be filled with" -msgstr "" +msgstr "une couleur de remplissage pour *poly*" #: ../Doc/library/turtle.rst:2074 msgid "a color for the poly's outline (if given)" -msgstr "" +msgstr "une couleur pour le contour du polygone (si elle est donnée)" #: ../Doc/library/turtle.rst:2076 msgid "Example:" @@ -2059,7 +2445,7 @@ msgstr "Exemple :" #: ../Doc/library/turtle.rst:2085 msgid "See :ref:`compoundshapes`." -msgstr "" +msgstr "Voir :ref:`compoundshapes`." #: ../Doc/library/turtle.rst:2090 msgid "" @@ -2067,42 +2453,46 @@ msgid "" "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" +"Une classe de vecteur bidimensionnel, utilisée en tant que classe auxiliaire " +"pour implémenter les graphiques *turtle*. Peut être utile pour les " +"programmes graphiques faits avec *turtle*. Dérivé des *n*-uplets, donc un " +"vecteur est un *n*-uplet !" #: ../Doc/library/turtle.rst:2094 msgid "Provides (for *a*, *b* vectors, *k* number):" -msgstr "" +msgstr "Permet (pour les vecteurs *a*, *b* et le nombre *k*) :" #: ../Doc/library/turtle.rst:2096 msgid "``a + b`` vector addition" -msgstr "" +msgstr "``a + b`` addition de vecteurs" #: ../Doc/library/turtle.rst:2097 msgid "``a - b`` vector subtraction" -msgstr "" +msgstr "``a - b`` soustraction de deux vecteurs" #: ../Doc/library/turtle.rst:2098 msgid "``a * b`` inner product" -msgstr "" +msgstr "``a * b`` produit scalaire" #: ../Doc/library/turtle.rst:2099 msgid "``k * a`` and ``a * k`` multiplication with scalar" -msgstr "" +msgstr "``k * a`` et ``a * k`` multiplication avec un scalaire" #: ../Doc/library/turtle.rst:2100 msgid "``abs(a)`` absolute value of a" -msgstr "" +msgstr "``abs(a)`` valeur absolue de a" #: ../Doc/library/turtle.rst:2101 msgid "``a.rotate(angle)`` rotation" -msgstr "" +msgstr "``a.rotate(angle)`` rotation" #: ../Doc/library/turtle.rst:2105 msgid "Help and configuration" -msgstr "" +msgstr "Aide et configuration" #: ../Doc/library/turtle.rst:2108 msgid "How to use help" -msgstr "" +msgstr "Utilisation de l'aide" #: ../Doc/library/turtle.rst:2110 msgid "" @@ -2110,32 +2500,44 @@ msgid "" "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" +"Les méthodes publiques des classes *Screen* et *Turtle* sont largement " +"documentées dans les *docstrings*. Elles peuvent donc être utilisées comme " +"aide en ligne via les fonctions d'aide de Python :" #: ../Doc/library/turtle.rst:2114 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" +"Lors de l'utilisation d'IDLE, des info-bulles apparaissent avec la signature " +"et les premières lignes de *docstring* de la fonction/méthode appelée." #: ../Doc/library/turtle.rst:2117 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" +"L'appel de :func:`help` sur les méthodes ou fonctions affichera les " +"*docstrings* ::" #: ../Doc/library/turtle.rst:2148 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" +"Les *docstrings* des fonctions qui sont dérivées des méthodes ont une forme " +"modifiée ::" #: ../Doc/library/turtle.rst:2182 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" +"Ces chaînes de documents modifiées sont créées automatiquement avec les " +"définitions de fonctions qui sont dérivées des méthodes au moment de " +"l'importation." #: ../Doc/library/turtle.rst:2187 msgid "Translation of docstrings into different languages" -msgstr "" +msgstr "Traduction de chaînes de documents en différentes langues" #: ../Doc/library/turtle.rst:2189 msgid "" @@ -2143,10 +2545,13 @@ msgid "" "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" +"Il est utile de créer un dictionnaire dont les clés sont les noms des " +"méthodes et les valeurs sont les *docstrings* de méthodes publiques des " +"classes Screen et Turtle." #: ../Doc/library/turtle.rst:2195 msgid "a string, used as filename" -msgstr "" +msgstr "une chaîne de caractères, utilisée en tant que nom de fichier" #: ../Doc/library/turtle.rst:2197 msgid "" @@ -2156,6 +2561,11 @@ msgid "" "Python script :file:`{filename}.py`. It is intended to serve as a template " "for translation of the docstrings into different languages." msgstr "" +"Crée et écrit un dictionnaire de *docstrings* dans un script Python avec le " +"nom donné. Cette fonction doit être appelée explicitement (elle n'est pas " +"utilisée par les classes graphiques de *turtle*). Ce dictionnaire de " +"*doctrings* sera écrit dans le script Python :file:`{filename}.py`. Il sert " +"de modèle pour la traduction des *docstrings* dans différentes langues." #: ../Doc/library/turtle.rst:2203 msgid "" @@ -2163,6 +2573,10 @@ msgid "" "native language, you have to translate the docstrings and save the resulting " "file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" +"Si vous (ou vos étudiants) veulent utiliser :mod:`turtle` avec de l'aide en " +"ligne dans votre langue natale, vous devez traduire les *docstrings* et " +"sauvegarder les fichiers résultants en, par exemple, :file:" +"`turtle_docstringdict_german.py`." #: ../Doc/library/turtle.rst:2207 msgid "" @@ -2170,22 +2584,31 @@ msgid "" "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" +"Si vous avez une entrée appropriée dans votre fichier :file:`turtle.cfg`, ce " +"dictionnaire est lu au moment de l'importation et remplace la *docstrings* " +"originale en anglais par cette entrée." #: ../Doc/library/turtle.rst:2210 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" +"Au moment de l'écriture de cette documentation, il n'existe seulement que " +"des *docstrings* en Allemand et Italien. (Merci de faire vos demandes à " +"glingl@aon.at.)" #: ../Doc/library/turtle.rst:2216 msgid "How to configure Screen and Turtles" -msgstr "" +msgstr "Comment configurer *Screen* et *Turtle*" #: ../Doc/library/turtle.rst:2218 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." msgstr "" +"La configuration par défaut imite l'apparence et le comportement de l'ancien " +"module *turtle* pour pouvoir maintenir la meilleure compatibilité avec celui-" +"ci." #: ../Doc/library/turtle.rst:2221 msgid "" @@ -2195,33 +2618,44 @@ msgid "" "be read at import time and modify the configuration according to its " "settings." msgstr "" +"Si vous voulez utiliser une configuration différente qui reflète mieux les " +"fonctionnalités de ce module ou qui correspond mieux à vos besoins, par " +"exemple pour un cours, vous pouvez préparer un ficher de configuration " +"``turtle.cfg`` qui sera lu au moment de l'importation et qui modifiera la " +"configuration en utilisant les paramètres du fichier." #: ../Doc/library/turtle.rst:2226 msgid "" "The built in configuration would correspond to the following turtle.cfg::" -msgstr "" +msgstr "La configuration native correspondrait au *turtle.cfg* suivant ::" #: ../Doc/library/turtle.rst:2249 msgid "Short explanation of selected entries:" -msgstr "" +msgstr "Brève explication des entrées sélectionnées :" #: ../Doc/library/turtle.rst:2251 msgid "" "The first four lines correspond to the arguments of the :meth:`Screen.setup` " "method." msgstr "" +"Les quatre premières lignes correspondent aux arguments de la méthode :meth:" +"`Screen.setup`." #: ../Doc/library/turtle.rst:2253 msgid "" "Line 5 and 6 correspond to the arguments of the method :meth:`Screen." "screensize`." msgstr "" +"Les lignes 5 et 6 correspondent aux arguments de la méthode :meth:`Screen." +"screensize`." #: ../Doc/library/turtle.rst:2255 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" +"*shape* peut être n'importe quelle forme native, par exemple *arrow*, " +"*turtle* etc. Pour plus d'informations, essayez ``help(shape)``." #: ../Doc/library/turtle.rst:2257 msgid "" @@ -2229,12 +2663,18 @@ msgid "" "to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " "in the cfg-file)." msgstr "" +"Si vous ne voulez utiliser aucune couleur de remplissage (c'est-à-dire " +"rendre la tortue transparente), vous devez écrire ``fillcolor = \"\"`` (mais " +"toutes les chaînes non vides ne doivent pas avoir de guillemets dans le " +"fichier *cfg*)." #: ../Doc/library/turtle.rst:2260 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" +"Si vous voulez refléter l'état de la tortue, vous devez utiliser " +"``resizemode = auto``." #: ../Doc/library/turtle.rst:2262 msgid "" @@ -2242,6 +2682,10 @@ msgid "" "`turtle_docstringdict_italian.py` will be loaded at import time (if present " "on the import path, e.g. in the same directory as :mod:`turtle`." msgstr "" +"Si vous définissez par exemple ``language = italian``, le dictionnaire de " +"*docstrings* :file:`turtle.docstringdict_italian.py` sera chargé au moment " +"de l'importation (si présent dans les chemins d'importations, par exemple " +"dans le même dossier que :mod:`turtle`)." #: ../Doc/library/turtle.rst:2265 msgid "" @@ -2250,6 +2694,10 @@ msgid "" "docstrings to function-docstrings will delete these names from the " "docstrings." msgstr "" +"Les entrées *exampleturtle* et *examplescreen* définissent les noms de ces " +"objets tels qu'ils apparaissent dans les *docstrings*. La transformation des " +"méthodes-*docstrings* vers fonction-*docstrings* supprimera ces noms des " +"*docstrings*." #: ../Doc/library/turtle.rst:2269 msgid "" @@ -2257,6 +2705,9 @@ msgid "" "n switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" +"*using_IDLE* : définissez ceci à ``True`` si vous travaillez régulièrement " +"avec IDLE et son option ``-n`` (pas de sous processus). Cela évitera " +"l'entrée de :func:`exitonclick` dans la boucle principale." #: ../Doc/library/turtle.rst:2273 msgid "" @@ -2264,6 +2715,9 @@ msgid "" "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" +"Il peut y avoir un :file:turtle.cfg` dans le dossier où se situe :mod:" +"`turtle` et un autre dans le dossier de travail courant. Ce dernier prendra " +"le dessus." #: ../Doc/library/turtle.rst:2277 msgid "" @@ -2271,31 +2725,42 @@ msgid "" "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" +"Le dossier :file:`Lib/turtledemo` contient un fichier :file:`turtle.cfg`. " +"Vous pouvez le prendre comme exemple et voir ses effets lorsque vous lancez " +"les démos (il est préférable de ne pas le faire depuis la visionneuse de " +"démos)." #: ../Doc/library/turtle.rst:2283 msgid ":mod:`turtledemo` --- Demo scripts" -msgstr "" +msgstr ":mod:`turtledemo` — Scripts de démonstration" #: ../Doc/library/turtle.rst:2288 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" msgstr "" +"Le paquet :mod:`turtledemo` inclut un ensemble de scripts de démonstration. " +"Ces scripts peuvent être lancés et observés en utilisant la visionneuse de " +"démos comme suit ::" #: ../Doc/library/turtle.rst:2293 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" +"Alternativement, vous pouvez lancer les scripts de démo individuellement. " +"Par exemple ::" #: ../Doc/library/turtle.rst:2297 msgid "The :mod:`turtledemo` package directory contains:" -msgstr "" +msgstr "Le paquet :mod:`turtledemo` contient :" #: ../Doc/library/turtle.rst:2299 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." msgstr "" +"Une visionneuse :file:`__main__.py` qui peut être utilisée pour lire le code " +"source de ces scripts et pour les faire tourner en même temps." #: ../Doc/library/turtle.rst:2301 msgid "" @@ -2303,16 +2768,21 @@ msgid "" "module. Examples can be accessed via the Examples menu. They can also be " "run standalone." msgstr "" +"Plusieurs script présentent les différentes fonctionnalités du module :mod:" +"`turtle`. Les exemples peuvent être consultés via le menu *Examples*. Ils " +"peuvent aussi être lancés de manière autonome." #: ../Doc/library/turtle.rst:2304 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" +"Un fichier exemple :file:`turtle.cfg` montrant comment rédiger de tels " +"fichiers." #: ../Doc/library/turtle.rst:2307 msgid "The demo scripts are:" -msgstr "" +msgstr "Les scripts de démonstration sont :" #: ../Doc/library/turtle.rst:2312 msgid "Name" @@ -2324,226 +2794,236 @@ msgstr "Description" #: ../Doc/library/turtle.rst:2312 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/library/turtle.rst:2314 msgid "bytedesign" -msgstr "" +msgstr "*bytedesign*" #: ../Doc/library/turtle.rst:2314 msgid "complex classical turtle graphics pattern" -msgstr "" +msgstr "motif complexe de la tortue graphique classique" #: ../Doc/library/turtle.rst:2314 msgid ":func:`tracer`, delay, :func:`update`" -msgstr "" +msgstr ":func:`tracer`, temps mort, :func:`update`" #: ../Doc/library/turtle.rst:2317 msgid "chaos" -msgstr "" +msgstr "chaos" #: ../Doc/library/turtle.rst:2317 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" +"graphiques dynamiques de Verhulst, cela démontre que les calculs de " +"l'ordinateur peuvent générer des résultats qui vont parfois à l'encontre du " +"bon sens" #: ../Doc/library/turtle.rst:2317 msgid "world coordinates" -msgstr "" +msgstr "*world coordinates*" #: ../Doc/library/turtle.rst:2323 msgid "clock" -msgstr "" +msgstr "*clock*" #: ../Doc/library/turtle.rst:2323 msgid "analog clock showing time of your computer" -msgstr "" +msgstr "horloge analogique indiquant l'heure de votre ordinateur" #: ../Doc/library/turtle.rst:2323 msgid "turtles as clock's hands, ontimer" -msgstr "" +msgstr "tortues sous forme des aiguilles d'horloge, sur minuterie" #: ../Doc/library/turtle.rst:2326 msgid "colormixer" -msgstr "" +msgstr "*colormixer* (mélangeur de couleurs)" #: ../Doc/library/turtle.rst:2326 msgid "experiment with r, g, b" -msgstr "" +msgstr "des expériences en rouge, vert, bleu" #: ../Doc/library/turtle.rst:2328 msgid "forest" -msgstr "" +msgstr "*forest* (forêt)" #: ../Doc/library/turtle.rst:2328 msgid "3 breadth-first trees" -msgstr "" +msgstr "3 arbres tracés par un parcours en largeur" #: ../Doc/library/turtle.rst:2328 msgid "randomization" -msgstr "" +msgstr "*randomization* (répartition aléatoire)" #: ../Doc/library/turtle.rst:2330 msgid "fractalcurves" -msgstr "" +msgstr "*fractalcurves*" #: ../Doc/library/turtle.rst:2330 msgid "Hilbert & Koch curves" -msgstr "" +msgstr "Courbes de Hilbert et de Koch" #: ../Doc/library/turtle.rst:2330 msgid "recursion" -msgstr "" +msgstr "récursivité" #: ../Doc/library/turtle.rst:2332 msgid "lindenmayer" -msgstr "" +msgstr "*lindenmayer*" #: ../Doc/library/turtle.rst:2332 msgid "ethnomathematics (indian kolams)" -msgstr "" +msgstr "ethnomathématiques (kolams indiens)" #: ../Doc/library/turtle.rst:2332 msgid "L-System" -msgstr "" +msgstr "*L-Système*" #: ../Doc/library/turtle.rst:2335 msgid "minimal_hanoi" -msgstr "" +msgstr "*minimal_hanoi*" #: ../Doc/library/turtle.rst:2335 msgid "Towers of Hanoi" -msgstr "" +msgstr "Tours de Hanoï" #: ../Doc/library/turtle.rst:2335 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" msgstr "" +"Des tortues rectangulaires à la place des disques (*shape*, *shapesize*)" #: ../Doc/library/turtle.rst:2339 msgid "nim" -msgstr "" +msgstr "*nim*" #: ../Doc/library/turtle.rst:2339 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" +"jouez au classique jeu de *nim* avec trois piles de bâtons contre " +"l'ordinateur." #: ../Doc/library/turtle.rst:2339 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" +"tortues en tant que bâtons de *nim*, géré par des événements (clavier et " +"souris)" #: ../Doc/library/turtle.rst:2343 msgid "paint" -msgstr "" +msgstr "*paint* (peinture)" #: ../Doc/library/turtle.rst:2343 msgid "super minimalistic drawing program" -msgstr "" +msgstr "programme de dessin extra minimaliste" #: ../Doc/library/turtle.rst:2346 msgid "peace" -msgstr "" +msgstr "*peace* (paix)" #: ../Doc/library/turtle.rst:2346 msgid "elementary" -msgstr "" +msgstr "basique" #: ../Doc/library/turtle.rst:2346 msgid "turtle: appearance and animation" -msgstr "" +msgstr "tortue : apparence et animation" #: ../Doc/library/turtle.rst:2349 msgid "penrose" -msgstr "" +msgstr "*penrose*" #: ../Doc/library/turtle.rst:2349 msgid "aperiodic tiling with kites and darts" -msgstr "" +msgstr "tuiles apériodiques avec cerfs-volants et fléchettes" #: ../Doc/library/turtle.rst:2352 msgid "planet_and_moon" -msgstr "" +msgstr "*planet_and_moon* (planète et lune)" #: ../Doc/library/turtle.rst:2352 msgid "simulation of gravitational system" -msgstr "" +msgstr "simulation d'un système gravitationnel" #: ../Doc/library/turtle.rst:2352 msgid "compound shapes, :class:`Vec2D`" -msgstr "" +msgstr "formes composées, :class:`Vec2D`" #: ../Doc/library/turtle.rst:2355 msgid "round_dance" -msgstr "" +msgstr "*round_dance*" #: ../Doc/library/turtle.rst:2355 msgid "dancing turtles rotating pairwise in opposite direction" -msgstr "" +msgstr "tortues dansantes tournant par paires en sens inverse" #: ../Doc/library/turtle.rst:2355 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" msgstr "" +"formes composées, clones de la forme (*shapesize*), rotation, " +"*get_shapepoly*, *update*" #: ../Doc/library/turtle.rst:2359 msgid "sorting_animate" -msgstr "" +msgstr "*sorting_animate*" #: ../Doc/library/turtle.rst:2359 msgid "visual demonstration of different sorting methods" -msgstr "" +msgstr "démonstration visuelle des différentes méthodes de classement" #: ../Doc/library/turtle.rst:2359 msgid "simple alignment, randomization" -msgstr "" +msgstr "alignement simple, répartition aléatoire" #: ../Doc/library/turtle.rst:2362 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/turtle.rst:2362 msgid "a (graphical) breadth first tree (using generators)" -msgstr "" +msgstr "un arbre (tracé) par un parcours en largeur (à l’aide de générateurs)" #: ../Doc/library/turtle.rst:2365 msgid "two_canvases" -msgstr "" +msgstr "*two_canvases* (deux toiles)" #: ../Doc/library/turtle.rst:2365 msgid "simple design" -msgstr "" +msgstr "design simple" #: ../Doc/library/turtle.rst:2365 msgid "turtles on two canvases" -msgstr "" +msgstr "tortues sur deux canevas" #: ../Doc/library/turtle.rst:2368 msgid "wikipedia" -msgstr "" +msgstr "*wikipedia*" #: ../Doc/library/turtle.rst:2368 msgid "a pattern from the wikipedia article on turtle graphics" -msgstr "" +msgstr "un motif issu de l'article de *wikipedia* sur la tortue graphique" #: ../Doc/library/turtle.rst:2368 msgid ":func:`clone`, :func:`undo`" -msgstr "" +msgstr ":func:`clone`, :func:`undo`" #: ../Doc/library/turtle.rst:2371 msgid "yinyang" -msgstr "" +msgstr "*yinyang*" #: ../Doc/library/turtle.rst:2371 msgid "another elementary example" -msgstr "" +msgstr "un autre exemple élémentaire" #: ../Doc/library/turtle.rst:2374 msgid "Have fun!" -msgstr "" +msgstr "Amusez-vous !" #: ../Doc/library/turtle.rst:2378 msgid "Changes since Python 2.6" -msgstr "" +msgstr "Modifications depuis Python 2.6" #: ../Doc/library/turtle.rst:2380 msgid "" @@ -2554,6 +3034,12 @@ msgid "" "2.6 these methods were merely duplications of the corresponding :class:" "`TurtleScreen`/:class:`Screen`-methods.)" msgstr "" +"Les méthodes :meth:`Turtle.tracer`, :meth:`Turtle.window_width` et :meth:" +"`Turtle.window_height` ont été supprimées. Seule :class:`Screen` définit " +"maintenant des méthodes avec ces noms et fonctionnalités. Les fonction " +"dérivées de ces méthodes restent disponibles. (En réalité, déjà en Python " +"2.6 ces méthodes n'étaient que de simples duplicatas des méthodes " +"correspondantes des classes :class:`TurtleScreen`/:class:`Screen`)" #: ../Doc/library/turtle.rst:2388 msgid "" @@ -2561,6 +3047,9 @@ msgid "" "`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" "process must be completed with an ``end_fill()`` call." msgstr "" +"La méthode :meth:`Turtle.fill` à été supprimée. Le fonctionnement de :meth:" +"`begin_fill` et :meth:`end_fill` a légèrement changé : chaque opération de " +"remplissage doit maintenant se terminer par un appel à ``end_fill()``." #: ../Doc/library/turtle.rst:2393 msgid "" @@ -2568,10 +3057,13 @@ msgid "" "``True`` if a filling process is under way, ``False`` otherwise. This " "behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." msgstr "" +"La méthode :meth:`Turtle.filling` a été ajoutée. Elle renvoie le booléen " +"``True`` si une opération de remplissage est en cours,``False`` sinon. Ce " +"comportement correspond à un appel à ``fill()`` sans argument en Python 2.6." #: ../Doc/library/turtle.rst:2399 msgid "Changes since Python 3.0" -msgstr "" +msgstr "Modifications depuis Python 3.0" #: ../Doc/library/turtle.rst:2401 msgid "" @@ -2581,6 +3073,12 @@ msgid "" "`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " "get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." msgstr "" +"Les méthodes :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` et :" +"meth:`Turtle.get_shapepoly` on été ajoutées. Ainsi, la gamme complète des " +"transformations linéaires habituelles est maintenant disponible pour " +"modifier les formes de la tortue. La méthode :meth:`Turtle.tiltangle` a été " +"améliorée : Elle peut maintenant récupérer ou définir l'angle " +"d'inclinaison. :meth:`Turtle.settiltangle` est désormais obsolète." #: ../Doc/library/turtle.rst:2408 msgid "" @@ -2588,6 +3086,10 @@ msgid "" "`Screen.onkey` which in fact binds actions to the keyrelease event. " "Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." msgstr "" +"La méthode :meth:`Screen.onkeypress` a été ajoutée en complément à :meth:" +"`Screen.onkey` qui lie des actions à des relâchements de touches. En " +"conséquence, ce dernier s'est vu doté d'un alias : :meth:`Screen." +"onkeyrelease`." #: ../Doc/library/turtle.rst:2412 msgid "" @@ -2595,6 +3097,9 @@ msgid "" "with Screen and Turtle objects one must not additionally import :func:" "`mainloop` anymore." msgstr "" +"La méthode :meth:`Screen.mainloop` à été ajoutée. Ainsi, lorsque vous " +"travaillez uniquement avec des objets Screen et Turtle, vous n'avez plus " +"besoin d'importer :func:`mainloop`." #: ../Doc/library/turtle.rst:2416 msgid "" @@ -2602,9 +3107,14 @@ msgid "" "numinput`. These popup input dialogs and return strings and numbers " "respectively." msgstr "" +"Deux méthodes d'entrées ont été ajoutées : :meth:`Screen.textinput` et :meth:" +"`Screen.numinput`. Ces dialogues d'entrées renvoient des chaînes de " +"caractères et des nombres respectivement." #: ../Doc/library/turtle.rst:2420 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." msgstr "" +"Deux exemples de scripts :file:`tdemo_nim.py` et :file:`tdemo_round_dance." +"py` ont été ajoutés au répertoire :file:`Lib/turtledemo`." diff --git a/library/typing.po b/library/typing.po index 99ffdb33a..b664a9714 100644 --- a/library/typing.po +++ b/library/typing.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/typing.rst:2 msgid ":mod:`typing` --- Support for type hints" -msgstr "" +msgstr ":mod:`typing` — Prise en charge des annotations de type" #: ../Doc/library/typing.rst:9 msgid "**Source code:** :source:`Lib/typing.py`" @@ -46,6 +46,8 @@ msgstr "" msgid "" "The function below takes and returns a string and is annotated as follows::" msgstr "" +"La fonction ci-dessous prend et renvoie une chaîne de caractères, et est " +"annotée comme suit ::" #: ../Doc/library/typing.rst:32 msgid "" @@ -53,10 +55,13 @@ msgid "" "type :class:`str` and the return type :class:`str`. Subtypes are accepted as " "arguments." msgstr "" +"La fonction ``greeting`` s'attend à ce que l'argument ``name`` soit de type :" +"class:`str` et le type de retour :class:`str`. Les sous-types sont acceptés " +"comme arguments." #: ../Doc/library/typing.rst:37 msgid "Type aliases" -msgstr "" +msgstr "Alias de type" #: ../Doc/library/typing.rst:39 msgid "" @@ -69,26 +74,34 @@ msgid "" "Type aliases are useful for simplifying complex type signatures. For " "example::" msgstr "" +"Les alias de type sont utiles pour simplifier les signatures complexes. Par " +"exemple ::" #: ../Doc/library/typing.rst:69 msgid "" "Note that ``None`` as a type hint is a special case and is replaced by " "``type(None)``." msgstr "" +"Notez que ``None`` comme indication de type est un cas particulier et est " +"remplacé par ``type(None)``." #: ../Doc/library/typing.rst:75 msgid "NewType" -msgstr "" +msgstr "*NewType*" #: ../Doc/library/typing.rst:77 msgid "Use the :func:`NewType` helper function to create distinct types::" msgstr "" +"Aidez-vous de la fonction :func:`NewType` pour créer des types distincts ::" #: ../Doc/library/typing.rst:84 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. This is useful in helping catch logical errors::" msgstr "" +"Le vérificateur de type statique traite le nouveau type comme s'il " +"s'agissait d'une sous-classe du type original. C'est utile pour aider à " +"détecter les erreurs logiques ::" #: ../Doc/library/typing.rst:96 msgid "" @@ -97,6 +110,11 @@ msgid "" "pass in a ``UserId`` wherever an ``int`` might be expected, but will prevent " "you from accidentally creating a ``UserId`` in an invalid way::" msgstr "" +"Vous pouvez toujours effectuer toutes les opérations applicables à un entier " +"(type ``int``) sur une variable de type ``UserId``, mais le résultat sera " +"toujours de type ``int``. Ceci vous permet de passer un ``UserId`` partout " +"où un ``int`` est attendu, mais vous empêche de créer accidentellement un " +"``UserId`` d'une manière invalide ::" #: ../Doc/library/typing.rst:104 msgid "" @@ -112,26 +130,33 @@ msgid "" "More precisely, the expression ``some_value is Derived(some_value)`` is " "always true at runtime." msgstr "" +"Plus précisément, l'expression ``some_value is Derived(some_value)`` est " +"toujours vraie au moment de l'exécution." #: ../Doc/library/typing.rst:113 msgid "" "This also means that it is not possible to create a subtype of ``Derived`` " "since it is an identity function at runtime, not an actual type::" msgstr "" +"Cela signifie également qu'il n'est pas possible de créer un sous-type de " +"``Derived`` puisqu'il s'agit d'une fonction d'identité au moment de " +"l'exécution, pas d'un type réel ::" #: ../Doc/library/typing.rst:123 msgid "" "However, it is possible to create a :func:`NewType` based on a 'derived' " "``NewType``::" msgstr "" +"Cependant, il est possible de créer un :func:`NewType` basé sur un " +"``NewType`` « dérivé » ::" #: ../Doc/library/typing.rst:131 msgid "and typechecking for ``ProUserId`` will work as expected." -msgstr "" +msgstr "et la vérification de type pour ``ProUserId`` fonctionne comme prévu." #: ../Doc/library/typing.rst:133 msgid "See :pep:`484` for more details." -msgstr "" +msgstr "Voir la :pep:`484` pour plus de détails." #: ../Doc/library/typing.rst:137 msgid "" @@ -140,6 +165,11 @@ msgid "" "treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. " "This is useful when you want to simplify complex type signatures." msgstr "" +"Rappelons que l'utilisation d'un alias de type déclare que deux types sont " +"*équivalents* l'un à l'autre. Écrire ``Alias = Original`` fait que le " +"vérificateur de type statique traite ``Alias`` comme étant *exactement " +"équivalent* à ``Original`` dans tous les cas. C'est utile lorsque vous " +"voulez simplifier des signatures complexes." #: ../Doc/library/typing.rst:142 msgid "" @@ -150,16 +180,26 @@ msgid "" "``Derived`` is expected. This is useful when you want to prevent logic " "errors with minimal runtime cost." msgstr "" +"En revanche, ``NewType`` déclare qu'un type est un *sous-type* d'un autre. " +"Écrire ``Derived = NewType('Derived', Original)`` fait en sorte que le " +"vérificateur de type statique traite ``Derived`` comme une *sous-classe* de " +"``Original``, ce qui signifie qu'une valeur de type ``Original`` ne peut " +"être utilisée dans les endroits où une valeur de type ``Derived`` est " +"prévue. C'est utile lorsque vous voulez éviter les erreurs logiques avec un " +"coût d'exécution minimal." #: ../Doc/library/typing.rst:152 msgid "Callable" -msgstr "" +msgstr "Appelable" #: ../Doc/library/typing.rst:154 msgid "" "Frameworks expecting callback functions of specific signatures might be type " "hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." msgstr "" +"Les cadriciels (*frameworks* en anglais) qui attendent des fonctions de " +"rappel ayant des signatures spécifiques peuvent être typés en utilisant " +"``Callable[[Arg1Type, Arg2Type], ReturnType]``." #: ../Doc/library/typing.rst:157 msgid "For example::" @@ -171,10 +211,13 @@ msgid "" "the call signature by substituting a literal ellipsis for the list of " "arguments in the type hint: ``Callable[..., ReturnType]``." msgstr "" +"Il est possible de déclarer le type de retour d'un appelable sans spécifier " +"la signature de l'appel en indiquant des points de suspension à la liste des " +"arguments dans l'indice de type : ``Callable[..., ReturnType]``." #: ../Doc/library/typing.rst:173 msgid "Generics" -msgstr "" +msgstr "Génériques" #: ../Doc/library/typing.rst:175 msgid "" @@ -182,6 +225,11 @@ msgid "" "inferred in a generic way, abstract base classes have been extended to " "support subscription to denote expected types for container elements." msgstr "" +"Comme les informations de type sur les objets conservés dans des conteneurs " +"ne peuvent pas être déduites statiquement de manière générique, les classes " +"de base abstraites ont été étendues pour prendre en charge la sélection " +"(*subscription* en anglais) et indiquer les types attendus pour les éléments " +"de conteneur." #: ../Doc/library/typing.rst:186 msgid "" @@ -191,11 +239,13 @@ msgstr "" #: ../Doc/library/typing.rst:200 msgid "User-defined generic types" -msgstr "" +msgstr "Types génériques définis par l'utilisateur" #: ../Doc/library/typing.rst:202 msgid "A user-defined class can be defined as a generic class." msgstr "" +"Une classe définie par l'utilisateur peut être définie comme une classe " +"générique." #: ../Doc/library/typing.rst:228 msgid "" @@ -203,6 +253,9 @@ msgid "" "single type parameter ``T`` . This also makes ``T`` valid as a type within " "the class body." msgstr "" +"``Generic[T]`` en tant que classe de base définit que la classe " +"``LoggedVar`` prend un paramètre de type unique ``T``. Ceci rend également " +"``T`` valide en tant que type dans le corps de la classe." #: ../Doc/library/typing.rst:232 msgid "" @@ -215,25 +268,31 @@ msgid "" "A generic type can have any number of type variables, and type variables may " "be constrained::" msgstr "" +"Un type générique peut avoir un nombre quelconque de variables de type et " +"vous pouvez fixer des contraintes sur les variables de type ::" #: ../Doc/library/typing.rst:253 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" msgstr "" +"Chaque argument de variable de type :class:`Generic` doit être distinct. " +"Ceci n'est donc pas valable ::" #: ../Doc/library/typing.rst:264 msgid "You can use multiple inheritance with :class:`Generic`::" -msgstr "" +msgstr "Vous pouvez utiliser l'héritage multiple avec :class:`Generic` ::" #: ../Doc/library/typing.rst:273 msgid "" "When inheriting from generic classes, some type variables could be fixed::" msgstr "" +"Lors de l'héritage de classes génériques, certaines variables de type " +"peuvent être corrigées ::" #: ../Doc/library/typing.rst:282 msgid "In this case ``MyDict`` has a single parameter, ``T``." -msgstr "" +msgstr "Dans ce cas, ``MyDict`` a un seul paramètre, ``T``." #: ../Doc/library/typing.rst:284 msgid "" @@ -241,10 +300,16 @@ msgid "" "for each position. In the following example, ``MyIterable`` is not generic " "but implicitly inherits from ``Iterable[Any]``::" msgstr "" +"L'utilisation d'une classe générique sans spécifier de paramètres de type " +"suppose :data:`Any` pour chaque position. Dans l'exemple suivant, " +"``MyIterable`` n'est pas générique mais hérite implicitement de " +"``Iterable[Any]`` ::" #: ../Doc/library/typing.rst:292 msgid "User defined generic type aliases are also supported. Examples::" msgstr "" +"Les alias de type générique définis par l'utilisateur sont également pris en " +"charge. Exemples ::" #: ../Doc/library/typing.rst:308 msgid "" @@ -258,7 +323,7 @@ msgstr "" #: ../Doc/library/typing.rst:317 msgid "The :data:`Any` type" -msgstr "" +msgstr "Le type :data:`Any`" #: ../Doc/library/typing.rst:319 msgid "" @@ -266,6 +331,9 @@ msgid "" "every type as being compatible with :data:`Any` and :data:`Any` as being " "compatible with every type." msgstr "" +"Un type particulier est :data:`Any`. Un vérificateur de type statique traite " +"chaque type comme étant compatible avec :data:`Any` et :data:`Any` comme " +"étant compatible avec chaque type." #: ../Doc/library/typing.rst:323 msgid "" @@ -281,18 +349,27 @@ msgid "" "declared to be of type :class:`str` and receives an :class:`int` value at " "runtime!" msgstr "" +"Notez qu'aucun contrôle de typage n'est effectué lors de l'affectation d'une " +"valeur de type :data:`Any` à un type plus précis. Par exemple, le " +"vérificateur de type statique ne signale pas d'erreur lors de l'affectation " +"de ``a`` à ``s`` même si ``s`` était déclaré être de type :class:`str` et " +"reçoit une valeur :class:`int` au moment de son exécution !" #: ../Doc/library/typing.rst:347 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" msgstr "" +"De plus, toutes les fonctions sans type de retour ni type de paramètre sont " +"considérées comme utilisant :data:`Any` implicitement par défaut ::" #: ../Doc/library/typing.rst:360 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." msgstr "" +"Ce comportement permet à :data:`Any` d'être utilisé comme succédané lorsque " +"vous avez besoin de mélanger du code typé dynamiquement et statiquement." #: ../Doc/library/typing.rst:363 msgid "" @@ -301,6 +378,10 @@ msgid "" "unlike :data:`Any`, the reverse is not true: :class:`object` is *not* a " "subtype of every other type." msgstr "" +"Comparons le comportement de :data:`Any` avec celui de :class:`object`. De " +"la même manière que pour :data:`Any`, chaque type est un sous-type de :class:" +"`object`. Cependant, contrairement à :data:`Any`, l'inverse n'est pas " +"vrai : :class:`object` n'est *pas* un sous-type de chaque autre type." #: ../Doc/library/typing.rst:368 msgid "" @@ -309,12 +390,19 @@ msgid "" "it as a return value) of a more specialized type is a type error. For " "example::" msgstr "" +"Cela signifie que lorsque le type d'une valeur est :class:`object`, un " +"vérificateur de type rejette presque toutes les opérations sur celle-ci, et " +"l'affecter à une variable (ou l'utiliser comme une valeur de retour) d'un " +"type plus spécialisé est une erreur de typage. Par exemple ::" #: ../Doc/library/typing.rst:390 msgid "" "Use :class:`object` to indicate that a value could be any type in a typesafe " "manner. Use :data:`Any` to indicate that a value is dynamically typed." msgstr "" +"Utilisez :class:`object` pour indiquer qu'une valeur peut être de n'importe " +"quel type de manière sûre. Utiliser :data:`Any` pour indiquer qu'une valeur " +"est typée dynamiquement." #: ../Doc/library/typing.rst:394 msgid "Classes, functions, and decorators" @@ -326,7 +414,7 @@ msgstr "" #: ../Doc/library/typing.rst:400 msgid "Type variable." -msgstr "" +msgstr "Variables de type." #: ../Doc/library/typing.rst:402 ../Doc/library/typing.rst:810 msgid "Usage::" @@ -347,12 +435,19 @@ msgid "" "arguments are instances of some subclass of :class:`str`, the return type is " "still plain :class:`str`." msgstr "" +"La signature de ce dernier exemple est essentiellement la surcharge de " +"``(str, str) -> str`` et ``(bytes, bytes) -> bytes``. Notez également que si " +"les arguments sont des instances d'une sous-classe de la classe :class:" +"`str`, le type de retour est toujours la classe :class:`str`." #: ../Doc/library/typing.rst:425 msgid "" "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In general, :" "func:`isinstance` and :func:`issubclass` should not be used with types." msgstr "" +"Au moment de l'exécution, ``isinstance(x, T)`` va lever :exc:`TypeError`. En " +"général, :func:`isinstance` et :func:`issubclass` ne devraient pas être " +"utilisés avec les types." #: ../Doc/library/typing.rst:428 msgid "" @@ -363,10 +458,17 @@ msgid "" "an actual type substituted (explicitly or implicitly) for the type variable " "must be a subclass of the boundary type, see :pep:`484`." msgstr "" +"Les variables de type peuvent être marquées covariantes ou contravariantes " +"en passant ``covariant=True`` ou ``contravariant=True``. Voir la :pep:`484` " +"pour plus de détails. Par défaut, les variables de type sont invariantes. " +"Sinon, une variable de type peut spécifier une limite supérieure en " +"utilisant ``bound=``. Cela signifie qu'un type réel substitué " +"(explicitement ou implicitement) à la variable type doit être une sous-" +"classe du type frontière (*boundary* en anglais), voir la :pep:`484`." #: ../Doc/library/typing.rst:438 msgid "Abstract base class for generic types." -msgstr "" +msgstr "Classe de base abstraite pour les types génériques." #: ../Doc/library/typing.rst:440 msgid "" @@ -374,10 +476,13 @@ msgid "" "this class with one or more type variables. For example, a generic mapping " "type might be defined as::" msgstr "" +"Un type générique est généralement déclaré en héritant d'une instanciation " +"de cette classe avec une ou plusieurs variables de type. Par exemple, un " +"type de correspondance générique peut être défini comme suit ::" #: ../Doc/library/typing.rst:449 msgid "This class can then be used as follows::" -msgstr "" +msgstr "Cette classe peut alors être utilisée comme suit ::" #: ../Doc/library/typing.rst:462 msgid "" @@ -386,10 +491,14 @@ msgid "" "classes themselves -- specifically, it will accept the *class object* of " "``C``. For example::" msgstr "" +"Une variable annotée de ``C`` peut accepter une valeur de type ``C``. En " +"revanche, une variable annotée avec ``Type[C]`` peut accepter des valeurs " +"qui sont elles-mêmes des classes — plus précisément, elle accepte l'objet " +"*class* de ``C``. Par exemple ::" #: ../Doc/library/typing.rst:471 msgid "Note that ``Type[C]`` is covariant::" -msgstr "" +msgstr "Notez que ``Type[C]`` est covariant ::" #: ../Doc/library/typing.rst:483 msgid "" @@ -400,6 +509,14 @@ msgid "" "the indicated base class. How the type checker is required to handle this " "particular case may change in future revisions of :pep:`484`." msgstr "" +"Le fait que ``Type[C]`` soit covariant implique que toutes les sous-classes " +"de ``C`` doivent implémenter la même signature de constructeur et les " +"signatures de méthode de classe que ``C``. Le vérificateur de type doit " +"signaler les manquements à cette règle. Il doit également autoriser les " +"appels du constructeur dans les sous-classes qui correspondent aux appels du " +"constructeur dans la classe de base indiquée. La façon dont le vérificateur " +"de type est tenu de traiter ce cas particulier peut changer dans les futures " +"révisions de :pep:`484`." #: ../Doc/library/typing.rst:491 msgid "" @@ -412,70 +529,76 @@ msgid "" "``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to " "``type``, which is the root of Python's metaclass hierarchy." msgstr "" +"``Type[Any]`` est équivalent à ``Type`` qui à son tour est équivalent à " +"``type``, qui est la racine de la hiérarchie des métaclasses de Python." #: ../Doc/library/typing.rst:503 msgid "A generic version of :class:`collections.abc.Iterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterable`." #: ../Doc/library/typing.rst:507 msgid "A generic version of :class:`collections.abc.Iterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterator`." #: ../Doc/library/typing.rst:511 msgid "A generic version of :class:`collections.abc.Reversible`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Reversible`." #: ../Doc/library/typing.rst:515 msgid "An ABC with one abstract method ``__int__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__int__``." #: ../Doc/library/typing.rst:519 msgid "An ABC with one abstract method ``__float__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__float__``." #: ../Doc/library/typing.rst:523 msgid "An ABC with one abstract method ``__complex__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__complex__``." #: ../Doc/library/typing.rst:527 msgid "An ABC with one abstract method ``__bytes__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__bytes__``." #: ../Doc/library/typing.rst:531 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" +"Une ABC avec une méthode abstraite ``__abs__`` qui est covariante dans son " +"type de retour." #: ../Doc/library/typing.rst:536 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" +"Une ABC avec une méthode abstraite ``__round__`` qui est covariante dans son " +"type de retour." #: ../Doc/library/typing.rst:541 msgid "A generic version of :class:`collections.abc.Container`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Container`." #: ../Doc/library/typing.rst:545 msgid "An alias to :class:`collections.abc.Hashable`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Hashable`" #: ../Doc/library/typing.rst:549 msgid "An alias to :class:`collections.abc.Sized`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Sized`" #: ../Doc/library/typing.rst:553 msgid "A generic version of :class:`collections.abc.Collection`" -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Collection`" #: ../Doc/library/typing.rst:559 msgid "A generic version of :class:`collections.abc.Set`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Set`." #: ../Doc/library/typing.rst:563 msgid "A generic version of :class:`collections.abc.MutableSet`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSet`." #: ../Doc/library/typing.rst:567 msgid "A generic version of :class:`collections.abc.Mapping`." @@ -483,19 +606,19 @@ msgstr "" #: ../Doc/library/typing.rst:571 msgid "A generic version of :class:`collections.abc.MutableMapping`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableMapping`." #: ../Doc/library/typing.rst:575 msgid "A generic version of :class:`collections.abc.Sequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Sequence`." #: ../Doc/library/typing.rst:579 msgid "A generic version of :class:`collections.abc.MutableSequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSequence`." #: ../Doc/library/typing.rst:583 msgid "A generic version of :class:`collections.abc.ByteString`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ByteString`." #: ../Doc/library/typing.rst:585 msgid "" @@ -508,10 +631,12 @@ msgid "" "As a shorthand for this type, :class:`bytes` can be used to annotate " "arguments of any of the types mentioned above." msgstr "" +"Comme abréviation pour ce type, :class:`bytes` peut être utilisé pour " +"annoter des arguments de n'importe quel type mentionné ci-dessus." #: ../Doc/library/typing.rst:593 msgid "A generic version of :class:`collections.deque`." -msgstr "" +msgstr "Une version générique de :class:`collections.deque`." #: ../Doc/library/typing.rst:599 msgid "" @@ -522,7 +647,7 @@ msgstr "" #: ../Doc/library/typing.rst:604 msgid "This type may be used as follows::" -msgstr "" +msgstr "Ce type peut être utilisé comme suit ::" #: ../Doc/library/typing.rst:616 msgid "A generic version of :class:`builtins.set `." @@ -530,27 +655,27 @@ msgstr "" #: ../Doc/library/typing.rst:620 msgid "A generic version of :class:`builtins.frozenset `." -msgstr "" +msgstr "Une version générique de :class:`builtins.frozenset `." #: ../Doc/library/typing.rst:624 msgid "A generic version of :class:`collections.abc.MappingView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MappingView`." #: ../Doc/library/typing.rst:628 msgid "A generic version of :class:`collections.abc.KeysView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.KeysView`." #: ../Doc/library/typing.rst:632 msgid "A generic version of :class:`collections.abc.ItemsView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ItemsView`." #: ../Doc/library/typing.rst:636 msgid "A generic version of :class:`collections.abc.ValuesView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ValuesView`." #: ../Doc/library/typing.rst:640 msgid "A generic version of :class:`collections.abc.Awaitable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Awaitable`." #: ../Doc/library/typing.rst:644 msgid "" @@ -558,18 +683,21 @@ msgid "" "order of type variables correspond to those of :class:`Generator`, for " "example::" msgstr "" +"Une version générique de :class:`collections.abc.Coroutine`. La variance et " +"l'ordre des variables de type correspondent à ceux de la classe :class:" +"`Generator`, par exemple ::" #: ../Doc/library/typing.rst:657 msgid "A generic version of :class:`collections.abc.AsyncIterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterable`." #: ../Doc/library/typing.rst:661 msgid "A generic version of :class:`collections.abc.AsyncIterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterator`." #: ../Doc/library/typing.rst:665 msgid "A generic version of :class:`contextlib.AbstractContextManager`." -msgstr "" +msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." #: ../Doc/library/typing.rst:671 msgid "" @@ -583,21 +711,23 @@ msgstr "" #: ../Doc/library/typing.rst:686 msgid "A generic version of :class:`collections.defaultdict`." -msgstr "" +msgstr "Une version générique de :class:`collections.defaultdict`." #: ../Doc/library/typing.rst:692 msgid "A generic version of :class:`collections.Counter`." -msgstr "" +msgstr "Une version générique de :class:`collections.Counter`." #: ../Doc/library/typing.rst:698 msgid "A generic version of :class:`collections.ChainMap`." -msgstr "" +msgstr "Une version générique de :class:`collections.ChainMap`." #: ../Doc/library/typing.rst:704 msgid "" "A generator can be annotated by the generic type ``Generator[YieldType, " "SendType, ReturnType]``. For example::" msgstr "" +"Un générateur peut être annoté par le type générique ``Generator[YieldType, " +"SendType, ReturnType]``. Par exemple ::" #: ../Doc/library/typing.rst:713 msgid "" @@ -605,24 +735,33 @@ msgid "" "of :class:`Generator` behaves contravariantly, not covariantly or " "invariantly." msgstr "" +"Notez que contrairement à beaucoup d'autres génériques dans le module " +"*typing*, le ``SendType`` de :class:`Generator` se comporte de manière " +"contravariante, pas de manière covariante ou invariante." #: ../Doc/library/typing.rst:717 msgid "" "If your generator will only yield values, set the ``SendType`` and " "``ReturnType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez les paramètres " +"``SendType`` et ``ReturnType`` sur ``None`` ::" #: ../Doc/library/typing.rst:725 msgid "" "Alternatively, annotate your generator as having a return type of either " "``Iterable[YieldType]`` or ``Iterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``Iterable[YieldType]`` ou ``Iterator[YieldType]`` ::" #: ../Doc/library/typing.rst:735 msgid "" "An async generator can be annotated by the generic type " "``AsyncGenerator[YieldType, SendType]``. For example::" msgstr "" +"Un générateur asynchrone peut être annoté par le type générique " +"``AsyncGenerator[YieldType, SendType]``. Par exemple ::" #: ../Doc/library/typing.rst:744 msgid "" @@ -630,17 +769,25 @@ msgid "" "is no ``ReturnType`` type parameter. As with :class:`Generator`, the " "``SendType`` behaves contravariantly." msgstr "" +"Contrairement aux générateurs normaux, les générateurs asynchrones ne " +"peuvent pas renvoyer une valeur, il n'y a donc pas de paramètre de type " +"``ReturnType``. Comme avec :class:`Generator`, le ``SendType`` se comporte " +"de manière contravariante." #: ../Doc/library/typing.rst:748 msgid "" "If your generator will only yield values, set the ``SendType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez le paramètre " +"``SendType`` sur ``None`` ::" #: ../Doc/library/typing.rst:756 msgid "" "Alternatively, annotate your generator as having a return type of either " "``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``AsyncIterable[YieldType]`` ou ``AsyncIterator[YieldType]`` ::" #: ../Doc/library/typing.rst:768 msgid "" @@ -648,12 +795,17 @@ msgid "" "compatible path for Python 2 code: in Python 2, ``Text`` is an alias for " "``unicode``." msgstr "" +"``Text`` est un alias pour ``str``. Il est fourni pour obtenir une " +"compatibilité ascendante du code Python 2 : en Python 2, ``Text`` est un " +"alias pour ``unicode``." #: ../Doc/library/typing.rst:772 msgid "" "Use ``Text`` to indicate that a value must contain a unicode string in a " "manner that is compatible with both Python 2 and Python 3::" msgstr "" +"Utilisez ``Text`` pour indiquer qu'une valeur doit contenir une chaîne " +"Unicode d'une manière compatible avec Python 2 et Python 3 ::" #: ../Doc/library/typing.rst:782 msgid "Wrapper namespace for I/O stream types." @@ -703,11 +855,15 @@ msgstr "C’est équivalent à ::" msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" +"Pour assigner une valeur par défaut à un champ, vous pouvez lui donner dans " +"le corps de classe ::" #: ../Doc/library/typing.rst:829 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" +"Les champs avec une valeur par défaut doivent venir après tous les champs " +"sans valeur par défaut." #: ../Doc/library/typing.rst:831 msgid "" @@ -720,18 +876,23 @@ msgstr "" #: ../Doc/library/typing.rst:836 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" +"Les sous-classes de ``NamedTuple`` peuvent aussi avoir des *docstrings* et " +"des méthodes ::" #: ../Doc/library/typing.rst:846 msgid "Backward-compatible usage::" -msgstr "" +msgstr "Utilisation rétrocompatible ::" #: ../Doc/library/typing.rst:850 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" +"Ajout de la gestion de la syntaxe d'annotation variable de la :pep:`526`." #: ../Doc/library/typing.rst:853 msgid "Added support for default values, methods, and docstrings." msgstr "" +"Ajout de la prise en charge des valeurs par défaut, des méthodes et des " +"chaînes de caractères *docstrings*." #: ../Doc/library/typing.rst:858 msgid "" @@ -742,7 +903,7 @@ msgstr "" #: ../Doc/library/typing.rst:869 msgid "Cast a value to a type." -msgstr "" +msgstr "Convertit une valeur en un type." #: ../Doc/library/typing.rst:871 msgid "" @@ -750,12 +911,18 @@ msgid "" "return value has the designated type, but at runtime we intentionally don't " "check anything (we want this to be as fast as possible)." msgstr "" +"Ceci renvoie la valeur inchangée. Pour le vérificateur de type, cela " +"signifie que la valeur de retour a le type désigné mais, à l'exécution, " +"intentionnellement, rien n'est vérifié (afin que cela soit aussi rapide que " +"possible)." #: ../Doc/library/typing.rst:878 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" +"renvoie un dictionnaire contenant des indications de type pour une fonction, " +"une méthode, un module ou un objet de classe." #: ../Doc/library/typing.rst:881 msgid "" @@ -766,6 +933,13 @@ msgid "" "``None`` is set. For a class ``C``, return a dictionary constructed by " "merging all the ``__annotations__`` along ``C.__mro__`` in reverse order." msgstr "" +"C'est souvent équivalent à ``obj.__annotations__``. De plus, les références " +"directes encodées sous forme de chaîne littérales sont traitées en les " +"évaluant dans les espaces de nommage ``globals`` et ``locals``. Si " +"nécessaire, ``Optional[t]`` est ajouté pour les annotations de fonction et " +"de méthode si une valeur par défaut égale à ``None`` est définie. Pour une " +"classe ``C``, renvoie un dictionnaire construit en fusionnant toutes les " +"``__annotations__`` en parcourant ``C.__mro__`` en ordre inverse." #: ../Doc/library/typing.rst:891 msgid "" @@ -785,10 +959,14 @@ msgstr "" #: ../Doc/library/typing.rst:915 msgid "See :pep:`484` for details and comparison with other typing semantics." msgstr "" +"Voir la :pep:`484` pour plus de détails et la comparaison avec d'autres " +"sémantiques de typage." #: ../Doc/library/typing.rst:919 msgid "Decorator to indicate that annotations are not type hints." msgstr "" +"Décorateur pour indiquer que les annotations ne sont pas des indications de " +"type." #: ../Doc/library/typing.rst:921 msgid "" @@ -796,64 +974,75 @@ msgid "" "recursively to all methods defined in that class (but not to methods defined " "in its superclasses or subclasses)." msgstr "" +"Cela fonctionne en tant que classe ou fonction :term:`décoratrice " +"`. Avec une classe, elle s'applique récursivement à toutes les " +"méthodes définies dans cette classe (mais pas aux méthodes définies dans ses " +"superclasses ou sous-classes)." #: ../Doc/library/typing.rst:925 msgid "This mutates the function(s) in place." -msgstr "" +msgstr "Cela fait muter la ou les fonctions en place." #: ../Doc/library/typing.rst:929 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" +"Décorateur pour donner à un autre décorateur l'effet :func:`no_type_check`." #: ../Doc/library/typing.rst:931 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" +"Ceci enveloppe le décorateur avec quelque chose qui enveloppe la fonction " +"décorée dans :func:`no_type_check`." #: ../Doc/library/typing.rst:936 msgid "Special type indicating an unconstrained type." -msgstr "" +msgstr "Type spécial indiquant un type non contraint." #: ../Doc/library/typing.rst:938 msgid "Every type is compatible with :data:`Any`." -msgstr "" +msgstr "Chaque type est compatible avec :data:`Any`." #: ../Doc/library/typing.rst:939 msgid ":data:`Any` is compatible with every type." -msgstr "" +msgstr ":data:`Any` est compatible avec tous les types." #: ../Doc/library/typing.rst:943 msgid "Special type indicating that a function never returns. For example::" -msgstr "" +msgstr "Type spécial indiquant qu'une fonction ne renvoie rien. Par exemple ::" #: ../Doc/library/typing.rst:955 msgid "Union type; ``Union[X, Y]`` means either X or Y." -msgstr "" +msgstr "Type « union » ; ``Union[X, Y]`` signifie X ou Y." #: ../Doc/library/typing.rst:957 msgid "To define a union, use e.g. ``Union[int, str]``. Details:" msgstr "" +"Pour définir une union, utilisez par exemple ``Union[int, str]``. Détail :" #: ../Doc/library/typing.rst:959 msgid "The arguments must be types and there must be at least one." msgstr "" +"Les arguments doivent être des types et il doit y en avoir au moins un." #: ../Doc/library/typing.rst:961 msgid "Unions of unions are flattened, e.g.::" -msgstr "" +msgstr "Les unions d'unions sont aplanies, par exemple ::" #: ../Doc/library/typing.rst:965 msgid "Unions of a single argument vanish, e.g.::" -msgstr "" +msgstr "Les unions d'un seul argument disparaissent, par exemple ::" #: ../Doc/library/typing.rst:969 msgid "Redundant arguments are skipped, e.g.::" -msgstr "" +msgstr "Les arguments redondants sont ignorés, par exemple ::" #: ../Doc/library/typing.rst:973 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" +"Lors de la comparaison d'unions, l'ordre des arguments est ignoré, par " +"exemple ::" #: ../Doc/library/typing.rst:977 msgid "" @@ -862,23 +1051,24 @@ msgstr "" #: ../Doc/library/typing.rst:981 msgid "You cannot subclass or instantiate a union." -msgstr "" +msgstr "Vous ne pouvez pas sous-classer ou instancier une union." #: ../Doc/library/typing.rst:983 msgid "You cannot write ``Union[X][Y]``." -msgstr "" +msgstr "Vous ne pouvez pas écrire ``Union[X][Y]``." #: ../Doc/library/typing.rst:985 msgid "You can use ``Optional[X]`` as a shorthand for ``Union[X, None]``." msgstr "" +"Vous pouvez utiliser l'abréviation ``Optional[X]`` pour ``Union[X, None]``." #: ../Doc/library/typing.rst:989 msgid "Optional type." -msgstr "" +msgstr "Type « optionnel »." #: ../Doc/library/typing.rst:991 msgid "``Optional[X]`` is equivalent to ``Union[X, None]``." -msgstr "" +msgstr "``Optional[X]`` équivaut à ``Union[X, None]``." #: ../Doc/library/typing.rst:993 msgid "" @@ -901,6 +1091,9 @@ msgid "" "variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an int, a " "float and a string." msgstr "" +"Exemple : ``Tuple[T1, T2]`` est une paire correspondant aux variables de " +"type ``T1`` et ``T2``. ``Tuple[int, float, str]`` est un triplet composé " +"d'un entier, d'un flottant et d'une chaîne de caractères." #: ../Doc/library/typing.rst:1009 msgid "" @@ -908,10 +1101,16 @@ msgid "" "ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to " "``Tuple[Any, ...]``, and in turn to :class:`tuple`." msgstr "" +"Pour spécifier un *n*-uplet de longueur variable et de type homogène, " +"utilisez une ellipse, par exemple ``Tuple[int, ....]``. Un *n*-uplet :data:" +"`Tuple` est équivalent à ``Tuple[Any, ....]`` et, à son tour, à :class:" +"`tuple`." #: ../Doc/library/typing.rst:1015 msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." msgstr "" +"Type Appelable. ``Callable[[int], str]`` est une fonction de type ``(int) -> " +"str``." #: ../Doc/library/typing.rst:1017 msgid "" @@ -919,6 +1118,10 @@ msgid "" "argument list and the return type. The argument list must be a list of " "types or an ellipsis; the return type must be a single type." msgstr "" +"La syntaxe de sélection (*subscription* en anglais) doit toujours être " +"utilisée avec exactement deux valeurs : la liste d'arguments et le type de " +"retour. La liste d'arguments doit être une liste de types ou une ellipse ; " +"il doit y avoir un seul type de retour." #: ../Doc/library/typing.rst:1022 msgid "" @@ -929,10 +1132,18 @@ msgid "" "equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc." "Callable`." msgstr "" +"Il n'y a pas de syntaxe pour indiquer les arguments optionnels ou les " +"arguments par mots-clés ; de tels types de fonctions sont rarement utilisés " +"comme types de rappel. ``Callable[..., ReturnType]`` (ellipse) peut être " +"utilisé pour annoter le type d'un appelable, prenant un nombre quelconque " +"d'arguments et renvoyant ``ReturnType``. Un simple :data:`Callable` est " +"équivalent à ``Callable[..., Any]`` et, à son tour, à :class:`collections." +"abc.Callable`." #: ../Doc/library/typing.rst:1032 msgid "Special type construct to mark class variables." msgstr "" +"Construction de type particulière pour indiquer les variables de classe." #: ../Doc/library/typing.rst:1034 msgid "" @@ -940,10 +1151,14 @@ msgid "" "indicates that a given attribute is intended to be used as a class variable " "and should not be set on instances of that class. Usage::" msgstr "" +"Telle qu'introduite dans la :pep:`526`, une annotation de variable " +"enveloppée dans ClassVar indique qu'un attribut donné est destiné à être " +"utilisé comme une variable de classe et ne doit pas être défini sur des " +"instances de cette classe. Utilisation ::" #: ../Doc/library/typing.rst:1042 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." -msgstr "" +msgstr ":data:`ClassVar` n'accepte que les types et ne peut plus être dérivé." #: ../Doc/library/typing.rst:1044 msgid "" @@ -952,24 +1167,36 @@ msgid "" "runtime behavior, but it can be used by third-party type checkers. For " "example, a type checker might flag the following code as an error::" msgstr "" +":data:`ClassVar` n'est pas une classe en soi, et ne devrait pas être " +"utilisée avec :func:`isinstance` ou :func:`issubclass`. :data:`ClassVar` ne " +"modifie pas le comportement d'exécution Python, mais il peut être utilisé " +"par des vérificateurs tiers. Par exemple, un vérificateur de type peut " +"marquer le code suivant comme une erreur ::" #: ../Doc/library/typing.rst:1058 msgid "" "``AnyStr`` is a type variable defined as ``AnyStr = TypeVar('AnyStr', str, " "bytes)``." msgstr "" +"``AnyStr`` est une variable de type définie comme ``AnyStr = " +"TypeVar('AnyStr', str, bytes)``." #: ../Doc/library/typing.rst:1061 msgid "" "It is meant to be used for functions that may accept any kind of string " "without allowing different kinds of strings to mix. For example::" msgstr "" +"Cela est destiné à être utilisé pour des fonctions qui peuvent accepter " +"n'importe quel type de chaîne de caractères sans permettre à différents " +"types de chaînes de caractères de se mélanger. Par exemple ::" #: ../Doc/library/typing.rst:1073 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It is ``False`` at runtime. Usage::" msgstr "" +"Constante spéciale qui vaut ``True`` pour les vérificateurs de type " +"statiques tiers et ``False`` à l'exécution. Utilisation ::" #: ../Doc/library/typing.rst:1082 msgid "" diff --git a/library/uuid.po b/library/uuid.po index 7a98ccb25..5b61e7fd5 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/uuid.rst:2 msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" -msgstr "" +msgstr ":mod:`uuid` — Objets UUID d'après la :rfc:`4122`" #: ../Doc/library/uuid.rst:9 msgid "**Source code:** :source:`Lib/uuid.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/uuid.py`" #: ../Doc/library/uuid.rst:13 msgid "" @@ -32,6 +32,10 @@ msgid "" "`uuid5` for generating version 1, 3, 4, and 5 UUIDs as specified in :rfc:" "`4122`." msgstr "" +"Ce module exporte des objets :class:`UUID` immuables (de la classe :class:" +"`UUID`) et les fonctions :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, :func:" +"`uuid5` permettant de générer des UUID de version 1, 3, 4 et 5 tels que " +"définis dans la :rfc:`4122`." #: ../Doc/library/uuid.rst:17 msgid "" @@ -40,6 +44,10 @@ msgid "" "creates a UUID containing the computer's network address. :func:`uuid4` " "creates a random UUID." msgstr "" +"Utilisez :func:`uuid1` ou :func:`uuid4` si votre but est de produire un " +"identifiant unique. Notez que :func:`uuid1` peut dévoiler des informations " +"personnelles car l'UUID produit contient l'adresse réseau de l'ordinateur. " +"En revanche, :func:`uuid4` génère un UUID aléatoire." #: ../Doc/library/uuid.rst:25 msgid "" @@ -52,6 +60,15 @@ msgid "" "string of hex digits is given, curly braces, hyphens, and a URN prefix are " "all optional. For example, these expressions all yield the same UUID::" msgstr "" +"Produit un UUID à partir soit d'une chaîne de 32 chiffres hexadécimaux, soit " +"une chaîne de 16 octets gros-boutiste (argument *bytes*), soit une chaîne de " +"16 octets petit-boutiste (argument *bytes_le*), soit un sextuplet d'entiers " +"(32-bit *time_low*, 16-bit *time_mid*, 16-bit *time_hi_version*, 8-bit " +"*clock_seq_hi_variant*, 8-bit *clock_seq_low*, 48-bit *node*) (argument " +"*fields*), soit un unique entier sur 128 bits (argument *int*). Lorsque la " +"fonction reçoit une chaîne de chiffres hexadécimaux, les accolades, les " +"tirets et le préfixe URN sont facultatifs. Par exemple, toutes les " +"expressions ci-dessous génèrent le même UUID ::" #: ../Doc/library/uuid.rst:44 msgid "" @@ -60,6 +77,11 @@ msgid "" "its variant and version number set according to :rfc:`4122`, overriding bits " "in the given *hex*, *bytes*, *bytes_le*, *fields*, or *int*." msgstr "" +"Un seul des arguments *hex*, *bytes*, *bytes_le*, *fields* ou *int* doit " +"être spécifié. L'argument *version* est optionnel : s'il est spécifié, " +"l'UUID généré aura pour numéro de version et de variante la valeur indiquée " +"dans la :rfc:`4122`, remplaçant les bits idoines de *hex*, *bytes*, " +"*bytes_le*, *fields* ou *int*." #: ../Doc/library/uuid.rst:49 msgid "" @@ -67,6 +89,9 @@ msgid "" "int` attributes. Comparison with a non-UUID object raises a :exc:" "`TypeError`." msgstr "" +"La comparaison de deux objets UUID se fait en comparant leurs attributs :" +"attr:`UUID.int`. La comparaison avec un objet autre qu'un UUID lève une " +"exception :exc:`TypeError`." #: ../Doc/library/uuid.rst:53 msgid "" @@ -74,32 +99,43 @@ msgid "" "``12345678-1234-5678-1234-567812345678`` where the 32 hexadecimal digits " "represent the UUID." msgstr "" +"``str(uuid)`` renvoie une chaîne de caractères de la forme " +"``12345678-1234-5678-1234-567812345678`` représentant l'UUID par une chaîne " +"de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:57 msgid ":class:`UUID` instances have these read-only attributes:" msgstr "" +"Les instances de :class:`UUID` possèdent les attributs suivants en lecture " +"seule :" #: ../Doc/library/uuid.rst:61 msgid "" "The UUID as a 16-byte string (containing the six integer fields in big-" "endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (contenant les six champs " +"entiers dans l'ordre gros-boutiste)." #: ../Doc/library/uuid.rst:67 msgid "" "The UUID as a 16-byte string (with *time_low*, *time_mid*, and " "*time_hi_version* in little-endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (avec *time_low*, *time_mid* " +"et *time_hi_version* dans l'ordre petit-boutiste)." #: ../Doc/library/uuid.rst:73 msgid "" "A tuple of the six integer fields of the UUID, which are also available as " "six individual attributes and two derived attributes:" msgstr "" +"Un sextuplet contenant les champs entiers de l'UUID, également accessibles " +"en tant que six attributs individuels et deux attributs dérivés :" #: ../Doc/library/uuid.rst:77 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/uuid.rst:77 msgid "Meaning" @@ -111,7 +147,7 @@ msgstr ":attr:`time_low`" #: ../Doc/library/uuid.rst:79 msgid "the first 32 bits of the UUID" -msgstr "" +msgstr "les 32 premiers bits de l'UUID" #: ../Doc/library/uuid.rst:81 msgid ":attr:`time_mid`" @@ -119,7 +155,7 @@ msgstr ":attr:`time_mid`" #: ../Doc/library/uuid.rst:81 ../Doc/library/uuid.rst:83 msgid "the next 16 bits of the UUID" -msgstr "" +msgstr "les 16 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:83 msgid ":attr:`time_hi_version`" @@ -131,7 +167,7 @@ msgstr ":attr:`clock_seq_hi_variant`" #: ../Doc/library/uuid.rst:85 ../Doc/library/uuid.rst:87 msgid "the next 8 bits of the UUID" -msgstr "" +msgstr "les 8 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:87 msgid ":attr:`clock_seq_low`" @@ -143,7 +179,7 @@ msgstr ":attr:`node`" #: ../Doc/library/uuid.rst:89 msgid "the last 48 bits of the UUID" -msgstr "" +msgstr "les derniers 48 bits de l'UUID" #: ../Doc/library/uuid.rst:91 msgid ":attr:`time`" @@ -151,7 +187,7 @@ msgstr ":attr:`time`" #: ../Doc/library/uuid.rst:91 msgid "the 60-bit timestamp" -msgstr "" +msgstr "l'horodatage sur 60 bits" #: ../Doc/library/uuid.rst:93 msgid ":attr:`clock_seq`" @@ -159,19 +195,22 @@ msgstr ":attr:`clock_seq`" #: ../Doc/library/uuid.rst:93 msgid "the 14-bit sequence number" -msgstr "" +msgstr "le numéro de séquence sur 14 bits" #: ../Doc/library/uuid.rst:99 msgid "The UUID as a 32-character hexadecimal string." msgstr "" +"Représentation de l'UUID sous forme d'une chaîne de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:104 msgid "The UUID as a 128-bit integer." -msgstr "" +msgstr "Représentation de l'UUId sous forme d'un entier de 128 bits." #: ../Doc/library/uuid.rst:109 msgid "The UUID as a URN as specified in :rfc:`4122`." msgstr "" +"Représentation de l'UUID sous forme d'URN tel que spécifié dans la :rfc:" +"`4122`." #: ../Doc/library/uuid.rst:114 msgid "" @@ -179,16 +218,21 @@ msgid "" "will be one of the constants :const:`RESERVED_NCS`, :const:`RFC_4122`, :" "const:`RESERVED_MICROSOFT`, or :const:`RESERVED_FUTURE`." msgstr "" +"Variante de l'UUID. Celle-ci détermine l'agencement interne de l'UUID. Les " +"valeurs possibles sont les constantes suivantes : :const:`RESERVED_NCS`, :" +"const:`RFC_4122`, :const:`RESERVED_MICROSOFT` ou :const:`RESERVED_FUTURE`." #: ../Doc/library/uuid.rst:121 msgid "" "The UUID version number (1 through 5, meaningful only when the variant is :" "const:`RFC_4122`)." msgstr "" +"Numéro de version de l'UUID (de 1 à 5). Cette valeur n'a de sens que dans le " +"cas de la variante :const:`RFC_4122`." #: ../Doc/library/uuid.rst:124 msgid "The :mod:`uuid` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`uu` définit les fonctions suivantes :" #: ../Doc/library/uuid.rst:129 msgid "" @@ -208,80 +252,103 @@ msgid "" "If *clock_seq* is given, it is used as the sequence number; otherwise a " "random 14-bit sequence number is chosen." msgstr "" +"Génère un UUID à partir d'un identifiant hôte, d'un numéro de séquence et de " +"l'heure actuelle. Si *node* n'est pas spécifié, la fonction :func:`getnode` " +"est appelée pour obtenir l'adresse matérielle. *clock_seq* est utilisé comme " +"numéro de séquence s'il est spécifié, sinon un numéro aléatoire sur 14 bits " +"est utilisé à la place." #: ../Doc/library/uuid.rst:151 msgid "" "Generate a UUID based on the MD5 hash of a namespace identifier (which is a " "UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte MD5 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:159 msgid "Generate a random UUID." -msgstr "" +msgstr "Génère un UUID aléatoire." #: ../Doc/library/uuid.rst:166 msgid "" "Generate a UUID based on the SHA-1 hash of a namespace identifier (which is " "a UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte SHA-1 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:171 msgid "" "The :mod:`uuid` module defines the following namespace identifiers for use " "with :func:`uuid3` or :func:`uuid5`." msgstr "" +"Le module :mod:`uuid` définit les identifiants d'espaces de noms suivants " +"(pour :func:`uuid3` et :func:`uuid5`)." #: ../Doc/library/uuid.rst:177 msgid "" "When this namespace is specified, the *name* string is a fully-qualified " "domain name." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un nom de " +"domaine pleinement qualifié (souvent indiqué en anglais par *FQDN*)." #: ../Doc/library/uuid.rst:183 msgid "When this namespace is specified, the *name* string is a URL." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être une URL." #: ../Doc/library/uuid.rst:188 msgid "When this namespace is specified, the *name* string is an ISO OID." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"OID ISO." #: ../Doc/library/uuid.rst:193 msgid "" "When this namespace is specified, the *name* string is an X.500 DN in DER or " "a text output format." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"DN X.500 au format texte ou DER." #: ../Doc/library/uuid.rst:196 msgid "" "The :mod:`uuid` module defines the following constants for the possible " "values of the :attr:`variant` attribute:" msgstr "" +"Le module :mod:`uuid` définit les constantes suivantes correspondant aux " +"valeurs autorisées pour l'attribut :attr:`variant` :" #: ../Doc/library/uuid.rst:202 msgid "Reserved for NCS compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité NCS." #: ../Doc/library/uuid.rst:207 msgid "Specifies the UUID layout given in :rfc:`4122`." -msgstr "" +msgstr "Utilise l'agencement des UUID de la :rfc:`4122`." #: ../Doc/library/uuid.rst:212 msgid "Reserved for Microsoft compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité Microsoft." #: ../Doc/library/uuid.rst:217 msgid "Reserved for future definition." -msgstr "" +msgstr "Réservé pour un usage futur." #: ../Doc/library/uuid.rst:223 msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" -msgstr "" +msgstr ":rfc:`4122` – *A Universally Unique IDentifier (UUID) URN Namespace*" #: ../Doc/library/uuid.rst:223 msgid "" "This specification defines a Uniform Resource Name namespace for UUIDs, the " "internal format of UUIDs, and methods of generating UUIDs." msgstr "" +"Cette spécification (en anglais) définit un espace de noms *Uniform Resource " +"Name* pour les UUID, leur format interne et les méthodes permettant de les " +"générer." #: ../Doc/library/uuid.rst:230 msgid "Example" @@ -290,3 +357,4 @@ msgstr "Exemple" #: ../Doc/library/uuid.rst:232 msgid "Here are some examples of typical usage of the :mod:`uuid` module::" msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`uuid` ::" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 9b0500cf9..1661001e0 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -127,6 +127,14 @@ msgid "" "available from Python's project page, located at https://sourceforge.net/" "projects/python/." msgstr "" +"Le changement le plus important dans Python 2.0 ne concerne peut-être pas le " +"code, mais le développement de Python : en mai 2000, les développeurs Python " +"ont commencé à utiliser les outils mis à disposition par SourceForge pour " +"stocker le code source, suivre les rapports de bogues et gérer la file " +"d’attente des soumissions de correctifs. Pour signaler des bogues ou " +"soumettre des correctifs pour Python 2.0, utilisez les outils de suivi des " +"bogues et de gestion des correctifs disponibles sur la page du projet " +"Python, à l’adresse https://sourceforge.net/projects/python/." #: ../Doc/whatsnew/2.0.rst:66 msgid "" @@ -147,6 +155,25 @@ msgid "" "access, probably that task would have been viewed as \"nice, but not worth " "the time and effort needed\" and it would never have gotten done." msgstr "" +"Le plus important des services maintenant hébergé chez SourceForge est " +"l’arborescence CVS Python, le référentiel sous contrôle de version contenant " +"le code source de Python. Auparavant, environ 7 personnes avaient un accès " +"en écriture à l’arborescence CVS et tous les correctifs devaient être " +"inspectés et archivés par l’une des personnes figurant sur cette liste " +"restreinte. Évidemment, ce n’était pas très évolutif. En déplaçant " +"l’arborescence CVS vers SourceForge, il est devenu possible d’accorder un " +"accès en écriture à davantage de personnes ; en septembre 2000, 27 personnes " +"pouvaient enregistrer les modifications, soit quatre fois plus. Cela rend " +"possible des modifications à grande échelle qui ne seraient pas tentées si " +"elles devaient être filtrées par le petit groupe de développeurs principaux. " +"Par exemple, un jour, Peter Schneider-Kamp a eu l’idée de supprimer la " +"compatibilité K&R C et de convertir le code source C de Python en ANSI C. " +"Après avoir obtenu l’approbation de la liste de diffusion *python-dev*, il " +"s’est lancé dans une série d’archives qui ont duré environ une semaine, " +"d’autres développeurs l'ont rejoint et le travail a été fait. S’il n’y avait " +"eut que 5 personnes ayant un accès en écriture, cette tâche aurait " +"probablement été considérée comme « agréable, mais ne valant pas le temps ni " +"les efforts nécessaires » et cela ne se serait jamais fait." #: ../Doc/whatsnew/2.0.rst:83 msgid "" @@ -162,6 +189,19 @@ msgid "" "notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " "wrote an HTML screen-scraper that sends more useful messages." msgstr "" +"Le passage à l’utilisation des services de SourceForge a entraîné une " +"augmentation remarquable du rythme de développement. Les correctifs sont " +"maintenant soumis, commentés, révisés par des personnes autres que l’auteur " +"d’origine et échangés entre les personnes jusqu’à ce que le correctif soit " +"jugé utile. Les bogues sont suivis dans un emplacement central et peuvent " +"être attribués à une personne spécifique pour être corrigés. , et nous " +"pouvons compter le nombre de bogues ouverts pour mesurer les progrès. Cela " +"n’a pas coûté cher: les développeurs ont désormais plus de courrier " +"électronique à traiter, davantage de listes de diffusion à suivre et des " +"outils spéciaux ont dû être créés pour le nouvel environnement. Par exemple, " +"SourceForge envoie des messages électroniques de correctif et de " +"notification de bogues par défaut qui ne sont d’aucune utilité, Ka-Ping Yee " +"a donc créé un *scraper* HTML qui envoie des messages plus utiles." #: ../Doc/whatsnew/2.0.rst:95 msgid "" @@ -177,6 +217,19 @@ msgid "" "can still ignore the result of a vote, and approve or reject a change even " "if the community disagrees with him." msgstr "" +"La facilité d’ajout de code a provoqué quelques problèmes de croissance " +"initiaux, tels que le code a été archivé avant qu’il ne soit prêt ou sans " +"l’accord clair du groupe de développeurs. Le processus d’approbation qui a " +"émergé est quelque peu similaire à celui utilisé par le groupe Apache. Les " +"développeurs peuvent voter *+1*, *+0*, *-0* ou *-1* sur un patch; *+1* et " +"*-1* indiquent une acceptation ou un rejet, tandis que *+0* et *-0* " +"signifient que le développeur est généralement indifférent au changement, " +"bien qu’il présente une légère inclinaison positive ou négative. Le " +"changement le plus important par rapport au modèle Apache est que le vote " +"est essentiellement consultatif, permettant à Guido van Rossum, détenteur du " +"statut de « dictateur bienveillant à vie », de connaître l’opinion générale. " +"Il peut toujours ignorer le résultat d’un vote et approuver ou rejeter un " +"changement même si la communauté n’est pas d’accord avec lui." #: ../Doc/whatsnew/2.0.rst:106 msgid "" @@ -199,6 +252,11 @@ msgid "" "for Python. The PEP should provide a concise technical specification of the " "feature and a rationale for the feature." msgstr "" +"PEP signifie *Python Enhancement Proposition*. Une PEP est un document de " +"conception fournissant des informations à la communauté Python ou décrivant " +"une nouvelle fonctionnalité de Python. La PEP devrait fournir une " +"spécification technique concise de la fonctionnalité et une justification de " +"celle-ci." #: ../Doc/whatsnew/2.0.rst:125 msgid "" @@ -207,6 +265,11 @@ msgid "" "decisions that have gone into Python. The PEP author is responsible for " "building consensus within the community and documenting dissenting opinions." msgstr "" +"Nous souhaitons que les PEP soient les principaux mécanismes permettant de " +"proposer de nouvelles fonctionnalités, de recueillir les commentaires de la " +"communauté sur un problème et de documenter les décisions de conception " +"prises dans Python. L’auteur du PPE est chargé de créer un consensus au sein " +"de la communauté et de documenter les opinions divergentes." #: ../Doc/whatsnew/2.0.rst:130 msgid "" @@ -229,6 +292,10 @@ msgid "" "instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " "characters can be supported." msgstr "" +"La plus grande nouveauté de Python 2.0 est un nouveau type de données " +"fondamental: les chaînes Unicode. Unicode utilise des nombres à 16 bits pour " +"représenter des caractères au lieu du nombre à 8 bits utilisé par ASCII, ce " +"qui signifie que 65 536 caractères distincts peuvent être pris en charge." #: ../Doc/whatsnew/2.0.rst:148 msgid "" @@ -239,6 +306,13 @@ msgid "" "was written up as :pep:`100`, \"Python Unicode Integration\". This article " "will simply cover the most significant points about the Unicode interfaces." msgstr "" +"La dernière interface de prise en charge Unicode a été mise au point après " +"de nombreuses discussions souvent houleuses sur la liste de diffusion " +"*python-dev*, et principalement implémentée par Marc-André Lemburg, basée " +"sur une implémentation de type chaîne Unicode de Fredrik Lundh. Une " +"explication détaillée de l’interface a été écrite ainsi :pep:" +"`100`, \"Intégration Python Unicode\". Cet article couvrira simplement les " +"points les plus significatifs sur les interfaces Unicode." #: ../Doc/whatsnew/2.0.rst:155 msgid "" @@ -248,6 +322,13 @@ msgid "" "The existing ``\\xHHHH`` escape sequence can also be used, and octal escapes " "can be used for characters up to U+01FF, which is represented by ``\\777``." msgstr "" +"Dans le code source Python, les chaînes Unicode sont écrites sous la forme " +"``u\"string\"``. Les caractères Unicode arbitraires peuvent être écrits en " +"utilisant une nouvelle séquence d'échappement, ``\\uHHHH``, où *HHHH* est un " +"nombre hexadécimal à 4 chiffres de 0000 à FFFF. La séquence d'échappement ``" +"\\xHHHH`` peut également être utilisée, et les échappements octaux peuvent " +"être utilisés pour les caractères allant jusqu'à U+01FF, représenté par ``" +"\\777``." #: ../Doc/whatsnew/2.0.rst:161 msgid "" @@ -262,12 +343,27 @@ msgid "" "installation by calling the ``sys.setdefaultencoding(encoding)`` function in " "a customized version of :file:`site.py`." msgstr "" +"Les chaînes Unicode, tout comme les chaînes ordinaires, sont un type de " +"séquence immuable. Ils peuvent être indexés et tranchés, mais pas modifiés " +"en place. Les chaînes Unicode ont une méthode ``encoder([encoding])`` qui " +"renvoie une chaîne de 8 bits dans l’encodage souhaité. Les codages sont " +"nommés par des chaînes, telles que ``’ascii’``, ``’utf-8’``, " +"``’iso-8859-1’``, ou autre chose. Une API de codec est définie pour " +"l’implémentation et l’enregistrement de nouveaux codages disponibles dans " +"tout un programme Python. Si aucun codage n’est spécifié, le codage par " +"défaut est généralement du code ASCII 7-bits, bien qu’il puisse être modifié " +"pour votre installation Python en appelant la fonction ``sys." +"setdefaultencoding (encoding)`` dans une version personnalisée de :file:" +"`site.py`." #: ../Doc/whatsnew/2.0.rst:172 msgid "" "Combining 8-bit and Unicode strings always coerces to Unicode, using the " "default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." msgstr "" +"La combinaison de chaînes 8 bits et Unicode est toujours forcée en Unicode, " +"à l’aide du codage ASCII par défaut; le résultat de ``’a’ + u’bc’`` est " +"``u’abc’``." #: ../Doc/whatsnew/2.0.rst:175 msgid "" @@ -303,6 +399,14 @@ msgid "" "errors to be silently ignored and ``'replace'`` uses U+FFFD, the official " "replacement character, in case of any problems." msgstr "" +"``unicode(string [, encoding] [, errors] )`` crée une chaîne Unicode à " +"partir d’une chaîne de 8 bits. ``encoding`` est une chaîne nommant le codage " +"à utiliser. Le paramètre ``errors`` spécifie le traitement des caractères " +"non valides pour l’ encodage en cours; en passant ``’strict’`` comme valeur, " +"une exception est générée pour toute erreur de codage, alors que " +"``’ignore’`` fait en sorte que les erreurs soient ignorées en silence et que " +"``’replace’`` utilise U+FFFD, caractère de remplacement officiel, en cas de " +"problème." #: ../Doc/whatsnew/2.0.rst:192 msgid "" @@ -312,6 +416,12 @@ msgid "" "built-ins; if you find a built-in function that accepts strings but doesn't " "accept Unicode strings at all, please report it as a bug.)" msgstr "" +"L’instruction ``exec`` et divers éléments intégrés tels que ``eval()``, " +"``getattr()`` et ``setattr()`` accepteront également les chaînes Unicode " +"ainsi que les chaînes ordinaires. (Il est possible que le processus de " +"résolution de ce problème ait échappé à certaines fonctions intégrées ; si " +"vous trouvez une fonction intégrée qui accepte les chaînes mais n’accepte " +"pas les chaînes Unicode, signalez-la comme un bogue.)" #: ../Doc/whatsnew/2.0.rst:198 msgid "" @@ -321,6 +431,12 @@ msgid "" "it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " "meaning that U+0660 is an Arabic number." msgstr "" +"Un nouveau module, :mod:`unicodedata`, fournit une interface aux propriétés " +"de caractère Unicode. Par exemple, ``unicodedata.category(u'A')`` renvoie la " +"chaîne de 2 caractères « Lu », le « L » désignant une lettre et « u » " +"signifiant qu’il s’agit d’une majuscule. ``unicodedata." +"bidirectional(u'\\u0660')`` renvoie « AN », ce qui signifie que U+0660 est " +"un nombre arabe." #: ../Doc/whatsnew/2.0.rst:204 msgid "" @@ -329,6 +445,11 @@ msgid "" "most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" "element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" +"Le module :mod:`codecs` contient des fonctions pour rechercher les codages " +"existants et en enregistrer de nouveaux. À moins que vous ne souhaitiez " +"implémenter un nouvel encodage, vous utiliserez le plus souvent la fonction " +"``codecs.lookup(encoding)``, qui renvoie un quadruplet : ``(encode_func, " +"decode_func, stream_reader, stream_writer)``." #: ../Doc/whatsnew/2.0.rst:209 msgid "" @@ -338,6 +459,11 @@ msgid "" "encoding, and *length* tells you how much of the Unicode string was " "converted." msgstr "" +"*encode_func* est une fonction qui prend une chaîne Unicode, et renvoie un n-" +"uplet de longueur 2 ``(string, length)``. *string* est une chaîne de " +"caractères à 8 bits contenant une partie (ou la totalité) de la chaîne " +"Unicode convertie en codage donné, et *length* vous indique le nombre de " +"caractères de la chaîne qui ont été convertis." #: ../Doc/whatsnew/2.0.rst:214 msgid "" @@ -346,6 +472,11 @@ msgid "" "Unicode string *ustring* and the integer *length* telling how much of the 8-" "bit string was consumed." msgstr "" +"*decode_func* est l’opposé de *encode_func*, en prenant une chaîne de " +"caractères à 8 bits et le retour d’une paire ``(ustring, longueur)``, " +"composé de la chaîne Unicode résultante *ustring* et l’entier *length* " +"indiquant combien de caractères de la chaîne de caractères à 8 bits ont été " +"consommés." #: ../Doc/whatsnew/2.0.rst:219 msgid "" @@ -354,6 +485,11 @@ msgid "" "meth:`readline`, and :meth:`readlines` methods. These methods will all " "translate from the given encoding and return Unicode strings." msgstr "" +"*stream_reader* est une classe qui prend en charge le décodage de l’entrée " +"d’un flux. *stream_reader(file_obj)* renvoie un objet qui prend en charge " +"les méthodes :meth:`read`, :meth:`readline` et :meth:`readlines`. Ces " +"méthodes se traduisent toutes à partir de l’encodage donné et retourneront " +"une chaînes de caractère Unicode." #: ../Doc/whatsnew/2.0.rst:224 msgid "" @@ -362,6 +498,11 @@ msgid "" "`write` and :meth:`writelines` methods. These methods expect Unicode " "strings, translating them to the given encoding on output." msgstr "" +"De même, *stream_writer* est une classe qui prend en charge le codage de " +"sortie d’un flux. *stream_writer(file_obj)* renvoie un objet qui prend en " +"charge les méthodes :meth:`write` et :meth:`writelines`. Ces méthodes " +"prennent en entrée des chaînes Unicode, qu'elles renvoient, traduites à " +"l'encodage donné, sur la sortie." #: ../Doc/whatsnew/2.0.rst:229 msgid "" @@ -393,6 +534,12 @@ msgid "" "future version of Python may drop support for 8-bit strings and provide only " "Unicode strings." msgstr "" +"Une option de ligne de commande ``-U`` a été ajoutée, ce qui fait que le " +"compilateur Python interprète toutes les chaînes de caractères comme des " +"chaînes de caractères Unicode. Ceci est destiné à être utilisé dans les " +"tests et rendre votre code Python compatible avec les versions futures, car " +"une version future de Python peut abandonner la prise en charge des chaînes " +"de caractères 8-bits et fournir uniquement des chaînes de caractères Unicode." #: ../Doc/whatsnew/2.0.rst:262 msgid "List Comprehensions" @@ -407,6 +554,13 @@ msgid "" "might want to pull out all the strings containing a given substring, or " "strip off trailing whitespace from each line." msgstr "" +"Les listes sont un type de données crucial dans Python, et de nombreux " +"programmes manipulent une liste à un moment donné. Deux opérations communes " +"sur les listes sont de boucler sur elles, soit de choisir les éléments qui " +"répondent à un certain critère, ou d’appliquer une certaine fonction à " +"chaque élément. Par exemple, à partir d’une liste de chaînes de caractères, " +"vous pouvez retirer toutes les chaînes contenant une sous-chaîne donnée, ou " +"enlever les espaces de chaque ligne." #: ../Doc/whatsnew/2.0.rst:271 msgid "" @@ -419,6 +573,15 @@ msgid "" "paragraph, finding all the strings in the list containing a given " "substring. You could write the following to do it::" msgstr "" +"Les fonctions existantes :func:`map` et :func:`filter` peuvent être " +"utilisées à cette fin, mais elles nécessitent une fonction en leurs " +"arguments. C’est très bien s’il y a une fonction intégrée existante qui " +"peut être passé directement, mais s’il n’y a pas, vous devez créer une " +"petite fonction pour faire le travail requis, et les règles de portée de " +"Python rendent le résultat laid si la petite fonction a besoin " +"d’informations supplémentaires. Prenons le premier exemple du paragraphe " +"précédent, en trouvant toutes les chaînes de la liste contenant une sous-" +"chaîne donnée. Vous pouvez écrire ce qui suit pour le faire::" #: ../Doc/whatsnew/2.0.rst:286 msgid "" @@ -464,6 +627,10 @@ msgid "" "creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" +"Afin de ne pas introduire une ambiguïté dans la grammaire de Python, " +"*expression* doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" #: ../Doc/whatsnew/2.0.rst:339 msgid "" @@ -473,10 +640,16 @@ msgid "" "comprehension patch, which was then discussed for a seemingly endless time " "on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" +"Le concept des liste en compréhension provient à l’origine du langage de " +"programmation fonctionnelle Haskell (https://www.haskell.org). Greg Ewing a " +"plaidé le plus efficacement pour les ajouter à Python et a écrit le patch de " +"compréhension de liste initiale, qui a ensuite été discuté pendant un temps " +"apparemment sans fin sur la liste de diffusion *python-dev* et maintenu à " +"jour par Skip Montanaro." #: ../Doc/whatsnew/2.0.rst:349 msgid "Augmented Assignment" -msgstr "" +msgstr "Opérateurs d’affectation augmentées" #: ../Doc/whatsnew/2.0.rst:351 msgid "" @@ -486,6 +659,11 @@ msgid "" "value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " "= a + 2``." msgstr "" +"Les opérateurs d’affectation soudées, une autre fonctionnalité demandée " +"depuis longtemps, ont été ajoutés à Python 2.0. Les opérateurs " +"d’affectations augmentées comprennent ``+=``, ``-=``, ``*=`` et ainsi de " +"suite. Par exemple, l’instruction ``a += 2`` incrémente la valeur de la " +"variable ``a`` par 2, équivalente à l’opération ``a = a + 2`` ." #: ../Doc/whatsnew/2.0.rst:356 msgid "" @@ -496,6 +674,13 @@ msgid "" "following :class:`Number` class stores a number and supports using += to " "create a new instance with an incremented value." msgstr "" +"La liste complète des opérateurs d’affectations pris en charge est ``+=``, " +"``-=``, ``*=``, ``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, et " +"``<<=``. Les classes Python peuvent remplacer les opérateurs d’affectations " +"augmentées en définissant des méthodes nommées :meth:`__iadd__`, :meth:" +"`__isub__`, etc. Par exemple, la classe :class:`Number` stocke un nombre et " +"prend en charge l’utilisation de += en créant une nouvelle instance avec une " +"valeur incrémentée." #: ../Doc/whatsnew/2.0.rst:377 msgid "" @@ -504,6 +689,10 @@ msgid "" "value; this return value is bound as the new value of the variable on the " "left-hand side." msgstr "" +"La méthode spéciale :meth:`__iadd__` est appelée avec la valeur de " +"l’incrément, et doit renvoyer une nouvelle instance avec une valeur " +"correctement modifiée ; cette valeur de rendement est liée comme la nouvelle " +"valeur de la variable sur le côté gauche." #: ../Doc/whatsnew/2.0.rst:381 msgid "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 2cf235d28..c766bdb75 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -882,7 +882,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:817 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/whatsnew/2.6.rst:817 msgid "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index e1adfc45e..6148c923b 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -1958,7 +1958,7 @@ msgstr "" #: ../Doc/whatsnew/2.7.rst:1752 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/whatsnew/2.7.rst:1763 msgid "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index fbd396c3b..12832593e 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -2730,7 +2730,7 @@ msgstr "" #: ../Doc/whatsnew/3.2.rst:2427 msgid "Codecs" -msgstr "" +msgstr "Codecs" #: ../Doc/whatsnew/3.2.rst:2429 msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index 2620df636..8b5e8691b 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:55 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.3.rst:60 msgid "New syntax features:" @@ -218,7 +218,7 @@ msgstr "" #: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1122 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/whatsnew/3.3.rst:163 msgid "" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index 21b0d7fe2..a7ad9211a 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -42,7 +42,7 @@ msgstr "" #: ../Doc/whatsnew/3.5.rst:58 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.5.rst:60 msgid "New syntax features:" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index 6a95d3093..efedc76e2 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -42,7 +42,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:57 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Résumé – Points forts de la publication" #: ../Doc/whatsnew/3.6.rst:59 msgid "New syntax features:" From 9e4003e36ed46b069b45c77fe8f40baf477811e4 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 4 Jun 2021 17:23:52 +0200 Subject: [PATCH 5/5] Backporting for #1628. --- library/heapq.po | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/library/heapq.po b/library/heapq.po index e5103cba9..5422cf717 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -60,12 +60,12 @@ msgid "" "\"max heap\" is more common in texts because of its suitability for in-place " "sorting)." msgstr "" -"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " -"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation " +"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " +"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation " "entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " "l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " -"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " -"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " +"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " +"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " "la littérature car il permet le classement sans tampon)." #: ../Doc/library/heapq.rst:33 @@ -75,8 +75,8 @@ msgid "" "the heap invariant!" msgstr "" "Ces deux points permettent d'aborder le tas comme une liste Python standard " -"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap." -"sort()`` ne modifie pas le tas !" +"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` " +"conserve l'invariant du tas !" #: ../Doc/library/heapq.rst:37 msgid "" @@ -89,7 +89,7 @@ msgstr "" #: ../Doc/library/heapq.rst:40 msgid "The following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" +msgstr "Les fonctions suivantes sont fournies :" #: ../Doc/library/heapq.rst:45 msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." @@ -268,7 +268,7 @@ msgid "" "Heap elements can be tuples. This is useful for assigning comparison values " "(such as task priorities) alongside the main record being tracked::" msgstr "" -"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour " +"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour " "assigner des valeurs de comparaison (par exemple, des priorités de tâches) " "en plus de l'élément qui est suivi ::" @@ -283,15 +283,15 @@ msgid "" msgstr "" "Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " -"d'implémentation :" +"d'implémentation :" #: ../Doc/library/heapq.rst:170 msgid "" "Sort stability: how do you get two tasks with equal priorities to be " "returned in the order they were originally added?" msgstr "" -"Stabilité du classement : comment s'assurer que deux tâches avec la même " -"priorité sont renvoyées dans l'ordre de leur ajout ?" +"Stabilité du classement : comment s'assurer que deux tâches avec la même " +"priorité sont renvoyées dans l'ordre de leur ajout ?" #: ../Doc/library/heapq.rst:173 msgid "" @@ -307,7 +307,7 @@ msgid "" "the heap?" msgstr "" "Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " -"position dans le tas ?" +"position dans le tas ?" #: ../Doc/library/heapq.rst:179 msgid "" @@ -315,7 +315,7 @@ msgid "" "from the queue?" msgstr "" "Si une tâche en attente doit être supprimée, comment la trouver et la " -"supprimer de la file ?" +"supprimer de la file ?" #: ../Doc/library/heapq.rst:182 msgid "" @@ -400,7 +400,7 @@ msgstr "" "Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa " "promotion par un autre élément à un plus bas niveau. La règle devient alors " "qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments " -"différents, mais le nœud supérieur « gagne » contre les deux nœuds " +"différents, mais le nœud supérieur « gagne » contre les deux nœuds " "inférieurs." #: ../Doc/library/heapq.rst:255 @@ -415,7 +415,7 @@ msgid "" msgstr "" "Si cet invariant de tas est vérifié à tout instant, alors l'élément à " "l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " -"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " +"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " "(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " "faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " "avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " @@ -434,11 +434,11 @@ msgid "" "easily go into the heap. So, a heap is a good structure for implementing " "schedulers (this is what I used for my MIDI sequencer :-)." msgstr "" -"Une propriété agréable de cet algorithme est qu'il possible d'insérer " +"Une propriété agréable de cet algorithme est qu'il est possible d'insérer " "efficacement de nouveaux éléments en cours de classement, du moment que les " -"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " +"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " "extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " -"liste des événements arrivants et que la condition de « victoire » est le " +"liste des événements arrivants et que la condition de « victoire » est le " "plus petit temps d'exécution planifié. Lorsqu'un événement programme " "l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " "peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " @@ -454,7 +454,7 @@ msgid "" "efficient overall, yet the worst cases might be terrible." msgstr "" "Plusieurs structures ont été étudiées en détail pour implémenter des " -"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " +"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " "rapides, leur vitesse est presque constante et le pire cas ne diffère pas " "trop du cas moyen. S'il existe des représentations qui sont plus efficaces " "en général, les pires cas peuvent être terriblement mauvais." @@ -497,12 +497,12 @@ msgid "" msgstr "" "Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " "en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " -"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " +"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " "peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " "mémoire libérée peut être réutilisée immédiatement pour progressivement " "construire un deuxième tas, qui croit à la même vitesse que le premier " "décroît. Lorsque le premier tas a complètement disparu, vous échangez les " -"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" +"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" #: ../Doc/library/heapq.rst:295 msgid "" @@ -535,8 +535,8 @@ msgstr "" "que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " "était différent et il fallait être malin pour s'assurer (bien à l'avance) " "que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " -"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " +"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " "pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " "remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " -"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " -"le Grand Art ! ☺" +"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " +"le Grand Art ! ☺"