Compare commits

...

15 Commits
3.11 ... 3.8

Author SHA1 Message Date
Julien Palard 581fa8ef18
Backporting for #1628. 2021-06-04 17:22:51 +02:00
Julien Palard 5cd980df96
Backporting using pomerge --no-overwrite --to-files *.po */*.po 2021-06-04 13:50:47 +02:00
Julien Palard 4177392fed Backport dict from 3.9 2020-10-06 22:23:39 +02:00
Julien Palard b62a286c93 Backporting from 3.9. 2020-10-06 22:19:50 +02:00
PhilippeGalvan 37cc13ea35
Traduction pour library/asyncio-task.po (#1403) 2020-09-30 14:43:00 +02:00
Mathieu Dupuy d0a70ccb41
relecture library/re.po (backport 3.8) (#1430) 2020-09-29 08:55:17 +02:00
Mathieu Dupuy 40db2fea18
corrige deux balises cassées - backport 3.8 (#1425) 2020-09-25 17:59:17 +02:00
Mathieu Dupuy cb8c4f8149
Translation of tarfile.po from english to french (#1274) (#1374)
* Translation for tarfile.po from english to french

* Fix to make serve working correctly

* Text improvement

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Julien Palard <julien@palard.fr>

* Update library/tarfile.po

Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>

* update after re-reading using Poeditor

* Small fix wrap and spell

* Small fix for a runaway space

* espaces insécable + minuscules pour certaines phrases

* Apply suggestions from code review

Co-authored-by: Julien Palard <julien@palard.fr>

* Apply suggestions from code review

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Fix of wrapping

* ajoute un marqueur de fuzzy

* Useless spaces.

Co-authored-by: Julien Palard <julien@palard.fr>
Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

Co-authored-by: Sim4n6 <sim4n6@gmail.com>
Co-authored-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2020-08-09 15:28:16 +02:00
Julien Palard d1d14b84c4 powrap 2020-06-23 15:32:54 +02:00
Julien Palard 60a0be9580
Relecture (os.html et un petit peu exceptions.html) (#1328)
* Relecture.

* Apply suggestions from code review

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Update library/os.po

Co-authored-by: Jules Lasne (jlasne) <jlasne@student.42.fr>

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
Co-authored-by: Jules Lasne (jlasne) <jlasne@student.42.fr>
2020-06-23 14:49:04 +02:00
Samuel GIFFARD 360e44a0ee
Traduction de reference. (#1327) 2020-06-15 19:11:10 +02:00
Loc Cosnier 46213b26cd
Traductions manquantes library/datetime.po (#1338) 2020-06-06 17:37:53 +02:00
Antoine 2614b5b38c
library/multiprocessing.shared_memory.po (#1335)
* library/multiprocessing.shared_memory.po

* Correction erreurs dict.

* Suggestions de ChristopheNan

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

* Wrapping

* Suppression entrée dico inutile depuis relecture de ChristopheNan.

* Update library/multiprocessing.shared_memory.po

De @christopheNan

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>

Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com>
2020-06-02 12:05:36 +02:00
Mathieu Dupuy 788fa6e7fe
tutorial/datastructure: 1 fuzzy, 2 reformulations (#1315) 2020-06-01 23:23:41 +02:00
Antoine cfa4c4155b
Améliorations du README. (#1331)
* Améliorations du README.

* Suggestions de ChristopheNan.
2020-06-01 22:52:48 +02:00
71 changed files with 4925 additions and 904 deletions

View File

@ -68,7 +68,7 @@ version locale.
git fetch upstream
On créé ensuite une branche. Il est pratique de nommer la branche en fonction du
On crée ensuite une branche. Il est pratique de nommer la branche en fonction du
fichier sur lequel on travaille. Par exemple, si vous travaillez sur
« library/sys.po », vous pouvez nommer votre branche « library-sys ».
Cette nouvelle branche nommée « library-sys » est basée sur « upstream/3.8 ».
@ -93,22 +93,27 @@ Ici, remplacez « library/sys.po » par le fichier que vous avez choisi préc
Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ».
Si vous n'utilisez pas Poedit, vous pouvez utiliser `powrap <https://github.com/JulienPalard/powrap>`_
(voir la section *outils*) qui reformate correctement le fichier que vous avez modifié.
Exécutez `powrap -m` (reformater tous les fichiers modifiés)
ou `powrap library/sys.po` (un fichier en particulier) :
.. code-block:: bash
powrap -m
Traduction
~~~~~~~~~~
Vous pouvez dès à présent commencer à traduire le fichier en respectant les `Conventions`_ du projet.
Vous pouvez dès à présent commencer à traduire le fichier en respectant les `conventions`_ du projet.
Pour vous aider à ne pas faire de fautes d'orthographe, vous pouvez vérifier que tous les mots utilisés sont
bien dans le dictionnaire (ça ne vérifie pas la grammaire, pour cela utilisez `padpo (beta)`_). En cas
de doute, un `glossaire`_ répertorie déjà les traductions retenues pour certains termes techniques ou faux amis
en anglais.
La commande suivante lance les vérifications nécessaires :
.. code-block:: bash
make spell
Vous pouvez aussi réindenter les fichiers avec :
.. code-block:: bash
make wrap
Et pour faire les deux à la fois, lancez :
.. code-block:: bash
@ -133,11 +138,18 @@ La documentation est publiée l'adresse `<http://localhost:8000/library/sys.html
(ou tout autre port indiqué par la sortie de la commande précédente). Vous pouvez
recommencer les étapes de cette section autant de fois que nécessaire.
Poedit donne beaucoup d'avertissements, par exemple pour vous informer que
« la traduction devrait commencer par une majuscule » car c'est le cas pour
la source. Ces avertissements ne sont pas tous fondés. En cas de doute,
*affichez et relisez la page HTML produite* avec ``make serve``.
*pull request*
~~~~~~~~~~~~~~
C'est le moment de `git add` et `git commit`.
`git add` place nos modifications dans l'index de Git en
Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les
`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local.
``git add`` place nos modifications dans l'index de Git en
attendant d'être propagées dans le dépôt local.
.. code-block:: bash
@ -145,17 +157,16 @@ attendant d'être propagées dans le dépôt local.
git add library/sys.po
Puis on propage les modifications dans le dépôt local avec un commit.
``git commit`` permet de les propager :
.. code-block:: bash
git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :)
Poussez ensuite vos modifications sur votre fork Github.
Le -u n'est utile qu'une fois pour que votre client git se souvienne que cette
branche est liée à votre fork Github (et donc que vos futurs `git pull` et
`git push` sachent quoi tirer).
Poussez ensuite vos modifications sur votre *fork* Github avec ``git push``.
Le ``-u`` n'est utile qu'une fois pour que votre client git se souvienne que cette
branche est liée à votre *fork* Github (et donc que vos futurs ``git pull`` et
``git push`` sachent quoi tirer).
.. code-block:: bash
@ -166,13 +177,14 @@ Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/p
et un joli bouton « Compare & pull request » devrait apparaître au bout de
quelques secondes vous indiquant que vous pouvez demander une pull request.
Mettez dans le commentaire de la pull request le texte suivant :
Mettez dans le commentaire de la *pull request* le texte suivant :
« Closes #XXXX » où XXXX est le numéro du ticket GitHub créé pour réserver le fichier traduit.
Cela permet à Github de lier la *pull request* au ticket de réservation.
À partir de là, quelqu'un passera en revue vos modifications, et vous fera des
suggestions et corrections. Pour les prendre en compte, retournez sur votre branche
contenant du fichier concerné (au cas où vous auriez commencé quelque chose d'autre
sur une autre branche) :
contenant le fichier concerné (au cas où vous auriez commencé quelque chose d'autre
sur une autre branche) :
.. code-block:: bash
@ -196,7 +208,7 @@ de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le
rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues.
Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une
branche de version (``3.7``, ``3.8``, etc.), seulement récupéré les
branche de version (3.7, 3.8, etc.), seulement récupéré les
modifications à partir d'elles.
Toutes les traductions sont faites sur la dernière version.
@ -210,20 +222,20 @@ les plus anciennes par l'`équipe de documentation
Que traduire ?
--------------
Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers ``po``
Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers *po*
à traduire. Une fois installé, utilisez la commande ``make todo`` dans votre clone
local.
Vous pouvez choisir n'importe quel fichier non réservé dans la liste
renvoyée par la commande **à l'exception** des fichiers de :
- ``c-api/`` car c'est une partie très technique ;
- ``whatsnew/`` car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ;
- ``distutils/`` et ``install/`` car ces pages seront bientôt obsolètes.
- *c-api/* car c'est une partie très technique ;
- *whatsnew/* car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ;
- *distutils/* et *install/* car ces pages seront bientôt obsolètes.
Vous pouvez commencer par des tâches faciles comme réviser les entrées
*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide
de `make fuzzy`). Une entrée *fuzzy* correspond à une entrée déjà traduite
de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite
mais dont la source en anglais a été remodifiée depuis (correction orthographique,
changement d'un terme, ajout ou suppression d'une phrase…). Elles sont
généralement plus « faciles » à traduire.
@ -235,8 +247,61 @@ idée, et passer ensuite à la traduction de celles qui ne le sont pas encore.
Conventions
-----------
Certaines conventions ont été édictées pour homogénéiser la traduction.
Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et
les traductions déjà définies dans le `glossaire`_.
Style
~~~~~
Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle
en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et
agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même
conseillé — d'intervertir des propositions ou de réarranger des phrases de la
documentation anglaise, si le rythme l'exige. Il faut aussi chercher des
équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre
garde aux anglicismes.
Utilisation du futur
++++++++++++++++++++
Dans la description du comportement de Python (au sens large, c'est-à-dire
l'interpréteur lui-même mais aussi toutes les bibliothèques), la version
originale utilise souvent le futur : « if you do this, it will produce
that… ». En français, l'utilisation du présent convient tout à fait et le
présent est souvent plus facile à lire : « si vous faites ceci, il se
produit cela… ». On ne conserve le futur que si la seconde proposition
se situe réellement dans le futur (par exemple, on peut penser qu'un
processus de compilation n'est pas immédiat) ou pour des raisons de
concordance des temps.
Utilisation du conditionnel
+++++++++++++++++++++++++++
La version originale est très polie envers le lecteur ; elle lui intime
rarement des obligations, préférant employer « you should ». Cependant, en
français, il est d'usage d'être plus direct pour être correctement compris :
« vous devez ». *Vous devriez* est en effet généralement compris comme quelque
chose dont l'on peut de temps en temps se passer, alors que c'est très
rarement le cas pour les « you should » de cette documentation.
De la même manière, « can » est souvent mieux traduit sans introduire de notion
de possibilité, en particulier quand la phrase est à la voix passive ; la
phrase « these objects can be accessed by… » se traduit mieux par « on accède à
ces objets en… ».
Utilisation du masculin
+++++++++++++++++++++++
Dans un souci de lisibilité et en accord avec la préconisation de
l'Académie française, nous utilisons le masculin pour indiquer un
genre neutre. Par exemple : l'utilisateur ou le lecteur.
Règles rst
~~~~~~~~~~
Prototypes et exemples
~~~~~~~~~~~~~~~~~~~~~~
++++++++++++++++++++++
Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms
de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser
@ -267,7 +332,7 @@ mais pas en
...
Liens hypertextes
~~~~~~~~~~~~~~~~~
+++++++++++++++++
Il faut transformer les liens hypertextes qui redirigent vers une page dont il
existe une version française (c'est notamment très souvent le cas pour les
@ -278,61 +343,17 @@ doit devenir ```Jeu de la vie <https://fr.wikipedia.org/wiki/Jeu_de_la_vie>`_``.
Balises
~~~~~~~
+++++++
Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``.
Vous devez cependant traduire les balises ``:term:...``, qui font référence à
un concept ou une primitive Python défini dans le `glossaire <https://docs.python.org/fr/3/glossary.html>`_.
un concept ou une primitive défini dans le `glossaire Python <https://docs.python.org/fr/3/glossary.html>`_.
La syntaxe est ``:term:nom_français<nom_anglais>``. Par exemple, traduisez
``:term:`dictionary``` en ``:term:`dictionaire <dictionary>```.
Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque
terme que vous pouvez rencontrer.
Style
~~~~~
Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle
en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et
agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même
conseillé — d'intervertir des propositions ou de réarranger des phrases de la
documentation anglaise, si le rythme l'exige. Il faut aussi chercher des
équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre
garde aux anglicismes.
Utilisation du futur
~~~~~~~~~~~~~~~~~~~~
Dans la description du comportement de Python (au sens large, c'est-à-dire
l'interpréteur lui-même mais aussi toutes les bibliothèques), la version
originale utilise souvent le futur : « if you do this, it will produce
that… ». En français, l'utilisation du présent convient tout à fait et le
présent est souvent plus facile à lire : « si vous faites ceci, il se
produit cela… ». On ne conserve le futur que si la seconde proposition
se situe réellement dans le futur (par exemple, on peut penser qu'un
processus de compilation n'est pas immédiat) ou pour des raisons de
concordance des temps.
Utilisation du conditionnel
~~~~~~~~~~~~~~~~~~~~~~~~~~~
La version originale est très polie envers le lecteur ; elle lui intime
rarement des obligations, préférant employer « you should ». Cependant, en
français, il est d'usage d'être plus direct pour être correctement compris :
« vous devez ». *Vous devriez* est en effet généralement compris comme quelque
chose dont l'on peut de temps en temps se passer, alors que c'est très
rarement le cas pour les « you should » de cette documentation.
De la même manière, « can » est souvent mieux traduit sans introduire de notion
de possibilité, en particulier quand la phrase est à la voix passive ; la
phrase « these objects can be accessed by… » se traduit mieux par « on accède à
ces objets en… ».
Utilisation du masculin
~~~~~~~~~~~~~~~~~~~~~~~
Dans un souci de lisibilité et en accord avec la préconisation de
l'Académie française, nous utilisons le masculin pour indiquer un
genre neutre. Par exemple : l'utilisateur ou le lecteur.
Glossaire
~~~~~~~~~
@ -423,6 +444,36 @@ underscore tiret bas, *underscore*
whitespace caractère d'espacement
========================== ===============================================
Ressources de traduction
------------------------
- les canaux IRC sur freenode :
- `#python-docs-fr <http://irc.lc/freenode/python-docs-fr>`_ — communauté python autour de la documentation française,
- `#python-fr <http://irc.lc/freenode/python-fr>`_ — communauté python francophone,
- `#python-doc <http://irc.lc/freenode/python-fr>`_ — communauté python autour de la documentation anglophone ;
- les listes de diffusion relatives à la documentation (courriel) :
- `de l'AFPy <http://lists.afpy.org/mailman/listinfo/traductions>`_,
- `de cpython <https://mail.python.org/mailman/listinfo/doc-sig>`_ ;
- des glossaires et dictionnaires :
- le `glossaire de la documentation Python <https://docs.python.org/fr/3/glossary.html>`_, car il est déjà traduit,
- les `glossaires et dictionnaires de traduc.org <https://traduc.org/Glossaires_et_dictionnaires>`_, en particulier le `grand dictionnaire terminologique <http://gdt.oqlf.gouv.qc.ca/>`_ de l'Office québécois de la langue française,
- Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ;
- le `guide stylistique pour le français de localisation des produits Sun
<https://web.archive.org/web/20160821182818/http://frenchmozilla.org/FTP/TEMP/guide_stylistique_December05.pdf>`_ donne
beaucoup de conseils pour éviter une traduction trop mot à mot ;
- `Petites leçons de typographie <https://jacques-andre.fr/faqtypo/lessons.pdf>`_,
résumé succint de typographie, utile pour apprendre le bon usage des
majuscules, des espaces, etc.
L'utilisation de traducteurs automatiques comme `DeepL https://www.deepl.com/` ou semi-automatiques comme
`reverso https://context.reverso.net/traduction/anglais-francais/` est proscrite.
Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette
page et génèrent une documentation au style très « lourd ».
Caractères spéciaux et typographie
----------------------------------
@ -531,8 +582,8 @@ En français, nous mettons une espace insécable devant nos deux-points, comme :
Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE`
Le cas des doubles-espaces
~~~~~~~~~~~~~~~~~~~~~~~~~~
Les doubles-espaces
~~~~~~~~~~~~~~~~~~~
La documentation originale comporte beaucoup de doubles-espaces.
Cela se fait en anglais, mais pas en français. De toute manière,
@ -606,38 +657,8 @@ Powrap
| `Lien vers le dépôt <https://github.com/JulienPalard/powrap>`__
Ressources de traduction
------------------------
- les canaux IRC sur freenode :
- `#python-docs-fr <http://irc.lc/freenode/python-docs-fr>`_ — communauté python autour de la documentation française,
- `#python-fr <http://irc.lc/freenode/python-fr>`_ — communauté python francophone,
- `#python-doc <http://irc.lc/freenode/python-fr>`_ — communauté python autour de la documentation anglophone ;
- les listes de diffusion relatives à la documentation (courriel) :
- `de l'AFPy <http://lists.afpy.org/mailman/listinfo/traductions>`_,
- `de cpython <https://mail.python.org/mailman/listinfo/doc-sig>`_ ;
- des glossaires et dictionnaires :
- le `glossaire de la documentation Python <https://docs.python.org/fr/3/glossary.html>`_, car il est déjà traduit,
- les `glossaires et dictionnaires de traduc.org <https://traduc.org/Glossaires_et_dictionnaires>`_, en particulier le `grand dictionnaire terminologique <http://gdt.oqlf.gouv.qc.ca/>`_ de l'Office québécois de la langue française,
- Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ;
- le `guide stylistique pour le français de localisation des produits Sun
<https://web.archive.org/web/20160821182818/http://frenchmozilla.org/FTP/TEMP/guide_stylistique_December05.pdf>`_ donne
beaucoup de conseils pour éviter une traduction trop mot à mot ;
- `Petites leçons de typographie <https://jacques-andre.fr/faqtypo/lessons.pdf>`_,
résumé succint de typographie, utile pour apprendre le bon usage des
majuscules, des espaces, etc.
L'utilisation de traducteurs automatiques comme `DeepL https://www.deepl.com/` ou semi-automatiques comme
`reverso https://context.reverso.net/traduction/anglais-francais/` est proscrite.
Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette
page et génèrent une documentation au style très « lourd ».
Simplification des diffs git
----------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Les diffs git sont souvent encombrés de changements inutiles de numéros
de ligne, comme :
@ -698,31 +719,6 @@ Fusion des fichiers *pot* de CPython
make merge
Trouver les chaînes de caractères *fuzzy*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
make fuzzy
*build* local
~~~~~~~~~~~~~
.. code-block:: bash
make
Serveur de documentation en local
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
make serve
Synchronisation de la traduction avec Transifex
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -11,6 +11,24 @@ Traduction française de la documentation Python
:width: 45%
Contribuer à la traduction
--------------------------
Vous pouvez contribuer :
- en proposant des *pull requests* Github (solution recommandée) ;
- en envoyant un correctif à la liste `traductions <https://lists.afpy.org/mailman/listinfo/traductions>`_.
Consultez le
`guide <https://github.com/python/python-docs-fr/blob/3.8/CONTRIBUTING.rst>`_
pour apprendre les conventions à respecter.
Le coordinateur de cette traduction est `Julien Palard (mdk) <https://mdk.fr/>`_.
Vous pouvez obtenir de l'aide sur le canal ``#python-fr`` sur `freenode
<https://kiwi.freenode.net/>`_ (ne nécessite pas d'inscription) ou poser vos questions sur la
`liste de diffusion <https://lists.afpy.org/mailman/listinfo/traductions>`_ des traductions de l'AFPy.
Accord de contribution à la documentation
-----------------------------------------
@ -34,40 +52,11 @@ En soumettant votre travail à la PSF pour inclusion dans la documentation,
vous signifiez votre acceptation de cet accord.
Contribuer à la traduction
--------------------------
Comment contribuer
~~~~~~~~~~~~~~~~~~
Vous pouvez contribuer :
- en proposant des *pull requests* Github (solution recommandée) ;
- en envoyant un correctif à la liste `traductions <https://lists.afpy.org/mailman/listinfo/traductions>`_.
Consultez le
`guide <https://github.com/python/python-docs-fr/blob/3.8/CONTRIBUTING.rst>`_
pour apprendre les conventions à respecter.
Où obtenir de l'aide ?
~~~~~~~~~~~~~~~~~~~~~~
Le coordinateur de cette traduction est `Julien Palard <https://mdk.fr/>`_.
N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode
<https://kiwi.freenode.net/>`_ (ne nécessite pas d'inscription) ou par la
`liste de diffusion <https://lists.afpy.org/mailman/listinfo/traductions>`_ des traductions de l'AFPy.
Historique du projet
--------------------
Ce projet a été lancé `vers 2000
<https://julienpalard.frama.io/write-the-docs-paris-19/#/2>`_ puis
repris `vers 2012 <https://github.com/AFPy/python_doc_fr>`_ par
l'`AFPy <https://www.afpy.org/>`_. En 2017 ce projet est devenu la
traduction officielle de la documentation Python en français grâce à
la `PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_. `Jules Lasne
<https://github.com/Seluj78>`_ a publié fin 2019 une `vidéo de
l'histoire du dépôt <https://youtu.be/azXmvpEJMhU>`_.
- vers 2000 : `lancement du projet <https://julienpalard.frama.io/write-the-docs-paris-19/#/2>`_ ;
- vers 2012 : `reprise <https://github.com/AFPy/python_doc_fr>`_ par l'`AFPy <https://www.afpy.org/>`_ ;
- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 <https://www.python.org/dev/peps/pep-0545/>`_.
Une `vidéo <https://youtu.be/azXmvpEJMhU>`_ de `Jules Lasne <https://github.com/Seluj78>`_ montre l'évolution du dépôt.

View File

@ -16,3 +16,4 @@ Antoine Wecxsteen
Youen 'laën' Froger
Sascha Salles
Valériane Venance
Loc Cosnier

View File

@ -276,7 +276,7 @@ msgstr ""
#: ../Doc/c-api/intro.rst:240
msgid "Reference Counts"
msgstr ""
msgstr "Compteurs de références"
#: ../Doc/c-api/intro.rst:242
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 ""
@ -75,3 +97,7 @@ msgid ""
"func:`PyMemoryView_FromMemory` or :c:func:`PyMemoryView_FromBuffer`. *mview* "
"**must** be a memoryview instance."
msgstr ""
"Renvoie soit un pointeur vers l'objet exporté sur lequel est basé la "
"*memoryview* ou ``NULL`` si la *memoryview* a été crée par :c:func:"
"`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. *mview* "
"**doit** être une instance de *memoryview*."

View File

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

@ -165,7 +165,7 @@ msgstr ""
#: ../Doc/c-api/tuple.rst:151 ../Doc/c-api/tuple.rst:174
msgid "Field"
msgstr ""
msgstr "Champ"
#: ../Doc/c-api/tuple.rst:151 ../Doc/c-api/tuple.rst:174
msgid "C Type"

5
dict
View File

@ -1,6 +1,7 @@
#python-fr
-1
-ième
-uplet
-uplets
017f
212a
@ -16,6 +17,8 @@ boguer
c++
c-
c/c++
C14N
C89
c99
chacha20
cadriciel
@ -26,6 +29,7 @@ composabilité
concourance
contravariante
contravariantes
configurateurs
contribués
coroutine
coroutines
@ -176,6 +180,7 @@ utf-16
utf-32
von
w3c
world
wxwidgets
x11
x86

View File

@ -396,7 +396,7 @@ msgstr "msi"
#: ../Doc/distutils/builtdist.rst:150 ../Doc/distutils/builtdist.rst:305
#: ../Doc/distutils/builtdist.rst:470
msgid "bdist_wininst is deprecated since Python 3.8."
msgstr ""
msgstr "`bdist_wininst` est obsolète depuis Python 3.8."
#: ../Doc/distutils/builtdist.rst:152
msgid ""

View File

@ -639,6 +639,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:368
msgid ""
@ -646,6 +650,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:372
msgid ""
@ -660,6 +668,17 @@ msgid ""
"The init function must return the module object to its caller, so that it "
"then gets inserted into ``sys.modules``."
msgstr ""
"Lorsque le programme Python importe le module :mod:`spam` pour la première "
"fois, :c:func:`PyInit_spam` est appelé. (Voir ci-dessous pour les "
"commentaires sur l'intégration en Python.) Il appelle :c:func:"
"`PyModule_Create`, qui renvoie un objet module, et insère des objets "
"fonction intégrés dans le module nouvellement créé en se basant sur la table "
"(un tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition "
"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module "
"qu'il crée. Il peut s'interrompre avec une erreur fatale pour certaines "
"erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être initialisé de "
"manière satisfaisante. La fonction `*init* doit renvoyer l'objet module à "
"son appelant, afin qu'il soit ensuite inséré dans ``sys.modules``."
#: ../Doc/extending/extending.rst:383
msgid ""
@ -668,6 +687,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:427
msgid ""
@ -677,6 +701,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:433
msgid ""
@ -684,6 +714,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:439
msgid ""
@ -692,10 +725,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:448
msgid "Compilation and Linkage"
msgstr ""
msgstr "Compilation et liaison"
#: ../Doc/extending/extending.rst:450
msgid ""
@ -734,7 +772,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:485
msgid "Calling Python Functions from C"
msgstr ""
msgstr "Appeler des fonctions Python en C"
#: ../Doc/extending/extending.rst:487
msgid ""
@ -773,6 +811,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:536
msgid ""
@ -781,6 +823,11 @@ msgid ""
"pointers (but note that *temp* will not be ``NULL`` in this context). More "
"info on them in section :ref:`refcounts`."
msgstr ""
"Les macros :c:func:`Py_XINCREF` et :c:func:`Py_XDECREF` incrémentent/"
"décrémentent le compteur des références d'un objet et sont sûres quant à la "
"présence de pointeurs ``NULL`` (mais notez que *temp* ne sera pas ``NULL`` "
"dans ce contexte). Plus d'informations à ce sujet dans la section :ref:"
"`refcounts`."
#: ../Doc/extending/extending.rst:543
msgid ""
@ -822,6 +869,15 @@ msgid ""
"handle the exception. If this is not possible or desirable, the exception "
"should be cleared by calling :c:func:`PyErr_Clear`. For example::"
msgstr ""
"Mais avant de le faire, il est important de vérifier que la valeur renvoyée "
"n'est pas ``NULL``. Si c'est le cas, la fonction Python s'est terminée par "
"la levée d'une exception. Si le code C qui a appelé :c:func:"
"`PyObject_CallObject` est appelé depuis Python, il devrait maintenant "
"renvoyer une indication d'erreur à son appelant Python, afin que "
"l'interpréteur puisse afficher la pile d'appels, ou que le code Python "
"appelant puisse gérer l'exception. Si cela n'est pas possible ou "
"souhaitable, l'exception doit être effacée en appelant :c:func:"
"`PyErr_Clear`. Par exemple ::"
#: ../Doc/extending/extending.rst:589
msgid ""
@ -834,6 +890,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:608
msgid ""
@ -849,14 +915,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:630
msgid "Extracting Parameters in Extension Functions"
msgstr ""
msgstr "Extraire des paramètres dans des fonctions d'extension"
#: ../Doc/extending/extending.rst:634
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:638
msgid ""
@ -886,16 +956,17 @@ msgstr ""
#: ../Doc/extending/extending.rst:652
msgid "Some example calls::"
msgstr ""
msgstr "Quelques exemples d'appels ::"
#: ../Doc/extending/extending.rst:722
msgid "Keyword Parameters for Extension Functions"
msgstr ""
msgstr "Paramètres nommés pour des fonctions d'extension"
#: ../Doc/extending/extending.rst:726
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:731
msgid ""
@ -908,6 +979,14 @@ msgid ""
"`PyArg_ParseTupleAndKeywords` returns true, otherwise it returns false and "
"raises an appropriate exception."
msgstr ""
"Les paramètres *arg* et *format* sont identiques à ceux de la fonction :c:"
"func:`PyArg_ParseTuple`. Le paramètre *kwdict* est le dictionnaire de mots-"
"clés reçu comme troisième paramètre du *runtime* Python. Le paramètre "
"*kwlist* est une liste de chaînes de caractères terminée par ``NULL`` qui "
"identifie les paramètres ; les noms sont mis en correspondance, de gauche à "
"droite, avec les informations de type de *format*. En cas de succès du "
"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon il "
"renvoie faux et lève une exception appropriée."
#: ../Doc/extending/extending.rst:741
msgid ""
@ -915,22 +994,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:747
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:802
msgid "Building Arbitrary Values"
msgstr ""
msgstr "Créer des valeurs arbitraires"
#: ../Doc/extending/extending.rst:804
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:809
msgid ""
@ -939,6 +1025,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:814
msgid ""
@ -956,10 +1047,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:848
msgid "Reference Counts"
msgstr ""
msgstr "Compteurs de références"
#: ../Doc/extending/extending.rst:850
msgid ""
@ -969,6 +1061,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:856
msgid ""
@ -1012,6 +1110,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:888
msgid ""
@ -1028,6 +1134,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:900
msgid ""
@ -1042,6 +1161,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:911
msgid ""
@ -1057,7 +1188,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:925
msgid "Reference Counting in Python"
msgstr ""
msgstr "Comptage de références en Python"
#: ../Doc/extending/extending.rst:927
msgid ""
@ -1069,6 +1200,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:934
msgid ""
@ -1082,6 +1220,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:943
msgid ""
@ -1102,6 +1250,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:957
msgid ""
@ -1114,7 +1270,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:967
msgid "Ownership Rules"
msgstr ""
msgstr "Règles concernant la propriété de références"
#: ../Doc/extending/extending.rst:969
msgid ""
@ -1122,6 +1278,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:973
msgid ""
@ -1181,7 +1341,7 @@ msgstr ""
#: ../Doc/extending/extending.rst:1014
msgid "Thin Ice"
msgstr ""
msgstr "Terrain dangereux"
#: ../Doc/extending/extending.rst:1016
msgid ""
@ -1190,6 +1350,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:1020
msgid ""
@ -1197,6 +1361,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:1032
msgid ""
@ -1204,6 +1371,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:1036
msgid ""
@ -1214,6 +1384,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:1043
msgid ""
@ -1225,6 +1402,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:1051
msgid ""
@ -1251,10 +1435,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:1092
msgid "NULL Pointers"
msgstr ""
msgstr "Pointeurs ``NULL``"
#: ../Doc/extending/extending.rst:1094
msgid ""
@ -1267,6 +1461,16 @@ msgid ""
"``NULL``, there would be a lot of redundant tests and the code would run "
"more slowly."
msgstr ""
"En général, les fonctions qui prennent des références d'objets comme "
"arguments ne sont pas conçues pour recevoir des pointeurs ``NULL``, et si "
"vous en donnez comme arguments, elles causeront une erreur de segmentation "
"(ou provoqueront des *core dump* ultérieurs). Les fonctions qui renvoient "
"des références d'objets renvoient généralement ``NULL`` uniquement pour "
"indiquer qu'une exception s'est produite. La raison pour laquelle les "
"arguments ``NULL`` ne sont pas testés est que les fonctions passent souvent "
"les objets qu'elles reçoivent à d'autres fonctions, si chaque fonction "
"devait tester pour ``NULL``, il y aurait beaucoup de tests redondants et le "
"code s'exécuterait plus lentement."
#: ../Doc/extending/extending.rst:1102
msgid ""
@ -1274,6 +1478,9 @@ msgid ""
"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from "
"a function that may raise an exception."
msgstr ""
"Il est préférable de tester la présence de ``NULL`` uniquement au début : "
"lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, de :c:func:"
"`malloc` ou d'une fonction qui peut lever une exception."
#: ../Doc/extending/extending.rst:1106
msgid ""
@ -1281,6 +1488,9 @@ msgid ""
"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:"
"func:`Py_XDECREF` do."
msgstr ""
"Les macros :c:func:`Py_INCREF` et :c:func:`Py_DECREF` ne vérifient pas les "
"pointeurs ``NULL``. Cependant, leurs variantes :c:func:`Py_XINCREF` et :c:"
"func:`Py_XDECREF` le font."
#: ../Doc/extending/extending.rst:1110
msgid ""
@ -1297,16 +1507,21 @@ msgid ""
"C functions (``args`` in the examples) is never ``NULL`` --- in fact it "
"guarantees that it is always a tuple [#]_."
msgstr ""
"Le mécanisme d'appel de fonctions C garantit que la liste d'arguments passée "
"aux fonctions C (``args`` dans les exemples) n'est jamais ``NULL``. En fait, "
"il garantit qu'il s'agit toujours d'un n-uplet [#]_."
#: ../Doc/extending/extending.rst:1120
msgid ""
"It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python "
"user."
msgstr ""
"C'est une grave erreur de laisser un pointeur ``NULL`` \"échapper\" à "
"l'utilisateur Python."
#: ../Doc/extending/extending.rst:1131
msgid "Writing Extensions in C++"
msgstr ""
msgstr "Écrire des extensions en C++"
#: ../Doc/extending/extending.rst:1133
msgid ""
@ -1320,10 +1535,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:1147
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:1152
msgid ""
@ -1335,6 +1561,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:1160
msgid ""
@ -1351,6 +1586,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:1172
msgid ""
@ -1361,6 +1610,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:1179
msgid ""
@ -1383,6 +1640,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:1193
msgid ""
@ -1418,6 +1682,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:1218
msgid ""
@ -1428,6 +1700,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:1225
msgid ""
@ -1437,15 +1716,15 @@ msgstr ""
#: ../Doc/extending/extending.rst:1234
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:1248
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:1252
msgid "two more lines must be added::"
msgstr ""
msgstr "on doit ajouter deux lignes supplémentaires ::"
#: ../Doc/extending/extending.rst:1257
msgid ""
@ -1454,18 +1733,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:1287
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:1290
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:1341
msgid ""
@ -1473,6 +1760,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:1359
msgid ""
@ -1480,6 +1770,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:1363
msgid ""
@ -1490,6 +1784,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:1371
msgid "Footnotes"
@ -1500,12 +1801,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:1375
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:1378
msgid ""
@ -1513,9 +1818,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:1382
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:7
msgid "Defining Extension Types: Assorted Topics"
msgstr ""
msgstr "Définir les types d'extension : divers sujets"
#: ../Doc/extending/newtypes.rst:11
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:49
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:54
msgid "Finalization and De-allocation"
msgstr ""
msgstr "Finalisation et de-allocation"
#: ../Doc/extending/newtypes.rst:66
msgid ""
@ -125,11 +130,11 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:136
msgid ":pep:`442` explains the new finalization scheme."
msgstr ""
msgstr ":pep:`442` explique le nouveau schéma de finalisation."
#: ../Doc/extending/newtypes.rst:143
msgid "Object Presentation"
msgstr ""
msgstr "Présentation de l'objet"
#: ../Doc/extending/newtypes.rst:145
msgid ""
@ -165,11 +170,11 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:176
msgid "Here is a simple example::"
msgstr ""
msgstr "Voici un exemple simple ::"
#: ../Doc/extending/newtypes.rst:188
msgid "Attribute Management"
msgstr ""
msgstr "Gestion des attributs"
#: ../Doc/extending/newtypes.rst:190
msgid ""
@ -203,7 +208,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:219
msgid "Generic Attribute Management"
msgstr ""
msgstr "Gestion des attributs génériques"
#: ../Doc/extending/newtypes.rst:221
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:227
msgid ""
@ -244,6 +251,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:241
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:247
msgid ""
@ -295,35 +303,35 @@ msgstr "Signification"
#: ../Doc/extending/newtypes.rst:288
msgid ":const:`READONLY`"
msgstr ""
msgstr ":const:`READONLY`"
#: ../Doc/extending/newtypes.rst:288
msgid "Never writable."
msgstr ""
msgstr "Jamais disponible en écriture."
#: ../Doc/extending/newtypes.rst:290
msgid ":const:`READ_RESTRICTED`"
msgstr ""
msgstr ":const:`READ_RESTRICTED`"
#: ../Doc/extending/newtypes.rst:290
msgid "Not readable in restricted mode."
msgstr ""
msgstr "Non disponible en lecture, dans le mode restreint."
#: ../Doc/extending/newtypes.rst:292
msgid ":const:`WRITE_RESTRICTED`"
msgstr ""
msgstr ":const:`WRITE_RESTRICTED`"
#: ../Doc/extending/newtypes.rst:292
msgid "Not writable in restricted mode."
msgstr ""
msgstr "Non disponible en écriture dans le mode restreint."
#: ../Doc/extending/newtypes.rst:294
msgid ":const:`RESTRICTED`"
msgstr ""
msgstr ":const:`RESTRICTED`"
#: ../Doc/extending/newtypes.rst:294
msgid "Not readable or writable in restricted mode."
msgstr ""
msgstr "Non disponible en lecture ou écriture, en mode restreint."
#: ../Doc/extending/newtypes.rst:303
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:309
msgid ""
@ -343,7 +358,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:323
msgid "Type-specific Attribute Management"
msgstr ""
msgstr "Gestion des attributs de type spécifiques"
#: ../Doc/extending/newtypes.rst:325
msgid ""
@ -379,7 +394,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:367
msgid "Object Comparison"
msgstr ""
msgstr "Comparaison des objets"
#: ../Doc/extending/newtypes.rst:373
msgid ""
@ -408,7 +423,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:416
msgid "Abstract Protocol Support"
msgstr ""
msgstr "Support pour le protocole abstrait"
#: ../Doc/extending/newtypes.rst:418
msgid ""
@ -466,7 +481,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:472
msgid "This function takes three arguments:"
msgstr ""
msgstr "Cette fonction prend trois arguments :"
#: ../Doc/extending/newtypes.rst:474
msgid ""
@ -491,7 +506,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:486
msgid "Here is a toy ``tp_call`` implementation::"
msgstr ""
msgstr "Ceci est une implémentation ``tp_call`` très simple ::"
#: ../Doc/extending/newtypes.rst:512
msgid ""
@ -510,6 +525,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:523
msgid ""
@ -517,6 +536,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:526
msgid ""
@ -543,7 +565,7 @@ msgstr ""
#: ../Doc/extending/newtypes.rst:547
msgid "Weak Reference Support"
msgstr ""
msgstr "Prise en charge de la référence faible"
#: ../Doc/extending/newtypes.rst:549
msgid ""
@ -551,16 +573,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:554
msgid "Documentation for the :mod:`weakref` module."
msgstr ""
msgstr "Documentation pour le module :mod:`weakref`."
#: ../Doc/extending/newtypes.rst:556
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:558
msgid ""
@ -569,6 +597,10 @@ msgid ""
"``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject."
"tp_alloc`)."
msgstr ""
"Inclure un champ :c:type:`PyObject\\*` dans la structure d'objet C dédiée au "
"mécanisme de référence faible. Le constructeur de l'objet doit le laisser à "
"la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise le champ par "
"défaut :c:member:`~PyTypeObject.tp_alloc`)."
#: ../Doc/extending/newtypes.rst:563
msgid ""
@ -576,16 +608,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:567
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:575
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:583
msgid ""
@ -593,10 +632,13 @@ msgid ""
"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-"
"``NULL``::"
msgstr ""
"Le seul ajout supplémentaire est que ``tp_dealloc`` doit effacer toute "
"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ "
"est non ``NULL`` ::"
#: ../Doc/extending/newtypes.rst:599
msgid "More Suggestions"
msgstr ""
msgstr "Plus de suggestions"
#: ../Doc/extending/newtypes.rst:601
msgid ""
@ -606,6 +648,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:607
msgid ""
@ -613,23 +661,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:618
msgid "Download CPython source releases."
msgstr ""
msgstr "Télécharger les versions sources de *CPython*."
#: ../Doc/extending/newtypes.rst:618
msgid "https://www.python.org/downloads/source/"
msgstr ""
msgstr "https://www.python.org/downloads/source/"
#: ../Doc/extending/newtypes.rst:620
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:621
msgid "https://github.com/python/cpython"
msgstr ""
msgstr "https://github.com/python/cpython"
#~ msgid "Footnotes"
#~ msgstr "Notes"

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 ""
@ -943,6 +951,8 @@ msgid ""
"Here, the name used in Python (in the signature and the ``keywords`` array) "
"would be ``file``, but the C variable would be named ``file_obj``."
msgstr ""
"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des "
"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``."
#: ../Doc/howto/clinic.rst:617
msgid "You can use this to rename the ``self`` parameter too!"
@ -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:1252
msgid "``c_default``"
msgstr ""
msgstr "``c_default``"
#: ../Doc/howto/clinic.rst:760
msgid ""
@ -1140,26 +1234,35 @@ 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 ""
"The annotation value for this parameter. Not currently supported, because :"
"pep:`8` mandates that the Python library may not use annotations."
msgstr ""
"La valeur annotée pour ce paramètre. Actuellement non géré, car la :pep:`8` "
"exige que les bibliothèques Python n'utilisent pas d'annotations."
#: ../Doc/howto/clinic.rst:771
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 +1271,18 @@ msgid ""
"purpose facility; as a rule it only supports specific lists of types as "
"shown in the legacy converter table.)"
msgstr ""
"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela "
"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas "
"destiné à une utilisation généralisée ; en fait, il gère seulement les types "
"listés dans la table des adaptateurs de base)."
#: ../Doc/howto/clinic.rst:780
msgid "To accept ``None``, add ``NoneType`` to this set."
msgstr ""
msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble."
#: ../Doc/howto/clinic.rst:785
msgid "``bitwise``"
msgstr ""
msgstr "``bitwise``"
#: ../Doc/howto/clinic.rst:783
msgid ""
@ -1183,10 +1290,13 @@ msgid ""
"Python argument will be written to the parameter without any range checking, "
"even for negative values."
msgstr ""
"Autorisé seulement pour les entiers non signés. La valeur native de cet "
"argument Python sera transcrite dans le paramètre sans aucune vérification "
"de plage, même pour des valeurs négatives."
#: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1266
msgid "``converter``"
msgstr ""
msgstr "``converter``"
#: ../Doc/howto/clinic.rst:788
msgid ""
@ -1194,6 +1304,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 +1317,21 @@ msgid ""
"Only supported for strings. Specifies the encoding to use when converting "
"this string from a Python str (Unicode) value into a C ``char *`` value."
msgstr ""
"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à "
"utiliser lors de la conversion de cette chaîne depuis une valeur de type "
"Python ``str`` (Unicode) en valeur C ``char *``."
#: ../Doc/howto/clinic.rst:799
msgid "``subclass_of``"
msgstr ""
msgstr "``subclass_of``"
#: ../Doc/howto/clinic.rst:798
msgid ""
"Only supported for the ``object`` converter. Requires that the Python value "
"be a subclass of a Python type, as expressed in C."
msgstr ""
"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur "
"Python soit une sous-classe d'un type Python, telle qu'exprimée en C."
#: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1238
msgid "``type``"
@ -1225,10 +1343,13 @@ msgid ""
"type that will be used to declare the variable. Default value is ``"
"\"PyObject *\"``."
msgstr ""
"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le "
"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est "
"``\"PyObject *\"``."
#: ../Doc/howto/clinic.rst:810
msgid "``zeroes``"
msgstr ""
msgstr "``zeroes``"
#: ../Doc/howto/clinic.rst:807
msgid ""
@ -1237,6 +1358,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 +1373,14 @@ msgid ""
"any existing format unit. So Argument Clinic doesn't support it. (Or, at "
"least, not yet.)"
msgstr ""
"Attention de bien noter que toutes les combinaisons d'arguments ne "
"fonctionnent pas. Normalement, ces arguments sont mis en place via des "
"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à "
"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans "
"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement "
"raisonnable de penser que ça puisse fonctionner, cette écriture ne "
"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, "
"pas pour le moment)."
#: ../Doc/howto/clinic.rst:820
msgid ""
@ -1255,6 +1388,9 @@ msgid ""
"Clinic converters. On the left is the legacy converter, on the right is the "
"text you'd replace it with."
msgstr ""
"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre "
"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les "
"adaptateurs de base et, à droite, le texte qui les remplace."
#: ../Doc/howto/clinic.rst:825
msgid "``'B'``"
@ -1262,7 +1398,7 @@ msgstr "``'B'``"
#: ../Doc/howto/clinic.rst:825
msgid "``unsigned_char(bitwise=True)``"
msgstr ""
msgstr "``unsigned_char(bitwise=True)``"
#: ../Doc/howto/clinic.rst:826
msgid "``'b'``"
@ -1270,7 +1406,7 @@ msgstr "``'b'``"
#: ../Doc/howto/clinic.rst:826
msgid "``unsigned_char``"
msgstr ""
msgstr "``unsigned_char``"
#: ../Doc/howto/clinic.rst:827
msgid "``'c'``"
@ -1278,15 +1414,15 @@ msgstr "``'c'``"
#: ../Doc/howto/clinic.rst:827
msgid "``char``"
msgstr ""
msgstr "``char``"
#: ../Doc/howto/clinic.rst:828
msgid "``'C'``"
msgstr ""
msgstr "``'C'``"
#: ../Doc/howto/clinic.rst:828
msgid "``int(accept={str})``"
msgstr ""
msgstr "``int(accept={str})``"
#: ../Doc/howto/clinic.rst:829
msgid "``'d'``"
@ -1294,7 +1430,7 @@ msgstr "``'d'``"
#: ../Doc/howto/clinic.rst:829
msgid "``double``"
msgstr ""
msgstr "``double``"
#: ../Doc/howto/clinic.rst:830
msgid "``'D'``"
@ -1302,41 +1438,43 @@ msgstr "``'D'``"
#: ../Doc/howto/clinic.rst:830
msgid "``Py_complex``"
msgstr ""
msgstr "``Py_complex``"
#: ../Doc/howto/clinic.rst:831
msgid "``'es'``"
msgstr ""
msgstr "``'es'``"
#: ../Doc/howto/clinic.rst:831
msgid "``str(encoding='name_of_encoding')``"
msgstr ""
msgstr "``str(encoding='name_of_encoding')``"
#: ../Doc/howto/clinic.rst:832
msgid "``'es#'``"
msgstr ""
msgstr "``'es#'``"
#: ../Doc/howto/clinic.rst:832
msgid "``str(encoding='name_of_encoding', zeroes=True)``"
msgstr ""
msgstr "``str(encoding='name_of_encoding', zeroes=True)``"
#: ../Doc/howto/clinic.rst:833
msgid "``'et'``"
msgstr ""
msgstr "``'et'``"
#: ../Doc/howto/clinic.rst:833
msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``"
msgstr ""
msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``"
#: ../Doc/howto/clinic.rst:834
msgid "``'et#'``"
msgstr ""
msgstr "``'et#'``"
#: ../Doc/howto/clinic.rst:834
msgid ""
"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, "
"zeroes=True)``"
msgstr ""
"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, "
"zeroes=True)``"
#: ../Doc/howto/clinic.rst:835
msgid "``'f'``"
@ -1344,7 +1482,7 @@ msgstr "``'f'``"
#: ../Doc/howto/clinic.rst:835
msgid "``float``"
msgstr ""
msgstr "``float``"
#: ../Doc/howto/clinic.rst:836
msgid "``'h'``"
@ -1352,7 +1490,7 @@ msgstr "``'h'``"
#: ../Doc/howto/clinic.rst:836
msgid "``short``"
msgstr ""
msgstr "``short``"
#: ../Doc/howto/clinic.rst:837
msgid "``'H'``"
@ -1360,7 +1498,7 @@ msgstr "``'H'``"
#: ../Doc/howto/clinic.rst:837
msgid "``unsigned_short(bitwise=True)``"
msgstr ""
msgstr "``unsigned_short(bitwise=True)``"
#: ../Doc/howto/clinic.rst:838
msgid "``'i'``"
@ -1376,23 +1514,23 @@ msgstr "``'I'``"
#: ../Doc/howto/clinic.rst:839
msgid "``unsigned_int(bitwise=True)``"
msgstr ""
msgstr "``unsigned_int(bitwise=True)``"
#: ../Doc/howto/clinic.rst:840
msgid "``'k'``"
msgstr ""
msgstr "``'k'``"
#: ../Doc/howto/clinic.rst:840
msgid "``unsigned_long(bitwise=True)``"
msgstr ""
msgstr "``unsigned_long(bitwise=True)``"
#: ../Doc/howto/clinic.rst:841
msgid "``'K'``"
msgstr ""
msgstr "``'K'``"
#: ../Doc/howto/clinic.rst:841
msgid "``unsigned_long_long(bitwise=True)``"
msgstr ""
msgstr "``unsigned_long_long(bitwise=True)``"
#: ../Doc/howto/clinic.rst:842
msgid "``'l'``"
@ -1408,7 +1546,7 @@ msgstr "``'L'``"
#: ../Doc/howto/clinic.rst:843
msgid "``long long``"
msgstr ""
msgstr "``long long``"
#: ../Doc/howto/clinic.rst:844
msgid "``'n'``"
@ -1416,39 +1554,39 @@ msgstr "``'n'``"
#: ../Doc/howto/clinic.rst:844
msgid "``Py_ssize_t``"
msgstr ""
msgstr "``Py_ssize_t``"
#: ../Doc/howto/clinic.rst:845
msgid "``'O'``"
msgstr ""
msgstr "``'O'``"
#: ../Doc/howto/clinic.rst:845
msgid "``object``"
msgstr ""
msgstr "``object``"
#: ../Doc/howto/clinic.rst:846
msgid "``'O!'``"
msgstr ""
msgstr "``'O!'``"
#: ../Doc/howto/clinic.rst:846
msgid "``object(subclass_of='&PySomething_Type')``"
msgstr ""
msgstr "``object(subclass_of='&PySomething_Type')``"
#: ../Doc/howto/clinic.rst:847
msgid "``'O&'``"
msgstr ""
msgstr "``'O&'``"
#: ../Doc/howto/clinic.rst:847
msgid "``object(converter='name_of_c_function')``"
msgstr ""
msgstr "``object(converter='name_of_c_function')``"
#: ../Doc/howto/clinic.rst:848
msgid "``'p'``"
msgstr ""
msgstr "``'p'``"
#: ../Doc/howto/clinic.rst:848
msgid "``bool``"
msgstr ""
msgstr "``bool``"
#: ../Doc/howto/clinic.rst:849
msgid "``'S'``"
@ -1456,7 +1594,7 @@ msgstr "``'S'``"
#: ../Doc/howto/clinic.rst:849
msgid "``PyBytesObject``"
msgstr ""
msgstr "``PyBytesObject``"
#: ../Doc/howto/clinic.rst:850
msgid "``'s'``"
@ -1464,23 +1602,23 @@ msgstr "``'s'``"
#: ../Doc/howto/clinic.rst:850
msgid "``str``"
msgstr ""
msgstr "``str``"
#: ../Doc/howto/clinic.rst:851
msgid "``'s#'``"
msgstr ""
msgstr "``'s#'``"
#: ../Doc/howto/clinic.rst:851
msgid "``str(zeroes=True)``"
msgstr ""
msgstr "``str(zeroes=True)``"
#: ../Doc/howto/clinic.rst:852
msgid "``'s*'``"
msgstr ""
msgstr "``'s*'``"
#: ../Doc/howto/clinic.rst:852
msgid "``Py_buffer(accept={buffer, str})``"
msgstr ""
msgstr "``Py_buffer(accept={buffer, str})``"
#: ../Doc/howto/clinic.rst:853
msgid "``'U'``"
@ -1488,7 +1626,7 @@ msgstr "``'U'``"
#: ../Doc/howto/clinic.rst:853
msgid "``unicode``"
msgstr ""
msgstr "``unicode``"
#: ../Doc/howto/clinic.rst:854
msgid "``'u'``"
@ -1496,101 +1634,103 @@ msgstr "``'u'``"
#: ../Doc/howto/clinic.rst:854
msgid "``Py_UNICODE``"
msgstr ""
msgstr "``Py_UNICODE``"
#: ../Doc/howto/clinic.rst:855
msgid "``'u#'``"
msgstr ""
msgstr "``'u#'``"
#: ../Doc/howto/clinic.rst:855
msgid "``Py_UNICODE(zeroes=True)``"
msgstr ""
msgstr "``Py_UNICODE(zeroes=True)``"
#: ../Doc/howto/clinic.rst:856
msgid "``'w*'``"
msgstr ""
msgstr "``'w*'``"
#: ../Doc/howto/clinic.rst:856
msgid "``Py_buffer(accept={rwbuffer})``"
msgstr ""
msgstr "``Py_buffer(accept={rwbuffer})``"
#: ../Doc/howto/clinic.rst:857
msgid "``'Y'``"
msgstr ""
msgstr "``'Y'``"
#: ../Doc/howto/clinic.rst:857
msgid "``PyByteArrayObject``"
msgstr ""
msgstr "``PyByteArrayObject``"
#: ../Doc/howto/clinic.rst:858
msgid "``'y'``"
msgstr ""
msgstr "``'y'``"
#: ../Doc/howto/clinic.rst:858
msgid "``str(accept={bytes})``"
msgstr ""
msgstr "``str(accept={bytes})``"
#: ../Doc/howto/clinic.rst:859
msgid "``'y#'``"
msgstr ""
msgstr "``'y#'``"
#: ../Doc/howto/clinic.rst:859
msgid "``str(accept={robuffer}, zeroes=True)``"
msgstr ""
msgstr "``str(accept={robuffer}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:860
msgid "``'y*'``"
msgstr ""
msgstr "``'y*'``"
#: ../Doc/howto/clinic.rst:860
msgid "``Py_buffer``"
msgstr ""
msgstr "``Py_buffer``"
#: ../Doc/howto/clinic.rst:861
msgid "``'Z'``"
msgstr ""
msgstr "``'Z'``"
#: ../Doc/howto/clinic.rst:861
msgid "``Py_UNICODE(accept={str, NoneType})``"
msgstr ""
msgstr "``Py_UNICODE(accept={str, NoneType})``"
#: ../Doc/howto/clinic.rst:862
msgid "``'Z#'``"
msgstr ""
msgstr "``'Z#'``"
#: ../Doc/howto/clinic.rst:862
msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``"
msgstr ""
msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:863
msgid "``'z'``"
msgstr ""
msgstr "``'z'``"
#: ../Doc/howto/clinic.rst:863
msgid "``str(accept={str, NoneType})``"
msgstr ""
msgstr "``str(accept={str, NoneType})``"
#: ../Doc/howto/clinic.rst:864
msgid "``'z#'``"
msgstr ""
msgstr "``'z#'``"
#: ../Doc/howto/clinic.rst:864
msgid "``str(accept={str, NoneType}, zeroes=True)``"
msgstr ""
msgstr "``str(accept={str, NoneType}, zeroes=True)``"
#: ../Doc/howto/clinic.rst:865
msgid "``'z*'``"
msgstr ""
msgstr "``'z*'``"
#: ../Doc/howto/clinic.rst:865
msgid "``Py_buffer(accept={buffer, str, NoneType})``"
msgstr ""
msgstr "``Py_buffer(accept={buffer, str, NoneType})``"
#: ../Doc/howto/clinic.rst:868
msgid ""
"As an example, here's our sample ``pickle.Pickler.dump`` using the proper "
"converter::"
msgstr ""
"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur "
"approprié ::"
#: ../Doc/howto/clinic.rst:881
msgid ""
@ -1600,6 +1740,11 @@ msgid ""
"default behavior performs range checking on the value, and they won't accept "
"negative numbers. You just can't do that with a legacy converter!"
msgstr ""
"Un avantage des adaptateurs réels est qu'ils sont plus flexibles que les "
"adaptateurs de base. Par exemple, l'adaptateur ``unsigned_int`` (ainsi que "
"tous les adaptateurs ``unsigned_``) peut être utilisé sans ``bitwise=True``. "
"Leur comportement par défaut contrôle la valeur, et n'acceptera pas de "
"nombres négatifs. On ne peut pas faire ça avec les adaptateurs de base !"
#: ../Doc/howto/clinic.rst:887
msgid ""
@ -1608,10 +1753,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:893
msgid "Py_buffer"
msgstr ""
msgstr "Py_buffer"
#: ../Doc/howto/clinic.rst:895
msgid ""
@ -1620,16 +1769,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:903
msgid "Advanced converters"
msgstr ""
msgstr "Adaptateurs avancés"
#: ../Doc/howto/clinic.rst:905
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:908
msgid ""
@ -1641,6 +1797,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:916
msgid ""
@ -1650,6 +1814,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:922
msgid ""
@ -1663,30 +1833,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:935
msgid "Parameter default values"
msgstr ""
msgstr "Valeurs par défaut des paramètres"
#: ../Doc/howto/clinic.rst:937
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:946
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:954
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:959
msgid "The ``NULL`` default value"
msgstr ""
msgstr "La valeur par défaut ``NULL``"
#: ../Doc/howto/clinic.rst:961
msgid ""
@ -1697,10 +1883,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:969
msgid "Expressions specified as default values"
msgstr ""
msgstr "Expressions spécifiées comme valeurs par défaut"
#: ../Doc/howto/clinic.rst:971
msgid ""
@ -1709,6 +1901,10 @@ 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:976
#, fuzzy
@ -1764,11 +1960,11 @@ msgstr ""
#: ../Doc/howto/clinic.rst:1018
msgid "Function calls."
msgstr ""
msgstr "des appels de fonction."
#: ../Doc/howto/clinic.rst:1019
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:1020
msgid "Automatic sequence unpacking (``*[1, 2, 3]``)."

View File

@ -23,6 +23,8 @@ msgid ""
"We recommend the following resources for porting extension modules to Python "
"3:"
msgstr ""
"Nous recommandons les ressources suivantes pour migrer les modules "
"d'extensions vers Python 3 :"
#: ../Doc/howto/cporting.rst:11
msgid ""
@ -30,12 +32,17 @@ msgid ""
"guide*, a book on moving from Python 2 to Python 3 in general, guides the "
"reader through porting an extension module."
msgstr ""
"Le chapitre `Migrating C extension`_ du livre *Supporting Python 3: An in-"
"depth guide* (un livre sur le portage de Python 2 à Python 3) guide le "
"lecteur souhaitant porter un module d'extension."
#: ../Doc/howto/cporting.rst:15
msgid ""
"The `Porting guide`_ from the *py3c* project provides opinionated "
"suggestions with supporting code."
msgstr ""
"Le `Porting guide`_ du projet *py3c* fournit des suggestions argumentées "
"avec le code correspondant."
#: ../Doc/howto/cporting.rst:17
msgid ""
@ -44,6 +51,10 @@ msgid ""
"library then handles differences between various Python versions and "
"implementations."
msgstr ""
"Les bibliothèques `Cython`_ et `CFFI`_ fournissent des abstractions de l'API "
"C de Python. Les extensions ont généralement besoin d'être réécrites pour "
"profiter de ces bibliothèques, mais elles prennent en charge les différences "
"entre versions et implémentations de Python."
#~ msgid "author"
#~ msgstr "auteur"

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*."

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

@ -115,7 +115,7 @@ msgstr ""
#: ../Doc/install/index.rst:55
msgid "Distutils based source distributions"
msgstr ""
msgstr "Distributions basées sur *distutils*"
#: ../Doc/install/index.rst:57
msgid ""
@ -967,10 +967,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:477
msgid ":file:`{prefix}\\\\Scripts`"
msgstr ""
msgstr ":file:`{prefix}\\\\Scripts`"
#: ../Doc/install/index.rst:479
msgid ":file:`{prefix}\\\\Include\\\\{distname}`"
@ -1001,38 +1005,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:499
msgid "Override option"
msgstr ""
msgstr "Option"
#: ../Doc/install/index.rst:501
msgid "``--install-purelib``"
msgstr ""
msgstr "``--install-purelib``"
#: ../Doc/install/index.rst:502
msgid "``--install-platlib``"
msgstr ""
msgstr "``--install-platlib``"
#: ../Doc/install/index.rst:503
msgid "all modules"
msgstr ""
msgstr "tous les modules"
#: ../Doc/install/index.rst:503
msgid "``--install-lib``"
msgstr ""
msgstr "``--install-lib``"
#: ../Doc/install/index.rst:504
msgid "``--install-scripts``"
msgstr ""
msgstr "``--install-scripts``"
#: ../Doc/install/index.rst:505
msgid "``--install-data``"
msgstr ""
msgstr "``--install-data``"
#: ../Doc/install/index.rst:506
msgid "``--install-headers``"
msgstr ""
msgstr "``--install-headers``"
#: ../Doc/install/index.rst:509
msgid ""

File diff suppressed because it is too large Load Diff

View File

@ -424,7 +424,7 @@ msgstr ""
#: ../Doc/library/asyncio-eventloop.rst:324
msgid "Added the ``name`` parameter."
msgstr ""
msgstr "ajout du paramètre ``name``."
#: ../Doc/library/asyncio-eventloop.rst:329
msgid "Set a task factory that will be used by :meth:`loop.create_task`."

View File

@ -63,7 +63,7 @@ msgstr ""
#: ../Doc/library/asyncio-queue.rst:42
msgid "The *loop* parameter."
msgstr ""
msgstr "Le paramètre *loop*."
#: ../Doc/library/asyncio-queue.rst:43
msgid "This class is :ref:`not thread safe <asyncio-multithreading>`."

View File

@ -93,7 +93,7 @@ msgstr ""
#: ../Doc/library/asyncio-sync.rst:190 ../Doc/library/asyncio-sync.rst:290
#: ../Doc/library/asyncio-sync.rst:345
msgid "The *loop* parameter."
msgstr ""
msgstr "Le paramètre *loop*."
#: ../Doc/library/asyncio-sync.rst:71
msgid "Acquire the lock."

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-15 18:54+0100\n"
"PO-Revision-Date: 2020-04-27 22:47+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-09-22 17:11+0200\n"
"Last-Translator: Philippe GALVAN <git.philippe.galvan@outlook.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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.4.1\n"
#: ../Doc/library/asyncio-task.rst:6
msgid "Coroutines and Tasks"
@ -32,17 +32,16 @@ msgid "Coroutines"
msgstr "Coroutines"
#: ../Doc/library/asyncio-task.rst:21
#, fuzzy
msgid ""
":term:`Coroutines <coroutine>` declared with the async/await syntax is the "
"preferred way of writing asyncio applications. For example, the following "
"snippet of code (requires Python 3.7+) prints \"hello\", waits 1 second, and "
"then prints \"world\"::"
msgstr ""
"Il est recommandé d'utiliser la syntaxe *async* / *await* pour développer "
"des programmes *asyncio*. Par exemple, le morceau de code suivant "
"(nécessitant Python 3.7 ou supérieur) affiche *hello*, attend une seconde et "
"affiche ensuite *world* ::"
"Les :term:`coroutines <coroutine>` déclarées avec la syntaxe *async/await* "
"sont la manière privilégiée décrire des applications *asyncio*. Par "
"exemple, lextrait de code suivant (requiert Python 3.7+) affiche « hello », "
"attend 1 seconde et affiche ensuite « world » ::"
#: ../Doc/library/asyncio-task.rst:37
msgid ""
@ -60,7 +59,7 @@ msgid ""
"The :func:`asyncio.run` function to run the top-level entry point \"main()\" "
"function (see the above example.)"
msgstr ""
"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le "
"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le "
"point d'entrée de haut-niveau (voir l'exemple ci-dessus)."
#: ../Doc/library/asyncio-task.rst:48
@ -70,8 +69,8 @@ msgid ""
"*another* 2 seconds::"
msgstr ""
"Attendre une coroutine. Le morceau de code suivant attend une seconde, "
"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin "
"*world* ::"
"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin "
"« world » ::"
#: ../Doc/library/asyncio-task.rst:69
msgid "Expected output::"
@ -103,7 +102,7 @@ msgstr ""
#: ../Doc/library/asyncio-task.rst:110
msgid "Awaitables"
msgstr "Awaitables"
msgstr "*Attendables*"
#: ../Doc/library/asyncio-task.rst:112
msgid ""
@ -111,16 +110,16 @@ msgid ""
"keyword:`await` expression. Many asyncio APIs are designed to accept "
"awaitables."
msgstr ""
"Un objet est dit *awaitable* (qui peut être attendu) s'il peut être utilisé "
"dans une expression :keyword:`await`. Beaucoup d'API d'*asyncio* sont "
"conçues pour accepter des *awaitables*."
"Un objet est dit *attendable* (*awaitable* en anglais, c.-à-d. qui peut être "
"attendu) s'il peut être utilisé dans une expression :keyword:`await`. "
"Beaucoup d'API d'*asyncio* sont conçues pour accepter des *attendables*."
#: ../Doc/library/asyncio-task.rst:116
msgid ""
"There are three main types of *awaitable* objects: **coroutines**, "
"**Tasks**, and **Futures**."
msgstr ""
"Il existe trois types principaux d'*awaitables* : les **coroutines**, les "
"Il existe trois types principaux d'*attendables* : les **coroutines**, les "
"**tâches** et les **futurs**."
#: ../Doc/library/asyncio-task.rst:122
@ -136,12 +135,12 @@ msgid ""
"In this documentation the term \"coroutine\" can be used for two closely "
"related concepts:"
msgstr ""
"Dans cette documentation, le terme « coroutine » est utilisé pour désigner "
"Dans cette documentation, le terme « coroutine » est utilisé pour désigner "
"deux concepts voisins :"
#: ../Doc/library/asyncio-task.rst:146
msgid "a *coroutine function*: an :keyword:`async def` function;"
msgstr "une *fonction coroutine* : une fonction :keyword:`async def`;"
msgstr "une *fonction coroutine* : une fonction :keyword:`async def` ;"
#: ../Doc/library/asyncio-task.rst:148
msgid ""
@ -233,7 +232,7 @@ msgstr "Exécution d'un programme *asyncio*"
#: ../Doc/library/asyncio-task.rst:215
msgid "Execute the :term:`coroutine` *coro* and return the result."
msgstr ""
msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat."
#: ../Doc/library/asyncio-task.rst:217
msgid ""
@ -249,7 +248,7 @@ msgid ""
"the same thread."
msgstr ""
"Cette fonction ne peut pas être appelée si une autre boucle d'événement "
"s'exécute dans le même fil d'exécution."
"*asyncio* s'exécute dans le même fil d'exécution."
#: ../Doc/library/asyncio-task.rst:224
msgid "If *debug* is ``True``, the event loop will be run in debug mode."
@ -277,6 +276,8 @@ msgid ""
"The source code for ``asyncio.run()`` can be found in :source:`Lib/asyncio/"
"runners.py`."
msgstr ""
"Le code source pour ``asyncio.run()`` est disponible dans :source:`Lib/"
"asyncio/runners.py`."
#: ../Doc/library/asyncio-task.rst:246
msgid "Creating Tasks"
@ -288,13 +289,15 @@ msgid ""
"schedule its execution. Return the Task object."
msgstr ""
"Encapsule la :ref:`coroutine <coroutine>` *coro* dans une tâche et la "
"planifie pour exécution. Renvoie l'objet :class:`Task`."
"planifie pour exécution. Renvoie l'objet :class:`Task`."
#: ../Doc/library/asyncio-task.rst:253
msgid ""
"If *name* is not ``None``, it is set as the name of the task using :meth:"
"`Task.set_name`."
msgstr ""
"Si *name* nest pas ``None``, il est défini comme le nom de la tâche en "
"utilisant :meth:`Task.set_name`."
#: ../Doc/library/asyncio-task.rst:256
msgid ""
@ -316,7 +319,7 @@ msgstr ""
#: ../Doc/library/asyncio-task.rst:277 ../Doc/library/asyncio-task.rst:716
msgid "Added the ``name`` parameter."
msgstr ""
msgstr "ajout du paramètre ``name``."
#: ../Doc/library/asyncio-task.rst:282
msgid "Sleeping"
@ -346,7 +349,7 @@ msgstr ""
#: ../Doc/library/asyncio-task.rst:545 ../Doc/library/asyncio-task.rst:592
#: ../Doc/library/asyncio-task.rst:721
msgid "The *loop* parameter."
msgstr ""
msgstr "Le paramètre *loop*."
#: ../Doc/library/asyncio-task.rst:299
msgid ""
@ -372,8 +375,8 @@ msgid ""
"If any awaitable in *aws* is a coroutine, it is automatically scheduled as a "
"Task."
msgstr ""
"Si un *awaitable* de *aws* est une coroutine, celui-ci est automatiquement "
"planifié comme une tâche."
"Si un *attendable* de *aws* est une coroutine, celui-ci est automatiquement "
"planifié comme une tâche *Task*."
#: ../Doc/library/asyncio-task.rst:328
msgid ""
@ -394,7 +397,7 @@ msgid ""
msgstr ""
"Si *return_exceptions* vaut ``False`` (valeur par défaut), la première "
"exception levée est immédiatement propagée vers la tâche en attente dans le "
"``gather()``. Les autres *awaitables* dans la séquence *aws* **ne sont pas "
"``gather()``. Les autres *attendables* dans la séquence *aws* **ne sont pas "
"annulés** et poursuivent leur exécution."
#: ../Doc/library/asyncio-task.rst:337
@ -423,7 +426,7 @@ msgid ""
msgstr ""
"Si n'importe quel *Task* ou *Future* de la séquence *aws* est *annulé*, il "
"est traité comme s'il avait levé :exc:`CancelledError` — l'appel à "
"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que "
"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que "
"l'annulation d'une tâche ou d'un futur entraîne l'annulation des autres "
"tâches ou futurs."
@ -469,11 +472,10 @@ msgid ""
"still cancelled, so the \"await\" expression still raises a :exc:"
"`CancelledError`."
msgstr ""
"*à la différence près* que si la coroutine qui la contient est annulée, la "
"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue "
"de ``something()``, il n'y a pas eu d'annulation. Cependant, son appelant "
"est bien annulé, donc l'expression *await* lève bien une :exc:"
"`CancelledError`."
"*à la différence près* que, si la coroutine qui la contient est annulée, la "
"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue de "
"``something()``, il n'y a pas eu d'annulation. Cependant, son appelant est "
"bien annulé, donc l'expression *await* lève bien une :exc:`CancelledError`."
#: ../Doc/library/asyncio-task.rst:417
msgid ""
@ -566,7 +568,7 @@ msgstr ""
#: ../Doc/library/asyncio-task.rst:499
msgid "Returns two sets of Tasks/Futures: ``(done, pending)``."
msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``."
msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``."
#: ../Doc/library/asyncio-task.rst:501
msgid "Usage::"
@ -596,7 +598,7 @@ msgid ""
"the following constants:"
msgstr ""
"*return_when* indique quand la fonction doit se terminer. Il peut prendre "
"les valeurs suivantes :"
"les valeurs suivantes :"
#: ../Doc/library/asyncio-task.rst:518
msgid "Constant"
@ -665,7 +667,7 @@ msgid ""
msgstr ""
"``wait()`` planifie automatiquement les coroutines comme des tâches et "
"renvoie les objets *Task* ainsi créés dans les ensembles ``(done, "
"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::"
"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::"
#: ../Doc/library/asyncio-task.rst:563
msgid "Here is how the above snippet can be fixed::"
@ -744,8 +746,8 @@ msgid ""
"Unlike other asyncio functions this function requires the *loop* argument to "
"be passed explicitly."
msgstr ""
"À la différence des autres fonction d'*asyncio*, cette fonction requiert que "
"*loop* soit passé de manière explicite."
"À la différence des autres fonctions d'*asyncio*, cette fonction requiert "
"que *loop* soit passé de manière explicite."
#: ../Doc/library/asyncio-task.rst:646
msgid "Introspection"
@ -791,7 +793,7 @@ msgid ""
"<coroutine>`. Not thread-safe."
msgstr ""
"Objet compatible avec :class:`Future <Future>` qui exécute une :ref:"
"`coroutine <coroutine>` Python. Cet objet n'est pas utilisable dans des "
"`coroutine <coroutine>` Python. Cet objet n'est pas utilisable dans des "
"programmes à fils d'exécution multiples."
#: ../Doc/library/asyncio-task.rst:679
@ -894,10 +896,10 @@ msgid ""
"be cancelled, although suppressing cancellation completely is not common and "
"is actively discouraged."
msgstr ""
"La coroutine peut alors se nettoyer ou même ignorer la requête en supprimant "
"l'exception à l'aide d'un bloc :keyword:`try` ... ... ``except "
"CancelledError`` ... :keyword:`finally`. Par conséquent, contrairement à :"
"meth:`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera "
"La coroutine peut alors faire le ménage ou même ignorer la requête en "
"supprimant l'exception à l'aide d'un bloc :keyword:`try` … … ``except "
"CancelledError`` :keyword:`finally`. Par conséquent, contrairement à :meth:"
"`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera "
"annulée, bien qu'ignorer totalement une annulation ne soit ni une pratique "
"courante, ni encouragé."
@ -953,7 +955,7 @@ msgid ""
"If the Task has been *cancelled*, this method raises a :exc:`CancelledError` "
"exception."
msgstr ""
"Si la tâche a été *annulée*, cette méthode lève une exception :exc:"
"Si la tâche a été *annulée*, cette méthode lève une exception :exc:"
"`CancelledError`."
#: ../Doc/library/asyncio-task.rst:802
@ -1049,8 +1051,8 @@ msgid ""
"are returned. (This matches the behavior of the traceback module.)"
msgstr ""
"L'argument facultatif *limit* définit le nombre maximal d'appels à "
"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon "
"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont "
"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon "
"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont "
"renvoyés, si la pile est une pile d'erreurs, ce sont les appels les plus "
"anciens qui le sont (dans un souci de cohérence avec le module *traceback*)."
@ -1064,7 +1066,7 @@ msgid ""
"retrieved by :meth:`get_stack`."
msgstr ""
"Le format de sortie des appels produits par :meth:`get_stack` est similaire "
"à celui du module *traceback*. "
"à celui du module *traceback*."
#: ../Doc/library/asyncio-task.rst:865
msgid "The *limit* argument is passed to :meth:`get_stack` directly."
@ -1076,39 +1078,43 @@ msgid ""
"default output is written to :data:`sys.stderr`."
msgstr ""
"Le paramètre *file* est un flux d'entrées-sorties sur lequel le résultat est "
"écrit ; par défaut, :data:`sys.stderr`."
"écrit ; par défaut, :data:`sys.stderr`."
#: ../Doc/library/asyncio-task.rst:872
#, fuzzy
msgid "Return the coroutine object wrapped by the :class:`Task`."
msgstr "Renvoie l'exception de la tâche."
msgstr "Renvoie lobjet *coroutine* encapsulé par la :class:`Task`."
#: ../Doc/library/asyncio-task.rst:878
#, fuzzy
msgid "Return the name of the Task."
msgstr "Renvoie le résultat de la tâche."
msgstr "Renvoie le nom de la tâche."
#: ../Doc/library/asyncio-task.rst:880
msgid ""
"If no name has been explicitly assigned to the Task, the default asyncio "
"Task implementation generates a default name during instantiation."
msgstr ""
"Si aucun nom na été explicitement assigné à la tâche, limplémentation par "
"défaut dune *Task* *asyncio* génère un nom par défaut durant "
"linstanciation."
#: ../Doc/library/asyncio-task.rst:888
#, fuzzy
msgid "Set the name of the Task."
msgstr "Renvoie le résultat de la tâche."
msgstr "Définit le nom de la tâche."
#: ../Doc/library/asyncio-task.rst:890
msgid ""
"The *value* argument can be any object, which is then converted to a string."
msgstr ""
"Largument *value* peut être nimporte quel objet qui sera ensuite converti "
"en chaine de caractères."
#: ../Doc/library/asyncio-task.rst:893
msgid ""
"In the default Task implementation, the name will be visible in the :func:"
"`repr` output of a task object."
msgstr ""
"Dans limplémentation par défaut de *Task*, le nom sera visible dans le "
"résultat de :func:`repr` dun objet *Task*."
#: ../Doc/library/asyncio-task.rst:900
msgid "Return a set of all tasks for an event loop."
@ -1125,13 +1131,12 @@ msgstr ""
"appelée pour récupérer la boucle d'exécution actuelle."
#: ../Doc/library/asyncio-task.rst:908
#, fuzzy
msgid ""
"Do not call this as a task method. Use the :func:`asyncio.all_tasks` "
"function instead."
msgstr ""
"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la "
"fonction :func:`asyncio.all_tasks` à la place."
"Ne pas lappeler en tant que méthode *task*. Utiliser la fonction :func:"
"`asyncio.all_tasks` à la place."
#: ../Doc/library/asyncio-task.rst:913
msgid "Return the currently running task or ``None``."
@ -1146,13 +1151,12 @@ msgstr ""
"pour récupérer la boucle d'exécution actuelle."
#: ../Doc/library/asyncio-task.rst:920
#, fuzzy
msgid ""
"Do not call this as a task method. Use the :func:`asyncio.current_task` "
"function instead."
msgstr ""
"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la "
"fonction :func:`asyncio.current_task` à la place."
"Ne pas lappeler en tant que méthode *task*. Utiliser la fonction :func:"
"`asyncio.current_task` à la place."
#: ../Doc/library/asyncio-task.rst:927
msgid "Generator-based Coroutines"
@ -1173,7 +1177,7 @@ msgid ""
"coroutines."
msgstr ""
"Les coroutines basées sur des générateurs sont antérieures à la syntaxe "
"*async* / *await*. Il existe des générateurs Python qui utilisent les "
"*async* / *await*. Il existe des générateurs *Python* qui utilisent les "
"expressions ``yield from`` pour attendre des *futurs* et autres coroutines."
#: ../Doc/library/asyncio-task.rst:938
@ -1203,9 +1207,11 @@ msgstr ""
"Ce décorateur ne doit pas être utilisé avec des coroutines :keyword:`async "
"def`."
# pas de majuscule car suit un deux-points
# pas de majuscule car suit un deux-points
#: ../Doc/library/asyncio-task.rst:962
msgid "Use :keyword:`async def` instead."
msgstr ""
msgstr "utilisez :keyword:`async def` à la place."
#: ../Doc/library/asyncio-task.rst:966
msgid "Return ``True`` if *obj* is a :ref:`coroutine object <coroutine>`."

View File

@ -422,6 +422,11 @@ msgid ""
"encountered in the left operand and then by the order encountered in the "
"right operand."
msgstr ""
"Puisqu'elle est une sous-classe de :class:`dict`, :class:`Counter` conserve "
"aussi l'ordre d'insertion. Les opérations mathématiques sur les objets "
"*Counter* préservent aussi l'ordre des insertions. Les résultats sont "
"ordonnés d'abord en fonction de la recherche d'apparition pour l'opérande de "
"gauche, puis dans l'ordre d'apparition de l'opérande de droite."
#: ../Doc/library/collections.rst:277
msgid ""
@ -1279,6 +1284,11 @@ msgid ""
"features of :class:`OrderedDict` are required, the suggested remediation is "
"to cast the result to the desired type: ``OrderedDict(nt._asdict())``."
msgstr ""
"renvoie un :class:`dict` natif plutôt qu'un :class:`OrderedDict`. À partir "
"de Python 3.7, les dictionnaires natifs garantissent la préservation de "
"l'ordre. Si les autres fonctionnalités d':class:`OrderedDict` sont "
"nécessaires, la solution préconisée est de convertir le résultat vers le "
"type souhaité : ``OrderedDict(nt._asdict())``."
#: ../Doc/library/collections.rst:931
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,6 +197,10 @@ 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:115
msgid ""
@ -150,10 +209,15 @@ msgid ""
"if :func:`compile` is run with the same :attr:`sys.pycache_prefix` (if any) "
"that will be used at runtime."
msgstr ""
"De même, la fonction :func:`compile` utilise le réglage :attr:`sys."
"pycache_prefix`. Le code intermédiaire généré ne pourra servir que dans la "
"mesure où :func:`compile` est exécutée avec la même valeur de :attr:`sys."
"pycache_prefix` (si tant est qu'elle soit définie) que celle en vigueur au "
"moment d'exécuter le programme."
#: ../Doc/library/compileall.rst:121
msgid "Public functions"
msgstr ""
msgstr "Fonctions publiques"
#: ../Doc/library/compileall.rst:125
msgid ""
@ -161,6 +225,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:129
msgid ""
@ -176,12 +243,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:138
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:141
msgid ""
@ -196,6 +270,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:149 ../Doc/library/compileall.rst:213
msgid ""
@ -205,6 +283,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:155 ../Doc/library/compileall.rst:219
msgid ""
@ -221,6 +305,12 @@ msgid ""
"cores in the system is used. If *workers* is lower than ``0``, a :exc:"
"`ValueError` will be raised."
msgstr ""
"*workers* est le nombre de tâches lancées en parallèle pour la compilation. "
"Par défaut, les fichiers sont compilés séquentiellement. Cette même "
"stratégie s'applique dans tous les cas lorsque le parallélisme n'est pas "
"possible sur la plateforme d'exécution. Si *workers* vaut 0, autant de "
"tâches sont lancées que le système comporte de cœurs. Si *workers* est "
"strictement négatif, une exception de type :exc:`ValueError` est levée."
#: ../Doc/library/compileall.rst:165 ../Doc/library/compileall.rst:222
msgid ""
@ -228,19 +318,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:169 ../Doc/library/compileall.rst:251
msgid "Added the *legacy* and *optimize* parameter."
msgstr ""
msgstr "ajout des paramètres *legacy* et *optimize*."
#: ../Doc/library/compileall.rst:172
msgid "Added the *workers* parameter."
msgstr ""
msgstr "ajout du paramètre *workers*."
#: ../Doc/library/compileall.rst:175 ../Doc/library/compileall.rst:228
#: ../Doc/library/compileall.rst:254
msgid "*quiet* parameter was changed to a multilevel value."
msgstr ""
msgstr "le paramètre *quiet* peut prendre plusieurs niveaux."
#: ../Doc/library/compileall.rst:178 ../Doc/library/compileall.rst:231
#: ../Doc/library/compileall.rst:257
@ -248,6 +341,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:182
msgid "Accepts a :term:`path-like object`."
@ -256,22 +351,27 @@ msgstr "Accepte un :term:`path-like object`."
#: ../Doc/library/compileall.rst:185 ../Doc/library/compileall.rst:235
#: ../Doc/library/compileall.rst:261
msgid "The *invalidation_mode* parameter was added."
msgstr ""
msgstr "ajout du paramètre *invalidation_mode*."
#: ../Doc/library/compileall.rst:188 ../Doc/library/compileall.rst:238
#: ../Doc/library/compileall.rst:264
msgid "The *invalidation_mode* parameter's default value is updated to None."
msgstr ""
"La valeur par défaut du paramètre *invalidation_mode* est changée à ``None``."
#: ../Doc/library/compileall.rst:191
msgid "Setting *workers* to 0 now chooses the optimal number of cores."
msgstr ""
"Un nombre de processus adapté à la machine est choisi lorsque *workers* vaut "
"0."
#: ../Doc/library/compileall.rst:196
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:199
msgid ""
@ -281,6 +381,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:205
msgid ""
@ -295,6 +400,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:246
msgid ""
@ -303,17 +411,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:267
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:284
msgid "Module :mod:`py_compile`"
msgstr ""
msgstr "Module :mod:`py_compile`"
#: ../Doc/library/compileall.rst:285
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,6 +256,10 @@ msgid ""
"(``#`` and ``;`` by default [1]_). Comments may appear on their own on an "
"otherwise empty line, possibly indented. [1]_"
msgstr ""
"Les fichiers de configuration peuvent contenir des commentaires, préfixés "
"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les "
"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent "
"aussi être indentés. [1]_"
#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307
msgid "For example:"
@ -187,7 +267,7 @@ 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:319
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:326
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:334
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:341
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:354
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:376
msgid "Mapping Protocol Access"
msgstr ""
msgstr "Protocole d'accès associatif"
#: ../Doc/library/configparser.rst:380
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:385
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:391
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:396
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:404
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:411
msgid "``DEFAULTSECT`` cannot be removed from the parser:"
msgstr ""
msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::"
#: ../Doc/library/configparser.rst:413
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:415
msgid "``parser.clear()`` leaves it intact,"
msgstr ""
msgstr "appeler ``parser.clear()`` la laisse intacte ;"
#: ../Doc/library/configparser.rst:417
msgid "``parser.popitem()`` never returns it."
msgstr ""
msgstr "appeler ```parser.popitem()`` ne la renvoie jamais."
#: ../Doc/library/configparser.rst:419
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:423
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:430
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:436
msgid "Customizing Parser Behaviour"
msgstr ""
msgstr "Personnalisation du comportement de l'analyseur"
#: ../Doc/library/configparser.rst:438
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:444
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:447
msgid "*defaults*, default value: ``None``"
msgstr ""
msgstr "*defaults*, valeur par défaut : ``None``"
#: ../Doc/library/configparser.rst:449
msgid ""
@ -359,16 +519,24 @@ 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:454
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:457
msgid "*dict_type*, default value: :class:`dict`"
msgstr ""
msgstr "*dict_type*, valeur par défaut : :class:`dict`"
#: ../Doc/library/configparser.rst:459
msgid ""
@ -377,12 +545,19 @@ msgid ""
"every section is stored in the order they were added to the parser. Same "
"goes for options within sections."
msgstr ""
"Cette option influe de manière importante sur la façon dont le protocole "
"d'accès associatif se comporte et ce à quoi ressemblent les fichiers de "
"configuration une fois écrits. Avec un dictionnaire standard, les sections "
"sont stockées dans l'ordre où elles ont été ajoutées à l'analyseur. Ceci est "
"également vrai pour les options à l'intérieur des sections."
#: ../Doc/library/configparser.rst:464
msgid ""
"An alternative dictionary type can be used for example to sort sections and "
"options on write-back."
msgstr ""
"Si vous souhaitez classer les sections et les options lors de l'écriture par "
"exemple, vous pouvez utiliser un type de dictionnaire différent."
#: ../Doc/library/configparser.rst:467
msgid ""
@ -390,10 +565,13 @@ msgid ""
"operation. When you use a regular dictionary in those operations, the order "
"of the keys will be ordered. For example:"
msgstr ""
"À noter : il est possible d'ajouter un ensemble de paires clés—valeurs en "
"une seule opération. L'ordre des clés est préservé si vous utilisez un "
"dictionnaire standard pour cela. Par exemple :"
#: ../Doc/library/configparser.rst:489
msgid "*allow_no_value*, default value: ``False``"
msgstr ""
msgstr "*allow_no_value*, valeur par défaut : ``False``"
#: ../Doc/library/configparser.rst:491
msgid ""
@ -402,10 +580,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:526
msgid "*delimiters*, default value: ``('=', ':')``"
msgstr ""
msgstr "*delimiters*, valeur par défaut : ``('=', ':')``"
#: ../Doc/library/configparser.rst:528
msgid ""
@ -413,20 +596,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:532
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:535
msgid "*comment_prefixes*, default value: ``('#', ';')``"
msgstr ""
"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', "
"';')``"
#: ../Doc/library/configparser.rst:537
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:539
msgid ""
@ -437,12 +630,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:546
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:550
msgid ""
@ -453,10 +657,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:596
msgid "*strict*, default value: ``True``"
msgstr ""
msgstr "*scrict*, valeur par défaut : ``True``"
#: ../Doc/library/configparser.rst:598
msgid ""
@ -465,16 +676,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:603
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:607
msgid "*empty_lines_in_values*, default value: ``True``"
msgstr ""
msgstr "*empty_lines_in_values*, valeur par défaut : ``True``"
#: ../Doc/library/configparser.rst:609
msgid ""
@ -485,6 +703,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:624
msgid ""
@ -494,12 +719,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:630
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:633
msgid ""
@ -570,6 +803,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:695
msgid ""

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

@ -1836,18 +1836,25 @@ msgid ""
"Flag to use as *mode* parameter. On platforms where this flag is not "
"available, it is defined as the integer zero."
msgstr ""
"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où "
"ce drapeau n'est pas disponible."
#: ../Doc/library/ctypes.rst:1416
msgid ""
"Flag to use as *mode* parameter. On platforms where this is not available, "
"it is the same as *RTLD_GLOBAL*."
msgstr ""
"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-"
"formes où ce drapeau n'est pas disponible."
#: ../Doc/library/ctypes.rst:1423
msgid ""
"The default mode which is used to load shared libraries. On OSX 10.3, this "
"is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*."
msgstr ""
"Mode de chargement par défaut des bibliothèques partagées. Vaut "
"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes "
"d'exploitation."
#: ../Doc/library/ctypes.rst:1426
msgid ""
@ -1857,12 +1864,19 @@ msgid ""
"therefore accessing it repeatedly returns the same object each time. On the "
"other hand, accessing it through an index returns a new object each time::"
msgstr ""
"Les instances de ces classes n'ont pas de méthodes publiques ; on accède aux "
"fonctions de la bibliothèque partagée par attribut ou par indiçage. Notez "
"que les résultats des accès par attribut sont mis en cache, et donc des "
"accès consécutifs renvoient à chaque fois le même objet. Accéder à une "
"fonction par indice renvoie cependant chaque fois un nouvel objet :"
#: ../Doc/library/ctypes.rst:1439
msgid ""
"The following public attributes are available, their name starts with an "
"underscore to not clash with exported function names:"
msgstr ""
"Les attributs publics suivants sont disponibles, leur nom commence par un "
"tiret bas pour éviter les conflits avec les noms des fonctions exportées :"
#: ../Doc/library/ctypes.rst:1445
msgid "The system handle used to access the library."
@ -1870,7 +1884,7 @@ msgstr ""
#: ../Doc/library/ctypes.rst:1450
msgid "The name of the library passed in the constructor."
msgstr ""
msgstr "Nom de la bibliothèque donné au constructeur."
#: ../Doc/library/ctypes.rst:1452
msgid ""
@ -1889,6 +1903,8 @@ msgid ""
"Class which loads shared libraries. *dlltype* should be one of the :class:"
"`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types."
msgstr ""
"Classe pour charger une bibliothèque partagée. *dlltype* doit être de type :"
"class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`."
#: ../Doc/library/ctypes.rst:1463
msgid ""
@ -1896,6 +1912,10 @@ msgid ""
"by accessing it as attribute of a library loader instance. The result is "
"cached, so repeated attribute accesses return the same library each time."
msgstr ""
":meth:`__getattr__` a un comportement particulier : elle charge une "
"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis "
"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque "
"fois."
#: ../Doc/library/ctypes.rst:1469
msgid ""
@ -2010,28 +2030,41 @@ msgid ""
"instances as arguments, and return the default result type specified by the "
"library loader. They are instances of a private class:"
msgstr ""
"Comme expliqué dans la section précédente, on peut accéder aux fonctions "
"externes au travers des attributs des bibliothèques partagées. Un objet "
"fonction créé de cette façon accepte par défaut un nombre quelconque "
"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il "
"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des "
"instances de la classe privée :"
#: ../Doc/library/ctypes.rst:1542
msgid "Base class for C callable foreign functions."
msgstr ""
msgstr "Classe de base pour les fonctions externes C."
#: ../Doc/library/ctypes.rst:1544
msgid ""
"Instances of foreign functions are also C compatible data types; they "
"represent C function pointers."
msgstr ""
"Une instance de fonction externe est également un type de donnée compatible "
"avec le C ; elle représente un pointeur vers une fonction."
#: ../Doc/library/ctypes.rst:1547
msgid ""
"This behavior can be customized by assigning to special attributes of the "
"foreign function object."
msgstr ""
"Son comportement peut-être personnalisé en réaffectant les attributs "
"spécifiques de l'objet représentant la fonction externe."
#: ../Doc/library/ctypes.rst:1552
msgid ""
"Assign a ctypes type to specify the result type of the foreign function. Use "
"``None`` for :c:type:`void`, a function not returning anything."
msgstr ""
"Fait correspondre le type de retour de la fonction externe à un type "
"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), "
"utilisez ``None``."
#: ../Doc/library/ctypes.rst:1555
msgid ""
@ -2042,6 +2075,14 @@ msgid ""
"or error checking use a ctypes data type as :attr:`restype` and assign a "
"callable to the :attr:`errcheck` attribute."
msgstr ""
"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas "
"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est "
"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet "
"entier, ce qui permet ainsi de faire des actions supplémentaires comme "
"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple "
"de faire des actions supplémentaires ou de la vérification consiste à "
"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à "
"l'attribut :attr:`errcheck`."
#: ../Doc/library/ctypes.rst:1564
msgid ""
@ -2051,6 +2092,11 @@ msgid ""
"tuple; functions using the C calling convention accept additional, "
"unspecified arguments as well."
msgstr ""
"Fait correspondre le type des arguments que la fonction accepte avec un *n*-"
"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel "
"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que "
"la taille du *n*-uplet mais les fonctions qui utilisent la convention "
"d'appel C acceptent aussi des arguments additionnels non-définis."
#: ../Doc/library/ctypes.rst:1570
msgid ""
@ -2061,6 +2107,13 @@ msgid ""
"attr:`argtypes` tuple will convert a string passed as argument into a bytes "
"object using ctypes conversion rules."
msgstr ""
"À l'appel d'une fonction externe, chaque argument est passé à la méthode de "
"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet des :"
"attr:`argtypes`. Cette méthode convertit l'argument initial en un objet que "
"la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` dans "
"le *n*-uplet des :attr:`argtypes` va transformer la chaîne de caractères "
"passée en argument en un objet chaîne d'octets selon les règles de "
"conversion *ctypes*."
#: ../Doc/library/ctypes.rst:1577
msgid ""
@ -2069,30 +2122,47 @@ msgid ""
"usable as argument (integer, string, ctypes instance). This allows defining "
"adapters that can adapt custom objects as function parameters."
msgstr ""
"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas "
"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une "
"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme "
"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet "
"de créer des adaptateurs qui convertissent des objets arbitraires en des "
"paramètres de fonction."
#: ../Doc/library/ctypes.rst:1584
msgid ""
"Assign a Python function or another callable to this attribute. The callable "
"will be called with three or more arguments:"
msgstr ""
"Définit une fonction Python ou tout autre appelable qui sera appelé avec "
"trois arguments ou plus :"
#: ../Doc/library/ctypes.rst:1591
msgid ""
"*result* is what the foreign function returns, as specified by the :attr:"
"`restype` attribute."
msgstr ""
"*result* est la valeur de retour de la fonction externe, comme défini par "
"l'attribut :attr:`restype`."
#: ../Doc/library/ctypes.rst:1594
msgid ""
"*func* is the foreign function object itself, this allows reusing the same "
"callable object to check or post process the results of several functions."
msgstr ""
"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur "
"permet de réutiliser le même appelable pour vérifier le résultat de "
"plusieurs fonctions ou de faire des actions supplémentaires après leur "
"exécution."
#: ../Doc/library/ctypes.rst:1598
msgid ""
"*arguments* is a tuple containing the parameters originally passed to the "
"function call, this allows specializing the behavior on the arguments used."
msgstr ""
"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à "
"la fonction, ceci permet de spécialiser le comportement des arguments "
"utilisés."
#: ../Doc/library/ctypes.rst:1602
msgid ""
@ -2100,12 +2170,17 @@ msgid ""
"function call, but it can also check the result value and raise an exception "
"if the foreign function call failed."
msgstr ""
"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la "
"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever "
"une exception si l'appel a échoué."
#: ../Doc/library/ctypes.rst:1609
msgid ""
"This exception is raised when a foreign function call cannot convert one of "
"the passed arguments."
msgstr ""
"Exception levée quand un appel à la fonction externe ne peut pas convertir "
"un des arguments qu'elle a reçus."
#: ../Doc/library/ctypes.rst:None
msgid ""
@ -2121,6 +2196,12 @@ msgid ""
"seh_exception`` with argument ``code`` will be raised, allowing an audit "
"hook to replace the exception with its own."
msgstr ""
"En Windows, quand un appel à une fonction externe lève une exception système "
"(par exemple, une erreur de segmentation), celle-ci est interceptée pour "
"être remplacée par l'exception Python correspondante. De plus, un évènement "
"d'audit ``ctypes.seh_exception`` est levé avec ``code`` en argument, ce qui "
"permet à un point d'entrée (*hook* en anglais) d'audit de remplacer "
"l'exception par une des siennes."
#: ../Doc/library/ctypes.rst:None
msgid ""
@ -2134,6 +2215,9 @@ msgid ""
"``ctypes.call_function`` with arguments ``function pointer`` and "
"``arguments``."
msgstr ""
"Certaines manières d'appeler des fonction externes peuvent lever des "
"évènements d'audit ``ctypes.call_function`` avec ``function pointer`` et "
"``arguments`` comme arguments."
#: ../Doc/library/ctypes.rst:1629
msgid "Function prototypes"

View File

@ -1658,7 +1658,7 @@ msgstr ""
#: ../Doc/library/curses.rst:1384
msgid "Key"
msgstr ""
msgstr "Clé"
#: ../Doc/library/curses.rst:1386
msgid "``KEY_MIN``"
@ -2988,7 +2988,7 @@ msgstr ""
#: ../Doc/library/curses.rst:1788
msgid "Action"
msgstr ""
msgstr "Action"
#: ../Doc/library/curses.rst:1790
msgid ":kbd:`Control-A`"

View File

@ -6,15 +6,15 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-04-28 01:07+0200\n"
"PO-Revision-Date: 2020-06-01 17:38+0200\n"
"Last-Translator: Loc Cosnier <loc.cosnier@pm.me>\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"
"X-Generator: Gtranslator 3.34.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.36.0\n"
#: ../Doc/library/datetime.rst:2
msgid ":mod:`datetime` --- Basic date and time types"
@ -2210,6 +2210,13 @@ msgid ""
"replace(tzinfo=timezone.utc)`` to make it aware, at which point you can use :"
"meth:`.datetime.timetuple`."
msgstr ""
"Comme les objets ``datetime`` naïfs sont traités par de nombreuses méthodes "
"``datetime`` comme des heures locales, il est préférable d'utiliser les "
"``datetime`` avisés pour représenter les heures en UTC ; par conséquent, "
"l'utilisation de ``utcfromtimetuple`` peut donner des résultats trompeurs. "
"Si vous disposez d'une ``datetime`` naïve représentant l'heure UTC, utilisez "
"``datetime.replace(tzinfo=timezone.utc)`` pour la rendre avisée, puis vous "
"pouvez utiliser :meth:`.datetime.timetuple`."
#: ../Doc/library/datetime.rst:1345
#, fuzzy
@ -3416,12 +3423,17 @@ msgid ""
"datetime` object from a string representing a date and time and a "
"corresponding format string."
msgstr ""
"Inversement, la méthode de classe :meth:`datetime.strptime` crée un objet :"
"class:`.datetime` à partir d'une chaîne représentant une date et une heure, "
"et une chaîne de format correspondante."
#: ../Doc/library/datetime.rst:2279
msgid ""
"The table below provides a high-level comparison of :meth:`strftime` versus :"
"meth:`strptime`:"
msgstr ""
"Le tableau ci-dessous fournit une comparaison de haut niveau entre :meth:"
"`strftime` et :meth:`strptime` :"
#: ../Doc/library/datetime.rst:2283
#, fuzzy
@ -3435,20 +3447,22 @@ msgstr "``str(t)``"
#: ../Doc/library/datetime.rst:2285
msgid "Usage"
msgstr ""
msgstr "Utilisation"
#: ../Doc/library/datetime.rst:2285
msgid "Convert object to a string according to a given format"
msgstr ""
msgstr "Convertit un objet en une chaîne de caractères selon un format donné"
#: ../Doc/library/datetime.rst:2285
msgid ""
"Parse a string into a :class:`.datetime` object given a corresponding format"
msgstr ""
"Analyse une chaîne de caractères dans un objet :class:`.datetime` en "
"fonction du format de correspondance donné"
#: ../Doc/library/datetime.rst:2287
msgid "Type of method"
msgstr ""
msgstr "Type de méthode"
#: ../Doc/library/datetime.rst:2287
#, fuzzy
@ -3457,11 +3471,11 @@ msgstr "Méthodes de l'instance :"
#: ../Doc/library/datetime.rst:2287
msgid "Class method"
msgstr ""
msgstr "Méthode de classe"
#: ../Doc/library/datetime.rst:2289
msgid "Method of"
msgstr ""
msgstr "Méthode de"
#: ../Doc/library/datetime.rst:2289
#, fuzzy
@ -3475,7 +3489,7 @@ msgstr "Objets :class:`.datetime`"
#: ../Doc/library/datetime.rst:2291
msgid "Signature"
msgstr ""
msgstr "Signature"
#: ../Doc/library/datetime.rst:2291
#, fuzzy
@ -3484,7 +3498,7 @@ msgstr "``str(t)``"
#: ../Doc/library/datetime.rst:2291
msgid "``strptime(date_string, format)``"
msgstr ""
msgstr "``strptime(date_string, format)``"
#: ../Doc/library/datetime.rst:2296
#, fuzzy
@ -3880,6 +3894,9 @@ msgid ""
"Several additional directives not required by the C89 standard are included "
"for convenience. These parameters all correspond to ISO 8601 date values."
msgstr ""
"Plusieurs directives supplémentaires non requises par la norme C89 sont "
"incluses pour des raisons de commodité. Ces paramètres correspondent tous "
"aux valeurs de date de la norme ISO 8601."
#: ../Doc/library/datetime.rst:2407
msgid "``%G``"
@ -3966,7 +3983,7 @@ msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés."
#: ../Doc/library/datetime.rst:2436
msgid "Technical Detail"
msgstr ""
msgstr "Détail technique"
#: ../Doc/library/datetime.rst:2438
#, fuzzy
@ -3995,6 +4012,7 @@ msgstr ""
#: ../Doc/library/datetime.rst:2446
msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::"
msgstr ""
"L'utilisation de ``datetime.strptime(date_string, format)`` équivaut à ::"
#: ../Doc/library/datetime.rst:2450
msgid ""
@ -4002,6 +4020,9 @@ msgid ""
"information, which are supported in ``datetime.strptime`` but are discarded "
"by ``time.strptime``."
msgstr ""
"sauf lorsque le format inclut des composantes de sous-secondes ou des "
"informations de décalage de fuseau horaire, qui sont prises en charge dans "
"``datetime.strptime`` mais pas par ``time.strptime``."
#: ../Doc/library/datetime.rst:2454
#, fuzzy

View File

@ -16,7 +16,7 @@ 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
#, fuzzy
@ -28,6 +28,8 @@ 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 ""
@ -35,6 +37,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 ""
@ -42,6 +47,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 ""
@ -54,10 +62,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 ""
@ -67,6 +84,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 ""
@ -76,6 +99,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 ""
@ -86,41 +114,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 ""
@ -128,16 +175,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 ""
@ -147,6 +199,10 @@ msgid ""
"return ``False`` even though its content type claims to be :mimetype:"
"`multipart`."
msgstr ""
":class:`MultipartInvariantViolationDefect` — Le message indique être de "
"type :mimetype:`multipart`, mais aucune pièce jointe n'a été trouvée. Notez "
"que, dans ce cas, la méthode :meth:`~email.message.Message.is_multipart` "
"peut renvoyer ``False`` même si le type de contenu est :mimetype:`multipart`."
#: ../Doc/library/email.errors.rst:104
msgid ""
@ -154,6 +210,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 ""
@ -161,6 +220,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 ""
@ -168,3 +231,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

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-23 16:48+0200\n"
"PO-Revision-Date: 2019-06-10 15:49+0200\n"
"PO-Revision-Date: 2020-05-30 23:32+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -77,8 +77,8 @@ msgstr ""
"nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les "
"nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-"
"classes, et non de :exc:`BaseException`. Plus d'informations sur la "
"définition des exceptions sont disponibles dans le Tutoriel Python sous :ref:"
"`tut-userexceptions`."
"définition des exceptions sont disponibles dans le Tutoriel Python au "
"chapitre :ref:`tut-userexceptions`."
#: ../Doc/library/exceptions.rst:37
msgid ""
@ -134,11 +134,11 @@ msgid ""
"is :const:`None` and :attr:`__suppress_context__` is false."
msgstr ""
"Le code d'affichage par défaut de la trace d'appels montre ces exceptions "
"chaînées en plus de la trace de l'exception elle-même. Une exception chaînée "
"explicitement dans :attr:`__cause__` est toujours affichée si présente. Une "
"exception implicitement chaînée dans :attr:`__context__` n'est affichée que "
"si :attr:`__cause__` est :const:`None` et :attr:`__suppress_context__` est "
"faux."
"chaînées en plus de la trace de l'exception elle-même. Si elle est présente, "
"une exception chaînée explicitement dans :attr:`__cause__` est toujours "
"affichée. Une exception implicitement chaînée dans :attr:`__context__` n'est "
"affichée que si :attr:`__cause__` est :const:`None` et :attr:"
"`__suppress_context__` est faux."
#: ../Doc/library/exceptions.rst:65
msgid ""

View File

@ -122,6 +122,8 @@ msgid ""
"Return a tuple of two integers, whose ratio is equal to the Fraction and "
"with a positive denominator."
msgstr ""
"Renvoie un *n*-uplet de deux entiers, dont le quotient est égal à la "
"fraction et dont le dénominateur est positif."
#: ../Doc/library/fractions.rst:106
msgid ""

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 3.36.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.36.0\n"
#: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11
msgid "Built-in Functions"

View File

@ -136,6 +136,9 @@ msgid ""
"*lru_cache* decorator to be applied directly to a user function, leaving the "
"*maxsize* at its default value of 128::"
msgstr ""
"Si *user_function* est défini, ce doit être un appelable. Ceci permet à "
"*lru_cache* d'être appliqué directement sur une fonction de l'utilisateur, "
"sans préciser *maxsize* (qui est alors défini à sa valeur par défaut, 128) ::"
#: ../Doc/library/functools.rst:103
#, fuzzy
@ -396,6 +399,8 @@ msgid ""
"See :func:`itertools.accumulate` for an iterator that yields all "
"intermediate values."
msgstr ""
"Voir :func:`itertools.accumulate` pour un itérateur qui génère toutes les "
"valeurs intermédiaires."
#: ../Doc/library/functools.rst:326
msgid ""

View File

@ -58,12 +58,12 @@ msgid ""
"\"max heap\" is more common in texts because of its suitability for in-place "
"sorting)."
msgstr ""
"L'API ci-dessous diffère de la file de priorité classique par deux aspects : "
"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation "
"L'API ci-dessous diffère de la file de priorité classique par deux aspects : "
"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation "
"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec "
"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* "
"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans "
"les manuels scolaires ; le « tas-max » étant généralement plus courant dans "
"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans "
"les manuels scolaires ; le « tas-max » étant généralement plus courant dans "
"la littérature car il permet le classement sans tampon)."
#: ../Doc/library/heapq.rst:33
@ -73,8 +73,8 @@ msgid ""
"the heap invariant!"
msgstr ""
"Ces deux points permettent d'aborder le tas comme une liste Python standard "
"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap."
"sort()`` ne modifie pas le tas !"
"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` "
"conserve l'invariant du tas !"
#: ../Doc/library/heapq.rst:37
msgid ""
@ -87,7 +87,7 @@ msgstr ""
#: ../Doc/library/heapq.rst:40
msgid "The following functions are provided:"
msgstr "Les fonctions suivantes sont fournies :"
msgstr "Les fonctions suivantes sont fournies :"
#: ../Doc/library/heapq.rst:45
msgid "Push the value *item* onto the *heap*, maintaining the heap invariant."
@ -224,7 +224,7 @@ msgstr ""
"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]``."
"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``."
#: ../Doc/library/heapq.rst:122
msgid ""
@ -238,7 +238,7 @@ msgstr ""
"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]``."
"Équivalent à : ``sorted(iterable, key=key)[:n]``."
#: ../Doc/library/heapq.rst:128
msgid ""
@ -282,7 +282,7 @@ msgid ""
"Heap elements can be tuples. This is useful for assigning comparison values "
"(such as task priorities) alongside the main record being tracked::"
msgstr ""
"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour "
"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour "
"assigner des valeurs de comparaison (par exemple, des priorités de tâches) "
"en plus de l'élément qui est suivi ::"
@ -297,15 +297,15 @@ msgid ""
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 :"
"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 ?"
"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 ""
@ -321,7 +321,7 @@ msgid ""
"the heap?"
msgstr ""
"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle "
"position dans le tas ?"
"position dans le tas ?"
#: ../Doc/library/heapq.rst:181
msgid ""
@ -329,7 +329,7 @@ msgid ""
"from the queue?"
msgstr ""
"Si une tâche en attente doit être supprimée, comment la trouver et la "
"supprimer de la file ?"
"supprimer de la file ?"
#: ../Doc/library/heapq.rst:184
msgid ""
@ -424,7 +424,7 @@ msgstr ""
"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa "
"promotion par un autre élément à un plus bas niveau. La règle devient alors "
"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments "
"différents, mais le nœud supérieur « gagne » contre les deux nœuds "
"différents, mais le nœud supérieur « gagne » contre les deux nœuds "
"inférieurs."
#: ../Doc/library/heapq.rst:268
@ -439,7 +439,7 @@ msgid ""
msgstr ""
"Si cet invariant de tas est vérifié à tout instant, alors l'élément à "
"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le "
"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant "
"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant "
"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à "
"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur "
"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette "
@ -458,11 +458,11 @@ msgid ""
"easily go into the heap. So, a heap is a good structure for implementing "
"schedulers (this is what I used for my MIDI sequencer :-)."
msgstr ""
"Une propriété agréable de cet algorithme est qu'il possible d'insérer "
"Une propriété agréable de cet algorithme est qu'il est possible d'insérer "
"efficacement de nouveaux éléments en cours de classement, du moment que les "
"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été "
"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été "
"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la "
"liste des événements arrivants et que la condition de « victoire » est le "
"liste des événements arrivants et que la condition de « victoire » est le "
"plus petit temps d'exécution planifié. Lorsqu'un événement programme "
"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et "
"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour "
@ -478,7 +478,7 @@ msgid ""
"efficient overall, yet the worst cases might be terrible."
msgstr ""
"Plusieurs structures ont été étudiées en détail pour implémenter des "
"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement "
"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement "
"rapides, leur vitesse est presque constante et le pire cas ne diffère pas "
"trop du cas moyen. S'il existe des représentations qui sont plus efficaces "
"en général, les pires cas peuvent être terriblement mauvais."
@ -521,12 +521,12 @@ msgid ""
msgstr ""
"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez "
"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa "
"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne "
"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne "
"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La "
"mémoire libérée peut être réutilisée immédiatement pour progressivement "
"construire un deuxième tas, qui croit à la même vitesse que le premier "
"décroît. Lorsque le premier tas a complètement disparu, vous échangez les "
"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !"
"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !"
#: ../Doc/library/heapq.rst:308
msgid ""
@ -559,8 +559,8 @@ msgstr ""
"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin "
"était différent et il fallait être malin pour s'assurer (bien à l'avance) "
"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire "
"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes "
"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes "
"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de "
"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient "
"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été "
"le Grand Art ! ☺"
"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été "
"le Grand Art ! ☺"

View File

@ -260,7 +260,7 @@ msgstr "``httponly``"
#: ../Doc/library/http.cookies.rst:142
msgid "``samesite``"
msgstr ""
msgstr "``samesite``"
#: ../Doc/library/http.cookies.rst:144
msgid ""
@ -278,6 +278,10 @@ msgid ""
"send the cookie along with cross-site requests. This helps to mitigate CSRF "
"attacks. Valid values for this attribute are \"Strict\" and \"Lax\"."
msgstr ""
"L'attribut :attr:`samesite` spécifie que le navigateur n'est pas autorisé à "
"envoyer le témoin de connexion avec les requêtes inter-sites. Cela vise à "
"contrer les attaques *CSRF*. Les valeurs valides pour cet attribut sont "
 Strict » et « Lax »."
#: ../Doc/library/http.cookies.rst:152
msgid "The keys are case-insensitive and their default value is ``''``."
@ -303,7 +307,7 @@ msgstr ""
#: ../Doc/library/http.cookies.rst:163
msgid "Added support for the :attr:`samesite` attribute."
msgstr ""
msgstr "ajout de la prise en charge de l'attribut :attr:`samesite`."
#: ../Doc/library/http.cookies.rst:169
msgid "The value of the cookie."

View File

@ -17,7 +17,7 @@ msgstr ""
#: ../Doc/library/locale.rst:2
msgid ":mod:`locale` --- Internationalization services"
msgstr ""
msgstr ":mod:`locale` — Services d'internationalisation"
#: ../Doc/library/locale.rst:10
#, fuzzy
@ -31,22 +31,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 ""
@ -59,18 +70,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 ""
@ -79,20 +103,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"
@ -109,6 +141,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'``"
@ -121,6 +155,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'``"
@ -128,7 +167,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`"
@ -140,7 +179,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'``"
@ -148,7 +187,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'``"
@ -159,6 +198,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'``"
@ -169,6 +210,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'``"
@ -177,6 +220,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'``"
@ -186,6 +231,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'``"
@ -196,6 +242,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'``"
@ -203,7 +251,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'``"
@ -211,7 +259,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'``"
@ -219,7 +267,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'``"
@ -227,7 +275,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'``"
@ -237,18 +285,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"
@ -264,7 +318,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``"
@ -272,7 +326,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``"
@ -280,7 +334,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``"
@ -288,7 +342,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``"
@ -296,7 +350,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``"
@ -304,7 +358,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 ""
@ -318,6 +372,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 ""
@ -326,6 +382,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 ""
@ -333,84 +394,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 ""
@ -418,10 +509,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 ""
@ -430,6 +526,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 ""
@ -439,36 +539,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 ""
@ -478,6 +593,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 ""
@ -488,6 +609,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 ""
@ -495,6 +624,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 ""
@ -502,6 +634,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 ""
@ -551,22 +688,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 ""
@ -575,6 +721,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 ""
@ -583,6 +733,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 ""
@ -591,18 +746,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."
@ -628,6 +791,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 ""
@ -636,36 +801,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 ""
@ -673,24 +853,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 ""
@ -699,6 +890,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 ""
@ -707,6 +903,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 ""
@ -717,12 +917,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::"
@ -730,7 +939,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 ""
@ -739,6 +948,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 ""
@ -749,6 +963,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 ""
@ -757,6 +978,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 ""
@ -768,6 +994,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 ""
@ -775,6 +1009,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 ""
@ -786,10 +1023,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 ""
@ -798,6 +1043,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 ""
@ -808,10 +1057,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 ""
@ -823,6 +1079,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 ""
@ -833,3 +1095,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,14 +26,16 @@ 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
#, fuzzy

View File

@ -16,24 +16,26 @@ 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
#, fuzzy
@ -47,10 +49,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 ""
@ -59,6 +66,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 ""
@ -66,6 +77,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 ""
@ -81,12 +95,18 @@ 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
#, fuzzy
@ -95,15 +115,15 @@ 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 ""
@ -116,7 +136,7 @@ msgstr ""
#: ../Doc/library/logging.handlers.rst:85
msgid "FileHandler"
msgstr ""
msgstr "Gestionnaire à fichier — *FileHandler*"
#: ../Doc/library/logging.handlers.rst:87
msgid ""
@ -124,6 +144,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 ""
@ -143,18 +166,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 ""
@ -162,31 +187,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 ""
@ -195,6 +227,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 ""
@ -205,6 +241,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 ""
@ -214,6 +258,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 ""
@ -231,16 +281,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 ""
@ -250,10 +305,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 ""
@ -261,6 +323,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 ""
@ -269,6 +334,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 ""
@ -276,14 +345,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 ""
@ -291,14 +364,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 ""
@ -307,17 +383,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 ""
@ -328,26 +412,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 ""
@ -376,21 +470,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 ""
@ -398,6 +512,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 ""
@ -406,12 +523,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"
@ -419,11 +543,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'``"
@ -431,7 +555,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
@ -446,7 +570,7 @@ msgstr "``'M'``"
#: ../Doc/library/logging.handlers.rst:349
msgid "Minutes"
msgstr ""
msgstr "Minutes"
#: ../Doc/library/logging.handlers.rst:351
msgid "``'H'``"
@ -454,7 +578,7 @@ msgstr "``'H'``"
#: ../Doc/library/logging.handlers.rst:351
msgid "Hours"
msgstr ""
msgstr "Heures"
#: ../Doc/library/logging.handlers.rst:353
msgid "``'D'``"
@ -462,7 +586,7 @@ msgstr "``'D'``"
#: ../Doc/library/logging.handlers.rst:353
msgid "Days"
msgstr ""
msgstr "Jours"
#: ../Doc/library/logging.handlers.rst:355
msgid "``'W0'-'W6'``"
@ -470,12 +594,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'``"
@ -484,6 +608,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 ""
@ -491,6 +617,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 ""
@ -498,6 +628,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 ""
@ -505,6 +639,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

@ -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
#, fuzzy
@ -72,6 +80,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 ""
@ -80,6 +92,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 ""
@ -87,12 +103,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 ""
@ -100,6 +122,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
#, fuzzy
@ -114,7 +139,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`."
@ -122,7 +147,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 ""
@ -133,6 +158,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 ""
@ -141,6 +172,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
#, fuzzy
@ -157,6 +192,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
#, fuzzy
@ -171,7 +209,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 ""
@ -179,6 +217,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
#, fuzzy
@ -208,46 +250,56 @@ msgstr ""
#: ../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 ""
@ -256,6 +308,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 ""
@ -263,31 +320,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 ""
@ -295,6 +367,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 ""
@ -304,6 +380,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 ""
@ -313,12 +395,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 ""
@ -328,12 +418,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
#, fuzzy
@ -347,12 +446,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 ""
@ -361,6 +464,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 ""
@ -369,6 +476,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 ""
@ -377,6 +488,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 ""
@ -385,6 +500,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 ""
@ -443,6 +562,9 @@ 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."
@ -454,7 +576,7 @@ 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 ""
@ -469,30 +591,40 @@ 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"
@ -509,10 +641,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 ""
@ -521,24 +657,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`"
@ -546,7 +689,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`"
@ -578,60 +721,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 ""
@ -641,6 +802,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 ""
@ -651,6 +817,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"
@ -658,24 +830,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 ::"

View File

@ -267,6 +267,8 @@ msgid ""
"The behavior of :meth:`__iter__` is unlike that of dictionaries, which "
"iterate over keys."
msgstr ""
"Le comportement de :meth:`__iter__` diffère de celui d'un dictionnaire, pour "
"lequel l'itération se fait sur ses clés."
#: ../Doc/library/mailbox.rst:156
msgid ""
@ -277,6 +279,13 @@ msgid ""
"subclass unless a custom message factory was specified when the :class:"
"`Mailbox` instance was initialized."
msgstr ""
"Renvoie un itérateur sur les paires (*key*, *message*), où *key* est une clé "
"et *message* est la représentation d'un message, si appelée en tant que :"
"meth:`iteritems` ; ou renvoie une liste de paires semblables si appelée en "
"tant que :meth:`items`. Les messages sont représentés comme instances au "
"format approprié et spécifique d'une sous-classe de :class:`Message` à moins "
"qu'une moulinette personnalisée de message ait été spécifiée lors de "
"l'initialisation de l'instance :class:`Mailbox`."
#: ../Doc/library/mailbox.rst:167
msgid ""
@ -344,7 +353,7 @@ msgstr ""
#: ../Doc/library/mailbox.rst:232
msgid "Delete all messages from the mailbox."
msgstr ""
msgstr "Supprime tous les messages de la boîte de courriel."
#: ../Doc/library/mailbox.rst:237
msgid ""
@ -1738,16 +1747,20 @@ msgid ""
"When a :class:`BabylMessage` instance is created based upon an :class:"
"`MHMessage` instance, the following conversions take place:"
msgstr ""
"Lorsqu'une instance :class:`BabylMessage` est créée sur la base d'une "
"instance :class:`MHMessage`, les conversions suivantes sont faites :"
#: ../Doc/library/mailbox.rst:1340
msgid ":class:`MMDFMessage`"
msgstr ""
msgstr ":class:`MMDFMessage`"
#: ../Doc/library/mailbox.rst:1345
msgid ""
"A message with MMDF-specific behaviors. Parameter *message* has the same "
"meaning as with the :class:`Message` constructor."
msgstr ""
"Un message avec des comportements spécifiques à *MMDF*. Le paramètre "
"*message* a le même sens que pour le constructeur de :class:`Message`."
#: ../Doc/library/mailbox.rst:1348
msgid ""
@ -1756,18 +1769,27 @@ msgid ""
"\"From \". Likewise, flags that indicate the state of the message are "
"typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers."
msgstr ""
"Comme pour le message d'une boîte de courriel *mbox*, les messages *MMDF* "
"sont stockés avec l'adresse de l'expéditeur et la date d'expédition dans la "
"ligne initiale commençant avec « From ». De même, les options indiquant "
"l'état du message sont stockées dans les en-têtes :mailheader:`Status` et :"
"mailheader:`X-Status`."
#: ../Doc/library/mailbox.rst:1353
msgid ""
"Conventional flags for MMDF messages are identical to those of mbox message "
"and are as follows:"
msgstr ""
"Les options conventionnelles des messages *MMDF* sont identiques à celles de "
"message *mbox* et sont les suivantes :"
#: ../Doc/library/mailbox.rst:1374
msgid ""
":class:`MMDFMessage` instances offer the following methods, which are "
"identical to those offered by :class:`mboxMessage`:"
msgstr ""
"Les méthodes des instances :class:`MMDFMessage` sont identiques à celles de :"
"class:`mboxMessage` et sont les suivantes :"
#: ../Doc/library/mailbox.rst:1423
msgid ""
@ -1776,18 +1798,26 @@ msgid ""
"class:`MaildirMessage` instance's delivery date, and the following "
"conversions take place:"
msgstr ""
"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une "
"instance :class:`MaildirMessage`, la ligne « From » est générée sur la base "
"de la date de remise de l'instance :class:`MaildirMessage` et les "
"conversions suivantes ont lieu :"
#: ../Doc/library/mailbox.rst:1442
msgid ""
"When an :class:`MMDFMessage` instance is created based upon an :class:"
"`MHMessage` instance, the following conversions take place:"
msgstr ""
"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une "
"instance :class:`MHMessage`, les conversions suivantes sont faites :"
#: ../Doc/library/mailbox.rst:1457
msgid ""
"When an :class:`MMDFMessage` instance is created based upon a :class:"
"`BabylMessage` instance, the following conversions take place:"
msgstr ""
"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une "
"instance :class:`BabylMessage`, les conversions suivantes sont faites :"
#: ../Doc/library/mailbox.rst:1472
msgid ""
@ -1795,10 +1825,13 @@ msgid ""
"`mboxMessage` instance, the \"From \" line is copied and all flags directly "
"correspond:"
msgstr ""
"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une "
"instance :class:`mboxMessage`, la ligne « From » est copiée et toutes les "
"options ont une correspondance directe :"
#: ../Doc/library/mailbox.rst:1477
msgid ":class:`mboxMessage` state"
msgstr ""
msgstr "état de :class:`mboxMessage`"
#: ../Doc/library/mailbox.rst:1492
msgid "Exceptions"
@ -1808,10 +1841,13 @@ msgstr "Exceptions"
msgid ""
"The following exception classes are defined in the :mod:`mailbox` module:"
msgstr ""
"Les exceptions de classes suivantes sont définies dans le module :mod:"
"`mailbox` :"
#: ../Doc/library/mailbox.rst:1499
msgid "The based class for all other module-specific exceptions."
msgstr ""
"Classe de base pour toutes les autres exceptions spécifiques à ce module."
#: ../Doc/library/mailbox.rst:1504
msgid ""
@ -1820,12 +1856,18 @@ msgid ""
"(and with the *create* parameter set to ``False``), or when opening a folder "
"that does not exist."
msgstr ""
"Levée lorsqu'une boîte de courriel est attendue mais introuvable, comme "
"quand on instancie une sous-classe :class:`Mailbox` avec un chemin qui "
"n'existe pas (et avec le paramètre *create* fixé à ``False``), ou quand on "
"ouvre un répertoire qui n'existe pas."
#: ../Doc/library/mailbox.rst:1511
msgid ""
"Raised when a mailbox is not empty but is expected to be, such as when "
"deleting a folder that contains messages."
msgstr ""
"Levée lorsqu'une boîte de courriel n'est pas vide mais devrait l'être, comme "
"lorsqu'on supprime un répertoire contenant des messages."
#: ../Doc/library/mailbox.rst:1517
msgid ""
@ -1834,12 +1876,19 @@ msgid ""
"that another program already holds a lock, or when a uniquely-generated file "
"name already exists."
msgstr ""
"Levée lorsqu'une condition liée à la boîte de courriel est hors de contrôle "
"du programme et l'empêche de se poursuivre, comme lors de léchec "
"d'acquisition du verrou ou lorsqu'un nom de fichier censé être unique existe "
"déjà."
#: ../Doc/library/mailbox.rst:1525
msgid ""
"Raised when the data in a file cannot be parsed, such as when an :class:`MH` "
"instance attempts to read a corrupted :file:`.mh_sequences` file."
msgstr ""
"Levée lorsque la donnée dans le fichier ne peut être analysée, comme lorsque "
"l'instance de :class:`MH` tente de lire un fichier :file:`.mh_sequences` "
"corrompu."
#: ../Doc/library/mailbox.rst:1532
msgid "Examples"
@ -1850,12 +1899,18 @@ msgid ""
"A simple example of printing the subjects of all messages in a mailbox that "
"seem interesting::"
msgstr ""
"Un exemple simple d'affichage de l'objet, qui semble pertinent, de tous les "
"messages d'une boîte de courriel ::"
#: ../Doc/library/mailbox.rst:1543
msgid ""
"To copy all mail from a Babyl mailbox to an MH mailbox, converting all of "
"the format-specific information that can be converted::"
msgstr ""
"Cet exemple copie tout le courriel d'une boite de courriel au format "
"*Babyl* vers une boite de courriel au format *MH*, convertissant toute "
"l'information qu'il est possible de convertir du premier format vers le "
"second ::"
#: ../Doc/library/mailbox.rst:1554
msgid ""
@ -1864,3 +1919,8 @@ msgid ""
"other programs, mail loss due to interruption of the program, or premature "
"termination due to malformed messages in the mailbox::"
msgstr ""
"Cet exemple trie le courriel en provenance de plusieurs listes de diffusion "
"vers différentes boîtes de courriel, tout en évitant une corruption à cause "
"de modifications concurrentielles par d'autres programmes, une perte due à "
"une interruption du programme ou un arrêt prématuré causé par des messages "
"mal structurés ::"

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/marshal.rst:2
msgid ":mod:`marshal` --- Internal Python object serialization"
msgstr ""
msgstr ":mod:`marshal` — Sérialisation interne des objets Python"
#: ../Doc/library/marshal.rst:10
msgid ""
@ -27,6 +27,13 @@ msgid ""
"are undocumented on purpose; it may change between Python versions (although "
"it rarely does). [#]_"
msgstr ""
"Ce module contient des fonctions permettant de lire et écrire des valeurs "
"Python au format binaire. Ce format est propre à Python, mais indépendant "
"de l'architecture de la machine (p. ex., vous pouvez écrire une valeur "
"Python dans un fichier sur un PC, envoyer le fichier vers une machine Sun et "
"la lire à nouveau). Les détails du format sont volontairement non "
"documentés ; il peut changer d'une version Python à l'autre (bien que ce "
"soit rarement le cas). [#]_"
#: ../Doc/library/marshal.rst:21
msgid ""
@ -41,6 +48,17 @@ msgid ""
"guaranteed, and pickle supports a substantially wider range of objects than "
"marshal."
msgstr ""
"Ce module ne permet pas de « sérialiser » des objets de manière permanente. "
"Pour des questions de sérialisation en général ou de transfert d'objets "
"Python par des appels RPC, référez-vous aux modules :mod:`pickle` et :mod:"
"`shelve`. Le module :mod:`marshal` existe principalement pour permettre la "
"lecture et l'écriture de code « pseudo-compilé » pour les modules Python des "
"fichiers :file:`.pyc`. Par conséquent, les mainteneurs Python se réservent "
"le droit de modifier le format *marshal* en cassant la rétrocompatibilité si "
"besoin. Si vous sérialisez et dé-sérialisez des objets Python, utilisez "
"plutôt le module :mod:`pickle` — les performances sont comparables, "
"l'indépendance par rapport à la version est garantie, et *pickle* prend en "
"charge une gamme d'objets beaucoup plus large que *marshal*."
#: ../Doc/library/marshal.rst:33
msgid ""
@ -48,6 +66,9 @@ msgid ""
"maliciously constructed data. Never unmarshal data received from an "
"untrusted or unauthenticated source."
msgstr ""
"N'utilisez pas le module :mod:`marshal` pour lire des données erronées ou "
"malveillantes. Ne démantelez jamais des données reçues d'une source non "
"fiable ou non authentifiée."
#: ../Doc/library/marshal.rst:39
msgid ""
@ -63,22 +84,39 @@ msgid ""
"*version* lower than 3, recursive lists, sets and dictionaries cannot be "
"written (see below)."
msgstr ""
"Tous les types d'objets Python ne sont pas pris en charge ; en général, "
"seuls les objets dont la valeur est indépendante d'une invocation "
"particulière de Python peuvent être écrits et lus par ce module. Les types "
"suivants sont pris en charge : booléens, entiers, nombres à virgule "
"flottante, nombres complexes, chaînes de caractères, octets, *bytearrays*, "
"*n*-uplets, listes, ensembles, ensembles figés, dictionnaires et objets, "
"étant entendu que les *n*-uplets, listes, ensembles, ensembles figés et "
"dictionnaires sont pris en charge si les valeurs qu'ils contiennent sont "
"elles-mêmes prises en charge. Les singletons :const:`None`, :const:"
"`Ellipsis` et :exc:`StopIteration` peuvent également être « pseudo-"
"compilés » et « dé-pseudo-compilés ». Pour le format des *versions* "
"inférieures à 3, les listes récursives, les ensembles et les dictionnaires "
"ne peuvent pas être écrits (voir ci-dessous)."
#: ../Doc/library/marshal.rst:51
msgid ""
"There are functions that read/write files as well as functions operating on "
"bytes-like objects."
msgstr ""
"Il existe des fonctions de lecture-écriture de fichiers ainsi que des "
"fonctions opérant sur des objets octet."
#: ../Doc/library/marshal.rst:54
msgid "The module defines these functions:"
msgstr ""
msgstr "Le module définit ces fonctions :"
#: ../Doc/library/marshal.rst:59
msgid ""
"Write the value on the open file. The value must be a supported type. The "
"file must be a writeable :term:`binary file`."
msgstr ""
"Écrit la valeur sur le fichier ouvert. La valeur doit être un type pris en "
"charge. Le fichier doit être un :term:`fichier binaire` ouvert en écriture."
#: ../Doc/library/marshal.rst:62
msgid ""
@ -87,12 +125,18 @@ msgid ""
"written to the file. The object will not be properly read back by :func:"
"`load`."
msgstr ""
"Si la valeur est (ou contient un objet qui est) d'un type non implémenté, "
"une exception :exc:`ValueError` est levée — mais le contenu de la mémoire "
"sera également écrit dans le fichier. L'objet ne sera pas correctement lu "
"par :func:`load`."
#: ../Doc/library/marshal.rst:66
msgid ""
"The *version* argument indicates the data format that ``dump`` should use "
"(see below)."
msgstr ""
"L'argument *version* indique le format de données que le ``dump`` doit "
"utiliser (voir ci-dessous)."
#: ../Doc/library/marshal.rst:72
msgid ""
@ -101,12 +145,19 @@ msgid ""
"format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The "
"file must be a readable :term:`binary file`."
msgstr ""
"Lit une valeur du fichier ouvert et la renvoie. Si aucune valeur valide "
"n'est lue (p. ex. parce que les données ont un format décompilé incompatible "
"avec une autre version de Python), :exc:`EOFError`, :exc:`ValueError` ou :"
"exc:`TypeError` est levée. Le fichier doit être un :term:`fichier binaire` "
"ouvert en lecture."
#: ../Doc/library/marshal.rst:79
msgid ""
"If an object containing an unsupported type was marshalled with :func:"
"`dump`, :func:`load` will substitute ``None`` for the unmarshallable type."
msgstr ""
"Si un objet contenant un type non pris en charge a été dé-compilé avec :func:"
"`dump`, :func:`load` remplacera le type non « dé-compilable » par ``None``."
#: ../Doc/library/marshal.rst:85
msgid ""
@ -114,12 +165,18 @@ msgid ""
"file)``. The value must be a supported type. Raise a :exc:`ValueError` "
"exception if value has (or contains an object that has) an unsupported type."
msgstr ""
"Renvoie les octets qui seraient écrits dans un fichier par ``dump(value, "
"file)``. La valeur doit être un type pris en charge. Lève une exception :"
"exc:`ValueError` si la valeur a (ou contient un objet qui a) un type qui "
"n'est pas pris en charge."
#: ../Doc/library/marshal.rst:89
msgid ""
"The *version* argument indicates the data format that ``dumps`` should use "
"(see below)."
msgstr ""
"L'argument *version* indique le format de données que ``dumps`` doivent "
"utiliser (voir ci-dessous)."
#: ../Doc/library/marshal.rst:95
msgid ""
@ -127,10 +184,13 @@ msgid ""
"found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra "
"bytes in the input are ignored."
msgstr ""
"Convertit le :term:`bytes-like object` en une valeur. Si aucune valeur "
"valide n'est trouvée, :exc:`EOFError`, :exc:`ValueError` ou :exc:`TypeError` "
"est levée. Les octets supplémentaires de l'entrée sont ignorés."
#: ../Doc/library/marshal.rst:100
msgid "In addition, the following constants are defined:"
msgstr ""
msgstr "De plus, les constantes suivantes sont définies :"
#: ../Doc/library/marshal.rst:104
msgid ""
@ -139,6 +199,11 @@ msgid ""
"for floating point numbers. Version 3 adds support for object instancing and "
"recursion. The current version is 4."
msgstr ""
"Indique le format que le module utilise. La version 0 est le format "
"originel, la version 1 partage des chaînes de caractères internes et la "
"version 2 utilise un format binaire pour les nombres à virgule flottante. La "
"version 3 ajoute la prise en charge de l'instanciation et de la récursivité "
"des objets. La version actuelle est la 4."
#: ../Doc/library/marshal.rst:112
msgid "Footnotes"
@ -152,3 +217,9 @@ msgid ""
"marshal\" means to convert some data from internal to external form (in an "
"RPC buffer for instance) and \"unmarshalling\" for the reverse process."
msgstr ""
"Le nom de ce module provient d'un peu de terminologie utilisée par les "
"concepteurs de Modula-3 (entre autres), qui utilisent le terme *marshalling* "
"pour l'envoi de données sous une forme autonome. À proprement parler, *to "
"marshal* signifie convertir certaines données d'une forme interne à une "
"forme externe (dans une mémoire tampon RPC par exemple) et *unmarshalling* "
"désigne le processus inverse."

View File

@ -458,7 +458,7 @@ msgstr ""
#: ../Doc/library/msilib.rst:414
msgid "Features"
msgstr ""
msgstr "Caractéristiques"
#: ../Doc/library/msilib.rst:419
msgid ""

View File

@ -3225,6 +3225,9 @@ msgid ""
"pool as CPython does not assure that the finalizer of the pool will be "
"called (see :meth:`object.__del__` for more information)."
msgstr ""
"Notez qu'il n'est **pas correct** de compter sur le ramasse-miette pour "
"détruire le pool car CPython n'assure pas que le *finalizer* du pool sera "
"appelé (voir :meth:`object.__del__` pour plus d'informations)."
#: ../Doc/library/multiprocessing.rst:2141
msgid "*maxtasksperchild*"

View File

@ -6,23 +6,26 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-04 11:33+0200\n"
"PO-Revision-Date: 2019-09-04 11:44+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2020-06-01 11:56+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"
"X-Generator: Poedit 2.3\n"
#: ../Doc/library/multiprocessing.shared_memory.rst:2
msgid ""
":mod:`multiprocessing.shared_memory` --- Provides shared memory for direct "
"access across processes"
msgstr ""
":mod:`multiprocessing.shared_memory` — Mémoire partagée en accès direct "
"depuis plusieurs processus"
#: ../Doc/library/multiprocessing.shared_memory.rst:7
msgid "**Source code:** :source:`Lib/multiprocessing/shared_memory.py`"
msgstr ""
msgstr "**Code source :** :source:`Lib/multiprocessing/shared_memory.py`"
#: ../Doc/library/multiprocessing.shared_memory.rst:18
msgid ""
@ -34,6 +37,14 @@ msgid ""
"`SharedMemoryManager`, is also provided in the ``multiprocessing.managers`` "
"module."
msgstr ""
"Ce module fournit une classe, :class:`SharedMemory`, pour l'allocation et la "
"gestion de mémoire partagée entre un ou plusieurs processus sur une machine "
"à plusieurs cœurs ou à multiprocesseurs (architecture *symmetric "
"multiprocessor* ou SMP). Pour faciliter la gestion du cycle de vie de la "
"mémoire partagée, tout particulièrement entre plusieurs processus, le module "
"``multiprocessing.managers`` fournit aussi la classe :class:"
"`~multiprocessing.managers.SharedMemoryManager`, sous-classe de :class:"
"`BaseManager`."
#: ../Doc/library/multiprocessing.shared_memory.rst:26
msgid ""
@ -49,6 +60,17 @@ msgid ""
"via disk or socket or other communications requiring the serialization/"
"deserialization and copying of data."
msgstr ""
"Dans ce module, il faut entendre « mémoire partagée » au sens de « blocs de "
"mémoire partagée à la mode System V » (même si l'implémentation peut "
"différer), et non au sens de « mémoire distribuée ». Ce type de mémoire "
"partagée permet à plusieurs processus d'écrire dans une zone commune (ou "
 partagée ») de la mémoire vive. Normalement, les processus n'ont accès "
"qu'à leur propre espace mémoire ; la mémoire partagée permet justement le "
"partage de données entre des processus, ce qui leur évite d'avoir à "
"s'envoyer ces données par message. Échanger des données par mémoire partagée "
"peut amener des gains de performance substantiels par rapport aux échanges "
"via le disque dur, des connecteurs ou d'autres canaux qui nécessitent de "
"sérialiser et de désérialiser les données."
#: ../Doc/library/multiprocessing.shared_memory.rst:41
msgid ""
@ -58,6 +80,11 @@ msgid ""
"different process can attach to that same shared memory block using that "
"same name."
msgstr ""
"Crée un nouveau bloc de mémoire partagée ou enregistre un bloc déjà "
"existant. Un nom unique doit être donné à chaque bloc de mémoire partagée ; "
"ainsi, un processus peut créer un nouveau bloc de mémoire partagée avec un "
"nom fixé et un autre processus peut enregistrer le même bloc, à partir de "
"son nom."
#: ../Doc/library/multiprocessing.shared_memory.rst:47
msgid ""
@ -68,6 +95,12 @@ msgid ""
"block is no longer needed by any process, the :meth:`unlink()` method should "
"be called to ensure proper cleanup."
msgstr ""
"Puisque qu'il permet de partager des données entre processus, un bloc de "
"mémoire partagée peut survivre au processus qui l'a créé. Lorsqu'un "
"processus n'a plus besoin d'un bloc — qui peut toujours être en cours "
"d'utilisation par un autre  il doit appeler la méthode :meth:`close()`. "
"Quand tous les processus ont fini d'utiliser ce bloc, il faut appeler la "
"méthode :meth:`unlink()` pour le libérer."
#: ../Doc/library/multiprocessing.shared_memory.rst:54
msgid ""
@ -75,12 +108,17 @@ msgid ""
"string. When creating a new shared memory block, if ``None`` (the default) "
"is supplied for the name, a novel name will be generated."
msgstr ""
"*name* est le nom (une chaîne de caractères) unique de la mémoire partagée à "
"allouer. Lors de la création d'un nouveau bloc mémoire, si ``None`` (valeur "
"par défaut) est passé comme nom, un nouveau nom est généré."
#: ../Doc/library/multiprocessing.shared_memory.rst:58
msgid ""
"*create* controls whether a new shared memory block is created (``True``) or "
"an existing shared memory block is attached (``False``)."
msgstr ""
"*create* indique si un nouveau bloc doit être alloué (``True``) ou si on "
"enregistre un bloc déjà existant (``False``)."
#: ../Doc/library/multiprocessing.shared_memory.rst:61
msgid ""
@ -90,6 +128,11 @@ msgid ""
"memory block may be larger or equal to the size requested. When attaching "
"to an existing shared memory block, the ``size`` parameter is ignored."
msgstr ""
"*size* définit le nombre d'octets à allouer. Comme certaines plates-formes "
"choisissent d'allouer les blocs mémoire en multiples de la taille de la page "
"mémoire de la plate-forme, la taille réellement allouée peut être supérieure "
"à la taille demandée. Lors de l'enregistrement d'un bloc déjà existant, le "
"paramètre ``size`` est ignoré."
#: ../Doc/library/multiprocessing.shared_memory.rst:69
msgid ""
@ -98,6 +141,10 @@ msgid ""
"instance is no longer needed. Note that calling ``close()`` does not cause "
"the shared memory block itself to be destroyed."
msgstr ""
"Empêche les accès ultérieurs à la mémoire partagée depuis cette instance ; "
"toutes les instances doivent appeler ``close()`` pour s'assurer que les "
"ressources sont bien libérées. Notez qu'appeler ``close()`` ne libère pas la "
"mémoire elle-même."
#: ../Doc/library/multiprocessing.shared_memory.rst:77
msgid ""
@ -111,24 +158,35 @@ msgid ""
"relinquishing its hold on a shared memory block may call ``unlink()`` and :"
"meth:`close()` in either order."
msgstr ""
"Initie la libération de la mémoire partagée sous-jacente. Pour être sûr que "
"les ressources sont libérées correctement, ``unlink()`` doit être appelée "
"une (et une seule) fois par tous les processus qui ont utilisé le bloc "
"partagé. Après avoir initié la destruction d'un bloc mémoire, le bloc peut "
"ne pas être détruit immédiatement ; ce comportement dépend de la plate-"
"forme. Accéder aux données d'un bloc de mémoire partagée après l'appel à "
"``unlink()`` peut provoquer une erreur mémoire. Notez que le dernier "
"processus à libérer le bloc mémoire de mémoire partagée peut appeler "
"``unlink()`` et :meth:`close()` dans n'importe quel ordre."
#: ../Doc/library/multiprocessing.shared_memory.rst:90
msgid "A memoryview of contents of the shared memory block."
msgstr ""
msgstr "Une *memoryview* du contenu du bloc de mémoire partagée."
#: ../Doc/library/multiprocessing.shared_memory.rst:94
msgid "Read-only access to the unique name of the shared memory block."
msgstr ""
msgstr "Nom unique du bloc de mémoire partagée (lecture seule)."
#: ../Doc/library/multiprocessing.shared_memory.rst:98
msgid "Read-only access to size in bytes of the shared memory block."
msgstr ""
msgstr "Taille en octets du bloc de mémoire partagée (lecture seule)."
#: ../Doc/library/multiprocessing.shared_memory.rst:101
msgid ""
"The following example demonstrates low-level use of :class:`SharedMemory` "
"instances::"
msgstr ""
"L'exemple qui suit montre un exemple d'utilisation bas niveau d'instances "
"de :class:`SharedMemory` :"
#: ../Doc/library/multiprocessing.shared_memory.rst:127
msgid ""
@ -136,12 +194,17 @@ msgid ""
"`SharedMemory` class with `NumPy arrays <https://www.numpy.org/>`_, "
"accessing the same ``numpy.ndarray`` from two distinct Python shells:"
msgstr ""
"Le code qui suit est un exemple d'utilisation réel de la classe :class:"
"`SharedMemory` avec des `tableaux NumPy <https://www.numpy.org/>`_ qui "
"accèdent au même ``numpy.ndarray`` depuis deux invites Python différentes :"
#: ../Doc/library/multiprocessing.shared_memory.rst:181
msgid ""
"A subclass of :class:`~multiprocessing.managers.BaseManager` which can be "
"used for the management of shared memory blocks across processes."
msgstr ""
"Une sous-classe de :class:`~multiprocessing.managers.BaseManager` pour gérer "
"des blocs de mémoire partagée entre processus."
#: ../Doc/library/multiprocessing.shared_memory.rst:184
msgid ""
@ -156,6 +219,16 @@ msgid ""
"instances through a ``SharedMemoryManager``, we avoid the need to manually "
"track and trigger the freeing of shared memory resources."
msgstr ""
"Un appel à :meth:`~multiprocessing.managers.BaseManager.start` depuis une "
"instance :class:`SharedMemoryManager` lance un nouveau processus dont le "
"seul but est de gérer le cycle de vie des blocs mémoires qu'il a créés. La "
"méthode :meth:`~multiprocessing.managers.BaseManager.shutdown()` de "
"l'instance déclenche la libération de tous les blocs mémoires gérés par ce "
"processus. Elle appelle :meth:`SharedMemory.unlink()` sur tous les objets :"
"class:`SharedMemory` gérés par ce processus et l'arrête ensuite. Créer des "
"instances de ``SharedMemory`` par l'intermédiaire d'un "
"``SharedMemoryManager`` évite d'avoir à gérer et à libérer manuellement les "
"ressources mémoire partagées."
#: ../Doc/library/multiprocessing.shared_memory.rst:196
msgid ""
@ -163,6 +236,9 @@ msgid ""
"instances and for creating a list-like object (:class:`ShareableList`) "
"backed by shared memory."
msgstr ""
"Cette classe fournit des méthodes pour créer et renvoyer des instances de :"
"class:`SharedMemory` et pour créer des objets compatibles liste (:class:"
"`ShareableList`) basés sur la mémoire partagée."
#: ../Doc/library/multiprocessing.shared_memory.rst:200
msgid ""
@ -171,24 +247,34 @@ msgid ""
"may be used to connect to an existing ``SharedMemoryManager`` service from "
"other processes."
msgstr ""
"Référez-vous à :class:`multiprocessing.managers.BaseManager` pour la "
"description des arguments optionnels hérités *address* et *authkey*, et "
"comment ceux-ci doivent être utilisés pour enregistrer un service de "
"``SharedMemoryManager`` depuis un autre processus."
#: ../Doc/library/multiprocessing.shared_memory.rst:207
msgid ""
"Create and return a new :class:`SharedMemory` object with the specified "
"``size`` in bytes."
msgstr ""
"Crée et renvoie un nouvel objet :class:`SharedMemory` de taille ``size`` "
"octets."
#: ../Doc/library/multiprocessing.shared_memory.rst:212
msgid ""
"Create and return a new :class:`ShareableList` object, initialized by the "
"values from the input ``sequence``."
msgstr ""
"Crée et renvoie un nouvel objet :class:`ShareableList`, initialisé à partir "
"des valeurs de la ``sequence`` en entrée."
#: ../Doc/library/multiprocessing.shared_memory.rst:216
msgid ""
"The following example demonstrates the basic mechanisms of a :class:"
"`SharedMemoryManager`:"
msgstr ""
"L'exemple qui suit illustre les mécanismes de base de :class:"
"`SharedMemoryManager` :"
#: ../Doc/library/multiprocessing.shared_memory.rst:234
msgid ""
@ -197,6 +283,10 @@ msgid ""
"to ensure that all shared memory blocks are released after they are no "
"longer needed:"
msgstr ""
"L'exemple suivant montre comment utiliser un objet :class:"
"`SharedMemoryManager` avec l'instruction :keyword:`with` pour être sûr que "
"tous les blocs mémoire sont libérés quand ils ne sont plus nécessaires. "
"C'est souvent plus pratique que l'exemple précédent :"
#: ../Doc/library/multiprocessing.shared_memory.rst:253
msgid ""
@ -204,6 +294,10 @@ msgid ""
"the shared memory blocks created using that manager are all released when "
"the :keyword:`with` statement's code block finishes execution."
msgstr ""
"Lors de l'utilisation d'un :class:`SharedMemoryManager` dans une "
"instruction :keyword:`with`, les blocs de mémoire partagée créés par ce "
"gestionnaire sont tous libérés quand les instructions à l'intérieur du bloc :"
"keyword:`with` ont été exécutées."
#: ../Doc/library/multiprocessing.shared_memory.rst:260
msgid ""
@ -216,6 +310,14 @@ msgid ""
"support the dynamic creation of new :class:`ShareableList` instances via "
"slicing."
msgstr ""
"Construit un objet muable compatible avec le type liste dont toutes les "
"valeurs sont stockées dans un bloc de mémoire partagée. Ceci réduit le type "
"les valeurs pouvant être stockées aux types natifs ``int``, ``float``, "
"``bool``, ``str`` (de moins de 10 Mo chacune), ``bytes`` (de moins de 10 Mo "
"chacun) et ``None``. Une autre différence majeure avec une ``list`` native "
"réside dans le fait qu'il est impossible de changer la taille (c.-à-d. pas "
"d'ajout en fin de liste, ni d'insertion etc.) et qu'il n'est pas possible de "
"créer de nouvelles instances de :class:`ShareableList` par découpage."
#: ../Doc/library/multiprocessing.shared_memory.rst:269
msgid ""
@ -223,6 +325,9 @@ msgid ""
"to ``None`` to instead attach to an already existing ``ShareableList`` by "
"its unique shared memory name."
msgstr ""
"*sequence* sert à créer une nouvelle ``ShareableList`` avec des valeurs. "
"Mettez-le à ``None`` pour enregistrer une ``ShareableList`` déjà existante, "
"en renseignant son nom unique."
#: ../Doc/library/multiprocessing.shared_memory.rst:273
msgid ""
@ -231,32 +336,43 @@ msgid ""
"``ShareableList``, specify its shared memory block's unique name while "
"leaving ``sequence`` set to ``None``."
msgstr ""
"*name* est le nom unique de la mémoire partagée demandée, tel que décrit "
"dans la définition de :class:`SharedMemory`. Pour enregistrer une "
"``ShareableList`` déjà existante, renseignez le nom unique du bloc de "
"mémoire partagée et laissez ``sequence`` à ``None``."
#: ../Doc/library/multiprocessing.shared_memory.rst:280
msgid "Returns the number of occurrences of ``value``."
msgstr ""
msgstr "Renvoie le nombre doccurrences de ``value``."
#: ../Doc/library/multiprocessing.shared_memory.rst:284
msgid ""
"Returns first index position of ``value``. Raises :exc:`ValueError` if "
"``value`` is not present."
msgstr ""
"Renvoie l'indice de la première occurrence de ``value``. Lève une :exc:"
"`ValueError` si ``value`` n'est pas présent."
#: ../Doc/library/multiprocessing.shared_memory.rst:289
msgid ""
"Read-only attribute containing the :mod:`struct` packing format used by all "
"currently stored values."
msgstr ""
"Attribut en lecture seule contenant le format dagrégation :mod:`struct` "
"utilisé par les valeurs déjà stockées."
#: ../Doc/library/multiprocessing.shared_memory.rst:294
msgid "The :class:`SharedMemory` instance where the values are stored."
msgstr ""
"Instance de :class:`SharedMemory` dans laquelle les valeurs sont stockées."
#: ../Doc/library/multiprocessing.shared_memory.rst:297
msgid ""
"The following example demonstrates basic use of a :class:`ShareableList` "
"instance:"
msgstr ""
"L'exemple qui suit illustre un cas d'usage de base d'une instance de :class:"
"`ShareableList` :"
#: ../Doc/library/multiprocessing.shared_memory.rst:330
msgid ""
@ -264,3 +380,6 @@ msgid ""
"same :class:`ShareableList` by supplying the name of the shared memory block "
"behind it:"
msgstr ""
"L'exemple ci-dessous montre comment un, deux ou un grand nombre de processus "
"peuvent accéder à une :class:`ShareableList` commune à partir du nom du bloc "
"mémoire partagé sous-jacent :"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-05-27 15:06+0200\n"
"PO-Revision-Date: 2020-05-30 23:36+0200\n"
"Last-Translator: Mathieu Dupuy <deronnax@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -115,7 +115,7 @@ msgid ""
"dependent version information."
msgstr ""
":attr:`sys.platform` a une granularité plus fine. :func:`os.uname` donne des "
"informations de version dépendantes de système."
"informations relatives à la version du système."
#: ../Doc/library/os.rst:58
msgid ""
@ -140,11 +140,11 @@ msgid ""
"`sys.getfilesystemencoding`)."
msgstr ""
"En Python, les noms de fichiers, les arguments en ligne de commandes, et les "
"variables d'environnement sont représentées en utilisant le type *string*. "
"Sur certains systèmes, décoder ces chaînes de caractères depuis et vers des "
"*bytes* est nécessaire avant de les passer au système d'exploitation. Python "
"utilise l'encodage du système de fichiers pour réaliser ces conversions "
"(voir :func:`sys.getfilesystemencoding`)."
"variables d'environnement sont des chaînes de caractères. Sur certains "
"systèmes, décoder ces chaînes de caractères depuis et vers des *bytes* est "
"nécessaire avant de les passer au système d'exploitation. Python utilise "
"l'encodage du système de fichiers pour réaliser ces conversions (voir :func:"
"`sys.getfilesystemencoding`)."
#: ../Doc/library/os.rst:74
msgid ""
@ -155,11 +155,10 @@ msgid ""
"original byte on encoding."
msgstr ""
"Sur certains systèmes, les conversions utilisant l'encodage du système de "
"fichiers peut échouer. Dans ce cas, Python utilise le :ref:`surrogateescape "
"encoding error handler <surrogateescape>` (le gestionnaire d'erreurs "
"d'encodage *surrogateescape*), ce qui veut dire que les bytes indécodables "
"sont replacés par un caractère Unicode U+DCxx au décodage, et ceux-ci sont "
"retraduits en le bon octet à l'encodage."
"fichiers peut échouer. Dans ce cas, Python utilise le :ref:`le gestionnaire "
"d'erreurs d'encodage *surrogateescape* <surrogateescape>`, ce qui veut dire "
"que les octets indécodables sont remplacés par un code de substitution lors "
"du décodage, qui est reconverti vers l'octet original lors de l'encodage."
#: ../Doc/library/os.rst:82
msgid ""
@ -170,7 +169,7 @@ msgstr ""
"L'encodage du système de fichiers doit garantir de pouvoir décoder "
"correctement tous les octets en dessous de 128. Si l'encodage du système de "
"fichiers ne peut garantir cela, les fonctions de l'API peuvent lever une "
"UnicodeError."
"``UnicodeError``."
#: ../Doc/library/os.rst:90
msgid "Process Parameters"
@ -254,8 +253,8 @@ msgid ""
"``environ['HOME']`` is the pathname of your home directory (on some "
"platforms), and is equivalent to ``getenv(\"HOME\")`` in C."
msgstr ""
"Un objet :term:`mapping` représentant les variables d'environnement. Par "
"exemple ``environ['HOME']`` est le chemin vers votre répertoire daccueil "
"Objet :term:`mapping` représentant les variables d'environnement. Par "
"exemple ``environ['HOME']`` est le chemin vers votre répertoire personnel "
"(sur certaines plate-formes), et est équivalent à ``getenv(\"HOME\")`` en C."
#: ../Doc/library/os.rst:109
@ -339,10 +338,10 @@ msgid ""
"synchronized (modify :data:`environb` updates :data:`environ`, and vice "
"versa)."
msgstr ""
"Une version en *bytes* de :data:`environ` : un :term:`mapping` d'objets "
"représentant l'environnement par des chaînes de *bytes*. :data:`environ` et :"
"data:`environb` sont synchronisés (modifier :data:`environ` modifie :data:"
"`environb`, et vice-versa)."
"Version de :data:`environ` utilisant des *bytes* : un :term:`mapping` "
"d'objets représentant l'environnement par des chaînes de *bytes*. :data:"
"`environ` et :data:`environb` sont synchronisés (modifier :data:`environ` "
"modifie :data:`environb`, et vice-versa)."
#: ../Doc/library/os.rst:150
msgid ""
@ -362,7 +361,7 @@ msgid ""
"encoding with ``'surrogateescape'`` error handler, or ``'strict'`` on "
"Windows; return :class:`bytes` unchanged."
msgstr ""
"Encode le :term:`chemin-compatible <path-like object>` *filename* vers "
"Encode *filename* (:term:`chemin-compatible <path-like object>`) vers "
"l'encodage du système de fichiers avec une gestion d'erreurs "
"``'surrogateescape'``, ou ``'strict'`` sous Windows ; renvoie un objet :"
"class:`bytes` inchangé."
@ -396,7 +395,8 @@ msgstr ":func:`fsencode` est la fonction inverse."
#: ../Doc/library/os.rst:196
msgid "Return the file system representation of the path."
msgstr "Renvoie la représentation par le système de fichiers du chemin."
msgstr ""
"Renvoie une représentation du chemin utilisable par le système de fichiers."
#: ../Doc/library/os.rst:198
msgid ""
@ -415,12 +415,13 @@ msgid ""
"An :term:`abstract base class` for objects representing a file system path, "
"e.g. :class:`pathlib.PurePath`."
msgstr ""
"Une :term:`abstract base class` pour les objets représentant un chemin du "
":term:`Classe de base abstraite` pour les objets représentant un chemin du "
"système de fichiers, comme :class:`pathlib.PurePath`."
#: ../Doc/library/os.rst:215
msgid "Return the file system path representation of the object."
msgstr "Renvoie la représentation du chemin du système de fichiers de l'objet."
msgstr ""
"Renvoie une représentation de l'objet utilisable par le système de fichiers."
#: ../Doc/library/os.rst:217
msgid ""
@ -436,8 +437,8 @@ msgid ""
"*default* if it doesn't. *key*, *default* and the result are str."
msgstr ""
"Renvoie la valeur de la variable d'environnement *key* si elle existe, ou "
"*default* si elle n'existe pas. *key*, *default*, et la valeur de retour "
"sont des *str*."
"*default* si elle n'existe pas. *key*, *default*, et la valeur renvoyée sont "
"des *str*."
#: ../Doc/library/os.rst:226
msgid ""
@ -452,7 +453,7 @@ msgstr ""
#: ../Doc/library/os.rst:230 ../Doc/library/os.rst:443
msgid ":ref:`Availability <availability>`: most flavors of Unix, Windows."
msgstr ""
":ref:`Disponibilité <availability>` : la plupart des dérivés Unix, Windows."
":ref:`Disponibilité <availability>` : la plupart des dérivés d'Unix, Windows."
#: ../Doc/library/os.rst:235
msgid ""
@ -482,10 +483,11 @@ msgid ""
"specified, should be an environment variable dictionary to lookup the PATH "
"in. By default, when *env* is ``None``, :data:`environ` is used."
msgstr ""
"Renvoie la liste des dossier qui seront parcouru pour trouver un exécutable, "
"similaire à un shell lorsque il lance un processus. *env*, quand spécifié, "
"doit être un dictionnaire de variable d'environnement afin d'y rechercher "
"le PATH. Par défaut quand *env* est ``None``, :data:`environ` est utilisé."
"Renvoie la liste des dossiers qui seront parcourus pour trouver un "
"exécutable, similaire à un shell lorsque il lance un processus. *env*, quand "
"spécifié, doit être un dictionnaire de variable d'environnement afin d'y "
"rechercher le PATH. Par défaut quand *env* est ``None``, :data:`environ` est "
"utilisé."
#: ../Doc/library/os.rst:259
msgid ""
@ -541,7 +543,7 @@ msgstr ""
"cible de déploiement de :const:`10.5` ou moins, :func:`getgroups` renverrait "
"la liste des identifiants de groupes effectifs associés au processus courant "
"de l'utilisateur ; le nombre d'éléments de cette liste est limité par le "
"système, typiquement 16, et peut être modifié par des appels à :func:"
"système, typiquement 16, et peut être modifiée par des appels à :func:"
"`setgroups` si les privilèges ont été convenablement assignés. Si compilé "
"avec une cible de déploiement supérieure à :const:`10.5`, la fonction :func:"
"`getgroups` renvoie la liste des accès du groupe actuel pour l'utilisateur "
@ -564,7 +566,7 @@ msgstr ""
"`getpass.getuser` puisque cette fonction consulte les variables "
"d'environnement :envvar:`LOGNAME` et :envvar:`USERNAME` pour savoir qui est "
"l'utilisateur, et se replie finalement sur ``pwd.getpwduid(os.getuid())[0]`` "
"pour avoir le nom de connexion lié à l'identifiant de l'utilisateur courant."
"pour avoir le nom lié à l'identifiant de l'utilisateur courant."
#: ../Doc/library/os.rst:326 ../Doc/library/os.rst:361
#: ../Doc/library/os.rst:853 ../Doc/library/os.rst:865
@ -620,7 +622,7 @@ msgid ""
"user ID of the calling process."
msgstr ""
"Récupère la priorité d'ordonnancement des programmes. La valeur *which* est "
"une des constantes suivantes : :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, "
"une des constantes suivantes : :const:`PRIO_PROCESS`, :const:`PRIO_PGRP`, "
"ou :const:`PRIO_USER`, et la valeur *who* est interprétée par rapport à "
"*which* (un id de processus pour :const:`PRIO_PROCESS`, un id de groupe de "
"processus pour :const:`PRIO_PGRP`, et un id d'utilisateur pour :const:"
@ -639,7 +641,7 @@ msgid ""
"Return a tuple (ruid, euid, suid) denoting the current process's real, "
"effective, and saved user ids."
msgstr ""
"Renvoie un *tuple* (*ruid*, *euid*, *suid*) dénotant les identifiants de "
"Renvoie un triplet (*ruid*, *euid*, *suid*) dénotant les identifiants de "
"l'utilisateur réel, effectif et sauvé du processus actuel."
#: ../Doc/library/os.rst:406
@ -896,7 +898,7 @@ msgid ""
msgstr ""
"Certains systèmes tronquent :attr:`nodename` à 8 caractères ou à la "
"composante dominante. Un meilleur moyen de récupérer le nom de l'hôte est :"
"func:`socket.gethostname` ou encore ``socket.gethostbyaddre(socket."
"func:`socket.gethostname` ou encore ``socket.gethostbyaddr(socket."
"gethostname())``."
#: ../Doc/library/os.rst:629
@ -988,8 +990,8 @@ msgstr ""
"fichier qui a été ouvert par le processus courant. Par exemple, l'entrée "
"standard est habituellement le descripteur de fichier 0, la sortie standard "
"est 1, et le flux standard d'erreur est 2. Les autres fichiers ouverts par "
"un processus vont se voir assigner 3, 4, 5, etc. Le nom \"descripteur de "
"fichier\" est légèrement trompeur : sur les plate-formes Unix, les "
"un processus vont se voir assigner 3, 4, 5, etc. Le nom « descripteur de "
"fichier » est légèrement trompeur : sur les plate-formes Unix, les "
"connecteurs (*socket* en anglais) et les tubes (*pipe* en anglais) sont "
"également référencés par des descripteurs."
@ -1019,7 +1021,7 @@ msgid ""
msgstr ""
"Cette fonction est destinée aux opérations d'entrées/sorties de bas niveau "
"et doit être appliquée à un descripteur de fichier comme ceux donnés par :"
"func:`os.open` ou :func:`pipe`. Pour fermer un \"fichier objet\" renvoyé par "
"func:`os.open` ou :func:`pipe`. Pour fermer un « fichier objet » renvoyé par "
"la primitive :func:`open`, :func:`popen` ou :func:`fdopen`, il faut utiliser "
"sa méthode :meth:`~io.IOBase.close`."
@ -1760,7 +1762,7 @@ msgid ""
msgstr ""
"Cette fonction est destinée aux E/S bas niveau et doit être appliquée à un "
"descripteur de fichier comme renvoyé par :func:`os.open` ou :func:`pipe`. "
"Pour lire dans un \"fichier objet\" renvoyé par la primitive :func:`open`, :"
"Pour lire dans un « fichier objet » renvoyé par la primitive :func:`open`, :"
"func:`popen` ou :func:`fdopen`, ou par :data:`stdin`, utilisez sa méthode :"
"meth:`~file.read` ou :meth:`~file.readline`."
@ -1905,7 +1907,7 @@ msgid ""
msgstr ""
"Cette fonction est destinée aux entrées-sorties bas niveau et doit être "
"appliquée à un descripteur de fichier comme renvoyé par :func:`os.open` ou :"
"func:`pipe`. Pour écrire dans un \"fichier objet\" renvoyé par la primitive :"
"func:`pipe`. Pour écrire dans un « fichier objet » renvoyé par la primitive :"
"func:`open`, :func:`popen`, ou par :func:`fdopen`, ou par :data:`sys.stdout` "
"ou :data:`sys.stderr`, utilisez sa méthode :meth:`~file.write`."
@ -2024,17 +2026,17 @@ msgstr ""
msgid ""
"Get the \"inheritable\" flag of the specified file descriptor (a boolean)."
msgstr ""
"Récupère le marqueur \"héritable\" (booléen) du descripteur de fichier "
"Récupère le marqueur « héritable » (booléen) du descripteur de fichier "
"spécifié."
#: ../Doc/library/os.rst:1469
msgid "Set the \"inheritable\" flag of the specified file descriptor."
msgstr "Définit le marqueur \"héritable\" du descripteur de fichier spécifié."
msgstr "Définit le marqueur « héritable » du descripteur de fichier spécifié."
#: ../Doc/library/os.rst:1473
msgid "Get the \"inheritable\" flag of the specified handle (a boolean)."
msgstr ""
"Récupère le marqueur \"héritable\" (booléen) de l'identificateur spécifié."
"Récupère le marqueur « héritable » (booléen) de l'identificateur spécifié."
#: ../Doc/library/os.rst:1475 ../Doc/library/os.rst:1481
#: ../Doc/library/os.rst:3311 ../Doc/library/os.rst:3889
@ -2044,7 +2046,7 @@ msgstr ":ref:`Disponibilité <availability>` : Windows."
#: ../Doc/library/os.rst:1479
msgid "Set the \"inheritable\" flag of the specified handle."
msgstr "Définit le marqueur \"héritable\" de l'identificateur spécifié."
msgstr "Définit le marqueur « héritable » de l'identificateur spécifié."
#: ../Doc/library/os.rst:1487
msgid "Files and Directories"
@ -2750,7 +2752,7 @@ msgid ""
msgstr ""
"Fonction de création récursive de répertoires. Comme :func:`mkdir` mais crée "
"tous les répertoires de niveau intermédiaire nécessaires pour contenir le "
"répertoire \"feuille\"."
"répertoire « feuille »."
#: ../Doc/library/os.rst:1934
msgid ""
@ -2781,7 +2783,7 @@ msgid ""
"include :data:`pardir` (eg. \"..\" on UNIX systems)."
msgstr ""
"Un appel à :func:`makedirs` est confus si les éléments du chemin à créer "
"contiennent :data:`pardir` (par exemple, \"..\" sur les systèmes UNIX)."
"contiennent :data:`pardir` (par exemple, ``\"..\"`` sur les systèmes UNIX)."
#: ../Doc/library/os.rst:1948
msgid "This function handles UNC paths correctly."
@ -2833,7 +2835,7 @@ msgstr ""
"Les FIFOs sont des tubes qui peuvent être accédés comme des fichiers "
"normaux. Les FIFOs existent jusqu'à ce qu'ils soient retirés (par exemple, à "
"l'aide de :func:`os.unlink`). Généralement, les FIFOs sont utilisé comme "
"communication entre des processus de type \"client\" et \"serveur\" : le "
"communication entre des processus de type « client » et « serveur » : le "
"serveur ouvre le FIFO pour le lire, et le client l'ouvre pour écrire dedans. "
"Notez que :func:`mkfifo` n'ouvre pas le FIFO — il crée juste un point de "
"rendez-vous."
@ -3826,9 +3828,9 @@ msgid ""
"\"Preferred\" blocksize for efficient file system I/O. Writing to a file in "
"smaller chunks may cause an inefficient read-modify-rewrite."
msgstr ""
"Taille de bloc \"préférée\" pour des E/S efficaces avec le système de "
"fichiers. Écrire dans un fichier avec des blocs plus petits peut causer des "
"modifications (lecture-écriture-réécriture) inefficaces."
"Taille de bloc « préférée » pour des entrées-sorties efficaces avec le "
"système de fichiers. Écrire dans un fichier avec des blocs plus petits peut "
"causer des modifications (lecture-écriture-réécriture) inefficaces."
#: ../Doc/library/os.rst:2621
msgid "Type of device if an inode device."
@ -4739,7 +4741,7 @@ msgstr ""
"d'arguments pour le nouveau programme chargé dans le processus. Dans tous "
"les cas, le premier de ces arguments est passé au nouveau programme comme "
"son propre nom plutôt que comme un argument qu'un utilisateur peut avoir "
"tapé en ligne de commande. Pour les programmeurs C, c'est l'argument "
"tapé en ligne de commande. Pour les développeurs C, c'est l'argument "
"``argv[0]`` qui est passé à la fonction :c:func:`main` du programme. Par "
"exemple, ``os.execv('/bin/echo/', ['foo', 'bar'])`` affichera uniquement "
"``bar`` sur la sortie standard ; ``foo`` semblera être ignoré."
@ -4840,12 +4842,12 @@ msgid ""
"process should start with the name of the command being run, but this is not "
"enforced."
msgstr ""
"Les variantes \"l\" et \"v\" des fonctions :func:`exec\\* <execl>` différent "
"Les variantes « l » et « v » des fonctions :func:`exec\\* <execl>` différent "
"sur la manière de passer les arguments de ligne de commande. Les variantes "
"\"l\" sont probablement les plus simples à utiliser si le nombre de "
"« l » sont probablement les plus simples à utiliser si le nombre de "
"paramètres est fixé lors de l'écriture du code. Les paramètres individuels "
"deviennent alors des paramètres additionnels aux fonctions :func:`exec\\*`. "
"Les variantes \"v\" sont préférables quand le nombre de paramètres est "
"Les variantes « v » sont préférables quand le nombre de paramètres est "
"variable et qu'ils sont passés dans une liste ou un *tuple* dans le "
"paramètre *args*. Dans tous les cas, les arguments aux processus fils "
"devraient commencer avec le nom de la commande à lancer, mais ce n'est pas "
@ -4863,7 +4865,7 @@ msgid ""
"variable to locate the executable; *path* must contain an appropriate "
"absolute or relative path."
msgstr ""
"Les variantes qui incluent un \"p\"vers la fin (:func:`execlp`, :func:"
"Les variantes qui incluent un « p » vers la fin (:func:`execlp`, :func:"
"`execlpe`, :func:`execvp`, et :func:`execvpe`) utiliseront la variable "
"d'environnement :envvar:`PATH` pour localiser le programme *file*. Quand "
"l'environnement est remplacé (en utilisant une des variantes :func:`exec\\*e "
@ -4884,7 +4886,7 @@ msgid ""
"process to inherit the environment of the current process."
msgstr ""
"Pour les fonctions :func:`execle`, :func:`execlpe`, :func:`execve`, et :func:"
"`execvpe` (notez qu'elle finissent toutes par \"e\"), le paramètre *env* "
"`execvpe` (notez qu'elle finissent toutes par « e »), le paramètre *env* "
"doit être un *mapping* qui est utilisé pour définir les variables "
"d'environnement du nouveau processus (celles-ci sont utilisées à la place de "
"l'environnement du nouveau processus). Les fonctions :func:`execl`, :func:"
@ -5063,8 +5065,8 @@ msgstr "Code de sortie signifiant qu'une erreur de configuration est apparue."
#: ../Doc/library/os.rst:3529
msgid "Exit code that means something like \"an entry was not found\"."
msgstr ""
"Code de sortie signifiant quelque chose comme \"une entrée n'a pas été "
"trouvée\"."
"Code de sortie signifiant quelque chose comme « une entrée n'a pas été "
"trouvée »."
#: ../Doc/library/os.rst:3536
msgid ""
@ -5489,12 +5491,12 @@ msgid ""
"in a list or tuple as the *args* parameter. In either case, the arguments "
"to the child process must start with the name of the command being run."
msgstr ""
"Les variantes \"l\" et \"v\" des fonctions :func:`spawn\\* <spawnl>` "
"Les variantes « l » et « v » des fonctions :func:`spawn\\* <spawnl>` "
"diffèrent sur la manière de passer les arguments de ligne de commande. Les "
"variantes \"l\" sont probablement les plus simples à utiliser si le nombre "
"variantes « l » sont probablement les plus simples à utiliser si le nombre "
"de paramètres est fixé lors de l'écriture du code. Les paramètres "
"individuels deviennent alors des paramètres additionnels aux fonctions :func:"
"`spawn\\*`. Les variantes \"v\" sont préférables quand le nombre de "
"`spawn\\*`. Les variantes « v » sont préférables quand le nombre de "
"paramètres est variable et qu'ils sont passés dans une liste ou un *tuple* "
"dans le paramètre *args*. Dans tous les cas, les arguments aux processus "
"fils devraient commencer avec le nom de la commande à lancer, mais ce n'est "
@ -5512,7 +5514,7 @@ msgid ""
"the :envvar:`PATH` variable to locate the executable; *path* must contain an "
"appropriate absolute or relative path."
msgstr ""
"Les variantes qui incluent un \"p\"vers la fin (:func:`spawnlp`, :func:"
"Les variantes qui incluent un « p » vers la fin (:func:`spawnlp`, :func:"
"`spawnlpe`, :func:`spawnvp`, et :func:`spawnvpe`) utiliseront la variable "
"d'environnement :envvar:`PATH` pour localiser le programme *file*. Quand "
"l'environnement est remplacé (en utilisant une des variantes :func:`spawn"
@ -5535,7 +5537,7 @@ msgid ""
"values will cause the function to fail, with a return value of ``127``."
msgstr ""
"Pour les fonctions :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, et :"
"func:`spawnvpe` (notez qu'elles finissent toutes par \"e\"), le paramètre "
"func:`spawnvpe` (notez qu'elles finissent toutes par « e »), le paramètre "
"*env* doit être un *mapping* qui est utilisé pour définir les variables "
"d'environnement du nouveau processus (celles-ci sont utilisées à la place de "
"l'environnement du nouveau processus). Les fonctions :func:`spawnl`, :func:"
@ -5640,7 +5642,7 @@ msgid ""
"Microsoft are ``'print'`` and ``'edit'`` (to be used on files) as well as "
"``'explore'`` and ``'find'`` (to be used on directories)."
msgstr ""
"Quand une autre *operation* est donnée, ce doit être une \"commande-verbe\" "
"Quand une autre *operation* est donnée, ce doit être une « commande-verbe » "
"qui spécifie ce qui devrait être fait avec le fichier. Les verbes habituels "
"documentés par Microsoft sont ``'print'`` et ``'edit'`` (qui doivent être "
"utilisés sur des fichiers) ainsi que ``'explore'`` et ``'find'`` (qui "

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/platform.rst:2
msgid ":mod:`platform` --- Access to underlying platform's identifying data"
msgstr ""
msgstr ":mod:`platform` — Accès aux données sous-jacentes de la plateforme"
#: ../Doc/library/platform.rst:10
msgid "**Source code:** :source:`Lib/platform.py`"
@ -27,16 +27,20 @@ msgid ""
"Specific platforms listed alphabetically, with Linux included in the Unix "
"section."
msgstr ""
"Les spécificités des plateformes sont regroupées dans des sections triées "
"par ordre alphabétique. Linux est inclus dans la section Unix."
#: ../Doc/library/platform.rst:21
msgid "Cross Platform"
msgstr ""
msgstr "Multi-plateforme"
#: ../Doc/library/platform.rst:26
msgid ""
"Queries the given executable (defaults to the Python interpreter binary) for "
"various architecture information."
msgstr ""
"Interroge l'exécutable fourni (par défaut l'interpréteur Python) sur les "
"informations de l'architecture."
#: ../Doc/library/platform.rst:29
msgid ""
@ -44,6 +48,9 @@ msgid ""
"architecture and the linkage format used for the executable. Both values are "
"returned as strings."
msgstr ""
"Renvoie un *n*-uplet de ``(bits, linkage)`` qui contient de l'information "
"sur l'architecture binaire et le format de lien. Les deux valeurs sont des "
"chaînes de caractères."
#: ../Doc/library/platform.rst:33
msgid ""
@ -52,6 +59,11 @@ msgid ""
"``sizeof(long)`` on Python version < 1.5.2) is used as indicator for the "
"supported pointer size."
msgstr ""
"Lorsqu'une valeur ne peut être déterminée, la valeur passée en paramètre est "
"utilisée. Si la valeur passée à *bits* est ``''``, la valeur de "
"``sizeof(pointer)`` (ou ``sizeof(long)`` sur les versions Python antérieures "
"à 1.5.2) est utilisée comme indicateur de la taille de pointeur prise en "
"charge."
#: ../Doc/library/platform.rst:38
msgid ""
@ -60,42 +72,61 @@ msgid ""
"platforms and then only if the executable points to the Python interpreter. "
"Reasonable defaults are used when the above needs are not met."
msgstr ""
"La fonction dépend de la commande :file:`file` du système pour accomplir la "
"tâche. `file` est disponible sur quasiment toutes les plateformes Unix ainsi "
"que sur certaines plateformes hors de la famille Unix et l'exécutable doit "
"pointer vers l'interpréteur Python. Des valeurs par défaut raisonnables sont "
"utilisées lorsque les conditions précédentes ne sont pas atteintes."
#: ../Doc/library/platform.rst:45
msgid ""
"On Mac OS X (and perhaps other platforms), executable files may be universal "
"files containing multiple architectures."
msgstr ""
"Sur Mac OS X (ainsi que d'autres plateformes), les fichiers exécutables "
"peuvent être universels et contenir plusieurs architectures."
#: ../Doc/library/platform.rst:48
msgid ""
"To get at the \"64-bitness\" of the current interpreter, it is more reliable "
"to query the :attr:`sys.maxsize` attribute::"
msgstr ""
"Afin de déterminer si l'interpréteur courant est 64-bit, une méthode plus "
"fiable est d'interroger l'attribut :attr:`sys.maxsize` ::"
#: ../Doc/library/platform.rst:56
msgid ""
"Returns the machine type, e.g. ``'i386'``. An empty string is returned if "
"the value cannot be determined."
msgstr ""
"Renvoie le type de machine. Par exemple, ``'i386'``. Une chaîne de "
"caractères vide est renvoyée si la valeur ne peut être déterminée."
#: ../Doc/library/platform.rst:62
msgid ""
"Returns the computer's network name (may not be fully qualified!). An empty "
"string is returned if the value cannot be determined."
msgstr ""
"Renvoie le nom de l'ordinateur sur le réseau (pas forcément pleinement "
"qualifié). Une chaîne de caractères vide est renvoyée s'il ne peut pas être "
"déterminé."
#: ../Doc/library/platform.rst:68
msgid ""
"Returns a single string identifying the underlying platform with as much "
"useful information as possible."
msgstr ""
"Renvoie une chaîne de caractère identifiant la plateforme avec le plus "
"d'informations possible."
#: ../Doc/library/platform.rst:71
msgid ""
"The output is intended to be *human readable* rather than machine parseable. "
"It may look different on different platforms and this is intended."
msgstr ""
"La valeur renvoyée est destinée à la *lecture humaine* plutôt que "
"l'interprétation machine. Il est possible qu'elle soit différente selon la "
"plateforme et c'est voulu."
#: ../Doc/library/platform.rst:74
msgid ""
@ -104,22 +135,31 @@ msgid ""
"SunOS will be reported as Solaris. The :func:`system_alias` function is "
"used to implement this."
msgstr ""
"Si *aliased* est vrai, la fonction utilisera des alias pour certaines "
"plateformes qui utilisent des noms de système qui diffèrent de leurs noms "
"communs. Par exemple, SunOS sera reconnu comme Solaris. La fonction :func:"
"`system_alias` est utilisée pour l'implémentation."
#: ../Doc/library/platform.rst:79
msgid ""
"Setting *terse* to true causes the function to return only the absolute "
"minimum information needed to identify the platform."
msgstr ""
"Si *terse* est vrai, la fonction ne renverra que l'information nécessaire à "
"l'identification de la plateforme."
#: ../Doc/library/platform.rst:82
msgid ""
"On macOS, the function now uses :func:`mac_ver`, if it returns a non-empty "
"release string, to get the macOS version rather than the darwin version."
msgstr ""
"Sur MacOS, la fonction essaie maintenant d'utiliser la fonction :func:"
"`mac_ver` pour obtenir la version de MacOS plutôt que la version de Darwin : "
"le résultat de `mac_ver` est utilisé si ce n'est pas une chaîne vide."
#: ../Doc/library/platform.rst:90
msgid "Returns the (real) processor name, e.g. ``'amdk6'``."
msgstr ""
msgstr "Renvoie le (vrai) nom du processeur. Par exemple : ``'amdk6'``."
#: ../Doc/library/platform.rst:92
msgid ""
@ -127,64 +167,92 @@ msgid ""
"many platforms do not provide this information or simply return the same "
"value as for :func:`machine`. NetBSD does this."
msgstr ""
"Une chaîne de caractères vide est renvoyée si la valeur ne peut être "
"déterminée. Prenez note que plusieurs plateformes ne fournissent pas cette "
"information ou renvoient la même valeur que la fonction :func:`machine`. "
"NetBSD agit ainsi."
#: ../Doc/library/platform.rst:99
msgid ""
"Returns a tuple ``(buildno, builddate)`` stating the Python build number and "
"date as strings."
msgstr ""
"Renvoie une paire ``(buildno, builddate)`` de chaîne de caractères "
"identifiant la version et la date de compilation de Python."
#: ../Doc/library/platform.rst:105
msgid "Returns a string identifying the compiler used for compiling Python."
msgstr ""
"Renvoie une chaîne de caractères identifiant le compilateur utilisé pour "
"compiler Python."
#: ../Doc/library/platform.rst:110
msgid "Returns a string identifying the Python implementation SCM branch."
msgstr ""
"Renvoie la chaîne de caractères identifiant la branche du gestionnaire de "
"versions de l'implémentation Python."
#: ../Doc/library/platform.rst:115
msgid ""
"Returns a string identifying the Python implementation. Possible return "
"values are: 'CPython', 'IronPython', 'Jython', 'PyPy'."
msgstr ""
"Renvoie une chaîne de caractères identifiant l'implémentation de Python. Des "
"valeurs possibles sont : ``CPython``, ``IronPython``, ``Jython``, ``Pypy``."
#: ../Doc/library/platform.rst:121
msgid "Returns a string identifying the Python implementation SCM revision."
msgstr ""
"Renvoie la chaîne de caractères identifiant la révision du gestionnaire de "
"versions de l'implémentation Python."
#: ../Doc/library/platform.rst:126
msgid "Returns the Python version as string ``'major.minor.patchlevel'``."
msgstr ""
"Renvoie la version de Python comme une chaîne de caractères ``'major.minor."
"patchlevel'``."
#: ../Doc/library/platform.rst:128
msgid ""
"Note that unlike the Python ``sys.version``, the returned value will always "
"include the patchlevel (it defaults to 0)."
msgstr ""
"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur "
"par défaut de 0) à la différence de ``sys.version``."
#: ../Doc/library/platform.rst:134
msgid ""
"Returns the Python version as tuple ``(major, minor, patchlevel)`` of "
"strings."
msgstr ""
"Renvoie la version de Python comme un triplet de chaînes de caractères "
"``(major, minor, patchlevel)``."
#: ../Doc/library/platform.rst:136
msgid ""
"Note that unlike the Python ``sys.version``, the returned value will always "
"include the patchlevel (it defaults to ``'0'``)."
msgstr ""
"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur "
"par défaut de ``'0'``) à la différence de ``sys.version``."
#: ../Doc/library/platform.rst:142
msgid ""
"Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string "
"is returned if the value cannot be determined."
msgstr ""
"Renvoie la version de déploiement du système, par exemple, ``'2.2.0'`` ou "
"``'NT'``. Une chaîne de caractères vide signifie qu'aucune valeur ne peut "
"être déterminée."
#: ../Doc/library/platform.rst:148
msgid ""
"Returns the system/OS name, such as ``'Linux'``, ``'Darwin'``, ``'Java'``, "
"``'Windows'``. An empty string is returned if the value cannot be determined."
msgstr ""
"Renvoie le nom du système d'exploitation, tel que ``'Linux'``, ``'Darwin'``, "
"``'Java'``, ``'Windows'``. Une chaîne de caractères vide est renvoyée si le "
"nom ne peut être déterminé."
#: ../Doc/library/platform.rst:154
msgid ""
@ -192,12 +260,18 @@ msgid ""
"used for some systems. It also does some reordering of the information in "
"some cases where it would otherwise cause confusion."
msgstr ""
"Renvoie ``(system, release, version)`` avec des alias pour les noms communs "
"de certains systèmes. Modifie aussi l'ordre de l'information pour éviter la "
"confusion."
#: ../Doc/library/platform.rst:161
msgid ""
"Returns the system's release version, e.g. ``'#3 on degas'``. An empty "
"string is returned if the value cannot be determined."
msgstr ""
"Renvoie la version de déploiement du système. Par exemple, ``'#3 on "
"degas'``. Une chaîne de caractères vide est renvoyée si aucune valeur ne "
"peut être déterminée."
#: ../Doc/library/platform.rst:167
msgid ""
@ -205,6 +279,9 @@ msgid ""
"containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :"
"attr:`version`, :attr:`machine`, and :attr:`processor`."
msgstr ""
"Interface de *uname* relativement portable. Renvoie un :func:`~collections."
"namedtuple` contenant six attributs : :attr:`system`, :attr:`node`, :attr:"
"`release`, :attr:`version`, :attr:`machine` et :attr:`processor`."
#: ../Doc/library/platform.rst:171
msgid ""
@ -213,10 +290,14 @@ msgid ""
"the first two attributes; :func:`os.uname` names them :attr:`sysname` and :"
"attr:`nodename`."
msgstr ""
"Prenez note qu'il y a un attribut supplémentaire (:attr:`processor`) par "
"rapport à la valeur de retour de :func:`os.uname`. De plus, les deux "
"premiers attributs changent de nom ; ils s'appellent :attr:`sysname` et :"
"attr:`nodename` pour la fonction :func:`os.uname`."
#: ../Doc/library/platform.rst:176
msgid "Entries which cannot be determined are set to ``''``."
msgstr ""
msgstr "Les entrées qui ne peuvent pas être identifiées ont la valeur ``''``."
#: ../Doc/library/platform.rst:178
msgid "Result changed from a tuple to a namedtuple."
@ -224,11 +305,11 @@ msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*."
#: ../Doc/library/platform.rst:183
msgid "Java Platform"
msgstr ""
msgstr "Plateforme Java"
#: ../Doc/library/platform.rst:188
msgid "Version interface for Jython."
msgstr ""
msgstr "Version de l'interface pour Jython."
#: ../Doc/library/platform.rst:190
msgid ""
@ -237,10 +318,15 @@ msgid ""
"``(os_name, os_version, os_arch)``. Values which cannot be determined are "
"set to the defaults given as parameters (which all default to ``''``)."
msgstr ""
"Renvoie un *n*-uplet ``(release, vendor, vminfo, osinfo)``. *vminfo* est un "
"triplet de valeur ``(vm_name, vm_release, vm_vendor)`` et *osinfo* est un "
"triplet de valeur ``(os_name, os_version, os_arch)``. Les valeurs "
"indéterminables ont la valeur des paramètres par défaut (valeur de ``''`` "
"par défaut)."
#: ../Doc/library/platform.rst:197
msgid "Windows Platform"
msgstr ""
msgstr "Plateforme Windows"
#: ../Doc/library/platform.rst:202
msgid ""
@ -248,6 +334,10 @@ msgid ""
"tuple ``(release, version, csd, ptype)`` referring to OS release, version "
"number, CSD level (service pack) and OS type (multi/single processor)."
msgstr ""
"Interroge le registre Windows pour de l'information supplémentaire et "
"renvoie un triplet de ``(release, version, csd, ptype)`` faisant référence "
"au numéro de version du SE, le numéro de version, le niveau de CSD (Service "
"Pack) et le type de SE (monoprocesseur ou multiprocesseur)."
#: ../Doc/library/platform.rst:206
msgid ""
@ -257,6 +347,11 @@ msgid ""
"also state *'Checked'* which means the OS version uses debugging code, i.e. "
"code that checks arguments, ranges, etc."
msgstr ""
"Astuce : *ptype* est ``'Uniprocessor Free'`` sur des machines NT ayant qu'un "
"seul processeur et ``'Multiprocessor Free'`` sur des machines ayant "
"plusieurs processeurs. La composante *'Free'* fait référence à l'absence de "
"code de débogage dans le SE. Au contraire, *'Checked'* indique que le SE "
"utilise du code de débogage pour valider les paramètres, etc."
#: ../Doc/library/platform.rst:214
msgid ""
@ -271,16 +366,21 @@ msgid ""
"include but are not limited to ``'Enterprise'``, ``'IoTUAP'``, "
"``'ServerStandard'``, and ``'nanoserver'``."
msgstr ""
"Renvoie une chaîne de caractères représentant l'édition courante de Windows. "
"Des exemples de valeurs possibles sont : ``'Enterprise'``, ``'IoTUAP'``, "
"``'ServerStandard'`` et ``'nanoserver'``."
#: ../Doc/library/platform.rst:229
msgid ""
"Return ``True`` if the Windows edition returned by :func:`win32_edition` is "
"recognized as an IoT edition."
msgstr ""
"Renvoie ``True`` si l'édition de Windows renvoyée par la fonction :func:"
"`win32_edition` est reconnue comme une édition IoT."
#: ../Doc/library/platform.rst:236
msgid "Mac OS Platform"
msgstr ""
msgstr "Plateforme Mac OS"
#: ../Doc/library/platform.rst:241
msgid ""
@ -288,16 +388,21 @@ msgid ""
"versioninfo, machine)`` with *versioninfo* being a tuple ``(version, "
"dev_stage, non_release_version)``."
msgstr ""
"Renvoie les informations de version de Mac OS avec un triplet de ``(release, "
"versioninfo, machine)``. *versioninfo* est un triplet de ``(version, "
"dev_stage, non_release_version)``."
#: ../Doc/library/platform.rst:245
msgid ""
"Entries which cannot be determined are set to ``''``. All tuple entries are "
"strings."
msgstr ""
"Les entrées qui ne peuvent pas être identifiées auront la valeur ``''``. Les "
"membres du *n*-uplet sont tous des chaînes de caractères."
#: ../Doc/library/platform.rst:250
msgid "Unix Platforms"
msgstr ""
msgstr "Plateformes Unix"
#: ../Doc/library/platform.rst:254
msgid ""
@ -306,6 +411,10 @@ msgid ""
"``(lib, version)`` which default to the given parameters in case the lookup "
"fails."
msgstr ""
"Tente d'identifier la version de la bibliothèque standard C à laquelle le "
"fichier exécutable (par défaut l'interpréteur Python) est lié. Renvoie une "
"paire de chaînes de caractères ``(lib, version)``. Les valeurs passées en "
"paramètre seront retournées si la recherche échoue."
#: ../Doc/library/platform.rst:258
msgid ""
@ -313,7 +422,11 @@ msgid ""
"versions add symbols to the executable is probably only usable for "
"executables compiled using :program:`gcc`."
msgstr ""
"Prenez note que cette fonction a une connaissance profonde des méthodes "
"utilisées par les versions de la bibliothèque standard C pour ajouter des "
"symboles au fichier exécutable. Elle n'est probablement utilisable qu'avec "
"des exécutables compilés avec :program:`gcc`."
#: ../Doc/library/platform.rst:262
msgid "The file is read and scanned in chunks of *chunksize* bytes."
msgstr ""
msgstr "Le fichier est lu en blocs de *chunksize* octets."

View File

@ -16,7 +16,7 @@ msgstr ""
#: ../Doc/library/py_compile.rst:2
msgid ":mod:`py_compile` --- Compile Python source files"
msgstr ""
msgstr ":mod:`py_compile` — Compilation de sources Python"
#: ../Doc/library/py_compile.rst:10
msgid "**Source code:** :source:`Lib/py_compile.py`"
@ -28,6 +28,9 @@ msgid ""
"file from a source file, and another function used when the module source "
"file is invoked as a script."
msgstr ""
"Le module :mod:`py_compile` définit une fonction principale qui génère un "
"fichier de code intermédiaire à partir d'un fichier source. Il exporte "
"également la fonction qu'il exécute quand il est lancé en tant que script."
#: ../Doc/library/py_compile.rst:20
msgid ""
@ -35,11 +38,15 @@ msgid ""
"for shared use, especially if some of the users may not have permission to "
"write the byte-code cache files in the directory containing the source code."
msgstr ""
"Bien que ce module ne soit pas d'usage fréquent, il peut servir lors de "
"l'installation de bibliothèques partagées, notamment dans le cas où tous les "
"utilisateurs n'ont pas les privilèges d'écriture dans l'emplacement "
"d'installation."
#: ../Doc/library/py_compile.rst:27
msgid ""
"Exception raised when an error occurs while attempting to compile the file."
msgstr ""
msgstr "Exception levée quand une erreur se produit à la compilation."
#: ../Doc/library/py_compile.rst:32
msgid ""
@ -65,6 +72,13 @@ msgid ""
"`PyCompileError` is raised instead. However if *quiet* is 2, no message is "
"written, and *doraise* has no effect."
msgstr ""
"Plus précisément, ce sont les arguments *doraise* et *quiet* qui déterminent "
"la stratégie de gestion des erreurs. En effet, si *quiet* vaut 0 ou 1, et "
"*doraise* est faux, le comportement par défaut s'applique : un message "
"d'erreur est affiché dans ``sys.stderr``, et la fonction renvoie ``None`` au "
"lieu d'un chemin. Au contraire, si *doraise* est vrai, une exception :exc:"
"`PyCompileError` est levée, sauf si *quiet* vaut 2. Dans ce dernier cas, "
"aucun message n'est émis, et *doraise* reste sans effet."
#: ../Doc/library/py_compile.rst:52
msgid ""
@ -75,6 +89,14 @@ msgid ""
"a side-effect of import using file renaming to place the final byte-compiled "
"file into place to prevent concurrent file writing issues."
msgstr ""
"Si le chemin de destination, explicité par *cfile* ou choisi "
"automatiquement, est un lien symbolique, ou n'est pas un véritable fichier, "
"une exception de type :exc:`FileExistsError` est levée. Ceci, dans le but de "
"vous avertir que le système d'importation changera ces chemins en fichiers "
"s'il est autorisé à y écrire des fichiers de code intermédiaire. En effet, "
"les importations passent par un renommage final du fichier de code "
"intermédiaire vers sa destination, afin d'éviter les problèmes liés à "
"l'écriture simultanée d'un même fichier par plusieurs processus."
#: ../Doc/library/py_compile.rst:59
msgid ""
@ -82,6 +104,10 @@ msgid ""
"func:`compile` function. The default of ``-1`` selects the optimization "
"level of the current interpreter."
msgstr ""
"*optimize* règle le niveau d'optimisation. Ce paramètre est passé "
"directement à la fonction native :func:`compile`. Avec la valeur par défaut "
"de ``-1``, le code intermédiaire hérite du niveau d'optimisation de "
"l'interpréteur courant."
#: ../Doc/library/py_compile.rst:63
msgid ""
@ -91,6 +117,11 @@ msgid ""
"envvar:`SOURCE_DATE_EPOCH` environment variable is set, otherwise the "
"default is :attr:`PycInvalidationMode.TIMESTAMP`."
msgstr ""
"*invalidation_mode* précise la manière dont le code intermédiaire produit "
"est invalidé à son exécution. Il doit être un membre de l'énumération :class:"
"`PycInvalidationMode`. La valeur par défaut est :attr:`PycInvalidationMode."
"TIMESTAMP`. Elle passe toutefois à :attr:`PycInvalidationMode.CHECKED_HASH` "
"si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est définie."
#: ../Doc/library/py_compile.rst:69
msgid ""
@ -98,6 +129,10 @@ msgid ""
"default was *file* + ``'c'`` (``'o'`` if optimization was enabled). Also "
"added the *optimize* parameter."
msgstr ""
"la méthode de choix de destination a changé au profit de celle décrite dans "
"la :pep:`3147`. Auparavant, le nom du fichier de code intermédiaire était "
"*file* + ``'c'`` (ou ``'o'`` lorsque les optimisations étaient actives). Le "
"paramètre *optimize* a été ajouté."
#: ../Doc/library/py_compile.rst:74
msgid ""
@ -107,6 +142,12 @@ msgid ""
"that :exc:`FileExistsError` is raised if *cfile* is a symlink or non-regular "
"file."
msgstr ""
"le code a été modifié pour faire appel à :mod:`importlib` dans les "
"opérations d'écriture du code intermédiaire. Ce module se comporte donc "
"exactement comme :mod:`importlib` en ce qui concerne, par exemple, les "
"permissions, ou le renommage final qui garantit une opération atomique. :exc:"
"`FileExistsError` est désormais levée si la destination est un lien "
"symbolique ou n'est pas un véritable fichier."
#: ../Doc/library/py_compile.rst:81
msgid ""
@ -115,6 +156,10 @@ msgid ""
"*invalidation_mode* will be forced to :attr:`PycInvalidationMode."
"CHECKED_HASH`."
msgstr ""
"le paramètre *invalidation_mode* a été ajouté comme requis par la :pep:"
"`552`. Si la variable d'environnement :envvar:`SOURCE_DATE_EPOCH` est "
"définie, *invalidation_mode* est ignoré, et :attr:`PycInvalidationMode."
"CHECKED_HASH` s'applique dans tous les cas."
#: ../Doc/library/py_compile.rst:87
msgid ""
@ -122,6 +167,9 @@ msgid ""
"value of the *invalidation_mode* argument, and determines its default value "
"instead."
msgstr ""
"La variable d'environnement :envvar:`SOURCE_DATE_EPOCH` n'a plus préséance "
"sur le paramètre *invalidation_mode*, mais détermine seulement le "
"comportement par défaut lorsque ce paramètre n'est pas passé."
#: ../Doc/library/py_compile.rst:92
#, fuzzy
@ -136,6 +184,12 @@ msgid ""
"invalidation` for more information on how Python invalidates ``.pyc`` files "
"at runtime."
msgstr ""
"Énumération des méthodes que l'interpréteur est susceptible d'appliquer afin "
"de déterminer si un fichier de code intermédiaire est périmé par rapport à "
"sa source. Les fichiers ``.pyc`` portent le mode d'invalidation désiré dans "
"leur en-tête. Veuillez-vous référer à :ref:`pyc-invalidation` pour plus "
"d'informations sur la manière dont Python invalide les fichiers ``.pyc`` à "
"l'exécution."
#: ../Doc/library/py_compile.rst:108
msgid ""
@ -143,6 +197,9 @@ msgid ""
"Python will compare against the metadata of the source file at runtime to "
"determine if the ``.pyc`` file needs to be regenerated."
msgstr ""
"Le fichier ``.pyc`` contient l'horodatage et la taille de la source. "
"L'interpréteur inspecte les métadonnées du fichier source au moment de "
"l'exécution, et régénère le fichier ``.pyc`` si elles ont changé."
#: ../Doc/library/py_compile.rst:114
msgid ""
@ -150,6 +207,9 @@ msgid ""
"will compare against the source at runtime to determine if the ``.pyc`` file "
"needs to be regenerated."
msgstr ""
"Le fichier ``.pyc`` porte une empreinte du code source. À l'exécution, elle "
"est recalculée à partir de la source éventuellement modifiée, et le fichier "
"``.pyc`` est régénéré si les deux empreintes sont différentes."
#: ../Doc/library/py_compile.rst:120
msgid ""
@ -157,12 +217,17 @@ msgid ""
"file content. However, Python will at runtime assume the ``.pyc`` file is up "
"to date and not validate the ``.pyc`` against the source file at all."
msgstr ""
"Le principe est le même que :attr:`CHECKED_HASH`, mais à l'exécution, "
"l'interpréteur considère systématiquement que le fichier ``.pyc`` est à "
"jour, sans regarder la source."
#: ../Doc/library/py_compile.rst:124
msgid ""
"This option is useful when the ``.pycs`` are kept up to date by some system "
"external to Python like a build system."
msgstr ""
"Cette option est utile lorsque les fichiers ``.pyc`` sont maintenus par un "
"outil externe, comme un système d'intégration."
#: ../Doc/library/py_compile.rst:130
msgid ""
@ -173,10 +238,16 @@ msgid ""
"If ``'-'`` is the only parameter in args, the list of files is taken from "
"standard input."
msgstr ""
"Compile et met en cache tous les fichiers de la séquence *args*, ou ceux "
"passés comme arguments en ligne de commande si *args* est ``None``. Cette "
"fonction n'effectue aucune recherche des fichiers sources dans des dossiers. "
"Elle compile simplement les fichiers nommés un par un. Si ``'-'`` est le "
"seul paramètre dans *args*, la liste des fichiers est lue sur l'entrée "
"standard."
#: ../Doc/library/py_compile.rst:137
msgid "Added support for ``'-'``."
msgstr ""
msgstr "prise en charge de ``'-'``."
#: ../Doc/library/py_compile.rst:140
msgid ""
@ -184,11 +255,15 @@ msgid ""
"the files named on the command line. The exit status is nonzero if one of "
"the files could not be compiled."
msgstr ""
"Lorsque ce module est exécuté en tant que script, la fonction :func:`main` "
"compile tous les fichiers passés comme arguments sur la ligne de commande. "
"Le code de retour vaut zéro si tous ont été compilés sans erreur."
#: ../Doc/library/py_compile.rst:147
msgid "Module :mod:`compileall`"
msgstr ""
msgstr "Module :mod:`compileall`"
#: ../Doc/library/py_compile.rst:148
msgid "Utilities to compile all Python source files in a directory tree."
msgstr ""
"Utilitaires pour compiler des fichiers source Python dans une arborescence"

View File

@ -4,15 +4,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-04-27 22:48+0200\n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"PO-Revision-Date: 2020-09-28 13:55+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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.4.1\n"
#: ../Doc/library/re.rst:2
msgid ":mod:`re` --- Regular expression operations"
@ -449,7 +449,7 @@ msgstr ""
"Des intervalles de caractères peuvent être indiqués en donnant deux "
"caractères et les séparant par un ``'-'``, par exemple ``[a-z]`` "
"correspondra à toute lettre minuscule *ASCII*, ``[0-5][0-9]`` à tous nombres "
"de deux chiffres entre ``00` et ``59``, et ``[0-9A-Fa-f]`` correspondra à "
"de deux chiffres entre ``00`` et ``59``, et ``[0-9A-Fa-f]`` correspondra à "
"n'importe quel chiffre hexadécimal. Si ``'-'`` est échappé (``[a\\-z]``) ou "
"s'il est placé comme premier ou dernier caractère (e.g. ``[-a]`` ou "
"``[a-]``), il correspondra à un ``'-'`` littéral."
@ -802,7 +802,7 @@ msgid ""
msgstr ""
"Valide si ``...`` valide la suite, mais ne consomme rien de la chaîne. On "
"appelle cela une assertion :dfn:`lookahead`. Par exemple, ``Isaac (?"
"=Asimov)`` correspondra à la chaîne ``'Isaac' `` seulement si elle est "
"=Asimov)`` correspondra à la chaîne ``'Isaac '`` seulement si elle est "
"suivie par ``'Asimov'``."
#: ../Doc/library/re.rst:386
@ -955,7 +955,7 @@ msgid ""
"baz'`` but not ``'foobar'`` or ``'foo3'``."
msgstr ""
"Correspond à la chaîne vide, mais uniquement au début ou à la fin d'un mot. "
"Un mot est défini comme une séquence de \"caractères de mots\". Notez que "
"Un mot est défini comme une séquence de « caractères de mots ». Notez que "
"formellement, ``\\b`` est défini comme la liaison entre ``\\w`` et ``\\W`` "
"(et inversement), ou entre ``\\w`` et le début/fin d'un mot. Cela signifie "
"que ``r'\\bfoo\\b'`` validera ``'foo'``, ``'foo.'``, ``'(foo)'`` ou ``'bar "
@ -973,8 +973,8 @@ msgstr ""
"motifs Unicode, mais cela peut être changé en utilisant l'option :const:"
"`ASCII`. Les délimitations de mots sont déterminées par la locale si "
"l'option :const:`LOCALE` est utilisée. À l'intérieur d'un intervalle de "
"caractères, ``\\b`` représente le caractère *backspace*, par compatibilité "
"avec les chaînes littérales Python."
"caractères, ``\\b`` représente le caractère *retour arrière*, par "
"compatibilité avec les chaînes littérales Python."
#: ../Doc/library/re.rst:480
msgid "``\\B``"
@ -1005,7 +1005,7 @@ msgstr "``\\d``"
#: ../Doc/library/re.rst:489 ../Doc/library/re.rst:509
#: ../Doc/library/re.rst:529
msgid "For Unicode (str) patterns:"
msgstr "Pour les motifs Unicode (``str``) :"
msgstr "Pour les motifs Unicode (*str*) :"
#: ../Doc/library/re.rst:486
msgid ""
@ -1022,7 +1022,7 @@ msgstr ""
#: ../Doc/library/re.rst:492 ../Doc/library/re.rst:513
#: ../Doc/library/re.rst:535
msgid "For 8-bit (bytes) patterns:"
msgstr "Pour les motifs 8-bit (bytes) :"
msgstr "Pour les motifs 8-bit (*bytes*) :"
#: ../Doc/library/re.rst:492
msgid "Matches any decimal digit; this is equivalent to ``[0-9]``."
@ -1146,8 +1146,8 @@ msgid ""
"\"backspace\" only inside character classes.)"
msgstr ""
"(Notez que ``\\b`` est utilisé pour représenter les bornes d'un mot, et "
"signifie « *backspace* » uniquement à l'intérieur d'une classe de "
"caractères.)"
"signifie « *retour arrière* » uniquement à l'intérieur d'une classe de "
"caractères)"
#: ../Doc/library/re.rst:575
msgid ""
@ -1532,7 +1532,7 @@ msgstr ""
#: ../Doc/library/re.rst:817 ../Doc/library/re.rst:897
#: ../Doc/library/re.rst:921
msgid "Added the optional flags argument."
msgstr "Ajout de l'argument optionnel *flags*."
msgstr "ajout de l'argument optionnel *flags*."
#: ../Doc/library/re.rst:820
msgid ""
@ -2201,9 +2201,9 @@ msgid ""
msgstr ""
"Supposez que vous écriviez un jeu de poker où la main d'un joueur est "
"représentée par une chaîne de 5 caractères avec chaque caractère "
"représentant une carte, \"a\" pour l'as, \"k\" pour le roi (*king*), \"q\" "
"pour la reine (*queen*), \"j\" pour le valet (*jack*), \"t\" pour 10 "
"(*ten*), et les caractères de \"2\" à \"9\" représentant les cartes avec ces "
"représentant une carte, « a » pour l'as, « k » pour le roi (*king*), « q » "
"pour la reine (*queen*), « j » pour le valet (*jack*), « t » pour 10 "
"(*ten*), et les caractères de « 2 »à « 9 » représentant les cartes avec ces "
"valeurs."
#: ../Doc/library/re.rst:1357

View File

@ -334,7 +334,7 @@ msgstr "Index"
#: ../Doc/library/resource.rst:300
msgid "Field"
msgstr ""
msgstr "Champ"
#: ../Doc/library/resource.rst:300
msgid "Resource"

View File

@ -15,7 +15,7 @@ msgstr ""
#: ../Doc/library/socket.rst:2
msgid ":mod:`socket` --- Low-level networking interface"
msgstr ""
msgstr ":mod:`socket` — Gestion réseau de bas niveau"
#: ../Doc/library/socket.rst:7
#, fuzzy

View File

@ -170,7 +170,7 @@ msgstr ""
#: ../Doc/library/stat.rst:189
msgid "Time of last modification."
msgstr ""
msgstr "L'heure de la dernière modification."
#: ../Doc/library/stat.rst:194
msgid ""

View File

@ -37,7 +37,7 @@ msgstr ""
#: ../Doc/library/sunau.rst:21
msgid "Field"
msgstr ""
msgstr "Champ"
#: ../Doc/library/sunau.rst:21
msgid "Contents"

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 3.36.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.36.0\n"
#: ../Doc/library/textwrap.rst:2
msgid ":mod:`textwrap` --- Text wrapping and filling"

View File

@ -1029,7 +1029,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:679
msgid "mode"
msgstr ""
msgstr "mode"
#: ../Doc/library/tkinter.ttk.rst:679
msgid "One of \"determinate\" or \"indeterminate\"."
@ -1688,7 +1688,7 @@ msgstr ""
#: ../Doc/library/tkinter.ttk.rst:1089
msgid "tree"
msgstr ""
msgstr "*tree* (arbre)"
#: ../Doc/library/tkinter.ttk.rst:1089
msgid "The tree area."

File diff suppressed because it is too large Load Diff

View File

@ -288,6 +288,10 @@ msgid ""
"Similar behavior occurs with files newer than 2107-12-31, the timestamp is "
"also set to the limit."
msgstr ""
"Les fichiers ZIP plus anciens que le 1er janvier 1980 sont autorisés lorsque "
"l'argument *strict_timestamps* vaut ``False``, moyennant de les voir datés "
"du 1er janvier 1980. De même pour les fichiers datés d'après le 31 décembre "
"2107 qui voient leur horodatage fixé au 31 décembre 2107."
#: ../Doc/library/zipfile.rst:187
msgid ""
@ -352,7 +356,7 @@ msgstr "Ajout du paramètre *compresslevel*."
#: ../Doc/library/zipfile.rst:221 ../Doc/library/zipfile.rst:643
msgid "The *strict_timestamps* keyword-only argument"
msgstr ""
msgstr "l'argument nommé *strict_timestamps*"
#: ../Doc/library/zipfile.rst:227
msgid ""
@ -766,25 +770,34 @@ msgid ""
"`ZipFile` instance or ``file`` suitable for passing to the :class:`ZipFile` "
"constructor)."
msgstr ""
"Construit un objet *Path* depuis le fichier ZIP *root* (qui peut être une "
"instance de :class:`ZipFile` ou tout ce qui sera accepté par le paramètre "
"*file* du constructeur de :class:`ZipFile`)."
#: ../Doc/library/zipfile.rst:479
msgid ""
"``at`` specifies the location of this Path within the zipfile, e.g. 'dir/"
"file.txt', 'dir/', or ''. Defaults to the empty string, indicating the root."
msgstr ""
"``at`` indique la position de ce *Path* dans l'archive ZIP, par exemple ``"
"\"dir/file.txt\"``, ``\"dir/\"``, ou ``\"\"``. Par défaut c'est une chaine "
"vide, indiquant la racine de l'archive."
#: ../Doc/library/zipfile.rst:483
msgid ""
"Path objects expose the following features of :mod:`pathlib.Path` objects:"
msgstr ""
"Les objets ``Path`` de ``zipfile`` exposent les fonctionnalités suivantes "
"des objets de :mod:`pathlib.Path` :"
#: ../Doc/library/zipfile.rst:486
msgid "Path objects are traversable using the ``/`` operator."
msgstr ""
"On peut naviguer dans les objets ``Path`` en utilisant l'opérateur ``/``."
#: ../Doc/library/zipfile.rst:490
msgid "The final path component."
msgstr ""
msgstr "Le dernier segment du chemin."
#: ../Doc/library/zipfile.rst:494
msgid ""
@ -828,10 +841,13 @@ msgid ""
"passed through to :class:`io.TextIOWrapper` (except ``buffer``, which is "
"implied by the context)."
msgstr ""
"Lit le fichier au format texte. Les arguments positionnels et nommés sont "
"passés à :class:`io.TextIOWrapper` (sauf ``buffer``, qui est imposé par le "
"contexte)"
#: ../Doc/library/zipfile.rst:529
msgid "Read the current file as bytes."
msgstr ""
msgstr "Lit le fichier en mode binaire, renvoyant un objet *bytes*."
#: ../Doc/library/zipfile.rst:535
msgid "PyZipFile Objects"
@ -1216,27 +1232,32 @@ msgstr "Teste si le fichier zip est valide."
#: ../Doc/library/zipfile.rst:826
msgid "Decompression pitfalls"
msgstr ""
msgstr "Problèmes de décompression"
#: ../Doc/library/zipfile.rst:828
msgid ""
"The extraction in zipfile module might fail due to some pitfalls listed "
"below."
msgstr ""
"L'extraction d'une archive ZIP par le module *zipfile* peut échouer pour les "
"raisons listées ci-dessous."
#: ../Doc/library/zipfile.rst:831
msgid "From file itself"
msgstr ""
msgstr "À cause du fichier lui-même"
#: ../Doc/library/zipfile.rst:833
msgid ""
"Decompression may fail due to incorrect password / CRC checksum / ZIP format "
"or unsupported compression method / decryption."
msgstr ""
"La décompression peut échouer à cause d'un mot de passe ou d'une somme de "
"contrôle CRC incorrectes. Elle peut aussi échouer si le format, la méthode "
"de compression, ou de chiffrement n'est pas implémenté."
#: ../Doc/library/zipfile.rst:837
msgid "File System limitations"
msgstr ""
msgstr "Limitations du système de fichiers"
#: ../Doc/library/zipfile.rst:839
msgid ""
@ -1245,10 +1266,14 @@ msgid ""
"file name, length of the pathname, size of a single file, and number of "
"files, etc."
msgstr ""
"Dépasser les limites du système de fichiers peut faire échouer la "
"décompression. Ces limites peuvent concerner les caractères licites pour un "
"nom de fichier, la longueur du nom du fichier ou du chemin, la taille d'un "
"fichier, le nombre de fichiers, etc."
#: ../Doc/library/zipfile.rst:844
msgid "Resources limitations"
msgstr ""
msgstr "Ressources limitées"
#: ../Doc/library/zipfile.rst:846
msgid ""
@ -1256,10 +1281,13 @@ msgid ""
"example, decompression bombs (aka `ZIP bomb`_) apply to zipfile library that "
"can cause disk volume exhaustion."
msgstr ""
"Le manque de mémoire ou d'espace disque peut mener à un échec de "
"décompression. Par exemple, une bombe de décompression (`ZIP bomb`_), "
"décompressés avec *zifile* peut remplir l'espace disque."
#: ../Doc/library/zipfile.rst:851
msgid "Interruption"
msgstr ""
msgstr "Interruption"
#: ../Doc/library/zipfile.rst:853
msgid ""
@ -1267,10 +1295,12 @@ msgid ""
"the decompression process may result in incomplete decompression of the "
"archive."
msgstr ""
"Une interruption durant la décompression, en utilisant *control-C* ou en "
"tuant le processus, peut mener à une décompression partielle de l'archive."
#: ../Doc/library/zipfile.rst:857
msgid "Default behaviors of extraction"
msgstr ""
msgstr "Comportements par défaut de l'extraction"
#: ../Doc/library/zipfile.rst:859
msgid ""
@ -1278,6 +1308,9 @@ msgid ""
"decompression results. For example, when extracting the same archive twice, "
"it overwrites files without asking."
msgstr ""
"Ne pas connaître le comportement d'extraction par défaut peut causer des "
"résultats inattendus. Par exemple, lors de l'extraction d'une même archive "
"deux fois, les fichiers sont écrasés sans prévenir."
#~ msgid ""
#~ "There is no official file name encoding for ZIP files. If you have "

View File

@ -484,7 +484,7 @@ msgstr ""
#: ../Doc/license.rst:919
msgid "W3C C14N test suite"
msgstr ""
msgstr "Ensemble de tests C14N du W3C"
#: ../Doc/license.rst:921
msgid ""
@ -492,23 +492,31 @@ msgid ""
"c14n-20/``) was retrieved from the W3C website at https://www.w3.org/TR/xml-"
"c14n2-testcases/ and is distributed under the 3-clause BSD license:"
msgstr ""
"Les tests de C14N version 2.0 du module :mod:`test` (``Lib/test/xmltestdata/"
"c14n-20/``) proviennent du site du W3C à l'adresse https://www.w3.org/TR/xml-"
"c14n2-testcases/ et sont distribués sous licence BSD modifiée :"
#: ../Doc/license.rst:926
msgid ""
"Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved."
msgstr ""
"Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved."
#: ../Doc/license.rst:929
msgid ""
"Redistribution and use in source and binary forms, with or without "
"modification, are permitted provided that the following conditions are met:"
msgstr ""
"Redistribution and use in source and binary forms, with or without "
"modification, are permitted provided that the following conditions are met:"
#: ../Doc/license.rst:933
msgid ""
"Redistributions of works must retain the original copyright notice, this "
"list of conditions and the following disclaimer."
msgstr ""
"Redistributions of works must retain the original copyright notice, this "
"list of conditions and the following disclaimer."
#: ../Doc/license.rst:935
msgid ""
@ -516,6 +524,9 @@ msgid ""
"this list of conditions and the following disclaimer in the documentation "
"and/or other materials provided with the distribution."
msgstr ""
"Redistributions in binary form must reproduce the original copyright notice, "
"this list of conditions and the following disclaimer in the documentation "
"and/or other materials provided with the distribution."
#: ../Doc/license.rst:938
msgid ""
@ -523,6 +534,9 @@ msgid ""
"endorse or promote products derived from this work without specific prior "
"written permission."
msgstr ""
"Neither the name of the W3C nor the names of its contributors may be used to "
"endorse or promote products derived from this work without specific prior "
"written permission."
#: ../Doc/license.rst:942
msgid ""
@ -538,6 +552,17 @@ msgid ""
"ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE "
"POSSIBILITY OF SUCH DAMAGE."
msgstr ""
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS"
"\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE "
"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE "
"ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE "
"LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR "
"CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF "
"SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS "
"INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN "
"CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) "
"ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE "
"POSSIBILITY OF SUCH DAMAGE."
#~ msgid "Floating point exception control"
#~ msgstr "Virgule flottante et contrôle d'exception"

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-04 10:00+0100\n"
"PO-Revision-Date: 2019-09-22 20:57+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-05-30 20:30+0900\n"
"Last-Translator: Samuel Giffard <samuel@giffard.co>\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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/reference/compound_stmts.rst:5
msgid "Compound statements"
@ -535,11 +535,10 @@ msgstr ""
"est évaluée pour obtenir un gestionnaire de contexte."
#: ../Doc/reference/compound_stmts.rst:402
#, fuzzy
msgid "The context manager's :meth:`__enter__` is loaded for later use."
msgstr ""
"La méthode :meth:`__exit__` du gestionnaire de contexte est chargée pour une "
"utilisation ultérieure."
"La méthode :meth:`__enter__` du gestionnaire de contexte est chargée pour "
"une utilisation ultérieure."
#: ../Doc/reference/compound_stmts.rst:404
msgid "The context manager's :meth:`__exit__` is loaded for later use."
@ -622,7 +621,6 @@ msgstr "Le code suivant ::"
#: ../Doc/reference/compound_stmts.rst:440
#: ../Doc/reference/compound_stmts.rst:465
#: ../Doc/reference/compound_stmts.rst:844
#, fuzzy
msgid "is semantically equivalent to::"
msgstr "est sémantiquement équivalent à ::"

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-04-06 23:30+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-06-01 16:54+0900\n"
"Last-Translator: Samuel Giffard <samuel@giffard.co>\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"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/reference/datamodel.rst:6
msgid "Data model"
@ -24,7 +24,6 @@ msgid "Objects, values and types"
msgstr "Objets, valeurs et types"
#: ../Doc/reference/datamodel.rst:18
#, fuzzy
msgid ""
":dfn:`Objects` are Python's abstraction for data. All data in a Python "
"program is represented by objects or by relations between objects. (In a "
@ -531,7 +530,7 @@ msgstr ""
#: ../Doc/reference/datamodel.rst:318
msgid "Tuples"
msgstr "n-uplets (ou tuples)"
msgstr "*n*-uplets (ou tuples)"
#: ../Doc/reference/datamodel.rst:313
msgid ""
@ -753,6 +752,10 @@ msgid ""
"an existing key does not change the order, however removing a key and re-"
"inserting it will add it to the end instead of keeping its old place."
msgstr ""
"Les dictionnaires préservent lordre dinsertion, ce qui signifie que les "
"clés sont renvoyées séquentiellement dans le même ordre que celui de "
"linsertion. Remplacer une clé existante ne change pas lordre. Par contre, "
"la retirer puis la réinsérer la met à la fin et non à sa précédente position."
#: ../Doc/reference/datamodel.rst:428
msgid ""
@ -777,6 +780,10 @@ msgid ""
"3.6. In CPython 3.6, insertion order was preserved, but it was considered an "
"implementation detail at that time rather than a language guarantee."
msgstr ""
"Les dictionnaires ne conservaient pas lordre dinsertion dans les versions "
"antérieures à Python 3.6. Dans CPython 3.6, lordre dinsertion était déjà "
"conservé, mais considéré comme un détail dimplémentation et non comme une "
"garantie du langage."
#: ../Doc/reference/datamodel.rst:700
msgid "Callable types"
@ -827,8 +834,8 @@ msgid ""
"The function's documentation string, or ``None`` if unavailable; not "
"inherited by subclasses."
msgstr ""
"Chaîne de documentation de la fonction ou ``None`` s'il n'en existe pas ; "
"n'est pas héritée par les sous-classes"
"Texte de documentation de la fonction ou ``None`` s'il n'en existe pas ; "
"n'est pas héritée par les sous-classes."
#: ../Doc/reference/datamodel.rst:485 ../Doc/reference/datamodel.rst:490
#: ../Doc/reference/datamodel.rst:493 ../Doc/reference/datamodel.rst:498
@ -844,7 +851,7 @@ msgstr ":attr:`~definition.\\ __name__`"
#: ../Doc/reference/datamodel.rst:490
msgid "The function's name."
msgstr "Nom de la fonction"
msgstr "Nom de la fonction."
#: ../Doc/reference/datamodel.rst:493
msgid ":attr:`~definition.\\ __qualname__`"
@ -852,7 +859,7 @@ msgstr ":attr:`~definition.\\ __qualname__`"
#: ../Doc/reference/datamodel.rst:493
msgid "The function's :term:`qualified name`."
msgstr ":term:`qualified name` de la fonction"
msgstr ":term:`Nom qualifié <qualified name>` de la fonction."
#: ../Doc/reference/datamodel.rst:498
msgid ":attr:`__module__`"
@ -1212,11 +1219,11 @@ msgstr ""
"pouvons citer :func:`len` et :func:`math.sin` (:mod:`math` est un module "
"standard natif) comme fonctions natives. Le nombre et le type des arguments "
"sont déterminés par la fonction C. Des attributs spéciaux en lecture seule "
"existent : :attr:`__doc__` contient la chaîne de documentation de la "
"fonction (ou ``None`` s'il n'y en a pas) ; :attr:`~definition.__name__` est "
"le nom de la fonction ; :attr:`__self__` est défini à ``None`` ; :attr:"
"`__module__` est le nom du module où la fonction est définie ou ``None`` "
"s'il n'est pas disponible."
"existent : :attr:`__doc__` contient le texte de documentation de la fonction "
"(ou ``None`` s'il n'y en a pas) ; :attr:`~definition.__name__` est le nom de "
"la fonction ; :attr:`__self__` est défini à ``None`` ; :attr:`__module__` "
"est le nom du module où la fonction est définie ou ``None`` s'il n'est pas "
"disponible."
#: ../Doc/reference/datamodel.rst:688
msgid "Built-in methods"
@ -1318,7 +1325,7 @@ msgid ""
"library file."
msgstr ""
"Attributs prédéfinis (en lecture-écriture) : :attr:`__name__` est le nom du "
"module ; :attr:`__doc__` est la chaîne de documentation du module (ou "
"module ; :attr:`__doc__` est le texte de documentation du module (ou "
"``None`` s'il n'y en a pas) ; :attr:`__annotations__` (optionnel) est un "
"dictionnaire contenant les :term:`annotations de variables <variable "
"annotation>` collectées durant l'exécution du corps du module ; :attr:"
@ -1435,8 +1442,8 @@ msgstr ""
"attr:`~object.__dict__` est le dictionnaire contenant l'espace de nommage de "
"la classe ; :attr:`~class.__bases__` est un tuple contenant les classes de "
"base, dans l'ordre d'apparition dans la liste des classes de base ; :attr:"
"`__doc__` est la chaîne de documentation de la classe (ou ``None`` si elle "
"n'existe pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire "
"`__doc__` est le texte de documentation de la classe (ou ``None`` sil ny "
"en a pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire "
"contenant les :term:`annotations de variables <variable annotation>` "
"collectées durant l'exécution du corps de la classe."
@ -1663,7 +1670,7 @@ msgid ""
"is the documentation string of the function, or ``None`` if undefined."
msgstr ""
"Si l'objet code représente une fonction, le premier élément dans :attr:"
"`co_consts` est la chaîne de documentation de la fonction (ou ``None`` s'il "
"`co_consts` est le texte de documentation de la fonction (ou ``None`` s'il "
"n'y en a pas)."
#: ../Doc/reference/datamodel.rst:1019
@ -2402,7 +2409,7 @@ msgstr ""
"seule propriété requise est que les objets qui sont égaux pour la "
"comparaison doivent avoir la même valeur de hachage ; il est conseillé de "
"mélanger les valeurs de hachage des composants d'un objet qui jouent un rôle "
"de la comparaison des objets, en les plaçant un tuple dont on calcule "
"de la comparaison des objets, en les plaçant dans un n-uplet dont on calcule "
"l'empreinte. Par exemple ::"
#: ../Doc/reference/datamodel.rst:1416
@ -3405,7 +3412,6 @@ msgid "Preparing the class namespace"
msgstr "Préparation de l'espace de nommage de la classe"
#: ../Doc/reference/datamodel.rst:1955
#, fuzzy
msgid ""
"Once the appropriate metaclass has been identified, then the class namespace "
"is prepared. If the metaclass has a ``__prepare__`` attribute, it is called "
@ -3422,7 +3428,9 @@ msgstr ""
"__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, "
"s'il y en a, sont les arguments de la définition de la classe). La méthode "
"``__prepare__`` doit être implémentée comme une méthode de classe (:func:"
"`classmethod`)."
"`classmethod`). Lespace de nommage renvoyé par ``__prepare__`` est passé à "
"``__new__``, mais quand linstance finale est créée, lespace de nommage est "
"copié vers un nouveau ``dict``."
#: ../Doc/reference/datamodel.rst:1963
msgid ""

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2019-12-13 16:21+0100\n"
"Last-Translator: Sascha Sallès <sascha.salles@icloud.com>\n"
"PO-Revision-Date: 2020-05-30 21:58+0900\n"
"Last-Translator: Samuel Giffard <samuel@giffard.co>\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"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/reference/expressions.rst:6
msgid "Expressions"
@ -48,7 +48,6 @@ msgid "Arithmetic conversions"
msgstr "Conversions arithmétiques"
#: ../Doc/reference/expressions.rst:30
#, fuzzy
msgid ""
"When a description of an arithmetic operator below uses the phrase \"the "
"numeric arguments are converted to a common type\", this means that the "
@ -2131,7 +2130,6 @@ msgstr ""
"algorithmique, sans perte de précision."
#: ../Doc/reference/expressions.rst:1422
#, fuzzy
msgid ""
"The not-a-number values ``float('NaN')`` and ``decimal.Decimal('NaN')`` are "
"special. Any ordered comparison of a number to a not-a-number value is "
@ -2144,8 +2142,9 @@ msgstr ""
"sont spéciales : toute comparaison entre un nombre et une valeur non "
"numérique est fausse. Une implication contre-intuitive à cela est que les "
"valeurs non numériques ne sont pas égales à elles-mêmes. Par exemple, avec "
"``x = float('NaN')``, ``3 < x``, ``x < 3``, ``x == x``, ``x != x`` sont "
"toutes fausses. Ce comportement est en accord avec IEEE 754."
"``x = float('NaN')``, les expressions ``3 < x``, ``x < 3`` et ``x == x`` "
"sont toutes fausses, mais lexpression ``x != x`` est vraie. Ce comportement "
"est en accord avec IEEE 754."
#: ../Doc/reference/expressions.rst:1429
msgid ""
@ -2573,15 +2572,13 @@ msgstr ""
"``''``."
#: ../Doc/reference/expressions.rst:1648
#, fuzzy
msgid "Assignment expressions"
msgstr "Expression d'affectation"
msgstr "Expressions d'affectation"
#: ../Doc/reference/expressions.rst:1655
#, fuzzy
msgid "See :pep:`572` for more details about assignment expressions."
msgstr ""
"Voir la :pep:`308` pour plus de détails sur les expressions conditionnelles."
"Voir la :pep:`572` pour plus de détails sur les expressions daffectation."
#: ../Doc/reference/expressions.rst:1661
msgid "Conditional expressions"

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-04-27 22:26+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-05-30 22:05+0900\n"
"Last-Translator: Samuel Giffard <samuel@giffard.co>\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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/reference/import.rst:6
msgid "The import system"
@ -1690,7 +1690,6 @@ msgstr ""
"(attribut `loader`) défini, à une exception près."
#: ../Doc/reference/import.rst:857
#, fuzzy
msgid ""
"To indicate to the import machinery that the spec represents a namespace :"
"term:`portion`, the path entry finder sets \"loader\" on the spec to "

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2019-09-22 20:47+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-06-05 17:39+0900\n"
"Last-Translator: Samuel Giffard <samuel@giffard.co>\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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/reference/lexical_analysis.rst:6
msgid "Lexical analysis"
@ -550,15 +550,14 @@ msgstr ""
"forme NFKC."
#: ../Doc/reference/lexical_analysis.rst:326
#, fuzzy
msgid ""
"A non-normative HTML file listing all valid identifier characters for "
"Unicode 4.1 can be found at https://www.unicode.org/Public/13.0.0/ucd/"
"DerivedCoreProperties.txt"
msgstr ""
"Un fichier HTML, ne faisant pas référence, listant tous les caractères "
"valides pour Unicode 4.1 se trouve à https://www.dcl.hpi.uni-potsdam.de/home/"
"loewis/table-3131.html."
"valides pour Unicode 4.1 se trouve à https://www.unicode.org/Public/13.0.0/"
"ucd/DerivedCoreProperties.txt."
#: ../Doc/reference/lexical_analysis.rst:334
msgid "Keywords"
@ -621,7 +620,6 @@ msgid "``__*__``"
msgstr "``__*__``"
#: ../Doc/reference/lexical_analysis.rst:379
#, fuzzy
msgid ""
"System-defined names, informally known as \"dunder\" names. These names are "
"defined by the interpreter and its implementation (including the standard "
@ -630,14 +628,15 @@ msgid ""
"Python. *Any* use of ``__*__`` names, in any context, that does not follow "
"explicitly documented use, is subject to breakage without warning."
msgstr ""
"Noms définis par le système. Ces noms sont définis par l'interpréteur et son "
"implémentation (y compris la bibliothèque standard). Les noms actuels "
"définis par le système sont abordés dans la section :ref:`specialnames`, "
"mais aussi ailleurs. D'autres noms seront probablement définis dans les "
"futures versions de Python. Toute utilisation de noms de la forme ``__*__``, "
"dans n'importe quel contexte, qui n'est pas conforme à ce qu'indique "
"explicitement la documentation, est sujette à des mauvaises surprises sans "
"avertissement."
"Noms définis par le système, appelés noms « *dunder* » (pour *Double "
"Underscores*) de manière informelle. Ces noms sont définis par "
"l'interpréteur et son implémentation (y compris la bibliothèque standard). "
"Les noms actuels définis par le système sont abordés dans la section :ref:"
"`specialnames`, mais aussi ailleurs. D'autres noms seront probablement "
"définis dans les futures versions de Python. Toute utilisation de noms de la "
"forme ``__*__``, dans n'importe quel contexte, qui n'est pas conforme à ce "
"qu'indique explicitement la documentation, est sujette à des mauvaises "
"surprises sans avertissement."
#: ../Doc/reference/lexical_analysis.rst:391
msgid "``__*``"
@ -1028,7 +1027,7 @@ msgid ""
"exc:`SyntaxError`."
msgstr ""
"Les séquences d'échappement non reconnues produisent une :exc:"
"`DeprecationWarning`. Dans les futures versions de Python, elles génèreront "
"`DeprecationWarning`. Dans les versions suivantes de Python, elles génèrent "
"une :exc:`SyntaxWarning` et éventuellement une :exc:`SyntaxError`."
#: ../Doc/reference/lexical_analysis.rst:601
@ -1172,6 +1171,10 @@ msgid ""
"containing an :keyword:`async for` clause were illegal in the expressions in "
"formatted string literals due to a problem with the implementation."
msgstr ""
"Avant Python 3.7, il était illégal dutiliser :keyword:`await` ainsi que les "
"compréhensions utilisant :keyword:`async for` dans les expressions au sein "
"des chaînes de caractères formatées littérales à cause dun problème dans "
"limplémentation."
#: ../Doc/reference/lexical_analysis.rst:693
msgid ""

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-23 11:38+0200\n"
"PO-Revision-Date: 2020-04-06 22:35+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"PO-Revision-Date: 2020-05-28 22:51+0200\n"
"Last-Translator: Mathieu Dupuy <deronnax@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"
"X-Generator: Poedit 2.2.3\n"
"X-Generator: Poedit 2.3.1\n"
#: ../Doc/tutorial/datastructures.rst:5
msgid "Data Structures"
@ -649,18 +649,17 @@ msgid ""
"When looping through a sequence, the position index and corresponding value "
"can be retrieved at the same time using the :func:`enumerate` function. ::"
msgstr ""
"Lorsque vous itérez sur une séquence, la position et la valeur "
"Lorsque vous faites une boucle sur une séquence, la position et la valeur "
"correspondante peuvent être récupérées en même temps en utilisant la "
"fonction :func:`enumerate`. ::"
#: ../Doc/tutorial/datastructures.rst:589
#, fuzzy
msgid ""
"To loop over two or more sequences at the same time, the entries can be "
"paired with the :func:`zip` function. ::"
msgstr ""
"Pour faire des boucles sur deux séquences ou plus en même temps, les "
"éléments peuvent être associés par la fonction :func:`zip` ::"
"Pour faire une boucle sur deux séquences ou plus en même temps, les éléments "
"peuvent associés en utilisant la fonction :func:`zip` ::"
#: ../Doc/tutorial/datastructures.rst:601
msgid ""
@ -676,9 +675,9 @@ msgid ""
"To loop over a sequence in sorted order, use the :func:`sorted` function "
"which returns a new sorted list while leaving the source unaltered. ::"
msgstr ""
"Pour parcourir les éléments d'une séquence de manière ordonnée, utilisez la "
"fonction :func:`sorted`, elle renvoie une nouvelle liste ordonnée sans "
"altérer la source ::"
"Pour faire une boucle sur une séquence de manière ordonnée, utilisez la "
"fonction :func:`sorted` qui renvoie une nouvelle liste ordonnée sans altérer "
"la source ::"
#: ../Doc/tutorial/datastructures.rst:625
msgid ""

View File

@ -1957,7 +1957,7 @@ msgstr ""
#: ../Doc/whatsnew/2.7.rst:1752
msgid "Here are some examples::"
msgstr ""
msgstr "Voici quelques exemples :"
#: ../Doc/whatsnew/2.7.rst:1763
msgid ""

View File

@ -2733,7 +2733,7 @@ msgstr ""
#: ../Doc/whatsnew/3.2.rst:2432
msgid "Codecs"
msgstr ""
msgstr "Codecs"
#: ../Doc/whatsnew/3.2.rst:2434
msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)."

View File

@ -31,7 +31,7 @@ msgstr ""
#: ../Doc/whatsnew/3.3.rst:55
msgid "Summary -- Release highlights"
msgstr ""
msgstr "Résumé Points forts de la publication"
#: ../Doc/whatsnew/3.3.rst:60
msgid "New syntax features:"
@ -215,7 +215,7 @@ msgstr ""
#: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1122
msgid "Features"
msgstr ""
msgstr "Caractéristiques"
#: ../Doc/whatsnew/3.3.rst:163
msgid ""

View File

@ -40,7 +40,7 @@ msgstr ""
#: ../Doc/whatsnew/3.5.rst:58
msgid "Summary -- Release highlights"
msgstr ""
msgstr "Résumé Points forts de la publication"
#: ../Doc/whatsnew/3.5.rst:60
msgid "New syntax features:"

View File

@ -41,7 +41,7 @@ msgstr ""
#: ../Doc/whatsnew/3.6.rst:58
msgid "Summary -- Release highlights"
msgstr ""
msgstr "Résumé Points forts de la publication"
#: ../Doc/whatsnew/3.6.rst:60
msgid "New syntax features:"

View File

@ -21,7 +21,7 @@ msgstr "Nouveautés de Python 3.0"
#: ../Doc/whatsnew/3.7.rst:0
msgid "Editor"
msgstr ""
msgstr "Rédacteur"
#: ../Doc/whatsnew/3.7.rst:5
msgid "Elvis Pranskevichus <elvis@magic.io>"