Compare commits

...

5 Commits

201 changed files with 11092 additions and 2823 deletions

View File

@ -50,6 +50,7 @@ upgrade_venv:
$(VENV)/bin/activate: $(SPHINX_CONF)
$(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv
$(VENV)/bin/python3 -m pip install Sphinx==2.2
.PHONY: progress

View File

@ -17,7 +17,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 ""
@ -67,7 +67,7 @@ msgid ""
msgstr ""
"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 "
"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."

View File

@ -88,6 +88,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 ""
@ -150,6 +154,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 ""
@ -158,12 +169,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]"
@ -176,12 +194,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 ""
@ -190,6 +215,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 ../Doc/c-api/arg.rst:566
msgid "``z`` (:class:`str` or ``None``) [const char \\*]"
@ -232,6 +262,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 ""
@ -240,12 +272,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]"
@ -306,6 +344,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

View File

@ -528,7 +528,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

View File

@ -72,7 +72,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"

View File

@ -232,7 +232,7 @@ msgstr ""
#: ../Doc/c-api/intro.rst:193
msgid "Reference Counts"
msgstr ""
msgstr "Compteurs de références"
#: ../Doc/c-api/intro.rst:195
msgid ""

View File

@ -16,13 +16,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 ""
@ -37,6 +39,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 ""
@ -58,12 +62,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:70
msgid ""
@ -71,6 +81,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:63
msgid ""
@ -78,6 +91,9 @@ msgid ""
"method will get suppressed. To get error reporting use :c:func:"
"`PyObject_GetItem()` instead."
msgstr ""
"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:"
"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez "
"plutôt :c:func:`PyObject_GetItem()`."
#: ../Doc/c-api/mapping.rst:74
msgid ""
@ -85,6 +101,10 @@ msgid ""
"method and creating a temporary string object will get suppressed. To get "
"error reporting use :c:func:`PyMapping_GetItemString()` instead."
msgstr ""
"Notez que les exceptions qui surviennent en créant une chaîne de caractères "
"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront "
"supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt :c:func:"
"`PyMapping_GetItemString()`."
#: ../Doc/c-api/mapping.rst:81
msgid ""
@ -95,7 +115,7 @@ msgstr ""
#: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93
#: ../Doc/c-api/mapping.rst:102
msgid "Previously, the function returned a list or a tuple."
msgstr ""
msgstr "Auparavant, la fonction renvoyait une liste ou un n-uplet."
#: ../Doc/c-api/mapping.rst:90
msgid ""

View File

@ -488,7 +488,7 @@ msgstr ""
#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513
msgid "Field"
msgstr ""
msgstr "Champ"
#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513
msgid "Meaning"

View File

@ -24,6 +24,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 ""
@ -32,12 +35,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 ""
@ -45,6 +54,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 ""
@ -54,12 +65,19 @@ 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 ""
"Return true if the object *obj* is a memoryview object. It is not currently "
"allowed to create subclasses of :class:`memoryview`."
msgstr ""
"Renvoie vrai si l'objet *obj* est un objet *memoryview*. Il n'est pas permis "
"de créer une sous-classe de :class:`memoryview`."
#: ../Doc/c-api/memoryview.rst:53
msgid ""
@ -67,6 +85,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 ""

View File

@ -142,7 +142,7 @@ msgstr ""
#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279
#: ../Doc/c-api/structures.rst:345
msgid "Field"
msgstr ""
msgstr "Champ"
#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279
#: ../Doc/c-api/structures.rst:345

View File

@ -150,7 +150,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"

View File

@ -437,7 +437,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"

164
dict
View File

@ -1,6 +1,11 @@
017F
212A
Ahlstrom
#python-fr
-1
-ième
-uplet
-uplets
017f
212a
ahlstrom
allocateur
allocateurs
base16
@ -8,98 +13,135 @@ base32
base64
base85
batch
boguer
c++
c-
C-
C99
c/c++
C14N
C89
c99
chacha20
cadriciel
cadriciels
Catucci
catucci
cobjects
composabilité
concourance
contravariante
contravariantes
configurateurs
contribués
coroutine
coroutine
coroutines
Cython
cpython
curryfication
cython
d'allocateurs
d'indifférentiabilité
d'itérateurs
docstrings
décodables
déduplication
délimitants
désenregistre
déserialisables
déserialisation
déserialisations
déserialise
désérialise
désérialisé
désérialisées
déserialiser
désérialiser
déserialisés
déserialiseur
déserialiseurs
d'indifférentiabilité
d'itérateurs
docstrings
émoji
désérialiseur
désérialiseurs
déserialisées
déserialisés
désérialisés
désérialise
désérialiser
désérialisé
désérialisées
encodable
Farrugia
ethnomathématiques
farrugia
finaliseur
Fredrik
frederik
fredrik
freeze
Guido
glibc
guido
hachabilité
hachable
hachables
Hettinger
hettinger
html
-ième
indiçage
indo-arabes
ininterruptible
interchangés
iOS
intralignes
ios
ipv4
itérateur
itérateurs
ı
journalisé
ième
journalise
journaliser
journalisés
journaliseur
Jr.
Kuchling
journalisé
journalisée
journalisés
jr.
kolams
kuchling
l'allocateur
lexicographiquement
l'indiçage
l'itérateur
lexicographiquement
lorsqu'aucune
lorsqu'aucun
mar
mar.
Marc-André
mémoïsant
mémoïsation
Mersenne
métacaractère
métacaractères
métaclasse
métaclasses
marc-andré
mersenne
mertz
Monty
muabilité
muable
muables
multiensemble
multiensembles
mutex
mémoïsant
mémoïsation
métacaractère
métacaractères
métaclasse
métaclasses
n-ième
namespace
non-hachable
non-hachables
pdb
pip
pourcent
proleptique
précompilé
préemptif
proleptique
préremplis
py2exe
pyc
PyChecker
Pydb
Pylint
PythonWin
pychecker
pydb
pylint
pythonwin
qu
re
recompilation
Reedy
reedy
relationelle
retraçage
réentrant
réentrante
réentrants
réessayable
réexécuter
@ -108,33 +150,41 @@ référençables
réimplémente
réimplémenter
réimplémentez
relationelle
résolveurs
retraçage
réusinage
réusinages
réusiné
ſ
sérialisable
réutilisabilité
serwy
shell
slot
smalltalk
sqlite
surprenamment
sérialisable
sérialisables
sérialiser
sérialiseur
sérialisé
sérialisée
sérialisées
sérialiser
sérialisés
sérialiseur
Serwy
shell
slot
surprenamment
tk
tokenisation
tokenisé
tokenisés
tty
uplets
utf-8
utf-16
utf-32
von
W3C
wxWidgets
X11
Zope
w3c
world
wxwidgets
x11
x86
zope
émoji
ı
ſ

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/distutils/introduction.rst:5
msgid "An Introduction to Distutils"
msgstr ""
msgstr "Introduction à Distutils"
#: ../Doc/distutils/introduction.rst:7
msgid ""
@ -25,6 +25,10 @@ msgid ""
"information on installing Python modules, you should refer to the :ref:"
"`install-index` chapter."
msgstr ""
"Ce document traite de l'utilisation de Distutils pour distribuer des modules "
"Python, en se concentrant sur le rôle de développeur/distributeur : si vous "
"cherchez des informations sur l'installation de modules Python, vous devriez "
"vous référer au chapitre :ref:`install-index`."
#: ../Doc/distutils/introduction.rst:16
msgid "Concepts & Terminology"
@ -37,26 +41,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 ""
@ -70,6 +78,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"
@ -84,22 +102,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 ""
@ -107,12 +136,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 ""
@ -120,6 +154,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 ""
@ -127,12 +164,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 ""
@ -141,6 +183,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 ""
@ -148,12 +195,18 @@ msgid ""
"is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from "
"the :file:`foo-1.0` directory---run ::"
msgstr ""
"Si un utilisateur final souhaite installer votre module :mod:`foo`, tout ce "
"qu'il aura à faire est de télécharger le fichier :file:`foo-1.0.tar.gz` (ou :"
"file:`.zip`), le décompresser et ---depuis le répertoire :file:`foo-1.0`--- "
"exécuter :"
#: ../Doc/distutils/introduction.rst:103
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 ""
@ -164,6 +217,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 ""
@ -174,12 +234,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 "
"loccurrence, 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 ""
@ -188,6 +257,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 ""
@ -195,16 +269,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 ""
@ -213,6 +292,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"
@ -224,10 +307,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 ""
@ -235,6 +321,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"
@ -250,6 +338,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"
@ -261,6 +356,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"
@ -276,20 +374,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 ""
@ -299,30 +407,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 ""
@ -330,3 +448,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."

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-08-21 12:33+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/distutils/packageindex.rst:7

File diff suppressed because it is too large Load Diff

View File

@ -135,6 +135,9 @@ msgid ""
"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including "
"``Python.h``. See :ref:`parsetuple` for a description of this macro."
msgstr ""
"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure "
"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette "
"macro."
#: ../Doc/extending/extending.rst:75
msgid ""
@ -567,13 +570,16 @@ msgstr ""
#: ../Doc/extending/extending.rst:312
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:314
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:325
msgid ""
@ -583,6 +589,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:330
msgid ""
@ -590,6 +601,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:334
msgid ""
@ -599,11 +614,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:340
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:351
msgid ""
@ -612,6 +634,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:362
msgid ""
@ -619,6 +645,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:366
msgid ""
@ -641,6 +671,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:413
msgid ""
@ -650,6 +685,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:419
msgid ""
@ -657,6 +698,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:425
msgid ""
@ -665,10 +709,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:434
msgid "Compilation and Linkage"
msgstr ""
msgstr "Compilation et liaison"
#: ../Doc/extending/extending.rst:436
msgid ""
@ -707,7 +756,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:471
msgid "Calling Python Functions from C"
msgstr ""
msgstr "Appeler des fonctions Python en C"
#: ../Doc/extending/extending.rst:473
msgid ""
@ -746,6 +795,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:522
msgid ""
@ -807,6 +860,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:594
msgid ""
@ -822,14 +885,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:616
msgid "Extracting Parameters in Extension Functions"
msgstr ""
msgstr "Extraire des paramètres dans des fonctions d'extension"
#: ../Doc/extending/extending.rst:620
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:624
msgid ""
@ -859,16 +926,17 @@ msgstr ""
#: ../Doc/extending/extending.rst:638
msgid "Some example calls::"
msgstr ""
msgstr "Quelques exemples d'appels ::"
#: ../Doc/extending/extending.rst:708
msgid "Keyword Parameters for Extension Functions"
msgstr ""
msgstr "Paramètres nommés pour des fonctions d'extension"
#: ../Doc/extending/extending.rst:712
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:717
msgid ""
@ -887,22 +955,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:733
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:788
msgid "Building Arbitrary Values"
msgstr ""
msgstr "Créer des valeurs arbitraires"
#: ../Doc/extending/extending.rst:790
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:795
msgid ""
@ -911,6 +986,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:800
msgid ""
@ -928,10 +1008,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:834
msgid "Reference Counts"
msgstr ""
msgstr "Compteurs de références"
#: ../Doc/extending/extending.rst:836
msgid ""
@ -941,6 +1022,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:842
msgid ""
@ -984,6 +1071,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:874
msgid ""
@ -1000,6 +1095,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:886
msgid ""
@ -1014,6 +1122,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:897
msgid ""
@ -1029,7 +1149,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:911
msgid "Reference Counting in Python"
msgstr ""
msgstr "Comptage de références en Python"
#: ../Doc/extending/extending.rst:913
msgid ""
@ -1041,6 +1161,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:920
msgid ""
@ -1054,6 +1181,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:929
msgid ""
@ -1074,6 +1211,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:943
msgid ""
@ -1086,7 +1231,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:953
msgid "Ownership Rules"
msgstr ""
msgstr "Règles concernant la propriété de références"
#: ../Doc/extending/extending.rst:955
msgid ""
@ -1094,6 +1239,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:959
msgid ""
@ -1153,7 +1302,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:1000
msgid "Thin Ice"
msgstr ""
msgstr "Terrain dangereux"
#: ../Doc/extending/extending.rst:1002
msgid ""
@ -1162,6 +1311,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 linterpréteur, et peuvent amener le "
"propriétaire d'une référence à s'en défaire."
#: ../Doc/extending/extending.rst:1006
msgid ""
@ -1169,6 +1322,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:1018
msgid ""
@ -1176,6 +1332,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:1022
msgid ""
@ -1186,6 +1345,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:1029
msgid ""
@ -1197,6 +1363,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:1037
msgid ""
@ -1223,10 +1396,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:1078
msgid "NULL Pointers"
msgstr ""
msgstr "Pointeurs ``NULL``"
#: ../Doc/extending/extending.rst:1080
msgid ""
@ -1278,7 +1461,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:1117
msgid "Writing Extensions in C++"
msgstr ""
msgstr "Écrire des extensions en C++"
#: ../Doc/extending/extending.rst:1119
msgid ""
@ -1292,10 +1475,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:1133
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:1138
msgid ""
@ -1307,6 +1501,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:1146
msgid ""
@ -1323,6 +1526,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:1158
msgid ""
@ -1333,6 +1550,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:1165
msgid ""
@ -1355,6 +1580,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:1179
msgid ""
@ -1390,6 +1622,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:1204
msgid ""
@ -1400,6 +1640,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:1211
msgid ""
@ -1409,15 +1656,15 @@ msgstr ""
#: ../Doc/extending/extending.rst:1220
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:1234
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:1238
msgid "two more lines must be added::"
msgstr ""
msgstr "on doit ajouter deux lignes supplémentaires ::"
#: ../Doc/extending/extending.rst:1243
msgid ""
@ -1426,18 +1673,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:1269
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:1272
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:1323
msgid ""
@ -1445,6 +1700,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:1341
msgid ""
@ -1452,6 +1710,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:1345
msgid ""
@ -1462,6 +1724,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:1353
msgid "Footnotes"
@ -1472,12 +1741,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:1357
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:1360
msgid ""
@ -1485,9 +1758,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:1364
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."

View File

@ -16,7 +16,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 ""
@ -68,16 +68,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 ""
@ -125,11 +130,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 ""
@ -165,11 +170,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 ""
@ -203,7 +208,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 ""
@ -216,6 +221,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 ""
@ -244,6 +251,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 ""
@ -295,35 +303,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 ""
@ -334,6 +342,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 ""
@ -343,7 +358,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 ""
@ -379,7 +394,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:365
msgid "Object Comparison"
msgstr ""
msgstr "Comparaison des objets"
#: ../Doc/extending/newtypes.rst:371
msgid ""
@ -408,7 +423,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:414
msgid "Abstract Protocol Support"
msgstr ""
msgstr "Support pour le protocole abstrait"
#: ../Doc/extending/newtypes.rst:416
msgid ""
@ -466,7 +481,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 ""
@ -491,7 +506,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 ""
@ -509,6 +524,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 ""
@ -516,6 +535,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 ""
@ -541,7 +563,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 ""
@ -549,16 +571,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 ""
@ -574,16 +602,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 ""
@ -594,7 +629,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:597
msgid "More Suggestions"
msgstr ""
msgstr "Plus de suggestions"
#: ../Doc/extending/newtypes.rst:599
msgid ""
@ -604,6 +639,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 ""
@ -611,23 +652,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"

View File

@ -504,7 +504,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:269
msgid ""
@ -1094,7 +1094,7 @@ msgstr ""
"`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur "
"de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire "
"(ou une autre structure basée sur le hachage), restent fixes pendant que "
"l'objet est dans le dictionnaire (ou une autre structure). ::"
"l'objet est dans le dictionnaire (ou une autre structure). ::"
#: ../Doc/faq/design.rst:574
msgid ""
@ -1341,7 +1341,7 @@ msgid ""
"If you're trying to build a pathname for a DOS command, try e.g. one of ::"
msgstr ""
"Si vous essayez de construire un chemin d'accès pour une commande DOS, "
"essayez par exemple l'un de ceux-là ::"
"essayez par exemple l'un de ceux-là ::"
#: ../Doc/faq/design.rst:698
msgid "Why doesn't Python have a \"with\" statement for attribute assignments?"
@ -1448,7 +1448,7 @@ msgstr ""
#: ../Doc/faq/design.rst:761
msgid "versus ::"
msgstr "versus ::"
msgstr "versus ::"
#: ../Doc/faq/design.rst:766
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-08-31 11:36+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/faq/extending.rst:3
@ -54,11 +54,11 @@ msgid ""
"each function that is going to be called by the Python interpreter. Global "
"or static C++ objects with constructors are probably not a good idea."
msgstr ""
"Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. "
"Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez "
"``extern \"C\"`` avant chaque fonction qui sera appelée par l'interpréteur "
"Python. Les objets globaux ou statiques C++ ayant des constructeurs ne sont "
"probablement pas adaptés."
"Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. "
"Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez "
"``extern \"C\"`` avant chaque fonction qui va être appelée par "
"l'interpréteur Python. Les objets C++ globaux ou statiques avec les "
"constructeurs ne sont probablement pas une bonne idée."
#: ../Doc/faq/extending.rst:37
msgid "Writing C is hard; are there any alternatives?"
@ -70,7 +70,7 @@ msgid ""
"depending on what you're trying to do."
msgstr ""
"Il y a un certain nombre de solutions existantes qui vous permettent "
"d'écrire vos propres extensions en C selon ce que vous essayez de faire."
"d'écrire vos propres extensions C, selon ce que vous essayez de faire."
#: ../Doc/faq/extending.rst:44
msgid ""

View File

@ -760,12 +760,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:353
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-03 22:10+0200\n"
"PO-Revision-Date: 2019-08-06 11:31+0200\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
"Language-Team: \n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/faq/gui.rst:5

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-28 15:29+0200\n"
"PO-Revision-Date: 2019-08-22 22:17+0200\n"
"Last-Translator: Antoine Wecxsteen\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Antoine Wecxsteen\n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/faq/library.rst:5
@ -937,7 +937,7 @@ msgstr ""
#: ../Doc/faq/library.rst:677
msgid "How can I mimic CGI form submission (METHOD=POST)?"
msgstr "Comment reproduire un envoi de formulaire CGI (METHOD=POST) ?"
msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?"
#: ../Doc/faq/library.rst:679
msgid ""

View File

@ -32,7 +32,7 @@ msgid ""
"Is there a source code level debugger with breakpoints, single-stepping, "
"etc.?"
msgstr ""
"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-"
"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-"
"à-pas, etc. ?"
#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63
@ -44,6 +44,8 @@ msgid ""
"Several debuggers for Python are described below, and the built-in function :"
"func:`breakpoint` allows you to drop into any of them."
msgstr ""
"Plusieurs débogueurs sont décrits ci-dessous et la fonction native :func:"
"`breakpoint` permet d'utiliser n'importe lequel d'entre eux."
#: ../Doc/faq/programming.rst:22
msgid ""
@ -52,10 +54,10 @@ msgid ""
"Library Reference Manual <pdb>`. You can also write your own debugger by "
"using the code for pdb as an example."
msgstr ""
"Le module pdb est un débogueur console simple, mais parfaitement adapté à "
"Python. Il fait partie de la bibliothèque standard de Python, sa "
"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté "
"à Python. Il fait partie de la bibliothèque standard de Python, sa "
"documentation se trouve dans le :mod:`manuel de référence <pdb>`. Vous "
"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur."
"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur."
#: ../Doc/faq/programming.rst:27
msgid ""
@ -64,8 +66,8 @@ msgid ""
"graphical debugger."
msgstr ""
"L'environnement de développement interactif IDLE, qui est fourni avec la "
"distribution standard de Python (normalement disponible dans Tools/scripts/"
"idle) contient un débogueur graphique."
"distribution standard de Python (normalement disponible dans ``Tools/scripts/"
"idle``) contient un débogueur graphique."
#: ../Doc/faq/programming.rst:31
msgid ""
@ -76,13 +78,14 @@ msgid ""
">`__ project and as a part of the ActivePython distribution (see https://www."
"activestate.com/activepython\\ )."
msgstr ""
"PythonWin est un environnement de développement intégré (EDI) Python qui "
"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore "
"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme "
"la possibilité de déboguer des programmes développés sans PythonWin. "
"PythonWin est disponible dans le projet `Extensions Python pour Windows "
"<https://sourceforge.net/projects/pywin32/>`__ et fait partie de la "
"distribution ActivePython (voir https://www.activestate.com/activepython\\ )."
"*PythonWin* est un environnement de développement intégré (EDI) Python qui "
"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* "
"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, "
"comme la possibilité de déboguer des programmes développés sans "
"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python "
"pour Windows <https://sourceforge.net/projects/pywin32/>`__ et fait partie "
"de la distribution ActivePython (voir https://www.activestate.com/"
"activepython\\ )."
#: ../Doc/faq/programming.rst:38
msgid ""
@ -93,8 +96,8 @@ msgid ""
"an advanced debugger, integrated help, and Zope support."
msgstr ""
"`Boa Constructor <http://boa-constructor.sourceforge.net/>`_ est un EDI et "
"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la "
"création et la manipulation de fenêtres, un inspecteur d'objets, de "
"un constructeur d'interface homme-machine basé sur *wxWidgets*. Il propose "
"la création et la manipulation de fenêtres, un inspecteur d'objets, de "
"nombreuses façons de visualiser des sources comme un navigateur d'objets, "
"les hiérarchies d'héritage, la documentation html générée par les "
"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de "
@ -143,7 +146,7 @@ msgstr "PyCharm (https://www.jetbrains.com/pycharm/)"
#: ../Doc/faq/programming.rst:61
msgid "Is there a tool to help find bugs or perform static analysis?"
msgstr ""
"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse "
"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse "
"statique de code ?"
#: ../Doc/faq/programming.rst:65
@ -152,9 +155,9 @@ msgid ""
"and warns about code complexity and style. You can get PyChecker from "
"http://pychecker.sourceforge.net/."
msgstr ""
"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code "
"source Python et émet des avertissements relatifs à la complexité et au "
"style du code. PyChecker est disponible sur http://pychecker.sourceforge."
"*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le "
"code source Python et émet des avertissements relatifs à la complexité et au "
"style du code. *PyChecker* est disponible sur http://pychecker.sourceforge."
"net/."
#: ../Doc/faq/programming.rst:69
@ -266,7 +269,7 @@ msgstr ""
#: ../Doc/faq/programming.rst:115
msgid "Are there coding standards or a style guide for Python programs?"
msgstr ""
"Existe-t'il des normes de développement ou un guide de style pour écrire des "
"Existe-t-il des normes de développement ou un guide de style pour écrire des "
"programmes Python ?"
#: ../Doc/faq/programming.rst:117
@ -412,7 +415,7 @@ msgid ""
msgstr ""
"Le code précédent crée une liste de 5 expressions lambda qui calculent "
"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, "
"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :"
"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::"
#: ../Doc/faq/programming.rst:230
msgid ""
@ -427,7 +430,7 @@ msgstr ""
"l'appel de l'expression lambda et non au moment où cette expression est "
"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions "
"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la "
"valeur de ``x`` et en constatant que les résultats sont modifiés :"
"valeur de ``x`` et en constatant que les résultats sont modifiés ::"
#: ../Doc/faq/programming.rst:240
msgid ""
@ -436,7 +439,7 @@ msgid ""
msgstr ""
"Pour éviter ce phénomène, les valeurs doivent être stockées dans des "
"variables locales aux expressions lambda pour que celles-ci ne se basent "
"plus sur la variable globale ``x`` :"
"plus sur la variable globale ``x`` ::"
#: ../Doc/faq/programming.rst:247
msgid ""
@ -451,7 +454,7 @@ msgstr ""
"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc "
"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la "
"troisième et ainsi de suite. Chaque expression lambda renvoie donc le "
"résultat correct :"
"résultat correct ::"
#: ../Doc/faq/programming.rst:258
msgid ""
@ -483,15 +486,15 @@ msgstr ""
#: ../Doc/faq/programming.rst:271
msgid "config.py::"
msgstr "*config.py* ::"
msgstr "*config.py* ::"
#: ../Doc/faq/programming.rst:275
msgid "mod.py::"
msgstr "*mod.py* ::"
msgstr "*mod.py* ::"
#: ../Doc/faq/programming.rst:280
msgid "main.py::"
msgstr "*main.py* ::"
msgstr "*main.py* ::"
#: ../Doc/faq/programming.rst:286
msgid ""
@ -569,7 +572,7 @@ msgid ""
"module is busy importing the 2nd."
msgstr ""
"Il n'y a aucun souci à faire des importations circulaires tant que les deux "
"modules utilisent la forme \"import <module>\" . Ça ne pose problème que si "
"modules utilisent la forme ``import <module>``. Ça ne pose problème que si "
"le second module cherche à récupérer un nom du premier module (*\"from "
"module import name\"*) et que l'importation est dans l'espace de nommage du "
"fichier. Les noms du premier module ne sont en effet pas encore disponibles "
@ -638,7 +641,7 @@ msgid ""
"function::"
msgstr ""
"C'est un problème que rencontrent souvent les programmeurs débutants. "
"Examinons la fonction suivante ::"
"Examinons la fonction suivante ::"
#: ../Doc/faq/programming.rst:350
msgid ""
@ -658,7 +661,7 @@ msgid ""
"dictionary in this example, subsequent calls to the function will refer to "
"this changed object."
msgstr ""
"On est souvent amené à croire qu'un appel de fonction créé des nouveau "
"On est souvent amené à croire qu'un appel de fonction créé des nouveaux "
"objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par "
"défaut ne sont créées qu'une et une seule fois, au moment où la fonction est "
"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les "
@ -686,11 +689,11 @@ msgstr ""
"muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme "
"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre "
"est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas "
"échéant. Par exemple, il ne faut pas écrire ::"
"échéant. Par exemple, il ne faut pas écrire ::"
#: ../Doc/faq/programming.rst:371
msgid "but::"
msgstr "mais plutôt ::"
msgstr "mais plutôt ::"
#: ../Doc/faq/programming.rst:377
msgid ""
@ -704,7 +707,7 @@ msgstr ""
"paramètres et la valeur de retour de chacun des appels d'une fonction "
"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même "
"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui "
"s'implémente de la manière suivante ::"
"s'implémente de la manière suivante ::"
#: ../Doc/faq/programming.rst:392
msgid ""
@ -731,7 +734,7 @@ msgstr ""
"dans la liste des paramètres de la fonction ; ceci donne les arguments "
"positionnels sous la forme d'un n-uplet et les arguments nommés sous forme "
"de dictionnaire. Ces arguments peuvent être passés à une autre fonction en "
"utilisant ``*`` et ``**`` ::"
"utilisant ``*`` et ``**`` ::"
#: ../Doc/faq/programming.rst:418
msgid "What is the difference between arguments and parameters?"
@ -749,7 +752,7 @@ msgstr ""
"définition de fonction, alors que les :term:`arguments <argument>` sont les "
"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-"
"ci. Les paramètres définissent les types des arguments qu'une fonction "
"accepte. Ainsi, avec la définition de fonction suivante ::"
"accepte. Ainsi, avec la définition de fonction suivante ::"
#: ../Doc/faq/programming.rst:428
msgid ""
@ -757,7 +760,7 @@ msgid ""
"``func``, for example::"
msgstr ""
"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de "
"``func`` avec, par exemple ::"
"``func`` avec, par exemple ::"
#: ../Doc/faq/programming.rst:433
msgid "the values ``42``, ``314``, and ``somevar`` are arguments."
@ -814,7 +817,7 @@ msgstr ""
#: ../Doc/faq/programming.rst:463
msgid "If we instead assign an immutable object to ``x``::"
msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::"
msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::"
#: ../Doc/faq/programming.rst:473
msgid ""
@ -919,14 +922,14 @@ msgid ""
"You can achieve the desired effect in a number of ways."
msgstr ""
"En Python, les arguments sont passés comme des affectations de variables. Vu "
"qu'une affectation crée des références à des objets, il n'y pas de lien "
"qu'une affectation crée des références à des objets, il n'y a pas de lien "
"entre un argument dans l'appel de la fonction et sa définition, et donc pas "
"de passage par référence en soi. Il y a cependant plusieurs façon d'en "
"de passage par référence en soi. Il y a cependant plusieurs façons d'en "
"émuler un."
#: ../Doc/faq/programming.rst:519
msgid "By returning a tuple of the results::"
msgstr "En renvoyant un n-uplet de résultats ::"
msgstr "En renvoyant un n-uplet de résultats ::"
#: ../Doc/faq/programming.rst:530
msgid "This is almost always the clearest solution."
@ -984,7 +987,7 @@ msgstr "Ou en utilisant un objet appelable ::"
#: ../Doc/faq/programming.rst:597
msgid "In both cases, ::"
msgstr "Dans les deux cas, ::"
msgstr "Dans les deux cas ::"
#: ../Doc/faq/programming.rst:601
msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``."
@ -1015,7 +1018,7 @@ msgstr ""
#: ../Doc/faq/programming.rst:635
msgid "How do I copy an object in Python?"
msgstr "Comment copier un objet en Python?"
msgstr "Comment copier un objet en Python ?"
#: ../Doc/faq/programming.rst:637
msgid ""
@ -1111,7 +1114,7 @@ msgstr ""
"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le "
"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu "
"­ alors le meilleur moyen de savoir comment il s'appelle est de demander à "
"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…."
"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…"
#: ../Doc/faq/programming.rst:695
msgid ""
@ -1167,7 +1170,7 @@ msgid ""
"logical operators::"
msgstr ""
"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant "
"d'utiliser les opérateurs de logique ::"
"d'utiliser les opérateurs de logique ::"
#: ../Doc/faq/programming.rst:735
msgid ""
@ -1268,7 +1271,7 @@ msgid ""
msgstr ""
"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal "
"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux "
"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans "
"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans "
"l'interpréteur Python ::"
#: ../Doc/faq/programming.rst:835
@ -1281,7 +1284,7 @@ msgid ""
"``j``. If you want that, and also want::"
msgstr ""
"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que "
"j. Si vous voulez en plus que ::"
"j. Si vous voulez en plus que ::"
#: ../Doc/faq/programming.rst:842
msgid ""
@ -1304,8 +1307,8 @@ msgstr ""
"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est "
"négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement "
"tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche "
"10h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est "
"utile ; ``-190 % 12 == -10`` est un bogue en puissance."
"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` "
"est utile ; ``-190 % 12 == -10`` est un bogue en puissance."
#: ../Doc/faq/programming.rst:854
msgid "How do I convert a string to a number?"
@ -1359,7 +1362,7 @@ msgid ""
"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python "
"does not allow leading '0' in a decimal number (except '0')."
msgstr ""
":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des "
":func:`eval` a aussi pour effet d'interpréter les nombres comme des "
"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, "
"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à "
"l'exception du nombre '0')."
@ -1401,13 +1404,13 @@ msgstr ""
"plupart des cas, il faut tout simplement construire une nouvelle chaîne à "
"partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet "
"capable de modifier de la donnée Unicode « sur place », essayez d'utiliser "
"un objet :class:`io.StringIO` ou le module :mod:`array` ::"
"un objet :class:`io.StringIO` ou le module :mod:`array` ::"
#: ../Doc/faq/programming.rst:922
msgid "How do I use strings to call functions/methods?"
msgstr ""
"Comment utiliser des chaînes de caractères pour appeler des fonctions/"
"méthodes?"
"méthodes ?"
#: ../Doc/faq/programming.rst:924
msgid "There are various techniques."
@ -1481,7 +1484,7 @@ msgstr ""
"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de "
"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` "
"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de "
"fin de de ligne de chaque ligne vide seront retirés ::"
"fin de ligne de chaque ligne vide seront retirés ::"
#: ../Doc/faq/programming.rst:994
msgid ""
@ -1650,8 +1653,8 @@ msgid ""
"detrimental to readability)."
msgstr ""
"Les abstractions ont tendance à créer des indirections et obligent "
"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le "
"quantité de travail effectif, le programme sera ralentit. Il faut toujours "
"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la "
"quantité de travail effectif, le programme sera ralenti. Il faut toujours "
"éviter trop d'indirections, en particulier sous la forme de fonctions ou "
"méthodes trop petites (qui nuisent aussi souvent à la clarté du code)."
@ -1710,7 +1713,7 @@ msgid ""
msgstr ""
"Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique "
"recommandée consiste à toutes les mettre dans une liste et appeler la "
"méthode :meth:`str.join` à la fin ::"
"méthode :meth:`str.join` à la fin ::"
#: ../Doc/faq/programming.rst:1096
msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)"
@ -1726,7 +1729,7 @@ msgid ""
msgstr ""
"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique "
"recommandée consiste à étendre un objet :class:`bytearray` en utilisant la "
"concaténation en-place (l'opérateur ``+=``) ::"
"concaténation en-place (l'opérateur ``+=``) ::"
#: ../Doc/faq/programming.rst:1107
msgid "Sequences (Tuples/Lists)"
@ -1853,7 +1856,7 @@ msgid ""
msgstr ""
"Si tous les éléments de la liste peuvent être utilisés comme des clés de "
"dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables "
"<hashable>`) ceci est souvent plus rapide ::"
"<hashable>`) ceci est souvent plus rapide ::"
#: ../Doc/faq/programming.rst:1180
msgid ""
@ -1962,7 +1965,7 @@ msgid ""
msgstr ""
"Cela génère une liste contenant elle-même trois listes distinctes, de "
"longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en "
"compréhension ::"
"compréhension ::"
#: ../Doc/faq/programming.rst:1259
msgid ""
@ -1984,7 +1987,7 @@ msgstr "Utilisez une liste en compréhension ::"
msgid ""
"Why does a_tuple[i] += ['item'] raise an exception when the addition works?"
msgstr ""
"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que "
"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que "
"l'addition fonctionne ?"
#: ../Doc/faq/programming.rst:1275
@ -2004,7 +2007,7 @@ msgid ""
"a ``list`` and ``+=`` as our exemplar."
msgstr ""
"Cette discussion est valable, en général, quand des opérateurs d'affectation "
"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des "
"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des "
"objets muables, mais on prendra ``list`` et ``+=`` comme exemple."
#: ../Doc/faq/programming.rst:1283
@ -2031,7 +2034,7 @@ msgid ""
"approximately this::"
msgstr ""
"Sous le capot, une instruction d'affectation incrémentale fait à peu près "
"ceci :"
"ceci ::"
#: ../Doc/faq/programming.rst:1306
msgid ""
@ -2043,7 +2046,7 @@ msgstr ""
#: ../Doc/faq/programming.rst:1309
msgid "When you write something like::"
msgstr "Quand vous écrivez un code du style :"
msgstr "Quand vous écrivez un code du style ::"
#: ../Doc/faq/programming.rst:1317
msgid ""
@ -2051,7 +2054,7 @@ msgid ""
"that even though there was an error, the append worked::"
msgstr ""
"L'exception est un peu plus surprenante et, chose encore plus étrange, "
"malgré l'erreur, l'ajout a fonctionné ::"
"malgré l'erreur, l'ajout a fonctionné ::"
#: ../Doc/faq/programming.rst:1323
msgid ""
@ -2068,7 +2071,7 @@ msgstr ""
"utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les "
"listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à "
"renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, "
"``+=`` est un \"raccourci\" pour ``list.extend``::"
"``+=`` est un \"raccourci\" pour ``list.extend`` ::"
#: ../Doc/faq/programming.rst:1335
msgid "This is equivalent to::"
@ -2090,7 +2093,7 @@ msgstr ""
msgid "Thus, in our tuple example what is happening is equivalent to::"
msgstr ""
"Donc, dans notre exemple avec un n-uplet, il se passe quelque chose "
"équivalent à ::"
"équivalent à ::"
#: ../Doc/faq/programming.rst:1353
msgid ""
@ -2109,7 +2112,7 @@ msgid ""
"Python?"
msgstr ""
"Je souhaite faire un classement compliqué : peut on faire une transformation "
"de Schwartz en Python ?"
"de Schwartz en Python ?"
#: ../Doc/faq/programming.rst:1361
msgid ""
@ -2121,7 +2124,7 @@ msgstr ""
"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne "
"les éléments d'une liste à l'aide une transformation qui fait correspondre "
"chaque élément à sa \"valeur de tri\". En Python, ceci est géré par "
"l'argument ``key`` de la méthode :meth:`list.sort` ::"
"l'argument ``key`` de la méthode :meth:`list.sort` ::"
#: ../Doc/faq/programming.rst:1370
msgid "How can I sort one list by values from another list?"
@ -2165,7 +2168,7 @@ msgstr "Objets"
#: ../Doc/faq/programming.rst:1404
msgid "What is a class?"
msgstr "Qu'est-ce qu'une classe?"
msgstr "Qu'est-ce qu'une classe ?"
#: ../Doc/faq/programming.rst:1406
msgid ""
@ -2277,7 +2280,7 @@ msgid ""
"just call it::"
msgstr ""
"Une meilleure approche est de définir une méthode ``search()`` dans toutes "
"les classes et qu'il suffit d'appeler de la manière suivante ::"
"les classes et qu'il suffit d'appeler de la manière suivante ::"
#: ../Doc/faq/programming.rst:1479
msgid "What is delegation?"
@ -2344,7 +2347,7 @@ msgid ""
"store local state for self without causing an infinite recursion."
msgstr ""
"La plupart des implémentations de :meth:`__setattr__` doivent modifier "
"``self.__dict__`` pour stocker l'état locale de self sans provoquer une "
"``self.__dict__`` pour stocker l'état local de self sans provoquer une "
"récursion infinie."
#: ../Doc/faq/programming.rst:1525
@ -2478,7 +2481,7 @@ msgstr ""
#: ../Doc/faq/programming.rst:1610
msgid "In C++ you'd write"
msgstr "In C++, on écrirait"
msgstr "En C++, on écrirait"
#: ../Doc/faq/programming.rst:1619
msgid ""
@ -2498,7 +2501,7 @@ msgstr ""
msgid "You could also try a variable-length argument list, e.g. ::"
msgstr ""
"Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par "
"exemple ::"
"exemple ::"
#: ../Doc/faq/programming.rst:1636
msgid "The same approach works for all method definitions."
@ -2598,7 +2601,7 @@ msgstr ""
"quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors "
"supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne "
"pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:"
"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir "
"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir "
"être appelée plusieurs fois sur le même objet."
#: ../Doc/faq/programming.rst:1681
@ -2757,7 +2760,7 @@ msgid ""
msgstr ""
"Le module :mod:`py_compile` peut compiler n'importe quel module "
"manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de "
"manière interactive :"
"manière interactive ::"
#: ../Doc/faq/programming.rst:1773
msgid ""
@ -2779,7 +2782,7 @@ msgstr ""
"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés "
"avec le module :mod:`compileall`. C'est possible depuis l'invite de commande "
"en exécutant ``compileall.py`` avec le chemin du dossier contenant les "
"fichiers Python à compiler ::"
"fichiers Python à compiler ::"
#: ../Doc/faq/programming.rst:1786
msgid "How do I find the current module name?"
@ -2798,7 +2801,7 @@ msgstr ""
"programme est exécuté comme un script. Beaucoup de modules qui doivent "
"normalement être importés pour pouvoir être utilisés fournissent aussi une "
"interface en ligne de commande ou un test automatique. Ils n'exécutent cette "
"portion du code qu'après avoir vérifié la valeur de ``__name__``::"
"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::"
#: ../Doc/faq/programming.rst:1803
msgid "How can I have modules that mutually import each other?"
@ -2810,11 +2813,11 @@ msgstr "Considérons les modules suivants :"
#: ../Doc/faq/programming.rst:1807
msgid "foo.py::"
msgstr "*foo.py* ::"
msgstr "*foo.py* ::"
#: ../Doc/faq/programming.rst:1812
msgid "bar.py::"
msgstr "*bar.py* ::"
msgstr "*bar.py* ::"
#: ../Doc/faq/programming.rst:1817
msgid "The problem is that the interpreter will perform the following steps:"
@ -2937,7 +2940,8 @@ msgstr "Ces solutions peuvent être combinées."
#: ../Doc/faq/programming.rst:1858
msgid "__import__('x.y.z') returns <module 'x'>; how do I get z?"
msgstr "__import__('x.y.z') renvoie <module 'x'> ; comment accéder à z ?"
msgstr ""
"``__import__('x.y.z')`` renvoie ``<module 'x'>`` ; comment accéder à ``z`` ?"
#: ../Doc/faq/programming.rst:1860
msgid ""
@ -2945,7 +2949,7 @@ msgid ""
"from :mod:`importlib` instead::"
msgstr ""
"Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:"
"`importlib` ::"
"`importlib` ::"
#: ../Doc/faq/programming.rst:1867
msgid ""
@ -2968,7 +2972,7 @@ msgstr ""
"le cas, dans un programme composé d'un très grand nombre de modules qui "
"importent tous le même module de base, ce module de base serait analysé et "
"ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un "
"module, il faut faire ::"
"module, il faut faire ::"
#: ../Doc/faq/programming.rst:1879
msgid ""
@ -2986,9 +2990,9 @@ msgid ""
"paradoxical behaviour::"
msgstr ""
"continuent de fonctionner avec l'ancienne version des objets importés. Si le "
"module contient une définition de classe, le instances déjà existantes de "
"module contient une définition de classe, les instances déjà existantes de "
"celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la "
"classe. Ceci peut conduire au comportement paradoxal suivant :"
"classe. Ceci peut conduire au comportement paradoxal suivant ::"
#: ../Doc/faq/programming.rst:1897
msgid ""

View File

@ -302,7 +302,7 @@ msgid ""
"it is typically installed in ``C:\\Windows\\System``. *NN* is the Python "
"version, a number such as \"33\" for Python 3.3."
msgstr ""
"Ne compilez _pas_ Python directement dans votre fichier *.exe*. Sous "
"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous "
"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont "
"eux-mêmes des DLL (ceci constitue une information de première importance non "
"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui "
@ -363,8 +363,8 @@ msgstr ""
"Python qui rendra les données et les méthodes de l'application disponibles "
"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le "
"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous "
"n'avez _pas_ besoin de créer un fichier DLL, et cela simplifie également la "
"liaison."
"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également "
"la liaison."
#: ../Doc/faq/windows.rst:203
msgid ""

View File

@ -69,7 +69,7 @@ msgid ""
"reference`."
msgstr ""
"*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:"
"`lib2to3`; un point dentrée indépendant est fourni via :file:`Tools/"
"`lib2to3` ; un point dentrée indépendant est fourni via :file:`Tools/"
"scripts/2to3`. Cf. :ref:`2to3-reference`."
#: ../Doc/glossary.rst:29
@ -113,7 +113,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
@ -146,7 +146,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 ""
@ -155,7 +155,7 @@ 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 ::"
@ -167,7 +167,7 @@ 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 ::"
@ -191,9 +191,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"
@ -275,7 +275,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
@ -335,9 +335,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"
@ -348,7 +348,7 @@ msgid ""
"Benevolent Dictator For Life, a.k.a. `Guido van Rossum <https://gvanrossum."
"github.io/>`_, Python's creator."
msgstr ""
"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). "
"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). "
"Pseudonyme de `Guido van Rossum <https://gvanrossum.github.io/>`_, le "
"créateur de Python."
@ -410,7 +410,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`."
@ -492,11 +492,11 @@ msgstr ""
"opération dont les deux opérandes doivent être de même type. Par exemple "
"``int(3.15)`` convertit explicitement le nombre à virgule flottante en "
"nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes "
"sont d'un type différent (Un entier et un nombre à virgule flottante), alors "
"qu'elles doivent avoir le même type pour être additionnées (sinon une "
"exception :exc:`TypeError` serait levée). Sans coercition, toutes les "
"opérandes, même de types compatibles, devraient être converties (on parle "
"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) "
"sont d'un type différent (un entier et un nombre à virgule flottante), alors "
"qu'ils doivent avoir le même type pour être additionnés (sinon une "
"exception :exc:`TypeError` serait levée). Sans coercition, tous les "
"opérandes, même de types compatibles, devraient être convertis (on parle "
"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) "
"+ 4.5`` au lieu du simple ``3 + 4.5``."
#: ../Doc/glossary.rst:206
@ -520,7 +520,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 "
@ -646,7 +646,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:270
@ -686,12 +686,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."
@ -747,8 +747,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."
@ -868,9 +868,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:365
msgid ""
@ -880,7 +880,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`. "
@ -913,9 +913,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:382
@ -986,7 +986,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:412
@ -1275,7 +1275,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."
@ -1361,9 +1361,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:573
msgid ""
@ -1406,14 +1407,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:594
msgid "iterator"
@ -1443,7 +1444,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 "
@ -1500,7 +1501,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."
@ -1525,7 +1526,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:641
@ -1590,8 +1591,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:666
msgid "loader"
@ -1681,16 +1682,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:705
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:706
msgid "method"
@ -1941,7 +1942,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:802
msgid ""
@ -1950,7 +1951,7 @@ 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 ::"
@ -1974,7 +1975,7 @@ 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 "
@ -1988,7 +1989,7 @@ 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 ::"
@ -2000,7 +2001,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."
@ -2182,7 +2183,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 "
@ -2194,9 +2195,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:915
@ -2280,7 +2281,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:968
msgid "reference count"
@ -2354,7 +2355,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é "
@ -2548,7 +2549,7 @@ msgstr ""
#: ../Doc/glossary.rst:1080
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:1089 ../Doc/glossary.rst:1103
msgid "See :mod:`typing` and :pep:`484`, which describe this functionality."
@ -2572,8 +2573,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."
@ -2599,7 +2600,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."
@ -2617,7 +2618,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:1120
msgid ""
@ -2626,7 +2627,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:1126
msgid "Variable annotation syntax is explained in section :ref:`annassign`."
@ -2639,7 +2640,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:1130

View File

@ -230,7 +230,7 @@ msgstr "Et on obtient :"
#: ../Doc/howto/argparse.rst:178
msgid "Now, how about doing something even more useful::"
msgstr ""
"À présent, que diriez-vous de faire 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 ""
@ -368,7 +368,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 croître en complexité : ::"
msgstr "Notre programme continue de croître en complexité ::"
#: ../Doc/howto/argparse.rst:360
msgid "And now the output:"
@ -605,7 +605,7 @@ msgid ""
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 le "
"sauraient pas : ::"
"sauraient pas ::"
#: ../Doc/howto/argparse.rst:738
msgid ""

View File

@ -17,7 +17,7 @@ msgstr ""
#: ../Doc/howto/clinic.rst:5
msgid "Argument Clinic How-To"
msgstr ""
msgstr "Guide Argument Clinic"
#: ../Doc/howto/clinic.rst:0
msgid "author"
@ -25,7 +25,7 @@ msgstr "auteur"
#: ../Doc/howto/clinic.rst:7
msgid "Larry Hastings"
msgstr ""
msgstr "Larry Hastings"
#: ../Doc/howto/clinic.rst:None
msgid "Abstract"
@ -896,7 +896,7 @@ msgstr ""
#: ../Doc/howto/clinic.rst:578
msgid "Renaming the C functions and variables generated by Argument Clinic"
msgstr ""
msgstr "Renommer les fonctions et variables C générées par Argument Clinic"
#: ../Doc/howto/clinic.rst:580
msgid ""
@ -909,6 +909,14 @@ msgid ""
"function, then add ``\"_impl\"`` to the end and use that for the name of the "
"impl function."
msgstr ""
"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, "
"cela peut poser des problèmes, si le nom généré entre en collision avec le "
"nom d'une fonction C existante. Il y a une solution simple : surcharger les "
"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` "
"sur la ligne de la déclaration de la fonction, suivi par le nom de la "
"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de "
"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` "
"à la fin et utilisera ce nom pour la fonction ``impl``."
#: ../Doc/howto/clinic.rst:588
msgid ""
@ -916,7 +924,7 @@ msgid ""
"``pickle.Pickler.dump``, it'd look like this::"
msgstr ""
"Par exemple, si nous voulons renommer les noms de fonction C générés pour "
"``pickle.Pickler.dump``, ça ressemblerait à ça :"
"``pickle.Pickler.dump``, ça ressemblerait à ça ::"
#: ../Doc/howto/clinic.rst:596
msgid ""
@ -936,13 +944,15 @@ msgstr ""
"De même, vous pouvez avoir un problème quand vous souhaiterez donner à un "
"paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. "
"Argument Clinic vous permet de donner à un paramètre des noms différents en "
"Python et en C."
"Python et en C ::"
#: ../Doc/howto/clinic.rst:614
msgid ""
"Here, the name used in Python (in the signature and the ``keywords`` array) "
"would be ``file``, but the C variable would be named ``file_obj``."
msgstr ""
"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des "
"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``."
#: ../Doc/howto/clinic.rst:617
msgid "You can use this to rename the ``self`` parameter too!"
@ -960,6 +970,12 @@ msgid ""
"appropriate. All arguments should be marked positional-only (add a ``/`` on "
"a line by itself after the last argument)."
msgstr ""
"Afin de convertir une fonction analysant ses arguments via :c:func:"
"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les "
"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` "
"d'argument afin de le forcer au type approprié. Tous les arguments devraient "
"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la "
"ligne après le dernier argument)."
#: ../Doc/howto/clinic.rst:629
msgid ""
@ -983,6 +999,14 @@ msgid ""
"optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was "
"created."
msgstr ""
"Certaines fonctions de base ont une approche particulière pour analyser "
"leurs arguments : elles comptent le nombre d'arguments positionnels, puis "
"elles utilisent une condition ``switch`` basée sur le nombre d'arguments "
"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles "
"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant "
"qu'arguments nommés). Cette approche était utilisée pour simuler des "
"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit "
"créée."
#: ../Doc/howto/clinic.rst:642
msgid ""
@ -997,6 +1021,17 @@ msgid ""
"the function passing in ``x``, you must also pass in ``y``—and if you don't "
"pass in ``x`` you may not pass in ``y`` either.)"
msgstr ""
"Alors que les fonctions utilisant cette approche peuvent normalement être "
"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des "
"arguments optionnels et des valeurs par défaut, ce n'est pas toujours "
"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:"
"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la "
"fonction native ``range()``, qui possède un argument optionnel à *gauche* de "
"ses arguments requis ! Un autre exemple est la fonction ``curses.window."
"addch()``, qui possède un groupe de deux arguments qui doivent toujours être "
"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous "
"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne "
"passez pas ``x``, vous ne devez pas passer ``y`` non plus)."
#: ../Doc/howto/clinic.rst:654
msgid ""
@ -1007,6 +1042,14 @@ msgid ""
"all be passed in together. They can be to the left or the right of the "
"required arguments. They can *only* be used with positional-only parameters."
msgstr ""
"Dans tous les cas, le but d'Argument Clinic est de prendre en charge "
"l'analyse des arguments pour toutes les fonctions natives de CPython sans "
"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette "
"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes "
"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent "
"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche "
"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant "
"que paramètres positionnels."
#: ../Doc/howto/clinic.rst:662
msgid ""
@ -1018,6 +1061,14 @@ msgid ""
"doesn't understand the concept. Please avoid using optional groups wherever "
"possible."
msgstr ""
"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions "
"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions "
"qui utilisent *au moins une* des autres approches ne doivent *presque "
"jamais* être converties à Argument Clinic en utilisant les groupes "
"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de "
"signature précise en Python, parce que celui-ci ne peut simplement pas "
"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes "
"optionnels si possible."
#: ../Doc/howto/clinic.rst:671
msgid ""
@ -1027,6 +1078,11 @@ msgid ""
"optional groups to make the first two parameters and the last parameter "
"optional::"
msgstr ""
"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne "
"avant les paramètres que vous souhaitez inclure dans le groupe, puis un "
"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment "
"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel "
"les deux premiers paramètres ainsi que le dernier :"
#: ../Doc/howto/clinic.rst:700
msgid "Notes:"
@ -1044,6 +1100,16 @@ msgid ""
"was unused, and set to non-zero if this group was used. (By used or unused, "
"I mean whether or not the parameters received arguments in this invocation.)"
msgstr ""
"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la "
"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé "
"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` "
"ou ``left`` suivant que le groupe est situé avant ou après les paramètres "
"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant "
"la distance entre le groupe et les paramètres requis. Quand la fonction "
"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a "
"pas été utilisé, et positionné à un nombre entier positif sinon (par "
"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet "
"appel)."
#: ../Doc/howto/clinic.rst:713
msgid ""
@ -1058,10 +1124,13 @@ msgid ""
"In the case of ambiguity, the argument parsing code favors parameters on the "
"left (before the required parameters)."
msgstr ""
"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à "
"gauche (avant les paramètres obligatoires)."
#: ../Doc/howto/clinic.rst:719
msgid "Optional groups can only contain positional-only parameters."
msgstr ""
"Les groupes optionnels ne peuvent contenir que des arguments positionnels."
#: ../Doc/howto/clinic.rst:721
msgid ""
@ -1074,6 +1143,8 @@ msgstr ""
#: ../Doc/howto/clinic.rst:726
msgid "Using real Argument Clinic converters, instead of \"legacy converters\""
msgstr ""
"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des "
 adaptateurs de base »"
#: ../Doc/howto/clinic.rst:728
msgid ""
@ -1083,17 +1154,25 @@ msgid ""
"explicitly to make porting existing code to Argument Clinic easier. And to "
"be clear, their use is acceptable when porting code for Python 3.4."
msgstr ""
"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour "
"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les "
 adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter "
"facilement du code existant sous Argument Clinic. Et pour être clair, leur "
"utilisation est tout à fait acceptable pour porter du code Python 3.4."
#: ../Doc/howto/clinic.rst:735
msgid ""
"However, in the long term we probably want all our blocks to use Argument "
"Clinic's real syntax for converters. Why? A couple reasons:"
msgstr ""
"Cependant, sur le long terme, il est certainement préférable que tous vos "
"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. "
"Pourquoi ? Voici quelques raisons :"
#: ../Doc/howto/clinic.rst:739
msgid ""
"The proper converters are far easier to read and clearer in their intent."
msgstr ""
msgstr "Les adaptateurs sont plus simples et plus clairs."
#: ../Doc/howto/clinic.rst:740
msgid ""
@ -1101,6 +1180,9 @@ msgid ""
"because they require arguments, and the legacy converter syntax doesn't "
"support specifying arguments."
msgstr ""
"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », "
"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne "
"supporte pas cela."
#: ../Doc/howto/clinic.rst:743
msgid ""
@ -1108,12 +1190,18 @@ msgid ""
"restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility "
"won't be available to parameters using legacy converters."
msgstr ""
"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des "
"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` "
"accepte ; cette flexibilité ne serait pas accessible aux paramètres "
"utilisant des adaptateurs de base."
#: ../Doc/howto/clinic.rst:747
msgid ""
"Therefore, if you don't mind a little extra effort, please use the normal "
"converters instead of legacy converters."
msgstr ""
"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous "
"devriez utiliser les adaptateurs normaux plutôt que ceux de base."
#: ../Doc/howto/clinic.rst:750
msgid ""
@ -1122,16 +1210,22 @@ msgid ""
"the function (all functions take their default values), you may omit the "
"parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters."
msgstr ""
"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel "
"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction "
"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les "
"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur."
#: ../Doc/howto/clinic.rst:756
msgid ""
"All arguments to Argument Clinic converters are keyword-only. All Argument "
"Clinic converters accept the following arguments:"
msgstr ""
"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. "
"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :"
#: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1246
msgid "``c_default``"
msgstr ""
msgstr "``c_default``"
#: ../Doc/howto/clinic.rst:760
msgid ""
@ -1140,10 +1234,15 @@ msgid ""
"\". See :ref:`the section on default values <default_values>` for how to "
"use this. Specified as a string."
msgstr ""
"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, "
"il servira à initialiser la variable déclarée dans la « fonction "
"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut "
"<default_values>` pour apprendre à l'utiliser. Spécifié en tant que chaîne "
"de caractères."
#: ../Doc/howto/clinic.rst:769
msgid "``annotation``"
msgstr ""
msgstr "``annotation``"
#: ../Doc/howto/clinic.rst:767
msgid ""
@ -1156,10 +1255,12 @@ msgid ""
"In addition, some converters accept additional arguments. Here is a list of "
"these arguments, along with their meanings:"
msgstr ""
"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la "
"liste de ces arguments, avec leur explication :"
#: ../Doc/howto/clinic.rst:780
msgid "``accept``"
msgstr ""
msgstr "``accept``"
#: ../Doc/howto/clinic.rst:775
msgid ""
@ -1168,14 +1269,18 @@ msgid ""
"purpose facility; as a rule it only supports specific lists of types as "
"shown in the legacy converter table.)"
msgstr ""
"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela "
"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas "
"destiné à une utilisation généralisée ; en fait, il gère seulement les types "
"listés dans la table des adaptateurs de base)."
#: ../Doc/howto/clinic.rst:780
msgid "To accept ``None``, add ``NoneType`` to this set."
msgstr ""
msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble."
#: ../Doc/howto/clinic.rst:785
msgid "``bitwise``"
msgstr ""
msgstr "``bitwise``"
#: ../Doc/howto/clinic.rst:783
msgid ""
@ -1183,10 +1288,13 @@ msgid ""
"Python argument will be written to the parameter without any range checking, "
"even for negative values."
msgstr ""
"Autorisé seulement pour les entiers non signés. La valeur native de cet "
"argument Python sera transcrite dans le paramètre sans aucune vérification "
"de plage, même pour des valeurs négatives."
#: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1260
msgid "``converter``"
msgstr ""
msgstr "``converter``"
#: ../Doc/howto/clinic.rst:788
msgid ""
@ -1194,6 +1302,9 @@ msgid ""
"\"converter function\" <o_ampersand>` to use to convert this object to a "
"native type."
msgstr ""
"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:"
"`« fonction de conversion » depuis C <o_ampersand>` à utiliser pour "
"convertir cet objet en type natif."
#: ../Doc/howto/clinic.rst:795
msgid "``encoding``"
@ -1204,16 +1315,21 @@ msgid ""
"Only supported for strings. Specifies the encoding to use when converting "
"this string from a Python str (Unicode) value into a C ``char *`` value."
msgstr ""
"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à "
"utiliser lors de la conversion de cette chaîne depuis une valeur de type "
"Python ``str`` (Unicode) en valeur C ``char *``."
#: ../Doc/howto/clinic.rst:799
msgid "``subclass_of``"
msgstr ""
msgstr "``subclass_of``"
#: ../Doc/howto/clinic.rst:798
msgid ""
"Only supported for the ``object`` converter. Requires that the Python value "
"be a subclass of a Python type, as expressed in C."
msgstr ""
"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur "
"Python soit une sous-classe d'un type Python, telle qu'exprimée en C."
#: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1232
msgid "``type``"
@ -1225,10 +1341,13 @@ msgid ""
"type that will be used to declare the variable. Default value is ``"
"\"PyObject *\"``."
msgstr ""
"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le "
"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est "
"``\"PyObject *\"``."
#: ../Doc/howto/clinic.rst:810
msgid "``zeroes``"
msgstr ""
msgstr "``zeroes``"
#: ../Doc/howto/clinic.rst:807
msgid ""
@ -1237,6 +1356,10 @@ msgid ""
"the impl function, just after the string parameter, as a parameter named "
"``<parameter_name>_length``."
msgstr ""
"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL "
"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera "
"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que "
"paramètre nommé ``<parameter_name>_length``."
#: ../Doc/howto/clinic.rst:812
msgid ""
@ -1248,6 +1371,14 @@ msgid ""
"any existing format unit. So Argument Clinic doesn't support it. (Or, at "
"least, not yet.)"
msgstr ""
"Attention de bien noter que toutes les combinaisons d'arguments ne "
"fonctionnent pas. Normalement, ces arguments sont mis en place via des "
"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à "
"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans "
"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement "
"raisonnable de penser que ça puisse fonctionner, cette écriture ne "
"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, "
"pas pour le moment)."
#: ../Doc/howto/clinic.rst:820
msgid ""
@ -1255,6 +1386,9 @@ msgid ""
"Clinic converters. On the left is the legacy converter, on the right is the "
"text you'd replace it with."
msgstr ""
"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre "
"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les "
"adaptateurs de base et, à droite, le texte qui les remplace."
#: ../Doc/howto/clinic.rst:825
msgid "``'B'``"
@ -1262,7 +1396,7 @@ msgstr "``'B'``"
#: ../Doc/howto/clinic.rst:825
msgid "``unsigned_char(bitwise=True)``"
msgstr ""
msgstr "``unsigned_char(bitwise=True)``"
#: ../Doc/howto/clinic.rst:826
msgid "``'b'``"
@ -1270,7 +1404,7 @@ msgstr "``'b'``"
#: ../Doc/howto/clinic.rst:826
msgid "``unsigned_char``"
msgstr ""
msgstr "``unsigned_char``"
#: ../Doc/howto/clinic.rst:827
msgid "``'c'``"
@ -1278,15 +1412,15 @@ msgstr "``'c'``"
#: ../Doc/howto/clinic.rst:827
msgid "``char``"
msgstr ""
msgstr "``char``"
#: ../Doc/howto/clinic.rst:828
msgid "``'C'``"
msgstr ""
msgstr "``'C'``"
#: ../Doc/howto/clinic.rst:828
msgid "``int(accept={str})``"
msgstr ""
msgstr "``int(accept={str})``"
#: ../Doc/howto/clinic.rst:829
msgid "``'d'``"
@ -1294,7 +1428,7 @@ msgstr "``'d'``"
#: ../Doc/howto/clinic.rst:829
msgid "``double``"
msgstr ""
msgstr "``double``"
#: ../Doc/howto/clinic.rst:830
msgid "``'D'``"
@ -1302,41 +1436,43 @@ msgstr "``'D'``"
#: ../Doc/howto/clinic.rst:830
msgid "``Py_complex``"
msgstr ""
msgstr "``Py_complex``"
#: ../Doc/howto/clinic.rst:831
msgid "``'es'``"
msgstr ""
msgstr "``'es'``"
#: ../Doc/howto/clinic.rst:831
msgid "``str(encoding='name_of_encoding')``"
msgstr ""
msgstr "``str(encoding='name_of_encoding')``"
#: ../Doc/howto/clinic.rst:832
msgid "``'es#'``"
msgstr ""
msgstr "``'es#'``"
#: ../Doc/howto/clinic.rst:832
msgid "``str(encoding='name_of_encoding', zeroes=True)``"
msgstr ""
msgstr "``str(encoding='name_of_encoding', zeroes=True)``"
#: ../Doc/howto/clinic.rst:833
msgid "``'et'``"
msgstr ""
msgstr "``'et'``"
#: ../Doc/howto/clinic.rst:833
msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``"
msgstr ""
msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``"
#: ../Doc/howto/clinic.rst:834
msgid "``'et#'``"
msgstr ""
msgstr "``'et#'``"
#: ../Doc/howto/clinic.rst:834
msgid ""
"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, "
"zeroes=True)``"
msgstr ""
"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, "
"zeroes=True)``"
#: ../Doc/howto/clinic.rst:835
msgid "``'f'``"
@ -1344,7 +1480,7 @@ msgstr "``'f'``"
#: ../Doc/howto/clinic.rst:835
msgid "``float``"
msgstr ""
msgstr "``float``"
#: ../Doc/howto/clinic.rst:836
msgid "``'h'``"
@ -1352,7 +1488,7 @@ msgstr "``'h'``"
#: ../Doc/howto/clinic.rst:836
msgid "``short``"
msgstr ""
msgstr "``short``"
#: ../Doc/howto/clinic.rst:837
msgid "``'H'``"
@ -1360,7 +1496,7 @@ msgstr "``'H'``"
#: ../Doc/howto/clinic.rst:837
msgid "``unsigned_short(bitwise=True)``"
msgstr ""
msgstr "``unsigned_short(bitwise=True)``"
#: ../Doc/howto/clinic.rst:838
msgid "``'i'``"
@ -1376,23 +1512,23 @@ msgstr "``'I'``"
#: ../Doc/howto/clinic.rst:839
msgid "``unsigned_int(bitwise=True)``"
msgstr ""
msgstr "``unsigned_int(bitwise=True)``"
#: ../Doc/howto/clinic.rst:840
msgid "``'k'``"
msgstr ""
msgstr "``'k'``"
#: ../Doc/howto/clinic.rst:840
msgid "``unsigned_long(bitwise=True)``"
msgstr ""
msgstr "``unsigned_long(bitwise=True)``"
#: ../Doc/howto/clinic.rst:841
msgid "``'K'``"
msgstr ""
msgstr "``'K'``"
#: ../Doc/howto/clinic.rst:841
msgid "``unsigned_long_long(bitwise=True)``"
msgstr ""
msgstr "``unsigned_long_long(bitwise=True)``"
#: ../Doc/howto/clinic.rst:842
msgid "``'l'``"
@ -1408,7 +1544,7 @@ msgstr "``'L'``"
#: ../Doc/howto/clinic.rst:843
msgid "``long long``"
msgstr ""
msgstr "``long long``"
#: ../Doc/howto/clinic.rst:844
msgid "``'n'``"
@ -1416,39 +1552,39 @@ msgstr "``'n'``"
#: ../Doc/howto/clinic.rst:844
msgid "``Py_ssize_t``"
msgstr ""
msgstr "``Py_ssize_t``"
#: ../Doc/howto/clinic.rst:845
msgid "``'O'``"
msgstr ""
msgstr "``'O'``"
#: ../Doc/howto/clinic.rst:845
msgid "``object``"
msgstr ""
msgstr "``object``"
#: ../Doc/howto/clinic.rst:846
msgid "``'O!'``"
msgstr ""
msgstr "``'O!'``"
#: ../Doc/howto/clinic.rst:846
msgid "``object(subclass_of='&PySomething_Type')``"
msgstr ""
msgstr "``object(subclass_of='&PySomething_Type')``"
#: ../Doc/howto/clinic.rst:847
msgid "``'O&'``"
msgstr ""
msgstr "``'O&'``"
#: ../Doc/howto/clinic.rst:847
msgid "``object(converter='name_of_c_function')``"
msgstr ""
msgstr "``object(converter='name_of_c_function')``"
#: ../Doc/howto/clinic.rst:848
msgid "``'p'``"
msgstr ""
msgstr "``'p'``"
#: ../Doc/howto/clinic.rst:848
msgid "``bool``"
msgstr ""
msgstr "``bool``"
#: ../Doc/howto/clinic.rst:849
msgid "``'S'``"
@ -1456,7 +1592,7 @@ msgstr "``'S'``"
#: ../Doc/howto/clinic.rst:849
msgid "``PyBytesObject``"
msgstr ""
msgstr "``PyBytesObject``"
#: ../Doc/howto/clinic.rst:850
msgid "``'s'``"
@ -1464,23 +1600,23 @@ msgstr "``'s'``"
#: ../Doc/howto/clinic.rst:850
msgid "``str``"
msgstr ""
msgstr "``str``"
#: ../Doc/howto/clinic.rst:851
msgid "``'s#'``"
msgstr ""
msgstr "``'s#'``"
#: ../Doc/howto/clinic.rst:851
msgid "``str(zeroes=True)``"
msgstr ""
msgstr "``str(zeroes=True)``"
#: ../Doc/howto/clinic.rst:852
msgid "``'s*'``"
msgstr ""
msgstr "``'s*'``"
#: ../Doc/howto/clinic.rst:852
msgid "``Py_buffer(accept={buffer, str})``"
msgstr ""
msgstr "``Py_buffer(accept={buffer, str})``"
#: ../Doc/howto/clinic.rst:853
msgid "``'U'``"
@ -1488,7 +1624,7 @@ msgstr "``'U'``"
#: ../Doc/howto/clinic.rst:853
msgid "``unicode``"
msgstr ""
msgstr "``unicode``"
#: ../Doc/howto/clinic.rst:854
msgid "``'u'``"
@ -1496,101 +1632,103 @@ msgstr "``'u'``"
#: ../Doc/howto/clinic.rst:854
msgid "``Py_UNICODE``"
msgstr ""
msgstr "``Py_UNICODE``"
#: ../Doc/howto/clinic.rst:855
msgid "``'u#'``"
msgstr ""
msgstr "``'u#'``"
#: ../Doc/howto/clinic.rst:855
msgid "``Py_UNICODE(zeroes=True)``"
msgstr ""
msgstr "``Py_UNICODE(zeroes=True)``"
#: ../Doc/howto/clinic.rst:856
msgid "``'w*'``"
msgstr ""
msgstr "``'w*'``"
#: ../Doc/howto/clinic.rst:856
msgid "``Py_buffer(accept={rwbuffer})``"
msgstr ""
msgstr "``Py_buffer(accept={rwbuffer})``"
#: ../Doc/howto/clinic.rst:857
msgid "``'Y'``"
msgstr ""
msgstr "``'Y'``"
#: ../Doc/howto/clinic.rst:857
msgid "``PyByteArrayObject``"
msgstr ""
msgstr "``PyByteArrayObject``"
#: ../Doc/howto/clinic.rst:858
msgid "``'y'``"
msgstr ""
msgstr "``'y'``"
#: ../Doc/howto/clinic.rst:858
msgid "``str(accept={bytes})``"
msgstr ""
msgstr "``str(accept={bytes})``"
#: ../Doc/howto/clinic.rst:859
msgid "``'y#'``"
msgstr ""
msgstr "``'y#'``"
#: ../Doc/howto/clinic.rst:859
msgid "``str(accept={robuffer}, zeroes=True)``"
msgstr ""
msgstr "``str(accept={robuffer}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:860
msgid "``'y*'``"
msgstr ""
msgstr "``'y*'``"
#: ../Doc/howto/clinic.rst:860
msgid "``Py_buffer``"
msgstr ""
msgstr "``Py_buffer``"
#: ../Doc/howto/clinic.rst:861
msgid "``'Z'``"
msgstr ""
msgstr "``'Z'``"
#: ../Doc/howto/clinic.rst:861
msgid "``Py_UNICODE(accept={str, NoneType})``"
msgstr ""
msgstr "``Py_UNICODE(accept={str, NoneType})``"
#: ../Doc/howto/clinic.rst:862
msgid "``'Z#'``"
msgstr ""
msgstr "``'Z#'``"
#: ../Doc/howto/clinic.rst:862
msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``"
msgstr ""
msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:863
msgid "``'z'``"
msgstr ""
msgstr "``'z'``"
#: ../Doc/howto/clinic.rst:863
msgid "``str(accept={str, NoneType})``"
msgstr ""
msgstr "``str(accept={str, NoneType})``"
#: ../Doc/howto/clinic.rst:864
msgid "``'z#'``"
msgstr ""
msgstr "``'z#'``"
#: ../Doc/howto/clinic.rst:864
msgid "``str(accept={str, NoneType}, zeroes=True)``"
msgstr ""
msgstr "``str(accept={str, NoneType}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:865
msgid "``'z*'``"
msgstr ""
msgstr "``'z*'``"
#: ../Doc/howto/clinic.rst:865
msgid "``Py_buffer(accept={buffer, str, NoneType})``"
msgstr ""
msgstr "``Py_buffer(accept={buffer, str, NoneType})``"
#: ../Doc/howto/clinic.rst:868
msgid ""
"As an example, here's our sample ``pickle.Pickler.dump`` using the proper "
"converter::"
msgstr ""
"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur "
"approprié ::"
#: ../Doc/howto/clinic.rst:881
msgid ""
@ -1599,10 +1737,14 @@ msgid ""
"default value for each parameter. Just run ``Tools/clinic/clinic.py --"
"converters`` to see the full list."
msgstr ""
"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque "
"adaptateur, il vous liste également l'ensemble des paramètres qu'ils "
"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement "
"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste."
#: ../Doc/howto/clinic.rst:887
msgid "Py_buffer"
msgstr ""
msgstr "Py_buffer"
#: ../Doc/howto/clinic.rst:889
msgid ""
@ -1611,16 +1753,23 @@ msgid ""
"`PyBuffer_Release` on the provided buffer. Argument Clinic generates code "
"that does it for you (in the parsing function)."
msgstr ""
"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de "
"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* "
"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic "
"génère du code qui le fait pour vous (dans la fonction d'analyse)."
#: ../Doc/howto/clinic.rst:897
msgid "Advanced converters"
msgstr ""
msgstr "Adaptateurs avancés"
#: ../Doc/howto/clinic.rst:899
msgid ""
"Remember those format units you skipped for your first time because they "
"were advanced? Here's how to handle those too."
msgstr ""
"Vous vous souvenez de ces spécifications de format que vous avez laissées de "
"côté la première fois parce qu'il s'agissait de notions avancées ? Voici "
"comment les utiliser."
#: ../Doc/howto/clinic.rst:902
msgid ""
@ -1632,6 +1781,14 @@ msgid ""
"``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format "
"units that start with ``e``)."
msgstr ""
"L'astuce est que toutes ces spécifications de format acceptent des arguments "
"— aussi bien des fonctions de conversion que des types, ou des chaînes "
"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les "
"arguments. C'est pourquoi nous les avions laissés de côté pour votre "
"première fonction.) L'argument que vous aviez spécifié à la spécification de "
"format est désormais un argument du convertisseur ; cet argument est soit "
"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` "
"(pour toutes les spécifications de format qui commencent par ``e``)."
#: ../Doc/howto/clinic.rst:910
msgid ""
@ -1641,6 +1798,12 @@ msgid ""
"is a subclass of ``PyUnicode_Type``, you probably want to use the converter "
"``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``."
msgstr ""
"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir "
"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous "
"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous "
"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, "
"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject "
"*', subclass_of='&PyUnicode_Type')``."
#: ../Doc/howto/clinic.rst:916
msgid ""
@ -1654,30 +1817,46 @@ msgid ""
"unreasonable; CPython itself always passes in static hard-coded encoding "
"strings for parameters whose format units start with ``e``."
msgstr ""
"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire "
"la flexibilité des spécifications de format commençant par ``e``. Lorsque "
"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez "
"théoriquement décider quelle chaîne d'encodage passer à :c:func:"
"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au "
"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; "
"elle permet une gestion plus simple de cette spécification de format, et "
"peut permettre de futures optimisations. Cette restriction ne semble pas "
"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en "
"dur pour les paramètres dont les spécifications de format commencent par "
"``e``."
#: ../Doc/howto/clinic.rst:929
msgid "Parameter default values"
msgstr ""
msgstr "Valeurs par défaut des paramètres"
#: ../Doc/howto/clinic.rst:931
msgid ""
"Default values for parameters can be any of a number of values. At their "
"simplest, they can be string, int, or float literals:"
msgstr ""
"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. "
"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :"
#: ../Doc/howto/clinic.rst:940
msgid "They can also use any of Python's built-in constants:"
msgstr ""
"Vous pouvez également utiliser n'importe quelle constante native de Python :"
#: ../Doc/howto/clinic.rst:948
msgid ""
"There's also special support for a default value of ``NULL``, and for simple "
"expressions, documented in the following sections."
msgstr ""
"La valeur ``NULL`` est également acceptée, ainsi que des expressions "
"simples, comme expliqué dans les sections suivantes."
#: ../Doc/howto/clinic.rst:953
msgid "The ``NULL`` default value"
msgstr ""
msgstr "La valeur par défaut ``NULL``"
#: ../Doc/howto/clinic.rst:955
msgid ""
@ -1688,10 +1867,16 @@ msgid ""
"behaves like a default value of ``None``, but the C variable is initialized "
"with ``NULL``."
msgstr ""
"Pour les paramètres chaînes et objets, vous pouvez les positionner à "
"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, "
"cela signifie que la variable C sera initialisée à ``Py_None``. Par "
"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette "
"raison : du point de vue de Python, cette valeur se comporte comme la valeur "
"par défaut ``None``, mais la variable C est initialisée à ``NULL``."
#: ../Doc/howto/clinic.rst:963
msgid "Expressions specified as default values"
msgstr ""
msgstr "Expressions spécifiées comme valeurs par défaut"
#: ../Doc/howto/clinic.rst:965
msgid ""
@ -1700,10 +1885,14 @@ msgid ""
"on objects. However, this support isn't exactly simple, because of some non-"
"obvious semantics."
msgstr ""
"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur "
"littérale. Il peut s'agir d'une expression, utilisant des opérateurs "
"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est "
"pas aussi simple, notamment à cause de sémantiques peu évidentes."
#: ../Doc/howto/clinic.rst:970
msgid "Consider the following example:"
msgstr ""
msgstr "Examinons l'exemple suivant :"
#: ../Doc/howto/clinic.rst:976
msgid ""
@ -1754,11 +1943,11 @@ msgstr ""
#: ../Doc/howto/clinic.rst:1012
msgid "Function calls."
msgstr ""
msgstr "des appels de fonction."
#: ../Doc/howto/clinic.rst:1013
msgid "Inline if statements (``3 if foo else 5``)."
msgstr ""
msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;"
#: ../Doc/howto/clinic.rst:1014
msgid "Automatic sequence unpacking (``*[1, 2, 3]``)."

View File

@ -6,12 +6,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-10 11:27+0200\n"
"PO-Revision-Date: 2019-07-19 23:34+0200\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Andy Kwok <andy.kwok.work@gmail.com>\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/howto/cporting.rst:7

View File

@ -16,7 +16,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"
@ -24,7 +24,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"
@ -32,7 +32,7 @@ msgstr "Version"
#: ../Doc/howto/curses.rst:8
msgid "2.04"
msgstr ""
msgstr "2.04"
#: ../Doc/howto/curses.rst:None
msgid "Abstract"
@ -43,10 +43,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 ""
@ -58,6 +60,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 ""
@ -68,6 +78,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 ""
@ -81,6 +100,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 ""
@ -94,6 +123,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 ""
@ -104,10 +143,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 ""
@ -119,6 +164,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 ""
@ -127,10 +179,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 ""
@ -141,6 +198,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 ""
@ -148,6 +211,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 ""
@ -155,6 +222,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 ""
@ -165,12 +236,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 ""
@ -178,6 +258,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 ""
@ -187,12 +270,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 ""
@ -206,10 +298,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 ""
@ -217,6 +318,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 ""
@ -227,6 +332,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 ""
@ -237,6 +348,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 ""
@ -245,6 +363,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 ""
@ -252,6 +374,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 ""
@ -263,6 +388,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 ""
@ -273,6 +406,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 ""
@ -282,6 +423,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 ""
@ -291,6 +438,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 ""
@ -298,28 +450,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 ""
@ -331,6 +494,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 ""
@ -339,10 +510,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"
@ -350,39 +525,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 ""
@ -390,6 +571,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 ""
@ -399,12 +583,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 ""
@ -413,6 +606,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 ""
@ -424,6 +622,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 ""
@ -434,10 +640,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 ""
@ -446,6 +659,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 ""
@ -456,6 +674,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"
@ -463,57 +688,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 ""
@ -521,6 +748,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 ""
@ -533,6 +763,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 ""
@ -543,10 +781,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 ""
@ -555,6 +802,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 ""
@ -564,12 +816,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 ""
@ -577,6 +837,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 ""
@ -589,10 +852,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 ""
@ -601,10 +873,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 ""
@ -613,6 +889,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 ""
@ -621,6 +901,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 ""
@ -633,6 +918,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 ""
@ -643,6 +937,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 ""
@ -653,6 +954,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 ""
@ -662,6 +970,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 ""
@ -670,15 +983,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 ""
@ -687,6 +1007,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 ""
@ -696,6 +1021,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 ""
@ -706,21 +1037,34 @@ 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 <https://linux.die.net/man/3/ncurses>`_"
msgstr ""
msgstr "`La page de manuel ncurses <https://linux.die.net/man/3/ncurses>`_"
#: ../Doc/howto/curses.rst:547
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 ""
@ -728,6 +1072,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 ""
@ -735,3 +1082,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*."

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,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"
@ -24,11 +24,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 ""
@ -36,18 +36,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 ""
@ -55,6 +59,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 ""
@ -63,10 +70,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 ""
@ -74,10 +86,13 @@ 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::"
@ -85,7 +100,7 @@ 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 ""
@ -93,22 +108,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 ""
@ -116,10 +142,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 ""
@ -128,18 +158,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 ""
@ -147,33 +181,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 ""
@ -181,24 +221,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 ""
@ -206,22 +252,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 ""
@ -229,10 +282,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 ""
@ -240,38 +297,51 @@ 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 ""
"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` "
"is the module name."
msgstr ""
"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger "
"le module. ``arg0`` est le nom du module."
#: ../Doc/howto/instrumentation.rst:328
msgid ""
"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is "
"the module name, ``arg1`` indicates if module was successfully loaded."
msgstr ""
"Fonction appelée après que la fonction ``find_and_load`` du module :mod:"
"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si "
"le module a été chargé avec succès."
#: ../Doc/howto/instrumentation.rst:336
msgid "SystemTap Tapsets"
msgstr ""
msgstr "*Tapsets* de *SystemTap*"
#: ../Doc/howto/instrumentation.rst:338
msgid ""
@ -279,22 +349,32 @@ 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:342
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:365
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:371
msgid ""
"This probe point indicates that execution of a Python function has begun. It "
"is only triggered for pure-Python (bytecode) functions."
msgstr ""
"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle "
"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:376
msgid ""
@ -303,6 +383,10 @@ msgid ""
"``return``, or via an exception). It is only triggered for pure-Python "
"(bytecode) functions."
msgstr ""
"Cette sonde est l'inverse de :c:func:`python.function.return`, et indique "
"que l'exécution d'une fonction Python est terminée (soit via ``return``, "
"soit via une exception). Elle est uniquement déclenchée pour les fonctions "
"en Python pur (code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:383
msgid "Examples"
@ -314,6 +398,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:403
msgid ""
@ -321,3 +409,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 ::"

View File

@ -269,7 +269,7 @@ msgstr ""
#: ../Doc/howto/ipaddress.rst:163
msgid "Extracting the IP version::"
msgstr "Extraire la version du protocole IP"
msgstr "Extraire la version du protocole IP ::"
#: ../Doc/howto/ipaddress.rst:172
msgid "Obtaining the network from an interface::"

View File

@ -54,7 +54,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"

View File

@ -1837,7 +1837,7 @@ msgstr ""
"exceptions qui se produisent lors de la journalisation en production. Il "
"s'agit de sorte que les erreurs qui se produisent lors de la gestion des "
"événements de journalisation (telles qu'une mauvaise configuration de la "
"journalisation , une erreur réseau ou d'autres erreurs similaires) ne "
"journalisation, une erreur réseau ou d'autres erreurs similaires) ne "
"provoquent pas l'arrêt de l'application utilisant la journalisation."
#: ../Doc/howto/logging.rst:1008

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-10 11:27+0200\n"
"PO-Revision-Date: 2019-09-05 10:42+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/howto/pyporting.rst:5
@ -106,22 +106,21 @@ msgstr ""
"exemple ``pip install future``)"
#: ../Doc/howto/pyporting.rst:37
#, fuzzy
msgid ""
"Use Pylint_ to help make sure you don't regress on your Python 3 support "
"(``pip install pylint``)"
msgstr ""
"Utiliser Pylint_ pour faciliter la détection de régressions concernant la "
"compatibilité Python 3 (``pip install pylint``)"
"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``)"
"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 ""
@ -766,7 +765,7 @@ msgstr ""
"Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? "
"Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que "
"Python 3 et de supposer que les versions futures de Python 2 seront plus "
"compatibles avec Python 3 qu'avec Python 2 : ::"
"compatibles avec Python 3 qu'avec Python 2 ::"
#: ../Doc/howto/pyporting.rst:329
msgid ""
@ -777,12 +776,11 @@ msgstr ""
"Néanmoins la meilleure solution est de ne pas chercher à déterminer la "
"version de Python mais plutôt à détecter les fonctionnalités disponibles. "
"Cela évite les problèmes potentiels liés aux erreurs de détection de version "
"et facilite la compatibilité future : ::"
"et facilite la compatibilité future ::"
#: ../Doc/howto/pyporting.rst:340
#, fuzzy
msgid "Prevent compatibility regressions"
msgstr "Éviter les régressions de compatibilité"
msgstr "Prévenir les régressions de compatibilité"
#: ../Doc/howto/pyporting.rst:342
msgid ""
@ -803,7 +801,7 @@ msgid ""
msgstr ""
"Afin de vous aider à maintenir la compatibilité, nous préconisons que tous "
"les nouveaux modules que vous créez aient au moins le bloc de code suivant "
"en en-tête : ::"
"en en-tête ::"
#: ../Doc/howto/pyporting.rst:354
msgid ""
@ -850,7 +848,7 @@ msgid ""
msgstr ""
"**Après** avoir rendu votre code compatible avec Python 3, vous devez "
"commencer à vous intéresser au portage de vos dépendances. Le projet "
"caniusepython3_ a été créé afin de vous aider à déterminer quels projets "
"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets "
"sont bloquants dans votre support de Python 3, directement ou indirectement. "
"Il existe un outil en ligne de commande ainsi qu'une interface web : https://"
"caniusepython3.com."
@ -927,7 +925,7 @@ msgstr ""
"différents renvoient simplement ``False`` mais si vous avez fait une erreur "
"dans votre séparation de la gestion texte/données binaires ou votre indiçage "
"des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une "
"exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa "
"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son "
"identification et sa localisation."
#: ../Doc/howto/pyporting.rst:410

View File

@ -1397,7 +1397,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:660
msgid "Without the verbose setting, the RE would look like this::"
@ -2655,7 +2655,7 @@ msgstr ""
#: ../Doc/howto/regex.rst:1367
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:1373
msgid "Feedback"

View File

@ -15,7 +15,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"
@ -38,6 +38,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"
@ -76,6 +82,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"
@ -88,6 +102,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 ""
@ -96,6 +115,11 @@ msgid ""
"of sockets with INET makes talking to arbitrary machines around the world "
"unbelievably easy (at least compared to other schemes)."
msgstr ""
"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* "
"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et "
"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue "
"avec nimporte 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"
@ -106,6 +130,8 @@ msgid ""
"Roughly speaking, when you clicked on the link that brought you to this "
"page, your browser did something like the following::"
msgstr ""
"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette "
"page, votre navigateur a fait quelque chose comme ceci ::"
#: ../Doc/howto/sockets.rst:64
msgid ""
@ -114,12 +140,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 lappel à ``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 ""
@ -164,6 +197,8 @@ msgid ""
"Now that we have a \"server\" socket, listening on port 80, we can enter the "
"mainloop of the web server::"
msgstr ""
"Maintenant que nous avons un connecteur « serveur », en écoute sur le port "
"80, nous pouvons entrer dans la boucle principale du serveur web ::"
#: ../Doc/howto/sockets.rst:106
msgid ""
@ -180,6 +215,20 @@ msgid ""
"The two \"clients\" are free to chat it up - they are using some dynamically "
"allocated port which will be recycled when the conversation ends."
msgstr ""
"Il y a en fait trois façons générales de faire fonctionner cette boucle : "
"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un "
"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette "
"application pour utiliser des connecteurs non bloquants, et multiplexer "
"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif "
"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose "
"importante à comprendre maintenant est la suivante : c'est *tout* ce que "
"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit "
"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque "
"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui "
"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous "
"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres "
"connexions. Les deux « clients » sont libres de discuter — ils utilisent un "
"port alloué dynamiquement qui sera recyclé à la fin de la conversation."
#: ../Doc/howto/sockets.rst:121
msgid "IPC"
@ -205,10 +254,12 @@ msgid ""
"The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level "
"API."
msgstr ""
"Le :mod:`multiprocessing` intègre de lIPC 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 ""
@ -220,6 +271,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 ""
@ -232,6 +291,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 ""
@ -243,6 +312,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 ""
@ -251,6 +328,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. Jen parlerai plus tard."
#: ../Doc/howto/sockets.rst:165
msgid ""
@ -306,6 +387,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 ""
@ -317,6 +404,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 ""
@ -326,6 +422,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 ""
@ -338,6 +440,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 nutilisiez "
"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième "
"pour obtenir la partie « données » du message. Vilain. Cest aussi à ce "
"moment que vous découvrirez que « lenvoi » 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 ""
@ -345,6 +457,10 @@ msgid ""
"competitive position), these enhancements are left as an exercise for the "
"reader. Lets move on to cleaning up."
msgstr ""
"Pour garder une longueur raisonnable à cette page, pour forger votre "
"caractère (et afin de garder lavantage concurrentiel que jai 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"
@ -362,6 +478,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 denvoyer des données binaires sur un "
"connecteur. Le gros problème est que toutes les machines nutilisent 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 lordre doctets 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 lordre du "
"réseau est lordre de lhôte, ceux-ci ne font rien, mais lorsque la machine "
"utilise lordre doctets inverse, ceux-ci échangent les octets de manière "
"appropriée."
#: ../Doc/howto/sockets.rst:264
msgid ""
@ -371,6 +499,13 @@ msgid ""
"The string \"0\" would be two bytes, while binary is four. Of course, this "
"doesn't fit well with fixed-length messages. Decisions, decisions."
msgstr ""
"De nos jours, avec les machines 32 bits, la représentation *ASCII* des "
"données binaires est souvent plus compacte que la représentation binaire. "
"Cest parce quun 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"
@ -387,6 +522,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 larrêter avant de le fermer via ``close``. Le ``shutdown`` est un "
"avertissement au connecteur de lautre côté. Selon largument 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 dutiliser ce morceau détiquette que normalement "
"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la "
"plupart des situations, un ``shutdown`` explicite nest pas nécessaire."
#: ../Doc/howto/sockets.rst:282
msgid ""
@ -397,6 +541,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 dutiliser efficacement le ``shutdown`` est dutiliser 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 denvoyer, "
"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une "
"réception de 0 octet. Il peut supposer quil 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 ""
@ -407,10 +558,17 @@ msgid ""
"indefinitely, thinking you're just being slow. *Please* ``close`` your "
"sockets when you're done."
msgstr ""
"Python pousse larrêt automatique un peu plus loin, et dit que lorsquun "
"connecteur est collecté par le ramasse-miette, il effectue automatiquement "
"une fermeture via ``close`` si elle est nécessaire. Mais cest une très "
"mauvaise habitude de sappuyer sur ce système. Si votre connecteur disparaît "
"sans avoir fait un ``close``, le connecteur à lautre bout peut rester "
"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos "
"connecteurs quand vous avez terminé *sil vous plait*."
#: ../Doc/howto/sockets.rst:297
msgid "When Sockets Die"
msgstr ""
msgstr "Quand les connecteurs meurent"
#: ../Doc/howto/sockets.rst:299
msgid ""
@ -426,10 +584,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 dattendre infiniment. TCP "
"est un protocole fiable, et il attendra très, très longtemps avant "
"d'abandonner une connexion. Si vous utilisez des fils dexé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 ""
@ -469,6 +640,13 @@ msgid ""
"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions "
"and do it right."
msgstr ""
"La différence majeure de fonctionnement est que `send``, ``recv``, "
"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous "
"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de "
"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me "
"croyez pas, essayez un jour. Votre application va grossir, boguer et "
"vampiriser le processeur. Alors, évitons les solutions vouées à léchec dès "
"le départ et faisons les choses correctement."
#: ../Doc/howto/sockets.rst:334
msgid "Use ``select``."
@ -494,6 +672,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 sil 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 ""
@ -501,6 +688,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 ""

View File

@ -62,7 +62,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 ""
@ -365,7 +365,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:"
@ -414,7 +414,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 ""

View File

@ -33,7 +33,7 @@ msgid ""
"representing textual data, and explains various problems that people "
"commonly encounter when trying to work with Unicode."
msgstr ""
"Ce HOWTO décrit la gestion de la spécification Unicode par Python pour les "
"Ce guide décrit la gestion de la spécification Unicode par Python pour les "
"données textuelles et explique les différents problèmes généralement "
"rencontrés par les utilisateurs qui travaillent avec Unicode."
@ -59,7 +59,7 @@ msgstr ""
"Les programmes d'aujourd'hui doivent être capables de traiter une grande "
"variété de caractères. Les applications sont souvent internationalisées pour "
"afficher les messages et les résultats dans une variété de langues "
"sélectionnables par l'utilisateur ; le même programme peut avoir besoin "
"sélectionnables par l'utilisateur ; le même programme peut avoir besoin "
"d'afficher un message d'erreur en anglais, français, japonais, hébreu ou "
"russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues "
"et peut également inclure une variété de symboles émoji. Le type de chaîne "
@ -93,8 +93,8 @@ msgstr ""
 B », « C », etc. sont tous des caractères différents. Il en va de même "
"pour « È » et « Í ». Les caractères varient selon la langue ou le contexte "
"dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain "
"Un » (*Roman Numeral One*) , « Ⅰ », qui est séparé de la lettre majuscule "
 I ». Ils se ressemblent généralement, mais ce sont deux caractères "
"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule "
 I ». Ils se ressemblent généralement, mais ce sont deux caractères "
"différents qui ont des significations différentes."
#: ../Doc/howto/unicode.rst:42
@ -108,7 +108,7 @@ msgstr ""
"Le standard Unicode décrit comment les caractères sont représentés par les "
"**points de code**. Une valeur de point de code est un nombre entier compris "
"entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs, avec environ "
"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent "
"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent "
"document, un point de code est écrit en utilisant la notation ``U+265E`` "
"pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)."
@ -118,7 +118,7 @@ msgid ""
"corresponding code points:"
msgstr ""
"La standard Unicode contient de nombreux tableaux contenant la liste des "
"caractères et des points de code correspondants :"
"caractères et des points de code correspondants :"
#: ../Doc/howto/unicode.rst:70
msgid ""
@ -129,9 +129,9 @@ msgid ""
"and characters will sometimes be forgotten."
msgstr ""
"À proprement parler, ces définitions laissent entendre qu'il est inutile de "
"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui "
"représente un caractère particulier ; dans ce cas, il représente le "
"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette "
"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui "
"représente un caractère particulier ; dans ce cas, il représente le "
"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette "
"distinction entre les points de code et les caractères sera parfois oubliée."
#: ../Doc/howto/unicode.rst:77
@ -147,7 +147,7 @@ msgstr ""
"déléments graphiques appelé **glyphe**. Le glyphe dun 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 "
"na pas besoin de sinquiéter des glyphes ; trouver le bon glyphe à afficher "
"na pas besoin de sinquiéter des glyphes ; trouver le bon glyphe à afficher "
"est généralement le travail dune boîte à outils GUI ou du moteur de rendu "
"des polices dun terminal."
@ -164,8 +164,8 @@ msgid ""
"rules for translating a Unicode string into a sequence of bytes are called a "
"**character encoding**, or just an **encoding**."
msgstr ""
"Pour résumer la section précédente : une chaîne Unicode est une séquence de "
"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en "
"Pour résumer la section précédente : une chaîne Unicode est une séquence de "
"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en "
"décimal). Cette séquence de points de code doit être stockée en mémoire sous "
"la forme d'un ensemble de **unités de code**, et les **unités de code** sont "
"ensuite transposées en octets de 8 bits. Les règles de traduction d'une "
@ -181,7 +181,7 @@ msgstr ""
"Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 "
"bits comme unité de code, puis l'utilisation de la représentation des "
"entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » "
"ressemblerait à ceci :"
"ressemblerait à ceci :"
#: ../Doc/howto/unicode.rst:106
msgid ""
@ -194,7 +194,7 @@ msgstr ""
#: ../Doc/howto/unicode.rst:109
msgid "It's not portable; different processors order the bytes differently."
msgstr ""
"Elle nest pas portable ; des processeurs différents ordonnent les octets "
"Elle nest pas portable ; des processeurs différents ordonnent les octets "
"différemment."
#: ../Doc/howto/unicode.rst:111
@ -207,10 +207,10 @@ msgid ""
"that large), but expanding our usage of disk and network bandwidth by a "
"factor of 4 is intolerable."
msgstr ""
"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des "
"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des "
"points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est "
"occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à "
"comparer aux 6 octets nécessaires pour une représentation en ASCII. "
"comparer aux 6 octets nécessaires pour une représentation en ASCII. "
"L'utilisation supplémentaire de RAM n'a pas trop d'importance (les "
"ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont "
"généralement pas si grandes que ça), mais l'accroissement de notre "
@ -261,7 +261,7 @@ msgid ""
"If the code point is >= 128, it's turned into a sequence of two, three, or "
"four bytes, where each byte of the sequence is between 128 and 255."
msgstr ""
"Si le point de code est >= 128, il est transformé en une séquence de deux, "
"Si le point de code est 128, il est transformé en une séquence de deux, "
"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 "
"et 255."
@ -282,7 +282,7 @@ msgid ""
"end-of-string markers."
msgstr ""
"Une chaîne Unicode est transformée en une séquence doctets qui contient des "
"octets zéro uniquement lorsquils représentent le caractère nul (U+000000). "
"octets zéro uniquement lorsquils représentent le caractère nul (U+0000). "
"Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions "
"C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets "
"zéro signifient forcément la fin de chaîne."
@ -318,7 +318,7 @@ msgid ""
"oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes "
"varies depending on the hardware on which the string was encoded."
msgstr ""
"UTF-8 est un encodage orienté octets. L'encodage spécifie que chaque "
"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque "
"caractère est représenté par une séquence spécifique d'un ou plusieurs "
"octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent "
"survenir avec les encodages orientés entiers (*integer*) ou orientés mots "
@ -340,7 +340,7 @@ msgid ""
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 "
"spécification Unicode. Préparez-vous à une lecture difficile. Une "
"`chronologie <http://www.unicode.org/history/>`_ de lorigine et du "
"développement de lUnicode est également disponible sur le site."
@ -377,7 +377,7 @@ msgstr ""
"com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-"
"positively-must-know-about-unicode-and-character-sets-no-excuses/>`_ a été "
"écrit par Joel Spolsky. Si cette présente introduction ne vous a pas "
"clarifié les choses, vous devriez essayer de lire cet article là avant de "
"clarifié les choses, vous devriez essayer de lire cet article-là avant de "
"continuer."
#: ../Doc/howto/unicode.rst:177
@ -386,7 +386,7 @@ 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 "
"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."
@ -430,7 +430,7 @@ msgstr ""
msgid ""
"Side note: Python 3 also supports using Unicode characters in identifiers::"
msgstr ""
"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::"
"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::"
#: ../Doc/howto/unicode.rst:211
msgid ""
@ -443,8 +443,8 @@ msgstr ""
"si vous voulez garder le code source uniquement en ASCII pour une raison "
"quelconque, vous pouvez également utiliser des séquences d'échappement dans "
"les littéraux de chaîne (en fonction de votre système, il se peut que vous "
"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence "
"d'échappement ``\\u...``) ::"
"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence "
"d'échappement ``\\u...``) ::"
#: ../Doc/howto/unicode.rst:223
msgid ""
@ -453,7 +453,7 @@ msgid ""
"``UTF-8``, and optionally an *errors* argument."
msgstr ""
"De plus, une chaîne de caractères peut être créée en utilisant la méthode :"
"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un "
"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un "
"argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument "
"*errors*."
@ -470,7 +470,7 @@ msgstr ""
"L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut "
"pas être convertie selon les règles de l'encodage. Les valeurs autorisées "
"pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:"
"`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, "
"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, "
"``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le "
"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer "
"avec antislash » : insère une séquence déchappement ``\\xNN``). Les "
@ -486,9 +486,9 @@ msgid ""
msgstr ""
"Les encodages sont spécifiés sous forme de chaînes de caractères contenant "
"le nom de l'encodage. Python est livré avec une centaine d'encodages "
"différents ; voir la référence de la bibliothèque Python sur les :ref:"
"différents ; voir la référence de la bibliothèque Python sur les :ref:"
"`encodages standards <standard-encodings>` pour une liste. Certains "
"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` "
"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` "
"et ``'8859'`` sont tous synonymes du même encodage."
#: ../Doc/howto/unicode.rst:253
@ -556,7 +556,7 @@ msgstr ""
"`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par "
"ce module sont généralement de bas-niveau pour être facilement utilisées et "
"l'écriture de nouveaux encodages est une tâche très spécialisée, donc le "
"module ne sera pas couvert dans ce HOWTO."
"module ne sera pas couvert dans ce guide."
#: ../Doc/howto/unicode.rst:309
msgid "Unicode Literals in Python Source Code"
@ -571,7 +571,7 @@ msgid ""
msgstr ""
"Dans le code source Python, des points de code Unicode spécifiques peuvent "
"être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre "
"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``"
"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``"
"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::"
#: ../Doc/howto/unicode.rst:323
@ -586,7 +586,7 @@ msgstr ""
"à 127 est acceptable à faible dose, mais devient gênante si vous utilisez "
"beaucoup de caractères accentués, comme c'est le cas dans un programme avec "
"des messages en français ou dans une autre langue utilisant des lettres "
"accentuées. Vous pouvez également assembler des chaînes de caractères à "
"accentuées. Vous pouvez également assembler des chaînes de caractères à "
"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux."
#: ../Doc/howto/unicode.rst:329
@ -597,8 +597,8 @@ msgid ""
"characters used at runtime."
msgstr ""
"Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage "
"naturel de votre langue. Vous pourriez alors éditer le code source de "
"Python avec votre éditeur favori qui affiche les caractères accentués "
"naturel de votre langue. Vous pourriez alors éditer le code source de Python "
"avec votre éditeur favori qui affiche les caractères accentués "
"naturellement, et a les bons caractères utilisés au moment de l'exécution."
#: ../Doc/howto/unicode.rst:334
@ -610,7 +610,7 @@ msgid ""
msgstr ""
"Python considère que le code source est écrit en UTF-8 par défaut, mais vous "
"pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage "
"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou "
"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou "
"la deuxième ligne du fichier source ::"
#: ../Doc/howto/unicode.rst:344
@ -621,12 +621,12 @@ msgid ""
"special; they have no significance to Python but are a convention. Python "
"looks for ``coding: name`` or ``coding=name`` in the comment."
msgstr ""
"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables "
"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables "
"locales à un fichier. *Emacs* supporte de nombreuses variables différentes, "
"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs "
"que le commentaire est spécial ; ils n'ont aucune signification pour Python "
"mais sont une convention. Python cherche ``coding: name`` ou "
"``coding=name`` dans le commentaire."
"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* "
"que le commentaire est spécial ; ils n'ont aucune signification pour Python "
"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` "
"dans le commentaire."
#: ../Doc/howto/unicode.rst:350
msgid ""
@ -634,7 +634,7 @@ msgid ""
"as already mentioned. See also :pep:`263` for more information."
msgstr ""
"Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 "
"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations."
"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations."
#: ../Doc/howto/unicode.rst:355
msgid "Unicode Properties"
@ -684,10 +684,10 @@ msgstr ""
"Les codes de catégorie sont des abréviations décrivant la nature du "
"caractère. Celles-ci sont regroupées en catégories telles que « Lettre », "
 Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en "
"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, "
"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, "
"``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, "
"autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, "
"autre ». Voir la section `Valeurs générales des catégories de la "
"autre ». Voir la section `Valeurs générales des catégories de la "
"documentation de la base de données de caractères Unicode <http://www."
"unicode.org/reports/tr44/#General_Category_Values>`_ (ressource en anglais) "
"pour une liste de codes de catégories."
@ -707,12 +707,12 @@ msgid ""
msgstr ""
"Unicode ajoute une certaine complication à la comparaison des chaînes de "
"caractères, car le même jeu de caractères peut être représenté par "
"différentes séquences de points de code. Par exemple, une lettre comme "
"« ê » peut être représentée comme un point de code unique ``U+00EA``, ou "
"comme ``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un "
"point de code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le "
"même résultat lorsqu'elles sont affichées, mais l'une est une chaîne de "
"caractères de longueur 1 et l'autre de longueur 2."
"différentes séquences de points de code. Par exemple, une lettre comme « ê » "
"peut être représentée comme un point de code unique ``U+00EA``, ou comme ``U"
"+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de code "
"pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même résultat "
"lorsqu'elles sont affichées, mais l'une est une chaîne de caractères de "
"longueur 1 et l'autre de longueur 2."
#: ../Doc/howto/unicode.rst:411
msgid ""
@ -724,7 +724,7 @@ msgid ""
msgstr ""
"Un outil pour une comparaison insensible à la casse est la méthode :meth:"
"`~str.casefold` qui convertit une chaîne en une forme insensible à la casse "
"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un "
"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un "
"traitement spécial pour les caractères tels que la lettre allemande "
"« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres "
"minuscules « *ss* »."
@ -744,7 +744,7 @@ msgstr ""
"combinaison sont remplacées par des caractères simples. :func:`normalize` "
"peut être utilisée pour effectuer des comparaisons qui ne rapportent pas "
"faussement les inégalités si deux chaînes utilisent différents caractères de "
"combinaison :"
"combinaison :"
#: ../Doc/howto/unicode.rst:447
msgid "When run, this outputs:"
@ -773,7 +773,7 @@ msgid ""
"string, so the result needs to be normalized again. See section 3.13 of the "
"Unicode Standard for a discussion and an example.)"
msgstr ""
"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? "
"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? "
"Parce qu'il y a quelques caractères qui font que :meth:`casefold` renvoie "
"une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. "
"Voir la section 3.13 du standard Unicode pour une discussion et un exemple)."
@ -792,9 +792,9 @@ msgid ""
"in the ``'Nd'`` category."
msgstr ""
"Les expressions régulières gérées par le module :mod:`re` peuvent être "
"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de "
"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de "
"caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations "
"différentes selon que le motif est fourni en octets ou en texte. Par "
"différentes selon que le motif est fourni en octets ou en texte. Par "
"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les "
"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``."
@ -813,7 +813,7 @@ msgid ""
"match the substring \"57\" instead."
msgstr ""
"Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les "
"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re."
"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re."
"compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"."
#: ../Doc/howto/unicode.rst:506
@ -831,7 +831,7 @@ msgstr ""
msgid "Some good alternative discussions of Python's Unicode support are:"
msgstr ""
"Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python "
"sont :"
"sont :"
#: ../Doc/howto/unicode.rst:519
msgid ""
@ -847,7 +847,7 @@ msgid ""
"2012 presentation by Ned Batchelder."
msgstr ""
"`Pragmatic Unicode <https://nedbatchelder.com/text/unipain.html>`_, une "
"présentation PyCon 2012 par Ned Batchelder."
"présentation *PyCon* 2012 par Ned Batchelder."
#: ../Doc/howto/unicode.rst:522
msgid ""
@ -875,7 +875,7 @@ msgid ""
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 "
"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``)."
@ -893,7 +893,7 @@ msgstr ""
"Une fois que vous avez écrit du code qui fonctionne avec des données "
"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir "
"des chaînes Unicode dans votre programme et comment convertir les chaînes "
"Unicode dans une forme appropriée pour le stockage ou la transmission ?"
"Unicode dans une forme appropriée pour le stockage ou la transmission ?"
#: ../Doc/howto/unicode.rst:543
msgid ""
@ -904,7 +904,7 @@ msgid ""
"valued columns and can return Unicode values from an SQL query."
msgstr ""
"Il est possible que vous n'ayez rien à faire en fonction de vos sources "
"d'entrée et des destinations de vos données de sortie ; il convient de "
"d'entrée et des destinations de vos données de sortie ; il convient de "
"vérifier si les bibliothèques utilisées dans votre application gèrent "
"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des "
"données Unicode. De nombreuses bases de données relationnelles prennent "
@ -938,15 +938,15 @@ msgid ""
"least a moment you'd need to have both the encoded string and its Unicode "
"version in memory.)"
msgstr ""
"La nature multi-octets des encodages pose problème ; un caractère Unicode "
"La nature multi-octets des encodages pose problème ; un caractère Unicode "
"peut être représenté par plusieurs octets. Si vous voulez lire le fichier "
"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez "
"écrire un code de gestion des erreurs pour détecter le cas où une partie "
"seulement des octets codant un seul caractère Unicode est lue à la fin d'un "
"morceau. Une solution serait de lire le fichier entier en mémoire et "
"d'effectuer le décodage, mais cela vous empêche de travailler avec des "
"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de "
"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque "
"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de "
"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque "
"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et "
"sa version Unicode en mémoire)."
@ -962,14 +962,14 @@ msgid ""
"meth:`str.encode` and :meth:`bytes.decode`."
msgstr ""
"La solution serait d'utiliser l'interface de décodage de bas-niveau pour "
"intercepter le cas des séquences d'encodage incomplètes. Ce travail "
"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` "
"intercepter le cas des séquences d'encodage incomplètes. Ce travail "
"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` "
"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier "
"est dans un encodage spécifié et accepte les paramètres Unicode pour des "
"méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase."
"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :"
"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:"
"`bytes.decode`."
"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:"
"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes."
"decode`."
#: ../Doc/howto/unicode.rst:573
msgid "Reading Unicode from a file is therefore simple::"
@ -999,13 +999,13 @@ msgstr ""
"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour "
"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou "
"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin "
"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, "
"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un "
"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement "
"écrite comme premier caractère et sera silencieusement retirée lorsque le "
"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-"
"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, "
"qui spécifient un ordre d'octets donné et ne sautent pas la BOM."
"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme "
"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; "
"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite "
"comme premier caractère et sera silencieusement retirée lorsque le fichier "
"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et "
"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui "
"spécifient un ordre d'octets donné et ne sautent pas la *BOM*."
#: ../Doc/howto/unicode.rst:596
msgid ""
@ -1016,9 +1016,9 @@ msgid ""
"if present."
msgstr ""
"Dans certains cas, il est également d'usage d'utiliser une *BOM* au début "
"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne "
"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne "
"dépend pas de l'ordre des octets. La marque annonce simplement que le "
"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec "
"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec "
"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente."
#: ../Doc/howto/unicode.rst:603
@ -1038,13 +1038,13 @@ msgid ""
msgstr ""
"La plupart des systèmes d'exploitation couramment utilisés aujourd'hui "
"prennent en charge les noms de fichiers qui contiennent des caractères "
"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant "
"la chaîne Unicode en un encodage qui varie en fonction du système. "
"Aujourd'hui, Python converge vers l'utilisation d'UTF-8 : Python sous MacOS "
"utilise UTF-8 depuis plusieurs versions et Python 3.6 sous Windows est passé "
"à UTF-8 également. Sur les systèmes Unix, il n'y aura un encodage pour le "
"système de fichiers que si vous avez défini les variables d'environnement "
"``LANG`` ou ``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8."
"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la "
"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, "
"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 "
"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 "
"également. Sur les systèmes Unix, il n'y aura un encodage pour le système de "
"fichiers que si vous avez défini les variables d'environnement ``LANG`` ou "
"``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8."
#: ../Doc/howto/unicode.rst:615
msgid ""
@ -1056,7 +1056,7 @@ msgid ""
msgstr ""
"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser "
"sur votre système actuel, au cas où vous voudriez faire l'encodage "
"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. "
"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. "
"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez "
"généralement simplement fournir la chaîne Unicode comme nom de fichier et "
"elle est automatiquement convertie à l'encodage qui convient ::"
@ -1082,14 +1082,14 @@ msgid ""
"program::"
msgstr ""
"La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève "
"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou "
"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :"
"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou "
"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :"
"func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin "
"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une "
"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une "
"chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en "
"utilisant l'encodage du système de fichiers et une liste de chaînes Unicode "
"est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie "
"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que "
"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que "
"l'encodage par défaut du système de fichiers est UTF-8, exécuter le "
"programme suivant ::"
@ -1113,8 +1113,8 @@ msgid ""
"now."
msgstr ""
"Notez que, dans la plupart des cas, il convient de vous en tenir à "
"l'utilisation d'Unicode avec ces APIs. Les API d'octets ne devraient être "
"utilisées que sur les systèmes où des noms de fichiers non décodables "
"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient "
"être utilisées que sur les systèmes où des noms de fichiers non décodables "
"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix "
"maintenant."
@ -1132,7 +1132,7 @@ msgstr ""
#: ../Doc/howto/unicode.rst:669
msgid "The most important tip is:"
msgstr "Le conseil le plus important est:"
msgstr "Le conseil le plus important est :"
#: ../Doc/howto/unicode.rst:671
msgid ""
@ -1154,8 +1154,8 @@ msgstr ""
"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois "
"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences "
"de bogues dans votre programme augmentent partout où vous combinez les deux "
"différents types de chaînes. Il n'y a pas d'encodage ou de décodage "
"automatique : si vous faites par exemple ``str + octets``, une :exc:"
"différents types de chaînes. Il n'y a pas d'encodage ou de décodage "
"automatique : si vous faites par exemple ``str + octets``, une :exc:"
"`TypeError` est levée."
#: ../Doc/howto/unicode.rst:679
@ -1173,10 +1173,10 @@ msgstr ""
"autre source non fiable, une technique courante consiste à vérifier la "
"présence de caractères illégaux dans une chaîne de caractères avant de "
"l'utiliser pour générer une ligne de commande ou de la stocker dans une base "
"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les "
"données d'octets codés ; certains encodages peuvent avoir des propriétés "
"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les "
"données d'octets codés ; certains encodages peuvent avoir des propriétés "
"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement "
"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est "
"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est "
"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors "
"choisir un moyen intelligent de cacher du texte malveillant dans le flux de "
"données encodé."
@ -1216,11 +1216,10 @@ msgid ""
"to examine or modify the ASCII parts, you can open the file with the "
"``surrogateescape`` error handler::"
msgstr ""
"Vous avez besoin de modifier un fichier mais vous ne connaissez pas "
"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII "
"et que vous voulez seulement examiner ou modifier les parties ASCII, vous "
"pouvez ouvrir le fichier avec le gestionnaire d'erreurs "
"``surrogateescape`` ::"
"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son "
"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous "
"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir "
"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::"
#: ../Doc/howto/unicode.rst:726
msgid ""
@ -1231,7 +1230,7 @@ msgid ""
msgstr ""
"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-"
"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U"
"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le "
"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le "
"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les "
"données et les réécrire."
@ -1243,8 +1242,8 @@ msgid ""
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."
"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:740
msgid ""
@ -1258,7 +1257,7 @@ msgstr ""
"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 "
"l'internationalisation et de la localisation d'une application. Ces "
"diapositives ne couvrent que Python 2.x."
#: ../Doc/howto/unicode.rst:746
@ -1268,7 +1267,7 @@ msgid ""
"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 "
"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."
@ -1294,7 +1293,7 @@ msgid ""
"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman."
msgstr ""
"Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des "
"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, "
"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, "
"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von "
"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham "
"Wideman."

View File

@ -17,6 +17,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"

View File

@ -209,6 +209,8 @@ 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 ""
@ -762,6 +764,11 @@ 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"
@ -992,7 +999,7 @@ msgstr ""
#: ../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 ""
@ -1001,12 +1008,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 ""
@ -1015,10 +1028,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}`"
@ -1026,7 +1043,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 ""
@ -1036,6 +1053,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 ""
@ -1043,38 +1066,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 ""

View File

@ -455,7 +455,7 @@ 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."

View File

@ -204,7 +204,7 @@ msgstr "3.0"
#: ../Doc/library/__future__.rst:75
msgid ":pep:`238`: *Changing the Division Operator*"
msgstr ":pep:`328` : *Changement de l'opérateur de division*"
msgstr ":pep:`238` : *Changement de l'opérateur de division*"
#: ../Doc/library/__future__.rst:78
msgid "absolute_import"

View File

@ -180,7 +180,7 @@ msgstr ""
#: ../Doc/library/_thread.rst:121
msgid "Lock objects have the following methods:"
msgstr "Les verrous ont les méthodes suivantes : "
msgstr "Les verrous ont les méthodes suivantes :"
#: ../Doc/library/_thread.rst:126
msgid ""
@ -257,7 +257,7 @@ msgid ""
"`with` statement, e.g.::"
msgstr ""
"En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via "
"l'instruction :keyword:`with`, e.g. : ::"
"l'instruction :keyword:`with`, e.g. ::"
#: ../Doc/library/_thread.rst:171
msgid "**Caveats:**"

View File

@ -71,7 +71,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 ""
@ -86,7 +86,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)."
@ -127,7 +127,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."
@ -186,7 +186,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 ""
@ -278,7 +278,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 ""
@ -337,7 +337,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 ""
@ -363,7 +363,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 ""
@ -387,7 +387,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 ""
@ -397,7 +397,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 ""
@ -406,7 +406,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:"

View File

@ -69,7 +69,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 ""

File diff suppressed because it is too large Load Diff

View File

@ -542,7 +542,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 ""

View File

@ -164,11 +164,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:91
msgid "or the more compact ::"
msgstr "ou, plus compact ::"
msgstr "ou, plus compact ::"
#: ../Doc/library/ast.rst:100
msgid "Abstract Grammar"

View File

@ -965,7 +965,7 @@ msgstr ""
#: ../Doc/library/asyncio-llapi-index.rst:504
msgid "Return the current process-wide policy."
msgstr ""
msgstr "Renvoie la stratégie actuelle à l'échelle du processus."
#: ../Doc/library/asyncio-llapi-index.rst:506
msgid ":meth:`asyncio.set_event_loop_policy`"

View File

@ -125,7 +125,7 @@ msgstr ""
#: ../Doc/library/asyncio-platforms.rst:88
msgid "macOS"
msgstr ""
msgstr "macOS"
#: ../Doc/library/asyncio-platforms.rst:90
msgid "Modern macOS versions are fully supported."

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-03 16:57+0100\n"
"PO-Revision-Date: 2019-04-11 22:41+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/asyncio-policy.rst:8
@ -111,7 +111,7 @@ msgstr ""
#: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71
msgid "This method should never return ``None``."
msgstr "Cette méthode ne devrait jamais renvoyer `` None``."
msgstr "Cette méthode ne devrait jamais renvoyer ``None``."
#: ../Doc/library/asyncio-policy.rst:65
msgid "Set the event loop for the current context to *loop*."
@ -150,8 +150,8 @@ msgid ""
"The default asyncio policy. Uses :class:`SelectorEventLoop` on both Unix "
"and Windows platforms."
msgstr ""
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur les "
"plates-formes Unix et Windows."
"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur "
"les plates-formes Unix et Windows."
#: ../Doc/library/asyncio-policy.rst:97
msgid ""
@ -159,7 +159,8 @@ msgid ""
"configured to use the default policy automatically."
msgstr ""
"Il n'est pas nécessaire d'installer la stratégie par défaut manuellement. "
"*asyncio* est configuré pour utiliser automatiquement la stratégie par défaut."
"*asyncio* est configuré pour utiliser automatiquement la stratégie par "
"défaut."
#: ../Doc/library/asyncio-policy.rst:103
msgid ""
@ -185,8 +186,8 @@ msgid ""
msgstr ""
"Un observateur de processus permet de personnaliser la manière dont une "
"boucle d'événements surveille les processus enfants sous Unix. Plus "
"précisément, la boucle d'événements a besoin de savoir quand un processus enfant "
"s'est terminé."
"précisément, la boucle d'événements a besoin de savoir quand un processus "
"enfant s'est terminé."
#: ../Doc/library/asyncio-policy.rst:116
msgid ""
@ -205,16 +206,16 @@ msgid ""
msgstr ""
"*asyncio* définit la classe de base abstraite :class:`AbstractChildWatcher`, "
"que les observateurs enfants doivent implémenter et possède deux "
"implémentations différentes : :class:`SafeChildWatcher` (configurée pour être "
"utilisé par défaut) et :class:`FastChildWatcher`."
"implémentations différentes : :class:`SafeChildWatcher` (configurée pour "
"être utilisé par défaut) et :class:`FastChildWatcher`."
#: ../Doc/library/asyncio-policy.rst:125
msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <threads asyncio-sous-"
"processus>`."
"Voir aussi la section :ref:`sous-processus et fils d'exécution <asyncio-"
"subprocess-threads>`."
#: ../Doc/library/asyncio-policy.rst:128
msgid ""
@ -235,9 +236,9 @@ msgid ""
"*watcher* must implement methods defined in the :class:"
"`AbstractChildWatcher` base class."
msgstr ""
"Définit l'observateur enfant actuel à *watcher* pour la stratégie "
"actuelle. *watcher* doit implémenter les méthodes définies dans la classe de "
"base :class:`AbstractChildWatcher`."
"Définit l'observateur enfant actuel à *watcher* pour la stratégie actuelle. "
"*watcher* doit implémenter les méthodes définies dans la classe de base :"
"class:`AbstractChildWatcher`."
#: ../Doc/library/asyncio-policy.rst:142
msgid ""
@ -247,8 +248,8 @@ msgid ""
msgstr ""
"Les implémentations de boucles d'événement tierces peuvent ne pas prendre en "
"charge les observateurs enfants personnalisés. Pour ces boucles "
"d'événements, utiliser: func:`set_child_watcher` pourrait être "
"interdit ou n'avoir aucun effet."
"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou "
"n'avoir aucun effet."
#: ../Doc/library/asyncio-policy.rst:150
msgid "Register a new child handler."
@ -266,7 +267,9 @@ msgstr ""
#: ../Doc/library/asyncio-policy.rst:157
msgid "The *callback* callable must be thread-safe."
msgstr "L'appelable *callback* doit être compatible avec les programmes à fils d'exécution multiples."
msgstr ""
"L'appelable *callback* doit être compatible avec les programmes à fils "
"d'exécution multiples."
#: ../Doc/library/asyncio-policy.rst:161
msgid "Removes the handler for process with PID equal to *pid*."
@ -313,9 +316,9 @@ msgid ""
"This implementation avoids disrupting other code spawning processes by "
"polling every process explicitly on a :py:data:`SIGCHLD` signal."
msgstr ""
"Cette implémentation évite de perturber un autre code qui aurait besoin de générer des processus "
"en interrogeant chaque processus explicitement par un signal :py:data:"
"`SIGCHLD`."
"Cette implémentation évite de perturber un autre code qui aurait besoin de "
"générer des processus en interrogeant chaque processus explicitement par un "
"signal :py:data:`SIGCHLD`."
#: ../Doc/library/asyncio-policy.rst:187
msgid ""
@ -337,8 +340,8 @@ msgid ""
"waiting for their termination."
msgstr ""
"Cette implémentation récupère tous les processus terminés en appelant "
"directement ``os.waitpid(-1)``, cassant éventuellement un autre "
"code qui génère des processus et attend leur fin."
"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui "
"génère des processus et attend leur fin."
#: ../Doc/library/asyncio-policy.rst:199
msgid ""
@ -361,4 +364,4 @@ msgstr ""
"Pour implémenter une nouvelle politique de boucle dévénements, il est "
"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de "
"réimplémenter les méthodes pour lesquelles un comportement personnalisé est "
"souhaité, par exemple : ::"
"souhaité, par exemple ::"

View File

@ -201,6 +201,8 @@ msgid ""
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
"section."
msgstr ""
"Voir aussi la section :ref:`sous-processus et fils d'exécution <asyncio-"
"subprocess-threads>`."
#: ../Doc/library/asyncio-subprocess.rst:181
msgid "Wait for the child process to terminate."

View File

@ -136,7 +136,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"
@ -153,7 +153,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 ""
@ -174,4 +174,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 ::"

View File

@ -16,45 +16,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"
@ -65,6 +75,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 ""
@ -72,6 +84,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 ""
@ -79,12 +94,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 ""
@ -93,6 +113,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 ""
@ -100,10 +124,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`."
@ -119,6 +146,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 ""
@ -127,12 +157,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."
@ -144,12 +180,18 @@ msgid ""
"``1`` and ``9`` specifying the level of compression: ``1`` produces the "
"least compression, and ``9`` (default) produces the most compression."
msgstr ""
"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre "
"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la "
"compression la moins forte, et ``9`` (par défaut) la compression la plus "
"forte."
#: ../Doc/library/bz2.rst:90
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 ""
@ -157,10 +199,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 ""
@ -168,6 +213,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 ""
@ -176,38 +224,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 ""
@ -215,35 +275,48 @@ 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 ""
"*compresslevel*, if given, must be an integer between ``1`` and ``9``. The "
"default is ``9``."
msgstr ""
"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. "
"Sa valeur par défaut est ``9``."
#: ../Doc/library/bz2.rst:152
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 ""
@ -251,6 +324,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 ""
@ -259,6 +335,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 ""
@ -267,6 +348,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 ""
@ -276,6 +362,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 ""
@ -283,6 +374,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 ""
@ -290,6 +384,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."
@ -297,7 +394,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."
@ -308,12 +405,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"
@ -321,29 +422,35 @@ msgstr "(Dé)compression en une fois"
#: ../Doc/library/bz2.rst:233
msgid "Compress *data*, a :term:`bytes-like object <bytes-like object>`."
msgstr ""
msgstr "Compresse *data*, un :term:`bytes-like object <bytes-like object>`."
#: ../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*, a :term:`bytes-like object <bytes-like object>`."
msgstr ""
msgstr "Décompresse *data*, un :term:`bytes-like object <bytes-like object>`."
#: ../Doc/library/bz2.rst:245
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*."
#: ../Doc/library/bz2.rst:256
msgid "Examples of usage"
@ -352,16 +459,22 @@ msgstr "Exemples d'utilisation"
#: ../Doc/library/bz2.rst:258
msgid "Below are some examples of typical usage of the :mod:`bz2` module."
msgstr ""
"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du "
"module :mod:`bz2`."
#: ../Doc/library/bz2.rst:260
msgid ""
"Using :func:`compress` and :func:`decompress` to demonstrate round-trip "
"compression:"
msgstr ""
"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer "
"une compression aller-retour :"
#: ../Doc/library/bz2.rst:281
msgid "Using :class:`BZ2Compressor` for incremental compression:"
msgstr ""
"Utilise la classe :class:`BZ2Compressor` pour une compression "
"incrémentielle :"
#: ../Doc/library/bz2.rst:300
msgid ""
@ -369,6 +482,10 @@ msgid ""
"\"` chunks). Random data tends to compress poorly, while ordered, "
"repetitive data usually yields a high compression ratio."
msgstr ""
"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un "
"flux de blocs de `b\"z\"`). Les données aléatoires ont tendance à mal se "
"compresser, alors que les données répétitives ou ordonnées donnent "
"généralement un taux de compression élevé."
#: ../Doc/library/bz2.rst:304
#, fuzzy

View File

@ -17,7 +17,7 @@ msgstr ""
#: ../Doc/library/calendar.rst:2
msgid ":mod:`calendar` --- General calendar-related functions"
msgstr ""
msgstr ":mod:`calendar` — Fonctions calendaires générales"
#: ../Doc/library/calendar.rst:10
msgid "**Source code:** :source:`Lib/calendar.py`"
@ -277,12 +277,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:186
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:192
msgid ""
@ -292,59 +297,81 @@ 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:199
msgid ""
":class:`!HTMLCalendar` has the following attributes you can override to "
"customize the CSS classes used by the calendar:"
msgstr ""
":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez "
"surcharger pour personnaliser les classes CSS utilisées par le calendrier :"
#: ../Doc/library/calendar.rst:204
msgid ""
"A list of CSS classes used for each weekday. The default class list is::"
msgstr ""
"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste "
"par défaut de la classe est ::"
#: ../Doc/library/calendar.rst:208
msgid "more styles can be added for each day::"
msgstr ""
msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::"
#: ../Doc/library/calendar.rst:212
msgid "Note that the length of this list must be seven items."
msgstr ""
msgstr "Notez que la longueur de cette liste doit être de sept éléments."
#: ../Doc/library/calendar.rst:217
msgid "The CSS class for a weekday occurring in the previous or coming month."
msgstr ""
"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent "
"ou à venir."
#: ../Doc/library/calendar.rst:224
msgid ""
"A list of CSS classes used for weekday names in the header row. The default "
"is the same as :attr:`cssclasses`."
msgstr ""
"Une liste de classes CSS utilisées pour les noms des jours de la semaine "
"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`."
#: ../Doc/library/calendar.rst:232
msgid ""
"The month's head CSS class (used by :meth:`formatmonthname`). The default "
"value is ``\"month\"``."
msgstr ""
"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La "
"valeur par défaut est ``\"month\"``."
#: ../Doc/library/calendar.rst:240
msgid ""
"The CSS class for the whole month's table (used by :meth:`formatmonth`). The "
"default value is ``\"month\"``."
msgstr ""
"La classe CSS pour la table du mois entière (utilisé par :meth:"
"`formatmonth`). La valeur par défaut est ``\"month\"``."
#: ../Doc/library/calendar.rst:248
msgid ""
"The CSS class for the whole year's table of tables (used by :meth:"
"`formatyear`). The default value is ``\"year\"``."
msgstr ""
"La classe CSS pour la table entière des tables de l'année (utilisé par :meth:"
"`formatyear`). La valeur par défaut est ``\"year\"``."
#: ../Doc/library/calendar.rst:256
msgid ""
"The CSS class for the table head for the whole year (used by :meth:"
"`formatyear`). The default value is ``\"year\"``."
msgstr ""
"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé par :"
"meth:`formatyear`). La valeur par défaut est ``\"year\"``."
#: ../Doc/library/calendar.rst:262
msgid ""
@ -352,10 +379,15 @@ msgid ""
"singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the "
"single CSS class with a space separated list of CSS classes, for example::"
msgstr ""
"Notez que même si le nommage ci-dessus des attributs de classe est au "
"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer "
"la seule classe CSS par une liste de classes CSS séparées par une espace, "
"par exemple ::"
#: ../Doc/library/calendar.rst:268
msgid "Here is an example how :class:`!HTMLCalendar` can be customized::"
msgstr ""
"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::"
#: ../Doc/library/calendar.rst:280
msgid ""
@ -364,6 +396,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:288
msgid ""
@ -372,6 +409,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:295
msgid ""
@ -380,10 +422,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:300
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:304
msgid ""
@ -392,43 +440,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:315
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:320
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:325
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:328
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:333
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:339
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:345
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:351
msgid ""
@ -439,24 +506,31 @@ msgstr ""
#: ../Doc/library/calendar.rst:358
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:363
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:369
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:374
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:380
msgid ""
@ -466,20 +540,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:387
msgid "The :mod:`calendar` module exports the following data attributes:"
msgstr ""
msgstr "Le module :mod:`calendar` exporte les attributs suivants :"
#: ../Doc/library/calendar.rst:391
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:396
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:401
msgid ""
@ -487,6 +570,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:408
msgid ""
@ -494,6 +581,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:417
msgid "Module :mod:`datetime`"
@ -504,6 +595,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:419
msgid "Module :mod:`time`"
@ -511,4 +604,4 @@ msgstr "Module :mod:`time`"
#: ../Doc/library/calendar.rst:420
msgid "Low-level time related functions."
msgstr ""
msgstr "Fonctions bas niveau relatives au temps."

View File

@ -51,7 +51,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 ""

View File

@ -16,11 +16,11 @@ msgstr ""
#: ../Doc/library/codecs.rst:2
msgid ":mod:`codecs` --- Codec registry and base classes"
msgstr ""
msgstr ":mod:`codecs` — Registre des codecs et classes de base associées"
#: ../Doc/library/codecs.rst:11
msgid "**Source code:** :source:`Lib/codecs.py`"
msgstr "**Code source :** :source:`Lib/codecs.py`"
msgstr "**Code source :** :source:`Lib/codecs.py`"
#: ../Doc/library/codecs.rst:23
msgid ""
@ -33,16 +33,29 @@ msgid ""
"features are restricted to use specifically with :term:`text encodings <text "
"encoding>`, or with codecs that encode to :class:`bytes`."
msgstr ""
"Ce module définit les classes de base pour les codecs (encodeurs et "
"décodeurs) standards Python et fournit l'interface avec le registre des "
"codecs internes à Python, qui gère le processus de recherche de codecs et de "
"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de "
"texte <text encoding>`, qui encode du texte vers des séquences d'octets "
"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du "
"texte vers du texte et des *bytes* vers des *bytes*. Les codecs "
"personnalisés peuvent encoder et décoder des types arbitraires, mais "
"l'utilisation de certaines fonctionnalités du module est restreinte aux :"
"term:`encodeurs de texte <text encoding>` ou aux codecs qui encodent vers :"
"class:`bytes`."
#: ../Doc/library/codecs.rst:33
msgid ""
"The module defines the following functions for encoding and decoding with "
"any codec:"
msgstr ""
"Le module définit les fonctions suivantes pour encoder et décoder à l'aide "
"de n'importe quel codec :"
#: ../Doc/library/codecs.rst:38
msgid "Encodes *obj* using the codec registered for *encoding*."
msgstr ""
msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*."
#: ../Doc/library/codecs.rst:40
msgid ""
@ -52,10 +65,16 @@ msgid ""
"`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more "
"information on codec error handling."
msgstr ""
"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. "
"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire "
"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe "
"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :"
"ref:`classes de base des codecs <codec-base-classes>` pour plus "
"d'informations sur la gestion des erreurs par les codecs."
#: ../Doc/library/codecs.rst:48
msgid "Decodes *obj* using the codec registered for *encoding*."
msgstr ""
msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*."
#: ../Doc/library/codecs.rst:50
msgid ""
@ -65,16 +84,25 @@ msgid ""
"`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more "
"information on codec error handling."
msgstr ""
"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. "
"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire "
"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe "
"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :"
"ref:`classes de base des codecs <codec-base-classes>` pour plus "
"d'informations sur la gestion des erreurs par les codecs."
#: ../Doc/library/codecs.rst:56
msgid "The full details for each codec can also be looked up directly:"
msgstr ""
"Les détails complets de chaque codec peuvent être examinés directement :"
#: ../Doc/library/codecs.rst:60
msgid ""
"Looks up the codec info in the Python codec registry and returns a :class:"
"`CodecInfo` object as defined below."
msgstr ""
"Recherche les informations relatives au codec dans le registre des codecs de "
"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous."
#: ../Doc/library/codecs.rst:63
msgid ""
@ -83,16 +111,23 @@ msgid ""
"object is found, a :exc:`LookupError` is raised. Otherwise, the :class:"
"`CodecInfo` object is stored in the cache and returned to the caller."
msgstr ""
"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils "
"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en "
"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:"
"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache "
"et renvoyé vers l'appelant."
#: ../Doc/library/codecs.rst:70
msgid ""
"Codec details when looking up the codec registry. The constructor arguments "
"are stored in attributes of the same name:"
msgstr ""
"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du "
"constructeur sont stockés dans les attributs éponymes :"
#: ../Doc/library/codecs.rst:76
msgid "The name of the encoding."
msgstr ""
msgstr "Le nom de l'encodeur."
#: ../Doc/library/codecs.rst:82
msgid ""
@ -102,6 +137,11 @@ msgid ""
"objects>`). The functions or methods are expected to work in a stateless "
"mode."
msgstr ""
"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent "
"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:"
"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs "
"<codec-objects>`). Les fonctions et méthodes sont censées fonctionner sans "
"état interne."
#: ../Doc/library/codecs.rst:92
msgid ""
@ -110,6 +150,11 @@ msgid ""
"`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. "
"Incremental codecs can maintain state."
msgstr ""
"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles "
"doivent avoir respectivement les mêmes interfaces que celles définies par "
"les classes de base :class:`IncrementalEncoder` et :class:"
"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états "
"internes."
#: ../Doc/library/codecs.rst:101
msgid ""
@ -117,69 +162,94 @@ msgid ""
"the interface defined by the base classes :class:`StreamWriter` and :class:"
"`StreamReader`, respectively. Stream codecs can maintain state."
msgstr ""
"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent "
"avoir les mêmes interfaces que celles définies par les classes de base :"
"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de "
"flux peuvent conserver un état interne."
#: ../Doc/library/codecs.rst:106
msgid ""
"To simplify access to the various codec components, the module provides "
"these additional functions which use :func:`lookup` for the codec lookup:"
msgstr ""
"Pour simplifier l'accès aux différents composants du codec, le module "
"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` "
"pour la recherche du codec :"
#: ../Doc/library/codecs.rst:111
msgid ""
"Look up the codec for the given encoding and return its encoder function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction "
"d'encodage."
#: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120
#: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154
msgid "Raises a :exc:`LookupError` in case the encoding cannot be found."
msgstr ""
msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé."
#: ../Doc/library/codecs.rst:118
msgid ""
"Look up the codec for the given encoding and return its decoder function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de "
"décodage."
#: ../Doc/library/codecs.rst:125
msgid ""
"Look up the codec for the given encoding and return its incremental encoder "
"class or factory function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa classe "
"d'encodage incrémental ou la fonction usine."
#: ../Doc/library/codecs.rst:128
msgid ""
"Raises a :exc:`LookupError` in case the encoding cannot be found or the "
"codec doesn't support an incremental encoder."
msgstr ""
"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si "
"le codec ne gère pas l'encodage incrémental."
#: ../Doc/library/codecs.rst:134
msgid ""
"Look up the codec for the given encoding and return its incremental decoder "
"class or factory function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de "
"décodage incrémental ou la fonction usine."
#: ../Doc/library/codecs.rst:137
msgid ""
"Raises a :exc:`LookupError` in case the encoding cannot be found or the "
"codec doesn't support an incremental decoder."
msgstr ""
"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si "
"le codec ne gère pas le décodage incrémental."
#: ../Doc/library/codecs.rst:143
msgid ""
"Look up the codec for the given encoding and return its :class:"
"`StreamReader` class or factory function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:"
"`StreamReader` ou la fonction usine."
#: ../Doc/library/codecs.rst:151
msgid ""
"Look up the codec for the given encoding and return its :class:"
"`StreamWriter` class or factory function."
msgstr ""
"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:"
"`StreamWriter` ou la fonction usine."
#: ../Doc/library/codecs.rst:156
msgid ""
"Custom codecs are made available by registering a suitable codec search "
"function:"
msgstr ""
"Les codecs personnalisés sont mis à disposition en enregistrant une fonction "
"de recherche de codecs adaptée :"
#: ../Doc/library/codecs.rst:161
msgid ""
@ -188,12 +258,20 @@ msgid ""
"class:`CodecInfo` object. In case a search function cannot find a given "
"encoding, it should return ``None``."
msgstr ""
"Enregistre une fonction de recherche de codec. Il convient qu'une fonction "
"de recherche prenne un argument, le nom de l'encodage écrit en lettres "
"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de "
"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` "
"None``."
#: ../Doc/library/codecs.rst:168
msgid ""
"Search function registration is not currently reversible, which may cause "
"problems in some cases, such as unit testing or module reloading."
msgstr ""
"l'enregistrement d'une fonction de recherche n'est actuellement pas "
"réversible, ce qui peut entraîner des problèmes dans certains cas, par "
"exemple pour les tests unitaires ou le rechargement de module."
#: ../Doc/library/codecs.rst:172
msgid ""
@ -202,6 +280,11 @@ msgid ""
"provides additional utility functions and classes that allow the use of a "
"wider range of codecs when working with binary files:"
msgstr ""
"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le "
"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le "
"présent module fournit des fonctions et classes utilitaires supplémentaires "
"qui permettent l'utilisation d'une plus large gamme de codecs si vous "
"travaillez avec des fichiers binaires :"
#: ../Doc/library/codecs.rst:179
msgid ""
@ -209,6 +292,10 @@ msgid ""
"`StreamReaderWriter`, providing transparent encoding/decoding. The default "
"file mode is ``'r'``, meaning to open the file in read mode."
msgstr ""
"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance "
"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. "
"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier "
"est ouvert en lecture."
#: ../Doc/library/codecs.rst:185
msgid ""
@ -217,6 +304,11 @@ msgid ""
"may be any binary mode acceptable to the built-in :func:`open` function; the "
"``'b'`` is automatically added."
msgstr ""
"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. "
"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à "
"l'écriture. L'argument *mode* peut être n'importe quel mode binaire "
"acceptable pour la fonction native :func:`open` ; le ``'b'`` est "
"automatiquement ajouté."
#: ../Doc/library/codecs.rst:190
msgid ""
@ -224,6 +316,10 @@ msgid ""
"encoding that encodes to and decodes from bytes is allowed, and the data "
"types supported by the file methods depend on the codec used."
msgstr ""
"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui "
"encode et décode des octets (type *bytes*) est autorisé et les types de "
"données pris en charge par les méthodes relatives aux fichiers dépendent du "
"codec utilisé."
#: ../Doc/library/codecs.rst:194
msgid ""
@ -231,6 +327,9 @@ msgid ""
"``'strict'`` which causes a :exc:`ValueError` to be raised in case an "
"encoding error occurs."
msgstr ""
"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur "
"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas "
"d'erreur lors du codage."
#: ../Doc/library/codecs.rst:197
msgid ""
@ -244,6 +343,9 @@ msgid ""
"provides transparent transcoding. The original file is closed when the "
"wrapped version is closed."
msgstr ""
"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* "
"qui fournit un transcodage transparent. Le fichier original est fermé quand "
"la version encapsulée est fermée."
#: ../Doc/library/codecs.rst:207
msgid ""
@ -252,10 +354,17 @@ msgid ""
"*file_encoding*. Bytes read from the original file are decoded according to "
"*file_encoding*, and the result is encoded using *data_encoding*."
msgstr ""
"Les données écrites dans un fichier encapsulant sont décodées en fonction du "
"*data_encoding* spécifié puis écrites vers le fichier original en tant que "
"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier "
"original sont décodés conformément à *file_encoding* et le résultat est "
"encodé en utilisant *data_encoding*."
#: ../Doc/library/codecs.rst:213
msgid "If *file_encoding* is not given, it defaults to *data_encoding*."
msgstr ""
"Si *file_encoding* n'est pas spécifié, la valeur par défaut est "
"*data_encoding*."
#: ../Doc/library/codecs.rst:215
msgid ""
@ -263,6 +372,9 @@ msgid ""
"``'strict'``, which causes :exc:`ValueError` to be raised in case an "
"encoding error occurs."
msgstr ""
"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur "
"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas "
"d'erreur lors du codage."
#: ../Doc/library/codecs.rst:222
msgid ""
@ -271,6 +383,10 @@ msgid ""
"well as any other keyword argument) is passed through to the incremental "
"encoder."
msgstr ""
"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée "
"fournie par *iterator*. Cette fonction est un :term:`générateur "
"<generator>`. L'argument *errors* (ainsi que tout autre argument passé par "
"mot-clé) est transmis à l'encodeur incrémental."
#: ../Doc/library/codecs.rst:227
msgid ""
@ -278,6 +394,9 @@ msgid ""
"encode. Therefore it does not support bytes-to-bytes encoders such as "
"``base64_codec``."
msgstr ""
"Cette fonction nécessite que le codec accepte les objets texte (classe :"
"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les "
"encodeurs *bytes* vers *bytes* tels que ``base64_codec``."
#: ../Doc/library/codecs.rst:234
msgid ""
@ -286,6 +405,10 @@ msgid ""
"well as any other keyword argument) is passed through to the incremental "
"decoder."
msgstr ""
"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée "
"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument "
"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au "
"décodeur incrémental."
#: ../Doc/library/codecs.rst:239
msgid ""
@ -294,12 +417,18 @@ msgid ""
"``rot_13``, although ``rot_13`` may be used equivalently with :func:"
"`iterencode`."
msgstr ""
"Cette fonction requiert que le codec accepte les objets :class:`bytes` en "
"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte "
"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de "
"manière équivalente avec :func:`iterencode`."
#: ../Doc/library/codecs.rst:245
msgid ""
"The module also provides the following constants which are useful for "
"reading and writing to platform dependent files:"
msgstr ""
"Le module fournit également les constantes suivantes qui sont utiles pour "
"lire et écrire les fichiers dépendants de la plateforme :"
#: ../Doc/library/codecs.rst:260
msgid ""
@ -312,10 +441,19 @@ msgid ""
"`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others "
"represent the BOM in UTF-8 and UTF-32 encodings."
msgstr ""
"Ces constantes définissent diverses séquences d'octets, les marques d'ordre "
"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs "
"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 "
"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature "
"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:"
"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un "
"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` "
"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques "
"BOM dans les encodages UTF-8 et UTF-32."
#: ../Doc/library/codecs.rst:274
msgid "Codec Base Classes"
msgstr ""
msgstr "Classes de base de codecs"
#: ../Doc/library/codecs.rst:276
msgid ""
@ -323,6 +461,10 @@ msgid ""
"interfaces for working with codec objects, and can also be used as the basis "
"for custom codec implementations."
msgstr ""
"Le module :mod:`codecs` définit un ensemble de classes de base qui "
"spécifient les interfaces pour travailler avec des objets codecs et qui "
"peuvent également être utilisées comme base pour des implémentations de "
"codecs personnalisés."
#: ../Doc/library/codecs.rst:280
msgid ""
@ -332,10 +474,16 @@ msgid ""
"decoder to implement the file protocols. Codec authors also need to define "
"how the codec will handle encoding and decoding errors."
msgstr ""
"Chaque codec doit définir quatre interfaces pour être utilisable comme codec "
"en Python : codeur sans état, décodeur sans état, lecteur de flux et "
"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement "
"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. "
"Les auteurs de codecs doivent également définir comment le codec gère les "
"erreurs d'encodage et de décodage."
#: ../Doc/library/codecs.rst:291
msgid "Error Handlers"
msgstr ""
msgstr "Gestionnaires d'erreurs"
#: ../Doc/library/codecs.rst:293
msgid ""
@ -380,6 +528,8 @@ msgid ""
"The following error handlers are only applicable to :term:`text encodings "
"<text encoding>`:"
msgstr ""
"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:"
"`encodeurs de texte <text encoding>` :"
#: ../Doc/library/codecs.rst:326
msgid "``'replace'``"
@ -411,6 +561,8 @@ msgid ""
"Replace with backslashed escape sequences. Implemented in :func:"
"`backslashreplace_errors`."
msgstr ""
"Remplace avec une séquence échappée par des antislashs. Implémenté dans :"
"func:`backslashreplace_errors`."
#: ../Doc/library/codecs.rst:341
msgid "``'namereplace'``"
@ -438,10 +590,12 @@ msgstr ""
msgid ""
"In addition, the following error handler is specific to the given codecs:"
msgstr ""
"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs "
"suivants :"
#: ../Doc/library/codecs.rst:357
msgid "Codecs"
msgstr ""
msgstr "Codecs"
#: ../Doc/library/codecs.rst:359
msgid "``'surrogatepass'``"
@ -449,7 +603,7 @@ msgstr "``'surrogatepass'``"
#: ../Doc/library/codecs.rst:359
msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le"
msgstr ""
msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le"
#: ../Doc/library/codecs.rst:359
msgid ""
@ -460,28 +614,35 @@ msgstr ""
#: ../Doc/library/codecs.rst:364
msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers."
msgstr ""
"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``."
#: ../Doc/library/codecs.rst:367
msgid ""
"The ``'surrogatepass'`` error handlers now works with utf-16\\* and "
"utf-32\\* codecs."
msgstr ""
"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les "
"codecs utf-16\\* et utf-32\\*."
#: ../Doc/library/codecs.rst:370
msgid "The ``'namereplace'`` error handler."
msgstr ""
msgstr "le gestionnaire d'erreurs ``'namereplace'``."
#: ../Doc/library/codecs.rst:373
msgid ""
"The ``'backslashreplace'`` error handlers now works with decoding and "
"translating."
msgstr ""
"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour "
"le décodage et la traduction."
#: ../Doc/library/codecs.rst:377
msgid ""
"The set of allowed values can be extended by registering a new named error "
"handler:"
msgstr ""
"L'ensemble des valeurs autorisées peut être étendu en enregistrant un "
"nouveau gestionnaire d'erreurs nommé :"
#: ../Doc/library/codecs.rst:382
msgid ""

View File

@ -526,7 +526,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:247
msgid ""
@ -543,7 +543,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:276
msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:"

View File

@ -347,7 +347,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:190
msgid ""
@ -1354,7 +1354,7 @@ msgid ""
msgstr ""
"Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de "
"type pour les tuples nommés. Cela propose aussi une notation élégante "
"utilisant le mot-clé :keyword:`class` :"
"utilisant le mot-clé :keyword:`class` ::"
#: ../Doc/library/collections.rst:1028
msgid ""

View File

@ -17,6 +17,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`"
@ -30,16 +31,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 ""
@ -47,22 +57,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 ""
@ -72,12 +93,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 ""
@ -85,6 +113,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 ""
@ -93,6 +123,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 ""
@ -101,12 +136,19 @@ 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:88
msgid ""
@ -120,10 +162,20 @@ msgid ""
"`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if "
"the ``SOURCE_DATE_EPOCH`` environment variable is set."
msgstr ""
"Définit la manière dont les fichiers de code intermédiaire seront invalidés "
"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés "
"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou "
"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent "
"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-"
"invalidation` pour plus d'informations sur la manière dont Python valide les "
"fichiers de code intermédiaire conservés en cache lors de l'exécution. La "
"valeur par défaut est ``timestamp``. Cependant, si la variable "
"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient "
"``checked-hash``."
#: ../Doc/library/compileall.rst:99
msgid "Added the ``-i``, ``-b`` and ``-h`` options."
msgstr ""
msgstr "ajout des options ``-i``, ``-b`` et ``-h``."
#: ../Doc/library/compileall.rst:102
msgid ""
@ -131,10 +183,13 @@ 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:107
msgid "Added the ``--invalidation-mode`` option."
msgstr ""
msgstr "ajout de l'option ``--invalidation-mode``."
#: ../Doc/library/compileall.rst:111
msgid ""
@ -142,10 +197,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:116
msgid "Public functions"
msgstr ""
msgstr "Fonctions publiques"
#: ../Doc/library/compileall.rst:120
msgid ""
@ -153,6 +212,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:124
msgid ""
@ -168,12 +230,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:133
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:136
msgid ""
@ -188,6 +257,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:144 ../Doc/library/compileall.rst:201
msgid ""
@ -197,6 +270,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:150 ../Doc/library/compileall.rst:207
msgid ""
@ -219,19 +298,22 @@ msgid ""
"PycInvalidationMode` enum and controls how the generated pycs are "
"invalidated at runtime."
msgstr ""
"*invalidation_mode* doit être un membre de l'énumération :class:`py_compile."
"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` "
"sont invalidés lorsque l'interpréteur tente de les utiliser."
#: ../Doc/library/compileall.rst:163 ../Doc/library/compileall.rst:236
msgid "Added the *legacy* and *optimize* parameter."
msgstr ""
msgstr "ajout des paramètres *legacy* et *optimize*."
#: ../Doc/library/compileall.rst:166
msgid "Added the *workers* parameter."
msgstr ""
msgstr "ajout du paramètre *workers*."
#: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:216
#: ../Doc/library/compileall.rst:239
msgid "*quiet* parameter was changed to a multilevel value."
msgstr ""
msgstr "le paramètre *quiet* peut prendre plusieurs niveaux."
#: ../Doc/library/compileall.rst:172 ../Doc/library/compileall.rst:219
#: ../Doc/library/compileall.rst:242
@ -239,6 +321,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:176
msgid "Accepts a :term:`path-like object`."
@ -247,13 +331,15 @@ msgstr "Accepte un :term:`path-like object`."
#: ../Doc/library/compileall.rst:179 ../Doc/library/compileall.rst:223
#: ../Doc/library/compileall.rst:246
msgid "The *invalidation_mode* parameter was added."
msgstr ""
msgstr "ajout du paramètre *invalidation_mode*."
#: ../Doc/library/compileall.rst:184
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:187
msgid ""
@ -263,6 +349,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:193
msgid ""
@ -277,6 +368,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:231
msgid ""
@ -285,17 +379,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:249
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:266
msgid "Module :mod:`py_compile`"
msgstr ""
msgstr "Module :mod:`py_compile`"
#: ../Doc/library/compileall.rst:267
msgid "Byte-compile a single source file."
msgstr ""
msgstr "Compiler un fichier source unique."

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/configparser.rst:2
msgid ":mod:`configparser` --- Configuration file parser"
msgstr ""
msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration"
#: ../Doc/library/configparser.rst:14
msgid "**Source code:** :source:`Lib/configparser.py`"
@ -29,40 +29,55 @@ msgid ""
"found in Microsoft Windows INI files. You can use this to write Python "
"programs which can be customized by end users easily."
msgstr ""
"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente "
"un langage de configuration basique, proche de ce que l'on peut trouver dans "
"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour "
"écrire des programmes Python qui sont facilement configurables par "
"l'utilisateur final."
#: ../Doc/library/configparser.rst:31
msgid ""
"This library does *not* interpret or write the value-type prefixes used in "
"the Windows Registry extended version of INI syntax."
msgstr ""
"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui "
"permet de lire ou d'écrire des valeurs dans la base de registre Windows en "
"utilisant divers préfixes."
#: ../Doc/library/configparser.rst:38
msgid "Module :mod:`shlex`"
msgstr ""
msgstr "Module :mod:`shlex`"
#: ../Doc/library/configparser.rst:37
msgid ""
"Support for creating Unix shell-like mini-languages which can be used as an "
"alternate format for application configuration files."
msgstr ""
"Ce module fournit les outils permettant de créer des mini-langages de "
"programmation ressemblant au shell Unix, qui peuvent être utilisés comme "
"alternative pour les fichiers de configuration d'une application."
#: ../Doc/library/configparser.rst:41
msgid "Module :mod:`json`"
msgstr ""
msgstr "Module :mod:`json`"
#: ../Doc/library/configparser.rst:41
msgid ""
"The json module implements a subset of JavaScript syntax which can also be "
"used for this purpose."
msgstr ""
"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui "
"peut aussi être utilisée à cet effet."
#: ../Doc/library/configparser.rst:51
msgid "Quick Start"
msgstr ""
msgstr "Premiers pas"
#: ../Doc/library/configparser.rst:53
msgid "Let's take a very basic configuration file that looks like this:"
msgstr ""
"Prenons pour exemple un fichier de configuration très simple ressemblant à "
"ceci :"
#: ../Doc/library/configparser.rst:70
msgid ""
@ -72,6 +87,11 @@ msgid ""
"classes can read and write such files. Let's start by creating the above "
"configuration file programmatically."
msgstr ""
"La structure des fichiers *INI* est décrite dans la `section suivante "
"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de "
"sections, chacune des sections comprenant des clés associées à des valeurs. "
"Les classes du module :mod:`configparser` peuvent écrire et lire de tels "
"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus."
#: ../Doc/library/configparser.rst:94
msgid ""
@ -79,12 +99,20 @@ msgid ""
"are differences, `outlined later <#mapping-protocol-access>`_, but the "
"behavior is very close to what you would expect from a dictionary."
msgstr ""
"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par "
"l'analyse du fichier de configuration comme s'il s'agissait d'un "
"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-"
"protocol-access>`_, mais le comportement de l'instance est très proche de ce "
"que vous pourriez attendre d'un dictionnaire."
#: ../Doc/library/configparser.rst:98
msgid ""
"Now that we have created and saved a configuration file, let's read it back "
"and explore the data it holds."
msgstr ""
"Nous venons de créer et sauvegarder un fichier de configuration. Voyons "
"maintenant comment nous pouvons le lire et accéder aux données qu'il "
"contient."
#: ../Doc/library/configparser.rst:133
msgid ""
@ -93,10 +121,15 @@ msgid ""
"other sections [1]_. Note also that keys in sections are case-insensitive "
"and stored in lowercase [1]_."
msgstr ""
"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un "
"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par "
"défaut pour toutes les autres sections [1]_. Notez également que les clés à "
"lintérieur des sections ne sont pas sensibles à la casse et qu'elles sont "
"stockées en minuscules. [1]_."
#: ../Doc/library/configparser.rst:140
msgid "Supported Datatypes"
msgstr ""
msgstr "Types de données prises en charge"
#: ../Doc/library/configparser.rst:142
msgid ""
@ -104,6 +137,10 @@ msgid ""
"always storing them internally as strings. This means that if you need "
"other datatypes, you should convert on your own:"
msgstr ""
"Les lecteurs de configuration n'essayent jamais de deviner le type des "
"valeurs présentes dans les fichiers de configuration, et elles sont toujours "
"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un "
"type différent, vous devez effectuer la conversion vous-même :"
#: ../Doc/library/configparser.rst:153
msgid ""
@ -115,6 +152,16 @@ msgid ""
"and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, "
"``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:"
msgstr ""
"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de "
"configurations fournissent un ensemble d'accesseurs permettant de gérer les "
"entiers, les flottants et les booléens plus facilement. Le cas des booléens "
"est le plus pertinent. En effet, vous ne pouvez pas vous contenter "
"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` "
"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la "
"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à "
"la casse et interprète correctement les valeurs booléennes associées aux "
"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, "
"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :"
#: ../Doc/library/configparser.rst:170
msgid ""
@ -123,16 +170,22 @@ msgid ""
"methods. You can register your own converters and customize the provided "
"ones. [1]_"
msgstr ""
"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations "
"fournissent également des méthodes similaires comme :meth:`~ConfigParser."
"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos "
"propres convertisseurs et personnaliser ceux déjà fournis. [1]_"
#: ../Doc/library/configparser.rst:176
msgid "Fallback Values"
msgstr ""
msgstr "Valeurs de substitution"
#: ../Doc/library/configparser.rst:178
msgid ""
"As with a dictionary, you can use a section's :meth:`get` method to provide "
"fallback values:"
msgstr ""
"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` "
"d'une section en spécifiant une valeur de substitution :"
#: ../Doc/library/configparser.rst:191
msgid ""
@ -142,6 +195,11 @@ msgid ""
"``'topsecret.server.com'``, we will always get the default, even if we "
"specify a fallback:"
msgstr ""
"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs "
"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` "
"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de "
"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la "
"valeur par défaut, même en ayant spécifié une valeur de substitution :"
#: ../Doc/library/configparser.rst:202
msgid ""
@ -150,6 +208,10 @@ msgid ""
"compatibility. When using this method, a fallback value can be provided via "
"the ``fallback`` keyword-only argument:"
msgstr ""
"Il est important de savoir que la méthode :meth:`get` appelée au niveau de "
"l'analyseur fournit une interface particulière et plus complexe, qui est "
"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une "
"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :"
#: ../Doc/library/configparser.rst:213
msgid ""
@ -157,10 +219,13 @@ msgid ""
"getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` "
"methods, for example:"
msgstr ""
"L'argument ``fallback`` peut être utilisé de la même façon avec les "
"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :"
"meth:`~ConfigParser.getboolean`. Par exemple :"
#: ../Doc/library/configparser.rst:229
msgid "Supported INI File Structure"
msgstr ""
msgstr "Structure des fichiers *INI* prise en change"
#: ../Doc/library/configparser.rst:231
msgid ""
@ -173,6 +238,17 @@ msgid ""
"indented deeper than the first line of the value. Depending on the parser's "
"mode, blank lines may be treated as parts of multiline values or ignored."
msgstr ""
"Un fichier de configuration est constitué de sections. Chacune des sections "
"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-"
"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par "
"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse "
"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des "
"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, "
"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les "
"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les "
"lignes supplémentaires sont plus indentées que la première ligne. Les lignes "
"vides peuvent être considérées comme faisant partie des valeurs multi "
"lignes, en fonction de la configuration de l'analyseur."
#: ../Doc/library/configparser.rst:240
msgid ""
@ -180,14 +256,18 @@ msgid ""
"(``#`` and ``;`` by default [1]_). Comments may appear on their own on an "
"otherwise empty line, possibly indented. [1]_"
msgstr ""
"Les fichiers de configuration peuvent contenir des commentaires, préfixés "
"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les "
"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent "
"aussi être indentés. [1]_"
#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307
msgid "For example:"
msgstr "Par exemple ::"
msgstr "Par exemple :"
#: ../Doc/library/configparser.rst:292
msgid "Interpolation of values"
msgstr ""
msgstr "Interpolation des valeurs"
#: ../Doc/library/configparser.rst:294
msgid ""
@ -195,6 +275,9 @@ msgid ""
"interpolation. This means values can be preprocessed before returning them "
"from ``get()`` calls."
msgstr ""
"La classe :class:`ConfigParser` prend en charge linterpolation, en plus des "
"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées "
"avant d'être renvoyées par les appels aux méthodes ``get()``."
#: ../Doc/library/configparser.rst:302
msgid ""
@ -203,6 +286,11 @@ msgid ""
"or values in the special default section [1]_. Additional default values "
"can be provided on initialization."
msgstr ""
"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. "
"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant "
"à d'autres valeurs dans la même section, ou bien à des valeurs dans la "
"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être "
"fournies au moment de l'initialisation de cette classe."
#: ../Doc/library/configparser.rst:317
msgid ""
@ -213,6 +301,13 @@ msgid ""
"keys used in the chain of references do not have to be specified in any "
"specific order in the configuration file."
msgstr ""
"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut "
"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de "
"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` "
"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/"
"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés "
"utilisées comme référence à lintérieur des chaînes de formatage peuvent "
"être définies dans le fichier de configuration dans n'importe quel ordre."
#: ../Doc/library/configparser.rst:324
msgid ""
@ -220,6 +315,9 @@ msgid ""
"%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/"
"lumberjack`` as the value of ``my_dir``."
msgstr ""
"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie ``"
"%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/"
"lumberjack`` comme valeur pour ``my_dir``."
#: ../Doc/library/configparser.rst:332
msgid ""
@ -230,20 +328,30 @@ msgid ""
"`` part is omitted, interpolation defaults to the current section (and "
"possibly the default values from the special section)."
msgstr ""
"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, "
"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la "
"chaîne de formatage ``{section:option}}`` pour désigner une valeur "
"appartenant à une autre section. L'interpolation peut s'étendre sur "
"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, "
"l'interpolation utilise la section courante par défaut (et, le cas échéant, "
"les valeurs de la section par défaut spéciale)."
#: ../Doc/library/configparser.rst:339
msgid ""
"For example, the configuration specified above with basic interpolation, "
"would look like this with extended interpolation:"
msgstr ""
"Voici comment transformer la configuration ci-dessus avec la syntaxe "
"d'interpolation étendue :"
#: ../Doc/library/configparser.rst:349
msgid "Values from other sections can be fetched as well:"
msgstr ""
"Vous pouvez également récupérer des valeurs appartenant aux autres sections :"
#: ../Doc/library/configparser.rst:371
msgid "Mapping Protocol Access"
msgstr ""
msgstr "Protocole d'accès associatif"
#: ../Doc/library/configparser.rst:375
msgid ""
@ -252,6 +360,11 @@ msgid ""
"`configparser`, the mapping interface implementation is using the "
"``parser['section']['option']`` notation."
msgstr ""
"Le terme « protocole d'accès associatif » est utilisé pour décrire la "
"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il "
"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, "
"limplémentation du protocole utilise la notation ``parser['section']"
"['option']``."
#: ../Doc/library/configparser.rst:380
msgid ""
@ -261,6 +374,12 @@ msgid ""
"values are changed on a section proxy, they are actually mutated in the "
"original parser."
msgstr ""
"En particulier, ``parser['section']`` renvoie un mandataire vers les données "
"de la section correspondantes dans l'analyseur. Cela signifie que les "
"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la "
"demande. Plus important encore, lorsque les valeurs sont changées dans un "
"mandataire pour une section, elles sont en réalité changées dans l'analyseur "
"initial."
#: ../Doc/library/configparser.rst:386
msgid ""
@ -269,6 +388,11 @@ msgid ""
"`~collections.abc.MutableMapping` ABC. However, there are a few differences "
"that should be taken into account:"
msgstr ""
"Les objets du module :mod:`configparser` se comportent le plus possible "
"comme des vrais dictionnaires. L'interface est complète et suit les "
"définitions fournies par la classe abstraite :class:`~collections.abc."
"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de "
"différences :"
#: ../Doc/library/configparser.rst:391
msgid ""
@ -278,6 +402,11 @@ msgid ""
"default. At the same time, for a section that holds the key ``'a'``, both "
"expressions return ``True``::"
msgstr ""
"Par défaut, toutes les clés des sections sont accessibles sans respect de la "
"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie "
"uniquement les clés telles que transformées par la méthode ``optionxform``, "
"c'est-à-dire des clés transformées en minuscules. De même, pour une section "
"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::"
#: ../Doc/library/configparser.rst:399
msgid ""
@ -288,22 +417,30 @@ msgid ""
"deleting causes the default value to be visible again. Trying to delete a "
"default value causes a :exc:`KeyError`."
msgstr ""
"Toutes les sections incluent en plus les valeurs de la section "
"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la "
"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne "
"peuvent pas être supprimées de la section (car, techniquement, elles n'y "
"sont pas présentes). Si vous détruisez une valeur par défaut qui a été "
"écrasée dans une section, alors la valeur par défaut sera de nouveau "
"visible. Essayer de détruire une valeur par défaut lève l'exception :exc:"
"`KeyError`."
#: ../Doc/library/configparser.rst:406
msgid "``DEFAULTSECT`` cannot be removed from the parser:"
msgstr ""
msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::"
#: ../Doc/library/configparser.rst:408
msgid "trying to delete it raises :exc:`ValueError`,"
msgstr ""
msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;"
#: ../Doc/library/configparser.rst:410
msgid "``parser.clear()`` leaves it intact,"
msgstr ""
msgstr "appeler ``parser.clear()`` la laisse intacte ;"
#: ../Doc/library/configparser.rst:412
msgid "``parser.popitem()`` never returns it."
msgstr ""
msgstr "appeler ```parser.popitem()`` ne la renvoie jamais."
#: ../Doc/library/configparser.rst:414
msgid ""
@ -311,6 +448,10 @@ msgid ""
"fallback value. Note however that the section-level ``get()`` methods are "
"compatible both with the mapping protocol and the classic configparser API."
msgstr ""
"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est "
"**pas** une valeur de substitution. Notez cependant que les méthodes "
"``get()`` fournies par les sections sont compatibles à la fois avec le "
"protocole associatif et avec l'API classique de *configparser*."
#: ../Doc/library/configparser.rst:418
msgid ""
@ -321,6 +462,13 @@ msgid ""
"*value* pairs for a specified ``section``, with all interpolations expanded "
"(unless ``raw=True`` is provided)."
msgstr ""
"La méthode ``parser.items()`` est compatible avec le protocole d'accès "
"associatif et renvoie une liste de paires *section_name*, *section_proxy*, "
"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi "
"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans "
"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la "
"section spécifiée, en interprétant les interpolations (à moins d'utiliser "
"``raw=True``)."
#: ../Doc/library/configparser.rst:425
msgid ""
@ -328,10 +476,13 @@ msgid ""
"that subclasses overriding the original interface still should have mappings "
"working as expected."
msgstr ""
"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les "
"sous-classes qui écrasent des méthodes de l'interface originale se "
"comportent correctement du point de vue du protocole d'accès."
#: ../Doc/library/configparser.rst:431
msgid "Customizing Parser Behaviour"
msgstr ""
msgstr "Personnalisation du comportement de l'analyseur"
#: ../Doc/library/configparser.rst:433
msgid ""
@ -341,16 +492,25 @@ msgid ""
"dictated by historical background and it's very likely that you will want to "
"customize some of the features."
msgstr ""
"Il existe pratiquement autant de variations du format *INI* que "
"d'applications qui l'utilisent. Le module :mod:`configparser` fait son "
"possible pour gérer le plus grand nombre de variantes raisonnables du style "
"*INI*. Le comportement par défaut est principalement contraint par des "
"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire "
"de personnaliser certaines des fonctionnalités de ce module."
#: ../Doc/library/configparser.rst:439
msgid ""
"The most common way to change the way a specific config parser works is to "
"use the :meth:`__init__` options:"
msgstr ""
"La méthode la plus fréquemment utilisée pour changer la façon dont se "
"comporte un analyseur est dutiliser les options de la méthode :meth:"
"`__init__` :"
#: ../Doc/library/configparser.rst:442
msgid "*defaults*, default value: ``None``"
msgstr ""
msgstr "*defaults*, valeur par défaut : ``None``"
#: ../Doc/library/configparser.rst:444
msgid ""
@ -359,12 +519,20 @@ msgid ""
"concise configuration files that don't specify values which are the same as "
"the documented default."
msgstr ""
"Cette option accepte un dictionnaire de paires clé—valeurs qui seront "
"placées dans la section ``DEFAULT`` initialement. Ceci est une façon "
"élégante de prendre en charge des fichiers de configuration qui n'ont pas "
"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs "
"par défaut documentées."
#: ../Doc/library/configparser.rst:449
msgid ""
"Hint: if you want to specify default values for a specific section, use :"
"meth:`read_dict` before you read the actual file."
msgstr ""
"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de "
"configuration si vous voulez spécifier des valeurs par défaut pour une "
"section spécifique."
#: ../Doc/library/configparser.rst:452
msgid "*dict_type*, default value: :class:`collections.OrderedDict`"
@ -395,7 +563,7 @@ msgstr ""
#: ../Doc/library/configparser.rst:486
msgid "*allow_no_value*, default value: ``False``"
msgstr ""
msgstr "*allow_no_value*, valeur par défaut : ``False``"
#: ../Doc/library/configparser.rst:488
msgid ""
@ -404,10 +572,15 @@ msgid ""
"*allow_no_value* parameter to the constructor can be used to indicate that "
"such values should be accepted:"
msgstr ""
"Certains fichiers de configurations sont connus pour contenir des options "
"sans valeur associée, tout en se conformant à la syntaxe prise en charge par "
"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles "
"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la "
"construction de l'instance :"
#: ../Doc/library/configparser.rst:523
msgid "*delimiters*, default value: ``('=', ':')``"
msgstr ""
msgstr "*delimiters*, valeur par défaut : ``('=', ':')``"
#: ../Doc/library/configparser.rst:525
msgid ""
@ -415,20 +588,30 @@ msgid ""
"The first occurrence of a delimiting substring on a line is considered a "
"delimiter. This means values (but not keys) can contain the delimiters."
msgstr ""
"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une "
"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne "
"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent "
"contenir certains des délimiteurs (mais pas les clés)."
#: ../Doc/library/configparser.rst:529
msgid ""
"See also the *space_around_delimiters* argument to :meth:`ConfigParser."
"write`."
msgstr ""
"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:"
"`ConfigParser.write`."
#: ../Doc/library/configparser.rst:532
msgid "*comment_prefixes*, default value: ``('#', ';')``"
msgstr ""
"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', "
"';')``"
#: ../Doc/library/configparser.rst:534
msgid "*inline_comment_prefixes*, default value: ``None``"
msgstr ""
"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par "
"défaut : ``('#', ';')``"
#: ../Doc/library/configparser.rst:536
msgid ""
@ -439,12 +622,23 @@ msgid ""
"well). By default inline comments are disabled and ``'#'`` and ``';'`` are "
"used as prefixes for whole line comments."
msgstr ""
"Les préfixes de commentaire indiquent le début d'un commentaire valide au "
"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à "
"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les "
"préfixes de commentaires en ligne peuvent être utilisés après n'importe "
"quelle valeur valide (comme les noms des sections, les options et les lignes "
"vides). Par défaut, les commentaires en ligne sont désactivés et les "
"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide "
"sont `'#'`` et ``';'``."
#: ../Doc/library/configparser.rst:543
msgid ""
"In previous versions of :mod:`configparser` behaviour matched "
"``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``."
msgstr ""
"Les précédentes versions du module :mod:`configparser` se comportent comme "
"en utilisant ``comment_prefixes=('#',';')`` et "
"``inline_comment_prefixes=(';',)``."
#: ../Doc/library/configparser.rst:547
msgid ""
@ -455,10 +649,17 @@ msgid ""
"storing comment prefix characters at the beginning of a line in multiline "
"values is to interpolate the prefix, for example::"
msgstr ""
"Notez que les analyseurs ne prennent pas en charge l'échappement des "
"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* "
"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des "
"caractères utilisés comme préfixe de commentaire. Dans le doute, il est "
"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, "
"la seule façon de stocker des préfixes de commentaires au début d'une valeur "
"multi lignes est d'interpoler ceux-ci, par exemple ::"
#: ../Doc/library/configparser.rst:593
msgid "*strict*, default value: ``True``"
msgstr ""
msgstr "*scrict*, valeur par défaut : ``True``"
#: ../Doc/library/configparser.rst:595
msgid ""
@ -467,16 +668,23 @@ msgid ""
"meth:`read_string` or :meth:`read_dict`). It is recommended to use strict "
"parsers in new applications."
msgstr ""
"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou "
"option dupliquée lors de la lecture d'une source unique (lorsque :meth:"
"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il "
"est recommandé d'utiliser un mode de fonctionnement strict pour les "
"analyseurs employés par de nouvelles applications."
#: ../Doc/library/configparser.rst:600
msgid ""
"In previous versions of :mod:`configparser` behaviour matched "
"``strict=False``."
msgstr ""
"Les versions précédentes du module :mod:`configparser` se comportent comme "
"en utilisant ``strict=False``."
#: ../Doc/library/configparser.rst:604
msgid "*empty_lines_in_values*, default value: ``True``"
msgstr ""
msgstr "*empty_lines_in_values*, valeur par défaut : ``True``"
#: ../Doc/library/configparser.rst:606
msgid ""
@ -487,6 +695,13 @@ msgid ""
"when configuration files get big and complex, it is easy for the user to "
"lose track of the file structure. Take for instance:"
msgstr ""
"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs "
"lignes à partir du moment où elles sont plus indentées que la clé qui les "
"contient. Par défaut les analyseurs autorisent les lignes vides à faire "
"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent "
"être indentées de façon à rendre le fichier plus lisible. En conséquence, il "
"est probable que l'utilisateur perde de vue la structure du fichier lorsque "
"celui-ci devient long et complexe. Prenez par exemple :"
#: ../Doc/library/configparser.rst:621
msgid ""
@ -496,12 +711,20 @@ msgid ""
"This will make empty lines split keys every time. In the example above, it "
"would produce two keys, ``key`` and ``this``."
msgstr ""
"Ceci est particulièrement problématique si l'utilisateur a configuré son "
"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est "
"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à "
"moins que votre application en ait besoin. Dans ce cas, les lignes vides "
"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-"
"dessus, cela produit deux clés : ``key`` et ``this``."
#: ../Doc/library/configparser.rst:627
msgid ""
"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``"
"\"DEFAULT\"``)"
msgstr ""
"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` "
"(autrement dit : ``\"DEFAULT\"``)"
#: ../Doc/library/configparser.rst:630
msgid ""
@ -572,6 +795,12 @@ msgid ""
"``'off'``. You can override this by specifying a custom dictionary of "
"strings and their Boolean outcomes. For example:"
msgstr ""
"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les "
"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et "
"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, "
"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre "
"dictionnaire associant des chaînes de caractères à des valeurs booléennes. "
"Par exemple :"
#: ../Doc/library/configparser.rst:692
msgid ""

View File

@ -18,6 +18,8 @@ msgstr ""
msgid ""
":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts"
msgstr ""
":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur "
"l'instruction :keyword:`!with`"
#: ../Doc/library/contextlib.rst:7
msgid "**Source code:** :source:`Lib/contextlib.py`"
@ -29,6 +31,9 @@ msgid ""
"`with` statement. For more information see also :ref:`typecontextmanager` "
"and :ref:`context-managers`."
msgstr ""
"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :"
"keyword:`with`. Pour plus d'informations voir aussi :ref:"
"`typecontextmanager` et :ref:`context-managers`."
#: ../Doc/library/contextlib.rst:17
msgid "Utilities"
@ -36,7 +41,7 @@ msgstr "Utilitaires"
#: ../Doc/library/contextlib.rst:19
msgid "Functions and classes provided:"
msgstr ""
msgstr "Fonctions et classes fournies :"
#: ../Doc/library/contextlib.rst:23
msgid ""
@ -46,6 +51,12 @@ msgid ""
"__exit__` is an abstract method which by default returns ``None``. See also "
"the definition of :ref:`typecontextmanager`."
msgstr ""
":term:`Classe mère abstraite <abstract base class>` pour les classes qui "
"implémentent les méthodes :meth:`object.__enter__` et :meth:`object."
"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est "
"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode "
"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:"
"`typecontextmanager`."
#: ../Doc/library/contextlib.rst:34
msgid ""
@ -55,6 +66,12 @@ msgid ""
"__aexit__` is an abstract method which by default returns ``None``. See also "
"the definition of :ref:`async-context-managers`."
msgstr ""
":term:`Classe mère abstraite <abstract base class>` pour les classes qui "
"implémentent les méthodes :meth:`object.__aenter__` et :meth:`object."
"__aexit__`. Une implémentation par défaut de :meth:`object.__aenter__` est "
"fournie, qui renvoie ``self``, et :meth:`object.__aexit__` est une méthode "
"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:"
"`async-context-managers`."
#: ../Doc/library/contextlib.rst:46
msgid ""
@ -62,6 +79,10 @@ msgid ""
"function for :keyword:`with` statement context managers, without needing to "
"create a class or separate :meth:`__enter__` and :meth:`__exit__` methods."
msgstr ""
"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir "
"une fonction fabriquant des gestionnaires de contexte à utiliser avec :"
"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:"
"`__enter__` et :meth:`__exit__` séparées."
#: ../Doc/library/contextlib.rst:50
msgid ""
@ -70,12 +91,18 @@ msgid ""
"and doesn't implement a ``close()`` method for use with ``contextlib."
"closing``"
msgstr ""
"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, "
"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont "
"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode "
"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``"
#: ../Doc/library/contextlib.rst:54
msgid ""
"An abstract example would be the following to ensure correct resource "
"management::"
msgstr ""
"L'exemple abstrait suivant présente comment assurer une gestion correcte des "
"ressources ::"
#: ../Doc/library/contextlib.rst:73
msgid ""
@ -83,6 +110,10 @@ msgid ""
"called. This iterator must yield exactly one value, which will be bound to "
"the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any."
msgstr ""
"La fonction à décorer doit renvoyer un :term:`générateur <generator>`-"
"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une "
"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la "
"clause :keyword:`!as` si précisée."
#: ../Doc/library/contextlib.rst:77
msgid ""
@ -99,6 +130,18 @@ msgid ""
"handled, and execution will resume with the statement immediately following "
"the :keyword:`!with` statement."
msgstr ""
"Au moment où le générateur produit une valeur, le bloc imbriqué sous "
"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris "
"après la sortie du bloc. Si une exception non gérée survient dans le bloc, "
"elle est relayée dans le générateur au niveau de l'instruction *yield*. "
"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…\\ :keyword:"
"`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y a), ou vous "
"assurer qu'un nettoyage a bien lieu. Si une exception est attrapée dans "
"l'unique but d'être journalisée ou d'effectuer une action particulière "
"(autre que supprimer entièrement l'exception), le générateur se doit de la "
"relayer. Autrement le générateur gestionnaire de contexte doit indiquer à "
"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution "
"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`."
#: ../Doc/library/contextlib.rst:89
msgid ""
@ -110,16 +153,26 @@ msgid ""
"that context managers support multiple invocations in order to be used as "
"decorators)."
msgstr ""
"Le décorateur :func:`contextmanager` utilise la classe :class:"
"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée "
"puissent être utilisés aussi bien en tant que décorateurs qu'avec des "
"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une "
"nouvelle instance du générateur est créée à chaque appel de la fonction "
"(cela permet aux gestionnaires de contexte à usage unique créés par :func:"
"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs "
"fois afin d'être utilisés comme décorateurs)."
#: ../Doc/library/contextlib.rst:96
msgid "Use of :class:`ContextDecorator`."
msgstr ""
msgstr "Utilisation de la classe :class:`ContextDecorator`."
#: ../Doc/library/contextlib.rst:102
msgid ""
"Similar to :func:`~contextlib.contextmanager`, but creates an :ref:"
"`asynchronous context manager <async-context-managers>`."
msgstr ""
"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:"
"`gestionnaire de contexte asynchrone <async-context-managers>`."
#: ../Doc/library/contextlib.rst:105
msgid ""
@ -129,6 +182,12 @@ msgid ""
"`__aexit__` methods. It must be applied to an :term:`asynchronous generator` "
"function."
msgstr ""
"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir "
"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser "
"avec :keyword:`async with`, sans nécessiter de créer une classe ou des "
"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur "
"doit être appliqué à une fonction renvoyant un :term:`asynchronous "
"generator`."
#: ../Doc/library/contextlib.rst:111
msgid "A simple example::"
@ -139,16 +198,20 @@ msgid ""
"Return a context manager that closes *thing* upon completion of the block. "
"This is basically equivalent to::"
msgstr ""
"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. "
"C'est essentiellement équivalent à ::"
#: ../Doc/library/contextlib.rst:144
msgid "And lets you write code like this::"
msgstr ""
msgstr "Et cela vous permet d'écrire du code tel que ::"
#: ../Doc/library/contextlib.rst:153
msgid ""
"without needing to explicitly close ``page``. Even if an error occurs, "
"``page.close()`` will be called when the :keyword:`with` block is exited."
msgstr ""
"sans besoin de fermer explicitement ``page``. Même si une erreur survient, "
"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`."
#: ../Doc/library/contextlib.rst:161
msgid ""
@ -156,10 +219,13 @@ msgid ""
"otherwise does nothing. It is intended to be used as a stand-in for an "
"optional context manager, for example::"
msgstr ""
"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie "
"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme "
"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::"
#: ../Doc/library/contextlib.rst:175
msgid "An example using *enter_result*::"
msgstr ""
msgstr "Un exemple utilisant *enter_result* ::"
#: ../Doc/library/contextlib.rst:193
msgid ""
@ -167,6 +233,9 @@ msgid ""
"they occur in the body of a with statement and then resumes execution with "
"the first statement following the end of the with statement."
msgstr ""
"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions "
"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend "
"l'exécution sur la première instruction qui suit la fin du bloc *with*."
#: ../Doc/library/contextlib.rst:197
msgid ""
@ -175,6 +244,10 @@ msgid ""
"silently continuing with program execution is known to be the right thing to "
"do."
msgstr ""
"Comme pour tous les mécanismes qui suppriment complètement les exceptions, "
"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas "
"très spécifiques d'erreurs où il est certain que continuer silencieusement "
"l'exécution du programme est la bonne chose à faire."
#: ../Doc/library/contextlib.rst:202
msgid "For example::"
@ -187,19 +260,23 @@ msgstr "Ce code est équivalent à ::"
#: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263
#: ../Doc/library/contextlib.rst:273
msgid "This context manager is :ref:`reentrant <reentrant-cms>`."
msgstr ""
msgstr "Ce gestionnaire de contexte est :ref:`réentrant <reentrant-cms>`."
#: ../Doc/library/contextlib.rst:231
msgid ""
"Context manager for temporarily redirecting :data:`sys.stdout` to another "
"file or file-like object."
msgstr ""
"Gestionnaire de contexte servant à rediriger temporairement :data:`sys."
"stdout` vers un autre fichier ou objet fichier-compatible."
#: ../Doc/library/contextlib.rst:234
msgid ""
"This tool adds flexibility to existing functions or classes whose output is "
"hardwired to stdout."
msgstr ""
"Cet outil ajoute une certaine flexibilité aux fonctions ou classes "
"existantes dont la sortie est envoyée vers la sortie standard."
#: ../Doc/library/contextlib.rst:237
msgid ""
@ -207,16 +284,21 @@ msgid ""
"You can capture that output in a string by redirecting the output to an :"
"class:`io.StringIO` object::"
msgstr ""
"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys."
"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en "
"la redirigeant vers un objet :class:`io.StringIO` ::"
#: ../Doc/library/contextlib.rst:246
msgid ""
"To send the output of :func:`help` to a file on disk, redirect the output to "
"a regular file::"
msgstr ""
"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, "
"redirigez-la sur un fichier normal ::"
#: ../Doc/library/contextlib.rst:253
msgid "To send the output of :func:`help` to *sys.stderr*::"
msgstr ""
msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::"
#: ../Doc/library/contextlib.rst:258
msgid ""
@ -225,17 +307,27 @@ msgid ""
"applications. It also has no effect on the output of subprocesses. However, "
"it is still a useful approach for many utility scripts."
msgstr ""
"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce "
"gestionnaire de contexte n'est pas adapté à une utilisation dans le code "
"d'une bibliothèque ni dans la plupart des applications à plusieurs fils "
"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. "
"Cependant, cela reste une approche utile pour beaucoup de scripts "
"utilitaires."
#: ../Doc/library/contextlib.rst:270
msgid ""
"Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys."
"stderr` to another file or file-like object."
msgstr ""
"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys."
"stderr` vers un autre fichier ou objet fichier-compatible."
#: ../Doc/library/contextlib.rst:280
msgid ""
"A base class that enables a context manager to also be used as a decorator."
msgstr ""
"Une classe mère qui permet à un gestionnaire de contexte d'être aussi "
"utilisé comme décorateur."
#: ../Doc/library/contextlib.rst:282
msgid ""
@ -243,37 +335,50 @@ msgid ""
"``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional "
"exception handling even when used as a decorator."
msgstr ""
"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent "
"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` "
"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en "
"décorateur."
#: ../Doc/library/contextlib.rst:286
msgid ""
"``ContextDecorator`` is used by :func:`contextmanager`, so you get this "
"functionality automatically."
msgstr ""
"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous "
"bénéficiez automatiquement de cette fonctionnalité."
#: ../Doc/library/contextlib.rst:289
msgid "Example of ``ContextDecorator``::"
msgstr ""
msgstr "Exemple de ``ContextDecorator`` ::"
#: ../Doc/library/contextlib.rst:318
msgid ""
"This change is just syntactic sugar for any construct of the following form::"
msgstr ""
"Ce changement est simplement un sucre syntaxique pour les constructions de "
"la forme suivante ::"
#: ../Doc/library/contextlib.rst:324
msgid "``ContextDecorator`` lets you instead write::"
msgstr ""
msgstr "``ContextDecorator`` vous permet d'écrire à la place ::"
#: ../Doc/library/contextlib.rst:330
msgid ""
"It makes it clear that the ``cm`` applies to the whole function, rather than "
"just a piece of it (and saving an indentation level is nice, too)."
msgstr ""
"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas "
"seulement à un morceau en particulier (et gagner un niveau d'indentation est "
"toujours appréciable)."
#: ../Doc/library/contextlib.rst:333
msgid ""
"Existing context managers that already have a base class can be extended by "
"using ``ContextDecorator`` as a mixin class::"
msgstr ""
"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent "
"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::"
#: ../Doc/library/contextlib.rst:346
msgid ""
@ -282,6 +387,11 @@ msgid ""
"statements. If this is not the case, then the original construct with the "
"explicit :keyword:`!with` statement inside the function should be used."
msgstr ""
"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, "
"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans "
"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la "
"construction d'origine avec de multiples instructions :keyword:`!with` au "
"sein de la fonction doit être utilisée."
#: ../Doc/library/contextlib.rst:356
msgid ""
@ -289,12 +399,18 @@ msgid ""
"combine other context managers and cleanup functions, especially those that "
"are optional or otherwise driven by input data."
msgstr ""
"Gestionnaire de contexte conçu pour simplifier le fait de combiner "
"programmatiquement d'autres gestionnaires de contexte et fonctions de "
"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des "
"données d'entrée."
#: ../Doc/library/contextlib.rst:360
msgid ""
"For example, a set of files may easily be handled in a single with statement "
"as follows::"
msgstr ""
"Par exemple, un ensemble de fichiers peut facilement être géré dans une "
"unique instruction *with* comme suit ::"
#: ../Doc/library/contextlib.rst:369
msgid ""
@ -303,6 +419,11 @@ msgid ""
"at the end of a :keyword:`with` statement). Note that callbacks are *not* "
"invoked implicitly when the context stack instance is garbage collected."
msgstr ""
"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) "
"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée "
"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez "
"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de "
"la pile de contextes est collectée par le ramasse-miettes."
#: ../Doc/library/contextlib.rst:374
msgid ""
@ -310,6 +431,9 @@ msgid ""
"resources in their ``__init__`` method (such as file objects) can be handled "
"correctly."
msgstr ""
"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui "
"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les "
"objets-fichiers) puissent être gérés correctement."
#: ../Doc/library/contextlib.rst:378
msgid ""
@ -320,6 +444,12 @@ msgid ""
"exception, then outer callbacks will be passed arguments based on that "
"updated state."
msgstr ""
"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre "
"inverse d'enregistrement, cela revient au même que si de multiples blocs :"
"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions "
"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction "
"de rappel intérieure supprime ou remplace une exception, alors les fonctions "
"extérieures reçoivent des arguments basés sur ce nouvel état."
#: ../Doc/library/contextlib.rst:385
msgid ""
@ -328,6 +458,10 @@ msgid ""
"foundation for higher level context managers that manipulate the exit stack "
"in application specific ways."
msgstr ""
"C'est une *API* relativement bas-niveau qui s'occupe de dérouler "
"correctement la pile des appels de sortie. Elle fournit une base adaptée "
"pour des gestionnaires de contexte de plus haut niveau qui manipulent la "
"pile de sortie de manière spécifique à l'application."
#: ../Doc/library/contextlib.rst:394
msgid ""
@ -335,16 +469,24 @@ msgid ""
"callback stack. The return value is the result of the context manager's own :"
"meth:`__enter__` method."
msgstr ""
"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:"
"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la "
"méthode :meth:`__enter__` du gestionnaire de contexte donné."
#: ../Doc/library/contextlib.rst:398
msgid ""
"These context managers may suppress exceptions just as they normally would "
"if used directly as part of a :keyword:`with` statement."
msgstr ""
"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le "
"feraient normalement s'ils étaient utilisés directement derrière une "
"instruction :keyword:`with`."
#: ../Doc/library/contextlib.rst:403
msgid "Adds a context manager's :meth:`__exit__` method to the callback stack."
msgstr ""
"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile "
"d'appels."
#: ../Doc/library/contextlib.rst:405
msgid ""
@ -352,6 +494,9 @@ msgid ""
"an :meth:`__enter__` implementation with a context manager's own :meth:"
"`__exit__` method."
msgstr ""
"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée "
"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la "
"propre méthode :meth:`__exit__` d'un gestionnaire de contexte."
#: ../Doc/library/contextlib.rst:409
msgid ""
@ -359,36 +504,52 @@ msgid ""
"a callback with the same signature as a context manager's :meth:`__exit__` "
"method and adds it directly to the callback stack."
msgstr ""
"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume "
"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :"
"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à "
"la pile d'appels."
#: ../Doc/library/contextlib.rst:413
msgid ""
"By returning true values, these callbacks can suppress exceptions the same "
"way context manager :meth:`__exit__` methods can."
msgstr ""
"En retournant des valeurs vraies, ces fonctions peuvent supprimer des "
"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` "
"des gestionnaires de contexte."
#: ../Doc/library/contextlib.rst:416
msgid ""
"The passed in object is returned from the function, allowing this method to "
"be used as a function decorator."
msgstr ""
"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la "
"méthode d'être utilisée comme décorateur de fonction."
#: ../Doc/library/contextlib.rst:421
msgid ""
"Accepts an arbitrary callback function and arguments and adds it to the "
"callback stack."
msgstr ""
"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des "
"fonctions de rappel."
#: ../Doc/library/contextlib.rst:424
msgid ""
"Unlike the other methods, callbacks added this way cannot suppress "
"exceptions (as they are never passed the exception details)."
msgstr ""
"À la différence des autres méthodes, les fonctions de rappel ajoutées de "
"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne "
"reçoivent jamais les détails de l'exception)."
#: ../Doc/library/contextlib.rst:427
msgid ""
"The passed in callback is returned from the function, allowing this method "
"to be used as a function decorator."
msgstr ""
"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à "
"la méthode d'être utilisée comme décorateur de fonction."
#: ../Doc/library/contextlib.rst:432
msgid ""
@ -397,12 +558,18 @@ msgid ""
"now be invoked when the new stack is closed (either explicitly or implicitly "
"at the end of a :keyword:`with` statement)."
msgstr ""
"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et "
"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à "
"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close "
"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)."
#: ../Doc/library/contextlib.rst:437
msgid ""
"For example, a group of files can be opened as an \"all or nothing\" "
"operation as follows::"
msgstr ""
"Par exemple, un groupe de fichiers peut être ouvert comme une opération "
 tout ou rien » comme suit ::"
#: ../Doc/library/contextlib.rst:451
msgid ""
@ -410,6 +577,10 @@ msgid ""
"order of registration. For any context managers and exit callbacks "
"registered, the arguments passed in will indicate that no exception occurred."
msgstr ""
"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel "
"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte "
"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune "
"exception n'est survenue."
#: ../Doc/library/contextlib.rst:458
msgid ""
@ -417,49 +588,62 @@ msgid ""
"class:`ExitStack`, that supports combining both synchronous and asynchronous "
"context managers, as well as having coroutines for cleanup logic."
msgstr ""
"Un :ref:`gestionnaire de contexte asynchrone <async-context-managers>`, "
"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires "
"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines "
"pour la logique de nettoyage."
#: ../Doc/library/contextlib.rst:463
msgid ""
"The :meth:`close` method is not implemented, :meth:`aclose` must be used "
"instead."
msgstr ""
"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt "
"être utilisée."
#: ../Doc/library/contextlib.rst:468
msgid ""
"Similar to :meth:`enter_context` but expects an asynchronous context manager."
msgstr ""
"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte "
"asynchrone."
#: ../Doc/library/contextlib.rst:473
msgid ""
"Similar to :meth:`push` but expects either an asynchronous context manager "
"or a coroutine function."
msgstr ""
"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte "
"asynchrone soit une fonction coroutine."
#: ../Doc/library/contextlib.rst:478
msgid "Similar to :meth:`callback` but expects a coroutine function."
msgstr ""
msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine."
#: ../Doc/library/contextlib.rst:482
msgid "Similar to :meth:`close` but properly handles awaitables."
msgstr ""
"Similaire à :meth:`close` mais gère correctement les tâches asynchrones."
#: ../Doc/library/contextlib.rst:484
msgid "Continuing the example for :func:`asynccontextmanager`::"
msgstr ""
msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::"
#: ../Doc/library/contextlib.rst:496
msgid "Examples and Recipes"
msgstr ""
msgstr "Exemples et Recettes"
#: ../Doc/library/contextlib.rst:498
msgid ""
"This section describes some examples and recipes for making effective use of "
"the tools provided by :mod:`contextlib`."
msgstr ""
"Cette section décrit quelques exemples et recettes pour décrire une "
"utilisation réelle des outils fournis par :mod:`contextlib`."
#: ../Doc/library/contextlib.rst:503
msgid "Supporting a variable number of context managers"
msgstr ""
msgstr "Gérer un nombre variable de gestionnaires de contexte"
#: ../Doc/library/contextlib.rst:505
msgid ""
@ -470,6 +654,13 @@ msgid ""
"input (such as opening a user specified collection of files), or from some "
"of the context managers being optional::"
msgstr ""
"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la "
"documentation de la classe : gérer un nombre variable de gestionnaires de "
"contexte et d'autres opérations de nettoyage en une unique instruction :"
"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de "
"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une "
"collection spécifique de fichiers de l'utilisateur), ou de certains "
"gestionnaires de contexte qui peuvent être optionnels ::"
#: ../Doc/library/contextlib.rst:520
msgid ""
@ -477,10 +668,13 @@ msgid ""
"statements to manage arbitrary resources that don't natively support the "
"context management protocol."
msgstr ""
"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les "
"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne "
"gèrent pas nativement le protocole des gestionnaires de contexte."
#: ../Doc/library/contextlib.rst:526
msgid "Catching exceptions from ``__enter__`` methods"
msgstr ""
msgstr "Attraper des exceptions depuis les méthodes ``__enter__``"
#: ../Doc/library/contextlib.rst:528
msgid ""
@ -490,6 +684,12 @@ msgid ""
"By using :class:`ExitStack` the steps in the context management protocol can "
"be separated slightly in order to allow this::"
msgstr ""
"Il est occasionnellement souhaitable d'attraper les exceptions depuis "
"l'implémentation d'une méthode ``__enter__``, *sans* attraper par "
"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de "
"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:"
"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent "
"être légèrement séparées pour permettre le code suivant ::"
#: ../Doc/library/contextlib.rst:543
msgid ""
@ -501,10 +701,18 @@ msgid ""
"to handle various situations that can't be handled directly in a :keyword:"
"`with` statement."
msgstr ""
"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-"
"jacente devrait fournir une interface directe de gestion des ressources à "
"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:"
"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet "
"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion "
"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la "
"gestion de plusieurs situations qui ne peuvent pas être traitées directement "
"dans une instruction :keyword:`with`."
#: ../Doc/library/contextlib.rst:553
msgid "Cleaning up in an ``__enter__`` implementation"
msgstr ""
msgstr "Nettoyer dans une méthode ``__enter__``"
#: ../Doc/library/contextlib.rst:555
msgid ""
@ -512,6 +720,9 @@ msgid ""
"useful in cleaning up an already allocated resource if later steps in the :"
"meth:`__enter__` implementation fail."
msgstr ""
"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode "
"peut être utile pour nettoyer une ressource déjà allouée si les dernières "
"étapes de l'implémentation de :meth:`__enter__` échouent."
#: ../Doc/library/contextlib.rst:559
msgid ""
@ -519,10 +730,13 @@ msgid ""
"acquisition and release functions, along with an optional validation "
"function, and maps them to the context management protocol::"
msgstr ""
"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions "
"d'acquisition de ressources et de libération, avec une méthode de validation "
"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::"
#: ../Doc/library/contextlib.rst:599
msgid "Replacing any use of ``try-finally`` and flag variables"
msgstr ""
msgstr "Remplacer un ``try-finally`` avec une option variable"
#: ../Doc/library/contextlib.rst:601
msgid ""
@ -531,6 +745,10 @@ msgid ""
"should be executed. In its simplest form (that can't already be handled just "
"by using an ``except`` clause instead), it looks something like this::"
msgstr ""
"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une "
"option pour indiquer si le corps de la clause ``finally`` doit être exécuté "
"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec "
"juste une clause ``except``), cela ressemble à ::"
#: ../Doc/library/contextlib.rst:615
msgid ""
@ -538,6 +756,10 @@ msgid ""
"development and review, because the setup code and the cleanup code can end "
"up being separated by arbitrarily long sections of code."
msgstr ""
"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut "
"poser problème pour le développement et la revue, parce que beaucoup de "
"codes d'installation et de nettoyage peuvent finir par être séparés par des "
"sections de code arbitrairement longues."
#: ../Doc/library/contextlib.rst:619
msgid ""
@ -545,18 +767,25 @@ msgid ""
"execution at the end of a ``with`` statement, and then later decide to skip "
"executing that callback::"
msgstr ""
":class:`ExitStack` rend possible de plutôt enregistrer une fonction de "
"rappel pour être exécutée à la fin d'une instruction ``with``, et décider "
"ensuite de passer l'exécution de cet appel ::"
#: ../Doc/library/contextlib.rst:631
msgid ""
"This allows the intended cleanup up behaviour to be made explicit up front, "
"rather than requiring a separate flag variable."
msgstr ""
"Cela permet de rendre explicite dès le départ le comportement de nettoyage "
"attendu, plutôt que de nécessiter une option séparée."
#: ../Doc/library/contextlib.rst:634
msgid ""
"If a particular application uses this pattern a lot, it can be simplified "
"even further by means of a small helper class::"
msgstr ""
"Si une application particulière utilise beaucoup ce modèle, cela peut-être "
"simplifié encore plus au moyen d'une petite classe d'aide ::"
#: ../Doc/library/contextlib.rst:652
msgid ""
@ -564,6 +793,10 @@ msgid ""
"function, then it is still possible to use the decorator form of :meth:"
"`ExitStack.callback` to declare the resource cleanup in advance::"
msgstr ""
"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans "
"une fonction autonome, il est possible d'utiliser le décorateur :meth:"
"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en "
"avance ::"
#: ../Doc/library/contextlib.rst:667
msgid ""
@ -571,16 +804,24 @@ msgid ""
"this way cannot take any parameters. Instead, any resources to be released "
"must be accessed as closure variables."
msgstr ""
"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée "
"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer "
"doivent être récupérées depuis l'extérieur comme des variables de fermeture "
"(*closure*)."
#: ../Doc/library/contextlib.rst:673
msgid "Using a context manager as a function decorator"
msgstr ""
"Utiliser un gestionnaire de contexte en tant que décorateur de fonction"
#: ../Doc/library/contextlib.rst:675
msgid ""
":class:`ContextDecorator` makes it possible to use a context manager in both "
"an ordinary ``with`` statement and also as a function decorator."
msgstr ""
":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de "
"contexte à la fois ordinairement avec une instruction ``with`` ou comme un "
"décorateur de fonction."
#: ../Doc/library/contextlib.rst:678
msgid ""
@ -590,14 +831,22 @@ msgid ""
"task, inheriting from :class:`ContextDecorator` provides both capabilities "
"in a single definition::"
msgstr ""
"Par exemple, il est parfois utile d'emballer les fonctions ou blocs "
"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution "
"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un "
"gestionnaire de contexte pour la même tâche, hériter de :class:"
"`ContextDecorator` fournit les deux fonctionnalités en une seule "
"définition ::"
#: ../Doc/library/contextlib.rst:699
msgid "Instances of this class can be used as both a context manager::"
msgstr ""
"Les instances de cette classe peuvent être utilisées comme gestionnaires de "
"contexte ::"
#: ../Doc/library/contextlib.rst:705
msgid "And also as a function decorator::"
msgstr ""
msgstr "Et comme décorateurs de fonctions ::"
#: ../Doc/library/contextlib.rst:712
msgid ""
@ -606,6 +855,10 @@ msgid ""
"`__enter__`. If that value is needed, then it is still necessary to use an "
"explicit ``with`` statement."
msgstr ""
"Notez qu'il y a une autre limitation en utilisant les gestionnaires de "
"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur "
"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut "
"utiliser explicitement une instruction ``with``."
#: ../Doc/library/contextlib.rst:720
msgid ":pep:`343` - The \"with\" statement"
@ -621,7 +874,7 @@ msgstr ""
#: ../Doc/library/contextlib.rst:726
msgid "Single use, reusable and reentrant context managers"
msgstr ""
msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants"
#: ../Doc/library/contextlib.rst:728
msgid ""
@ -630,6 +883,11 @@ msgid ""
"managers must be created afresh each time they're used - attempting to use "
"them a second time will trigger an exception or otherwise not work correctly."
msgstr ""
"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne "
"leur permet que d'être utilisés une fois avec une instruction :keyword:"
"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés "
"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois "
"lève une exception ou ne fonctionne pas correctement."
#: ../Doc/library/contextlib.rst:734
msgid ""
@ -637,6 +895,10 @@ msgid ""
"context managers directly in the header of the :keyword:`with` statement "
"where they are used (as shown in all of the usage examples above)."
msgstr ""
"Cette limitation commune signifie qu'il est généralement conseillé de créer "
"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:"
"`with` où ils sont utilisés (comme montré dans tous les exemples "
"d'utilisation au-dessus)."
#: ../Doc/library/contextlib.rst:738
msgid ""
@ -644,6 +906,10 @@ msgid ""
"first :keyword:`with` statement will close the file, preventing any further "
"IO operations using that file object."
msgstr ""
"Les fichiers sont un exemple de gestionnaires de contexte étant "
"effectivement à usage unique, puisque la première instruction :keyword:"
"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie "
"d'être exécutées sur ce fichier."
#: ../Doc/library/contextlib.rst:742
msgid ""
@ -651,10 +917,13 @@ msgid ""
"context managers, and will complain about the underlying generator failing "
"to yield if an attempt is made to use them a second time::"
msgstr ""
"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à "
"usage unique, et se plaindront du fait que le générateur sous-jacent ne "
"produise plus de valeur si vous essayez de les utiliser une seconde fois ::"
#: ../Doc/library/contextlib.rst:770
msgid "Reentrant context managers"
msgstr ""
msgstr "Gestionnaires de contexte réentrants"
#: ../Doc/library/contextlib.rst:772
msgid ""
@ -663,6 +932,11 @@ msgid ""
"may also be used *inside* a :keyword:`!with` statement that is already using "
"the same context manager."
msgstr ""
"Certains gestionnaires de contexte plus sophistiqués peuvent être "
 réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être "
"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à "
"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même "
"gestionnaire de contexte."
#: ../Doc/library/contextlib.rst:777
msgid ""
@ -670,6 +944,9 @@ msgid ""
"are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple "
"example of reentrant use::"
msgstr ""
":class:`threading.RLock` est un exemple de gestionnaire de contexte "
"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. "
"Voici un très simple exemple d'utilisation réentrante ::"
#: ../Doc/library/contextlib.rst:796
msgid ""
@ -677,6 +954,9 @@ msgid ""
"functions calling each other and hence be far more complicated than this "
"example."
msgstr ""
"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs "
"fonctions s'entre-appelant, et donc être bien plus compliqués que cet "
"exemple."
#: ../Doc/library/contextlib.rst:800
msgid ""
@ -685,10 +965,14 @@ msgid ""
"as it makes a global modification to the system state by binding :data:`sys."
"stdout` to a different stream."
msgstr ""
"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:"
"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, "
"puisqu'il effectue des changements globaux sur l'état du système en "
"branchant :data:`sys.stdout` sur différents flux."
#: ../Doc/library/contextlib.rst:809
msgid "Reusable context managers"
msgstr ""
msgstr "Gestionnaires de contexte réutilisables"
#: ../Doc/library/contextlib.rst:811
msgid ""
@ -699,6 +983,14 @@ msgid ""
"will fail (or otherwise not work correctly) if the specific context manager "
"instance has already been used in a containing with statement."
msgstr ""
"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants "
"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus "
"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires "
"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de "
"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront "
"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de "
"contexte référencée a déjà été utilisée dans une instruction *with* "
"englobante."
#: ../Doc/library/contextlib.rst:818
msgid ""
@ -706,6 +998,9 @@ msgid ""
"context manager (for a reentrant lock, it is necessary to use :class:"
"`threading.RLock` instead)."
msgstr ""
":class:`threading.Lock` est un exemple de gestionnaire de contexte "
"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la "
"place utiliser :class:`threading.RLock`)."
#: ../Doc/library/contextlib.rst:822
msgid ""
@ -713,6 +1008,10 @@ msgid ""
"`ExitStack`, as it invokes *all* currently registered callbacks when leaving "
"any with statement, regardless of where those callbacks were added::"
msgstr ""
"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant "
"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel "
"actuellement enregistrées en quittant l'instruction *with*, sans regarder où "
"ces fonctions ont été ajoutées ::"
#: ../Doc/library/contextlib.rst:853
msgid ""
@ -721,9 +1020,15 @@ msgid ""
"cause the stack to be cleared at the end of the innermost with statement, "
"which is unlikely to be desirable behaviour."
msgstr ""
"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre "
"plusieurs instructions *with* fonctionne correctement, mais essayer de les "
"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce "
"qui n'est probablement pas le comportement voulu."
#: ../Doc/library/contextlib.rst:858
msgid ""
"Using separate :class:`ExitStack` instances instead of reusing a single "
"instance avoids that problem::"
msgstr ""
"Pour éviter ce problème, utilisez des instances différentes de :class:"
"`ExitStack` plutôt qu'une seule instance ::"

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/contextvars.rst:2
msgid ":mod:`contextvars` --- Context Variables"
msgstr ""
msgstr ":mod:`contextvars` — Variables de contexte"
#: ../Doc/library/contextvars.rst:11
msgid ""
@ -26,6 +26,12 @@ msgid ""
"the :class:`~contextvars.Context` class should be used to manage the current "
"context in asynchronous frameworks."
msgstr ""
"Ce module fournit des API pour gérer, stocker et accéder à l'état local de "
"contexte. La classe :class:`~contextvars.ContextVar` est utilisée pour "
"déclarer et travailler avec les *Variables de contexte*. La fonction :func:"
"`~contextvars.copy_context` et la classe :class:`~contextvars.Context` "
"doivent être utilisées pour la gestion du contexte actuel dans les "
"cadriciels asynchrones."
#: ../Doc/library/contextvars.rst:17
msgid ""
@ -33,23 +39,31 @@ msgid ""
"func:`threading.local()` to prevent their state from bleeding to other code "
"unexpectedly, when used in concurrent code."
msgstr ""
"Les gestionnaires de contexte, quand ils ont un état et quand ils sont "
"utilisés dans du code s'exécutant de manière concurrente, doivent utiliser "
"les variables de contexte au lieu de :func:`threading.local()` pour empêcher "
"que leur état ne perturbe un autre fil de manière inattendue."
#: ../Doc/library/contextvars.rst:21
msgid "See also :pep:`567` for additional details."
msgstr ""
msgstr "Voir aussi :pep:`567` pour plus de détails."
#: ../Doc/library/contextvars.rst:27
msgid "Context Variables"
msgstr ""
msgstr "Variables de contexte"
#: ../Doc/library/contextvars.rst:31
msgid "This class is used to declare a new Context Variable, e.g.::"
msgstr ""
"Cette classe est utilisée pour déclarer une nouvelle variable de contexte, "
"p. ex. ::"
#: ../Doc/library/contextvars.rst:35
msgid ""
"The required *name* parameter is used for introspection and debug purposes."
msgstr ""
"Le paramètre requis *name* est utilisé à des fins d'introspection et de "
"débogage."
#: ../Doc/library/contextvars.rst:38
msgid ""
@ -57,6 +71,8 @@ msgid ""
"`ContextVar.get` when no value for the variable is found in the current "
"context."
msgstr ""
"Le paramètre nommé *default* est renvoyé par :meth:`ContextVar.get` quand "
"aucune valeur n'est trouvée dans le contexte actuel pour la variable."
#: ../Doc/library/contextvars.rst:42
msgid ""
@ -65,57 +81,77 @@ msgid ""
"context variables which prevents context variables from being properly "
"garbage collected."
msgstr ""
"**Important :** les variables de contexte doivent être créées au plus haut "
"niveau du module et jamais dans des fermetures (*closures*). Les objets :"
"class:`Context` maintiennent des références fortes aux variables de contexte "
"ce qui empêche que les variables de contexte soient correctement nettoyées "
"par le ramasse-miette."
#: ../Doc/library/contextvars.rst:49
msgid "The name of the variable. This is a read-only property."
msgstr ""
msgstr "Nom de la variable. Cette propriété est en lecture seule."
#: ../Doc/library/contextvars.rst:55
msgid "Return a value for the context variable for the current context."
msgstr ""
msgstr "Renvoie la valeur de la variable de contexte pour le contexte actuel."
#: ../Doc/library/contextvars.rst:57
msgid ""
"If there is no value for the variable in the current context, the method "
"will:"
msgstr ""
"S'il n'y a pas de valeur pour la variable dans le contexte actuel, la "
"méthode :"
#: ../Doc/library/contextvars.rst:60
msgid ""
"return the value of the *default* argument of the method, if provided; or"
msgstr ""
"renvoie la valeur de l'argument *default* passé à la méthode, s'il a été "
"fourni ;"
#: ../Doc/library/contextvars.rst:63
msgid ""
"return the default value for the context variable, if it was created with "
"one; or"
msgstr ""
"ou renvoie la valeur par défaut de la variable de contexte, si elle a été "
"créée avec une valeur par défaut ;"
#: ../Doc/library/contextvars.rst:66
msgid "raise a :exc:`LookupError`."
msgstr ""
msgstr "ou lève une erreur :exc:`LookupError`."
#: ../Doc/library/contextvars.rst:70
msgid ""
"Call to set a new value for the context variable in the current context."
msgstr ""
"Assigne une nouvelle valeur à la variable de contexte dans le contexte "
"actuel."
#: ../Doc/library/contextvars.rst:73
msgid ""
"The required *value* argument is the new value for the context variable."
msgstr ""
"L'argument requis *value* est la nouvelle valeur pour la variable de "
"contexte."
#: ../Doc/library/contextvars.rst:76
msgid ""
"Returns a :class:`~contextvars.Token` object that can be used to restore the "
"variable to its previous value via the :meth:`ContextVar.reset` method."
msgstr ""
"Renvoie un objet :class:`~contextvars.Token` qui peut être utilisé pour "
"rétablir la variable à sa valeur précédente par la méthode :meth:`ContextVar."
"reset`."
#: ../Doc/library/contextvars.rst:82
msgid ""
"Reset the context variable to the value it had before the :meth:`ContextVar."
"set` that created the *token* was used."
msgstr ""
"Réinitialise la variable de contexte à la valeur qu'elle avait avant l'appel "
"de :meth:`ContextVar.set` qui a créé le *token*."
#: ../Doc/library/contextvars.rst:85
msgid "For example::"
@ -127,12 +163,17 @@ msgid ""
"be passed to the :meth:`ContextVar.reset` method to revert the value of the "
"variable to what it was before the corresponding *set*."
msgstr ""
"Les objets *Token* sont renvoyés par la méthode :meth:`ContextVar.set`. Ils "
"peuvent être passés à la méthode :meth:`ContextVar.reset` pour réaffecter la "
"valeur de la variable à ce qu'elle était avant le *set* correspondant."
#: ../Doc/library/contextvars.rst:106
msgid ""
"A read-only property. Points to the :class:`ContextVar` object that created "
"the token."
msgstr ""
"Propriété en lecture seule. Pointe vers l'objet :class:`ContextVar` qui a "
"créé le token."
#: ../Doc/library/contextvars.rst:111
msgid ""
@ -140,44 +181,56 @@ msgid ""
"`ContextVar.set` method call that created the token. It points to :attr:"
"`Token.MISSING` is the variable was not set before the call."
msgstr ""
"Propriété en lecture seule. Sa valeur est celle que la variable avait avant "
"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe "
"à :attr:`Token.MISSING` si la variable n'est pas définie avant l'appel."
#: ../Doc/library/contextvars.rst:118
msgid "A marker object used by :attr:`Token.old_value`."
msgstr ""
msgstr "Objet marqueur utilisé par :attr:`Token.old_value`."
#: ../Doc/library/contextvars.rst:122
msgid "Manual Context Management"
msgstr ""
msgstr "Gestion de contexte manuelle"
#: ../Doc/library/contextvars.rst:126
msgid "Returns a copy of the current :class:`~contextvars.Context` object."
msgstr ""
msgstr "Renvoie une copie de l'objet :class:`~contextvars.Context` actuel."
#: ../Doc/library/contextvars.rst:128
msgid ""
"The following snippet gets a copy of the current context and prints all "
"variables and their values that are set in it::"
msgstr ""
"Le fragment de code qui suit obtient une copie du contexte actuel et affiche "
"toutes les variables avec leurs valeurs définies dans ce contexte."
#: ../Doc/library/contextvars.rst:134
msgid ""
"The function has an O(1) complexity, i.e. works equally fast for contexts "
"with a few context variables and for contexts that have a lot of them."
msgstr ""
"La fonction a une complexité O(1), c.-à-d. qu'elle fonctionne aussi "
"rapidement pour des contextes avec peu de variables de contexte que pour des "
"contextes qui en ont beaucoup."
#: ../Doc/library/contextvars.rst:141
msgid "A mapping of :class:`ContextVars <ContextVar>` to their values."
msgstr ""
"Tableau associatif entre :class:`ContextVars <ContextVar>` et leurs valeurs."
#: ../Doc/library/contextvars.rst:143
msgid ""
"``Context()`` creates an empty context with no values in it. To get a copy "
"of the current context use the :func:`~contextvars.copy_context` function."
msgstr ""
"``Context()`` crée un contexte vide ne contenant aucune valeur. Pour obtenir "
"une copie du contexte actuel, utilisez la fonction :func:`~contextvars."
"copy_context`."
#: ../Doc/library/contextvars.rst:147
msgid "Context implements the :class:`collections.abc.Mapping` interface."
msgstr ""
msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`."
#: ../Doc/library/contextvars.rst:151
msgid ""
@ -185,66 +238,85 @@ msgid ""
"method is called on. Return the result of the execution or propagate an "
"exception if one occurred."
msgstr ""
"Exécute le code ``callable(*args, **kwargs)`` dans le contexte défini par "
"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y "
"en a une qui s'est produite."
#: ../Doc/library/contextvars.rst:155
msgid ""
"Any changes to any context variables that *callable* makes will be contained "
"in the context object::"
msgstr ""
"Tout changement apporté aux variables de contexte effectué par *callable* "
"sera contenu dans l'objet de contexte ::"
#: ../Doc/library/contextvars.rst:184
msgid ""
"The method raises a :exc:`RuntimeError` when called on the same context "
"object from more than one OS thread, or when called recursively."
msgstr ""
"La méthode lève une :exc:`RuntimeError` quand elle est appelée sur le même "
"objet de contexte depuis plus qu'un fil d'exécution ou quand elle est "
"appelée récursivement."
#: ../Doc/library/contextvars.rst:190
msgid "Return a shallow copy of the context object."
msgstr ""
msgstr "Renvoie une copie de surface de l'objet de contexte."
#: ../Doc/library/contextvars.rst:194
msgid ""
"Return ``True`` if the *context* has a value for *var* set; return ``False`` "
"otherwise."
msgstr ""
"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie "
"``False``."
#: ../Doc/library/contextvars.rst:199
msgid ""
"Return the value of the *var* :class:`ContextVar` variable. If the variable "
"is not set in the context object, a :exc:`KeyError` is raised."
msgstr ""
"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable "
"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée."
#: ../Doc/library/contextvars.rst:205
msgid ""
"Return the value for *var* if *var* has the value in the context object. "
"Return *default* otherwise. If *default* is not given, return ``None``."
msgstr ""
"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de "
"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)."
#: ../Doc/library/contextvars.rst:211
msgid "Return an iterator over the variables stored in the context object."
msgstr ""
"Renvoie un itérateur sur les variables stockées dans l'objet de contexte."
#: ../Doc/library/contextvars.rst:216
msgid "Return the number of variables set in the context object."
msgstr ""
msgstr "Renvoie le nombre de variables définies dans l'objet de contexte."
#: ../Doc/library/contextvars.rst:220
msgid "Return a list of all variables in the context object."
msgstr ""
msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte."
#: ../Doc/library/contextvars.rst:224
msgid "Return a list of all variables' values in the context object."
msgstr ""
"Renvoie une liste de toutes les valeurs des variables dans l'objet de "
"contexte."
#: ../Doc/library/contextvars.rst:229
msgid ""
"Return a list of 2-tuples containing all variables and their values in the "
"context object."
msgstr ""
"Renvoie une liste de paires contenant toutes les variables et leurs valeurs "
"dans l'objet de contexte."
#: ../Doc/library/contextvars.rst:234
msgid "asyncio support"
msgstr ""
msgstr "Gestion avec *asyncio*"
#: ../Doc/library/contextvars.rst:236
msgid ""
@ -253,3 +325,8 @@ msgid ""
"server, that uses a context variable to make the address of a remote client "
"available in the Task that handles that client::"
msgstr ""
":mod:`asyncio` gère nativement les variables de contexte et elles sont "
"prêtes à être utilisées sans configuration supplémentaire. Par exemple, "
"voici un serveur *echo* simple qui utilise une variable de contexte pour que "
"ladresse d'un client distant soit disponible dans le *Task* qui gère ce "
"client ::"

View File

@ -77,7 +77,7 @@ msgstr ""
#: ../Doc/library/csv.rst:41
msgid ":pep:`305` - CSV File API"
msgstr ":pep:`305` -- Interface des fichiers CSV"
msgstr ":pep:`305` ­— Interface des fichiers CSV"
#: ../Doc/library/csv.rst:42
msgid "The Python Enhancement Proposal which proposed this addition to Python."
@ -110,10 +110,10 @@ msgid ""
msgstr ""
"Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* "
"donné. *csvfile* peut être n'importe quel objet supportant le protocole :"
"term:`iterator` et renvoyant une chaîne de caractères chaque fois que sa "
"méthode :meth:`!__next__` est appelée --- les :term:`fichiers objets <file "
"object>` et les listes sont tous deux valables. Si *csvfile* est un "
"fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre "
"term:`itérateur <iterator>` et renvoyant une chaîne de caractères chaque "
"fois que sa méthode :meth:`!__next__` est appelée — les :term:`fichiers "
"objets <file object>` et les listes sont tous deux valables. Si *csvfile* "
"est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre "
"*dialect* optionnel peut être fourni pour définir un ensemble de paramètres "
"spécifiques à un dialecte CSV particulier. Il peut s'agir d'une instance de "
"sous-classe de :class:`Dialect` ou de l'une des chaînes renvoyées par la "
@ -139,7 +139,7 @@ msgstr ""
#: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105
#: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208
msgid "A short usage example::"
msgstr "Un court exemple d'utilisation : ::"
msgstr "Un court exemple d'utilisation ::"
#: ../Doc/library/csv.rst:88
msgid ""
@ -293,7 +293,7 @@ msgid ""
msgstr ""
"Crée un objet qui opère comme un transcripteur ordinaire mais qui produit "
"les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* "
"est une :mod:`sequence <collections.abc>` de clés qui indique l'ordre dans "
"est une :mod:`séquence <collections.abc>` de clés qui indique l'ordre dans "
"lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` "
"doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* "
"spécifie la valeur à écrire si une clé de *fieldnames* manque dans le "
@ -382,7 +382,7 @@ msgstr ""
#: ../Doc/library/csv.rst:269
msgid "An example for :class:`Sniffer` use::"
msgstr "Un exemple d'utilisation de :class:`Sniffer` : ::"
msgstr "Un exemple d'utilisation de :class:`Sniffer` ::"
#: ../Doc/library/csv.rst:278
msgid "The :mod:`csv` module defines the following constants:"
@ -698,15 +698,15 @@ msgstr "Exemples"
#: ../Doc/library/csv.rst:480
msgid "The simplest example of reading a CSV file::"
msgstr "Le plus simple exemple de lecture d'un fichier CSV : ::"
msgstr "Le plus simple exemple de lecture d'un fichier CSV ::"
#: ../Doc/library/csv.rst:488
msgid "Reading a file with an alternate format::"
msgstr "Lire un fichier avec un format alternatif : ::"
msgstr "Lire un fichier avec un format alternatif ::"
#: ../Doc/library/csv.rst:496
msgid "The corresponding simplest possible writing example is::"
msgstr "Le plus simple exemple d'écriture correspondant est : ::"
msgstr "Le plus simple exemple d'écriture correspondant est ::"
#: ../Doc/library/csv.rst:503
msgid ""
@ -719,7 +719,7 @@ msgstr ""
"fichier sera par défaut décodé vers Unicode en utilisant l'encodage par "
"défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier "
"utilisant un encodage différent, utilisez l'argument ``encoding`` de "
"*open* : ::"
"*open* ::"
#: ../Doc/library/csv.rst:514
msgid ""
@ -732,7 +732,7 @@ msgstr ""
#: ../Doc/library/csv.rst:517
msgid "Registering a new dialect::"
msgstr "Enregistrer un nouveau dialecte : ::"
msgstr "Enregistrer un nouveau dialecte ::"
#: ../Doc/library/csv.rst:524
msgid ""
@ -740,7 +740,7 @@ msgid ""
"errors::"
msgstr ""
"Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et "
"notifiant les erreurs : ::"
"notifiant les erreurs ::"
#: ../Doc/library/csv.rst:536
msgid ""
@ -748,7 +748,7 @@ msgid ""
"be done::"
msgstr ""
"Et bien que le module ne permette pas d'analyser directement des chaînes, "
"cela peut être fait facilement : ::"
"cela peut être fait facilement ::"
#: ../Doc/library/csv.rst:545
msgid "Footnotes"

File diff suppressed because it is too large Load Diff

View File

@ -1636,7 +1636,7 @@ msgstr ""
#: ../Doc/library/curses.rst:1364
msgid "Key"
msgstr ""
msgstr "Clé"
#: ../Doc/library/curses.rst:1366
msgid "``KEY_MIN``"
@ -1948,7 +1948,7 @@ msgstr "``KEY_CLOSE``"
#: ../Doc/library/curses.rst:1443
msgid "Close"
msgstr ""
msgstr "*Close*"
#: ../Doc/library/curses.rst:1445
msgid "``KEY_COMMAND``"
@ -1964,7 +1964,7 @@ msgstr "``KEY_COPY``"
#: ../Doc/library/curses.rst:1447
msgid "Copy"
msgstr ""
msgstr "*Copy*"
#: ../Doc/library/curses.rst:1449
msgid "``KEY_CREATE``"
@ -1988,7 +1988,7 @@ msgstr "``KEY_EXIT``"
#: ../Doc/library/curses.rst:1453
msgid "Exit"
msgstr ""
msgstr "*Exit*"
#: ../Doc/library/curses.rst:1455
msgid "``KEY_FIND``"
@ -2068,7 +2068,7 @@ msgstr "``KEY_REDO``"
#: ../Doc/library/curses.rst:1473
msgid "Redo"
msgstr ""
msgstr "*Redo*"
#: ../Doc/library/curses.rst:1475
msgid "``KEY_REFERENCE``"
@ -2116,7 +2116,7 @@ msgstr "``KEY_SAVE``"
#: ../Doc/library/curses.rst:1485
msgid "Save"
msgstr ""
msgstr "*Save*"
#: ../Doc/library/curses.rst:1487
msgid "``KEY_SBEG``"
@ -2364,7 +2364,7 @@ msgstr "``KEY_UNDO``"
#: ../Doc/library/curses.rst:1547
msgid "Undo"
msgstr ""
msgstr "*Undo*"
#: ../Doc/library/curses.rst:1549
msgid "``KEY_MOUSE``"
@ -2964,7 +2964,7 @@ msgstr ""
#: ../Doc/library/curses.rst:1768
msgid "Action"
msgstr ""
msgstr "Action"
#: ../Doc/library/curses.rst:1770
msgid ":kbd:`Control-A`"

View File

@ -41,12 +41,12 @@ msgid ""
"pep:`526` type annotations. For example this code::"
msgstr ""
"Les variables membres à utiliser dans ces méthodes générées sont définies en "
"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::"
"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::"
#: ../Doc/library/dataclasses.rst:32
msgid "Will add, among other things, a :meth:`__init__` that looks like::"
msgstr ""
"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::"
"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::"
#: ../Doc/library/dataclasses.rst:39
msgid ""
@ -113,7 +113,7 @@ msgstr ""
"Si :func:`dataclass` est utilisé comme simple décorateur sans paramètres, il "
"se comporte comme si on lavait appelé avec les valeurs par défaut présentes "
"en signature. Ainsi, les trois usages suivants de :func:`dataclass` sont "
"équivalents ::"
"équivalents ::"
#: ../Doc/library/dataclasses.rst:84
msgid "The parameters to :func:`dataclass` are:"
@ -303,7 +303,7 @@ msgid ""
"syntax::"
msgstr ""
"Les ``field``\\s peuvent éventuellement spécifier une valeur par défaut, en "
"utilisant la syntaxe Python normale ::"
"utilisant la syntaxe Python normale ::"
#: ../Doc/library/dataclasses.rst:170
msgid ""
@ -311,7 +311,7 @@ msgid ""
"`__init__` method, which will be defined as::"
msgstr ""
"Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de "
"la méthode générée :meth:`__init__`, qui est définie comme suit ::"
"la méthode générée :meth:`__init__`, qui est définie comme suit ::"
#: ../Doc/library/dataclasses.rst:175
msgid ""

View File

@ -1332,7 +1332,7 @@ msgstr ""
msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::"
msgstr ""
"Pour obtenir un objet :class:`.datetime` avisé, appelez :meth:"
"`fromtimestamp` : ::"
"`fromtimestamp` ::"
#: ../Doc/library/datetime.rst:801
msgid ""
@ -1340,7 +1340,7 @@ msgid ""
"expression::"
msgstr ""
"Sur les plateformes respectant *POSIX*, cela est équivalent à l'expression "
"suivante : ::"
"suivante ::"
#: ../Doc/library/datetime.rst:806
msgid ""
@ -1784,7 +1784,7 @@ msgstr ""
"Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie "
"dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :"
"meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se "
"comporte comme : ::"
"comporte comme ::"
#: ../Doc/library/datetime.rst:1094
msgid "*tz* now can be omitted."
@ -1927,7 +1927,7 @@ msgid ""
"For aware :class:`.datetime` instances, the return value is computed as::"
msgstr ""
"Pour les instances :class:`.datetime` avisées, la valeur renvoyée est "
"calculée comme suit : ::"
"calculée comme suit ::"
#: ../Doc/library/datetime.rst:1181
msgid ""
@ -1952,7 +1952,7 @@ msgstr ""
#: ../Doc/library/datetime.rst:1195
msgid "or by calculating the timestamp directly::"
msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement : ::"
msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::"
#: ../Doc/library/datetime.rst:1201
msgid ""
@ -2542,7 +2542,7 @@ msgid ""
"two::"
msgstr ""
"La plupart des implémentations de :meth:`dst` ressembleront probablement à "
"l'une des deux suivantes : ::"
"l'une des deux suivantes ::"
#: ../Doc/library/datetime.rst:1766
msgid "or ::"
@ -2690,7 +2690,7 @@ msgid ""
"acts like::"
msgstr ""
"En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:"
"`fromutc` se comporte comme suit : ::"
"`fromutc` se comporte comme suit ::"
#: ../Doc/library/datetime.rst:1857
msgid ""

View File

@ -511,7 +511,7 @@ msgstr ""
"Il existe quelques différences mineures entre l'arithmétique entre les "
"objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand "
"l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du "
"résultat est le signe du *dividend* plutôt que le signe du diviseur::"
"résultat est le signe du *dividend* plutôt que le signe du diviseur ::"
#: ../Doc/library/decimal.rst:423
msgid ""
@ -521,7 +521,7 @@ msgid ""
msgstr ""
"L'opérateur division entière, ``//`` se comporte de la même manière, "
"retournant la partie entière du quotient, plutôt que son arrondi, de manière "
"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y``::"
"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::"
#: ../Doc/library/decimal.rst:432
msgid ""

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/difflib.rst:2
msgid ":mod:`difflib` --- Helpers for computing deltas"
msgstr ""
msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas"
#: ../Doc/library/difflib.rst:11
msgid "**Source code:** :source:`Lib/difflib.py`"
@ -46,6 +46,20 @@ msgid ""
"minimal edit sequences, but does tend to yield matches that \"look right\" "
"to people."
msgstr ""
"C'est une classe flexible permettant de comparer des séquences deux à deux "
"de n'importe quel type, tant que les éléments des séquences sont :term:"
"`hachables <hashable>`. L'algorithme de base est antérieur, et un peu plus "
"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et "
"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est "
"de trouver la plus longue sous-séquence d'appariement contiguë qui ne "
"contient pas d'éléments « indésirables » ; ces éléments « indésirables » "
"sont ceux qui sont inintéressants dans un certain sens, comme les lignes "
"blanches ou les espaces. (Le traitement des éléments indésirables est une "
"extension de l'algorithme de Ratcliff et Obershelp). La même idée est "
"ensuite appliquée récursivement aux morceaux des séquences à gauche et à "
"droite de la sous-séquence correspondante. Cela ne donne pas des séquences "
"de montage minimales, mais tend à donner des correspondances qui « semblent "
"correctes » pour les gens."
#: ../Doc/library/difflib.rst:40
msgid ""
@ -55,6 +69,12 @@ msgid ""
"dependent in a complicated way on how many elements the sequences have in "
"common; best case time is linear."
msgstr ""
"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est "
"de complexité cubique dans le pire cas et de complexité quadratique dans le "
"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le "
"pire cas et son comportement dans le cas attendu dépend de façon complexe du "
"nombre d'éléments que les séquences ont en commun ; le temps dans le "
"meilleur cas est linéaire."
#: ../Doc/library/difflib.rst:46
msgid ""
@ -67,10 +87,20 @@ msgid ""
"This heuristic can be turned off by setting the ``autojunk`` argument to "
"``False`` when creating the :class:`SequenceMatcher`."
msgstr ""
"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` "
"utilise une heuristique qui traite automatiquement certains éléments de la "
"séquence comme indésirables. L'heuristique compte combien de fois chaque "
"élément individuel apparaît dans la séquence. Si les doublons d'un élément "
"(après le premier) représentent plus de 1 % de la séquence et que la "
"séquence compte au moins 200 éléments, cet élément est marqué comme "
 populaire » et est traité comme indésirable aux fins de la comparaison des "
"séquences. Cette heuristique peut être désactivée en réglant l'argument "
"``autojunk`` sur ``False`` lors de la création de la classe :class:"
"`SequenceMatcher`."
#: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:383
msgid "The *autojunk* parameter."
msgstr ""
msgstr "Le paramètre *autojunk*."
#: ../Doc/library/difflib.rst:60
msgid ""
@ -79,10 +109,17 @@ msgid ""
"both to compare sequences of lines, and to compare sequences of characters "
"within similar (near-matching) lines."
msgstr ""
"Il s'agit d'une classe permettant de comparer des séquences de lignes de "
"texte et de produire des différences ou deltas humainement lisibles. "
"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des "
"séquences de lignes, et pour comparer des séquences de caractères dans des "
"lignes similaires (quasi-correspondantes)."
#: ../Doc/library/difflib.rst:65
msgid "Each line of a :class:`Differ` delta begins with a two-letter code:"
msgstr ""
"Chaque ligne d'un delta :class:`Differ` commence par un code de deux "
"lettres :"
#: ../Doc/library/difflib.rst:68
msgid "Code"
@ -98,7 +135,7 @@ msgstr "``'- '``"
#: ../Doc/library/difflib.rst:70
msgid "line unique to sequence 1"
msgstr ""
msgstr "ligne n'appartenant qu'à la séquence 1"
#: ../Doc/library/difflib.rst:72
msgid "``'+ '``"
@ -106,7 +143,7 @@ msgstr "``'+ '``"
#: ../Doc/library/difflib.rst:72
msgid "line unique to sequence 2"
msgstr ""
msgstr "ligne n'appartenant qu'à la séquence 2"
#: ../Doc/library/difflib.rst:74
msgid "``' '``"
@ -114,7 +151,7 @@ msgstr "``' '``"
#: ../Doc/library/difflib.rst:74
msgid "line common to both sequences"
msgstr ""
msgstr "ligne commune aux deux séquences"
#: ../Doc/library/difflib.rst:76
msgid "``'? '``"
@ -122,7 +159,7 @@ msgstr "``'? '``"
#: ../Doc/library/difflib.rst:76
msgid "line not present in either input sequence"
msgstr ""
msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée"
#: ../Doc/library/difflib.rst:79
msgid ""
@ -130,6 +167,10 @@ msgid ""
"differences, and were not present in either input sequence. These lines can "
"be confusing if the sequences contain tab characters."
msgstr ""
"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les "
"différences intralignes, et n'étaient présentes dans aucune des séquences "
"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent "
"des caractères de tabulation."
#: ../Doc/library/difflib.rst:86
msgid ""
@ -138,26 +179,35 @@ msgid ""
"text with inter-line and intra-line change highlights. The table can be "
"generated in either full or contextual difference mode."
msgstr ""
"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier "
"HTML complet contenant le tableau) montrant une comparaison côte à côte, "
"ligne par ligne, du texte avec les changements inter-lignes et intralignes. "
"Le tableau peut être généré en mode de différence complet ou contextuel."
#: ../Doc/library/difflib.rst:91
msgid "The constructor for this class is:"
msgstr ""
msgstr "Le constructeur pour cette classe est :"
#: ../Doc/library/difflib.rst:96
msgid "Initializes instance of :class:`HtmlDiff`."
msgstr ""
msgstr "Initialise l'instance de :class:`HtmlDiff`."
#: ../Doc/library/difflib.rst:98
msgid ""
"*tabsize* is an optional keyword argument to specify tab stop spacing and "
"defaults to ``8``."
msgstr ""
"*tabsize* est un mot-clé optionnel pour spécifier l'espacement des "
"tabulations et sa valeur par défaut est ``8``."
#: ../Doc/library/difflib.rst:101
msgid ""
"*wrapcolumn* is an optional keyword to specify column number where lines are "
"broken and wrapped, defaults to ``None`` where lines are not wrapped."
msgstr ""
"*wrapcolumn* est un mot-clé optionnel pour spécifier le numéro de la colonne "
"où les lignes sont coupées pour être ré-agencées, la valeur par défaut est "
"``None`` lorsque les lignes ne sont pas ré-agencées."
#: ../Doc/library/difflib.rst:104
msgid ""
@ -166,10 +216,14 @@ msgid ""
"differences). See :func:`ndiff` documentation for argument default values "
"and descriptions."
msgstr ""
"*linejunk* et *charjunk* sont des arguments de mots-clés optionnels passés "
"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les "
"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour "
"les valeurs par défaut des arguments et les descriptions."
#: ../Doc/library/difflib.rst:108
msgid "The following methods are public:"
msgstr ""
msgstr "Les méthodes suivantes sont publiques :"
#: ../Doc/library/difflib.rst:113
msgid ""
@ -177,12 +231,19 @@ msgid ""
"which is a complete HTML file containing a table showing line by line "
"differences with inter-line and intra-line changes highlighted."
msgstr ""
"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et "
"renvoie une chaîne de caractères qui est un fichier HTML complet contenant "
"un tableau montrant les différences ligne par ligne avec les changements "
"inter-lignes et intralignes mis en évidence."
#: ../Doc/library/difflib.rst:117
msgid ""
"*fromdesc* and *todesc* are optional keyword arguments to specify from/to "
"file column header strings (both default to an empty string)."
msgstr ""
"*fromdesc* et *todesc* sont des arguments mot-clé optionnels pour spécifier "
"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des "
"chaînes vides par défaut)."
#: ../Doc/library/difflib.rst:120
msgid ""
@ -196,12 +257,25 @@ msgid ""
"hyperlinks to place the next difference highlight at the top of the browser "
"without any leading context)."
msgstr ""
"*context* et *numlines* sont tous deux des arguments mots-clés facultatifs. "
"Mettre *context* à ``True`` lorsque les différences contextuelles doivent "
"être affichées, sinon la valeur par défaut est ``False`` pour afficher les "
"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque "
"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte "
"qui entourent les différences mise en évidence. Lorsque *context* est "
"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant "
"un surlignage de différence lors de l'utilisation des hyperliens "
 suivants » (un réglage à zéro ferait en sorte que les hyperliens "
 suivants » placeraient le surlignage de différence suivant en haut du "
"navigateur sans aucun contexte introductif)."
#: ../Doc/library/difflib.rst:130
msgid ""
"*charset* keyword-only argument was added. The default charset of HTML "
"document changed from ``'ISO-8859-1'`` to ``'utf-8'``."
msgstr ""
"l'argument mot-clé *charset* a été ajouté. Le jeu de caractères par défaut "
"du document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``."
#: ../Doc/library/difflib.rst:136
msgid ""
@ -209,24 +283,34 @@ msgid ""
"which is a complete HTML table showing line by line differences with inter-"
"line and intra-line changes highlighted."
msgstr ""
"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne "
"qui est un tableau HTML complet montrant les différences ligne par ligne "
"avec les changements inter-lignes et intralignes mis en évidence."
#: ../Doc/library/difflib.rst:140
msgid ""
"The arguments for this method are the same as those for the :meth:"
"`make_file` method."
msgstr ""
"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:"
"`make_file`."
#: ../Doc/library/difflib.rst:143
msgid ""
":file:`Tools/scripts/diff.py` is a command-line front-end to this class and "
"contains a good example of its use."
msgstr ""
":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette "
"classe et contient un bon exemple de son utilisation."
#: ../Doc/library/difflib.rst:149
msgid ""
"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` "
"generating the delta lines) in context diff format."
msgstr ""
"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :"
"term:`generateur <generator>` générant les lignes delta) dans un format de "
"différence de contexte."
#: ../Doc/library/difflib.rst:152
msgid ""
@ -243,12 +327,20 @@ msgid ""
"with :func:`io.IOBase.writelines` since both the inputs and outputs have "
"trailing newlines."
msgstr ""
"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou "
"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que "
"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des "
"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` "
"puisque les entrées et les sorties ont des nouvelles lignes de fin."
#: ../Doc/library/difflib.rst:162 ../Doc/library/difflib.rst:293
msgid ""
"For inputs that do not have trailing newlines, set the *lineterm* argument "
"to ``\"\"`` so that the output will be uniformly newline free."
msgstr ""
"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument "
"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la "
"ligne."
#: ../Doc/library/difflib.rst:165 ../Doc/library/difflib.rst:296
msgid ""
@ -258,10 +350,18 @@ msgid ""
"normally expressed in the ISO 8601 format. If not specified, the strings "
"default to blanks."
msgstr ""
"Le format de contexte de différence comporte normalement un en-tête pour les "
"noms de fichiers et les heures de modification. Tout ou partie de ces "
"éléments peuvent être spécifiés en utilisant les chaînes de caractères "
"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de "
"modification sont normalement exprimées dans le format ISO 8601. Si elles ne "
"sont pas spécifiées, les chaînes de caractères sont par défaut vierges."
#: ../Doc/library/difflib.rst:188 ../Doc/library/difflib.rst:317
msgid "See :ref:`difflib-interface` for a more detailed example."
msgstr ""
"Voir :ref:`une interface de ligne de commandes pour difflib <difflib-"
"interface>` pour un exemple plus détaillé."
#: ../Doc/library/difflib.rst:193
msgid ""

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-12 18:59+0200\n"
"PO-Revision-Date: 2019-07-18 21:03+0200\n"
"Last-Translator: Aya Keddam <aya.keddam@etu.sorbonne-universite.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Aya Keddam <aya.keddam@etu.sorbonne-universite.fr>\n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/dis.rst:2

View File

@ -16,17 +16,19 @@ msgstr ""
#: ../Doc/library/email.errors.rst:2
msgid ":mod:`email.errors`: Exception and Defect classes"
msgstr ""
msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies"
#: ../Doc/library/email.errors.rst:7
msgid "**Source code:** :source:`Lib/email/errors.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/email/errors.py`"
#: ../Doc/library/email.errors.rst:11
msgid ""
"The following exception classes are defined in the :mod:`email.errors` "
"module:"
msgstr ""
"Les classes d'exception suivantes sont définies dans le module :mod:`email."
"errors` :"
#: ../Doc/library/email.errors.rst:16
msgid ""
@ -34,6 +36,9 @@ msgid ""
"raise. It is derived from the standard :exc:`Exception` class and defines "
"no additional methods."
msgstr ""
"Exception de base, dont héritent toutes les exceptions du paquet :mod:"
"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne "
"définit aucune méthode additionnelle."
#: ../Doc/library/email.errors.rst:23
msgid ""
@ -41,6 +46,9 @@ msgid ""
"Parser` class. It is derived from :exc:`MessageError`. This class is also "
"used internally by the parser used by :mod:`~email.headerregistry`."
msgstr ""
"Exception de base pour les exceptions levées par la classe :class:`~email."
"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi "
"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`."
#: ../Doc/library/email.errors.rst:31
msgid ""
@ -53,10 +61,19 @@ msgid ""
"header (that is, there is what is supposed to be a continuation line that "
"has no leading whitespace and looks like a header)."
msgstr ""
"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous "
"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du "
"message. Lorsque la méthode :meth:`~email.message.EmailMessage."
"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est "
"inconnu. La classe :class:`~email.header.Header` lève cette exception pour "
"certains types d'erreurs provenant du décodage base64. Elle la lève aussi "
"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, "
"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas "
"par des caractères d'espacement."
#: ../Doc/library/email.errors.rst:43
msgid "Deprecated and no longer used."
msgstr ""
msgstr "Obsolète, n'est plus utilisé."
#: ../Doc/library/email.errors.rst:48
msgid ""
@ -66,6 +83,12 @@ msgid ""
"`multipart` or missing. :exc:`MultipartConversionError` multiply inherits "
"from :exc:`MessageError` and the built-in :exc:`TypeError`."
msgstr ""
"Cette exception est levée quand le contenu, que la méthode :meth:"
"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, "
"est déjà un scalaire et que le type principal du message :mailheader:"
"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:"
"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :"
"exc:`TypeError`."
#: ../Doc/library/email.errors.rst:54
msgid ""
@ -75,6 +98,11 @@ msgid ""
"derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:"
"`~email.mime.image.MIMEImage`)."
msgstr ""
"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception "
"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:"
"`~email.message.Message.attach` est invoquée sur une instance de classe "
"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:"
"`~email.mime.image.MIMEImage`)."
#: ../Doc/library/email.errors.rst:62
msgid ""
@ -85,41 +113,60 @@ msgid ""
"nested message object would have a defect, but the containing messages would "
"not."
msgstr ""
"Voici la liste des anomalies que peut identifier :class:`~email.parser."
"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont "
"signalées à l'endroit où elles sont détectées : par exemple, dans le cas "
"d'une malformation de l'en-tête d'un message imbriqué dans un message de "
"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le "
"message imbriqué seulement."
#: ../Doc/library/email.errors.rst:68
msgid ""
"All defect classes are subclassed from :class:`email.errors.MessageDefect`."
msgstr ""
"Toutes les anomalies sont des sous-classes de :class:`email.errors."
"MessageDefect`."
#: ../Doc/library/email.errors.rst:70
msgid ""
":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, "
"but had no :mimetype:`boundary` parameter."
msgstr ""
":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite "
"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:"
"`boundary`."
#: ../Doc/library/email.errors.rst:73
msgid ""
":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :"
"mailheader:`Content-Type` header was never found."
msgstr ""
":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le "
"séparateur de départ indiqué dans le :mailheader:`Content-Type`."
#: ../Doc/library/email.errors.rst:76
msgid ""
":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no "
"corresponding close boundary was ever found."
msgstr ""
":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, "
"mais pas le séparateur de fin correspondant."
#: ../Doc/library/email.errors.rst:81
msgid ""
":class:`FirstHeaderLineIsContinuationDefect` -- The message had a "
"continuation line as its first header line."
msgstr ""
":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-"
"tête du message est une ligne de continuation."
#: ../Doc/library/email.errors.rst:84
msgid ""
":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in "
"the middle of a header block."
msgstr ""
":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent "
"à l'intérieur d'un bloc d'en-tête."
#: ../Doc/library/email.errors.rst:87
msgid ""
@ -127,16 +174,21 @@ msgid ""
"headers that had no leading white space but contained no ':'. Parsing "
"continues assuming that the line represents the first line of the body."
msgstr ""
":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient "
"pas de caractères d'espacement au début et aucun « : ». L'analyse continue "
"en supposant qu'il s'agit donc de la première ligne du corps du message."
#: ../Doc/library/email.errors.rst:93
msgid ""
":class:`MalformedHeaderDefect` -- A header was found that was missing a "
"colon, or was otherwise malformed."
msgstr ""
":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un "
"« : »."
#: ../Doc/library/email.errors.rst:96
msgid "This defect has not been used for several Python versions."
msgstr ""
msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python."
#: ../Doc/library/email.errors.rst:99
msgid ""
@ -152,6 +204,9 @@ msgid ""
"encoded bytes, the padding was not correct. Enough padding is added to "
"perform the decode, but the resulting decoded bytes may be invalid."
msgstr ""
":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc "
"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés "
"pour permettre le décodage, mais le résultat du décodage peut être invalide."
#: ../Doc/library/email.errors.rst:108
msgid ""
@ -159,6 +214,10 @@ msgid ""
"encoded bytes, characters outside the base64 alphabet were encountered. The "
"characters are ignored, but the resulting decoded bytes may be invalid."
msgstr ""
":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à "
"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets "
"encodés en base64. Les caractères ont été ignorés, mais le résultat du "
"décodage peut être invalide."
#: ../Doc/library/email.errors.rst:112
msgid ""
@ -166,3 +225,6 @@ msgid ""
"encoded bytes, the number of non-padding base64 characters was invalid (1 "
"more than a multiple of 4). The encoded block was kept as-is."
msgstr ""
":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de "
"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus "
"qu'un multiple de 4). Le bloc encodé n'a pas été modifié."

View File

@ -342,7 +342,7 @@ msgstr ""
#: ../Doc/library/email.message.rst:287
msgid "Here is an example::"
msgstr "Voici un exemple : ::"
msgstr "Voici un exemple ::"
#: ../Doc/library/email.message.rst:291
msgid "This will add a header that looks like ::"

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-12 18:59+0200\n"
"PO-Revision-Date: 2019-07-26 19:08+0200\n"
"Last-Translator: Antoine Wecxsteen\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Antoine Wecxsteen\n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/library/enum.rst:2
@ -117,7 +117,7 @@ msgstr ""
"Une énumération est créée comme une :keyword:`class`, ce qui la rend facile "
"à lire et à écrire. Une autre méthode de création est décrite dans `API par "
"fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` "
"de la manière suivante : ::"
"de la manière suivante ::"
#: ../Doc/library/enum.rst:78
msgid "Enum member values"
@ -173,26 +173,25 @@ msgstr ""
msgid "Enumeration members have human readable string representations::"
msgstr ""
"Les membres d'une énumération ont une représentation en chaîne de caractères "
"compréhensible par un humain : ::"
"compréhensible par un humain ::"
#: ../Doc/library/enum.rst:105
msgid "...while their ``repr`` has more information::"
msgstr "… tandis que leur ``repr`` contient plus d'informations : ::"
msgstr "… tandis que leur ``repr`` contient plus d'informations ::"
#: ../Doc/library/enum.rst:110
msgid "The *type* of an enumeration member is the enumeration it belongs to::"
msgstr ""
"Le *type* d'un membre est l'énumération auquel ce membre appartient : ::"
msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::"
#: ../Doc/library/enum.rst:118
msgid "Enum members also have a property that contains just their item name::"
msgstr "Les membres ont également un attribut qui contient leur nom : ::"
msgstr "Les membres ont également un attribut qui contient leur nom ::"
#: ../Doc/library/enum.rst:123
msgid "Enumerations support iteration, in definition order::"
msgstr ""
"Les énumérations sont itérables, l'ordre d'itération est celui dans lequel "
"les membres sont déclarés : ::"
"les membres sont déclarés ::"
#: ../Doc/library/enum.rst:139
msgid ""
@ -200,7 +199,7 @@ msgid ""
"sets::"
msgstr ""
"Les membres d'une énumération sont hachables, ils peuvent ainsi être "
"utilisés dans des dictionnaires ou des ensembles : ::"
"utilisés dans des dictionnaires ou des ensembles ::"
#: ../Doc/library/enum.rst:149
msgid "Programmatic access to enumeration members and their attributes"
@ -215,16 +214,16 @@ msgstr ""
"Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une "
"énumération (p. ex. dans des situations où il ne suffit pas d'utiliser "
"``Color.RED`` car la couleur précise n'est pas connue à l'écriture du "
"programme). ``Enum`` permet de tels accès : ::"
"programme). ``Enum`` permet de tels accès ::"
#: ../Doc/library/enum.rst:160
msgid "If you want to access enum members by *name*, use item access::"
msgstr ""
"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation : ::"
"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::"
#: ../Doc/library/enum.rst:167
msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::"
msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre : ::"
msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::"
#: ../Doc/library/enum.rst:177
msgid "Duplicating enum members and values"
@ -233,7 +232,7 @@ msgstr "Duplication de membres et de valeurs"
#: ../Doc/library/enum.rst:179
msgid "Having two enum members with the same name is invalid::"
msgstr ""
"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* : ::"
"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::"
#: ../Doc/library/enum.rst:189
msgid ""
@ -245,7 +244,7 @@ msgstr ""
"Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B "
"ont la même valeur (et que A est défini en premier), B sera un alias de A. "
"Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B "
"par nom renverra aussi A : ::"
"par nom renverra aussi A ::"
#: ../Doc/library/enum.rst:209
msgid ""
@ -280,7 +279,7 @@ msgid ""
msgstr ""
"Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine "
"l'attribut :attr:`__members__` d'une énumération et recherche des alias ; "
"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails : ::"
"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::"
#: ../Doc/library/enum.rst:241
msgid "Using automatic values"
@ -290,7 +289,7 @@ msgstr "Valeurs automatiques"
msgid "If the exact value is unimportant you can use :class:`auto`::"
msgstr ""
"Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:"
"`auto` : ::"
"`auto` ::"
#: ../Doc/library/enum.rst:254
msgid ""
@ -298,7 +297,7 @@ msgid ""
"overridden::"
msgstr ""
"Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut "
"être redéfinie : ::"
"être redéfinie ::"
#: ../Doc/library/enum.rst:272
msgid ""
@ -316,8 +315,7 @@ msgstr "Itération"
#: ../Doc/library/enum.rst:279
msgid "Iterating over the members of an enum does not provide the aliases::"
msgstr ""
"Itérer sur les membres d'une énumération ne parcourt pas les alias : ::"
msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::"
#: ../Doc/library/enum.rst:284
msgid ""
@ -335,7 +333,7 @@ msgid ""
"to the enumeration members. For example, finding all the aliases::"
msgstr ""
"L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres "
"de l'énumération. Par exemple, pour trouver tous les alias : ::"
"de l'énumération. Par exemple, pour trouver tous les alias ::"
#: ../Doc/library/enum.rst:304
msgid "Comparisons"
@ -343,7 +341,7 @@ msgstr "Comparaisons"
#: ../Doc/library/enum.rst:306
msgid "Enumeration members are compared by identity::"
msgstr "Les membres d'une énumération sont comparés par identité : ::"
msgstr "Les membres d'une énumération sont comparés par identité ::"
#: ../Doc/library/enum.rst:315
msgid ""
@ -352,11 +350,11 @@ msgid ""
msgstr ""
"Les comparaisons d'ordre entre les valeurs d'une énumération n'existent "
"*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant "
"`IntEnum`_ ci-dessous) : ::"
"`IntEnum`_ ci-dessous) ::"
#: ../Doc/library/enum.rst:323
msgid "Equality comparisons are defined though::"
msgstr "A contrario, les comparaisons d'égalité existent : ::"
msgstr "A contrario, les comparaisons d'égalité existent ::"
#: ../Doc/library/enum.rst:332
msgid ""
@ -366,7 +364,7 @@ msgid ""
msgstr ""
"Les comparaisons avec des valeurs ne provenant pas d'énumérations sont "
"toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner "
"différemment, voir ci-dessous) : ::"
"différemment, voir ci-dessous) ::"
#: ../Doc/library/enum.rst:341
msgid "Allowed members and attributes of enumerations"
@ -393,11 +391,11 @@ msgid ""
"usual. If we have this enumeration::"
msgstr ""
"Les énumérations sont des classes Python et peuvent donc avoir des méthodes "
"et des méthodes spéciales. L'énumération suivante : ::"
"et des méthodes spéciales. L'énumération suivante ::"
#: ../Doc/library/enum.rst:369
msgid "Then::"
msgstr "amène : ::"
msgstr "amène ::"
#: ../Doc/library/enum.rst:378
msgid ""
@ -439,7 +437,7 @@ msgstr ""
"Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, au "
"plus un type de données concret et autant de classes de mélange (basées sur :"
"class:`object`) que nécessaire. L'ordre de ces classes de base est le "
"suivant : ::"
"suivant ::"
#: ../Doc/library/enum.rst:400
msgid ""
@ -447,11 +445,11 @@ msgid ""
"define any members. So this is forbidden::"
msgstr ""
"Hériter d'une énumération n'est permis que si cette énumération ne définit "
"aucun membre. Le code suivant n'est pas autorisé : ::"
"aucun membre. Le code suivant n'est pas autorisé ::"
#: ../Doc/library/enum.rst:410
msgid "But this is allowed::"
msgstr "Mais celui-ci est correct : ::"
msgstr "Mais celui-ci est correct ::"
#: ../Doc/library/enum.rst:421
msgid ""
@ -471,7 +469,7 @@ msgstr "Sérialisation"
#: ../Doc/library/enum.rst:430
msgid "Enumerations can be pickled and unpickled::"
msgstr "Les énumérations peuvent être sérialisées et dé-sérialisées : ::"
msgstr "Les énumérations peuvent être sérialisées et déserialisées ::"
#: ../Doc/library/enum.rst:437
msgid ""
@ -481,7 +479,7 @@ msgid ""
msgstr ""
"Les restrictions habituelles de sérialisation s'appliquent : les *enums* à "
"sérialiser doivent être déclarés dans l'espace de nom de haut niveau du "
"module car la dé-sérialisation nécessite que ces *enums* puissent être "
"module car la déserialisation nécessite que ces *enums* puissent être "
"importés depuis ce module."
#: ../Doc/library/enum.rst:443
@ -508,7 +506,7 @@ msgstr "API par fonction"
msgid ""
"The :class:`Enum` class is callable, providing the following functional API::"
msgstr ""
"La :class:`Enum` est appelable et implémente l'API par fonction suivante : ::"
"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::"
#: ../Doc/library/enum.rst:465
msgid ""
@ -537,7 +535,7 @@ msgstr ""
"énumérations ; les autres affectent automatiquement des entiers en "
"commençant par 1 (le paramètre ``start`` permet de changer la valeur de "
"départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En "
"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à : ::"
"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::"
#: ../Doc/library/enum.rst:484
msgid ""
@ -563,7 +561,7 @@ msgstr ""
"l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires "
"provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou "
"Jython). La solution consiste à préciser explicitement le nom du module "
"comme ceci : ::"
"comme ceci ::"
#: ../Doc/library/enum.rst:498
msgid ""
@ -572,8 +570,8 @@ msgid ""
"pickling will be disabled."
msgstr ""
"Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les "
"nouveaux membres de *l'Enum* ne seront pas dé-sérialisables ; pour garder "
"les erreurs au plus près de leur origine, la sérialisation sera désactivée."
"nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les "
"erreurs au plus près de leur origine, la sérialisation sera désactivée."
#: ../Doc/library/enum.rst:502
msgid ""
@ -586,11 +584,11 @@ msgstr ""
"cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit "
"où *pickle* peut trouver la classe. Par exemple, si la classe était "
"disponible depuis la classe *SomeData* dans l'espace de nom de plus haut "
"niveau : ::"
"niveau ::"
#: ../Doc/library/enum.rst:509
msgid "The complete signature is::"
msgstr "La signature complète est la suivante : ::"
msgstr "La signature complète est la suivante ::"
#: ../Doc/library/enum.rst:0
msgid "value"
@ -611,19 +609,19 @@ msgid ""
msgstr ""
"Les membres de l'énumération. Une chaîne de caractères séparés par des "
"espaces ou des virgules (la valeur de départ est fixée à 1, sauf si "
"spécifiée autrement) : ::"
"spécifiée autrement) ::"
#: ../Doc/library/enum.rst:520
msgid "or an iterator of names::"
msgstr "ou un itérateur sur les noms : ::"
msgstr "ou un itérateur sur les noms ::"
#: ../Doc/library/enum.rst:524
msgid "or an iterator of (name, value) pairs::"
msgstr "ou un itérateur sur les tuples (nom, valeur) : ::"
msgstr "ou un itérateur sur les tuples (nom, valeur) ::"
#: ../Doc/library/enum.rst:528
msgid "or a mapping::"
msgstr "ou une correspondance : ::"
msgstr "ou une correspondance ::"
#: ../Doc/library/enum.rst:0
msgid "module"
@ -679,7 +677,7 @@ msgstr ""
"La première version dérivée de :class:`Enum` qui existe est aussi une sous-"
"classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être "
"comparés à des entiers et, par extension, les comparaisons entre des "
"énumérations entières de type différent sont possibles : ::"
"énumérations entières de type différent sont possibles ::"
#: ../Doc/library/enum.rst:571
msgid ""
@ -687,14 +685,14 @@ msgid ""
"enumerations::"
msgstr ""
"Elles ne peuvent cependant toujours pas être comparées à des énumérations "
"standards de :class:`Enum` : ::"
"standards de :class:`Enum` ::"
#: ../Doc/library/enum.rst:584
msgid ""
":class:`IntEnum` values behave like integers in other ways you'd expect::"
msgstr ""
"Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on "
"pouvait s'y attendre : ::"
"pouvait s'y attendre ::"
#: ../Doc/library/enum.rst:595
msgid "IntFlag"
@ -722,11 +720,11 @@ msgstr ""
#: ../Doc/library/enum.rst:607
msgid "Sample :class:`IntFlag` class::"
msgstr "Exemple d'une classe :class:`IntFlag` : ::"
msgstr "Exemple d'une classe :class:`IntFlag` ::"
#: ../Doc/library/enum.rst:623
msgid "It is also possible to name the combinations::"
msgstr "Il est aussi possible de nommer les combinaisons : ::"
msgstr "Il est aussi possible de nommer les combinaisons ::"
#: ../Doc/library/enum.rst:635
msgid ""
@ -736,7 +734,7 @@ msgid ""
msgstr ""
"Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est "
"que, si aucune option n'est activée (la valeur vaut 0), son évaluation "
"booléenne est :data:`False` : ::"
"booléenne est :data:`False` ::"
#: ../Doc/library/enum.rst:643
msgid ""
@ -744,7 +742,7 @@ msgid ""
"can be combined with them::"
msgstr ""
"Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:"
"`int`, ils peuvent être combinés avec eux : ::"
"`int`, ils peuvent être combinés avec eux ::"
#: ../Doc/library/enum.rst:651
msgid "Flag"
@ -775,7 +773,7 @@ msgid ""
msgstr ""
"Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :"
"class:`Flag` n'active aucune option, l'évaluation booléenne de la "
"comparaison est :data:`False` : ::"
"comparaison est :data:`False` ::"
#: ../Doc/library/enum.rst:676
msgid ""
@ -783,7 +781,7 @@ msgid ""
"8, ...), while combinations of flags won't::"
msgstr ""
"Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, "
"4, 8, ...) mais pas les combinaisons : ::"
"4, 8, ...) mais pas les combinaisons ::"
#: ../Doc/library/enum.rst:688
msgid ""
@ -791,7 +789,7 @@ msgid ""
"value::"
msgstr ""
"Donner un nom à la valeur « aucune option activée » ne change pas sa valeur "
"booléenne : ::"
"booléenne ::"
#: ../Doc/library/enum.rst:704
msgid ""
@ -822,7 +820,7 @@ msgid ""
"simple to implement independently::"
msgstr ""
"Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait "
"très simple à implémenter hors de ce module : ::"
"très simple à implémenter hors de ce module ::"
#: ../Doc/library/enum.rst:722
msgid ""
@ -961,7 +959,7 @@ msgid ""
"hides the (unimportant) value::"
msgstr ""
"Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` "
"qui masque les valeurs (pas importantes de toute façon) : ::"
"qui masque les valeurs (pas importantes de toute façon) ::"
#: ../Doc/library/enum.rst:782
msgid "Using :class:`auto`"
@ -969,7 +967,7 @@ msgstr "Avec :class:`auto`"
#: ../Doc/library/enum.rst:784
msgid "Using :class:`auto` would look like::"
msgstr "On utilise :class:`auto` de la manière suivante : ::"
msgstr "On utilise :class:`auto` de la manière suivante ::"
#: ../Doc/library/enum.rst:796
msgid "Using :class:`object`"
@ -977,7 +975,7 @@ msgstr "Avec :class:`object`"
#: ../Doc/library/enum.rst:798
msgid "Using :class:`object` would look like::"
msgstr "On utilise :class:`object` de la manière suivante : ::"
msgstr "On utilise :class:`object` de la manière suivante ::"
#: ../Doc/library/enum.rst:810
msgid "Using a descriptive string"
@ -985,7 +983,7 @@ msgstr "Avec une chaîne de caractères de description"
#: ../Doc/library/enum.rst:812
msgid "Using a string as the value would look like::"
msgstr "On utilise une chaîne de caractères de la manière suivante : ::"
msgstr "On utilise une chaîne de caractères de la manière suivante ::"
#: ../Doc/library/enum.rst:826
msgid "Using a custom :meth:`__new__`"
@ -995,7 +993,7 @@ msgstr "Avec une méthode ad-hoc :meth:`__new__`"
msgid "Using an auto-numbering :meth:`__new__` would look like::"
msgstr ""
"On utilise une méthode :meth:`__new__` d'énumération de la manière "
"suivante : ::"
"suivante ::"
#: ../Doc/library/enum.rst:850
msgid ""
@ -1021,7 +1019,7 @@ msgstr ""
"Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, "
"par conséquent, respecte les invariants classiques de :class:`Enum` (comme "
"par exemple l'impossibilité de pouvoir être comparée à d'autres "
"énumérations) ::"
"énumérations) ::"
#: ../Doc/library/enum.rst:892
msgid "DuplicateFreeEnum"
@ -1032,7 +1030,7 @@ msgid ""
"Raises an error if a duplicate member name is found instead of creating an "
"alias::"
msgstr ""
"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias : ::"
"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::"
#: ../Doc/library/enum.rst:919
msgid ""
@ -1054,7 +1052,7 @@ msgid ""
"member will be passed to those methods::"
msgstr ""
"Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de "
"l'énumération sera passée à ces méthodes : ::"
"l'énumération sera passée à ces méthodes ::"
#: ../Doc/library/enum.rst:955
msgid "TimePeriod"
@ -1062,7 +1060,7 @@ msgstr "TimePeriod"
#: ../Doc/library/enum.rst:957
msgid "An example to show the :attr:`_ignore_` attribute in use::"
msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` : ::"
msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::"
#: ../Doc/library/enum.rst:974
msgid "How are Enums different?"
@ -1211,7 +1209,7 @@ msgid ""
msgstr ""
"Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:"
"`_order_` peut être défini. Il sera comparé au véritable ordre de "
"l'énumération et lève une erreur si les deux ne correspondent pas : ::"
"l'énumération et lève une erreur si les deux ne correspondent pas ::"
#: ../Doc/library/enum.rst:1052
msgid ""
@ -1240,7 +1238,7 @@ msgstr ""
"est fortement déconseillé car cette indirection est susceptible d'échouer, "
"ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré "
"(c'est une autre bonne raison pour définir tous les noms des membres en "
"majuscules) : ::"
"majuscules) ::"
#: ../Doc/library/enum.rst:1079
msgid "Boolean value of ``Enum`` classes and members"
@ -1258,7 +1256,7 @@ msgstr ""
"class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les "
"règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour "
"faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du "
"membre, il faut ajouter le code suivant à votre classe : ::"
"membre, il faut ajouter le code suivant à votre classe ::"
#: ../Doc/library/enum.rst:1090
msgid ":class:`Enum` classes always evaluate as :data:`True`."
@ -1276,7 +1274,7 @@ msgid ""
msgstr ""
"Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme "
"la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:"
"`dir` sur le membre, mais pas avec un appel sur la classe : ::"
"`dir` sur le membre, mais pas avec un appel sur la classe ::"
#: ../Doc/library/enum.rst:1107
msgid "Combining members of ``Flag``"
@ -1289,4 +1287,4 @@ msgid ""
msgstr ""
"Si une valeur issue de la combinaison de membres de *Flag* n'est pas "
"associée explicitement à un membre, la fonction :func:`repr` inclut tous les "
"membres et toutes les combinaisons de membres présents dans cette valeur : ::"
"membres et toutes les combinaisons de membres présents dans cette valeur ::"

View File

@ -104,7 +104,7 @@ msgstr ""
"En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` "
"pour lever à nouveau l'exception en cours de traitement), le contexte "
"implicite d'exception peut être complété par une cause explicite en "
"utilisant :keyword:`from` avec :keyword:`raise`: ::"
"utilisant :keyword:`from` avec :keyword:`raise` ::"
#: ../Doc/library/exceptions.rst:50
msgid ""
@ -196,7 +196,7 @@ msgid ""
msgstr ""
"Cette méthode définit *tb* en tant que nouvelle trace d'appels pour "
"l'exception et retourne l'objet exception. Elle est généralement utilisée "
"dans du code de gestion d'exceptions comme ceci: ::"
"dans du code de gestion d'exceptions comme ceci ::"
#: ../Doc/library/exceptions.rst:105
msgid ""

View File

@ -278,4 +278,4 @@ msgid ""
msgstr ""
"Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour "
"effectuer une recherche récursive dans deux répertoires afin d'afficher des "
"fichiers communs différents ::"
"fichiers communs différents ::"

View File

@ -94,7 +94,7 @@ msgstr ""
"traité de manière spéciale par ce module. Voir le module :mod:`glob` pour la "
"recherche de chemins (:mod:`glob` utilise :func:`.filter` pour reconnaître "
"les composants d'un chemin). De la même manière, les noms de fichiers "
"commençant par une virgule ne sont pas traités de manière spéciale par ce "
"commençant par un point ne sont pas traités de manière spéciale par ce "
"module, et sont reconnus par les motifs ``*`` et ``?``."
#: ../Doc/library/fnmatch.rst:52

View File

@ -58,7 +58,7 @@ msgstr ""
#: ../Doc/library/ftplib.rst:68
msgid "Support for the :keyword:`with` statement was added."
msgstr ""
msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée."
#: ../Doc/library/ftplib.rst:71 ../Doc/library/ftplib.rst:92
#: ../Doc/library/ftplib.rst:193

View File

@ -557,7 +557,7 @@ msgid ""
"instance method receives the instance. To declare a class method, use this "
"idiom::"
msgstr ""
"Une méthode de classe reçoit implicitement la classe en premier augment, "
"Une méthode de classe reçoit implicitement la classe en premier argument, "
"tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer "
"une méthode de classe ::"
@ -1707,7 +1707,7 @@ msgid ""
"exhausted, otherwise :exc:`StopIteration` is raised."
msgstr ""
"Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator."
"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, "
"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épuisé, "
"sinon :exc:`StopIteration` est levée."
#: ../Doc/library/functions.rst:931
@ -2902,7 +2902,7 @@ msgid ""
"locals dictionary is only useful for reads since updates to the locals "
"dictionary are ignored."
msgstr ""
"Sans augment, :func:`vars` se comporte comme :func:`locals`. Notez que le "
"Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que le "
"dictionnaire des variables locales n'est utile qu'en lecture, car ses "
"écritures sont ignorées."
@ -3051,8 +3051,8 @@ msgid ""
"On the other hand, the statement ``from spam.ham import eggs, sausage as "
"saus`` results in ::"
msgstr ""
"En revanche, l'instruction ``from spam.ham import eggs, saucage as saus`` "
"donne ::"
"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` "
"donne ::"
#: ../Doc/library/functions.rst:1713
msgid ""

View File

@ -357,7 +357,7 @@ msgstr ""
#: ../Doc/library/functools.rst:265
msgid "Roughly equivalent to::"
msgstr "Sensiblement équivalent à : ::"
msgstr "Sensiblement équivalent à ::"
#: ../Doc/library/functools.rst:280
msgid ""
@ -476,7 +476,7 @@ msgstr ""
"sur la fonction englobante et quels attributs de la fonction englobante sont "
"mis à jour avec les attributs de la fonction originale. Les valeurs par "
"défaut de ces arguments sont les constantes au niveau du module "
"``WRAPPER_ASSIGNMENTS`` (qui assigne``__module__``, ``__name__``, "
"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, "
"``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de "
"documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui "
"met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le "

View File

@ -7,12 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-10 00:49+0200\n"
"PO-Revision-Date: 2019-10-09 17:26+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"X-Generator: Poedit 2.2.4\n"
#: ../Doc/library/getopt.rst:2
@ -22,7 +22,7 @@ msgstr ""
#: ../Doc/library/getopt.rst:8
msgid "**Source code:** :source:`Lib/getopt.py`"
msgstr "**Code source :** :source:`Lib/getopt.py`"
msgstr "**Code source :** :source:`Lib/getopt.py`"
#: ../Doc/library/getopt.rst:12
msgid ""

View File

@ -215,7 +215,7 @@ msgstr ""
#: ../Doc/library/gettext.rst:123
msgid "Here's an example of typical usage for this API::"
msgstr "Voici un exemple classique d'utilisation de cette API : ::"
msgstr "Voici un exemple classique d'utilisation de cette API ::"
#: ../Doc/library/gettext.rst:134
msgid "Class-based API"
@ -373,7 +373,7 @@ msgid ""
"function, like this::"
msgstr ""
"Habituellement, la fonction :func:`_` est appliquée aux chaînes de "
"caractères qui doivent être traduites comme suit : ::"
"caractères qui doivent être traduites comme suit ::"
#: ../Doc/library/gettext.rst:210
msgid ""
@ -535,7 +535,7 @@ msgstr ""
"cela affecte toute l'application, et plus particulièrement l'espace de "
"nommage natif, les modules localisés ne devraient jamais y positionner :func:"
"`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant "
"pour rendre :func:`_` accessible par leurs modules : ::"
"pour rendre :func:`_` accessible par leurs modules ::"
#: ../Doc/library/gettext.rst:317
msgid ""
@ -660,7 +660,7 @@ msgstr ""
#: ../Doc/library/gettext.rst:373
msgid "Here is an example::"
msgstr "Voici un exemple : ::"
msgstr "Voici un exemple ::"
#: ../Doc/library/gettext.rst:386
msgid ""
@ -699,7 +699,7 @@ msgid ""
msgstr ""
"GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais "
"qui a une API légèrement différente. D'après la documentation, elle "
"s'utilise ainsi : ::"
"s'utilise ainsi ::"
#: ../Doc/library/gettext.rst:418
msgid ""
@ -773,7 +773,7 @@ msgstr ""
"Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher "
"toutes les chaînes de caractères de vos fichiers. À chaque chaîne de "
"caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-"
"à-dire en appelant la fonction :func:`_`. Par exemple : ::"
"à-dire en appelant la fonction :func:`_`. Par exemple ::"
#: ../Doc/library/gettext.rst:452
msgid ""
@ -897,7 +897,7 @@ msgstr ""
"Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` "
"de traduction dans les différentes langues naturelles soient dans :file:`/"
"usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous "
"pouvez alors mettre en haut de votre module : ::"
"pouvez alors mettre en haut de votre module ::"
#: ../Doc/library/gettext.rst:515
msgid "Localizing your application"
@ -922,7 +922,7 @@ msgid ""
"main driver file of your application::"
msgstr ""
"Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier "
"principal de votre application : ::"
"principal de votre application ::"
#: ../Doc/library/gettext.rst:528
msgid ""
@ -930,7 +930,7 @@ msgid ""
"`install` function::"
msgstr ""
"Si vous avez besoin de définir le dossier des localisations, vous pouvez le "
"mettre en argument de la fonction :func:`install` : ::"
"mettre en argument de la fonction :func:`install` ::"
#: ../Doc/library/gettext.rst:536
msgid "Changing languages on the fly"
@ -944,7 +944,7 @@ msgid ""
msgstr ""
"Si votre programme a besoin de prendre en charge plusieurs langues en même "
"temps, vous pouvez créer plusieurs instances de traduction, puis basculer "
"entre elles de façon explicite, comme ceci : ::"
"entre elles de façon explicite, comme ceci ::"
#: ../Doc/library/gettext.rst:559
msgid "Deferred translations"
@ -959,7 +959,7 @@ msgstr ""
"Dans la plupart des cas, en programmation, les chaînes de caractères sont "
"traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous "
"ayez besoin de traduire une chaîne de caractères un peu plus loin. Un "
"exemple classique est : ::"
"exemple classique est ::"
#: ../Doc/library/gettext.rst:574
msgid ""
@ -972,7 +972,7 @@ msgstr ""
#: ../Doc/library/gettext.rst:578
msgid "Here is one way you can handle this situation::"
msgstr "Voici un moyen de gérer ce cas : ::"
msgstr "Voici un moyen de gérer ce cas ::"
#: ../Doc/library/gettext.rst:594
msgid ""
@ -1001,7 +1001,7 @@ msgstr ""
#: ../Doc/library/gettext.rst:604
msgid "Another way to handle this is with the following example::"
msgstr "Voici une autre solution : ::"
msgstr "Voici une autre solution ::"
#: ../Doc/library/gettext.rst:618
msgid ""

View File

@ -355,22 +355,22 @@ msgstr "Exemples d'utilisation"
#: ../Doc/library/gzip.rst:181
msgid "Example of how to read a compressed file::"
msgstr "Exemple montrant comment lire un fichier compressé : ::"
msgstr "Exemple montrant comment lire un fichier compressé ::"
#: ../Doc/library/gzip.rst:187
msgid "Example of how to create a compressed GZIP file::"
msgstr "Exemple montrant comment créer un fichier GZIP : ::"
msgstr "Exemple montrant comment créer un fichier GZIP ::"
#: ../Doc/library/gzip.rst:194
msgid "Example of how to GZIP compress an existing file::"
msgstr ""
"Exemple montrant comment compresser dans un GZIP un fichier existant : ::"
"Exemple montrant comment compresser dans un GZIP un fichier existant ::"
#: ../Doc/library/gzip.rst:202
msgid "Example of how to GZIP compress a binary string::"
msgstr ""
"Exemple montrant comment compresser dans un GZIP un binaire dans une "
"chaîne : ::"
"chaîne ::"
#: ../Doc/library/gzip.rst:211
msgid "Module :mod:`zlib`"

View File

@ -75,7 +75,7 @@ msgstr ""
"Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous "
"retournent un objet haché avec la même interface. Par exemple : utilisez :"
"func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez "
"maintenant utilisez cet objet :term:`bytes-like objects <bytes-like object>` "
"maintenant utiliser cet objet :term:`bytes-like objects <bytes-like object>` "
"(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À "
"tout moment vous pouvez demander le :dfn:`digest` de la concaténation des "
"données fournies en utilisant les méthodes :meth:`digest` ou :meth:"
@ -299,9 +299,10 @@ msgid ""
"by the SHAKE algorithm."
msgstr ""
"Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des "
"messages de longueur variable avec des longueurs_en_bits//2 jusqu'à 128 ou "
"256 bits de sécurité. Leurs méthodes *digests* requièrent une longueur. Les "
"longueurs maximales ne sont pas limitées par l'algorithme SHAKE."
"messages de longueur variable avec des ``longueurs_en_bits // 2`` jusqu'à "
"128 ou 256 bits de sécurité. Leurs méthodes *digests* requièrent une "
"longueur. Les longueurs maximales ne sont pas limitées par l'algorithme "
"SHAKE."
#: ../Doc/library/hashlib.rst:208
msgid ""
@ -443,7 +444,7 @@ msgid ""
"**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of "
"any size between 1 and 32 bytes."
msgstr ""
"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant "
"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant "
"des messages de toutes tailles entre 1 et 32 octets."
#: ../Doc/library/hashlib.rst:296

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/heapq.rst:2
msgid ":mod:`heapq` --- Heap queue algorithm"
msgstr ""
msgstr ":mod:`heapq` — File de priorité basée sur un tas"
#: ../Doc/library/heapq.rst:12
msgid "**Source code:** :source:`Lib/heapq.py`"
@ -27,6 +27,8 @@ msgid ""
"This module provides an implementation of the heap queue algorithm, also "
"known as the priority queue algorithm."
msgstr ""
"Ce module expose une implémentation de l'algorithme de file de priorité, "
"basée sur un tas."
#: ../Doc/library/heapq.rst:19
msgid ""
@ -37,6 +39,13 @@ msgid ""
"elements are considered to be infinite. The interesting property of a heap "
"is that its smallest element is always the root, ``heap[0]``."
msgstr ""
"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un "
"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation "
"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= "
"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour "
"contenter l'opérateur de comparaison, les éléments inexistants sont "
"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son "
"plus petit élément est toujours la racine, ``tas[0]``."
#: ../Doc/library/heapq.rst:26
msgid ""
@ -48,6 +57,13 @@ msgid ""
"\"max heap\" is more common in texts because of its suitability for in-place "
"sorting)."
msgstr ""
"L'API ci-dessous diffère de la file de priorité classique par deux aspects : "
"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation "
"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec "
"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* "
"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans "
"les manuels scolaires ; le « tas-max » étant généralement plus courant dans "
"la littérature car il permet le classement sans tampon)."
#: ../Doc/library/heapq.rst:33
msgid ""
@ -55,20 +71,28 @@ msgid ""
"surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains "
"the heap invariant!"
msgstr ""
"Ces deux points permettent d'aborder le tas comme une liste Python standard "
"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` "
"conserve l'invariant du tas !"
#: ../Doc/library/heapq.rst:37
msgid ""
"To create a heap, use a list initialized to ``[]``, or you can transform a "
"populated list into a heap via function :func:`heapify`."
msgstr ""
"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez "
"une liste existante et transformez la en tas à l'aide de la fonction :func:"
"`heapify`."
#: ../Doc/library/heapq.rst:40
msgid "The following functions are provided:"
msgstr "Les fonctions suivantes sont fournies :"
msgstr "Les fonctions suivantes sont fournies :"
#: ../Doc/library/heapq.rst:45
msgid "Push the value *item* onto the *heap*, maintaining the heap invariant."
msgstr ""
"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du "
"tas."
#: ../Doc/library/heapq.rst:50
msgid ""
@ -76,6 +100,9 @@ msgid ""
"invariant. If the heap is empty, :exc:`IndexError` is raised. To access "
"the smallest item without popping it, use ``heap[0]``."
msgstr ""
"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si "
"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au "
"plus petit élément sans le retirer, utilisez ``heap[0]``."
#: ../Doc/library/heapq.rst:57
msgid ""
@ -83,10 +110,15 @@ msgid ""
"*heap*. The combined action runs more efficiently than :func:`heappush` "
"followed by a separate call to :func:`heappop`."
msgstr ""
"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément "
"de *heap*. Cette action combinée est plus efficace que :func:`heappush` "
"suivie par un appel séparé à :func:`heappop`."
#: ../Doc/library/heapq.rst:64
msgid "Transform list *x* into a heap, in-place, in linear time."
msgstr ""
"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps "
"linéaire."
#: ../Doc/library/heapq.rst:69
msgid ""
@ -94,6 +126,9 @@ msgid ""
"*item*. The heap size doesn't change. If the heap is empty, :exc:"
"`IndexError` is raised."
msgstr ""
"Extraie le plus petit élément de *heap* et introduit le nouvel élément "
"*item*. La taille du tas ne change pas. Si le tas est vide, une exception :"
"exc:`IndexError` est levée."
#: ../Doc/library/heapq.rst:72
msgid ""
@ -102,6 +137,10 @@ msgid ""
"heap. The pop/push combination always returns an element from the heap and "
"replaces it with *item*."
msgstr ""
"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` "
"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas "
"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément "
"du tas et le remplace par *item*."
#: ../Doc/library/heapq.rst:77
msgid ""
@ -110,10 +149,15 @@ msgid ""
"combination returns the smaller of the two values, leaving the larger value "
"on the heap."
msgstr ""
"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si "
"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. "
"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs "
"et laisse la plus grande sur le tas."
#: ../Doc/library/heapq.rst:83
msgid "The module also offers three general purpose functions based on heaps."
msgstr ""
"Ce module contient également trois fonctions génériques utilisant les tas."
#: ../Doc/library/heapq.rst:88
msgid ""
@ -121,6 +165,9 @@ msgid ""
"timestamped entries from multiple log files). Returns an :term:`iterator` "
"over the sorted values."
msgstr ""
"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par "
"exemple, fusionne des entrées datées provenant de multiples journaux "
"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées."
#: ../Doc/library/heapq.rst:92
msgid ""
@ -128,6 +175,9 @@ msgid ""
"does not pull the data into memory all at once, and assumes that each of the "
"input streams is already sorted (smallest to largest)."
msgstr ""
"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un "
"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose "
"que chaque flux d'entrée est déjà classé (en ordre croissant)."
#: ../Doc/library/heapq.rst:96
msgid ""
@ -169,6 +219,11 @@ msgid ""
"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, "
"reverse=True)[:n]``."
msgstr ""
"Renvoie une liste contenant les *n* plus grands éléments du jeu de données "
"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une "
"fonction à un argument qui est utilisée pour extraire la clé de comparaison "
"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). "
"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``."
#: ../Doc/library/heapq.rst:122
msgid ""
@ -178,6 +233,11 @@ msgid ""
"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)[:"
"n]``."
msgstr ""
"Renvoie une liste contenant les *n* plus petits éléments du jeu de données "
"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une "
"fonction à un argument qui est utilisée pour extraire la clé de comparaison "
"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). "
"Équivalent à : ``sorted(iterable, key=key)[:n]``."
#: ../Doc/library/heapq.rst:128
msgid ""
@ -187,10 +247,16 @@ msgid ""
"`max` functions. If repeated usage of these functions is required, consider "
"turning the iterable into an actual heap."
msgstr ""
"Les deux fonctions précédentes sont les plus efficaces pour des petites "
"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la "
"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace "
"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez "
"utiliser ces fonctions de façon répétée, il est préférable de transformer "
"l'itérable en tas."
#: ../Doc/library/heapq.rst:136
msgid "Basic Examples"
msgstr ""
msgstr "Exemples simples"
#: ../Doc/library/heapq.rst:138
msgid ""
@ -198,52 +264,71 @@ msgid ""
"pushing all values onto a heap and then popping off the smallest values one "
"at a time::"
msgstr ""
"Un `tri par tas <https://fr.wikipedia.org/wiki/Tri_par_tas>`_ peut être "
"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant "
"l'extraction des éléments un par un ::"
#: ../Doc/library/heapq.rst:151
msgid ""
"This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this "
"implementation is not stable."
msgstr ""
"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:"
"`sorted`, cette implémentation n'est pas stable."
#: ../Doc/library/heapq.rst:154
msgid ""
"Heap elements can be tuples. This is useful for assigning comparison values "
"(such as task priorities) alongside the main record being tracked::"
msgstr ""
"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour "
"assigner des valeurs de comparaison (par exemple, des priorités de tâches) "
"en plus de l'élément qui est suivi ::"
#: ../Doc/library/heapq.rst:167
msgid "Priority Queue Implementation Notes"
msgstr ""
msgstr "Notes d'implémentation de la file de priorité"
#: ../Doc/library/heapq.rst:169
msgid ""
"A `priority queue <https://en.wikipedia.org/wiki/Priority_queue>`_ is common "
"use for a heap, and it presents several implementation challenges:"
msgstr ""
"Une `file de priorité <https://fr.wikipedia.org/wiki/File_de_priorit"
"%C3%A9>`_ est une application courante des tas et présente plusieurs défis "
"d'implémentation :"
#: ../Doc/library/heapq.rst:172
msgid ""
"Sort stability: how do you get two tasks with equal priorities to be "
"returned in the order they were originally added?"
msgstr ""
"Stabilité du classement : comment s'assurer que deux tâches avec la même "
"priorité sont renvoyées dans l'ordre de leur ajout ?"
#: ../Doc/library/heapq.rst:175
msgid ""
"Tuple comparison breaks for (priority, task) pairs if the priorities are "
"equal and the tasks do not have a default comparison order."
msgstr ""
"La comparaison des couples (priorité, tâche) échoue si les priorités sont "
"identiques et que les tâches n'ont pas de relation d'ordre par défaut."
#: ../Doc/library/heapq.rst:178
msgid ""
"If the priority of a task changes, how do you move it to a new position in "
"the heap?"
msgstr ""
"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle "
"position dans le tas ?"
#: ../Doc/library/heapq.rst:181
msgid ""
"Or if a pending task needs to be deleted, how do you find it and remove it "
"from the queue?"
msgstr ""
"Si une tâche en attente doit être supprimée, comment la trouver et la "
"supprimer de la file ?"
#: ../Doc/library/heapq.rst:184
msgid ""
@ -253,6 +338,13 @@ msgid ""
"returned in the order they were added. And since no two entry counts are the "
"same, the tuple comparison will never attempt to directly compare two tasks."
msgstr ""
"Une solution aux deux premiers problèmes consiste à stocker les entrées sous "
"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la "
"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux "
"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. "
"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la "
"comparaison des triplets ne va jamais chercher à comparer des tâches entre "
"elles."
#: ../Doc/library/heapq.rst:190
msgid ""
@ -260,6 +352,9 @@ msgid ""
"wrapper class that ignores the task item and only compares the priority "
"field::"
msgstr ""
"Une autre solution au fait que les tâches ne possèdent pas de relation "
"d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche "
"et ne compare que le champ priorité ::"
#: ../Doc/library/heapq.rst:201
msgid ""
@ -267,6 +362,9 @@ msgid ""
"changes to its priority or removing it entirely. Finding a task can be done "
"with a dictionary pointing to an entry in the queue."
msgstr ""
"Le problème restant consiste à trouver une tâche en attente et modifier sa "
"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un "
"dictionnaire pointant vers une entrée dans la file."
#: ../Doc/library/heapq.rst:205
msgid ""
@ -274,10 +372,14 @@ msgid ""
"would break the heap structure invariants. So, a possible solution is to "
"mark the entry as removed and add a new entry with the revised priority::"
msgstr ""
"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela "
"romprait l'invariant de la structure de tas. Une solution possible est de "
"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa "
"priorité modifiée ::"
#: ../Doc/library/heapq.rst:239
msgid "Theory"
msgstr ""
msgstr "Théorie"
#: ../Doc/library/heapq.rst:241
msgid ""
@ -286,12 +388,19 @@ msgid ""
"elements are considered to be infinite. The interesting property of a heap "
"is that ``a[0]`` is always its smallest element."
msgstr ""
"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= "
"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour "
"simplifier la comparaison, les éléments inexistants sont considérés comme "
"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus "
"petit élément."
#: ../Doc/library/heapq.rst:246
msgid ""
"The strange invariant above is meant to be an efficient memory "
"representation for a tournament. The numbers below are *k*, not ``a[k]``::"
msgstr ""
"L'invariant étrange ci-dessus est une représentation efficace en mémoire "
"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::"
#: ../Doc/library/heapq.rst:259
msgid ""
@ -305,6 +414,17 @@ msgid ""
"two cells it tops contain three different items, but the top cell \"wins\" "
"over the two topped cells."
msgstr ""
"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k"
"+2``. Dans les tournois binaires habituels dans les compétitions sportives, "
"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons "
"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient "
"ses adversaires. Cependant, dans de nombreuses applications informatiques de "
"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. "
"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa "
"promotion par un autre élément à un plus bas niveau. La règle devient alors "
"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments "
"différents, mais le nœud supérieur « gagne » contre les deux nœuds "
"inférieurs."
#: ../Doc/library/heapq.rst:268
msgid ""
@ -316,6 +436,15 @@ msgid ""
"logarithmic on the total number of items in the tree. By iterating over all "
"items, you get an O(n log n) sort."
msgstr ""
"Si cet invariant de tas est vérifié à tout instant, alors l'élément à "
"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le "
"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant "
"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à "
"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur "
"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette "
"approche a un coût logarithmique par rapport au nombre total d'éléments dans "
"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n "
"log n) opérations."
#: ../Doc/library/heapq.rst:275
msgid ""
@ -328,6 +457,16 @@ msgid ""
"easily go into the heap. So, a heap is a good structure for implementing "
"schedulers (this is what I used for my MIDI sequencer :-)."
msgstr ""
"Une propriété agréable de cet algorithme est qu'il est possible d'insérer "
"efficacement de nouveaux éléments en cours de classement, du moment que les "
"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été "
"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la "
"liste des événements arrivants et que la condition de « victoire » est le "
"plus petit temps d'exécution planifié. Lorsqu'un événement programme "
"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et "
"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour "
"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon "
"séquenceur MIDI ☺)."
#: ../Doc/library/heapq.rst:284
msgid ""
@ -337,6 +476,11 @@ msgid ""
"average case. However, there are other representations which are more "
"efficient overall, yet the worst cases might be terrible."
msgstr ""
"Plusieurs structures ont été étudiées en détail pour implémenter des "
"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement "
"rapides, leur vitesse est presque constante et le pire cas ne diffère pas "
"trop du cas moyen. S'il existe des représentations qui sont plus efficaces "
"en général, les pires cas peuvent être terriblement mauvais."
#: ../Doc/library/heapq.rst:290
msgid ""
@ -351,6 +495,18 @@ msgid ""
"which are twice the size of the memory for random input, and much better for "
"input fuzzily ordered."
msgstr ""
"Les tas sont également très utiles pour ordonner les données sur de gros "
"disques. Vous savez probablement qu'un gros tri implique la production de "
"séquences pré-classées (dont la taille est généralement liée à la quantité "
"de mémoire CPU disponible), suivie par une passe de fusion qui est "
"généralement organisée de façon très intelligente [#]_. Il est très "
"important que le classement initial produise des séquences les plus longues "
"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en "
"utilisant toute la mémoire disponible pour stocker un tournoi, vous "
"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la "
"séquence courante, vous produirez des séquences d'une taille égale au double "
"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée "
"approximativement triée."
#: ../Doc/library/heapq.rst:300
msgid ""
@ -362,12 +518,23 @@ msgid ""
"the first heap is melting. When the first heap completely vanishes, you "
"switch heaps and start a new run. Clever and quite effective!"
msgstr ""
"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez "
"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa "
"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne "
"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La "
"mémoire libérée peut être réutilisée immédiatement pour progressivement "
"construire un deuxième tas, qui croit à la même vitesse que le premier "
"décroît. Lorsque le premier tas a complètement disparu, vous échangez les "
"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !"
#: ../Doc/library/heapq.rst:308
msgid ""
"In a word, heaps are useful memory structures to know. I use them in a few "
"applications, and I think it is good to keep a 'heap' module around. :-)"
msgstr ""
"Pour résumer, les tas sont des structures de données qu'il est bon de "
"connaître. Je les utilise dans quelques applications et je pense qu'il est "
"bon de garder le module *heap* sous le coude. ☺"
#: ../Doc/library/heapq.rst:312
msgid "Footnotes"
@ -385,3 +552,14 @@ msgid ""
"Believe me, real good tape sorts were quite spectacular to watch! From all "
"times, sorting has always been a Great Art! :-)"
msgstr ""
"Les algorithmes de répartition de charge pour les disques, courants de nos "
"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à "
"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire "
"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin "
"était différent et il fallait être malin pour s'assurer (bien à l'avance) "
"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire "
"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes "
"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de "
"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient "
"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été "
"le Grand Art ! ☺"

View File

@ -17,6 +17,8 @@ msgstr ""
#: ../Doc/library/hmac.rst:2
msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication"
msgstr ""
":mod:`hmac` — Authentification de messages par hachage en combinaison avec "
"une clé secrète"
#: ../Doc/library/hmac.rst:10
msgid "**Source code:** :source:`Lib/hmac.py`"
@ -25,6 +27,7 @@ msgstr "**Code source :** :source:`Lib/hmac.py`"
#: ../Doc/library/hmac.rst:14
msgid "This module implements the HMAC algorithm as described by :rfc:`2104`."
msgstr ""
"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`."
#: ../Doc/library/hmac.rst:19
msgid ""
@ -41,6 +44,9 @@ msgid ""
"of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the "
"name of a hash algorithm."
msgstr ""
"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre "
"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le "
"paramètre *digestmod* peut être le nom d'un algorithme de hachage."
#: ../Doc/library/hmac.rst:31
msgid "MD5 as implicit default digest for *digestmod* is deprecated."
@ -54,6 +60,12 @@ msgid ""
"The parameters *key*, *msg*, and *digest* have the same meaning as in :func:"
"`~hmac.new`."
msgstr ""
"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à "
"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, "
"digest).digest()``, mais elle utilise une implémentation optimisée en C ou "
"*inline*, qui est plus rapide pour les messages dont la taille leur permet "
"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la "
"même signification que pour :func:`~hmac.new`."
#: ../Doc/library/hmac.rst:42
msgid ""
@ -61,10 +73,13 @@ msgid ""
"when *digest* is a string and name of a digest algorithm, which is supported "
"by OpenSSL."
msgstr ""
"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée "
"que lorsque le *digest* est une chaîne de caractères et le nom d'un "
"algorithme de hachage implémenté dans OpenSSL."
#: ../Doc/library/hmac.rst:49
msgid "An HMAC object has the following methods:"
msgstr ""
msgstr "Un objet HMAC a les méthodes suivantes :"
#: ../Doc/library/hmac.rst:53
msgid ""
@ -72,10 +87,14 @@ msgid ""
"single call with the concatenation of all the arguments: ``m.update(a); m."
"update(b)`` is equivalent to ``m.update(a + b)``."
msgstr ""
"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un "
"seul appel avec la concaténation de tous les arguments : ``m.update(a); m."
"update(b)`` est équivalent à ``m.update(a + b)``."
#: ../Doc/library/hmac.rst:57
msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`."
msgstr ""
"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`."
#: ../Doc/library/hmac.rst:63
msgid ""
@ -84,6 +103,10 @@ msgid ""
"given to the constructor. It may contain non-ASCII bytes, including NUL "
"bytes."
msgstr ""
"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque "
"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de "
"la fonction de hachage donnée au constructeur. Il peut contenir des octets "
"qui ne sont pas dans la table ASCII, y compris des octets NUL."
#: ../Doc/library/hmac.rst:70
msgid ""
@ -92,6 +115,10 @@ msgid ""
"`compare_digest` function instead of the ``==`` operator to reduce the "
"vulnerability to timing attacks."
msgstr ""
"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu "
"par ailleurs par un service extérieur durant une routine de vérification, il "
"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de "
"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles."
#: ../Doc/library/hmac.rst:78
msgid ""
@ -99,6 +126,10 @@ msgid ""
"length containing only hexadecimal digits. This may be used to exchange the "
"value safely in email or other non-binary environments."
msgstr ""
"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de "
"caractères de taille doublée contenant seulement des chiffres hexadécimaux. "
"Cela permet déchanger le résultat sans problèmes par e-mail ou dans "
"d'autres environnements ne gérant pas les données binaires."
#: ../Doc/library/hmac.rst:84
msgid ""
@ -107,6 +138,11 @@ msgid ""
"`compare_digest` function instead of the ``==`` operator to reduce the "
"vulnerability to timing attacks."
msgstr ""
"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat "
"connu obtenu par un service extérieur durant une routine de vérification, il "
"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de "
"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur "
"les temps de réponse."
#: ../Doc/library/hmac.rst:92
msgid ""
@ -114,14 +150,21 @@ msgid ""
"efficiently compute the digests of strings that share a common initial "
"substring."
msgstr ""
"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de "
"manière efficace les empreintes cryptographiques de chaînes de caractères "
"qui ont en commun une sous-chaîne initiale."
#: ../Doc/library/hmac.rst:96
msgid "A hash object has the following attributes:"
msgstr "L'objet haché possède les attributs suivants ::"
msgstr ""
"Un objet *code d'authentification de message* (HMAC) possède les attributs "
"suivants :"
#: ../Doc/library/hmac.rst:100
msgid "The size of the resulting HMAC digest in bytes."
msgstr ""
"La taille du code d'authentification (c-à-d de l'empreinte cryptographique) "
"en octets."
#: ../Doc/library/hmac.rst:104
msgid "The internal block size of the hash algorithm in bytes."
@ -130,10 +173,12 @@ msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets."
#: ../Doc/library/hmac.rst:110
msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``."
msgstr ""
"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple "
"``hmac-md5``."
#: ../Doc/library/hmac.rst:115
msgid "This module also provides the following helper function:"
msgstr ""
msgstr "Ce module fournit également la fonction utilitaire suivante :"
#: ../Doc/library/hmac.rst:119
msgid ""
@ -143,6 +188,12 @@ msgid ""
"either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC."
"hexdigest`), or a :term:`bytes-like object`."
msgstr ""
"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques "
"temporelles en évitant l'implémentation de courts-circuits basés sur le "
"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* "
"doivent être du même type : soit :class:`str` (caractères ASCII seulement, "
"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like "
"object`."
#: ../Doc/library/hmac.rst:127
msgid ""
@ -150,11 +201,14 @@ msgid ""
"attack could theoretically reveal information about the types and lengths of "
"*a* and *b*—but not their values."
msgstr ""
"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une "
"attaque temporelle pourrait en théorie obtenir des informations sur les "
"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs."
#: ../Doc/library/hmac.rst:137
msgid "Module :mod:`hashlib`"
msgstr ""
msgstr "Module :mod:`hashlib`"
#: ../Doc/library/hmac.rst:138
msgid "The Python module providing secure hash functions."
msgstr ""
msgstr "Le module Python fournissant des fonctions de hachage sécurisé."

View File

@ -205,7 +205,7 @@ msgid ""
msgstr ""
"Si *rawdata* est une chaine de caractères, l'analyser comme étant un "
"``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`"
"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::"
"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::"
#: ../Doc/library/http.cookies.rst:124
msgid "Morsel Objects"

View File

@ -7,13 +7,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-19 22:32+0200\n"
"PO-Revision-Date: 2019-07-02 11:42+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/library/idle.rst:4
@ -580,7 +579,7 @@ msgstr ""
#: ../Doc/library/idle.rst:241
msgid "Run... Customized"
msgstr ""
msgstr "Run... Customized"
#: ../Doc/library/idle.rst:238
msgid ""
@ -588,6 +587,10 @@ msgid ""
"settings. *Command Line Arguments* extend :data:`sys.argv` as if passed on "
"a command line. The module can be run in the Shell without restarting."
msgstr ""
"Similaire à :ref:`Run Module <run-module>`, mais lance le module avec des "
"paramètres personnalisés. Les *Command Line Arguments* se rajoutent à :data:"
"`sys.argv` comme s'ils étaient passés par la ligne de commande. Le module "
"peut être lancé dans le terminal sans avoir à le redémarrer."
#: ../Doc/library/idle.rst:244
msgid "Shell menu (Shell window only)"
@ -648,7 +651,8 @@ msgstr "Menu *Debug* (fenêtre de console uniquement)"
msgid "Go to File/Line"
msgstr "*Go to File/Line*"
# Look on the current line. with the cursor, and the line above for a filename and line number.
# Look on the current line. with the cursor, and the line above for a filename
# and line number.
# Il y a des erreurs d'anglais là-dedans...
#: ../Doc/library/idle.rst:265
msgid ""
@ -1540,7 +1544,8 @@ msgstr ""
"redémarrer la console dans le menu Shell peut résoudre un problème "
"temporaire."
# ... this can be prevented by never editing the files by hand, using the configuration dialog, under Options, instead Options.
# ... this can be prevented by never editing the files by hand, using the
# configuration dialog, under Options, instead Options.
# Qu'est-ce que ça veut dire ???
#: ../Doc/library/idle.rst:677
msgid ""
@ -1560,7 +1565,8 @@ msgstr ""
"la solution peut être de supprimer un ou plusieurs des fichiers de "
"configuration."
# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m idlelib``)...
# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m
# idlelib``)...
#: ../Doc/library/idle.rst:684
msgid ""
"If IDLE quits with no message, and it was not started from a console, try "
@ -1654,6 +1660,8 @@ msgid ""
"When user code raises SystemExit either directly or by calling sys.exit, "
"IDLE returns to a Shell prompt instead of exiting."
msgstr ""
"Lorsque l'utilisateur lève `SystemExit` directement ou en appelant ``sys."
"exit``, IDLE revient au terminal IDLE au lieu de quitter."
#: ../Doc/library/idle.rst:724
msgid "User output in Shell"

View File

@ -54,7 +54,7 @@ msgstr ""
#: ../Doc/library/imaplib.rst:50
msgid "Support for the :keyword:`with` statement was added."
msgstr ""
msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée."
#: ../Doc/library/imaplib.rst:53
msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:"

View File

@ -1320,7 +1320,7 @@ msgstr ""
#: ../Doc/library/io.rst:965
msgid "Example usage::"
msgstr ""
msgstr "Exemple d'utilisation ::"
#: ../Doc/library/io.rst:987
msgid ""
@ -1330,7 +1330,7 @@ msgstr ""
#: ../Doc/library/io.rst:992
msgid "Performance"
msgstr ""
msgstr "Performances"
#: ../Doc/library/io.rst:994
msgid ""

View File

@ -20,7 +20,7 @@ msgstr ""
#: ../Doc/library/ipaddress.rst:9
msgid "**Source code:** :source:`Lib/ipaddress.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/ipaddress.py`"
#: ../Doc/library/ipaddress.rst:13
msgid ""
@ -676,7 +676,7 @@ msgstr ""
#: ../Doc/library/ipaddress.rst:693
msgid "Iteration"
msgstr ""
msgstr "Itération"
#: ../Doc/library/ipaddress.rst:695
msgid ""

View File

@ -18,8 +18,7 @@ msgstr ""
#: ../Doc/library/itertools.rst:2
msgid ":mod:`itertools` --- Functions creating iterators for efficient looping"
msgstr ""
":mod:`itertools` --- Fonctions créant des itérateurs pour boucler "
"efficacement."
":mod:`itertools` — Fonctions créant des itérateurs pour boucler efficacement"
#: ../Doc/library/itertools.rst:16
msgid ""
@ -28,8 +27,8 @@ msgid ""
"suitable for Python."
msgstr ""
"Ce module implémente de nombreuses briques :term:`d'itérateurs <itérateur>` "
"inspirées par des constructions de APL, Haskell et SML. Toutes ont été "
"retravaillées dans un format adéquat pour Python."
"inspirées par des éléments de APL, Haskell et SML. Toutes ont été "
"retravaillées dans un format adapté à Python."
#: ../Doc/library/itertools.rst:20
msgid ""
@ -38,10 +37,10 @@ msgid ""
"algebra\" making it possible to construct specialized tools succinctly and "
"efficiently in pure Python."
msgstr ""
"Ce module standardise un noyau d'outils rapide, efficaces en mémoire qui "
"sont utiles d'eux-mêmes ou en les combinant. Ensemble, ils forment une "
"\"algèbre d'itérateurs\" rendant possible la construction succincte et "
"efficace d'outils spécialisés en Python seulement."
"Ce module standardise un ensemble de base d'outils rapides et efficaces en "
"mémoire qui peuvent être utilisés individuellement ou en les combinant. "
"Ensemble, ils forment une « algèbre d'itérateurs » rendant possible la "
"construction rapide et efficace d'outils spécialisés en Python."
#: ../Doc/library/itertools.rst:25
msgid ""
@ -50,7 +49,7 @@ msgid ""
"by combining :func:`map` and :func:`count` to form ``map(f, count())``."
msgstr ""
"Par exemple, SML fournit un outil de tabulation ``tabulate(f)`` qui produit "
"une séquence ``f(0), f(1), ...``. Le même résultat peut être achevé en "
"une séquence ``f(0), f(1), ...``. Le même résultat peut être obtenu en "
"Python en combinant :func:`map` et :func:`count` pour former ``map(f, "
"count())``."
@ -61,10 +60,10 @@ msgid ""
"multiplication operator can be mapped across two vectors to form an "
"efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``."
msgstr ""
"Ces outils et leurs équivalents intégrés fonctionnent aussi bien avec les "
"fonction à grande vitesse dans le module :mod:`operator`. Par exemple, "
"l'opérateur de multiplication peut être appliqué à deux vecteurs pour créer "
"un produit scalaire efficace ``sum(map(operator.mul, vecteur1, vecteur2))``."
"Ces outils et leurs équivalents natifs fonctionnent également bien avec les "
"fonctions optimisées du module :mod:`operator`. Par exemple, l'opérateur de "
"multiplication peut être appliqué à deux vecteurs pour créer un produit "
"scalaire efficace : ``sum(map(operator.mul, vecteur1, vecteur2))``."
#: ../Doc/library/itertools.rst:35
msgid "**Infinite iterators:**"
@ -224,7 +223,7 @@ msgstr ":func:`filterfalse`"
#: ../Doc/library/itertools.rst:55
msgid "elements of seq where pred(elem) is false"
msgstr "éléments de *seq* quand *pred(elem)* est faux"
msgstr "éléments de *seq* pour lesquels *pred(elem)* est faux"
#: ../Doc/library/itertools.rst:55
msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``"
@ -337,8 +336,8 @@ msgstr "p[, r]"
#: ../Doc/library/itertools.rst:70
msgid "r-length tuples, all possible orderings, no repeated elements"
msgstr ""
"*tuples* de longueur *r*, tous les ré-arrangements possibles, sans "
"répétition d'éléments"
"n-uplets de longueur r, tous les ré-arrangements possibles, sans répétition "
"d'éléments"
#: ../Doc/library/itertools.rst:71
msgid ":func:`combinations`"
@ -350,7 +349,7 @@ msgstr "p, r"
#: ../Doc/library/itertools.rst:71
msgid "r-length tuples, in sorted order, no repeated elements"
msgstr "tuples de longueur r, triés, sans répétition d'éléments"
msgstr "n-uplets de longueur r, ordonnés, sans répétition d'éléments"
#: ../Doc/library/itertools.rst:72
msgid ":func:`combinations_with_replacement`"
@ -358,7 +357,7 @@ msgstr ":func:`combinations_with_replacement`"
#: ../Doc/library/itertools.rst:72
msgid "r-length tuples, in sorted order, with repeated elements"
msgstr "tuples de longueur r, triés, avec répétition d'éléments"
msgstr "n-uplets de longueur r, ordonnés, avec répétition d'éléments"
#: ../Doc/library/itertools.rst:73
msgid "``product('ABCD', repeat=2)``"
@ -402,10 +401,10 @@ msgid ""
"provide streams of infinite length, so they should only be accessed by "
"functions or loops that truncate the stream."
msgstr ""
"Toutes les fonctions de module qui suivent construisent et renvoient des "
"itérateurs. Certaines fournissent des flux de longueur infinie, elles "
"devraient seulement être accédées par des fonctions ou boucles qui tronquent "
"le flux."
"Toutes les fonctions du module qui suivent construisent et renvoient des "
"itérateurs. Certaines produisent des flux de longueur infinie ; celles-ci ne "
"doivent donc être contrôlées que par des fonctions ou boucles qui "
"interrompent le flux."
#: ../Doc/library/itertools.rst:91
msgid ""
@ -432,7 +431,7 @@ msgstr ""
#: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:478
#: ../Doc/library/itertools.rst:557 ../Doc/library/itertools.rst:610
msgid "Roughly equivalent to::"
msgstr "Sensiblement équivalent à : ::"
msgstr "À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:117
msgid ""
@ -444,14 +443,15 @@ msgid ""
"modeled by supplying the initial value in the iterable and using only the "
"accumulated total in *func* argument::"
msgstr ""
"Il y a de nombreuses utilisations pour l'argument *func*. Il peut être :func:"
"`min` pour un minimum glissant, :func:`max` pour un maximum glissant, ou :"
"func:`operator.mul` pour un produit glissant. Des tableaux de remboursement "
"peuvent être construites en accumulant l'intérêt et en déposant des "
"paiements. Des `suites de récurrences <https://fr.wikipedia.org/wiki/Suite_d"
"%C3%A9finie_par_r%C3%A9currence>`_ de premier ordre peuvent être modélisées "
"en renseignant la valeur initiale dans l'itérable et en utilisant seulement "
"le total accumulé dans l'argument *func* : ::"
"Il y a de nombreuses utilisations à l'argument *func*. Celui-ci peut être :"
"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum "
"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de "
"remboursements peuvent être construits en ajoutant les intérêts et en "
"soustrayant les paiements. Des `suites par récurrence <https://fr.wikipedia."
"org/wiki/Suite_d%C3%A9finie_par_r%C3%A9currence>`_ de premier ordre peuvent "
"être modélisées en en passant la valeur initiale dans *iterable* et en "
"n'utilisant que le premier argument de *func*, qui contient le résultat des "
"évaluations précédentes ::"
#: ../Doc/library/itertools.rst:147
msgid ""
@ -463,7 +463,7 @@ msgstr ""
#: ../Doc/library/itertools.rst:152
msgid "Added the optional *func* parameter."
msgstr "Le paramètre optionnel *func* a été ajouté."
msgstr "Ajout du paramètre optionnel *func*."
#: ../Doc/library/itertools.rst:157
msgid ""
@ -472,10 +472,10 @@ msgid ""
"are exhausted. Used for treating consecutive sequences as a single "
"sequence. Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui renvoie les éléments du premier itérable jusqu'à son "
"Crée un itérateur qui renvoie les éléments du premier itérable jusqu'à son "
"épuisement, puis continue avec l'itérable suivant jusqu'à ce que tous les "
"itérables soient épuisés. Utilisée pour traiter des séquences consécutives "
"comme une seule séquence Sensiblement équivalente à : ::"
"comme une seule séquence. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:171
msgid ""
@ -483,12 +483,12 @@ msgid ""
"iterable argument that is evaluated lazily. Roughly equivalent to::"
msgstr ""
"Constructeur alternatif pour :func:`chain`. Récupère des entrées chaînées "
"d'un unique argument itérable qui est évalué de manière paresseuse. "
"Sensiblement équivalente à : ::"
"depuis un unique itérable passé en argument, qui est évalué de manière "
"paresseuse. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:183
msgid "Return *r* length subsequences of elements from the input *iterable*."
msgstr "Renvoyer les sous-séquences de longueur *r* de l'itérable *iterable*."
msgstr "Renvoie les combinaisons de longueur *r* de *iterable*."
#: ../Doc/library/itertools.rst:185 ../Doc/library/itertools.rst:234
msgid ""
@ -496,9 +496,9 @@ msgid ""
"*iterable* is sorted, the combination tuples will be produced in sorted "
"order."
msgstr ""
"Les combinaisons sont émises dans l'ordre lexicographique. Ainsi, si "
"l'itérable *iterable* est trié, les *tuples* de combinaison seront produits "
"dans l'ordre."
"Les combinaisons sont produites dans l'ordre lexicographique. Ainsi, si "
"l'itérable *iterable* est ordonné, les n-uplets de combinaison produits le "
"sont aussi."
#: ../Doc/library/itertools.rst:189
msgid ""
@ -516,9 +516,9 @@ msgid ""
"func:`permutations` after filtering entries where the elements are not in "
"sorted order (according to their position in the input pool)::"
msgstr ""
"Le code de :func:`combinations` peut aussi être exprimé comme une sous-"
"séquence de :func:`permutations` après avoir filtré les entrées dont les "
"éléments ne sont pas triés (selon leur position dans le *pool* d'entrée) : ::"
"Un appel à :func:`combinations` peut aussi être vu comme à un appel à :func:"
"`permutations` en excluant les sorties dans lesquelles les éléments ne sont "
"pas ordonnés (avec la même relation d'ordre que pour l'entrée) ::"
#: ../Doc/library/itertools.rst:226
msgid ""
@ -553,10 +553,10 @@ msgid ""
"a subsequence of :func:`product` after filtering entries where the elements "
"are not in sorted order (according to their position in the input pool)::"
msgstr ""
"Le code pour :func:`combinations_with_replacement` peut aussi être exprimé "
"comme une sous-séquence de :func:`product` après avoir filtré les entrées où "
"les éléments ne sont pas dans triés (selon leur position dans le *pool* "
"d'entrée) : ::"
"Un appel à :func:`combinations_with_replacement` peut aussi être vu comme un "
"appel à :func:`product` en excluant les sorties dans lesquelles les éléments "
"ne sont pas dans ordonnés (avec la même relation d'ordre que pour "
"l'entrée) ::"
#: ../Doc/library/itertools.rst:272
msgid ""
@ -571,10 +571,10 @@ msgid ""
"Stops when either the *data* or *selectors* iterables has been exhausted. "
"Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui filtre les éléments de *data*, renvoyant seulement "
"ceux qui ont un élément correspondant dans *selectors* qui évalue à "
"``True``. S'arrête quand l'itérable *data* ou *selectors* a été épuisé. "
"Sensiblement équivalent à : ::"
"Crée un itérateur qui filtre les éléments de *data*, en ne renvoyant que "
"ceux dont l'élément correspondant dans *selectors* s'évalue à ``True``. "
"S'arrête quand l'itérable *data* ou *selectors* a été épuisé. À peu près "
"équivalent à ::"
#: ../Doc/library/itertools.rst:293
msgid ""
@ -583,10 +583,10 @@ msgid ""
"data points. Also, used with :func:`zip` to add sequence numbers. Roughly "
"equivalent to::"
msgstr ""
"Créer un itérateur qui renvoie les valeurs espacées également commençant par "
"le nombre *start*. Souvent utilisée comme un argument de :func:`map` pour "
"générer des points de données consécutifs. Aussi utilisé avec :func:`zip` "
"pour ajouter des nombres de séquence. Sensiblement équivalent à : ::"
"Crée un itérateur qui renvoie des valeurs espacées régulièrement, en "
"commençant par le nombre *start*. Souvent utilisé comme un argument de :func:"
"`map` pour générer des points de données consécutifs. Aussi utilisé avec :"
"func:`zip` pour ajouter des nombres de séquence. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:305
msgid ""
@ -594,9 +594,9 @@ msgid ""
"achieved by substituting multiplicative code such as: ``(start + step * i "
"for i in count())``."
msgstr ""
"Quand on compte avec des nombres à virgule flottante, il est parfois "
"possible d'obtenir une meilleure précision en substituant du code "
"multiplicateur comme : ``(start + step * i for i in count())``."
"Pour compter avec des nombres à virgule flottante, il est parfois préférable "
"d'utiliser le code : ``(start + step * i for i in count())`` pour obtenir "
"une meilleure précision."
#: ../Doc/library/itertools.rst:309
msgid "Added *step* argument and allowed non-integer arguments."
@ -610,18 +610,17 @@ msgid ""
"each. When the iterable is exhausted, return elements from the saved copy. "
"Repeats indefinitely. Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui renvoie les éléments de l'itérable et qui sauvegarde "
"une copie de chaque. Quand l'itérable est épuisé, renvoyer les éléments "
"depuis la copie sauvegardée. Répète à l'infini. Sensiblement équivalent "
"à : ::"
"Crée un itérateur qui renvoie les éléments de l'itérable en en sauvegardant "
"une copie. Quand l'itérable est épuisé, renvoie les éléments depuis la "
"sauvegarde. Répète à l'infini. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:328
msgid ""
"Note, this member of the toolkit may require significant auxiliary storage "
"(depending on the length of the iterable)."
msgstr ""
"Note, cette fonction pourrait avoir besoin d'un stockage auxiliaire "
"important (en fonction de la longueur de l'itérable)."
"Note, cette fonction peut avoir besoin d'un stockage auxiliaire important "
"(en fonction de la longueur de l'itérable)."
#: ../Doc/library/itertools.rst:334
msgid ""
@ -630,10 +629,10 @@ msgid ""
"does not produce *any* output until the predicate first becomes false, so it "
"may have a lengthy start-up time. Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui saute les éléments de l'itérable tant que le prédicat "
"est vrai ; ensuite, renvoyer chaque élément. Note, l'itérateur ne produit "
"Crée un itérateur qui saute les éléments de l'itérable tant que le prédicat "
"est vrai ; renvoie ensuite chaque élément. Notez que l'itérateur ne produit "
"*aucune* sortie avant que le prédicat ne devienne faux, il peut donc avoir "
"un temps de démarrage long. Sensiblement équivalent à : ::"
"un temps de démarrage long. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:351
msgid ""
@ -641,9 +640,9 @@ msgid ""
"for which the predicate is ``False``. If *predicate* is ``None``, return the "
"items that are false. Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui filtre les éléments de *iterable*, ne renvoyant "
"seulement ceux pour lesquels le prédicat est ``Faux``. Si *predicate* vaut "
"``None``, renvoyer les éléments qui sont faux. Sensiblement équivalent à : ::"
"Crée un itérateur qui filtre les éléments de *iterable*, ne renvoyant "
"seulement ceux pour lesquels le prédicat est ``False``. Si *predicate* vaut "
"``None``, renvoie les éléments qui sont faux. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:366
msgid ""
@ -653,12 +652,12 @@ msgid ""
"returns the element unchanged. Generally, the iterable needs to already be "
"sorted on the same key function."
msgstr ""
"Créer un itérateur qui renvoie les clés et les groupes de l'itérable "
"Crée un itérateur qui renvoie les clés et les groupes de l'itérable "
"*iterable*. La clé *key* est une fonction qui génère une clé pour chaque "
"élément. Si *key* n'est pas spécifié ou est ``None``, elle vaut par défaut "
"élément. Si *key* n'est pas spécifiée ou est ``None``, elle vaut par défaut "
"une fonction d'identité qui renvoie l'élément sans le modifier. "
"Généralement, l'itérable a besoin d'être déjà trié selon cette même fonction "
"de clé."
"Généralement, l'itérable a besoin d'avoir ses éléments déjà classés selon "
"cette même fonction de clé."
#: ../Doc/library/itertools.rst:372
msgid ""
@ -685,12 +684,12 @@ msgstr ""
"Le groupe renvoyé est lui-même un itérateur qui partage l'itérable sous-"
"jacent avec :func:`groupby`. Puisque que la source est partagée, quand "
"l'objet :func:`groupby` est avancé, le groupe précédent n'est plus visible. "
"Ainsi, si cette donnée doit être utilisée plus tard, elle devrait être "
"stockée comme une liste : ::"
"Ainsi, si cette donnée doit être utilisée plus tard, elle doit être stockée "
"comme une liste ::"
#: ../Doc/library/itertools.rst:390
msgid ":func:`groupby` is roughly equivalent to::"
msgstr ":func:`groupby` est sensiblement équivalent à : ::"
msgstr ":func:`groupby` est à peu près équivalente à ::"
#: ../Doc/library/itertools.rst:423
msgid ""
@ -705,18 +704,18 @@ msgid ""
"the internal structure has been flattened (for example, a multi-line report "
"may list a name field on every third line). Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui renvoie les élément sélectionnés de l'itérable. Si "
"*start* est non-nul, alors les éléments de l'itérable sont sautés jusqu'à ce "
"que *start* soit atteint. Ensuite, les éléments sont renvoyés "
"Crée un itérateur qui renvoie les élément sélectionnés de l'itérable. Si "
"*start* est différent de zéro, alors les éléments de l'itérable sont ignorés "
"jusqu'à ce que *start* soit atteint. Ensuite, les éléments sont renvoyés "
"consécutivement sauf si *step* est plus grand que 1, auquel cas certains "
"éléments seront sautés. Si *stop* est ``None``, alors l'itération continue "
"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue "
"jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il "
"s'arrête à la position spécifiée. À la différence du *slicing* standard, :"
"func:`slice` ne supporte pas les valeurs négatives pour *start*, *stop* ou "
"*step*. Peut être utilisée pour extraire les champs apparentés depuis des "
"s'arrête à la position spécifiée. À la différence des tranches standards, :"
"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou "
"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des "
"données dont la structure interne a été aplatie (par exemple, un rapport "
"multi-ligne pourrait lister un nom de champ toutes les trois lignes). "
"Sensiblement similaire à : ::"
"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu "
"près similaire à ::"
#: ../Doc/library/itertools.rst:458
msgid ""
@ -730,7 +729,7 @@ msgstr ""
msgid ""
"Return successive *r* length permutations of elements in the *iterable*."
msgstr ""
"Renvoyer les permutations successives de longueur *r* des éléments de "
"Renvoie les arrangements successifs de longueur *r* des éléments de "
"*iterable*."
#: ../Doc/library/itertools.rst:466
@ -749,8 +748,8 @@ msgid ""
"order."
msgstr ""
"Les permutations sont émises dans l'ordre lexicographique. Ainsi, si "
"l'itérable d'entrée *iterable* est trié, les *tuples* de permutation seront "
"produits dans l'ordre."
"l'itérable d'entrée *iterable* est classé, les n-uplets de permutation sont "
"produits dans ce même ordre."
#: ../Doc/library/itertools.rst:474
msgid ""
@ -768,9 +767,9 @@ msgid ""
"func:`product`, filtered to exclude entries with repeated elements (those "
"from the same position in the input pool)::"
msgstr ""
"Le code pour :func:`permutations` peut aussi être exprimé comme une sous-"
"séquence de :func:`product`, filtré pour exclure les entrées avec des "
"éléments répétés (celles de la même position dans la *pool* d'entrée) : ::"
"Un appel à :func:`permutations` peut aussi être vu un appel à :func:"
"`product` en excluant les sorties avec des doublons (avec la même relation "
"d'ordre que pour l'entrée) ::"
#: ../Doc/library/itertools.rst:517
msgid ""
@ -790,9 +789,9 @@ msgid ""
"example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in "
"B)``."
msgstr ""
"Sensiblement équivalent à des boucles *for* imbriquées dans une expression "
"de générateur. Par exemple ``product(A, B)`` renvoie la même chose que "
"``((x, y) for x in A for y in B)``."
"À peu près équivalent à des boucles *for* imbriquées dans une expression de "
"générateur. Par exemple ``product(A, B)`` renvoie la même chose que ``((x, "
"y) for x in A for y in B)``."
#: ../Doc/library/itertools.rst:527
msgid ""
@ -802,9 +801,9 @@ msgid ""
"sorted order."
msgstr ""
"Les boucles imbriquées tournent comme un compteur kilométrique avec "
"l'élément le plus à droite avançant à chaque itération. ce motif créé un tri "
"lexicographique afin que si les itérables de l'entrée sont triés, les "
"*tuples* de produit sont émis dans l'ordre."
"l'élément le plus à droite avançant à chaque itération. Ce motif défini un "
"ordre lexicographique afin que, si les éléments des itérables en l'entrée "
"sont ordonnés, les n-uplets produits le sont aussi."
#: ../Doc/library/itertools.rst:532
msgid ""
@ -812,17 +811,18 @@ msgid ""
"repetitions with the optional *repeat* keyword argument. For example, "
"``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``."
msgstr ""
"Pour générer le produit d'un itérable avec lui-même, spécifier le nombre de "
"Pour générer le produit d'un itérable avec lui-même, spécifiez le nombre de "
"répétitions avec le paramètre nommé optionnel *repeat*. Par exemple, "
"``product(A, repeat=4)`` veut dire la même chose que ``product(A, A, A, A)``."
"``product(A, repeat=4)`` est équivalent à ``product(A, A, A, A)``."
#: ../Doc/library/itertools.rst:536
msgid ""
"This function is roughly equivalent to the following code, except that the "
"actual implementation does not build up intermediate results in memory::"
msgstr ""
"Cette fonction est sensiblement équivalente au code suivant, saut que la "
"vraie implémentation ne créé pas les résultats intermédiaires en mémoire : ::"
"Cette fonction est à peu près équivalente au code suivant, à la différence "
"près que la vraie implémentation ne crée pas de résultats intermédiaires en "
"mémoire ::"
#: ../Doc/library/itertools.rst:552
msgid ""
@ -831,18 +831,18 @@ msgid ""
"func:`map` for invariant parameters to the called function. Also used with :"
"func:`zip` to create an invariant part of a tuple record."
msgstr ""
"Créer un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment "
"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment "
"sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:"
"`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée "
"avec :func:`zip` pour créer une partie invariante d'un *tuple*."
"avec :func:`zip` pour créer une partie invariante d'un n-uplet."
#: ../Doc/library/itertools.rst:568
msgid ""
"A common use for *repeat* is to supply a stream of constant values to *map* "
"or *zip*::"
msgstr ""
"Une utilisation commune de *repeat* est de fournir un flux constant de "
"valeurs à *map* ou *zip* : ::"
"Une utilisation courante de *repeat* est de fournir un flux constant de "
"valeurs à *map* ou *zip* ::"
#: ../Doc/library/itertools.rst:576
msgid ""
@ -853,24 +853,24 @@ msgid ""
"the distinction between ``function(a,b)`` and ``function(*c)``. Roughly "
"equivalent to::"
msgstr ""
"Créer un itérateur qui exécute la fonction avec les arguments obtenus de "
"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis "
"l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà "
"groupés en *tuples* depuis un seul itérable (la donnée a déjà été \"pré-"
"zippée\"). La différence entre :func:`map` et :func:`starmap` est similaire "
"à la différence entre ``fonction(a,b)`` et ``fonction(*c)``. Sensiblement "
"équivalent à : ::"
"groupés en n-uplets depuis un seul itérable  la donnée a déjà été « pré-"
"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à "
"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près "
"équivalent à ::"
#: ../Doc/library/itertools.rst:590
msgid ""
"Make an iterator that returns elements from the iterable as long as the "
"predicate is true. Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui renvoie les éléments d'un itérable tant que le "
"prédicat est vrai. Sensiblement équivalent à : ::"
"Crée un itérateur qui renvoie les éléments d'un itérable tant que le "
"prédicat est vrai. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:604
msgid "Return *n* independent iterators from a single iterable."
msgstr "Renvoyer *n* itérateurs indépendant depuis un unique itérable."
msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable."
#: ../Doc/library/itertools.rst:606
msgid ""
@ -878,9 +878,9 @@ msgid ""
"implementation is more complex and uses only a single underlying :abbr:`FIFO "
"(first-in, first-out)` queue)."
msgstr ""
"Le code Python qui suit aide à expliquer ce que fait *tee* (bien que la "
"vraie implémentation est plus complexe et n'utilise qu'une file :abbr:`FIFO "
"(first-in, first-out)`)."
"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la "
"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO "
"(premier entré, premier sorti ou *first-in, first-out* en anglais)`."
#: ../Doc/library/itertools.rst:627
msgid ""
@ -889,8 +889,8 @@ msgid ""
"tee objects being informed."
msgstr ""
"Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne "
"devrait être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être "
"avancé sans que les objets tee soient informés."
"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être "
"avancé sans que les objets tee ne soient informés."
#: ../Doc/library/itertools.rst:631
msgid ""
@ -899,11 +899,11 @@ msgid ""
"most or all of the data before another iterator starts, it is faster to use :"
"func:`list` instead of :func:`tee`."
msgstr ""
"Cet outil pourrait avoir besoin d'un stockage auxiliaire important (en "
"fonction de la taille des données temporaires nécessaires). En général, si "
"un itérateur utilise la majorité ou toute la donnée avant qu'un autre "
"itérateur ne commence, il est plus rapide d'utiliser :func:`list` à la place "
"de :func:`tee`."
"Cet outil peut avoir besoin d'un stockage auxiliaire important (en fonction "
"de la taille des données temporaires nécessaires). En général, si un "
"itérateur utilise la majorité ou toute la donnée avant qu'un autre itérateur "
"ne commence, il est plus rapide d'utiliser :func:`list` à la place de :func:"
"`tee`."
#: ../Doc/library/itertools.rst:639
msgid ""
@ -912,10 +912,10 @@ msgid ""
"*fillvalue*. Iteration continues until the longest iterable is exhausted. "
"Roughly equivalent to::"
msgstr ""
"Créer un itérateur qui agrège les éléments de chacun des itérables. Si les "
"Crée un itérateur qui agrège les éléments de chacun des itérables. Si les "
"itérables sont de longueurs différentes, les valeurs manquantes sont "
"remplacées par *fillvalue*. L'itération continue jusqu'à ce que l'itérable "
"le plus long soit épuisé. Sensiblement équivalent à : ::"
"le plus long soit épuisé. À peu près équivalent à ::"
#: ../Doc/library/itertools.rst:663
msgid ""
@ -925,7 +925,7 @@ msgid ""
"specified, *fillvalue* defaults to ``None``."
msgstr ""
"Si un des itérables est potentiellement infini, alors la fonction :func:"
"`zip_longest` devrait être entourée avec quelque chose qui limite le nombre "
"`zip_longest` doit être encapsulée dans un code qui limite le nombre "
"d'appels (par exemple, :func:`islice` ou :func:`takewhile`). Si *fillvalue* "
"n'est pas spécifié, il vaut ``None`` par défaut."
@ -938,8 +938,8 @@ msgid ""
"This section shows recipes for creating an extended toolset using the "
"existing itertools as building blocks."
msgstr ""
"Cette section montre des recettes pour créer une boîte à outil étendue en se "
"servant des *itertools* existants comme de briques."
"Cette section présente des recettes pour créer une vaste boîte à outils en "
"se servant des *itertools* existants comme des briques."
#: ../Doc/library/itertools.rst:677
msgid ""
@ -955,9 +955,10 @@ msgstr ""
"jacents. La performance mémoire supérieure est gardée en traitant les "
"éléments un à la fois plutôt que de charger tout l'itérable en mémoire en "
"même temps. Le volume de code reste bas grâce à un chaînage de style "
"fonctionnel qui aide à éliminer des variables temporaires. La grande vitesse "
"est gardée en préférant les briques \"vectorisées\" plutôt que les boucles "
"*for* et les :term:`générateur`\\s qui engendrent du sur-coût de traitement."
"fonctionnel qui aide à éliminer les variables temporaires. La grande vitesse "
"est gardée en préférant les briques « vectorisées » plutôt que les boucles "
"*for* et les :term:`générateurs <generator>` qui engendrent un surcoût de "
"traitement."
#: ../Doc/library/itertools.rst:899
msgid ""

View File

@ -49,27 +49,27 @@ msgstr ""
#: ../Doc/library/json.rst:24
msgid "Encoding basic Python object hierarchies::"
msgstr "Encodage d'objets Python basiques : ::"
msgstr "Encodage d'objets Python basiques ::"
#: ../Doc/library/json.rst:43
msgid "Compact encoding::"
msgstr "Encodage compact : ::"
msgstr "Encodage compact ::"
#: ../Doc/library/json.rst:49
msgid "Pretty printing::"
msgstr "Affichage élégant : ::"
msgstr "Affichage élégant ::"
#: ../Doc/library/json.rst:58
msgid "Decoding JSON::"
msgstr "Décodage JSON : ::"
msgstr "Décodage JSON ::"
#: ../Doc/library/json.rst:70
msgid "Specializing JSON object decoding::"
msgstr "Spécialisation du décodage JSON pour un objet : ::"
msgstr "Spécialisation du décodage JSON pour un objet ::"
#: ../Doc/library/json.rst:85
msgid "Extending :class:`JSONEncoder`::"
msgstr "Étendre la classe :class:`JSONEncoder` : ::"
msgstr "Étendre la classe :class:`JSONEncoder` ::"
#: ../Doc/library/json.rst:103
msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:"
@ -496,7 +496,7 @@ msgstr "*null*"
#: ../Doc/library/json.rst:313 ../Doc/library/json.rst:400
msgid "None"
msgstr "*None*"
msgstr "``None``"
#: ../Doc/library/json.rst:316
msgid ""
@ -684,7 +684,7 @@ msgid ""
"like this::"
msgstr ""
"Par exemple, pour supporter des itérateurs arbitraires, vous pourriez "
"implémenter *default* comme cela : ::"
"implémenter *default* comme cela ::"
#: ../Doc/library/json.rst:484
msgid ""
@ -692,7 +692,7 @@ msgid ""
"example::"
msgstr ""
"Renvoie une chaîne JSON représentant la structure de données Python *o*. "
"Par exemple : ::"
"Par exemple ::"
#: ../Doc/library/json.rst:493
msgid ""
@ -700,7 +700,7 @@ msgid ""
"available. For example::"
msgstr ""
"Encode l'objet *o* donné, et produit chaque chaîne représentant l'objet "
"selon disponibilité. Par exemple : ::"
"selon disponibilité. Par exemple ::"
#: ../Doc/library/json.rst:501
msgid "Exceptions"
@ -884,7 +884,7 @@ msgstr ""
"La RFC spécifie que les noms au sein d'un objet JSON doivent être uniques, "
"mais ne décrit pas comment les noms répétés doivent être gérés. Par défaut, "
"ce module ne lève pas d'exception ; à la place, il ignore tous les couples "
"nom/valeur sauf le dernier pour un nom donné : ::"
"nom/valeur sauf le dernier pour un nom donné ::"
#: ../Doc/library/json.rst:613
msgid "The *object_pairs_hook* parameter can be used to alter this behavior."

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/locale.rst:2
msgid ":mod:`locale` --- Internationalization services"
msgstr ""
msgstr ":mod:`locale` — Services d'internationalisation"
#: ../Doc/library/locale.rst:10
msgid "**Source code:** :source:`Lib/locale.py`"
@ -29,22 +29,33 @@ msgid ""
"certain cultural issues in an application, without requiring the programmer "
"to know all the specifics of each country where the software is executed."
msgstr ""
"Le module :mod:`locale` donne accès à la base de données et aux "
"fonctionnalités des paramètres linguistiques définis par POSIX. Le mécanisme "
"des paramètres linguistiques de POSIX permet aux développeurs de faire face "
"à certaines problématiques culturelles dans une application, sans avoir à "
"connaître toutes les spécificités de chaque pays où le logiciel est exécuté."
#: ../Doc/library/locale.rst:21
msgid ""
"The :mod:`locale` module is implemented on top of the :mod:`_locale` module, "
"which in turn uses an ANSI C locale implementation if available."
msgstr ""
"Le module :mod:`locale` est implémenté au-dessus du module :mod:`_locale`, "
"qui lui-même utilise l'implémentation du paramètre régional ANSI C si "
"disponible."
#: ../Doc/library/locale.rst:24
msgid "The :mod:`locale` module defines the following exception and functions:"
msgstr ""
"Le module :mod:`locale` définit l'exception et les fonctions suivantes :"
#: ../Doc/library/locale.rst:29
msgid ""
"Exception raised when the locale passed to :func:`setlocale` is not "
"recognized."
msgstr ""
"Exception levée lorsque le paramètre régional passé en paramètre de :func:"
"`setlocale` n'est pas reconnu."
#: ../Doc/library/locale.rst:35
msgid ""
@ -57,18 +68,31 @@ msgid ""
"exception :exc:`Error` is raised. If successful, the new locale setting is "
"returned."
msgstr ""
"Si *locale* ne vaut pas ``None``, :func:`setlocale` modifie le paramètre "
"régional pour la catégorie *category*. Les catégories disponibles sont "
"listées dans la description des données ci-dessous. *locale* peut être une "
"chaîne de caractères ou un itérable de deux chaînes de caractères (code de "
"la langue et encodage). Si c'est un itérable, il est converti en un nom de "
"paramètre régional à l'aide du moteur de normalisation fait pour. Si c'est "
"une chaîne vide, les paramètres par défaut de l'utilisateur sont utilisés. "
"Si la modification du paramètre régional échoue, l'exception :exc:`Error` "
"est levée. Si elle fonctionne, le nouveau paramètre est renvoyé."
#: ../Doc/library/locale.rst:43
msgid ""
"If *locale* is omitted or ``None``, the current setting for *category* is "
"returned."
msgstr ""
"Si *locale* est omis ou vaut ``None``, le paramètre actuel de *category* est "
"renvoyé."
#: ../Doc/library/locale.rst:46
msgid ""
":func:`setlocale` is not thread-safe on most systems. Applications typically "
"start with a call of ::"
msgstr ""
":func:`setlocale` n'est pas *thread-safe* sur la plupart des systèmes. Les "
"applications commencent généralement par un appel de : ::"
#: ../Doc/library/locale.rst:52
msgid ""
@ -77,20 +101,28 @@ msgid ""
"locale is not changed thereafter, using multithreading should not cause "
"problems."
msgstr ""
"Cela définit les paramètres régionaux dans toutes les catégories sur ceux "
"par défaut de l'utilisateur (habituellement spécifiés dans la variable "
"d'environnement :envvar:`LANG`). Si les paramètres régionaux ne sont pas "
"modifiés par la suite, l'utilisation de fils d'exécution ne devrait pas "
"poser de problèmes."
#: ../Doc/library/locale.rst:59
msgid ""
"Returns the database of the local conventions as a dictionary. This "
"dictionary has the following strings as keys:"
msgstr ""
"Renvoie la base de données des conventions locales sous forme de "
"dictionnaire. Ce dictionnaire a les chaînes de caractères suivantes comme "
"clés :"
#: ../Doc/library/locale.rst:65
msgid "Category"
msgstr ""
msgstr "Catégorie"
#: ../Doc/library/locale.rst:65
msgid "Key"
msgstr ""
msgstr "Clé"
#: ../Doc/library/locale.rst:65
msgid "Meaning"
@ -107,6 +139,8 @@ msgstr "``'decimal_point'``"
#: ../Doc/library/locale.rst:67
msgid "Decimal point character."
msgstr ""
"Caractère du séparateur décimal (entre la partie entière et la partie "
"décimale)."
#: ../Doc/library/locale.rst:69
msgid "``'grouping'``"
@ -119,6 +153,11 @@ msgid ""
"`CHAR_MAX`, no further grouping is performed. If the sequence terminates "
"with a ``0``, the last group size is repeatedly used."
msgstr ""
"Séquence de nombres spécifiant les positions relatives attendues pour "
"``'thousands_sep'`` (séparateur de milliers). Si la séquence se termine "
"par :const:`CHAR_MAX`, aucun autre regroupement n'est effectué. Si la "
"séquence se termine par un ``0``, la dernière taille du groupe est utilisée "
"à plusieurs reprises."
#: ../Doc/library/locale.rst:80
msgid "``'thousands_sep'``"
@ -126,7 +165,7 @@ msgstr "``'thousands_sep'``"
#: ../Doc/library/locale.rst:80
msgid "Character used between groups."
msgstr ""
msgstr "Caractère utilisé entre les groupes (séparateur de milliers)."
#: ../Doc/library/locale.rst:82
msgid ":const:`LC_MONETARY`"
@ -138,7 +177,7 @@ msgstr "``'int_curr_symbol'``"
#: ../Doc/library/locale.rst:82
msgid "International currency symbol."
msgstr ""
msgstr "Symbole monétaire international."
#: ../Doc/library/locale.rst:84
msgid "``'currency_symbol'``"
@ -146,7 +185,7 @@ msgstr "``'currency_symbol'``"
#: ../Doc/library/locale.rst:84
msgid "Local currency symbol."
msgstr ""
msgstr "Symbole monétaire local."
#: ../Doc/library/locale.rst:86
msgid "``'p_cs_precedes/n_cs_precedes'``"
@ -157,6 +196,8 @@ msgid ""
"Whether the currency symbol precedes the value (for positive resp. negative "
"values)."
msgstr ""
"Si le symbole monétaire précède ou non la valeur (pour les valeurs positives "
"et négatives, respectivement)."
#: ../Doc/library/locale.rst:91
msgid "``'p_sep_by_space/n_sep_by_space'``"
@ -167,6 +208,8 @@ msgid ""
"Whether the currency symbol is separated from the value by a space (for "
"positive resp. negative values)."
msgstr ""
"Si le symbole monétaire est séparé de la valeur par une espace ou non (pour "
"les valeurs positives et négatives, respectivement)."
#: ../Doc/library/locale.rst:96
msgid "``'mon_decimal_point'``"
@ -175,6 +218,8 @@ msgstr "``'mon_decimal_point'``"
#: ../Doc/library/locale.rst:96
msgid "Decimal point used for monetary values."
msgstr ""
"Séparateur décimal (entre la partie entière et la partie décimale) utilisé "
"pour les valeurs monétaires."
#: ../Doc/library/locale.rst:99
msgid "``'frac_digits'``"
@ -184,6 +229,7 @@ msgstr "``'frac_digits'``"
msgid ""
"Number of fractional digits used in local formatting of monetary values."
msgstr ""
"Nombre de décimales utilisées dans le format local des valeurs monétaires."
#: ../Doc/library/locale.rst:103
msgid "``'int_frac_digits'``"
@ -194,6 +240,8 @@ msgid ""
"Number of fractional digits used in international formatting of monetary "
"values."
msgstr ""
"Nombre de décimales utilisées dans le format international des valeurs "
"monétaires."
#: ../Doc/library/locale.rst:107
msgid "``'mon_thousands_sep'``"
@ -201,7 +249,7 @@ msgstr "``'mon_thousands_sep'``"
#: ../Doc/library/locale.rst:107
msgid "Group separator used for monetary values."
msgstr ""
msgstr "Séparateur de groupe utilisé pour les valeurs monétaires."
#: ../Doc/library/locale.rst:110
msgid "``'mon_grouping'``"
@ -209,7 +257,7 @@ msgstr "``'mon_grouping'``"
#: ../Doc/library/locale.rst:110
msgid "Equivalent to ``'grouping'``, used for monetary values."
msgstr ""
msgstr "Équivalent de ``'grouping'``, utilisé pour les valeurs monétaires."
#: ../Doc/library/locale.rst:113
msgid "``'positive_sign'``"
@ -217,7 +265,7 @@ msgstr "``'positive_sign'``"
#: ../Doc/library/locale.rst:113
msgid "Symbol used to annotate a positive monetary value."
msgstr ""
msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est positive."
#: ../Doc/library/locale.rst:116
msgid "``'negative_sign'``"
@ -225,7 +273,7 @@ msgstr "``'negative_sign'``"
#: ../Doc/library/locale.rst:116
msgid "Symbol used to annotate a negative monetary value."
msgstr ""
msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est négative."
#: ../Doc/library/locale.rst:119
msgid "``'p_sign_posn/n_sign_posn'``"
@ -235,18 +283,24 @@ msgstr "``'p_sign_posn/n_sign_posn'``"
msgid ""
"The position of the sign (for positive resp. negative values), see below."
msgstr ""
"Position du signe (pour les valeurs positives et négatives, respectivement), "
"voir ci-dessous."
#: ../Doc/library/locale.rst:124
msgid ""
"All numeric values can be set to :const:`CHAR_MAX` to indicate that there is "
"no value specified in this locale."
msgstr ""
"Toutes les valeurs numériques peuvent être définies à :const:`CHAR_MAX` pour "
"indiquer qu'il n'y a pas de valeur spécifiée pour ces paramètres régionaux."
#: ../Doc/library/locale.rst:127
msgid ""
"The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given "
"below."
msgstr ""
"Les valeurs possibles pour ``'p_sign_posn'`` et ``'n_sign_posn'`` sont "
"données ci-dessous."
#: ../Doc/library/locale.rst:130
msgid "Value"
@ -262,7 +316,7 @@ msgstr "``0``"
#: ../Doc/library/locale.rst:132
msgid "Currency and value are surrounded by parentheses."
msgstr ""
msgstr "Le symbole monétaire et la valeur sont entourés de parenthèses."
#: ../Doc/library/locale.rst:135
msgid "``1``"
@ -270,7 +324,7 @@ msgstr "``1``"
#: ../Doc/library/locale.rst:135
msgid "The sign should precede the value and currency symbol."
msgstr ""
msgstr "Le signe doit précéder la valeur et le symbole monétaire."
#: ../Doc/library/locale.rst:138
msgid "``2``"
@ -278,7 +332,7 @@ msgstr "``2``"
#: ../Doc/library/locale.rst:138
msgid "The sign should follow the value and currency symbol."
msgstr ""
msgstr "Le signe doit suivre la valeur et le symbole monétaire."
#: ../Doc/library/locale.rst:141
msgid "``3``"
@ -286,7 +340,7 @@ msgstr "``3``"
#: ../Doc/library/locale.rst:141
msgid "The sign should immediately precede the value."
msgstr ""
msgstr "Le signe doit précéder immédiatement la valeur."
#: ../Doc/library/locale.rst:144
msgid "``4``"
@ -294,7 +348,7 @@ msgstr "``4``"
#: ../Doc/library/locale.rst:144
msgid "The sign should immediately follow the value."
msgstr ""
msgstr "Le signe doit suivre immédiatement la valeur."
#: ../Doc/library/locale.rst:147
msgid "``CHAR_MAX``"
@ -302,7 +356,7 @@ msgstr "``CHAR_MAX``"
#: ../Doc/library/locale.rst:147
msgid "Nothing is specified in this locale."
msgstr ""
msgstr "Rien n'est spécifié dans ces paramètres régionaux."
#: ../Doc/library/locale.rst:150
msgid ""
@ -316,6 +370,8 @@ msgid ""
"The function now sets temporarily the ``LC_CTYPE`` locale to the "
"``LC_NUMERIC`` locale in some cases."
msgstr ""
"La fonction définit maintenant la valeur du paramètre ``LC_CTYPE`` à celle "
"du paramètre ``LC_NUMERIC`` temporairement dans certains cas."
#: ../Doc/library/locale.rst:161
msgid ""
@ -324,6 +380,11 @@ msgid ""
"across platforms. The possible argument values are numbers, for which "
"symbolic constants are available in the locale module."
msgstr ""
"Renvoie quelques informations spécifiques aux paramètres régionaux sous "
"forme de chaîne. Cette fonction n'est pas disponible sur tous les systèmes "
"et l'ensemble des options possibles peut également varier d'une plateforme à "
"l'autre. Les valeurs possibles pour les arguments sont des nombres, pour "
"lesquels des constantes symboliques sont disponibles dans le module *locale*."
#: ../Doc/library/locale.rst:166
msgid ""
@ -331,84 +392,114 @@ msgid ""
"descriptions are taken from the corresponding description in the GNU C "
"library."
msgstr ""
"La fonction :func:`nl_langinfo` accepte l'une des clés suivantes. La "
"plupart des descriptions sont extraites des descriptions correspondantes "
"dans la bibliothèque GNU C."
#: ../Doc/library/locale.rst:172
msgid ""
"Get a string with the name of the character encoding used in the selected "
"locale."
msgstr ""
"Récupère une chaîne avec le nom de l'encodage des caractères utilisé par le "
"paramètre régional sélectionné."
#: ../Doc/library/locale.rst:177
msgid ""
"Get a string that can be used as a format string for :func:`time.strftime` "
"to represent date and time in a locale-specific way."
msgstr ""
"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :"
"func:`time.strftime` afin de représenter la date et l'heure pour un "
"paramètre régional spécifique."
#: ../Doc/library/locale.rst:182
msgid ""
"Get a string that can be used as a format string for :func:`time.strftime` "
"to represent a date in a locale-specific way."
msgstr ""
"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :"
"func:`time.strftime` afin de représenter une date pour un paramètre régional "
"spécifique."
#: ../Doc/library/locale.rst:187
msgid ""
"Get a string that can be used as a format string for :func:`time.strftime` "
"to represent a time in a locale-specific way."
msgstr ""
"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :"
"func:`time.strftime` afin de représenter une heure pour un paramètre "
"régional spécifique."
#: ../Doc/library/locale.rst:192
msgid ""
"Get a format string for :func:`time.strftime` to represent time in the am/pm "
"format."
msgstr ""
"Récupère une chaîne de format pour :func:`time.strftime` afin de représenter "
"l'heure au format am / pm."
#: ../Doc/library/locale.rst:197
msgid "Get the name of the n-th day of the week."
msgstr ""
msgstr "Récupère le nom du n-ième jour de la semaine."
#: ../Doc/library/locale.rst:201
msgid ""
"This follows the US convention of :const:`DAY_1` being Sunday, not the "
"international convention (ISO 8601) that Monday is the first day of the week."
msgstr ""
"Cela suit la convention américaine qui définit :const:`DAY_1` comme étant "
"dimanche, et non la convention internationale (ISO 8601) où lundi est le "
"premier jour de la semaine."
#: ../Doc/library/locale.rst:207
msgid "Get the abbreviated name of the n-th day of the week."
msgstr ""
msgstr "Récupère l'abréviation du n-ième jour de la semaine."
#: ../Doc/library/locale.rst:211
msgid "Get the name of the n-th month."
msgstr ""
msgstr "Récupère le nom du n-ième mois."
#: ../Doc/library/locale.rst:215
msgid "Get the abbreviated name of the n-th month."
msgstr ""
msgstr "Récupère l'abréviation du n-ième mois."
#: ../Doc/library/locale.rst:219
msgid "Get the radix character (decimal dot, decimal comma, etc.)."
msgstr ""
"Récupère le caractère de séparation *radix* (point décimal, virgule "
"décimale, etc.)."
#: ../Doc/library/locale.rst:223
msgid "Get the separator character for thousands (groups of three digits)."
msgstr ""
"Récupère le caractère de séparation des milliers (groupes de 3 chiffres)."
#: ../Doc/library/locale.rst:227
msgid ""
"Get a regular expression that can be used with the regex function to "
"recognize a positive response to a yes/no question."
msgstr ""
"Récupère une expression régulière qui peut être utilisée par la fonction "
"*regex* pour reconnaître une réponse positive à une question fermée (oui / "
"non)."
#: ../Doc/library/locale.rst:232
msgid ""
"The expression is in the syntax suitable for the :c:func:`regex` function "
"from the C library, which might differ from the syntax used in :mod:`re`."
msgstr ""
"L'expression est dans une syntaxe adaptée à la fonction :c:func:`regex` de "
"la bibliothèque C, qui peut différer de la syntaxe utilisée par :mod:`re`."
#: ../Doc/library/locale.rst:237
msgid ""
"Get a regular expression that can be used with the regex(3) function to "
"recognize a negative response to a yes/no question."
msgstr ""
"Récupère une expression régulière qui peut être utilisée par la fonction "
"*regex(3)* pour reconnaître une réponse négative à une question fermée "
"(oui / non)."
#: ../Doc/library/locale.rst:242
msgid ""
@ -416,10 +507,15 @@ msgid ""
"before the value, \"+\" if the symbol should appear after the value, or \"."
"\" if the symbol should replace the radix character."
msgstr ""
"Récupère le symbole monétaire, précédé de « - » si le symbole doit "
"apparaître avant la valeur, « + » s'il doit apparaître après la valeur, ou "
"« . » s'il doit remplacer le caractère de séparation *radix*."
#: ../Doc/library/locale.rst:248
msgid "Get a string that represents the era used in the current locale."
msgstr ""
"Récupère une chaîne qui représente l'ère utilisée pour le paramètre régional "
"actuel."
#: ../Doc/library/locale.rst:250
msgid ""
@ -428,6 +524,10 @@ msgid ""
"representation of dates includes the name of the era corresponding to the "
"then-emperor's reign."
msgstr ""
"La plupart des paramètres régionaux ne définissent pas cette valeur. Un "
"exemple de région qui définit bien cette valeur est le japonais. Au Japon, "
"la représentation traditionnelle des dates comprend le nom de l'ère "
"correspondant au règne de l'empereur de l'époque."
#: ../Doc/library/locale.rst:255
msgid ""
@ -437,36 +537,51 @@ msgid ""
"specified, and therefore you should not assume knowledge of it on different "
"systems."
msgstr ""
"Normalement, il ne devrait pas être nécessaire d'utiliser cette valeur "
"directement. Spécifier le modificateur ``E`` dans leurs chaînes de format "
"provoque l'utilisation de cette information par la fonction :func:`time."
"strftime`. Le format de la chaîne renvoyée n'est pas spécifié, et vous ne "
"devez donc pas supposer en avoir connaissance sur des systèmes différents."
#: ../Doc/library/locale.rst:263
msgid ""
"Get a format string for :func:`time.strftime` to represent date and time in "
"a locale-specific era-based way."
msgstr ""
"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter "
"la date et l'heure pour un paramètre régional spécifique basée sur une ère."
#: ../Doc/library/locale.rst:268
msgid ""
"Get a format string for :func:`time.strftime` to represent a date in a "
"locale-specific era-based way."
msgstr ""
"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter "
"une date pour un paramètre régional spécifique basée sur une ère."
#: ../Doc/library/locale.rst:273
msgid ""
"Get a format string for :func:`time.strftime` to represent a time in a "
"locale-specific era-based way."
msgstr ""
"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter "
"une heure pour un paramètre régional spécifique basée sur une ère."
#: ../Doc/library/locale.rst:278
msgid ""
"Get a representation of up to 100 values used to represent the values 0 to "
"99."
msgstr ""
"Récupère une représentation de 100 valeurs maximum utilisées pour "
"représenter les valeurs de 0 à 99."
#: ../Doc/library/locale.rst:284
msgid ""
"Tries to determine the default locale settings and returns them as a tuple "
"of the form ``(language code, encoding)``."
msgstr ""
"Tente de déterminer les paramètres régionaux par défaut, puis les renvoie "
"sous la forme d'un n-uplet ``(code de la langue, encodage)``."
#: ../Doc/library/locale.rst:287
msgid ""
@ -476,6 +591,12 @@ msgid ""
"Since we do not want to interfere with the current locale setting we thus "
"emulate the behavior in the way described above."
msgstr ""
"D'après POSIX, un programme qui n'a pas appelé ``setlocale(LC_ALL, '')`` "
"fonctionne en utilisant le paramètre régional portable ``'C'``. Appeler "
"``setlocale(LC_ALL, '')`` lui permet d'utiliser les paramètres régionaux par "
"défaut définis par la variable :envvar:`LANG`. Comme nous ne voulons pas "
"interférer avec les paramètres régionaux actuels, nous émulons donc le "
"comportement décrit ci-dessus."
#: ../Doc/library/locale.rst:293
msgid ""
@ -486,6 +607,14 @@ msgid ""
"``'LANG'``. The GNU gettext search path contains ``'LC_ALL'``, "
"``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order."
msgstr ""
"Afin de maintenir la compatibilité avec d'autres plateformes, non seulement "
"la variable :envvar:`LANG` est testée, mais c'est aussi le cas pour toute "
"une liste de variables passés en paramètre via *envvars*. La première "
"variable à être définie sera utilisée. *envvars* utilise par défaut le "
"chemin de recherche utilisé dans GNU *gettext* ; il doit toujours contenir "
"le nom de variable ``'LANG'``. Le chemin de recherche de GNU *gettext* "
"contient ``'LC_ALL'``, ``'LC_CTYPE'``, ``'LANG'`` et ``'LANGUAGE'``, dans "
"cet ordre."
#: ../Doc/library/locale.rst:300 ../Doc/library/locale.rst:311
msgid ""
@ -493,6 +622,9 @@ msgid ""
"*language code* and *encoding* may be ``None`` if their values cannot be "
"determined."
msgstr ""
"À l'exception du code ``'C'``, le code d'une langue correspond à la :rfc:"
"`1766`. Le *code de la langue* et l'*encodage* peuvent valoir ``None`` si "
"leur valeur ne peut être déterminée."
#: ../Doc/library/locale.rst:307
msgid ""
@ -500,6 +632,11 @@ msgid ""
"containing *language code*, *encoding*. *category* may be one of the :const:"
"`LC_\\*` values except :const:`LC_ALL`. It defaults to :const:`LC_CTYPE`."
msgstr ""
"Renvoie les réglages actuels pour la catégorie de paramètres régionaux "
"donnée, sous la forme d'une séquence contenant le *code de la langue* et "
"l'*encodage*. La catégorie *category* peut être l'une des valeurs :const:`LC_"
"\\*` à l'exception de :const:`LC_ALL`. La valeur par défaut est :const:"
"`LC_CTYPE`."
#: ../Doc/library/locale.rst:318
msgid ""
@ -508,6 +645,11 @@ msgid ""
"available programmatically on some systems, so this function only returns a "
"guess."
msgstr ""
"Renvoie le codage utilisé pour les données textuelles, selon les préférences "
"de l'utilisateur. Les préférences de l'utilisateur sont exprimées "
"différemment selon les systèmes et peuvent ne pas être disponibles via les "
"interfaces de programmation sur certains systèmes. Cette fonction ne renvoie "
"donc qu'une supposition."
#: ../Doc/library/locale.rst:323
msgid ""
@ -515,18 +657,28 @@ msgid ""
"user preferences, so this function is not thread-safe. If invoking setlocale "
"is not necessary or desired, *do_setlocale* should be set to ``False``."
msgstr ""
"Sur certains systèmes, il est nécessaire d'invoquer :func:`setlocale` pour "
"obtenir les préférences de l'utilisateur, cette fonction n'est donc pas "
"utilisable sans protection dans les programmes à fils d'exécutions "
"multiples. Si l'appel de `setlocale` n'est pas nécessaire ou souhaité, "
"*do_setlocale* doit être réglé à ``False``."
#: ../Doc/library/locale.rst:327
msgid ""
"On Android or in the UTF-8 mode (:option:`-X` ``utf8`` option), always "
"return ``'UTF-8'``, the locale and the *do_setlocale* argument are ignored."
msgstr ""
"Sur Android ou dans le mode UTF-8 (avec l'option :option:`-X` ``utf8``), "
"renvoie toujours ``'UTF-8'``, la locale et l'argument *do_setlocale* sont "
"ignorés."
#: ../Doc/library/locale.rst:330
msgid ""
"The function now always returns ``UTF-8`` on Android or if the UTF-8 mode is "
"enabled."
msgstr ""
"La fonction renvoie maintenant toujours ``UTF-8`` sur Android ou si le mode "
"UTF-8 est activé."
#: ../Doc/library/locale.rst:337
msgid ""
@ -534,22 +686,31 @@ msgid ""
"locale code is formatted for use with :func:`setlocale`. If normalization "
"fails, the original name is returned unchanged."
msgstr ""
"Renvoie un code normalisé pour le nom du paramètre régional fourni. Ce code "
"renvoyé est structuré de façon à être utilisé avec :func:`setlocale`. Si la "
"normalisation échoue, le nom d'origine est renvoyé inchangé."
#: ../Doc/library/locale.rst:341
msgid ""
"If the given encoding is not known, the function defaults to the default "
"encoding for the locale code just like :func:`setlocale`."
msgstr ""
"Si l'encodage donné n'est pas connu, la fonction utilise l'encodage par "
"défaut pour le code du paramètre régional, tout comme :func:`setlocale`."
#: ../Doc/library/locale.rst:347
msgid "Sets the locale for *category* to the default setting."
msgstr ""
"Définit le paramètre régional de la catégorie *category* au réglage par "
"défaut."
#: ../Doc/library/locale.rst:349
msgid ""
"The default setting is determined by calling :func:`getdefaultlocale`. "
"*category* defaults to :const:`LC_ALL`."
msgstr ""
"Le réglage par défaut est déterminé en appelant :func:`getdefaultlocale`. La "
"catégorie *category* vaut par défaut :const:`LC_ALL`."
#: ../Doc/library/locale.rst:355
msgid ""
@ -558,6 +719,10 @@ msgid ""
"``0``, depending on whether *string1* collates before or after *string2* or "
"is equal to it."
msgstr ""
"Compare deux chaînes en se basant sur le paramètre :const:`LC_COLLATE` "
"actuel. Comme toute autre fonction de comparaison, renvoie une valeur "
"négative, positive, ou ``0``, selon si *string1* est lexicographiquement "
"inférieure, supérieure, ou égale à *string2*."
#: ../Doc/library/locale.rst:363
msgid ""
@ -566,6 +731,11 @@ msgid ""
"s2) < 0``. This function can be used when the same string is compared "
"repeatedly, e.g. when collating a sequence of strings."
msgstr ""
"Transforme une chaîne de caractères en une chaîne qui peut être utilisée "
"dans les comparaisons sensibles aux paramètres régionaux. Par exemple, "
"``strxfrm(s1) < strxfrm(s2)`` est équivalent à ``strcoll(s1, s2) < 0``. "
"Cette fonction peut être utilisée lorsque la même chaîne est comparée de "
"façon répétitive, par exemple lors de l'assemblage d'une séquence de chaînes."
#: ../Doc/library/locale.rst:372
msgid ""
@ -574,18 +744,26 @@ msgid ""
"point values, the decimal point is modified if appropriate. If *grouping* "
"is true, also takes the grouping into account."
msgstr ""
"Structure un nombre *val* en fonction du paramètre :const:`LC_NUMERIC` "
"actuel. Le format suit les conventions de l'opérateur ``%``. Pour les "
"valeurs à virgule flottante, le point décimal est modifié si nécessaire. Si "
"*grouping* est vrai, le regroupement est également pris en compte."
#: ../Doc/library/locale.rst:377
msgid ""
"If *monetary* is true, the conversion uses monetary thousands separator and "
"grouping strings."
msgstr ""
"Si *monetary* est vrai, la conversion utilise un séparateur des milliers "
"monétaire et des chaînes de regroupement."
#: ../Doc/library/locale.rst:380
msgid ""
"Processes formatting specifiers as in ``format % val``, but takes the "
"current locale settings into account."
msgstr ""
"Traite les marqueurs de structure en ``format % val``, mais en prenant en "
"compte les paramètres régionaux actuels."
#: ../Doc/library/locale.rst:383
msgid "The *monetary* keyword parameter was added."
@ -611,6 +789,8 @@ msgid ""
"Formats a number *val* according to the current :const:`LC_MONETARY` "
"settings."
msgstr ""
"Structure un nombre *val* en fonction du paramètre :const:`LC_MONETARY` "
"actuel."
#: ../Doc/library/locale.rst:403
msgid ""
@ -619,36 +799,51 @@ msgid ""
"is done with the value. If *international* is true (which is not the "
"default), the international currency symbol is used."
msgstr ""
"La chaîne renvoyée inclut le symbole monétaire si *symbol* est vrai, ce qui "
"est le cas par défaut. Si *grouping* est vrai (ce qui n'est pas le cas par "
"défaut), un regroupement est effectué avec la valeur. Si *international* est "
"vrai (ce qui n'est pas le cas par défaut), le symbole de la devise "
"internationale est utilisé."
#: ../Doc/library/locale.rst:408
msgid ""
"Note that this function will not work with the 'C' locale, so you have to "
"set a locale via :func:`setlocale` first."
msgstr ""
"Notez que cette fonction ne fonctionnera pas avec le paramètre régional 'C', "
"vous devez donc d'abord en définir un via :func:`setlocale`."
#: ../Doc/library/locale.rst:414
msgid ""
"Formats a floating point number using the same format as the built-in "
"function ``str(float)``, but takes the decimal point into account."
msgstr ""
"Structure un nombre flottant en utilisant le même format que la fonction "
"native ``str(float)``, mais en prenant en compte le point décimal."
#: ../Doc/library/locale.rst:420
msgid ""
"Converts a string into a normalized number string, following the :const:"
"`LC_NUMERIC` settings."
msgstr ""
"Convertit une chaîne de caractères en une chaîne de nombres normalisés, en "
"suivant les réglages :const:`LC_NUMERIC`."
#: ../Doc/library/locale.rst:428
msgid ""
"Converts a string to a floating point number, following the :const:"
"`LC_NUMERIC` settings."
msgstr ""
"Convertit une chaîne de caractères en nombre à virgule flottante, en suivant "
"les réglages :const:`LC_NUMERIC`."
#: ../Doc/library/locale.rst:434
msgid ""
"Converts a string to an integer, following the :const:`LC_NUMERIC` "
"conventions."
msgstr ""
"Convertit une chaîne de caractères en un entier, en suivant les réglages :"
"const:`LC_NUMERIC`."
#: ../Doc/library/locale.rst:441
msgid ""
@ -656,24 +851,35 @@ msgid ""
"of this category, the functions of module :mod:`string` dealing with case "
"change their behaviour."
msgstr ""
"Catégorie de paramètre régional pour les fonctions de type caractère. "
"Suivant les réglages de la catégorie, les fonctions du module :mod:`string` "
"gérant la casse peuvent changer leur comportement."
#: ../Doc/library/locale.rst:448
msgid ""
"Locale category for sorting strings. The functions :func:`strcoll` and :"
"func:`strxfrm` of the :mod:`locale` module are affected."
msgstr ""
"Catégorie de paramètre régional pour les tris de chaînes de caractères. Les "
"fonctions :func:`strcoll` et :func:`strxfrm` du module :mod:`locale` sont "
"concernées."
#: ../Doc/library/locale.rst:454
msgid ""
"Locale category for the formatting of time. The function :func:`time."
"strftime` follows these conventions."
msgstr ""
"Catégorie de paramètre régional pour la mise en forme de la date et de "
"l'heure. La fonction :func:`time.strftime` suit ces conventions."
#: ../Doc/library/locale.rst:460
msgid ""
"Locale category for formatting of monetary values. The available options "
"are available from the :func:`localeconv` function."
msgstr ""
"Catégorie de paramètre régional pour la mise en forme des valeurs "
"monétaires. Les options disponibles sont accessibles à partir de la "
"fonction :func:`localeconv`."
#: ../Doc/library/locale.rst:466
msgid ""
@ -682,6 +888,11 @@ msgid ""
"operating system, like those returned by :func:`os.strerror` might be "
"affected by this category."
msgstr ""
"Catégorie de paramètre régional pour l'affichage de messages. Actuellement, "
"Python ne gère pas les messages spécifiques aux applications qui sont "
"sensibles aux paramètres régionaux. Les messages affichés par le système "
"d'exploitation, comme ceux renvoyés par :func:`os.strerror` peuvent être "
"affectés par cette catégorie."
#: ../Doc/library/locale.rst:474
msgid ""
@ -690,6 +901,10 @@ msgid ""
"affected by that category. All other numeric formatting operations are not "
"affected."
msgstr ""
"Catégorie de paramètre régional pour la mise en forme des nombres. Les "
"fonctions :func:`.format`, :func:`atoi`, :func:`atof` et :func:`.str` du "
"module :mod:`locale` sont affectées par cette catégorie. Toutes les autres "
"opérations de mise en forme des nombres ne sont pas affectées."
#: ../Doc/library/locale.rst:482
msgid ""
@ -700,12 +915,21 @@ msgid ""
"categories is returned. This string can be later used to restore the "
"settings."
msgstr ""
"Combinaison de tous les paramètres régionaux. Si cette option est utilisée "
"lors du changement de paramètres régionaux, la définition de ces paramètres "
"pour toutes les catégories est tentée. Si cela échoue pour n'importe quelle "
"catégorie, aucune d'entre elles n'est modifiée. Lorsque les paramètres "
"régionaux sont récupérés à l'aide de cette option, une chaîne de caractères "
"indiquant le réglage pour toutes les catégories est renvoyée. Cette chaîne "
"peut alors être utilisée plus tard pour restaurer les paramètres d'origine."
#: ../Doc/library/locale.rst:491
msgid ""
"This is a symbolic constant used for different values returned by :func:"
"`localeconv`."
msgstr ""
"Ceci est une constante symbolique utilisée pour différentes valeurs "
"renvoyées par :func:`localeconv`."
#: ../Doc/library/locale.rst:495
msgid "Example::"
@ -713,7 +937,7 @@ msgstr "Exemple ::"
#: ../Doc/library/locale.rst:508
msgid "Background, details, hints, tips and caveats"
msgstr ""
msgstr "Contexte, détails, conseils, astuces et mises en garde"
#: ../Doc/library/locale.rst:510
msgid ""
@ -722,6 +946,11 @@ msgid ""
"broken in such a way that frequent locale changes may cause core dumps. "
"This makes the locale somewhat painful to use correctly."
msgstr ""
"La norme C définie les paramètres régionaux comme une propriété à l'échelle "
"d'un programme, qui peut être relativement coûteuse à changer. En plus de "
"cela, certaines implémentations ne fonctionnent pas car des changements "
"fréquents de paramètres régionaux peuvent causer des *core dumps*. Cela "
"rend l'utilisation correcte de ces paramètres quelque peu pénible."
#: ../Doc/library/locale.rst:515
msgid ""
@ -732,6 +961,13 @@ msgid ""
"explicitly say that it wants the user's preferred locale settings for other "
"categories by calling ``setlocale(LC_ALL, '')``."
msgstr ""
"Initialement, lorsqu'un programme est démarré, les paramètres régionaux "
"``C`` sont utilisés, peu importe les réglages de l'utilisateur. Il y a "
"toutefois une exception : la catégorie :data:`LC_CTYPE` est modifiée au "
"démarrage pour définir l'encodage des paramètres régionaux actuels comme "
"celui défini par l'utilisateur. Le programme doit explicitement dire qu'il "
"veut utiliser les réglages de l'utilisateur pour les autres catégories, en "
"appelant ``setlocale(LC_ALL, '')``."
#: ../Doc/library/locale.rst:522
msgid ""
@ -740,6 +976,11 @@ msgid ""
"restoring it is almost as bad: it is expensive and affects other threads "
"that happen to run before the settings have been restored."
msgstr ""
"C'est généralement une mauvaise idée d'appeler :func:`setlocale` dans une "
"routine de bibliothèque car cela a pour effet secondaire d'affecter le "
"programme entier. Sauvegarder et restaurer les paramètres est presque aussi "
"mauvais : c'est coûteux et cela affecte d'autres fils d'exécutions qui "
"s'exécutent avant que les paramètres n'aient été restaurés."
#: ../Doc/library/locale.rst:527
msgid ""
@ -751,6 +992,14 @@ msgid ""
"you document that your module is not compatible with non-\\ ``C`` locale "
"settings."
msgstr ""
"Si, lors du développement d'un module à usage général, vous avez besoin "
"d'une version indépendante des paramètres régionaux pour une opération y "
"étant sensible (comme c'est le cas pour certains formats utilisés avec :func:"
"`time.strftime`), vous devez trouver un moyen de le faire sans utiliser la "
"routine de la bibliothèque standard. Le mieux est encore de se convaincre "
"que l'usage des paramètres régionaux est une bonne chose. Ce n'est qu'en "
"dernier recours que vous devez documenter que votre module n'est pas "
"compatible avec les réglages du paramètre régional ``C``."
#: ../Doc/library/locale.rst:534
msgid ""
@ -758,6 +1007,9 @@ msgid ""
"the special functions defined by this module: :func:`atof`, :func:`atoi`, :"
"func:`.format`, :func:`.str`."
msgstr ""
"La seule façon d'effectuer des opérations numériques conformément aux "
"paramètres régionaux est d'utiliser les fonctions spéciales définies par ce "
"module : :func:`atof`, :func:`atoi`, :func:`.format`, :func:`.str`."
#: ../Doc/library/locale.rst:538
msgid ""
@ -769,10 +1021,18 @@ msgid ""
"converted or considered part of a character class such as letter or "
"whitespace."
msgstr ""
"Il n'y a aucun moyen d'effectuer des conversions de casse et des "
"classifications de caractères en fonction des paramètres régionaux. Pour "
"les chaînes de caractères (Unicode), celles-ci se font uniquement en "
"fonction de la valeur du caractère, tandis que pour les chaînes d'octets, "
"les conversions et les classifications se font en fonction de la valeur "
"ASCII de l'octet, et les octets dont le bit de poids fort est à 1 (c'est-à-"
"dire les octets non ASCII) ne sont jamais convertis ou considérés comme "
"faisant partie d'une classe de caractères comme une lettre ou une espace."
#: ../Doc/library/locale.rst:549
msgid "For extension writers and programs that embed Python"
msgstr ""
msgstr "Pour les auteurs d'extensions et les programmes qui intègrent Python"
#: ../Doc/library/locale.rst:551
msgid ""
@ -781,6 +1041,10 @@ msgid ""
"portably to restore it, that is not very useful (except perhaps to find out "
"whether or not the locale is ``C``)."
msgstr ""
"Les modules d'extensions ne devraient jamais appeler :func:`setlocale`, sauf "
"pour connaître le paramètre régional actuel. Mais comme la valeur renvoyée "
"ne peut être utilisée que pour le restaurer, ce n'est pas très utile (sauf "
"peut-être pour savoir si le paramètre régional est défini à ``C`` ou non)."
#: ../Doc/library/locale.rst:556
msgid ""
@ -791,10 +1055,17 @@ msgid ""
"file:`config.c` file, and make sure that the :mod:`_locale` module is not "
"accessible as a shared library."
msgstr ""
"Lorsque le code Python utilise le module :mod:`locale` pour changer le "
"paramètre régional, cela affecte également l'application intégrée. Si "
"l'application intégrée ne souhaite pas que cela se produise, elle doit "
"supprimer le module d'extension :mod:`_locale` (qui fait tout le travail) de "
"la table des modules natifs se trouvant dans le fichier :file:`config.c`, et "
"s'assurer que le module :mod:`_locale` n'est pas accessible en tant que "
"bibliothèque partagée."
#: ../Doc/library/locale.rst:567
msgid "Access to message catalogs"
msgstr ""
msgstr "Accéder aux catalogues de messages"
#: ../Doc/library/locale.rst:575
msgid ""
@ -806,6 +1077,12 @@ msgid ""
"binary format for message catalogs, and the C library's search algorithms "
"for locating message catalogs."
msgstr ""
"Le module *locale* expose l'interface *gettext* de la bibliothèque C sur les "
"systèmes qui fournissent cette interface. Il se compose des fonctions :func:"
"`!gettext`, :func:`!dgettext`, :func:`!dcgettext`, :func:`!textdomain`, :"
"func:`!bindtextdomain` et :func:`!bind_textdomain_codeset`. Elles sont "
"similaires aux fonctions du module :mod:`gettext`, mais utilisent le format "
"binaire de la bibliothèque C pour les catalogues de messages."
#: ../Doc/library/locale.rst:582
msgid ""
@ -816,3 +1093,10 @@ msgid ""
"necessary to bind the text domain, so that the libraries can properly locate "
"their message catalogs."
msgstr ""
"Les applications Python ne devraient normalement pas avoir besoin de faire "
"appel à ces fonctions, mais devraient plutôt utiliser :mod:`gettext`. Une "
"exception connue pour cette règle concerne les applications qui sont liées "
"avec des bibliothèques C supplémentaires faisant appel à :c:func:`gettext` "
"ou :c:func:`dcgettext`. Pour ces applications, il peut être nécessaire de "
"lier le domaine du texte, afin que les bibliothèques puissent régionaliser "
"correctement leurs catalogues de messages."

View File

@ -26,18 +26,20 @@ msgstr ""
msgid ""
"This page contains only reference information. For tutorials, please see"
msgstr ""
"Cette page contient uniquement des informations de référence. Pour des "
"tutoriels, veuillez consulter"
#: ../Doc/library/logging.config.rst:17
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel basique <logging-basic-tutorial>`"
#: ../Doc/library/logging.config.rst:18
msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel avancé <logging-advanced-tutorial>`"
#: ../Doc/library/logging.config.rst:19
msgid ":ref:`Logging Cookbook <logging-cookbook>`"
msgstr ""
msgstr ":ref:`Recettes pour la journalisation <logging-cookbook>`"
#: ../Doc/library/logging.config.rst:23
msgid "This section describes the API for configuring the logging module."
@ -135,7 +137,7 @@ msgstr ""
#: ../Doc/library/logging.config.rst:0
msgid "Parameters"
msgstr ""
msgstr "Paramètres"
#: ../Doc/library/logging.config.rst:90
msgid ""
@ -555,7 +557,7 @@ msgstr ""
#: ../Doc/library/logging.config.rst:453
msgid "and::"
msgstr "et  ::"
msgstr "et ::"
#: ../Doc/library/logging.config.rst:460
msgid ""

View File

@ -16,28 +16,30 @@ msgstr ""
#: ../Doc/library/logging.handlers.rst:2
msgid ":mod:`logging.handlers` --- Logging handlers"
msgstr ""
msgstr ":mod:`logging.handlers` — Gestionnaires de journalisation"
#: ../Doc/library/logging.handlers.rst:10
msgid "**Source code:** :source:`Lib/logging/handlers.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/logging/handlers.py`"
#: ../Doc/library/logging.handlers.rst:14
msgid ""
"This page contains only reference information. For tutorials, please see"
msgstr ""
"Cette page contient uniquement des informations de référence. Pour des "
"tutoriels, veuillez consulter"
#: ../Doc/library/logging.handlers.rst:17
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel basique <logging-basic-tutorial>`"
#: ../Doc/library/logging.handlers.rst:18
msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel avancé <logging-advanced-tutorial>`"
#: ../Doc/library/logging.handlers.rst:19
msgid ":ref:`Logging Cookbook <logging-cookbook>`"
msgstr ""
msgstr ":ref:`Recettes pour la journalisation <logging-cookbook>`"
#: ../Doc/library/logging.handlers.rst:25
msgid ""
@ -46,10 +48,15 @@ msgid ""
"`NullHandler`) are actually defined in the :mod:`logging` module itself, but "
"have been documented here along with the other handlers."
msgstr ""
"Les gestionnaires suivants, très utiles, sont fournis dans le paquet. Notez "
"que trois des gestionnaires (:class:`StreamHandler`, :class:`FileHandler` "
"et :class:`NullHandler`) sont en réalité définis dans le module :mod:"
"`logging` lui-même, mais quils sont documentés ici avec les autres "
"gestionnaires."
#: ../Doc/library/logging.handlers.rst:33
msgid "StreamHandler"
msgstr ""
msgstr "Gestionnaire à flux — *StreamHandler*"
#: ../Doc/library/logging.handlers.rst:35
msgid ""
@ -58,6 +65,10 @@ msgid ""
"or any file-like object (or, more precisely, any object which supports :meth:"
"`write` and :meth:`flush` methods)."
msgstr ""
"La classe :class:`StreamHandler`, du paquet :mod:`logging`, envoie les "
"sorties de journalisation dans des flux tels que *sys.stdout*, *sys.stderr* "
"ou nimporte quel objet fichier-compatible (ou, plus précisément, tout objet "
"qui gère les méthodes :meth:`write` et :meth:`flush`)."
#: ../Doc/library/logging.handlers.rst:43
msgid ""
@ -65,6 +76,9 @@ msgid ""
"specified, the instance will use it for logging output; otherwise, *sys."
"stderr* will be used."
msgstr ""
"Renvoie une nouvelle instance de la classe :class:`StreamHandler`. Si "
"*stream* est spécifié, linstance lutilise pour les sorties de "
"journalisation ; autrement elle utilise *sys.stderr*."
#: ../Doc/library/logging.handlers.rst:50
msgid ""
@ -80,28 +94,34 @@ msgid ""
"`close` method is inherited from :class:`~logging.Handler` and so does no "
"output, so an explicit :meth:`flush` call may be needed at times."
msgstr ""
"Purge le flux en appelant sa méthode :meth:`flush`. Notez que la méthode :"
"meth:`close` est héritée de :class:`~logging.Handler` donc elle n'écrit "
"rien. Par conséquent, un appel explicite à :meth:`flush` peut parfois "
"s'avérer nécessaire."
#: ../Doc/library/logging.handlers.rst:64
msgid ""
"Sets the instance's stream to the specified value, if it is different. The "
"old stream is flushed before the new stream is set."
msgstr ""
"Définit le flux de linstance à la valeur spécifiée, si elle est différente. "
"Lancien flux est purgé avant que le nouveau flux ne soit établi."
#: ../Doc/library/logging.handlers.rst:0
msgid "Parameters"
msgstr ""
msgstr "Paramètres"
#: ../Doc/library/logging.handlers.rst:67
msgid "The stream that the handler should use."
msgstr ""
msgstr "Le flux que le gestionnaire doit utiliser."
#: ../Doc/library/logging.handlers.rst:0
msgid "Returns"
msgstr ""
msgstr "Renvoie"
#: ../Doc/library/logging.handlers.rst:69
msgid "the old stream, if the stream was changed, or *None* if it wasn't."
msgstr ""
msgstr "lancien flux, si le flux a été changé, ou *None* sil ne la pas été."
#: ../Doc/library/logging.handlers.rst:74
msgid ""
@ -114,7 +134,7 @@ msgstr ""
#: ../Doc/library/logging.handlers.rst:85
msgid "FileHandler"
msgstr ""
msgstr "Gestionnaire à fichier — *FileHandler*"
#: ../Doc/library/logging.handlers.rst:87
msgid ""
@ -122,6 +142,9 @@ msgid ""
"sends logging output to a disk file. It inherits the output functionality "
"from :class:`StreamHandler`."
msgstr ""
"La classe :class:`FileHandler`, du paquet :mod:`logging`, envoie les sorties "
"de journalisation dans un fichier. Elle hérite des fonctionnalités de sortie "
"de :class:`StreamHandler`."
#: ../Doc/library/logging.handlers.rst:94
msgid ""
@ -141,18 +164,20 @@ msgid ""
"As well as string values, :class:`~pathlib.Path` objects are also accepted "
"for the *filename* argument."
msgstr ""
"L'argument *filename* accepte les objets :class:`~pathlib.Path` aussi bien "
"que les chaînes de caractères."
#: ../Doc/library/logging.handlers.rst:106
msgid "Closes the file."
msgstr ""
msgstr "Ferme le fichier."
#: ../Doc/library/logging.handlers.rst:111
msgid "Outputs the record to the file."
msgstr ""
msgstr "Écrit lenregistrement dans le fichier."
#: ../Doc/library/logging.handlers.rst:117
msgid "NullHandler"
msgstr ""
msgstr "Gestionnaire à puits sans fond — *NullHandler*"
#: ../Doc/library/logging.handlers.rst:121
msgid ""
@ -160,31 +185,38 @@ msgid ""
"does not do any formatting or output. It is essentially a 'no-op' handler "
"for use by library developers."
msgstr ""
"La classe :class:`NullHandler`, située dans le paquet principal :mod:"
"`logging`, ne produit aucun formatage ni sortie. Cest essentiellement un "
"gestionnaire « fantôme » destiné aux développeurs de bibliothèques."
#: ../Doc/library/logging.handlers.rst:127
msgid "Returns a new instance of the :class:`NullHandler` class."
msgstr ""
msgstr "Renvoie une nouvelle instance de la classe :class:`NullHandler`."
#: ../Doc/library/logging.handlers.rst:131
#: ../Doc/library/logging.handlers.rst:135
msgid "This method does nothing."
msgstr ""
msgstr "Cette méthode ne fait rien."
#: ../Doc/library/logging.handlers.rst:139
msgid ""
"This method returns ``None`` for the lock, since there is no underlying I/O "
"to which access needs to be serialized."
msgstr ""
"Cette méthode renvoie ``None`` pour le verrou, étant donné quil ny a aucun "
"flux d'entrée-sortie sous-jacent dont laccès doit être sérialisé."
#: ../Doc/library/logging.handlers.rst:143
msgid ""
"See :ref:`library-config` for more information on how to use :class:"
"`NullHandler`."
msgstr ""
"Voir :ref:`library-config` pour plus dinformation sur l'utilisation de :"
"class:`NullHandler`."
#: ../Doc/library/logging.handlers.rst:149
msgid "WatchedFileHandler"
msgstr ""
msgstr "Gestionnaire à fichier avec surveillance — *WatchedFileHandler*"
#: ../Doc/library/logging.handlers.rst:153
msgid ""
@ -193,6 +225,10 @@ msgid ""
"logging to. If the file changes, it is closed and reopened using the file "
"name."
msgstr ""
"La classe :class:`WatchedFileHandler`, située dans le module :mod:`logging."
"handlers`, est un :class:`FileHandler` qui surveille le fichier dans lequel "
"il journalise. Si le fichier change, il est fermé et rouvert en utilisant le "
"nom du fichier."
#: ../Doc/library/logging.handlers.rst:157
msgid ""
@ -203,6 +239,14 @@ msgid ""
"changed.) If the file has changed, the old file stream is closed, and the "
"file opened to get a new stream."
msgstr ""
"Un changement du fichier peut arriver à cause de lutilisation de programmes "
"tels que *newsyslog* ou *logrotate* qui assurent le roulement des fichiers "
"de journalisation. Ce gestionnaire, destiné à une utilisation sous Unix/"
"Linux, surveille le fichier pour voir sil a changé depuis la dernière "
"écriture (un fichier est réputé avoir changé si son nœud dindex ou le "
"périphérique auquel il est rattaché a changé). Si le fichier a changé, "
"lancien flux vers ce fichier est fermé, et le fichier est ouvert pour "
"établir un nouveau flux."
#: ../Doc/library/logging.handlers.rst:164
msgid ""
@ -212,6 +256,12 @@ msgid ""
"*ST_INO* is not supported under Windows; :func:`~os.stat` always returns "
"zero for this value."
msgstr ""
"Ce gestionnaire nest pas approprié pour une utilisation sous *Windows*, car "
"sous *Windows* les fichiers de journalisation ouverts ne peuvent être ni "
"déplacés, ni renommés — la journalisation ouvre les fichiers avec des "
"verrous exclusifs — de telle sorte quil ny a pas besoin dun tel "
"gestionnaire. En outre, *ST_INO* nest pas géré par *Windows* ; :func:`~os."
"stat` renvoie toujours zéro pour cette valeur."
#: ../Doc/library/logging.handlers.rst:173
msgid ""
@ -229,16 +279,21 @@ msgid ""
"flushed and closed and the file opened again, typically as a precursor to "
"outputting the record to the file."
msgstr ""
"Vérifie si le fichier a changé. Si cest le cas, le flux existant est purgé "
"et fermé et le fichier est rouvert, généralement avant d'effectuer "
"lécriture de l'enregistrement dans le fichier."
#: ../Doc/library/logging.handlers.rst:194
msgid ""
"Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to "
"reopen the file if it has changed."
msgstr ""
"Écrit lenregistrement dans le fichier, mais appelle dabord :meth:"
"`reopenIfNeeded` pour rouvrir le fichier sil a changé."
#: ../Doc/library/logging.handlers.rst:200
msgid "BaseRotatingHandler"
msgstr ""
msgstr "Base des gestionnaires à roulement *BaseRotatingHandler*"
#: ../Doc/library/logging.handlers.rst:202
msgid ""
@ -248,10 +303,17 @@ msgid ""
"need to instantiate this class, but it has attributes and methods you may "
"need to override."
msgstr ""
"La classe :class:`BaseRotatingHandler`, située dans le module :mod:`logging."
"handlers`, est la classe de base pour les gestionnaires à roulement, :class:"
"`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Vous ne devez "
"pas initialiser cette classe, mais elle a des attributs et des méthodes que "
"vous devrez peut-être surcharger."
#: ../Doc/library/logging.handlers.rst:210
msgid "The parameters are as for :class:`FileHandler`. The attributes are:"
msgstr ""
"Les paramètres sont les mêmes que pour :class:`FileHandler`. Les attributs "
"sont :"
#: ../Doc/library/logging.handlers.rst:214
msgid ""
@ -259,6 +321,9 @@ msgid ""
"delegates to this callable. The parameters passed to the callable are those "
"passed to :meth:`rotation_filename`."
msgstr ""
"Si cet attribut est défini en tant quappelable, la méthode :meth:"
"`rotation_filename` se rapporte à cet appelable. Les paramètres passés à "
"lappelable sont ceux passés à :meth:`rotation_filename`."
#: ../Doc/library/logging.handlers.rst:218
msgid ""
@ -267,6 +332,10 @@ msgid ""
"every time for a given input, otherwise the rollover behaviour may not work "
"as expected."
msgstr ""
"La fonction *namer* est appelée pas mal de fois durant le roulement, de "
"telle sorte quelle doit être aussi simple et rapide que possible. Elle doit "
"aussi renvoyer toujours la même sortie pour une entrée donnée, autrement le "
"comportement du roulement pourrait être différent de celui attendu."
#: ../Doc/library/logging.handlers.rst:228
msgid ""
@ -274,14 +343,18 @@ msgid ""
"to this callable. The parameters passed to the callable are those passed "
"to :meth:`rotate`."
msgstr ""
"Si cet attribut est défini en tant quappelable, cet appelable se substitue "
"à la méthode :meth:`rotate`. Les paramètres passés à lappelable sont ceux "
"passés à :meth:`rotate`."
#: ../Doc/library/logging.handlers.rst:236
msgid "Modify the filename of a log file when rotating."
msgstr ""
"Modifie le nom du fichier dun fichier de journalisation lors du roulement."
#: ../Doc/library/logging.handlers.rst:238
msgid "This is provided so that a custom filename can be provided."
msgstr ""
msgstr "Cette méthode sert à pouvoir produire un nom de fichier personnalisé."
#: ../Doc/library/logging.handlers.rst:240
msgid ""
@ -289,14 +362,17 @@ msgid ""
"it's callable, passing the default name to it. If the attribute isn't "
"callable (the default is ``None``), the name is returned unchanged."
msgstr ""
"Limplémentation par défaut appelle lattribut *namer* du gestionnaire, si "
"cest un appelable, lui passant le nom par défaut. Si lattribut nest pas "
"un appelable (le défaut est ``None``), le nom est renvoyé tel quel."
#: ../Doc/library/logging.handlers.rst:244
msgid "The default name for the log file."
msgstr ""
msgstr "Le nom par défaut du fichier de journalisation."
#: ../Doc/library/logging.handlers.rst:251
msgid "When rotating, rotate the current log."
msgstr ""
msgstr "Lors du roulement, effectue le roulement du journal courant."
#: ../Doc/library/logging.handlers.rst:253
msgid ""
@ -305,17 +381,25 @@ msgid ""
"isn't callable (the default is ``None``), the source is simply renamed to "
"the destination."
msgstr ""
"Limplémentation par défaut appelle lattribut *rotator* du gestionnaire, si "
"cest un appelable, lui passant les arguments *source* et *dest*. Si "
"lattribut nest pas un appelable (le défaut est ``None``), le nom de la "
"source est simplement renommé avec la destination."
#: ../Doc/library/logging.handlers.rst:258
msgid ""
"The source filename. This is normally the base filename, e.g. 'test.log'."
msgstr ""
"Le nom du fichier source. Il sagit normalement du nom du fichier, par "
"exemple ``\"test.log\"``."
#: ../Doc/library/logging.handlers.rst:260
msgid ""
"The destination filename. This is normally what the source is rotated to, e."
"g. 'test.log.1'."
msgstr ""
"Le nom du fichier de destination. Il sagit normalement du nom donné à la "
"source après le roulement, par exemple ``\"test.log.1\"``."
#: ../Doc/library/logging.handlers.rst:265
msgid ""
@ -326,26 +410,36 @@ msgid ""
"exception during an :meth:`emit` call, i.e. via the :meth:`handleError` "
"method of the handler."
msgstr ""
"La raison dêtre de ces attributs est de vous épargner la création dune "
"sous-classe — vous pouvez utiliser les mêmes appels pour des instances de :"
"class:`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Si le "
"*namer* ou le *rotator* appelable lève une exception, ce sera géré de la "
"même manière que nimporte quelle exception durant un appel :meth:`emit`, "
"c'est-à-dire par la méthode :meth:`handleError` du gestionnaire."
#: ../Doc/library/logging.handlers.rst:272
msgid ""
"If you need to make more significant changes to rotation processing, you can "
"override the methods."
msgstr ""
"Si vous avez besoin de faire dimportantes modifications au processus de "
"roulement, surchargez les méthodes."
#: ../Doc/library/logging.handlers.rst:275
msgid "For an example, see :ref:`cookbook-rotator-namer`."
msgstr ""
msgstr "Pour un exemple, voir :ref:`cookbook-rotator-namer`."
#: ../Doc/library/logging.handlers.rst:281
msgid "RotatingFileHandler"
msgstr ""
msgstr "Gestionnaire à roulement de fichiers — *RotatingFileHandler*"
#: ../Doc/library/logging.handlers.rst:283
msgid ""
"The :class:`RotatingFileHandler` class, located in the :mod:`logging."
"handlers` module, supports rotation of disk log files."
msgstr ""
"La classe :class:`RotatingFileHandler`, située dans le module :mod:`logging."
"handlers`, gère le roulement des fichiers de journalisation sur disque."
#: ../Doc/library/logging.handlers.rst:289
msgid ""
@ -374,21 +468,41 @@ msgid ""
"log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then "
"they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively."
msgstr ""
"Utilisez les valeurs *maxBytes* et *backupCount* pour autoriser le roulement "
"du fichier (:dfn:`rollover`) à une taille prédéterminée. Quand la taille "
"limite est sur le point dêtre dépassée, le fichier est fermé et un nouveau "
"fichier est discrètement ouvert en tant que sortie. Un roulement se produit "
"dès que le fichier de journalisation actuel atteint presque une taille de "
"*maxBytes* ; si *maxBytes* ou *backupCount* est à 0, le roulement ne se "
"produit jamais, donc en temps normal il convient de définir *backupCount* à "
"au moins 1, et avoir une valeur de *maxBytes* non nulle. Quand *backupCount* "
"est non nul, le système sauvegarde les anciens fichiers de journalisation en "
"leur ajoutant au nom du fichier, les suffixes ``\".1\"``, ``\".2\"`` et "
"ainsi de suite. Par exemple, avec un *backupCount* de 5 et :file:`app.log` "
"comme radical du fichier, vous obtiendrez :file:`app.log`, :file:`app."
"log.1`, :file:`app.log.2`, jusquà :file:`app.log.5`. Le fichier dans lequel "
"on écrit est toujours :file:`app.log`. Quand ce fichier est rempli, il est "
"fermé et renommé en :file:`app.log.1`, et si les fichiers :file:`app."
"log.1`, :file:`app.log.2`, etc. existent, alors ils sont renommés "
"respectivement en :file:`app.log.2`, :file:`app.log.3` etc."
#: ../Doc/library/logging.handlers.rst:316
#: ../Doc/library/logging.handlers.rst:416
msgid "Does a rollover, as described above."
msgstr ""
msgstr "Effectue un roulement, comme décrit au-dessus."
#: ../Doc/library/logging.handlers.rst:321
msgid ""
"Outputs the record to the file, catering for rollover as described "
"previously."
msgstr ""
"Écrit l'enregistrement dans le fichier, effectuant un roulement au besoin "
"comme décrit précédemment."
#: ../Doc/library/logging.handlers.rst:327
msgid "TimedRotatingFileHandler"
msgstr ""
"Gestionnaire à roulement de fichiers périodique — *TimedRotatingFileHandler*"
#: ../Doc/library/logging.handlers.rst:329
msgid ""
@ -396,6 +510,9 @@ msgid ""
"handlers` module, supports rotation of disk log files at certain timed "
"intervals."
msgstr ""
"La classe :class:`TimedRotatingFileHandler`, située dans le module :mod:"
"`logging.handlers`, gère le roulement des fichiers de journalisation sur le "
"disque à un intervalle de temps spécifié."
#: ../Doc/library/logging.handlers.rst:336
msgid ""
@ -404,12 +521,19 @@ msgid ""
"also sets the filename suffix. Rotating happens based on the product of "
"*when* and *interval*."
msgstr ""
"Renvoie une nouvelle instance de la classe :class:"
"`TimedRotatingFileHandler`. Le fichier spécifié est ouvert et utilisé en "
"tant que flux de sortie pour la journalisation. Au moment du roulement, il "
"met également à jour le suffixe du nom du fichier. Le roulement se produit "
"sur la base combinée de *when* et *interval*."
#: ../Doc/library/logging.handlers.rst:341
msgid ""
"You can use the *when* to specify the type of *interval*. The list of "
"possible values is below. Note that they are not case sensitive."
msgstr ""
"Utilisez le *when* pour spécifier le type de l*interval*. La liste des "
"valeurs possibles est ci-dessous. Notez quelles sont sensibles à la casse."
#: ../Doc/library/logging.handlers.rst:345
msgid "Value"
@ -417,11 +541,11 @@ msgstr "Valeur"
#: ../Doc/library/logging.handlers.rst:345
msgid "Type of interval"
msgstr ""
msgstr "Type dintervalle"
#: ../Doc/library/logging.handlers.rst:345
msgid "If/how *atTime* is used"
msgstr ""
msgstr "Si/comment *atTime* est utilisé"
#: ../Doc/library/logging.handlers.rst:347
msgid "``'S'``"
@ -429,7 +553,7 @@ msgstr "``'S'``"
#: ../Doc/library/logging.handlers.rst:347
msgid "Seconds"
msgstr ""
msgstr "Secondes"
#: ../Doc/library/logging.handlers.rst:347
#: ../Doc/library/logging.handlers.rst:349
@ -444,7 +568,7 @@ msgstr "``'M'``"
#: ../Doc/library/logging.handlers.rst:349
msgid "Minutes"
msgstr ""
msgstr "Minutes"
#: ../Doc/library/logging.handlers.rst:351
msgid "``'H'``"
@ -452,7 +576,7 @@ msgstr "``'H'``"
#: ../Doc/library/logging.handlers.rst:351
msgid "Hours"
msgstr ""
msgstr "Heures"
#: ../Doc/library/logging.handlers.rst:353
msgid "``'D'``"
@ -460,7 +584,7 @@ msgstr "``'D'``"
#: ../Doc/library/logging.handlers.rst:353
msgid "Days"
msgstr ""
msgstr "Jours"
#: ../Doc/library/logging.handlers.rst:355
msgid "``'W0'-'W6'``"
@ -468,12 +592,12 @@ msgstr "``'W0'-'W6'``"
#: ../Doc/library/logging.handlers.rst:355
msgid "Weekday (0=Monday)"
msgstr ""
msgstr "Jour de la semaine (0=lundi)"
#: ../Doc/library/logging.handlers.rst:355
#: ../Doc/library/logging.handlers.rst:358
msgid "Used to compute initial rollover time"
msgstr ""
msgstr "Utilisé pour calculer le moment du roulement"
#: ../Doc/library/logging.handlers.rst:358
msgid "``'midnight'``"
@ -482,6 +606,8 @@ msgstr "``'midnight'``"
#: ../Doc/library/logging.handlers.rst:358
msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*"
msgstr ""
"Roulement du fichier à minuit, si *atTime* nest pas spécifié, sinon à "
"lheure *atTime*"
#: ../Doc/library/logging.handlers.rst:363
msgid ""
@ -489,6 +615,10 @@ msgid ""
"Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for "
"*interval* isn't used."
msgstr ""
"Lors de lutilisation dun roulement basé sur les jours de la semaine, "
"définir *W0* pour lundi, *W1* pour mardi, et ainsi de suite jusquà *W6* "
"pour dimanche. Dans ce cas, la valeur indiquée pour *interval* nest pas "
"utilisée."
#: ../Doc/library/logging.handlers.rst:367
msgid ""
@ -496,6 +626,10 @@ msgid ""
"The extensions are date-and-time based, using the strftime format ``%Y-%m-%d_"
"%H-%M-%S`` or a leading portion thereof, depending on the rollover interval."
msgstr ""
"Le système sauvegarde les anciens fichiers de journalisation en ajoutant une "
"extension au nom du fichier. Les extensions sont basées sur la date et "
"lheure, en utilisation le format *strftime* ``%Y-%m-%d_%H-%M-%S`` ou le "
"début de celui-ci, selon lintervalle du roulement."
#: ../Doc/library/logging.handlers.rst:372
msgid ""
@ -503,6 +637,10 @@ msgid ""
"is created), the last modification time of an existing log file, or else the "
"current time, is used to compute when the next rotation will occur."
msgstr ""
"Lors du premier calcul du roulement suivant (quand le gestionnaire est "
"créé), la dernière date de modification dun fichier de journalisation "
"existant, ou sinon la date actuelle, est utilisée pour calculer la date du "
"prochain roulement."
#: ../Doc/library/logging.handlers.rst:376
msgid ""

View File

@ -17,35 +17,40 @@ msgstr ""
#: ../Doc/library/logging.rst:2
msgid ":mod:`logging` --- Logging facility for Python"
msgstr ""
msgstr ":mod:`logging` — Fonctionnalités de journalisation pour Python"
#: ../Doc/library/logging.rst:10
msgid "**Source code:** :source:`Lib/logging/__init__.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/logging/__init__.py`"
#: ../Doc/library/logging.rst:16
msgid ""
"This page contains the API reference information. For tutorial information "
"and discussion of more advanced topics, see"
msgstr ""
"Cette page contient les informations de référence de lAPI. Pour des "
"tutoriels et des discussions sur des sujets plus avancés, voir"
#: ../Doc/library/logging.rst:19
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel basique <logging-basic-tutorial>`"
#: ../Doc/library/logging.rst:20
msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`"
msgstr ""
msgstr ":ref:`Tutoriel avancé <logging-advanced-tutorial>`"
#: ../Doc/library/logging.rst:21
msgid ":ref:`Logging Cookbook <logging-cookbook>`"
msgstr ""
msgstr ":ref:`Recettes pour la journalisation <logging-cookbook>`"
#: ../Doc/library/logging.rst:25
msgid ""
"This module defines functions and classes which implement a flexible event "
"logging system for applications and libraries."
msgstr ""
"Ce module définit les fonctions et les classes qui mettent en œuvre un "
"système flexible denregistrement des événements pour les applications et "
"les bibliothèques."
#: ../Doc/library/logging.rst:28
msgid ""
@ -54,6 +59,10 @@ msgid ""
"application log can include your own messages integrated with messages from "
"third-party modules."
msgstr ""
"Le principal avantage de lAPI de journalisation fournie par un module de "
"bibliothèque standard est que tous les modules Python peuvent participer à "
"la journalisation, de sorte que le journal de votre application peut inclure "
"vos propres messages intégrés aux messages de modules tiers."
#: ../Doc/library/logging.rst:33
msgid ""
@ -61,12 +70,17 @@ msgid ""
"unfamiliar with logging, the best way to get to grips with it is to see the "
"tutorials (see the links on the right)."
msgstr ""
"Le module offre beaucoup de fonctionnalités et de flexibilité. Si vous "
"nêtes pas familiarisé avec la journalisation, la meilleure façon de vous y "
"familiariser est de consulter les tutoriels (voir les liens à droite)."
#: ../Doc/library/logging.rst:37
msgid ""
"The basic classes defined by the module, together with their functions, are "
"listed below."
msgstr ""
"Les classes de base définies par le module, ainsi que leurs fonctions, sont "
"énumérées ci-dessous."
#: ../Doc/library/logging.rst:40
msgid "Loggers expose the interface that application code directly uses."
@ -79,7 +93,7 @@ msgid ""
"Handlers send the log records (created by loggers) to the appropriate "
"destination."
msgstr ""
"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par "
"Les gestionnaires (*handlers*) envoient les entrées de journal (créées par "
"les *loggers*) vers les destinations voulues."
#: ../Doc/library/logging.rst:43
@ -98,7 +112,7 @@ msgstr ""
#: ../Doc/library/logging.rst:51
msgid "Logger Objects"
msgstr ""
msgstr "Objets Enregistreurs"
#: ../Doc/library/logging.rst:53
msgid ""
@ -107,6 +121,11 @@ msgid ""
"function ``logging.getLogger(name)``. Multiple calls to :func:`getLogger` "
"with the same name will always return a reference to the same Logger object."
msgstr ""
"Les enregistreurs ont les attributs et les méthodes suivants. Notez que les "
"enregistreurs ne doivent *JAMAIS* être instanciés directement, mais toujours "
"par la fonction au niveau du module ``logging.getLogger(name)``. Plusieurs "
"appels à :func:`getLogger` avec le même nom renvoient toujours une référence "
"au même objet enregistreur."
#: ../Doc/library/logging.rst:58
msgid ""
@ -121,6 +140,18 @@ msgid ""
"getLogger(__name__)``. That's because in a module, ``__name__`` is the "
"module's name in the Python package namespace."
msgstr ""
"Le nom ``name`` est potentiellement une valeur avec plusieurs niveaux de "
"hiérarchie, séparés par des points, comme ``truc.machin.bidule`` (bien quil "
"puisse aussi être simplement ``truc``, par exemple). Les enregistreurs qui "
"sont plus bas dans la liste hiérarchique sont les enfants des enregistreurs "
"plus haut dans la liste. Par exemple, pour un enregistreur nommé ``truc``, "
"les enregistreurs portant les noms ``truc.machin``, ``truc.machin.bidule`` "
"et ``truc.chose`` sont tous des descendants de ``truc``. La hiérarchie des "
"noms denregistreurs est analogue à la hiérarchie des paquets Python, et est "
"identique à celle-ci si vous organisez vos enregistreurs par module en "
"utilisant la construction recommandée ``logging.getLogger(__name__)``. "
"Cest ainsi parce que dans un module, ``__name__`` est le nom du module dans "
"lespace de noms des paquets Python."
#: ../Doc/library/logging.rst:74
msgid ""
@ -130,16 +161,24 @@ msgid ""
"ancestor loggers' handlers - neither the level nor filters of the ancestor "
"loggers in question are considered."
msgstr ""
"Si cet attribut est évalué comme vrai, les événements enregistrés dans cet "
"enregistreur seront transmis aux gestionnaires des enregistreurs de niveau "
"supérieur (parents), en plus des gestionnaires attachés à cet enregistreur. "
"Les messages sont transmis directement aux gestionnaires des enregistreurs "
"parents — ni le niveau ni les filtres des enregistreurs ancestraux en "
"question ne sont pris en compte."
#: ../Doc/library/logging.rst:80
msgid ""
"If this evaluates to false, logging messages are not passed to the handlers "
"of ancestor loggers."
msgstr ""
"Sil sévalue comme faux, les messages de journalisation ne sont pas "
"transmis aux gestionnaires des enregistreurs parents."
#: ../Doc/library/logging.rst:83
msgid "The constructor sets this attribute to ``True``."
msgstr ""
msgstr "Le constructeur fixe cet attribut à ``True``."
#: ../Doc/library/logging.rst:85
msgid ""
@ -152,6 +191,15 @@ msgid ""
"handlers only to the root logger, and to let propagation take care of the "
"rest."
msgstr ""
"Si vous associez un gestionnaire à un enregistreur *et* à un ou plusieurs de "
"ses parents, il peut émettre le même enregistrement plusieurs fois. En "
"général, vous ne devriez pas avoir besoin d'attacher un gestionnaire à plus "
"d'un enregistreur — si vous l'attachez simplement à l'enregistreur approprié "
"qui est le plus haut dans la hiérarchie des enregistreurs, alors il voit "
"tous les événements enregistrés par tous les enregistreurs descendants, à "
"condition que leur paramètre de propagation soit laissé à ``True``. Un "
"scénario courant est d'attacher les gestionnaires uniquement à "
"l'enregistreur racine, et de laisser la propagation s'occuper du reste."
#: ../Doc/library/logging.rst:96
msgid ""
@ -161,6 +209,11 @@ msgid ""
"service this logger, unless a handler's level has been set to a higher "
"severity level than *level*."
msgstr ""
"Fixe le seuil de cet enregistreur au niveau *level*. Les messages de "
"journalisation qui sont moins graves que *level* sont ignorés ; les messages "
"qui ont une gravité égale à *level* ou plus élevée sont émis par le ou les "
"gestionnaires de cet enregistreur, à moins que le niveau d'un gestionnaire "
"n'ait été fixé à un niveau de gravité plus élevé que *level*."
#: ../Doc/library/logging.rst:101
msgid ""
@ -169,6 +222,11 @@ msgid ""
"delegation to the parent when the logger is a non-root logger). Note that "
"the root logger is created with level :const:`WARNING`."
msgstr ""
"Lorsqu'un enregistreur est créé, le niveau est fixé à :const:`NOTSET` (ce "
"qui entraîne le traitement de tous les messages lorsque l'enregistreur est "
"l'enregistreur racine, ou la délégation au parent lorsque l'enregistreur est "
"un enregistreur non racine). Notez que l'enregistreur racine est créé avec "
"le niveau :const:`WARNING`."
#: ../Doc/library/logging.rst:106
msgid ""
@ -176,6 +234,10 @@ msgid ""
"NOTSET, its chain of ancestor loggers is traversed until either an ancestor "
"with a level other than NOTSET is found, or the root is reached."
msgstr ""
"Le terme « délégation au parent » signifie que si un enregistreur a un "
"niveau de ``NOTSET``, sa chaîne denregistreurs parents est parcourue "
"jusqu'à ce qu'un parent ayant un niveau autre que ``NOTSET`` soit trouvé, ou "
"que la racine soit atteinte."
#: ../Doc/library/logging.rst:110
msgid ""
@ -183,6 +245,10 @@ msgid ""
"level is treated as the effective level of the logger where the ancestor "
"search began, and is used to determine how a logging event is handled."
msgstr ""
"Si un ancêtre est trouvé avec un niveau autre que NOTSET, alors le niveau de "
"ce parent est traité comme le niveau effectif de l'enregistreur où la "
"recherche de l'ancêtre a commencé, et est utilisé pour déterminer comment un "
"événement d'enregistrement est traité."
#: ../Doc/library/logging.rst:114
msgid ""
@ -190,10 +256,13 @@ msgid ""
"be processed. Otherwise, the root's level will be used as the effective "
"level."
msgstr ""
"Si la racine est atteinte, et qu'elle a un niveau de NOTSET, alors tous les "
"messages sont traités. Sinon, le niveau de la racine est utilisé comme "
"niveau effectif."
#: ../Doc/library/logging.rst:117 ../Doc/library/logging.rst:407
msgid "See :ref:`levels` for a list of levels."
msgstr ""
msgstr "Voir :ref:`levels` pour la liste des niveaux."
#: ../Doc/library/logging.rst:119
msgid ""
@ -203,6 +272,12 @@ msgid ""
"such as e.g. :meth:`getEffectiveLevel` and :meth:`isEnabledFor` will return/"
"expect to be passed integers."
msgstr ""
"Le paramètre *level* accepte maintenant une représentation du niveau en "
"chaîne de caractères (comme ``'INFO'``) en alternative aux constantes "
"entières comme :const:`INFO`. Notez, cependant, que les niveaux sont stockés "
"en interne sous forme d'entiers, et des méthodes telles que :meth:"
"`getEffectiveLevel` et :meth:`isEnabledFor` renvoient/s'attendent à recevoir "
"des entiers."
#: ../Doc/library/logging.rst:129
msgid ""
@ -220,6 +295,12 @@ msgid ""
"`NOTSET` is found, and that value is returned. The value returned is an "
"integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc."
msgstr ""
"Indique le niveau effectif pour cet enregistreur. Si une valeur autre que :"
"const:`NOTSET` a été définie en utilisant :meth:`setLevel`, elle est "
"renvoyée. Sinon, la hiérarchie est parcourue vers la racine jusqu'à ce "
"qu'une valeur autre que :const:`NOTSET` soit trouvée, et cette valeur est "
"renvoyée. La valeur renvoyée est un entier, généralement l'un de :const:"
"`logging.DEBUG`, :const:`logging.INFO`, etc."
#: ../Doc/library/logging.rst:147
msgid ""
@ -229,6 +310,12 @@ msgid ""
"ghi')``. This is a convenience method, useful when the parent logger is "
"named using e.g. ``__name__`` rather than a literal string."
msgstr ""
"Renvoie un enregistreur qui est un enfant de cet enregistreur, tel que "
"déterminé par le suffixe. Ainsi, ``logging.getLogger('abc').getChild('def."
"ghi')`` renvoie le même enregistreur que celui renvoyé par ``logging."
"getLogger('abc.def.ghi')``. C'est une méthode de pure commodité, utile "
"lorsque lenregistreur parent est nommé en utilisant par exemple "
"``__name__`` plutôt qu'une chaîne de caractères littérale."
#: ../Doc/library/logging.rst:158
msgid ""
@ -848,7 +935,7 @@ msgstr ""
#: ../Doc/library/logging.rst:0
msgid "Parameters"
msgstr ""
msgstr "Paramètres"
#: ../Doc/library/logging.rst:672
msgid ""

View File

@ -45,16 +45,24 @@ msgid ""
"`LZMAFile` instance from multiple threads, it is necessary to protect it "
"with a lock."
msgstr ""
"L'interface disponible par ce module ressemble en de nombreux points à celle "
"du module :mod:`bz2`. Cependant, notez que la :class:`LZMAFile` n'est pas "
"*thread-safe*, comme l'est la :class:`bz2.BZ2File`. Donc, si vous souhaitez "
"utiliser une seule instance de :class:`LZMAFile` pour plusieurs fils, il "
"sera alors nécessaire de la protéger avec un verrou (*lock*)."
#: ../Doc/library/lzma.rst:29
msgid ""
"This exception is raised when an error occurs during compression or "
"decompression, or while initializing the compressor/decompressor state."
msgstr ""
"Cette exception est levée dès lors qu'une erreur survient pendant la "
"compression ou la décompression, ou pendant l'initialisation de l'état de la "
"compression/décompression."
#: ../Doc/library/lzma.rst:34
msgid "Reading and writing compressed files"
msgstr ""
msgstr "Lire et écrire des fichiers compressés"
#: ../Doc/library/lzma.rst:38
msgid ""
@ -69,6 +77,10 @@ msgid ""
"which case the named file is opened, or it can be an existing file object to "
"read from or write to."
msgstr ""
"L'argument *nom de fichier* peut être soit le nom d'un fichier à créer "
"(donné pour :class:`str`, :class:`bytes` ou un objet :term:`path-like <path-"
"like object>`), dont le fichier nommé reste ouvert, ou soit un objet fichier "
"existant à lire ou à écrire."
#: ../Doc/library/lzma.rst:46
msgid ""
@ -77,6 +89,10 @@ msgid ""
"\"rt\"``, ``\"wt\"``, ``\"xt\"``, or ``\"at\"`` for text mode. The default "
"is ``\"rb\"``."
msgstr ""
"L'argument *mode* peut être n'importe quel argument suivant : ``\"r\"``, ``"
"\"rb\"``, ``\"w\"``, ``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` ou ``\"ab"
"\"`` pour le mode binaire, ou ``\"rt\"``, ``\"wt\"``, ``\"xt\"``, ou ``\"at"
"\"`` pour le mode texte. La valeur par défaut est ``\"rb\"``."
#: ../Doc/library/lzma.rst:50 ../Doc/library/lzma.rst:95
msgid ""
@ -84,12 +100,18 @@ msgid ""
"the same meanings as for :class:`LZMADecompressor`. In this case, the "
"*check* and *preset* arguments should not be used."
msgstr ""
"Quand un fichier est ouvert pour le lire, les arguments *format* et "
"*filters* ont les mêmes significations que pour la :class:"
"`LZMADecompressor`. Par conséquent, les arguments *check* et *preset* ne "
"devront pas être sollicités."
#: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99
msgid ""
"When opening a file for writing, the *format*, *check*, *preset* and "
"*filters* arguments have the same meanings as for :class:`LZMACompressor`."
msgstr ""
"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, *check*, "
"*preset* et *filters* ont le même sens que dans la :class:`LZMACompressor`."
#: ../Doc/library/lzma.rst:57
msgid ""
@ -97,6 +119,9 @@ msgid ""
"constructor: ``LZMAFile(filename, mode, ...)``. In this case, the "
"*encoding*, *errors* and *newline* arguments must not be provided."
msgstr ""
"Pour le mode binaire, cette fonction équivaut au constructeur de la :class:"
"`LZMAFile` : ``LZMAFile(filename, mode, ...)``. Dans ce cas précis, les "
"arguments *encoding*, *errors* et *newline* ne sont pas accessibles."
#: ../Doc/library/lzma.rst:61
msgid ""
@ -107,7 +132,7 @@ msgstr ""
#: ../Doc/library/lzma.rst:65
msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes."
msgstr ""
msgstr "Support ajouté pour les modes ``\"x\"``, ``\"xb\"`` et ``\"xt\"``."
#: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126
msgid "Accepts a :term:`path-like object`."
@ -115,7 +140,7 @@ msgstr "Accepte un :term:`path-like object`."
#: ../Doc/library/lzma.rst:74
msgid "Open an LZMA-compressed file in binary mode."
msgstr ""
msgstr "Ouvre un fichier LZMA compressé en mode binaire."
#: ../Doc/library/lzma.rst:76
msgid ""
@ -126,6 +151,12 @@ msgid ""
"wrapping an existing file object, the wrapped file will not be closed when "
"the :class:`LZMAFile` is closed."
msgstr ""
"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or "
"operate directly on a named file. The *filename* argument specifies either "
"the file object to wrap, or the name of the file to open (as a :class:"
"`str`, :class:`bytes` or :term:`path-like <path-like object>` object). When "
"wrapping an existing file object, the wrapped file will not be closed when "
"the :class:`LZMAFile` is closed."
#: ../Doc/library/lzma.rst:83
msgid ""
@ -134,6 +165,10 @@ msgid ""
"appending. These can equivalently be given as ``\"rb\"``, ``\"wb\"``, ``\"xb"
"\"`` and ``\"ab\"`` respectively."
msgstr ""
"L'argument *mode* peut être soit ``\"r\"`` pour la lecture (défaut), ``\"w"
"\"`` pour la ré-écriture, ``\"x\"`` pour la création exclusive, ou ``\"a\"`` "
"pour l'insertion. Elles peuvent aussi être écrites de la façon suivante : ``"
"\"rb\"``, ``\"wb\"``, ``\"xb\"`` et ``\"ab\"`` respectivement."
#: ../Doc/library/lzma.rst:88
msgid ""
@ -147,6 +182,9 @@ msgid ""
"multiple separate compressed streams. These are transparently decoded as a "
"single logical stream."
msgstr ""
"Dès l'ouverture d'un fichier pour être lu, le fichier d'entrée peut être le "
"résultat d'une concaténation de plusieurs flux distincts et compressés. Ceux-"
"ci sont décodés de manière transparente en un seul flux logique."
#: ../Doc/library/lzma.rst:102
msgid ""
@ -157,7 +195,7 @@ msgstr ""
#: ../Doc/library/lzma.rst:106
msgid "The following method is also provided:"
msgstr ""
msgstr "Les méthodes suivantes sont aussi disponibles :"
#: ../Doc/library/lzma.rst:110
msgid ""
@ -165,6 +203,10 @@ msgid ""
"of data will be returned, unless EOF has been reached. The exact number of "
"bytes returned is unspecified (the *size* argument is ignored)."
msgstr ""
"Renvoie la donnée en mémoire-tampon sans progression de la position du "
"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit "
"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument "
"*taille* est ignoré). "
#: ../Doc/library/lzma.rst:114
msgid ""
@ -183,49 +225,61 @@ 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/lzma.rst:131
msgid "Compressing and decompressing data in memory"
msgstr ""
msgstr "Compresser et décompresser une donnée en mémoire"
#: ../Doc/library/lzma.rst:135
msgid ""
"Create a compressor object, which can be used to compress data incrementally."
msgstr ""
"Créé un objet compresseur, qui peut être utilisé pour compresser "
"incrémentalement une donnée."
#: ../Doc/library/lzma.rst:137
msgid ""
"For a more convenient way of compressing a single chunk of data, see :func:"
"`compress`."
msgstr ""
"Pour une façon plus adaptée de compresser un seul extrait de donnée, voir :"
"func:`compress`."
#: ../Doc/library/lzma.rst:140
msgid ""
"The *format* argument specifies what container format should be used. "
"Possible values are:"
msgstr ""
"L'argument *format* définit quel format de conteneur sera mis en œuvre. Les "
"valeurs possibles sont :"
#: ../Doc/library/lzma.rst:144
msgid ":const:`FORMAT_XZ`: The ``.xz`` container format."
msgstr ""
msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``."
#: ../Doc/library/lzma.rst:144
msgid "This is the default format."
msgstr ""
msgstr "C'est le format par défaut."
#: ../Doc/library/lzma.rst:148
msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format."
msgstr ""
msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma``."
#: ../Doc/library/lzma.rst:147
msgid ""
"This format is more limited than ``.xz`` -- it does not support integrity "
"checks or multiple filters."
msgstr ""
"Ce format est davantage limité que ``.xz`` --il ne supporte pas les "
"vérifications d'intégrité ou les filtres multiples."
#: ../Doc/library/lzma.rst:154
msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format."
msgstr ""
":const:`FORMAT_RAW`: Un flux de données brut, n'utilisant aucun format de "
"conteneur."
#: ../Doc/library/lzma.rst:151
msgid ""
@ -234,6 +288,11 @@ msgid ""
"decompression). Additionally, data compressed in this manner cannot be "
"decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)."
msgstr ""
"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et "
"exige systématiquement la définition d'une chaîne de filtrage personnalisée "
"(à la fois pour la compression et la décompression). Par ailleurs, les "
"données compressées par ce biais ne peuvent pas être décompressées par "
"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)."
#: ../Doc/library/lzma.rst:156
msgid ""
@ -241,31 +300,46 @@ msgid ""
"compressed data. This check is used when decompressing, to ensure that the "
"data has not been corrupted. Possible values are:"
msgstr ""
"L'argument *check* détermine le type de vérification d'intégrité à exploiter "
"avec la donnée compressée. Cette vérification est déclenchée lors de la "
"décompression, pour garantir que la donnée n'a pas été corrompue. Les "
"valeurs possibles sont :"
#: ../Doc/library/lzma.rst:160
msgid ""
":const:`CHECK_NONE`: No integrity check. This is the default (and the only "
"acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`."
msgstr ""
":const:`CHECK_NONE`: Pas de vérification d'intégrité. C'est la valeur par "
"défaut (et la seule valeur acceptable) pour :const:`FORMAT_ALONE` et :const:"
"`FORMAT_RAW`."
#: ../Doc/library/lzma.rst:164
msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check."
msgstr ""
":const:`CHECK_CRC32`: Vérification par Redondance Cyclique 32-bit (*Cyclic "
"Redundancy Check*)."
#: ../Doc/library/lzma.rst:166
msgid ""
":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default "
"for :const:`FORMAT_XZ`."
msgstr ""
":const:`CHECK_CRC64`: Vérification par Redondance Cyclique 64-bit (*Cyclic "
"Redundancy Check*). Valeur par défaut pour :const:`FORMAT_XZ`."
#: ../Doc/library/lzma.rst:169
msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm."
msgstr ""
":const:`CHECK_SHA256`: Algorithme de Hachage Sécurisé 256-bit (*Secure Hash "
"Algorithm*)."
#: ../Doc/library/lzma.rst:171
msgid ""
"If the specified check is not supported, an :class:`LZMAError` is raised."
msgstr ""
"Si le type de vérification n'est pas supporté par le système, une erreur de "
"type :class:`LZMAError` est levée."
#: ../Doc/library/lzma.rst:173
msgid ""
@ -273,6 +347,10 @@ msgid ""
"level (with the *preset* argument), or in detail as a custom filter chain "
"(with the *filters* argument)."
msgstr ""
"Les réglages de compression peuvent être définis soit comme un pré-réglage "
"de niveau de compression (avec l'argument *preset*) ; soit de façon "
"détaillée comme une chaîne particulière de filtres (avec l'argument "
"*filters*)."
#: ../Doc/library/lzma.rst:177
msgid ""
@ -282,6 +360,12 @@ msgid ""
"behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher "
"presets produce smaller output, but make the compression process slower."
msgstr ""
"L'argument *preset* (s'il est fourni) doit être un entier compris entre `0`` "
"et ``9`` (inclus), éventuellement relié à OR avec la constante :const:"
"`PRESET_EXTREME`. Si aucun *preset* ni *filters* ne ont définis, le "
"comportement par défaut consiste à utiliser la :const:`PRESET_DEFAULT` "
"(niveau par défaut : ``6``). Des pré-réglages plus élevés entraîne une "
"sortie plus petite, mais rend le processus de compression plus lent."
#: ../Doc/library/lzma.rst:186
msgid ""
@ -291,12 +375,20 @@ msgid ""
"`LZMACompressor` object can be as high as 800 MiB. For this reason, it is "
"generally best to stick with the default preset."
msgstr ""
"En plus d'être plus gourmande en CPU, la compression avec des préréglages "
"plus élevés nécessite beaucoup plus de mémoire (et produit des résultats qui "
"nécessitent plus de mémoire pour décompresser). Par exemple, avec le "
"préréglage ``9``, l'objet d'une :class:`LZMACompressor` peut dépasser "
"largement les 800 Mo. Pour cette raison, il est généralement préférable de "
"respecter le préréglage par défaut."
#: ../Doc/library/lzma.rst:192
msgid ""
"The *filters* argument (if provided) should be a filter chain specifier. "
"See :ref:`filter-chain-specs` for details."
msgstr ""
"L'argument *filters* (s'il est défini) doit être un critère de la chaîne de "
"filtrage. Voir :ref:`filter-chain-specs` pour plus de précisions."
#: ../Doc/library/lzma.rst:197
msgid ""
@ -306,12 +398,21 @@ msgid ""
"meth:`flush`. The returned data should be concatenated with the output of "
"any previous calls to :meth:`compress`."
msgstr ""
"Une *data* compressée (un objet :class:`bytes`), renvoie un objet :class:"
"`bytes` contenant une donnée compressée pour au moins une partie de "
"l'entrée. Certaine *data* peuvent être mise en tampon, pour être utiliser "
"lors de prochains appels par :meth:`compress` et :meth:`flush`. La donnée "
"renvoyée pourra être concaténée avec la sortie d'appels précédents vers la "
"méthode :meth:`compress`."
#: ../Doc/library/lzma.rst:205
msgid ""
"Finish the compression process, returning a :class:`bytes` object containing "
"any data stored in the compressor's internal buffers."
msgstr ""
"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` "
"constitué de toutes les données stockées dans les tampons interne du "
"compresseur."
#: ../Doc/library/lzma.rst:208
msgid "The compressor cannot be used after this method has been called."
@ -322,12 +423,16 @@ msgid ""
"Create a decompressor object, which can be used to decompress data "
"incrementally."
msgstr ""
"Créé un objet de décompression, pour décompresser de façon incrémentale une "
"donnée."
#: ../Doc/library/lzma.rst:216
msgid ""
"For a more convenient way of decompressing an entire compressed stream at "
"once, see :func:`decompress`."
msgstr ""
"Pour un moyen plus pratique de décompresser un flux compressé complet en une "
"seule fois, voir :func:`decompress`."
#: ../Doc/library/lzma.rst:219
msgid ""
@ -336,6 +441,10 @@ msgid ""
"``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:"
"`FORMAT_ALONE`, and :const:`FORMAT_RAW`."
msgstr ""
"L'argument *format* spécifie le format du conteneur à utiliser. La valeur "
"par défaut est :const:`FORMAT_AUTO` pouvant à la fois décompresser les "
"fichiers ``.xz`` et ``.lzma``. D'autres valeurs sont possibles comme :const:"
"`FORMAT_XZ`, :const:`FORMAT_ALONE`, et :const:`FORMAT_RAW`."
#: ../Doc/library/lzma.rst:224
msgid ""
@ -344,6 +453,10 @@ msgid ""
"will fail with an :class:`LZMAError` if it is not possible to decompress the "
"input within the given memory limit."
msgstr ""
"L'argument *memlimit* spécifie une limite (en octets) sur la quantité de "
"mémoire que le décompresseur peut utiliser. Lorsque cet argument est "
"utilisé, la décompression échouera avec une :class:`LZMAError` s'il n'est "
"pas possible de décompresser l'entrée dans la limite mémoire disponible."
#: ../Doc/library/lzma.rst:229
msgid ""
@ -352,6 +465,10 @@ msgid ""
"const:`FORMAT_RAW`, but should not be used for other formats. See :ref:"
"`filter-chain-specs` for more information about filter chains."
msgstr ""
"L'argument *filters* spécifie la chaîne de filtrage utilisée pour créer le "
"flux décompressé. Cet argument est requis si *format* est :const:"
"`FORMAT_RAW`, mais ne doit pas être utilisé pour d'autres formats. Voir :ref:"
"`filter-chain-specs` pour plus d'informations sur les chaînes de filtrage."
#: ../Doc/library/lzma.rst:235
msgid ""
@ -360,6 +477,10 @@ msgid ""
"decompress a multi-stream input with :class:`LZMADecompressor`, you must "
"create 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, contrairement à :func:`decompress` et :class:"
"`LZMAFile`. Pour décompresser une entrée multi-flux avec :class:"
"`LZMADecompressor`, vous devez créer un nouveau décompresseur à chaque flux."
#: ../Doc/library/lzma.rst:242
msgid ""
@ -368,6 +489,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/lzma.rst:248
msgid ""
@ -377,6 +503,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/lzma.rst:255
msgid ""
@ -384,6 +515,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/lzma.rst:260
msgid ""
@ -391,6 +525,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/lzma.rst:264
msgid "Added the *max_length* parameter."
@ -402,10 +539,13 @@ msgid ""
"`CHECK_UNKNOWN` until enough of the input has been decoded to determine what "
"integrity check it uses."
msgstr ""
"L'ID de la vérification d'intégrité exploité par le flux entrant. Il s'agit "
"de :const:`CHECK_UNKNOWN` tant que ce flux a été décodé pour déterminer quel "
"type de vérification d'intégrité à été utilisé."
#: ../Doc/library/lzma.rst:275
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/lzma.rst:279
msgid "Data found after the end of the compressed stream."
@ -413,43 +553,55 @@ msgstr "Donnée trouvée après la fin du flux compressé."
#: ../Doc/library/lzma.rst:281
msgid "Before the end of the stream is reached, this will be ``b\"\"``."
msgstr ""
msgstr "Avant d'atteindre la fin du flux, ce sera ``b\"\"``."
#: ../Doc/library/lzma.rst:285
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/lzma.rst:292
msgid ""
"Compress *data* (a :class:`bytes` object), returning the compressed data as "
"a :class:`bytes` object."
msgstr ""
"*data* compressée (un objet :class:`bytes`), renvoyant une donnée compressée "
"comme un objet :class:`bytes`."
#: ../Doc/library/lzma.rst:295
msgid ""
"See :class:`LZMACompressor` above for a description of the *format*, "
"*check*, *preset* and *filters* arguments."
msgstr ""
"Voir :class:`LZMACompressor` ci-dessus pour une description des arguments "
"*format*, *check*, *preset* et *filters*."
#: ../Doc/library/lzma.rst:301
msgid ""
"Decompress *data* (a :class:`bytes` object), returning the uncompressed data "
"as a :class:`bytes` object."
msgstr ""
"Décompresse *data* (un objet :class:`bytes` ), et retourne la donnée "
"décompressée sous la forme d'un objet :class:`bytes`."
#: ../Doc/library/lzma.rst:304
msgid ""
"If *data* is the concatenation of multiple distinct compressed streams, "
"decompress all of these streams, and return the concatenation of the results."
msgstr ""
"Si *data* est le résultat de la concaténation de plusieurs flux compressés "
"et distincts , il les décompresse tous, et retourne les résultats concaténés."
#: ../Doc/library/lzma.rst:307
msgid ""
"See :class:`LZMADecompressor` above for a description of the *format*, "
"*memlimit* and *filters* arguments."
msgstr ""
"Voir :class:`LZMADecompressor` ci-dessus pour une description des arguments "
"*format*, *memlimit* et *filters*."
#: ../Doc/library/lzma.rst:312
msgid "Miscellaneous"
@ -465,10 +617,14 @@ msgid ""
"`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using "
"a version of :program:`liblzma` that was compiled with a limited feature set."
msgstr ""
":const:`CHECK_NONE` et :const:`CHECK_CRC32` sont toujours pris en charge. :"
"const:`CHECK_CRC64` et :const:`CHECK_SHA256` peuvent être indisponibles si "
"vous utilisez une version de :program:`liblzma` compilée avec des "
"possibilités restreintes."
#: ../Doc/library/lzma.rst:327
msgid "Specifying custom filter chains"
msgstr ""
msgstr "Préciser des chaînes de filtre personnalisées"
#: ../Doc/library/lzma.rst:329
msgid ""
@ -477,24 +633,31 @@ msgid ""
"must contain the key ``\"id\"``, and may contain additional keys to specify "
"filter-dependent options. Valid filter IDs are as follows:"
msgstr ""
"Une chaîne de filtres est une séquence de dictionnaires, où chaque "
"dictionnaire contient l'ID et les options pour chaque filtre. Le moindre "
"dictionnaire contient la clé ``\"id\"`` et peut aussi contenir d'autres clés "
"pour préciser chaque options relative au filtre déclaré. Les ID valides des "
"filtres sont définies comme suit :"
#: ../Doc/library/lzma.rst:336
msgid "Compression filters:"
msgstr ""
msgstr "Filtres de compression:"
#: ../Doc/library/lzma.rst:335
msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)"
msgstr ""
msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)"
#: ../Doc/library/lzma.rst:336
msgid ""
":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:"
"`FORMAT_RAW`)"
msgstr ""
":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:"
"`FORMAT_RAW`)"
#: ../Doc/library/lzma.rst:339
msgid "Delta filter:"
msgstr ""
msgstr "Filtre Delta:"
#: ../Doc/library/lzma.rst:339
msgid ":const:`FILTER_DELTA`"
@ -502,7 +665,7 @@ msgstr ":const:`FILTER_DELTA`"
#: ../Doc/library/lzma.rst:347
msgid "Branch-Call-Jump (BCJ) filters:"
msgstr ""
msgstr "Filtres Branch-Call-Jump (BCJ):"
#: ../Doc/library/lzma.rst:342
msgid ":const:`FILTER_X86`"
@ -534,60 +697,78 @@ msgid ""
"filter in the chain must be a compression filter, and any other filters must "
"be delta or BCJ filters."
msgstr ""
"Une chaîne de filtres peut contenir jusqu'à 4 filtres, et ne peut pas être "
"vide. Le dernier filtre de cette chaîne devra être un filtre de compression, "
"et tous les autres doivent être des filtres delta ou BCJ."
#: ../Doc/library/lzma.rst:353
msgid ""
"Compression filters support the following options (specified as additional "
"entries in the dictionary representing the filter):"
msgstr ""
"Les filtres de compression contiennent les options suivantes (définies comme "
"entrées additionnelles dans le dictionnaire qui représente le filtre) :"
#: ../Doc/library/lzma.rst:356
msgid ""
"``preset``: A compression preset to use as a source of default values for "
"options that are not specified explicitly."
msgstr ""
"``preset``: Un pré-réglage à exploiter comme une source de valeurs par "
"défaut pour les options qui ne sont pas explicitement définies."
#: ../Doc/library/lzma.rst:358
msgid ""
"``dict_size``: Dictionary size in bytes. This should be between 4 KiB and "
"1.5 GiB (inclusive)."
msgstr ""
"``dict_size``: La taille du dictionnaire en octets. Comprise entre 4 Ko et "
"1.5 Go (inclus)."
#: ../Doc/library/lzma.rst:360
msgid "``lc``: Number of literal context bits."
msgstr ""
msgstr "``lc``: Nombre de bits dans le contexte littéral."
#: ../Doc/library/lzma.rst:361
msgid ""
"``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most "
"4."
msgstr ""
"``lp``: Nombre de bits dans la position littérale. La somme ``lc + lp`` "
"devra être au moins 4."
#: ../Doc/library/lzma.rst:363
msgid "``pb``: Number of position bits; must be at most 4."
msgstr ""
msgstr "``pb``: Nombre de bits à cette position ; au moins 4."
#: ../Doc/library/lzma.rst:364
msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`."
msgstr ""
msgstr "``mode``: :const:`MODE_FAST` ou :const:`MODE_NORMAL`."
#: ../Doc/library/lzma.rst:365
msgid ""
"``nice_len``: What should be considered a \"nice length\" for a match. This "
"should be 273 or less."
msgstr ""
"``nice_len``: Ce qui devra être pris en compte comme \"longueur appréciable"
"\" pour une recherche. Il devra être 273 ou moins."
#: ../Doc/library/lzma.rst:367
msgid ""
"``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:"
"`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`."
msgstr ""
"``mf``: Quel type d'index de recherche à utiliser -- :const:`MF_HC3`, :const:"
"`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, ou :const:`MF_BT4`."
#: ../Doc/library/lzma.rst:369
msgid ""
"``depth``: Maximum search depth used by match finder. 0 (default) means to "
"select automatically based on other filter options."
msgstr ""
"``depth``: Profondeur maximum de la recherche, utilisée par l'index de "
"recherche. 0 (défaut) signifie une sélection automatique basée sur des "
"options de filtres différents."
#: ../Doc/library/lzma.rst:372
msgid ""
@ -597,6 +778,11 @@ msgid ""
"subtracted. The default is 1, i.e. take the differences between adjacent "
"bytes."
msgstr ""
"Le filtre delta stocke les différences entre octets, induisant davantage "
"d'entrées répétitives pour le compresseur, selon les circonstances. Il "
"support une option, ``dist``. Ce paramètre définit la distance entre les "
"octets à soustraire. Par défaut : 1, soit la différence entre des octets "
"adjacents."
#: ../Doc/library/lzma.rst:377
msgid ""
@ -607,6 +793,12 @@ msgid ""
"specifies the address that should be mapped to the beginning of the input "
"data. The default is 0."
msgstr ""
"Les filtres BCJ sont conçus pour être appliqués sur du langage machine. Ils "
"convertissent les branches relatives, les appels et les sauts dans le code à "
"des fins d'adressage strict, dans le but d'augmenter la redondance mise en "
"jeu par le compresseur. Ils ne supportent qu'une seule option : "
"``start_offset``, pour définir l'adresse où sera déclenché le début de la "
"donnée d'entrée. Par défaut : 0."
#: ../Doc/library/lzma.rst:385
msgid "Examples"
@ -614,24 +806,25 @@ msgstr "Exemples"
#: ../Doc/library/lzma.rst:387
msgid "Reading in a compressed file::"
msgstr ""
msgstr "Lire un fichier compressé::"
#: ../Doc/library/lzma.rst:393
msgid "Creating a compressed file::"
msgstr ""
msgstr "Créer un fichier compressé::"
#: ../Doc/library/lzma.rst:400
msgid "Compressing data in memory::"
msgstr ""
msgstr "Compresser des données en mémoire ::"
#: ../Doc/library/lzma.rst:406
msgid "Incremental compression::"
msgstr ""
msgstr "Compression incrémentale ::"
#: ../Doc/library/lzma.rst:417
msgid "Writing compressed data to an already-open file::"
msgstr ""
msgstr "Écrire des données compressées dans un fichier préalablement ouvert ::"
#: ../Doc/library/lzma.rst:426
msgid "Creating a compressed file using a custom filter chain::"
msgstr ""
"Créer un fichier compressé en utilisant une chaîne de filtre personnalisée ::"

Some files were not shown because too many files have changed in this diff Show More