Compare commits
5 Commits
739c3a9136
...
9e4003e36e
Author | SHA1 | Date |
---|---|---|
Julien Palard | 9e4003e36e | |
Julien Palard | 5087de50b2 | |
Christophe Nanteuil | 1e8d67f3bc | |
Julien Palard | 010f7ed5ca | |
Julien Palard | ab52579de4 |
2
about.po
2
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 !"
|
||||
|
|
46
bugs.po
46
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 <contributing-to-python>`."
|
||||
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 <contributing-to-python>`."
|
||||
"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 <contributing-to-python>`."
|
||||
|
||||
#: ../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 "
|
||||
|
|
45
c-api/arg.po
45
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 <bytes-like object>`. 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 <bytes-"
|
||||
"like object>`) [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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -23,7 +23,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/c-api/memory.rst:17
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
msgstr "Aperçu"
|
||||
|
||||
#: ../Doc/c-api/memory.rst:19
|
||||
msgid ""
|
||||
|
@ -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"
|
||||
|
|
|
@ -27,6 +27,9 @@ msgid ""
|
|||
"<bufferobjects>` 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 "
|
||||
"<bufferobjects>` 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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
116
c-api/object.po
116
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 ""
|
||||
|
|
|
@ -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*"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
1035
distutils/apiref.po
1035
distutils/apiref.po
File diff suppressed because it is too large
Load Diff
|
@ -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 :"
|
||||
|
@ -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 ""
|
||||
|
@ -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``"
|
||||
|
@ -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 ""
|
||||
|
@ -670,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`)"
|
||||
|
||||
|
@ -683,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
|
||||
|
@ -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"
|
||||
|
@ -717,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 "
|
||||
|
@ -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"
|
||||
|
@ -803,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."
|
||||
|
@ -821,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
|
||||
|
@ -860,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.)"
|
||||
|
@ -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 ""
|
||||
|
@ -900,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 ""
|
||||
|
@ -912,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."
|
||||
|
||||
|
@ -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)."
|
||||
|
|
|
@ -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éé."
|
||||
|
|
|
@ -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,10 +28,14 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Concepts et Terminologie"
|
||||
|
||||
#: ../Doc/distutils/introduction.rst:18
|
||||
msgid ""
|
||||
|
@ -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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -70,7 +70,7 @@ msgstr ""
|
|||
"Dans ce cas, le nom de la fonction d'initialisation est "
|
||||
"``PyInitU_<modulename>``, 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 ""
|
||||
|
|
|
@ -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 <compiling>` 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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -564,13 +563,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 +582,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 +594,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 +607,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 ""
|
||||
|
@ -609,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 ""
|
||||
|
@ -616,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 ""
|
||||
|
@ -638,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 ""
|
||||
|
@ -647,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 ""
|
||||
|
@ -654,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 ""
|
||||
|
@ -662,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 ""
|
||||
|
@ -704,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 ""
|
||||
|
@ -743,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 ""
|
||||
|
@ -804,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 ""
|
||||
|
@ -819,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 ""
|
||||
|
@ -856,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 ""
|
||||
|
@ -884,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 ""
|
||||
|
@ -908,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 ""
|
||||
|
@ -925,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 ""
|
||||
|
@ -938,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 ""
|
||||
|
@ -981,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 ""
|
||||
|
@ -997,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 ""
|
||||
|
@ -1011,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 ""
|
||||
|
@ -1026,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 ""
|
||||
|
@ -1038,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 ""
|
||||
|
@ -1051,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 ""
|
||||
|
@ -1071,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 ""
|
||||
|
@ -1083,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 ""
|
||||
|
@ -1091,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 ""
|
||||
|
@ -1150,7 +1295,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/extending.rst:993
|
||||
msgid "Thin Ice"
|
||||
msgstr ""
|
||||
msgstr "Terrain dangereux"
|
||||
|
||||
#: ../Doc/extending/extending.rst:995
|
||||
msgid ""
|
||||
|
@ -1159,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 ""
|
||||
|
@ -1166,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 ""
|
||||
|
@ -1173,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 ""
|
||||
|
@ -1183,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 ""
|
||||
|
@ -1194,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 ""
|
||||
|
@ -1220,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 ""
|
||||
|
@ -1275,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 ""
|
||||
|
@ -1289,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 ""
|
||||
|
@ -1304,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 ""
|
||||
|
@ -1320,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 ""
|
||||
|
@ -1330,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 ""
|
||||
|
@ -1352,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 ""
|
||||
|
@ -1387,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 ""
|
||||
|
@ -1397,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 ""
|
||||
|
@ -1406,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 ""
|
||||
|
@ -1423,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 ""
|
||||
|
@ -1442,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 ""
|
||||
|
@ -1449,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 ""
|
||||
|
@ -1459,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"
|
||||
|
@ -1469,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 ""
|
||||
|
@ -1482,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."
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -368,7 +383,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 ""
|
||||
|
@ -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"
|
||||
|
|
|
@ -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."
|
||||
|
|
212
faq/design.po
212
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?"
|
||||
|
@ -689,10 +688,15 @@ msgid ""
|
|||
"full Python language. For compiling to Java you can consider `VOC <https://"
|
||||
"voc.readthedocs.io>`_."
|
||||
msgstr ""
|
||||
"`Cython <http://cython.org/>`_ compile une version modifiée de Python avec "
|
||||
"des annotations optionnelles en extensions C. `Nuitka <http://www.nuitka.net/"
|
||||
">`_ est un nouveau compilateur de Python vers C++, visant à supporter le "
|
||||
"langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC "
|
||||
"<https://voc.readthedocs.io>`_."
|
||||
|
||||
#: ../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 ""
|
||||
|
@ -763,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 ""
|
||||
|
@ -801,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 ""
|
||||
|
@ -812,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, "
|
||||
|
@ -832,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 ""
|
||||
|
@ -1009,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 ""
|
||||
|
@ -1049,6 +1053,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 +1068,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 +1086,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 +1100,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 +1112,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 +1125,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 +1144,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 +1158,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 +1176,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 +1190,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 +1204,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 +1220,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 +1240,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 +1258,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 +1294,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 +1303,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 +1316,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 +1390,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 +1400,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 +1412,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 +1426,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 +1454,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 +1465,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 +1494,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 +1514,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 :"
|
||||
|
|
152
faq/extending.po
152
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 <http://cython.org>`_ et son cousin `Pyrex <https://www.cosc."
|
||||
"canterbury.ac.nz/greg.ewing/python/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 <https://github.com/scipy/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 <http://www.swig.org>`_. `SIP <https://"
|
||||
"riverbankcomputing.com/software/sip/intro>`__, `CXX <http://cxx.sourceforge."
|
||||
"net/>`_, `Boost <http://www.boost.org/libs/python/doc/index.html>`_ ou "
|
||||
"`Weave <https://github.com/scipy/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[\"<modulename>\"]``. 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"
|
||||
"\" <extending-index>`. 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)."
|
||||
|
|
|
@ -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 "
|
||||
"<https://pypi.org>`_ 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 <https://pypi.org>`_ 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 <http://sphinx-doc.org/>`__. La source du "
|
||||
"l'outil de documentation `Sphinx <http://sphinx-doc.org/>`__. 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 ""
|
||||
|
|
98
faq/gui.po
98
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 ""
|
||||
|
@ -57,6 +59,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 <Tkinter>`. "
|
||||
"C'est probablement la plus facile à installer (puisqu'elle est incluse avec "
|
||||
"la plupart des `distributions binaires <https://www.python.org/downloads/>`_ "
|
||||
"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les "
|
||||
"liens vers les sources, voir la page d'accueil `Tcl/Tk <https://www.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 +80,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 +106,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 +125,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 <https://riverbankcomputing.com/software/pyqt/intro>`_ ou `PySide "
|
||||
"<https://wiki.qt.io/PySide>`_) et pour *KDE* (`PyKDE4 <https://techbase.kde."
|
||||
"org/Languages/Python/Using_PyKDE_4>`__). *PyQt* est actuellement plus mûre "
|
||||
"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank "
|
||||
"Computing <https://www.riverbankcomputing.com/commercial/license-faq>`_ 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 <https://www.qt.io/licensing/>`_."
|
||||
msgstr ""
|
||||
"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont "
|
||||
"disponibles auprès de `The Qt Company <https://www.qt.io/licensing/>`_."
|
||||
|
||||
#: ../Doc/faq/gui.rst:71
|
||||
msgid "Gtk+"
|
||||
msgstr ""
|
||||
msgstr "*Gtk+*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:73
|
||||
msgid ""
|
||||
|
@ -133,7 +162,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/gui.rst:81
|
||||
msgid "Kivy"
|
||||
msgstr ""
|
||||
msgstr "*Kivy*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:83
|
||||
msgid ""
|
||||
|
@ -142,15 +171,20 @@ msgid ""
|
|||
"(Android, iOS). It is written in Python and Cython, and can use a range of "
|
||||
"windowing backends."
|
||||
msgstr ""
|
||||
"`*Kivy* <https://kivy.org/>`_ 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 +192,24 @@ msgid ""
|
|||
"powerful and mature cross-platform windowing system, are available from `the "
|
||||
"PyFLTK project <http://pyfltk.sourceforge.net>`_."
|
||||
msgstr ""
|
||||
"Les liaisons Python pour `the FLTK toolkit <http://www.fltk.org>`_, un "
|
||||
"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont "
|
||||
"disponibles auprès de `the PyFLTK project <http://pyfltk.sourceforge.net>`_."
|
||||
|
||||
#: ../Doc/faq/gui.rst:98
|
||||
msgid "OpenGL"
|
||||
msgstr ""
|
||||
msgstr "*OpenGL*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:100
|
||||
msgid "For OpenGL bindings, see `PyOpenGL <http://pyopengl.sourceforge.net>`_."
|
||||
msgstr ""
|
||||
"Pour les clients OpenGL, voir `PyOpenGL <http://pyopengl.sourceforge.net>`_."
|
||||
|
||||
#: ../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 +223,17 @@ msgid ""
|
|||
"Microsoft Foundation Classes and a Python programming environment that's "
|
||||
"written mostly in Python using the MFC classes."
|
||||
msgstr ""
|
||||
":ref:`Pythonwin <windows-faq>` 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 +241,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 +252,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 +263,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 +274,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 +291,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 +310,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 +321,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*)."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
414
faq/library.po
414
faq/library.po
File diff suppressed because it is too large
Load Diff
1141
faq/programming.po
1141
faq/programming.po
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
||||
|
@ -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?"
|
||||
|
@ -491,6 +573,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 +582,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?"
|
||||
|
|
243
glossary.po
243
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 <special-lookup>`). 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 <faq-argument-vs-parameter>`, "
|
||||
"and :pep:`362`."
|
||||
msgstr ""
|
||||
"Voir aussi :term:`parameter` dans le glossaire, la question :ref:"
|
||||
"`Différence entre argument et paramètre <faq-argument-vs-parameter>` de la "
|
||||
"FAQ et la :pep:`362`."
|
||||
"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence "
|
||||
"entre argument et paramètre <faq-argument-vs-parameter>` 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 <fichier binaire>` bruts, les :term:`fichiers binaires "
|
||||
"<fichier binaire>` avec tampon (*buffer*) et les :term:`fichiers textes "
|
||||
"<fichier texte>`. Leurs interfaces sont définies dans le module :mod:`io`. "
|
||||
|
@ -893,9 +893,9 @@ msgid ""
|
|||
"<meta path finder>` for use with :data:`sys.meta_path`, and :term:`path "
|
||||
"entry finders <path entry finder>` 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 <meta path finder>` à utiliser avec :data:"
|
||||
"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path <path entry "
|
||||
"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path <path entry "
|
||||
"finder>` à 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 <path entry>` dans lesquelles le :term:`chercheur "
|
||||
"basé sur les chemins <path based finder>` 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 <sortinghowto>` 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 <importing>`."
|
||||
|
||||
#: ../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 ""
|
|||
"<argument>`. 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 <argument>`, soit en tant que :term:`argument nommé <argument>`. "
|
||||
"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>` (*import path* "
|
||||
"en anglais, d'où le *path*) que le :term:`chercheur basé sur les chemins "
|
||||
"<path based finder>` consulte pour trouver des modules à importer."
|
||||
"Emplacement dans le :term:`chemin des importations <import path>` (*import "
|
||||
"path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les "
|
||||
"chemins <path based finder>` 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 <meta path finder>` par "
|
||||
"défaut qui cherche des modules dans un :term:`chemin des imports <import "
|
||||
"path>`."
|
||||
"défaut qui cherche des modules dans un :term:`chemin des importations "
|
||||
"<import path>`."
|
||||
|
||||
#: ../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 <namespace package>`."
|
||||
|
||||
#: ../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 <type hint>` : 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
|
||||
|
|
|
@ -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é."
|
||||
|
|
404
howto/clinic.po
404
howto/clinic.po
File diff suppressed because it is too large
Load Diff
|
@ -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,36 +41,49 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Compilation conditionnelle"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:25
|
||||
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 ""
|
|||
"<http://cython.org/>`_. 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 <http://cython.org/>`_. 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."
|
||||
|
|
410
howto/curses.po
410
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 <https://pypi.org/"
|
||||
"project/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 <https://pypi.org/project/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 <https://pypi.org/project/UniCurses>`_ est "
|
||||
"disponible. Vous pouvez également essayer le `Windows console driver <http://"
|
||||
"effbot.org/zone/console-index.htm>`_ é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 <https://pypi.org/project/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 <https://pypi."
|
||||
"org/project/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 <https://devguide.python."
|
||||
"org/>`_ 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 <https://devguide.python.org/>`_ pour apprendre "
|
||||
"comment soumettre des améliorations à Python."
|
||||
|
||||
#: ../Doc/howto/curses.rst:544
|
||||
msgid ""
|
||||
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
|
||||
"intro.html>`_: a lengthy tutorial for C programmers."
|
||||
msgstr ""
|
||||
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
|
||||
"intro.html>`_ : un long tutoriel pour les programmeurs C (ressource en "
|
||||
"anglais)."
|
||||
|
||||
#: ../Doc/howto/curses.rst:546
|
||||
msgid "`The ncurses man page <http://linux.die.net/man/3/ncurses>`_"
|
||||
|
@ -724,6 +1066,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"`The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_"
|
||||
msgstr ""
|
||||
"`La FAQ ncurses <http://invisible-island.net/ncurses/ncurses.faq.html>`_ "
|
||||
"(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\" <https://www.youtube.com/watch?"
|
||||
"v=eN1eZtjLEnU>`_ : 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\" <http://www.pyvideo.org/video/1568/"
|
||||
"console-applications-with-urwid>`_ : vidéo d'une conférence lors de PyCon CA "
|
||||
"2012 montrant quelques applications utilisant *Urwid*."
|
||||
|
|
|
@ -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 ::"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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 ::"
|
||||
|
|
|
@ -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 ::"
|
||||
|
|
|
@ -27,7 +27,7 @@ msgstr "Auteur"
|
|||
|
||||
#: ../Doc/howto/logging-cookbook.rst:7
|
||||
msgid "Vinay Sajip <vinay_sajip at red-dove dot com>"
|
||||
msgstr ""
|
||||
msgstr "Vinay Sajip <vinay_sajip at red-dove dot com>"
|
||||
|
||||
#: ../Doc/howto/logging-cookbook.rst:9
|
||||
msgid ""
|
||||
|
@ -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"
|
||||
|
@ -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 <logging-basic-tutorial>`"
|
||||
|
|
716
howto/logging.po
716
howto/logging.po
File diff suppressed because it is too large
Load Diff
|
@ -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,10 +378,22 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Division"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:164
|
||||
msgid ""
|
||||
|
@ -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 son "
|
||||
"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."
|
||||
|
|
|
@ -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"
|
||||
|
|
300
howto/sockets.po
300
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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -58,6 +64,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 ""
|
||||
|
@ -69,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"
|
||||
|
@ -81,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 ""
|
||||
|
@ -89,16 +119,23 @@ 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"
|
||||
msgstr "Créer un *socket*"
|
||||
msgstr "Créer un connecteur"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:56
|
||||
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 ""
|
||||
|
@ -107,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 ""
|
||||
|
@ -123,6 +167,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 +180,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,12 +191,18 @@ 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 ""
|
||||
"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 ""
|
||||
|
@ -160,10 +219,24 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Communication Entre Processus"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:123
|
||||
msgid ""
|
||||
|
@ -173,16 +246,24 @@ 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 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 ""
|
||||
"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 ""
|
||||
|
@ -194,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 ""
|
||||
|
@ -206,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 ""
|
||||
|
@ -217,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 ""
|
||||
|
@ -225,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 ""
|
||||
|
@ -232,6 +343,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 +361,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 ""
|
||||
|
@ -261,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 ""
|
||||
|
@ -272,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 ""
|
||||
|
@ -281,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 ""
|
||||
|
@ -293,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 ""
|
||||
|
@ -300,10 +461,14 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Données binaires"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:254
|
||||
msgid ""
|
||||
|
@ -317,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 ""
|
||||
|
@ -326,10 +503,17 @@ 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"
|
||||
msgstr ""
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:274
|
||||
msgid ""
|
||||
|
@ -342,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 ""
|
||||
|
@ -352,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 ""
|
||||
|
@ -362,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 ""
|
||||
|
@ -381,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 ""
|
||||
|
@ -393,6 +613,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 +627,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 ""
|
||||
|
@ -413,10 +644,17 @@ 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``."
|
||||
msgstr ""
|
||||
msgstr "Utiliser ``select``."
|
||||
|
||||
#: ../Doc/howto/sockets.rst:336
|
||||
msgid ""
|
||||
|
@ -424,6 +662,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 ""
|
||||
|
@ -435,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 ""
|
||||
|
@ -442,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 ""
|
||||
|
@ -452,6 +706,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 +723,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 +739,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 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 ""
|
||||
|
@ -479,3 +753,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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
397
howto/unicode.po
397
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 <https://en."
|
||||
"wikipedia.org/wiki/Unicode#History>`_ 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 <https://en.wikipedia.org/wiki/Unicode#History>`_ (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 <http://www.unicode.org>`_, 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 <http://www.unicode.org/history/>`_ de l’origine et du "
|
||||
"développement de l’Unicode est également disponible sur le site."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:218
|
||||
msgid ""
|
||||
|
@ -360,20 +481,25 @@ msgid ""
|
|||
"encoding <https://en.wikipedia.org/wiki/Character_encoding>`_\" and `UTF-8 "
|
||||
"<https://en.wikipedia.org/wiki/UTF-8>`_, for example."
|
||||
msgstr ""
|
||||
"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des "
|
||||
"caractères <https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res>`_ » et "
|
||||
"`UTF-8 <https://fr.wikipedia.org/wiki/UTF-8>`_, par exemple."
|
||||
|
||||
#: ../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 ""
|
||||
|
@ -388,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 ""
|
||||
|
@ -399,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 ""
|
||||
|
@ -407,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 "
|
||||
"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence "
|
||||
"d'échappement ``\\u...``) ::"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:278
|
||||
msgid ""
|
||||
|
@ -414,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 ""
|
||||
|
@ -425,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 ""
|
||||
|
@ -443,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 ""
|
||||
|
@ -454,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 ""
|
||||
|
@ -465,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 ""
|
||||
|
@ -479,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 guide."
|
||||
|
||||
#: ../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 ""
|
||||
|
@ -491,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 ""
|
||||
|
@ -500,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 ""
|
||||
|
@ -508,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 ""
|
||||
|
@ -516,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 ""
|
||||
|
@ -525,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 ""
|
||||
|
@ -551,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 ""
|
||||
|
@ -568,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 <http://www."
|
||||
"unicode.org/reports/tr44/#General_Category_Values>`_ (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 ""
|
||||
|
@ -582,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 ""
|
||||
|
@ -595,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 ""
|
||||
|
@ -602,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 <http://python-notes.curiousefficiency."
|
||||
"org/en/latest/python3/text_file_processing.html>`_, by Nick Coghlan."
|
||||
msgstr ""
|
||||
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
|
||||
"org/en/latest/python3/text_file_processing.html>`_, par Nick Coghlan."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:492
|
||||
msgid ""
|
||||
|
@ -624,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 ""
|
||||
|
@ -641,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) <https://downloads.egenix.com/python/Unicode-"
|
||||
"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``)."
|
||||
|
||||
#: ../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 ""
|
||||
|
@ -652,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 ""
|
||||
|
@ -661,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 ""
|
||||
|
@ -670,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 ""
|
||||
|
@ -684,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 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)."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:536
|
||||
msgid ""
|
||||
|
@ -696,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 ""
|
||||
|
@ -719,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 ""
|
||||
|
@ -731,7 +1014,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:576
|
||||
msgid "Unicode filenames"
|
||||
msgstr ""
|
||||
msgstr "Noms de fichiers Unicode"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:578
|
||||
msgid ""
|
||||
|
@ -753,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 ""
|
||||
|
@ -775,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 ""
|
||||
|
@ -792,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 ""
|
||||
|
@ -818,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 ""
|
||||
|
@ -830,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 ""
|
||||
|
@ -841,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 ""
|
||||
|
@ -859,6 +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 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 ""
|
||||
|
@ -875,6 +1201,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 <http://pyvideo."
|
||||
"org/video/289/pycon-2010--mastering-python-3-i-o>`_ (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 ""
|
||||
|
@ -884,6 +1214,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\" <https://downloads.egenix.com/python/"
|
||||
"LSM2005-Developing-Unicode-aware-applications-in-Python.pdf>`_ (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 ""
|
||||
|
@ -891,6 +1227,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 <http://pyvideo.org/video/1768/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"
|
||||
|
@ -902,6 +1242,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 ""
|
||||
|
|
|
@ -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"
|
||||
|
|
267
install/index.po
267
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ù ``<plat>`` 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 ``<plat>``. 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 <inst-search-"
|
||||
"path>` 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 ""
|
||||
|
@ -997,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 ""
|
||||
|
@ -1011,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}`"
|
||||
|
@ -1022,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 ""
|
||||
|
@ -1032,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 ""
|
||||
|
@ -1039,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 ""
|
||||
|
@ -1142,7 +1169,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/install/index.rst:613
|
||||
msgid "or, equivalently, ::"
|
||||
msgstr "ou : ::"
|
||||
msgstr "ou ::"
|
||||
|
||||
#: ../Doc/install/index.rst:621
|
||||
msgid ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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/`"
|
||||
|
|
|
@ -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`"
|
||||
|
@ -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* <future>` lancées sous les "
|
||||
"versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution "
|
||||
"(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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -141,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"
|
||||
|
@ -157,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"
|
||||
|
@ -174,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"
|
||||
|
@ -187,6 +219,8 @@ msgstr "2.5.0a1"
|
|||
#: ../Doc/library/__future__.rst:78
|
||||
msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*"
|
||||
msgstr ""
|
||||
":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource "
|
||||
"en anglais)"
|
||||
|
||||
#: ../Doc/library/__future__.rst:81
|
||||
msgid "with_statement"
|
||||
|
@ -198,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"
|
||||
|
@ -210,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"
|
||||
|
@ -218,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"
|
||||
|
@ -235,6 +269,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`"
|
||||
|
@ -242,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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -46,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`."
|
||||
|
@ -55,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 ""
|
||||
|
@ -66,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 ""
|
||||
|
@ -78,14 +93,16 @@ 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 ""
|
||||
"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 ""
|
||||
|
@ -95,6 +112,12 @@ msgid ""
|
|||
"identifiers may be recycled when a thread exits and another thread is "
|
||||
"created."
|
||||
msgstr ""
|
||||
"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 *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 ""
|
||||
|
@ -122,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 ""
|
||||
|
@ -136,6 +159,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 ""
|
||||
|
@ -144,6 +171,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 ""
|
||||
|
@ -152,12 +183,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."
|
||||
|
@ -166,24 +203,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:**"
|
||||
|
@ -195,12 +239,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 ""
|
||||
|
@ -208,6 +258,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 ""
|
||||
|
@ -215,6 +268,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 ""
|
||||
|
@ -222,3 +279,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."
|
||||
|
|
|
@ -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:"
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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 <https://docs.scipy.org/doc/>`_"
|
||||
msgstr "`The Numerical Python Documentation <https://docs.scipy.org/doc/>`_"
|
||||
msgstr "`La documentation de *Numerical Python* <https://docs.scipy.org/doc/>`"
|
||||
|
||||
#: ../Doc/library/array.rst:276
|
||||
msgid ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -210,6 +210,8 @@ msgid ""
|
|||
"See the :ref:`concurrency and multithreading <asyncio-multithreading>` "
|
||||
"section of the documentation."
|
||||
msgstr ""
|
||||
"Voir la section :ref:`exécution concurrente et multi-fils d'exécution "
|
||||
"<asyncio-multithreading>` 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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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."
|
||||
|
@ -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 <asyncio-multithreading>` "
|
||||
"section of the documentation."
|
||||
msgstr ""
|
||||
"Voir la section :ref:`exécution concurrente et multi-fils d'exécution "
|
||||
"<asyncio-multithreading>` de la documentation."
|
||||
|
||||
#: ../Doc/library/asyncio-task.rst:620
|
||||
msgid ""
|
||||
|
@ -719,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::"
|
||||
|
@ -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::"
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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 ""
|
||||
|
@ -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 ""
|
||||
|
@ -138,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 <decorator>` : ::"
|
||||
msgstr "Utilisation en tant que :term:`décorateur <decorator>` ::"
|
||||
|
||||
#: ../Doc/library/atexit.rst:109
|
||||
msgid "This only works with functions that can be called without arguments."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 <bytes-like object>` en :class:`bytes` ASCII "
|
||||
"ainsi que le décodage d':term:`objets octet-compatibles <bytes-like object>` "
|
||||
"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 <file object>`. 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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <bytes-like object>` *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 <bytes-like object>` 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 <file object>`. *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 <file object>`. *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 <bytes-like object>` *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 <file object>`. *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 <bytes-like object>` *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."
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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 <bytes-like object>` (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."
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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 ::"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
119
library/bz2.po
119
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*."
|
||||
|
|
|
@ -19,11 +19,11 @@ 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`"
|
||||
msgstr "**Code source :** :source:`Lib/calendar.py`"
|
||||
msgstr "**Code source :** :source:`Lib/calendar.py`"
|
||||
|
||||
#: ../Doc/library/calendar.rst:14
|
||||
msgid ""
|
||||
|
@ -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."
|
||||
|
@ -179,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 ""
|
||||
|
@ -194,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 ""
|
||||
|
@ -202,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 ""
|
||||
|
@ -210,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 ""
|
||||
|
@ -218,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 ""
|
||||
|
@ -230,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 ""
|
||||
|
@ -277,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 ""
|
||||
|
@ -304,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 ""
|
||||
|
@ -325,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 ""
|
||||
|
@ -332,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`"
|
||||
|
@ -342,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`"
|
||||
|
@ -349,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."
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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`"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
|||
"``'<input>'``. 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* (``'<input>'`` 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."
|
||||
|
|
|
@ -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:"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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`"
|
||||
|
|
|
@ -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 <directories from sys.path>``."
|
||||
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 <tous "
|
||||
"les dossiers de sys.path>`."
|
||||
|
||||
#: ../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 <directory> -r 0` is equivalent to :program:`python -m compileall "
|
||||
"<directory> -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 <dossier> -r 0` revient au même que :program:`python -m "
|
||||
"compileall <dossier> -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."
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue