diff --git a/.travis.yml b/.travis.yml index 9a3d9d83f..a032f15cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: python dist: xenial -python: 3.6 +python: 3.7 before_install: - sudo apt-get update - sudo apt-get install -y hunspell hunspell-fr-comprehensive diff --git a/Makefile b/Makefile index 629aa3e50..013b3813a 100644 --- a/Makefile +++ b/Makefile @@ -45,11 +45,12 @@ $(SPHINX_CONF): .PHONY: upgrade_venv upgrade_venv: $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv - $(VENV)/bin/pip install -U potodo powrap pospell + $(VENV)/bin/pip install -U pip potodo powrap pospell $(VENV)/bin/activate: $(SPHINX_CONF) $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv + $(VENV)/bin/python3 -m pip install Sphinx==2.2 .PHONY: progress @@ -109,4 +110,4 @@ endif .PHONY: fuzzy fuzzy: $(VENV)/bin/potodo - $(VENV)/bin/potodo --github python/python-docs-fr -f + $(VENV)/bin/potodo -f diff --git a/README.rst b/README.rst index d133185c3..13c5e1e30 100644 --- a/README.rst +++ b/README.rst @@ -11,7 +11,7 @@ Traduction française de la documentation Python :width: 45% -Accord de Contribution à la Documentation +Accord de contribution à la documentation ----------------------------------------- NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python @@ -26,7 +26,7 @@ pouvez demander à ce que votre contribution à la documentation soit publiquement reconnue, et si votre traduction est acceptée par la PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que -rien dans le présent Accord de Contribution à la Documentation n'oblige la PSF +rien dans le présent *accord de contribution* à la documentation n'oblige la PSF à incorporer votre contribution textuelle, votre participation à la communauté Python est bienvenue et appréciée. @@ -42,8 +42,8 @@ Comment contribuer Vous pouvez contribuer en utilisant : -- Des *pull requests* Github (solution recommandée) -- En envoyant un patch à la liste `traductions `_ +- Des *pull requests* Github (solution recommandée). +- En envoyant un patch à la liste `traductions `_. Contribuer en utilisant Github @@ -70,22 +70,22 @@ où vous avez le droit de faire des modifications. .. code-block:: bash # Clonez votre fork Github avec `git` en utilisant ssh : - git clone git@github.com:YOUR_GITHUB_USERNAME/python-docs-fr.git + git clone git@github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git # *OU* HTTPS : - git clone https://github.com:YOUR_GITHUB_USERNAME/python-docs-fr.git + git clone https://github.com/VOTRE_NOM_DE_COMPTE/python-docs-fr.git # Allez dans le répertoire cloné : cd python-docs-fr/ # Ajoutez le dépot upstream (le dépôt public) en utilisant HTTPS (git # ne demandera pas de mot de passe ainsi) : - # Ceci permet à git de savoir quoi/où est *upstream* + # Ceci permet à *git* de savoir quoi/où est *upstream* git remote add upstream https://github.com/python/python-docs-fr.git Ensuite, vous devez trouver un fichier sur lequel travailler. Vous pouvez utiliser `potodo `_, un outil fait pour trouver des fichiers ``po`` à traduire. -Installez-le à l'aide de pip (``pip install potodo``) dans un environnement +Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement ``python3.6`` ou plus. Lancez ensuite la commande ``potodo`` dans votre clone local. Vous pouvez choisir n'importe quel fichier non réservé dans la liste @@ -107,31 +107,34 @@ fois que vous commencerez un nouveau fichier, commencez ainsi : # Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour # (fraîchement récupérée) de la branche upstream/3.7. Nous appellerons notre branche - # "library-sys" mais vous pouvez appeller la vôtre comme vous voulez. + # « library-sys » mais vous pouvez appeller la vôtre comme vous voulez. # En général, vous nommez une branche en fonction du fichier sur lequel vous travaillez. - # Par exemple, si vous travaillez sur "library/venv.po", vous pouvez nommer votre - # branche "library-venv". + # Par exemple, si vous travaillez sur « library/venv.po », vous pouvez nommer votre + # branche « library-venv ». # Mettez à jour votre version locale git fetch upstream - # Créez une nouvelle branche nommée "library-sys" basée sur "upstream/3.7". + # Créez une nouvelle branche nommée « library-sys » basée sur « upstream/3.7 ». git checkout -b library-sys upstream/3.7 # Vous pouvez maintenant travailler sur le fichier, typiquement en utilisant poedit. - # Bien sûr, remplacez "library/sys.po" par le fichier que vous avez choisi précédemment + # Bien sûr, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment poedit library/sys.po - # Configurez poedit pour "ne pas preserver le formatage des - # fichiers existants" (décochez la case), et indiquez une longueur + # Configurez poedit pour « ne pas préserver le formatage des + # fichiers existants » (décochez la case), et indiquez une longueur # de ligne maximum de 79 caractères. - # Quand vous avez fini de traduire, vous pouvez lancer pospell (pip install pospell). + # Quand vous avez fini de traduire, vous pouvez lancer *pospell* (pip install pospell). # Cet outil a été conçu pour vérifier si vous n'avez pas d'erreurs de français. # Vous pouvez exécuter la commande suivante : pospell -p dict -l fr_FR **/*.po pour vérifier # tous les fichiers ou remplacer **/*.po par le fichier que vous traduisez (recommandé). - pospell library/sys.po + # Une liste blanche de certains termes techniques ou de noms propres, comme « Guido », + # « C99 » ou « sérialisable », est stockée dans le fichier « dict » à la racine du projet. + # Vous pouvez bien sûr y ajouter une entrée si nécessaire. + # pospell -p dict library/sys.po - # Vous pouvez ensuite lancer powrap (pip install powrap) qui va reformater le fichier + # Vous pouvez ensuite lancer *powrap* (pip install powrap) qui va reformater le fichier # que avez vous avez modifié à la longueur de ligne correcte de `79`. # Exécutez cette commande : `powrap **/*.po`, ou remplacez `**/*.po` par le fichier # que vous traduisez @@ -141,7 +144,7 @@ fois que vous commencerez un nouveau fichier, commencez ainsi : git add -p # C'est l'occasion de se relire, mais git add -u c'est bien aussi # ou même git add library/sys.po - git commit -m "Working on library/sys.po" # Ou un autre message plus inspiré :) + 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 @@ -151,11 +154,11 @@ fois que vous commencerez un nouveau fichier, commencez ainsi : # La commande précédente vous affichera un lien pour ouvrir une pull request sur # Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/ - # et un joli bouton "Compare & pull request" devrait apparaître au bout de quelques secondes - # vous indiquant que vous pouvez demander une pull request + # et un joli bouton « Compare & pull request » devrait apparaître au bout de quelques secondes + # vous indiquant que vous pouvez demander une pull request. # À partir de là, quelqu'un passera en revue vos modifications, et vous voudrez - # probablement corriger les erreurs qu'ils auront trouvé, alors retournez sur votre + # probablement corriger les erreurs qu'ils auront trouvé. Retournez alors sur votre # branche (au cas où vous auriez commencé quelque chose d'autre sur une autre branche) : git checkout glossary git pull # pour rapatrier les modifications que vous auriez accepté @@ -172,11 +175,11 @@ segment manquant : - Vous poussez sur *origin* (votre clone sur Github) Donc oui, c'est le travail de quelqu'un d'autre d'ajouter le dernier segment, -de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le +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.6``, ``3.7``, ...), seulement récupéré les +branche de version (``3.6``, ``3.7``, etc.), seulement récupéré les modifications à partir d'elles. Considérez-les comme étant en lecture seule, vous éviterez les problèmes. @@ -210,11 +213,15 @@ traduire celles qui ne sont pas traduites (trouvez-les à l'aide de - ``::`` à la fin de certains paragraphes doivent être traduits en `` : ::`` en français pour placer l'espace avant les deux-points. - Si vous traduisez un titre de lien, veuillez traduire le lien aussi. - (typiquement si c'est Wikipédia et que l'article a une traduction). Si - aucune traduction de la cible n'existe, ne traduisez pas le titre. + (surtout si c'est un lien Wikipédia et que l'article a une traduction). + Si aucune traduction de la cible n'existe, ne traduisez pas le titre. +- Les guillemets français ``«`` et ``»`` ne sont pas identiques aux + guillemets anglais ``"``. Cependant, Python utilise les guillemets + anglais comme délimiteurs de chaîne de caractères. Il convient donc de + traduire les guillemets mais pas les délimiteurs de chaîne. -Le cas de "---" -~~~~~~~~~~~~~~~ +Le cas de « --- » +~~~~~~~~~~~~~~~~~ La version anglaise utilise une chose nommée `smartquotes `_, qui @@ -226,29 +233,30 @@ Les *smartquotes* sont également responsables de la transformation de ``--`` en *en-dash* (``-``), de ``-----`` en *em-dash* (``—``), et de ``...`` en ``…``. -Comme nous n'avons pas de *smartquotes*, nous devrons également "traduire" +Comme nous n'avons pas de *smartquotes*, nous devrons également « traduire » cela manuellement, donc si vous voyez ``---`` en anglais, vous devez le transformer en ``—`` en français. -Le cas de "::" -~~~~~~~~~~~~~~ + +Le cas de « :: » +~~~~~~~~~~~~~~~~ Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la documentation : -=> ``::`` collé à la fin d'un mot signifie "affiche ``:`` et introduit un bloc de code", -mais un ``::`` après une espace signifie "introduit juste un bloc de code". +=> ``::`` collé à la fin d'un mot signifie « affiche ``:`` et introduit un bloc de code », +mais un ``::`` après une espace signifie « introduit juste un bloc de code ». -Donc, dans du *rst*, en anglais, nous voyons soit "bla bla::", soit "bla bla. ::". +Donc, dans du *rst*, en anglais, nous voyons soit « bla bla:: », soit « bla bla. :: ». En français, nous mettons une espace insécable devant nos deux-points, comme : -"Et voilà :". +« Et voilà : ». L'utilisation de l'espace insécable en *rst* est naturelle, vous n'aurez qu'à écrire ``Et voilà ::``. Le ``::`` n'est pas précédé d'un espace normal, il affichera les deux-points et introduira le bloc de code, et c'est bon. Si vous ne savez pas comment taper une espace insécable, il y a une astuce : -lisez celle de la touche Compose dans la section suivante ; sinon : +lisez celle de la touche *compose* dans la section suivante ; sinon : => Traduisez ``deux-points deux-points`` par ``espace deux-points espace deux-points deux-points``. @@ -265,13 +273,34 @@ vraiment du français valide. Oui ! il vaut mieux apprendre à taper les espaces insécables. +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, il will produce that … ». +En français, l'utlisation 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 deuxième 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. + +Traduction de *should* +~~~~~~~~~~~~~~~~~~~~~~ + +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. + Comment saisir des em-dash, des ellipses, des guillemets français, ou des espaces insécables ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Malheureusement, cela dépend de votre système d'exploitation et de votre clavier. -=> Sous Linux/Unix/*BSD (tel OpenBSD), vous pouvez utilisez une +=> Sous Linux/Unix/\*BSD (tel OpenBSD), vous pouvez utilisez une `Touche de composition `_, c'est facile à configurer à l'aide de l'outil graphique de configuration de votre clavier ou via ``dpkg-reconfigure keyboard-configuration`` @@ -307,8 +336,8 @@ Avec une touche de composition (personnellement j'utilise ``alt-gr``, vous pouvez aussi utiliser ``verr maj 🔒``), vous pouvez utiliser les compositions suivantes : -- Composer ``<`` ``<`` donne ``«`` -- Composer ``>`` ``>`` donne ``»`` +- Composer ``<`` ``<`` donne ``« `` +- Composer ``>`` ``>`` donne `` »`` - Composer espace espace donne une espace insécable - Composer ``.`` ``.`` ``.`` donne ``…`` @@ -321,6 +350,7 @@ simplement fonctionner : - Composer ``'`` ``E`` donne ``É`` - … … + Où obtenir de l'aide ? ~~~~~~~~~~~~~~~~~~~~~~ @@ -334,17 +364,23 @@ N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode Ressources de traduction ------------------------ -- `Le Grand Dictionnaire Terminologique `_ -- Canal IRC `#python-fr `_ sur freenode -- La `liste traductions AFPy `_ -- La `liste de diffusion doc-sig - `_ -- Le `Glossaire traduc.org `_ -- Les `Glossaires et dictionnaires de traduc.org - `_ -- `glossary.po `_, comme c'est - déjà traduit -- `deepl.com/translator `_ +- le canal IRC `#python-fr `_ sur freenode ; +- la `liste traductions AFPy `_ ; +- la `liste de diffusion doc-sig + `_ ; +- les `glossaires et dictionnaires de traduc.org + `_, en particulier le + `grand dictionnaire terminologique `_ + de l'Office québécois de la langue française ; +- le `glossaire Python `_, car + il est déjà traduit ; +- le `guide stylistique pour le français de localisation des produits Sun + `_ donne + beaucoup de conseils pour éviter une traduction trop mot à mot ; +- `deepl.com/translator `_ ; +- `Petites leçons de typographie `_, + résumé succint de typographie, utile pour apprendre le bon usage des majuscules, + des espaces, etc. Glossaire @@ -358,26 +394,33 @@ Pour trouver facilement comment un terme est déjà traduit dans notre documenta vous pouvez utiliser `find_in_po.py `_. -========================== =========================================== +========================== =============================================== Terme Traduction proposée -========================== =========================================== +========================== =============================================== -like -compatible abstract data type type abstrait -argument argument (Don't mix with parameter) +argument argument (à ne pas confondre avec *paramètre*) backslash antislash, *backslash* bound lier bug bogue, *bug* built-in native call stack pile d'appels debugging débogage -deep copy copie récursive (préféré), ou copie profonde. +deep copy copie récursive (préféré), ou copie profonde double quote guillemet deprecated obsolète -e.g. e.g. (pour *exempli gratia*) +-like -compatible +e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », + lui-même issu du latin *exempli gratia*). + On sépare les deux mots par une espace + insécable pour éviter les retours à la ligne + malheureux. export exportation expression expression garbage collector ramasse-miettes getter accesseur +i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e », + lui-même issu du latin *id est*) identifier identifiant immutable immuable import importation @@ -388,24 +431,26 @@ list comprehension liste en compréhension (liste en intension est valide, mais nous ne l'utilisons pas) little-endian, big-endian `petit-boutiste, gros-boutiste `_ +mixin type type de mélange mutable muable namespace espace de nommage (sauf pour le XML où c'est espace de noms) parameter paramètre +pickle (v.) sérialiser prompt invite raise lever regular expression expression rationnelle, expression régulière -return renvoie, donne (on évite - "retourne" qui pourrait porter à confusion). +return renvoie, donne (on évite « retourne » qui + pourrait porter à confusion). setter mutateur -simple quote guillemet simple, apostrophe (apostrophe - is to glue, guillemet is to surround) +simple quote guillemet simple socket connecteur ou interface de connexion statement instruction subprocess sous-processus thread fil d'exécution underscore tiret bas, *underscore* -========================== =========================================== +========================== =============================================== + Historique du projet -------------------- @@ -416,6 +461,7 @@ par des membres de l'`AFPy `_. En 2017 ce projet est devenu la traduction officielle de la documentation Python en français grâce à la `PEP 545 `_. + Simplifier les diffs git ------------------------ @@ -442,6 +488,7 @@ ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre git config diff.podiff.textconv podiff + Maintenance ----------- @@ -464,6 +511,7 @@ Pour cloner CPython, vous pouvez utiliser : Ceci évite de télécharger tout l'historique (inutile pour générer la documentation) mais récupère néanmoins toutes les branches. + Fusionner les fichiers *pot* de CPython ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -487,6 +535,7 @@ Lancer un *build* en local make + Synchroniser la traduction avec Transifex ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/TRANSLATORS b/TRANSLATORS index 20f0f1360..0996715ac 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -11,4 +11,5 @@ Jules Lasne Mathieu Dupuy Vivien Lambert Andy Kwok -Aya Keddam +Aya Keddam +Antoine Wecxsteen diff --git a/about.po b/about.po index 5e5d11542..701509cad 100644 --- a/about.po +++ b/about.po @@ -88,4 +88,4 @@ msgid "" "Python has such wonderful documentation -- Thank You!" msgstr "" "Ce n'est que grâce aux suggestions et contributions de la communauté Python " -"que Python a une documentation si merveilleuse -- Merci !" +"que Python a une documentation si merveilleuse — Merci !" diff --git a/bugs.po b/bugs.po index ff1e4df50..90492aa42 100644 --- a/bugs.po +++ b/bugs.po @@ -6,18 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-03-11 12:59+0100\n" -"PO-Revision-Date: 2018-07-31 19:26+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2019-08-23 09:13+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \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.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/bugs.rst:5 msgid "Dealing with Bugs" -msgstr "S'attaquer aux bugs" +msgstr "S'attaquer aux bogues" #: ../Doc/bugs.rst:7 msgid "" @@ -25,9 +25,9 @@ msgid "" "for stability. In order to maintain this reputation, the developers would " "like to know of any deficiencies you find in Python." msgstr "" -"Python est un langage de programmation mature réputé pour sa stabilité. Afin " -"de maintenir cette réputation, les développeurs souhaitent connaître toute " -"déficience que vous pourriez rencontrer dans Python." +"Python est un langage de programmation robuste réputé pour sa stabilité. " +"Afin de maintenir cette réputation, les développeurs souhaitent connaître " +"tout problème que vous pourriez rencontrer dans Python." #: ../Doc/bugs.rst:11 msgid "" @@ -35,9 +35,9 @@ msgid "" "Python as it streamlines the process and involves less people. Learn how to :" "ref:`contribute `." msgstr "" -"Il est parfois plus rapide de réparer les bugs soi-même et d'en proposer les " -"*patch*, ça simplifie le processus et implique moins de monde. Apprenez à :" -"ref:`contribuer `." +"Il est parfois plus rapide de réparer les bogues soi-même et d'en proposer " +"les correctifs, ça simplifie le processus et implique moins de monde. " +"Apprenez à :ref:`contribuer `." #: ../Doc/bugs.rst:16 msgid "Documentation bugs" @@ -65,19 +65,19 @@ msgid "" "'docs@' is a mailing list run by volunteers; your request will be noticed, " "though it may take a while to be processed." msgstr "" -"Si vous êtes limités par le temps, vous pouvez aussi envoyer un e-mail à " -"docs@python.org (les bugs de comportement peuvent être envoyés à python-" -"list@python.org). 'docs@' est une liste de diffusion gérée par des " +"Si vous êtes limité par le temps, vous pouvez aussi envoyer un courriel à " +"docs@python.org (les bogues de comportement peuvent être envoyés à python-" +"list@python.org). « docs@ » est une liste de diffusion gérée par des " "volontaires, votre requête sera vue, mais elle peut prendre un moment pour " "être traitée." #: ../Doc/bugs.rst:28 msgid "`Documentation bugs`_ on the Python issue tracker" -msgstr "`Documentation bugs`_ sur le gestionnaire de ticket de Python" +msgstr "`Documentation bugs`_ sur le gestionnaire de tickets de Python" #: ../Doc/bugs.rst:33 msgid "Using the Python issue tracker" -msgstr "Utilisation du gestionnaire de ticket Python" +msgstr "Utilisation du gestionnaire de tickets Python" #: ../Doc/bugs.rst:35 msgid "" @@ -85,10 +85,10 @@ msgid "" "(https://bugs.python.org/). The bug tracker offers a Web form which allows " "pertinent information to be entered and submitted to the developers." msgstr "" -"Les rapports de bugs pour Python lui-même devraient être soumis via le *Bug " -"Tracker Python* (http://bugs.python.org/). Le gestionnaire de ticket propose " -"un formulaire Web permettant de saisir des informations pertinentes à " -"soumettre aux développeurs." +"Les rapports de bogues pour Python lui-même devraient être soumis via le " +"*Bug Tracker Python* (http://bugs.python.org/). Le gestionnaire de tickets " +"propose un formulaire Web permettant de saisir des informations pertinentes " +"à soumettre aux développeurs." #: ../Doc/bugs.rst:39 msgid "" @@ -118,9 +118,9 @@ msgid "" msgstr "" "Si le problème que vous soumettez n'est pas déjà dans le *bug tracker*, " "revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez pas déjà " -"un compte pour le *tracker*, cliquez sur le lien \"S'enregistrer\", ou, si " +"un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », ou, si " "vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* dans la " -"barre latérale. Il n'est pas possible de soumettre un rapport de bug de " +"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " "manière anonyme." #: ../Doc/bugs.rst:51 @@ -140,9 +140,9 @@ msgid "" "\"Component\" and \"Versions\" to which the bug relates." msgstr "" "Le formulaire de soumission a un certain nombre de champs. Pour le champ " -"\"Titre\", saisissez une *très* courte description du problème ; moins de " -"dix mots est approprié. Dans le champ \"Type\", sélectionnez le type de " -"problème ; sélectionnez aussi \"Composant\" et \"Versions\" en rapport avec " +"« Titre », saisissez une *très* courte description du problème ; moins de " +"dix mots est approprié. Dans le champ « Type », sélectionnez le type de " +"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec " "le bogue." #: ../Doc/bugs.rst:59 @@ -152,7 +152,7 @@ msgid "" "extension modules were involved, and what hardware and software platform you " "were using (including version information as appropriate)." msgstr "" -"Dans le champ \"Commentaire\", décrivez le problème de manière détaillée, " +"Dans le champ « Commentaire », décrivez le problème de manière détaillée, " "incluant ce à quoi vous vous attendiez et ce qui s'est vraiment produit. " "Assurez-vous d'y inclure les éventuels modules d'extensions impliqués et la " "plateforme matérielle et logicielle vous utilisiez (en incluant les " @@ -173,8 +173,8 @@ msgid "" "`How to Report Bugs Effectively `_" msgstr "" -"`Comment rédiger des bugs de manière efficace `_" +"`Comment signaler des bogues de manière efficace `_ (en anglais)" #: ../Doc/bugs.rst:72 msgid "" @@ -190,8 +190,8 @@ msgid "" "`Bug Writing Guidelines `_" msgstr "" -"`Guide de la rédaction de bugs `_" +"`Guide de la rédaction de rapports de bogues `_" #: ../Doc/bugs.rst:76 msgid "" @@ -213,8 +213,8 @@ msgid "" "the `core-mentorship mailing list`_ is a friendly place to get answers to " "any and all questions pertaining to the process of fixing issues in Python." msgstr "" -"Au delà de simplement remonter les bugs que vous trouvez, vous serez aussi " -"appréciés si vous y attachiez des correctifs. Vous pouvez trouver plus " +"Au-delà de simplement remonter les bogues que vous trouvez, il est aussi " +"apprécié d'y attacher des correctifs. Vous pouvez trouver plus " "d'informations pour débuter la rédaction de correctifs dans le `Python " "Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " "list`_ est un endroit amical pour obtenir des réponses à toutes les " diff --git a/c-api/arg.po b/c-api/arg.po index 83192fd24..568021fe4 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -88,6 +88,10 @@ msgid "" "this object. You won't have to release any memory yourself. The only " "exceptions are ``es``, ``es#``, ``et`` and ``et#``." msgstr "" +"En général, lorsqu'un format définit un pointeur vers un tampon, le tampon " +"est géré par l'objet Python correspondant et le tampon partage la durée de " +"vie de cet objet. vous n'avez pas à libérer de mémoire. Les seules " +"exceptions sont ``es``, ``es#``, ``et`` et ``et#``." #: ../Doc/c-api/arg.rst:42 msgid "" @@ -150,6 +154,13 @@ msgid "" "is raised. Unicode objects are converted to C strings using ``'utf-8'`` " "encoding. If this conversion fails, a :exc:`UnicodeError` is raised." msgstr "" +"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " +"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " +"est stocké dans la variable de type pointeur vers un caractère dont vous " +"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " +"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " +"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " +"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." #: ../Doc/c-api/arg.rst:77 msgid "" @@ -158,12 +169,19 @@ msgid "" "strings, it is preferable to use the ``O&`` format with :c:func:" "`PyUnicode_FSConverter` as *converter*." msgstr "" +"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " +"d'octets `. Si vous voulez accepter les chemins du " +"système de fichiers et les convertir vers des chaînes de caractères C, il " +"est préférable d'utiliser le format ``O&`` avec :c:func:" +"`PyUnicode_FSConverter` en tant que *converter*." #: ../Doc/c-api/arg.rst:83 ../Doc/c-api/arg.rst:150 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." msgstr "" +"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " +"Python contenait des codes NULL." #: ../Doc/c-api/arg.rst:91 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" @@ -176,12 +194,19 @@ msgid "" "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" +"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " +"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " +"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " +"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " +"utilisant l'encodage ``'utf-8'``." #: ../Doc/c-api/arg.rst:98 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " "int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" #: ../Doc/c-api/arg.rst:94 msgid "" @@ -190,6 +215,11 @@ msgid "" "second one its length. The string may contain embedded null bytes. Unicode " "objects are converted to C strings using ``'utf-8'`` encoding." msgstr "" +"La même chose que ``s*``, mais n'accepte pas les objets muables. Le résultat " +"est stocké dans deux variables C, la première est un pointeur vers une " +"chaîne de caractères C, la seconde contient sa taille. La chaîne de " +"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " +"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." #: ../Doc/c-api/arg.rst:102 ../Doc/c-api/arg.rst:566 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" @@ -232,6 +262,8 @@ msgstr "" #: ../Doc/c-api/arg.rst:120 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" +"``y`` (lecture seule :term:`objet compatible avec une chaîne d'octets `) [constante char \\*]" #: ../Doc/c-api/arg.rst:113 msgid "" @@ -240,12 +272,18 @@ msgid "" "contain embedded null bytes; if it does, a :exc:`ValueError` exception is " "raised." msgstr "" +"Ce format convertit un *objet compatible avec une chaîne d'octets* en un " +"pointeur C vers une chaîne de caractères ; il n'accepte pas les objets " +"Unicode. Le tampon d'octets ne doit pas contenir d'octets *null* ; si c'est " +"le cas, une exception :exc:`ValueError` est levée." #: ../Doc/c-api/arg.rst:118 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" +"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " +"rencontrés dans le tampon d'octets." #: ../Doc/c-api/arg.rst:125 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" @@ -306,6 +344,13 @@ msgid "" "Python string must not contain embedded null code points; if it does, a :exc:" "`ValueError` exception is raised." msgstr "" +"Convertit un objet Python Unicode en un pointeur C vers un tampon de " +"caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " +"pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " +"tampon Unicode existant. Veuillez noter que la taille d'un :c:type:" +"`Py_UNICODE` dépend des options de compilation (soit 16, soit 32 bits). La " +"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en " +"contient, une exception :exc:`ValueError` est levée." #: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 #: ../Doc/c-api/arg.rst:182 diff --git a/c-api/buffer.po b/c-api/buffer.po index 6c9b0ac05..c78eae496 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -528,7 +528,7 @@ msgstr "" #: ../Doc/c-api/buffer.rst:321 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 #: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 diff --git a/c-api/bytes.po b/c-api/bytes.po index 5554f0483..dbd32524b 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -72,7 +72,7 @@ msgstr "" #: ../Doc/c-api/bytes.rst:68 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/bytes.rst:68 msgid "Type" diff --git a/c-api/intro.po b/c-api/intro.po index 5942ae3af..1bdf37b81 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -232,7 +232,7 @@ msgstr "" #: ../Doc/c-api/intro.rst:193 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" #: ../Doc/c-api/intro.rst:195 msgid "" diff --git a/c-api/mapping.po b/c-api/mapping.po index c94973f9c..b715a0c74 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -16,13 +16,15 @@ msgstr "" #: ../Doc/c-api/mapping.rst:6 msgid "Mapping Protocol" -msgstr "" +msgstr "Protocole de correspondance" #: ../Doc/c-api/mapping.rst:8 msgid "" "See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" "`PyObject_DelItem`." msgstr "" +"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` et :c:func:" +"`PyObject_DelItem`." #: ../Doc/c-api/mapping.rst:14 msgid "" @@ -37,6 +39,8 @@ msgid "" "Returns the number of keys in object *o* on success, and ``-1`` on failure. " "This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." #: ../Doc/c-api/mapping.rst:32 msgid "" @@ -58,12 +62,18 @@ msgid "" "on failure. This is equivalent to the Python statement ``del o[key]``. This " "is an alias of :c:func:`PyObject_DelItem`." msgstr "" +"Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." #: ../Doc/c-api/mapping.rst:53 msgid "" "Remove the mapping for the string *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." #: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 msgid "" @@ -71,6 +81,9 @@ msgid "" "This is equivalent to the Python expression ``key in o``. This function " "always succeeds." msgstr "" +"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " +"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " +"fonction ne provoque jamais d'erreur." #: ../Doc/c-api/mapping.rst:63 msgid "" @@ -78,6 +91,9 @@ msgid "" "method will get suppressed. To get error reporting use :c:func:" "`PyObject_GetItem()` instead." msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." #: ../Doc/c-api/mapping.rst:74 msgid "" @@ -85,6 +101,10 @@ msgid "" "method and creating a temporary string object will get suppressed. To get " "error reporting use :c:func:`PyMapping_GetItemString()` instead." msgstr "" +"Notez que les exceptions qui surviennent en créant une chaîne de caractères " +"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront " +"supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt :c:func:" +"`PyMapping_GetItemString()`." #: ../Doc/c-api/mapping.rst:81 msgid "" @@ -95,7 +115,7 @@ msgstr "" #: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93 #: ../Doc/c-api/mapping.rst:102 msgid "Previously, the function returned a list or a tuple." -msgstr "" +msgstr "Auparavant, la fonction renvoyait une liste ou un n-uplet." #: ../Doc/c-api/mapping.rst:90 msgid "" diff --git a/c-api/memory.po b/c-api/memory.po index be0291c66..1692f8227 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -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" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 733a12901..395a03b8f 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -24,6 +24,9 @@ msgid "" "` as a Python object which can then be passed around like any " "other object." msgstr "" +"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " +"` du C. Cet objet peut ensuite être passé comme n'importe " +"quel objet." #: ../Doc/c-api/memoryview.rst:18 msgid "" @@ -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 "" diff --git a/c-api/object.po b/c-api/object.po index 1533df506..a8b685247 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-19 22:32+0200\n" -"PO-Revision-Date: 2019-06-08 15:22+0200\n" +"PO-Revision-Date: 2019-08-16 22:56+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -395,12 +395,12 @@ msgstr "" #: ../Doc/c-api/object.rst:264 ../Doc/c-api/object.rst:276 #: ../Doc/c-api/object.rst:288 ../Doc/c-api/object.rst:308 #: ../Doc/c-api/object.rst:327 ../Doc/c-api/object.rst:341 -#, fuzzy msgid "" "Return the result of the call on success, or raise an exception and return " "*NULL* on failure." msgstr "" -"Renvoie le résultat de l'appel en cas de succès, ou *NULL* en cas d'échec." +"Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " +"renvoie *NULL* en cas d'échec." #: ../Doc/c-api/object.rst:267 msgid "" diff --git a/c-api/structures.po b/c-api/structures.po index 5fc5248d0..aa3cd2e96 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -142,7 +142,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 #: ../Doc/c-api/structures.rst:345 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 #: ../Doc/c-api/structures.rst:345 diff --git a/c-api/tuple.po b/c-api/tuple.po index 4a3ac347c..ea67c7601 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -150,7 +150,7 @@ msgstr "" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 msgid "C Type" diff --git a/c-api/unicode.po b/c-api/unicode.po index dff8775f7..71623f6c6 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -437,7 +437,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:447 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/c-api/unicode.rst:447 msgid "Type" diff --git a/copyright.po b/copyright.po index 696974835..c816adfd6 100644 --- a/copyright.po +++ b/copyright.po @@ -25,7 +25,7 @@ msgstr "Python et cette documentation sont :" #: ../Doc/copyright.rst:7 msgid "Copyright © 2001-2019 Python Software Foundation. All rights reserved." msgstr "" -"Copyright © 2001-2019 Python Software Foundation. Tout droits réservés." +"Copyright © 2001-2019 Python Software Foundation. Tous droits réservés." #: ../Doc/copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." diff --git a/dict b/dict index 8f3645b14..a9bbba819 100644 --- a/dict +++ b/dict @@ -1,127 +1,190 @@ -017F -212A +#python-fr +-1 +-ième +-uplet +-uplets +017f +212a +ahlstrom allocateur allocateurs -Ahlstrom +base16 +base32 +base64 +base85 batch +boguer +c++ c- -C- -C99 -Catucci +c/c++ +C14N +C89 +c99 +chacha20 cadriciel cadriciels +catucci +cobjects +composabilité concourance -coroutine +contravariante +contravariantes +configurateurs +contribués coroutine coroutines -Cython +cpython +curryfication +cython d'allocateurs +d'indifférentiabilité +d'itérateurs +docstrings +décodables déduplication +délimitants désenregistre +déserialisables +déserialisation déserialisations déserialise -désérialise -désérialisé -désérialisées déserialiser -désérialiser -déserialisés déserialiseur déserialiseurs -docstrings -d'itérateurs -émoji -réusiné -réusinage -réusinages +désérialiseur +désérialiseurs +déserialisées +déserialisés +désérialisés +désérialise +désérialiser +désérialisé +désérialisées encodable -Farrugia +ethnomathématiques +farrugia finaliseur -Fredrik +frederik +fredrik freeze -Guido +glibc +guido hachabilité hachable hachables -Hettinger +hettinger html -ı --ième indiçage indo-arabes +ininterruptible interchangés +intralignes +ios +ipv4 itérateur itérateurs +ième +journalise journaliser journaliseur -Jr. -Kuchling +journalisé +journalisée +journalisés +jr. +kolams +kuchling l'allocateur -lexicographiquement l'indiçage l'itérateur +lexicographiquement lorsqu'aucune +lorsqu'aucun +mar mar. +marc-andré +mersenne +mertz +Monty +muabilité +muable +muables +multiensemble +multiensembles +mutex mémoïsant -Marc-André mémoïsation -Mersenne métacaractère métacaractères métaclasse métaclasses -muabilité -muable -muables -multiensemble -multiensembles +n-ième namespace +non-hachable +non-hachables pdb pip pourcent +proleptique précompilé préemptif -proleptique -Pydb -PyChecker -Pylint -PythonWin +préremplis py2exe pyc +pychecker +pydb +pylint +pythonwin +qu +re recompilation +reedy +relationelle +retraçage +réentrant +réentrante réentrants réessayable réexécuter référençable référençables -réimplémenter réimplémente +réimplémenter réimplémentez résolveurs -ſ -sérialisable +réusinage +réusinages +réusiné +réutilisabilité +serwy +shell +slot +smalltalk +sqlite +surprenamment sérialisable sérialisables +sérialiser +sérialiseur sérialisé sérialisée -sérialisés sérialisées -sérialiser -sérialiseur -Serwy -shell -slot +sérialisés +tk tokenisation tokenisé tokenisés tty -W3C -wxWidgets -Zope -délimitants -contribués -d'indifférentiabilité -ininterruptible -journalisé -journalisés -retraçage +uplets +utf-8 +utf-16 +utf-32 +von +w3c +world +wxwidgets +x11 +x86 +zope +émoji +ı +ſ diff --git a/distutils/introduction.po b/distutils/introduction.po index ff1df2bbd..06544be5d 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/distutils/introduction.rst:5 msgid "An Introduction to Distutils" -msgstr "" +msgstr "Introduction à Distutils" #: ../Doc/distutils/introduction.rst:7 msgid "" @@ -25,6 +25,10 @@ msgid "" "information on installing Python modules, you should refer to the :ref:" "`install-index` chapter." msgstr "" +"Ce document traite de l'utilisation de Distutils pour distribuer des modules " +"Python, en se concentrant sur le rôle de développeur/distributeur : si vous " +"cherchez des informations sur l'installation de modules Python, vous devriez " +"vous référer au chapitre :ref:`install-index`." #: ../Doc/distutils/introduction.rst:16 msgid "Concepts & Terminology" @@ -37,26 +41,30 @@ msgid "" "responsibilities (apart from writing solid, well-documented and well-tested " "code, of course!) are:" msgstr "" +"Utiliser Distuils est assez simple, à la fois pour les développeurs de " +"module et pour les utilisateurs/administrateurs qui installent des modules " +"tiers. En tant que développeur, vos responsabilités (en plus d'écrire du " +"code solide, bien documenté et bien testé, bien entendu !) sont :" #: ../Doc/distutils/introduction.rst:23 msgid "write a setup script (:file:`setup.py` by convention)" -msgstr "" +msgstr "écrire un script d'installation (:file:`setup.py` par convention) ;" #: ../Doc/distutils/introduction.rst:25 msgid "(optional) write a setup configuration file" -msgstr "" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" #: ../Doc/distutils/introduction.rst:27 msgid "create a source distribution" -msgstr "" +msgstr "créer une distribution source ;" #: ../Doc/distutils/introduction.rst:29 msgid "(optional) create one or more built (binary) distributions" -msgstr "" +msgstr "(optionnel) créer une ou plusieurs distributions compilées (binaires)." #: ../Doc/distutils/introduction.rst:31 msgid "Each of these tasks is covered in this document." -msgstr "" +msgstr "Chacune de ces tâches est couverte dans ce document." #: ../Doc/distutils/introduction.rst:33 msgid "" @@ -70,6 +78,16 @@ msgid "" "module distributions in the most natural way for their platform, without " "having to run a single setup script or compile a line of code." msgstr "" +"Tous les développeurs de modules n'ont pas accès à une multitude de " +"plateformes, donc on ne peut pas exiger d'eux qu'ils créent une multitude de " +"distributions compilées. On s'attend à ce que certains intermédiaires, " +"appelés *packagers*, prennent en charge ce besoin. Les packagers vont " +"prendre les sources des distributions publiées par les développeurs de " +"modules, les construire sur on ou plusieurs plateformes, et publier les " +"distributions compilées résultantes. Ainsi, les utilisateurs sur les " +"plateformes les plus populaires vont pouvoir installer la plupart des " +"modules Python de la façon la plus naturelle qui soit pour leur plateforme, " +"sans avoir à exécuter de script ou à compiler du code." #: ../Doc/distutils/introduction.rst:47 msgid "A Simple Example" @@ -84,22 +102,33 @@ msgid "" "script may be run multiple times in the course of building and installing " "your module distribution." msgstr "" +"Le script d'installation est habituellement assez simple, même s'il n'y a " +"pas de limite à ce qu'il peut faire (il est écrit en Python, n'est-ce " +"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations " +"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le " +"script d'installation peut être amené à être exécuté plusieurs fois au cours " +"de la compilation et de l'installation du module. " #: ../Doc/distutils/introduction.rst:56 msgid "" "If all you want to do is distribute a module called :mod:`foo`, contained in " "a file :file:`foo.py`, then your setup script can be as simple as this::" msgstr "" +"Si tout ce que vous voulez est de distribuer un module appelé :mod:`foo`, " +"contenu dans un fichier :file:`foo.py`, alors votre script d'installation " +"peut se résumer à :" #: ../Doc/distutils/introduction.rst:65 msgid "Some observations:" -msgstr "" +msgstr "Quelques observations :" #: ../Doc/distutils/introduction.rst:67 msgid "" "most information that you supply to the Distutils is supplied as keyword " "arguments to the :func:`setup` function" msgstr "" +"la plupart des informations que vous fournissez à Distutils sont fournies en " +"tant que qu'arguments nommés à la fonction :func:`setup`;" #: ../Doc/distutils/introduction.rst:70 msgid "" @@ -107,12 +136,17 @@ msgid "" "version number) and information about what's in the package (a list of pure " "Python modules, in this case)" msgstr "" +"ces arguments nommés tombent dans deux catégories : métadonnées du paquet " +"(nom, numéro de version) et des informations sur le contenu du paquet paquet " +"(une liste de purs modules Python, dans ce cas) ; " #: ../Doc/distutils/introduction.rst:74 msgid "" "modules are specified by module name, not filename (the same will hold true " "for packages and extensions)" msgstr "" +"les modules sont listés par nom de module, plutôt que par nom de fichier (le " +"cas est similaire pour les paquets et extensions) ;" #: ../Doc/distutils/introduction.rst:77 msgid "" @@ -120,6 +154,9 @@ msgid "" "name, email address and a URL for the project (see section :ref:`setup-" "script` for an example)" msgstr "" +"il est recommandé de fournir un minimum de métadonnées, en particulier votre " +"nom, une adresse de courriel et une URL pour le projet (voir section :ref:" +"`setup-script` pour un exemple)." #: ../Doc/distutils/introduction.rst:81 msgid "" @@ -127,12 +164,17 @@ msgid "" "script, :file:`setup.py`, containing the above code, and run this command " "from a terminal::" msgstr "" +"Pour créer une distribution source pour ce module, il faut créer un script " +"d'installation, :file:`setup.py`, contenant le code ci-dessus, et exécuter " +"cette commande depuis un terminal :" #: ../Doc/distutils/introduction.rst:87 msgid "" "For Windows, open a command prompt window (:menuselection:`Start --> " "Accessories`) and change the command to::" msgstr "" +"Pour Windows, ouvrez une invite de commande (:menuselection:`Démarrer --> " +"Accessoires`) et changez la commande en :" #: ../Doc/distutils/introduction.rst:92 msgid "" @@ -141,6 +183,11 @@ msgid "" "module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` " "(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`." msgstr "" +":command:`sdist` va créer un fichier d'archive (p. ex. une archive *tar* sur " +"Unix, un fichier ZIP sous Windows) contenant votre script d'installation :" +"file:`setup.py`, et votre module :file:`foo.py`. Le fichier d'archive va " +"être nommé :file:`foo-1.0.tar.gz` (ou :file:`.zip`), et va se décompresser " +"dans un répertoire :file:`foo-1.0`." #: ../Doc/distutils/introduction.rst:97 msgid "" @@ -148,12 +195,18 @@ msgid "" "is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from " "the :file:`foo-1.0` directory---run ::" msgstr "" +"Si un utilisateur final souhaite installer votre module :mod:`foo`, tout ce " +"qu'il aura à faire est de télécharger le fichier :file:`foo-1.0.tar.gz` (ou :" +"file:`.zip`), le décompresser et ---depuis le répertoire :file:`foo-1.0`--- " +"exécuter :" #: ../Doc/distutils/introduction.rst:103 msgid "" "which will ultimately copy :file:`foo.py` to the appropriate directory for " "third-party modules in their Python installation." msgstr "" +"ce qui va finalement copier :file:`foo.py` dans le répertoire approprié pour " +"un module tiers dans son installation Python." #: ../Doc/distutils/introduction.rst:106 msgid "" @@ -164,6 +217,13 @@ msgid "" "while :command:`install` is more often for installers (although most " "developers will want to install their own code occasionally)." msgstr "" +"Ce simple exemple démontre des concepts fondamentaux de Distutils, " +"Premièrement, les développeurs et installeurs ont la même interface " +"utilisateur basique, p. ex. le script d'installation. La différence est " +"quelle *commande* Distutils ils utilisent : la commande :command:`sdist` est " +"quasiment exclusivement pour les développeurs de modules Python, tandis que :" +"command:`install` est plus souvent pour les installeurs (bien que la plupart " +"des développeurs vont vouloir installer leur code occasionnellement)." #: ../Doc/distutils/introduction.rst:113 msgid "" @@ -174,12 +234,21 @@ msgid "" "distribution for this platform) with the :command:`bdist_wininst` command. " "For example::" msgstr "" +"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, " +"vous pouvez créer on ou plusieurs distributions compilées pour eux. En " +"l’occurrence, si vous tournez sous une machine Windows, et que vous voulez " +"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez " +"créer un installateur exécutable (le mode de distribution le plus approprié " +"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par " +"exemple :" #: ../Doc/distutils/introduction.rst:121 msgid "" "will create an executable installer, :file:`foo-1.0.win32.exe`, in the " "current directory." msgstr "" +"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le " +"répertoire courant." #: ../Doc/distutils/introduction.rst:124 msgid "" @@ -188,6 +257,11 @@ msgid "" "and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the " "following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::" msgstr "" +"D'autres formats de distributions compilés utiles sont RPM, implémenté par " +"la commande :command:`bdist_rpm`, Solaris :program:`pkgtool` (:command:" +"`bdist_pkgtool`), et HP-UX :program:`swinstall` (:command:`bdist_sdux`). Par " +"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0." +"noarch.rpm`::" #: ../Doc/distutils/introduction.rst:132 msgid "" @@ -195,16 +269,21 @@ msgid "" "therefore this has to be run on an RPM-based system such as Red Hat Linux, " "SuSE Linux, or Mandrake Linux.)" msgstr "" +"(La commande :command:`bdist_rpm` utilise l'exécutable :command:`rpm`, " +"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat " +"Linux, SuSE Linux, or Mandrake Linux.)" #: ../Doc/distutils/introduction.rst:136 msgid "" "You can find out what distribution formats are available at any time by " "running ::" msgstr "" +"Vous pouvez trouver quelles sont les formats de distribution disponibles à " +"n'importe quel moment en exécutant :" #: ../Doc/distutils/introduction.rst:145 msgid "General Python terminology" -msgstr "" +msgstr "Terminologie Python générale" #: ../Doc/distutils/introduction.rst:147 msgid "" @@ -213,6 +292,10 @@ msgid "" "everyone is operating from a common starting point, we offer the following " "glossary of common Python terms:" msgstr "" +"Si vous lisez ce document, vous avez probablement une bonne idée de ce que " +"sont les modules, extensions, etc. Néanmoins, juste pour être sur que tout " +"le monde opère depuis un point d'entrée commun, nous reprécisons le " +"glossaire suivant des termes Python communs :" #: ../Doc/distutils/introduction.rst:155 msgid "module" @@ -224,10 +307,13 @@ msgid "" "some other code. Three types of modules concern us here: pure Python " "modules, extension modules, and packages." msgstr "" +"unité de base de la réutilisabilité en Python : un bloc de code importé par " +"un autre code. Trois types de modules nous concernent ici : les purs modules " +"Python, les modules d'extension, et les packages." #: ../Doc/distutils/introduction.rst:160 msgid "pure Python module" -msgstr "" +msgstr "pur module Python" #: ../Doc/distutils/introduction.rst:158 msgid "" @@ -235,6 +321,8 @@ msgid "" "possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure " "module.\"" msgstr "" +"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et " +"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\"" #: ../Doc/distutils/introduction.rst:168 msgid "extension module" @@ -250,6 +338,13 @@ msgid "" "(Note that currently, the Distutils only handles C/C++ extensions for " "Python.)" msgstr "" +"un module écrit dans un langage de bas niveau de l'implémentation Python: C/C" +"++ pour Python, Java pour Jython. Typiquement contenu dans un unique fichier " +"pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`.so`) pour " +"des extensions Python sous Unix, un fichier DLL (étant donné l'extension :" +"file:`.pyd`) pour les extensions Python sous Windows, ou un fichier de " +"classe Java pour les extensions Jython (notez qu'actuellement, Distutils " +"gère seulement les extensions Python C/C++)." #: ../Doc/distutils/introduction.rst:173 msgid "package" @@ -261,6 +356,9 @@ msgid "" "the filesystem and distinguished from other directories by the presence of a " "file :file:`__init__.py`." msgstr "" +"un module qui contient d'autres modules ; très souvent contenu dans un " +"répertoire du système de fichier et qui se distingue des autres répertoires " +"par la présence d'un fichier :file:`__init__.py`." #: ../Doc/distutils/introduction.rst:183 msgid "root package" @@ -276,20 +374,30 @@ msgid "" "package can be found in many directories: in fact, every directory listed in " "``sys.path`` contributes modules to the root package." msgstr "" +"la racine de la hiérarchie de paquets. (Ce n'est pas vraiment un paquet, " +"puisqu'il n'a pas un fichier :file:`__init__.py`. Mais nous devons bien le " +"nommer.) La grande majorité de la bibliothèque standard est dans le package " +"racine, comme le sont certains petits, des packages tiers autonomes qui " +"n'appartiennent pas à une un module plus grand. Contrairement aux packages " +"réguliers, les modules dans le package racine peuvent être trouvés dans " +"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` " +"contribuent à faire partie du package racine." #: ../Doc/distutils/introduction.rst:188 msgid "Distutils-specific terminology" -msgstr "" +msgstr "Terminologie spécifique à Distutils" #: ../Doc/distutils/introduction.rst:190 msgid "" "The following terms apply more specifically to the domain of distributing " "Python modules using the Distutils:" msgstr "" +"Les termes suivant s'appliquent plus spécifiquement au domaine de la " +"distribution de modules Python en utilisant les Distutils :" #: ../Doc/distutils/introduction.rst:199 msgid "module distribution" -msgstr "" +msgstr "module de distribution" #: ../Doc/distutils/introduction.rst:194 msgid "" @@ -299,30 +407,40 @@ msgid "" "called a *package*, except that term is already taken in the Python context: " "a single module distribution may contain zero, one, or many Python packages.)" msgstr "" +"une collection de modules Python distribués ensemble, comme une unique " +"ressource téléchargeable et ayant pour but d'être installé *en bloc*. Des " +"exemples de modules distribués bien connus sont *NumPy*, *SciPy*, *Pillow*, " +"ou *mxBase*. (On pourrait les appeler des *packages*, malgré que le terme " +"soit déjà pris dans le contexte Python : une distribution de module simple " +"pourrait contenir zéro, on ou plusieurs packages Python" #: ../Doc/distutils/introduction.rst:203 msgid "pure module distribution" -msgstr "" +msgstr "distribution de modules purs" #: ../Doc/distutils/introduction.rst:202 msgid "" "a module distribution that contains only pure Python modules and packages. " "Sometimes referred to as a \"pure distribution.\"" msgstr "" +"une distribution de module qui contient seulement des modules purs et " +"packages Python. Parfois appelée « distribution pure »." #: ../Doc/distutils/introduction.rst:207 msgid "non-pure module distribution" -msgstr "" +msgstr "distribution de module non pur" #: ../Doc/distutils/introduction.rst:206 msgid "" "a module distribution that contains at least one extension module. " "Sometimes referred to as a \"non-pure distribution.\"" msgstr "" +"une distribution de module qui contient au moins un module d'extension. " +"Parfois appelée « distribution non-pure »." #: ../Doc/distutils/introduction.rst:211 msgid "distribution root" -msgstr "" +msgstr "distribution racine" #: ../Doc/distutils/introduction.rst:210 msgid "" @@ -330,3 +448,6 @@ msgid "" "directory where :file:`setup.py` exists. Generally :file:`setup.py` will " "be run from this directory." msgstr "" +"le répertoire de plus haut niveau de votre arborescence (ou distribution " +"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:" +"`setup.py` est exécuté depuis ce répertoire." diff --git a/distutils/packageindex.po b/distutils/packageindex.po index 230dbae92..7b9b337af 100644 --- a/distutils/packageindex.po +++ b/distutils/packageindex.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-21 12:33+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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" #: ../Doc/distutils/packageindex.rst:7 msgid "The Python Package Index (PyPI)" -msgstr "" +msgstr "L'index de paquets Python (*Python Package Index* : PyPI)" #: ../Doc/distutils/packageindex.rst:9 msgid "" @@ -24,9 +25,14 @@ msgid "" "packaged with distutils and other publishing tools, as well the distribution " "archives themselves." msgstr "" +"Le `Python Package Index (PyPI)`_ stocke les métadonnées décrivant les " +"distributions empaquetées avec *distutils* et autres outils de publication, " +"ainsi que les archives des distributions elles-mêmes." #: ../Doc/distutils/packageindex.rst:13 msgid "" "References to up to date PyPI documentation can be found at :ref:`publishing-" "python-packages`." msgstr "" +"Des références à la documentation de PyPI à jour peuvent être trouvées sur :" +"ref:`publishing-python-packages`." diff --git a/distutils/setupscript.po b/distutils/setupscript.po index 1e269ab8d..6f52fe7f5 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:5 msgid "Writing the Setup Script" -msgstr "" +msgstr "Rédaction du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:7 msgid "" @@ -29,6 +29,15 @@ msgid "" "Distutils by the module developer is supplied as keyword arguments to :func:" "`setup`." msgstr "" +"Le script ``setup.py`` est au centre de toute opération de construction, de " +"distribution et d'installation des modules utilisant les *Distutils*. " +"L'objectif principal du script ``setup.py`` est de décrire le module aux " +"*Distutils*, de telle sorte que les diverses commandes qui agissent sur " +"votre module fassent les bonnes choses. Comme nous avons vu dans la section :" +"ref:`distutils-simple-example` au-dessus, le script ``setup.py`` consiste " +"principalement à un appel à :func:`setup`, et la plupart des informations " +"fournies aux *Distutils* par le développeur du module sont fournies en tant " +"qu'arguments nommés à :func:`setup.py`." #: ../Doc/distutils/setupscript.rst:15 msgid "" @@ -39,6 +48,14 @@ msgid "" "install other module distributions. The Distutils' own setup script, shown " "here, is used to install the package into Python 1.5.2.) ::" msgstr "" +"Voici un exemple un peu plus concret, que nous allons suivre pour les " +"quelques sections suivantes : le propre script ``setup.py`` des *Distutils* " +"(gardez toujours à l'esprit qu'en dépit de l'inclusion des *Distutils* dans " +"python 1.6 et ses versions successives, ils ont aussi une existence à part " +"entière de telle sorte que les utilisateurs de Python 1.5.2 puissent les " +"utiliser pour installer d'autres modules. Le propre script ``setup.py`` des " +"*Distutils* montré ici est utilisé pour installer le paquet dans Python " +"1.5.2). ::" #: ../Doc/distutils/setupscript.rst:35 msgid "" @@ -50,6 +67,14 @@ msgid "" "module would be tedious to generate and difficult to maintain. For more " "information on the additional meta-data, see section :ref:`meta-data`." msgstr "" +"Il y a seulement deux différences entre cet exemple et l'exemple trivial de " +"la distribution d'un unique fichier présenté dans la partie :ref:`distutils-" +"simple-example` : plus de métadonnées, et la définition de modules purement " +"Python par paquet, plutôt que par module. C'est important car les " +"*Distutils* sont composés de quelques douzaines de modules séparés (pour le " +"moment) en deux paquets ; une liste explicite de chaque module serait " +"pénible à générer et difficile à maintenir. Pour plus d'information sur les " +"métadonnées supplémentaires, voir la partie :ref:`meta-data`." #: ../Doc/distutils/setupscript.rst:43 msgid "" @@ -61,6 +86,15 @@ msgid "" "systems, which of course is one of the major goals of the Distutils. In " "this spirit, all pathnames in this document are slash-separated." msgstr "" +"À noter que chaque chemin d'accès fourni au script ``setup.py`` doit être " +"écrit selon la convention Unix. Autrement dit, séparé par des barres " +"obliques (slash). Les *Distutils* prendront soin de convertir cette " +"représentation indépendante de la plateforme en une représentation adaptée à " +"votre plateforme actuelle avant d'effectivement utiliser le chemin d'accès. " +"Cela rend votre script ``setup.py`` portable d'un système d'exploitation à " +"l'autre, ce qui évidemment est l'un des buts majeurs des *Distutils*. Dans " +"cet esprit, tous les chemins d'accès dans ce document sont séparés par des " +"barres obliques (slash)." #: ../Doc/distutils/setupscript.rst:51 msgid "" @@ -69,10 +103,15 @@ msgid "" "or :func:`os.listdir` to specify files, you should be careful to write " "portable code instead of hardcoding path separators::" msgstr "" +"Cela, évidemment, s'applique uniquement aux chemins d'accès passés aux " +"fonctions de *Distutils*. Si vous, par exemple, vous utilisez les fonctions " +"standards de Python telles que :func:`glob.glob` or :func:`os.listdir` pour " +"définir des fichiers, vous devez prendre soin d'écrire du code portable au " +"lieu de coder en dur les séparateurs de chemin ::" #: ../Doc/distutils/setupscript.rst:63 msgid "Listing whole packages" -msgstr "" +msgstr "Lister l'ensemble des paquets" #: ../Doc/distutils/setupscript.rst:65 msgid "" @@ -89,6 +128,19 @@ msgid "" "break this promise, the Distutils will issue a warning but still process the " "broken package anyway." msgstr "" +"L'option ``packages`` dit aux *Distutils* de traiter (construire, " +"distribuer, installer, etc.) tous les modules en Python pur trouvés dans " +"chaque paquet mentionné dans la liste ``packages``. À cette fin, évidemment, " +"il faut une correspondance entre les noms des paquets et des répertoires " +"dans le système de fichiers. La correspondance par défaut est la plus " +"évidente. À savoir : le paquet :mod:`distutils` se trouve dans le " +"répertoire :file:`distutils` situé à la racine de la distribution. Ainsi, " +"quand vous écrivez ``packages = ['foo']`` dans votre script ``setup.py``, " +"vous vous engagez à ce que les *Distutils* trouvent un fichier ``foo/" +"__init__.py`` (qui peut s'épeler différemment sur votre système, mais vous " +"voyez l'idée) à un emplacement relatif au répertoire où se trouve le script " +"``setup.py``. Si ce n'est pas le cas, les *Distutils* lèvent un " +"avertissement mais traitent tout de même le paquet défectueux." #: ../Doc/distutils/setupscript.rst:77 msgid "" @@ -99,6 +151,14 @@ msgid "" "in any package at all) are in :file:`lib`, modules in the :mod:`foo` package " "are in :file:`lib/foo`, and so forth. Then you would put ::" msgstr "" +"Si vous utilisez une convention différente pour arranger votre répertoire de " +"sources, ce n'est pas un problème : vous avez seulement à fournir l'option " +"``package_dir`` pour prévenir les *Distutils* de l'usage de cette " +"convention. Par exemple, supposons que vous gardez toutes les sources Python " +"sous :file:`lib`, de telle sorte que les modules dans le « paquet " +"racine » (c'est-à-dire dans aucun paquet du tout) sont dans :file:`lib`, les " +"modules dans le paquet :mod:`foo` sont dans :file:`lib/foo`, et ainsi de " +"suite. Alors, vous pouvez mettre ::" #: ../Doc/distutils/setupscript.rst:86 msgid "" @@ -108,6 +168,11 @@ msgid "" "``packages = ['foo']``, you are promising that the file :file:`lib/foo/" "__init__.py` exists." msgstr "" +"dans votre script ``setup.py``. Les clés de ce dictionnaire sont les noms " +"des paquets, et un nom de paquet vide fait office de paquet racine. Les " +"valeurs sont des noms de répertoires relatifs à la racine de votre " +"distribution. Dans ce cas, lorsque vous dites ``packages = ['foo']``, vous " +"vous engagez à ce que le fichier :file:`lib/foo/__init__.py` existe." #: ../Doc/distutils/setupscript.rst:91 msgid "" @@ -115,6 +180,9 @@ msgid "" "`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be " "written in the setup script as ::" msgstr "" +"Une autre convention possible est de mettre le paquet :mod:`foo` directement " +"dans :file:`lib`, le paquet :mod:`foo.bar` dans :file:`lib/bar`, etc. Cela " +"s'écrirait ainsi dans le script ``setup.py`` : ::" #: ../Doc/distutils/setupscript.rst:97 msgid "" @@ -130,7 +198,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:110 msgid "Listing individual modules" -msgstr "" +msgstr "Lister chaque module indépendamment" #: ../Doc/distutils/setupscript.rst:112 msgid "" @@ -140,6 +208,11 @@ msgid "" "shown in section :ref:`distutils-simple-example`; here is a slightly more " "involved example::" msgstr "" +"Pour un petit projet, vous pouvez préférer lister tous les modules plutôt " +"que les paquets — surtout le cas d'un module seul qui va dans le « paquet " +"racine » (à savoir, aucun paquet du tout). Le cas le plus simple a été " +"montré dans la partie :ref:`distutils-simple-example` ; voici un exemple " +"plus concret ::" #: ../Doc/distutils/setupscript.rst:119 msgid "" @@ -150,10 +223,16 @@ msgid "" "you can override the package/directory correspondence using the " "``package_dir`` option." msgstr "" +"Deux modules sont décrits, l'un dans le paquet « racine », l'autre dans le " +"paquet :mod:`pkg`. Encore une fois, la structure paquet/répertoire par " +"défaut implique que ces deux modules peuvent être trouvés dans :file:`mod1." +"py` et :file:`pkg/mod2.py`, et que :file:`pkg/__init__.py` existe aussi. Là " +"aussi, vous pouvez redéfinir la correspondance paquet/répertoire en " +"utilisant l'option ``package_dir``." #: ../Doc/distutils/setupscript.rst:129 msgid "Describing extension modules" -msgstr "" +msgstr "Description des modules d'extension" #: ../Doc/distutils/setupscript.rst:131 msgid "" @@ -164,6 +243,13 @@ msgid "" "have to specify the extension name, source file(s), and any compile/link " "requirements (include directories, libraries to link with, etc.)." msgstr "" +"Tout comme écrire des modules d'extension Python est un peu plus compliqué " +"que d’écrire des modules purement en Python, les décrire aux *Distutils* est " +"un peu plus compliqué. Contrairement aux modules purs, il ne suffit pas de " +"simplement lister les modules ou les paquets et d'attendre que les " +"*Distutils* trouvent par eux-mêmes les bons fichiers ; vous devez définir le " +"nom de l'extension, du ou des fichiers de sources, et les prérequis de " +"compilation/lien (répertoires à inclure, bibliothèques à lier, etc.)." #: ../Doc/distutils/setupscript.rst:140 msgid "" @@ -175,6 +261,13 @@ msgid "" "instructions to the compiler/linker are needed, describing this extension is " "quite simple::" msgstr "" +"Tout ceci est fait à l'aide d'un autre argument nommé passé à :func:`setup`, " +"l'option ``ext_modules``. ``ext_modules`` est simplement une liste de " +"classes :class:`~distutils.core.Extension`, chacune décrivant une seule " +"extension de module. Supposons que votre distribution inclut une seule " +"extension appelée :mod:`foo` et implémentée par :file:`foo.c`. Si aucune " +"instruction supplémentaire au compilateur/lieur n'est requise, décrire cette " +"extension est assez simple ::" #: ../Doc/distutils/setupscript.rst:150 msgid "" @@ -182,6 +275,9 @@ msgid "" "along with :func:`setup`. Thus, the setup script for a module distribution " "that contains only this one extension and nothing else might be::" msgstr "" +"La classe :class:`Extension` peut être importée depuis :mod:`distutils.core` " +"en même temps que :func:`setup`. Ainsi, le script ``setup.py`` pour un " +"module qui ne contient que cette seule extension et rien d'autre peut être ::" #: ../Doc/distutils/setupscript.rst:160 msgid "" @@ -190,10 +286,14 @@ msgid "" "deal of flexibility in describing Python extensions, which is explained in " "the following sections." msgstr "" +"La classe :class:`Extension` (en réalité, la machinerie sous-jacente " +"construisant les extensions implémentées par la commande :command:" +"`build_ext`) permet une grande flexibilité dans la description des " +"extensions Python, ce qui est expliqué dans les parties suivantes." #: ../Doc/distutils/setupscript.rst:167 msgid "Extension names and packages" -msgstr "" +msgstr "Nom des extensions et paquets" #: ../Doc/distutils/setupscript.rst:169 msgid "" @@ -201,10 +301,12 @@ msgid "" "always the name of the extension, including any package names. For " "example, ::" msgstr "" +"Le premier argument du constructeur :class:`~distutils.core.Extension` est " +"toujours le nom de l'extension, incluant tout nom de paquet. Par exemple ::" #: ../Doc/distutils/setupscript.rst:174 msgid "describes an extension that lives in the root package, while ::" -msgstr "" +msgstr "décrit une extension qui se situe dans le paquet racine, tandis que ::" #: ../Doc/distutils/setupscript.rst:178 msgid "" @@ -213,6 +315,11 @@ msgid "" "is where in the filesystem (and therefore where in Python's namespace " "hierarchy) the resulting extension lives." msgstr "" +"décrit la même extension dans le paquet :mod:`pkg`. Les fichiers sources et " +"le code objet résultant sont identiques dans les deux cas ; la seule " +"différence est où, dans le système de fichier (et conséquemment dans la " +"hiérarchie de l'espace de nommage de Python), l'extension résultante se " +"situe." #: ../Doc/distutils/setupscript.rst:183 msgid "" @@ -220,16 +327,21 @@ msgid "" "same base package), use the ``ext_package`` keyword argument to :func:" "`setup`. For example, ::" msgstr "" +"Si vous avez un certain nombre d'extensions toutes dans le même paquet (ou " +"toutes sous le même paquet de base), utilisez l'argument nommé " +"``ext_package`` de :func:`setup`. Par exemple ::" #: ../Doc/distutils/setupscript.rst:193 msgid "" "will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar." "c` to :mod:`pkg.subpkg.bar`." msgstr "" +"compile :file:`foo.c` en l’extension :mod:`pkg.foo`, et :file:`bar.c` en :" +"mod:`pkg.subpkg.bar`." #: ../Doc/distutils/setupscript.rst:198 msgid "Extension source files" -msgstr "" +msgstr "Fichiers sources d'extension" #: ../Doc/distutils/setupscript.rst:200 msgid "" @@ -240,6 +352,12 @@ msgid "" "files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and " "Windows compilers.)" msgstr "" +"Le second argument du constructeur d'\\ :class:`~distutils.core.Extension` " +"est une liste de fichiers sources. Puisque les *Distutils* ne gèrent que les " +"extensions en C, C++ et Objective-C, ce sont normalement des fichiers " +"sources en C/C++/Objective-C (assurez vous d'utiliser les extensions " +"appropriées pour détecter les fichiers sources en C++ : :file:`.cc` et :file:" +"`.cpp` semblent être reconnus tant par les compilateurs Unix que Windows)." #: ../Doc/distutils/setupscript.rst:207 msgid "" @@ -248,16 +366,22 @@ msgid "" "will run SWIG on the interface file and compile the resulting C/C++ file " "into your extension." msgstr "" +"Néanmoins, vous pouvez également inclure des fichiers d'interface SWIG (:" +"file:`.i`) dans la liste ; la commande :command:`build_ext` sait comment " +"gérer les extensions SWIG : il lancera SWIG sur un fichier d'interface et " +"compilera le fichier en C/C++ en une extension." #: ../Doc/distutils/setupscript.rst:214 msgid "" "This warning notwithstanding, options to SWIG can be currently passed like " "this::" msgstr "" +"Malgré cet avertissement, les options peuvent être actuellement passées à " +"SWIG de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:223 msgid "Or on the commandline like this::" -msgstr "" +msgstr "Ou en ligne de commande de cette façon ::" #: ../Doc/distutils/setupscript.rst:227 msgid "" @@ -267,10 +391,16 @@ msgid "" "rc`) files for Visual C++. These will be compiled to binary resource (:file:" "`.res`) files and linked into the executable." msgstr "" +"Sur certaines plateformes, vous pouvez inclure des fichiers autres que des " +"sources qui seront traités par le compilateur et inclus dans votre " +"extension. Pour l'instant, cela concerne seulement les fichiers de messages " +"texte Windows (:file:`.mc`) et les fichiers de définition de ressource pour " +"Visual C++ (:file:`.rc`). Ils seront compilés en fichiers de ressources " +"binaires (:file:`.res`) et liés à l'exécutable." #: ../Doc/distutils/setupscript.rst:235 msgid "Preprocessor options" -msgstr "" +msgstr "Options de préprocesseur" #: ../Doc/distutils/setupscript.rst:237 msgid "" @@ -278,12 +408,19 @@ msgid "" "you need to specify include directories to search or preprocessor macros to " "define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``." msgstr "" +"Trois arguments optionnels de :class:`~distutils.core.Extension` aident si " +"vous avez besoin de préciser les dossiers d’en-têtes à chercher ou les " +"macros de préprocesseurs à charger ou ignorer : ``include_dirs``, " +"``define_macros``, et ``undef_macros``." #: ../Doc/distutils/setupscript.rst:241 msgid "" "For example, if your extension requires header files in the :file:`include` " "directory under your distribution root, use the ``include_dirs`` option::" msgstr "" +"Par exemple, si votre extension nécessite des fichiers d'en-tête dans le " +"répertoire :file:`include` à la racine de votre distribution, utilisez " +"l'option ``include_dirs`` ::" #: ../Doc/distutils/setupscript.rst:246 msgid "" @@ -291,12 +428,17 @@ msgid "" "will only be built on Unix systems with X11R6 installed to :file:`/usr`, you " "can get away with ::" msgstr "" +"Ici, vous pouvez définir le chemin absolu des répertoires ; si vous savez " +"que votre extension sera compilée sur un système Unix avec ``X11R6`` " +"installé dans :file:`/usr`, vous pouvez vous en sortir avec ::" #: ../Doc/distutils/setupscript.rst:252 msgid "" "You should avoid this sort of non-portable usage if you plan to distribute " "your code: it's probably better to write C code like ::" msgstr "" +"Il convient d'éviter ce type d'utilisation non portable si vous envisagez de " +"distribuer votre code : Il est probablement mieux d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:257 msgid "" @@ -310,6 +452,17 @@ msgid "" "in this case---is always included in the search path when building Python " "extensions, the best approach is to write C code like ::" msgstr "" +"Si vous avez besoin d'inclure des fichiers d'en-tête provenant d'autres " +"extensions Python, vous pouvez profiter du fait que les fichiers d'en-têtes " +"sont installés de façon cohérente par la commande :command:`install_headers` " +"des *Distutils*. Par exemple, les fichiers d'en-têtes de *Numerical Python* " +"(NumPy) sont installés (dans le cas d'une installation Unix standard) dans :" +"file:`/usr/local/include/python1.5/Numerical` — l'emplacement exact diffère " +"selon votre plateforme et votre installation de Python. Vu que le " +"répertoire :file:`include` de Python —\\ :file:`/usr/local/include/" +"python1.5` dans ce cas-ci — est toujours inclus dans le chemin de recherche " +"quand vous construisez des extensions Python, la meilleure approche est " +"d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:269 msgid "" @@ -317,6 +470,10 @@ msgid "" "header search path, though, you can find that directory using the Distutils :" "mod:`distutils.sysconfig` module::" msgstr "" +"Si vous devez mettre le répertoire :file:`include` de :file:`Numerical` " +"directement dans l'en-tête du chemin de recherche, cependant, vous pouvez " +"trouver ce répertoire en utilisant le module :mod:`distutils.sysconfig` des " +"*Distutils* ::" #: ../Doc/distutils/setupscript.rst:279 msgid "" @@ -324,6 +481,9 @@ msgid "" "installation, regardless of platform---it's probably easier to just write " "your C code in the sensible way." msgstr "" +"Même si c'est assez portable — ça marche sur la plupart des installations de " +"Python, indépendamment de la plateforme — il est probablement plus facile " +"d'écrire un code C un peu plus réfléchi." #: ../Doc/distutils/setupscript.rst:283 msgid "" @@ -335,6 +495,14 @@ msgid "" "your C source: with most compilers, this sets ``FOO`` to the string ``1``.) " "``undef_macros`` is just a list of macros to undefine." msgstr "" +"Vous pouvez définir ou ignorer des macros de pré-processeur avec les options " +"``define_macros`` et ``undef_macros``. ``define_macros`` prend une liste de " +"paires ``(nom, valeur)``, où ``nom`` est le nom de la macro à définir (une " +"chaîne de caractères) et ``valeur`` est sa valeur ; soit une chaîne de " +"caractères, soit ``None`` (définir une macro ``FOO`` à ``None`` est " +"équivalent à un simple ``#define FOO`` dans votre source en C ; pour la " +"majorité des compilateurs, cela définit la valeur de ``FOO`` à la chaîne de " +"caractère ``1``). ``undef_macros`` est juste une liste de macros à supprimer." #: ../Doc/distutils/setupscript.rst:291 msgid "For example::" @@ -342,11 +510,11 @@ msgstr "Par exemple ::" #: ../Doc/distutils/setupscript.rst:298 msgid "is the equivalent of having this at the top of every C source file::" -msgstr "" +msgstr "est équivalent à avoir ceci au début de chaque fichier source en C ::" #: ../Doc/distutils/setupscript.rst:307 msgid "Library options" -msgstr "" +msgstr "Options des bibliothèques" #: ../Doc/distutils/setupscript.rst:309 msgid "" @@ -357,33 +525,48 @@ msgid "" "time, and ``runtime_library_dirs`` is a list of directories to search for " "shared (dynamically loaded) libraries at run-time." msgstr "" +"Vous pouvez aussi définir les bibliothèques à lier quand vous construisez " +"votre extension, ainsi que le répertoire de recherche pour ces " +"bibliothèques. L'option ``libraries`` est une liste de bibliothèques à lier, " +"``library_dirs`` est une liste de répertoires dans lesquels chercher des " +"bibliothèques au moment de la liaison, et ``runtime_library_dirs`` est une " +"liste de répertoires pour la recherche des bibliothèques partagées (chargées " +"dynamiquement) à l'exécution." #: ../Doc/distutils/setupscript.rst:315 msgid "" "For example, if you need to link against libraries known to be in the " "standard library search path on target systems ::" msgstr "" +"Par exemple, pour lier des bibliothèques que l'on sait dans le chemin des " +"bibliothèques standards des systèmes cibles ::" #: ../Doc/distutils/setupscript.rst:321 msgid "" "If you need to link with libraries in a non-standard location, you'll have " "to include the location in ``library_dirs``::" msgstr "" +"Pour lier une bibliothèque se trouvant à un emplacement non standard, vous " +"devez inclure son emplacement dans ``library_dirs`` ::" #: ../Doc/distutils/setupscript.rst:328 msgid "" "(Again, this sort of non-portable construct should be avoided if you intend " "to distribute your code.)" msgstr "" +"Là aussi, ce genre de construction non portable doit être évité si vous avez " +"l'intention de distribuer votre code." #: ../Doc/distutils/setupscript.rst:335 msgid "Other options" -msgstr "" +msgstr "Autres options" #: ../Doc/distutils/setupscript.rst:337 msgid "" "There are still some other options which can be used to handle special cases." msgstr "" +"Il y a encore d'autres options qui peuvent être utilisées pour gérer des cas " +"spéciaux." #: ../Doc/distutils/setupscript.rst:339 msgid "" @@ -391,6 +574,9 @@ msgid "" "extension will not abort the build process, but instead simply not install " "the failing extension." msgstr "" +"L'option ``optional`` est un booléen ; s'il est vrai, un échec de la " +"construction dans l'extension n'annule pas le processus de construction, " +"mais à la place, l'extension en échec ne sera pas installée." #: ../Doc/distutils/setupscript.rst:343 msgid "" @@ -398,6 +584,9 @@ msgid "" "linker. These files must not have extensions, as the default extension for " "the compiler is used." msgstr "" +"L'option ``extra_objects`` est une liste d'objets fichiers à passer à " +"l'éditeur de liens. Ces fichiers ne doivent pas avoir d'extensions car " +"l'extension par défaut du compilateur est utilisée." #: ../Doc/distutils/setupscript.rst:347 msgid "" @@ -405,6 +594,9 @@ msgid "" "additional command line options for the respective compiler and linker " "command lines." msgstr "" +"``extra_compile_args`` et ``extra_link_args`` peuvent être utilisées pour " +"définir des options additionnelles en ligne de commande propres aux lignes " +"de commandes respectives du compilateur et de l'éditeur de liens." #: ../Doc/distutils/setupscript.rst:351 msgid "" @@ -413,6 +605,10 @@ msgid "" "when building compiled extensions: Distutils will automatically add " "``initmodule`` to the list of exported symbols." msgstr "" +"``export_symbols`` est seulement utile sur Windows. Elle peut contenir une " +"liste de symboles (fonctions ou variables) à exporter. Cette option n'est " +"pas requise pour la construction d'extensions compilées : *Distutils* ajoute " +"automatiquement ``initmodule`` à la liste des symboles exportés." #: ../Doc/distutils/setupscript.rst:356 msgid "" @@ -421,32 +617,40 @@ msgid "" "sources to rebuild extension if any on this files has been modified since " "the previous build." msgstr "" +"L'option ``depends`` est une liste de fichiers dont les extensions dépendent " +"(par exemple les fichiers d'en-têtes). La commande ``build`` appelle le " +"compilateur sur les sources pour reconstruire l'extension si un de ces " +"fichiers a été modifié depuis la dernière construction." #: ../Doc/distutils/setupscript.rst:362 msgid "Relationships between Distributions and Packages" -msgstr "" +msgstr "Relations entre distributions et paquets" #: ../Doc/distutils/setupscript.rst:364 msgid "A distribution may relate to packages in three specific ways:" msgstr "" +"Une distribution peut se rapporter à des paquets de trois manières " +"spécifiques :" #: ../Doc/distutils/setupscript.rst:366 msgid "It can require packages or modules." -msgstr "" +msgstr "elle peut nécessiter des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:368 msgid "It can provide packages or modules." -msgstr "" +msgstr "elle peut fournir des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:370 msgid "It can obsolete packages or modules." -msgstr "" +msgstr "elle peut rendre obsolète des paquets ou des modules." #: ../Doc/distutils/setupscript.rst:372 msgid "" "These relationships can be specified using keyword arguments to the :func:" "`distutils.core.setup` function." msgstr "" +"Ces relations peuvent être définies en utilisant des paramètres nommés dans " +"la fonction :func:`distutils.core.setup`." #: ../Doc/distutils/setupscript.rst:375 msgid "" @@ -455,6 +659,10 @@ msgid "" "be a list of strings. Each string specifies a package that is required, and " "optionally what versions are sufficient." msgstr "" +"Les dépendances à d'autres modules et paquets Python peuvent être définies " +"en fournissant le paramètre nommé ``requires`` à :func:`setup`. La valeur " +"doit être une liste de chaînes de caractères. Chaque chaîne de caractères " +"définit un paquet requis et, en option, les versions minimales." #: ../Doc/distutils/setupscript.rst:380 msgid "" @@ -462,6 +670,9 @@ msgid "" "should consist entirely of the module or package name. Examples include " "``'mymodule'`` and ``'xml.parsers.expat'``." msgstr "" +"S'il n'est pas nécessaire de préciser la version d'un module ou d'un paquet, " +"la chaîne de caractères contient simplement les noms de modules ou de " +"paquets. Par exemple ``mymodule`` et ``'xml.parsers.expat'``." #: ../Doc/distutils/setupscript.rst:384 msgid "" @@ -469,6 +680,10 @@ msgid "" "in parentheses. Each qualifier may consist of a comparison operator and a " "version number. The accepted comparison operators are::" msgstr "" +"Si des versions spécifiques sont requises, une suite de qualificatifs peut " +"être fournie entre parenthèses. Chaque qualificatif peut contenir un " +"opérateur de comparaison et un numéro de version. Les opérateurs de " +"comparaison acceptés sont ::" #: ../Doc/distutils/setupscript.rst:391 msgid "" @@ -476,14 +691,18 @@ msgid "" "optional whitespace). In this case, all of the qualifiers must be matched; " "a logical AND is used to combine the evaluations." msgstr "" +"Ils peuvent être combinés en utilisant plusieurs qualificatifs séparés par " +"des virgules (et de façon optionnelle, des espaces). Dans ce cas, tous les " +"qualificatifs doivent être respectés ; un ET logique est utilisé pour " +"combiner les évaluations." #: ../Doc/distutils/setupscript.rst:395 msgid "Let's look at a bunch of examples:" -msgstr "" +msgstr "Jetons un œil à quelques exemples :" #: ../Doc/distutils/setupscript.rst:398 msgid "Requires Expression" -msgstr "" +msgstr "Valeur de ``requires``" #: ../Doc/distutils/setupscript.rst:398 ../Doc/distutils/setupscript.rst:416 msgid "Explanation" @@ -491,20 +710,22 @@ msgstr "Explication" #: ../Doc/distutils/setupscript.rst:400 msgid "``==1.0``" -msgstr "" +msgstr "``==1.0``" #: ../Doc/distutils/setupscript.rst:400 msgid "Only version ``1.0`` is compatible" -msgstr "" +msgstr "Seule la version ``1.0`` est compatible." #: ../Doc/distutils/setupscript.rst:402 msgid "``>1.0, !=1.5.1, <2.0``" -msgstr "" +msgstr "``>1.0, !=1.5.1, <2.0``" #: ../Doc/distutils/setupscript.rst:402 msgid "" "Any version after ``1.0`` and before ``2.0`` is compatible, except ``1.5.1``" msgstr "" +"Toute version après ``1.0`` et avant ``2.0`` est compatible, à l'exception " +"de ``1.5.1``." #: ../Doc/distutils/setupscript.rst:406 msgid "" @@ -515,6 +736,13 @@ msgid "" "optionally identifies the version. If the version is not specified, it is " "assumed to match that of the distribution." msgstr "" +"Maintenant que nous pouvons définir des dépendances, nous devons également " +"être en mesure de définir ce que d'autres distributions peuvent attendre de " +"notre part. Cela est réalisé en utilisant l'argument nommé *provides* dans :" +"func:`setup`. La valeur de cet argument est une liste de chaînes de " +"caractères, chacune d'entre elles étant un module Python ou un paquet et, de " +"façon optionnelle, identifie une version. Si la version n'est pas définie, " +"il est supposé qu'elle correspond à celle de la distribution." #: ../Doc/distutils/setupscript.rst:413 msgid "Some examples:" @@ -522,23 +750,25 @@ msgstr "Quelques exemples :" #: ../Doc/distutils/setupscript.rst:416 msgid "Provides Expression" -msgstr "" +msgstr "Valeur de ``provides``" #: ../Doc/distutils/setupscript.rst:418 msgid "``mypkg``" -msgstr "" +msgstr "``mypkg``" #: ../Doc/distutils/setupscript.rst:418 msgid "Provide ``mypkg``, using the distribution version" -msgstr "" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." #: ../Doc/distutils/setupscript.rst:421 msgid "``mypkg (1.1)``" -msgstr "" +msgstr "``mypkg (1.1)``" #: ../Doc/distutils/setupscript.rst:421 msgid "Provide ``mypkg`` version 1.1, regardless of the distribution version" msgstr "" +"Fournit ``mypkg`` en version 1.1, indépendamment de la version de la " +"distribution." #: ../Doc/distutils/setupscript.rst:425 msgid "" @@ -549,6 +779,13 @@ msgid "" "more version qualifiers. Version qualifiers are given in parentheses after " "the module or package name." msgstr "" +"On peut déclarer d'autres paquets obsolètes dans un paquet en utilisant " +"l'argument nommé *obsoletes*. La valeur pour celui-ci est similaire à celui " +"de l'argument nommé *requires* : une liste de chaînes de caractères donnant " +"les spécifications du module ou du paquet. Chaque spécification est " +"constituée d'un nom de module ou de paquet qui peut être suivi au choix par " +"un ou plusieurs qualificateurs de versions. Les qualificateurs de versions " +"sont donnés entre parenthèses après le nom de module ou de paquet." #: ../Doc/distutils/setupscript.rst:432 msgid "" @@ -556,16 +793,23 @@ msgid "" "the distribution being described. If no qualifiers are given, all versions " "of the named module or package are understood to be obsoleted." msgstr "" +"Les versions identifiées par les qualificateurs sont celles qui sont rendues " +"obsolètes par la distribution décrite. Si aucun qualificateur n'est donné, " +"toutes les versions du module ou du paquet nommé sont considérées comme " +"obsolètes." #: ../Doc/distutils/setupscript.rst:439 msgid "Installing Scripts" -msgstr "" +msgstr "Installation des scripts" #: ../Doc/distutils/setupscript.rst:441 msgid "" "So far we have been dealing with pure and non-pure Python modules, which are " "usually not run by themselves but imported by scripts." msgstr "" +"Jusqu'à présent nous avons interagi avec des modules Python purs ou non, qui " +"ne sont habituellement pas lancés par eux-mêmes mais importés par des " +"scripts." #: ../Doc/distutils/setupscript.rst:444 msgid "" @@ -578,22 +822,35 @@ msgid "" "`!--executable` (or :option:`!-e`) option will allow the interpreter path to " "be explicitly overridden." msgstr "" +"Les scripts sont des fichiers contenant du code source Python prévus pour " +"être lancés en ligne de commande. Les scripts n'ont pas besoin des " +"*Distutils* pour faire quoi que ce soit de très compliqué. La seule " +"fonctionnalité astucieuse est que la première ligne du script commence par " +"``#!`` et contient le mot « python », les *Distutils* ajusteront la première " +"ligne pour faire référence à l'emplacement actuel de l'interpréteur. Par " +"défaut, elle est remplacée par l'emplacement de l'interpréteur en fonction. " +"L'option :option:`!--executable` (ou :option:`!-e`) permet de définir " +"explicitement le chemin vers l'interpréteur." #: ../Doc/distutils/setupscript.rst:452 msgid "" "The ``scripts`` option simply is a list of files to be handled in this way. " "From the PyXML setup script::" msgstr "" +"L'option ``scripts`` est simplement une liste de fichiers à utiliser de " +"cette façon. Dans le script ``setup.py`` de PyML ::" #: ../Doc/distutils/setupscript.rst:459 msgid "" "All the scripts will also be added to the ``MANIFEST`` file if no template " "is provided. See :ref:`manifest`." msgstr "" +"Tous les scripts seront aussi ajoutés au fichier ``MANIFEST`` si aucun " +"modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:467 msgid "Installing Package Data" -msgstr "" +msgstr "Installation de paquets de données" #: ../Doc/distutils/setupscript.rst:469 msgid "" @@ -602,6 +859,11 @@ msgid "" "text files containing documentation that might be of interest to programmers " "using the package. These files are called :dfn:`package data`." msgstr "" +"Souvent, des fichiers additionnels doivent être installés dans le paquet. " +"Ces fichiers sont souvent de la donnée qui est intimement liée à " +"l'implémentation du paquet, ou des fichiers textes contenant de la " +"documentation intéressant le programmeur utilisant le paquet. Ces fichiers " +"sont appelés :dfn:`paquets de données `." #: ../Doc/distutils/setupscript.rst:474 msgid "" @@ -613,32 +875,47 @@ msgid "" "appropriate); that is, the files are expected to be part of the package in " "the source directories. They may contain glob patterns as well." msgstr "" +"Les paquets de données peuvent être ajoutés en utilisant l'argument nommé " +"``package_data`` dans la fonction :func:`setup`. La valeur doit être un " +"tableau de correspondances entre le nom du paquet et une liste de chemins " +"relatifs à copier dans le paquet. Les chemins sont interprétés relativement " +"au répertoire contenant le paquet (l'information du mappage ``package_dir`` " +"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers " +"fassent partie du répertoire source du paquet. Ils peuvent également " +"contenir des motifs `glob`." #: ../Doc/distutils/setupscript.rst:482 msgid "" "The path names may contain directory portions; any necessary directories " "will be created in the installation." msgstr "" +"Les chemins d'accès peuvent contenir une hiérarchie de répertoires ; tout " +"répertoire nécessaire sera créé dans cette installation." #: ../Doc/distutils/setupscript.rst:485 msgid "" "For example, if a package should contain a subdirectory with several data " "files, the files can be arranged like this in the source tree::" msgstr "" +"Par exemple, si un paquet doit inclure un sous-répertoire avec plusieurs " +"fichiers de donnée, les fichiers peuvent être organisés dans l'arborescence " +"de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:498 msgid "The corresponding call to :func:`setup` might be::" -msgstr "" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" #: ../Doc/distutils/setupscript.rst:507 msgid "" "All the files that match ``package_data`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``package_data`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:515 msgid "Installing Additional Files" -msgstr "" +msgstr "Installation de fichiers additionnels" #: ../Doc/distutils/setupscript.rst:517 msgid "" @@ -646,18 +923,26 @@ msgid "" "the module distribution: configuration files, message catalogs, data files, " "anything which doesn't fit in the previous categories." msgstr "" +"L'option ``data_files`` peut être utilisée pour définir des fichiers " +"additionnels requis pour la distribution du module : fichiers de " +"configuration, catalogues de messages, fichiers de donnée, tout ce qui ne " +"rentre pas dans les catégories précédentes." #: ../Doc/distutils/setupscript.rst:521 msgid "" "``data_files`` specifies a sequence of (*directory*, *files*) pairs in the " "following way::" msgstr "" +"``data_files`` définit une séquence de paires (*répertoires*, *fichiers*) de " +"la façon suivante ::" #: ../Doc/distutils/setupscript.rst:529 msgid "" "Each (*directory*, *files*) pair in the sequence specifies the installation " "directory and the files to install there." msgstr "" +"Chaque paire (*répertoire*, *fichier*) dans la séquence définit le " +"répertoire d'installation et les fichiers à y installer." #: ../Doc/distutils/setupscript.rst:532 msgid "" @@ -666,6 +951,10 @@ msgid "" "specify the directory where the data files will be installed, but you cannot " "rename the data files themselves." msgstr "" +"Chaque nom de fichier dans *fichiers* est interprété relativement au script :" +"file:`setup.py` à la racine du paquet de la distribution source. Notez que " +"vous pouvez définir un répertoire où les fichiers de donnée seront " +"installés, mais vous ne pouvez pas renommer les fichiers de donnée eux-mêmes." #: ../Doc/distutils/setupscript.rst:537 msgid "" @@ -677,6 +966,15 @@ msgid "" "*files* is used to determine the final location of the installed file; only " "the name of the file is used." msgstr "" +"Le *répertoire* doit être un chemin relatif. Il est interprété relativement " +"au préfixe d'installation (le ``sys.prefix`` de Python pour les " +"installations ``système`` ; ``site.USER_BASE`` pour les installations " +"``utilisateur``). *Distutils* permet à *répertoire* d'être un chemin " +"d'installation absolu, mais cela est déconseillé dans la mesure où c'est " +"incompatible avec la mise au format `wheel` du paquet. Aucune information de " +"répertoire provenant de *fichiers* n'est utilisée pour déterminer " +"l’emplacement final d'installation du fichier ; seul le nom du fichier est " +"utilisé." #: ../Doc/distutils/setupscript.rst:545 msgid "" @@ -686,26 +984,36 @@ msgid "" "files directly in the target directory, an empty string should be given as " "the directory." msgstr "" +"Vous pouvez définir les options ``data_files`` comme une simple succession " +"de fichiers sans définir de répertoire cible, mais cela n'est pas " +"recommandé, et la commande :command:`install` affichera un message d'alerte " +"dans ce cas. Pour installer des fichiers de donnée directement dans le " +"répertoire cible, une chaîne de caractère vide doit être donnée en tant que " +"répertoire." #: ../Doc/distutils/setupscript.rst:551 msgid "" "All the files that match ``data_files`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``data_files`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:559 msgid "Additional meta-data" -msgstr "" +msgstr "Métadonnées additionnelles" #: ../Doc/distutils/setupscript.rst:561 msgid "" "The setup script may include additional meta-data beyond the name and " "version. This information includes:" msgstr "" +"Le script ``setup.py`` peut inclure des métadonnées additionnelles en plus " +"du nom et de la version. Cela inclut les informations suivantes :" #: ../Doc/distutils/setupscript.rst:565 msgid "Meta-Data" -msgstr "" +msgstr "Métadonnées" #: ../Doc/distutils/setupscript.rst:565 msgid "Description" @@ -725,13 +1033,13 @@ msgstr "``name``" #: ../Doc/distutils/setupscript.rst:567 msgid "name of the package" -msgstr "" +msgstr "nom du paquet" #: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:569 #: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:576 #: ../Doc/distutils/setupscript.rst:583 ../Doc/distutils/setupscript.rst:599 msgid "short string" -msgstr "" +msgstr "courte chaîne de caractères" #: ../Doc/distutils/setupscript.rst:567 ../Doc/distutils/setupscript.rst:581 msgid "\\(1)" @@ -743,7 +1051,7 @@ msgstr "``version``" #: ../Doc/distutils/setupscript.rst:569 msgid "version of this release" -msgstr "" +msgstr "version de la publication" #: ../Doc/distutils/setupscript.rst:569 msgid "(1)(2)" @@ -751,11 +1059,11 @@ msgstr "(1)(2)" #: ../Doc/distutils/setupscript.rst:571 msgid "``author``" -msgstr "" +msgstr "``author``" #: ../Doc/distutils/setupscript.rst:571 msgid "package author's name" -msgstr "" +msgstr "nom de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:571 ../Doc/distutils/setupscript.rst:573 #: ../Doc/distutils/setupscript.rst:576 ../Doc/distutils/setupscript.rst:578 @@ -764,31 +1072,31 @@ msgstr "\\(3)" #: ../Doc/distutils/setupscript.rst:573 msgid "``author_email``" -msgstr "" +msgstr "``author_email``" #: ../Doc/distutils/setupscript.rst:573 msgid "email address of the package author" -msgstr "" +msgstr "adresse courriel de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:578 msgid "email address" -msgstr "" +msgstr "adresse de courriel" #: ../Doc/distutils/setupscript.rst:576 msgid "``maintainer``" -msgstr "" +msgstr "``maintainer``" #: ../Doc/distutils/setupscript.rst:576 msgid "package maintainer's name" -msgstr "" +msgstr "nom du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:578 msgid "``maintainer_email``" -msgstr "" +msgstr "``maintainer_email``" #: ../Doc/distutils/setupscript.rst:578 msgid "email address of the package maintainer" -msgstr "" +msgstr "adresse du courriel du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:581 msgid "``url``" @@ -796,11 +1104,11 @@ msgstr "``url``" #: ../Doc/distutils/setupscript.rst:581 msgid "home page for the package" -msgstr "" +msgstr "page d’accueil du paquet" #: ../Doc/distutils/setupscript.rst:581 ../Doc/distutils/setupscript.rst:590 msgid "URL" -msgstr "" +msgstr "URL" #: ../Doc/distutils/setupscript.rst:583 msgid "``description``" @@ -808,7 +1116,7 @@ msgstr "``description``" #: ../Doc/distutils/setupscript.rst:583 msgid "short, summary description of the package" -msgstr "" +msgstr "bref résumé décrivant le paquet" #: ../Doc/distutils/setupscript.rst:587 msgid "``long_description``" @@ -816,11 +1124,11 @@ msgstr "``long_description``" #: ../Doc/distutils/setupscript.rst:587 msgid "longer description of the package" -msgstr "" +msgstr "description plus complète du paquet" #: ../Doc/distutils/setupscript.rst:587 msgid "long string" -msgstr "" +msgstr "longue chaîne de caractères" #: ../Doc/distutils/setupscript.rst:587 msgid "\\(4)" @@ -828,24 +1136,24 @@ msgstr "\\(4)" #: ../Doc/distutils/setupscript.rst:590 msgid "``download_url``" -msgstr "" +msgstr "``download_url``" #: ../Doc/distutils/setupscript.rst:590 msgid "location where the package may be downloaded" -msgstr "" +msgstr "endroit où le paquet peut être téléchargé" #: ../Doc/distutils/setupscript.rst:593 msgid "``classifiers``" -msgstr "" +msgstr "``classifiers``" #: ../Doc/distutils/setupscript.rst:593 msgid "a list of classifiers" -msgstr "" +msgstr "une liste de classificateurs" #: ../Doc/distutils/setupscript.rst:593 ../Doc/distutils/setupscript.rst:595 #: ../Doc/distutils/setupscript.rst:597 msgid "list of strings" -msgstr "" +msgstr "liste de chaînes de caractères" #: ../Doc/distutils/setupscript.rst:593 msgid "(6)(7)" @@ -853,23 +1161,23 @@ msgstr "(6)(7)" #: ../Doc/distutils/setupscript.rst:595 msgid "``platforms``" -msgstr "" +msgstr "``platforms``" #: ../Doc/distutils/setupscript.rst:595 msgid "a list of platforms" -msgstr "" +msgstr "une liste de plateformes" #: ../Doc/distutils/setupscript.rst:595 ../Doc/distutils/setupscript.rst:597 msgid "(6)(8)" -msgstr "" +msgstr "(6)(8)" #: ../Doc/distutils/setupscript.rst:597 msgid "``keywords``" -msgstr "" +msgstr "``keywords``" #: ../Doc/distutils/setupscript.rst:597 msgid "a list of keywords" -msgstr "" +msgstr "une liste de mots-clés" #: ../Doc/distutils/setupscript.rst:599 msgid "``license``" @@ -877,7 +1185,7 @@ msgstr "``license``" #: ../Doc/distutils/setupscript.rst:599 msgid "license for the package" -msgstr "" +msgstr "licence du paquet" #: ../Doc/distutils/setupscript.rst:599 msgid "\\(5)" @@ -889,24 +1197,30 @@ msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:605 msgid "These fields are required." -msgstr "" +msgstr "Ces champs sont requis." #: ../Doc/distutils/setupscript.rst:608 msgid "" "It is recommended that versions take the form *major.minor[.patch[.sub]]*." msgstr "" +"Il est recommandé que les versions prennent la forme *majeure.mineure[." +"correctif[.sous-correctif]]*." #: ../Doc/distutils/setupscript.rst:611 msgid "" "Either the author or the maintainer must be identified. If maintainer is " "provided, distutils lists it as the author in :file:`PKG-INFO`." msgstr "" +"L'auteur ou un mainteneur doit être identifié. Si un mainteneur est fourni, " +"*distutils* l'indique en tant qu'auteur dans le fichier :file:`PKG-INFO`." #: ../Doc/distutils/setupscript.rst:615 msgid "" "The ``long_description`` field is used by PyPI when you publish a package, " "to build its project page." msgstr "" +"Le champ ``long_description`` est utilisé par PyPI quand vous publiez un " +"paquet pour construire sa page de projet." #: ../Doc/distutils/setupscript.rst:619 msgid "" @@ -915,15 +1229,22 @@ msgid "" "See the ``Classifier`` field. Notice that there's a ``licence`` distribution " "option which is deprecated but still acts as an alias for ``license``." msgstr "" +"Le champ ``license`` est un texte indiquant la licence du paquet quand la " +"licence n'est pas indiquée dans les classificateurs de type « Licence » " +"Trove. Voir le champ ``Classifier``. À noter qu'il y a une option de " +"distribution ``licence`` qui est obsolète mais agit toujours comme un alias " +"pour ``license``." #: ../Doc/distutils/setupscript.rst:626 msgid "This field must be a list." -msgstr "" +msgstr "Ce champ doit être une liste." #: ../Doc/distutils/setupscript.rst:629 msgid "" "The valid classifiers are listed on `PyPI `_." msgstr "" +"Les classificateurs valides sont listés sur `PyPI `_." #: ../Doc/distutils/setupscript.rst:633 msgid "" @@ -931,6 +1252,10 @@ msgid "" "pass a comma-separated string ``'foo, bar'``, it will be converted to " "``['foo', 'bar']``, Otherwise, it will be converted to a list of one string." msgstr "" +"Pour préserver la rétrocompatibilité, ce champ accepte aussi une chaîne de " +"caractères. Si vous passez une chaine de caractères séparée par des virgules " +"``'truc, machin'``, elle sera convertie en ``['truc', 'machin']``, " +"Autrement, elle sera convertie en une liste d'une chaîne de caractères." #: ../Doc/distutils/setupscript.rst:639 msgid "'short string'" @@ -938,7 +1263,7 @@ msgstr "'chaîne courte'" #: ../Doc/distutils/setupscript.rst:639 msgid "A single line of text, not more than 200 characters." -msgstr "" +msgstr "Une simple ligne de texte ne dépassant par 200 caractères." #: ../Doc/distutils/setupscript.rst:643 msgid "'long string'" @@ -949,6 +1274,8 @@ msgid "" "Multiple lines of plain text in reStructuredText format (see http://docutils." "sourceforge.net/)." msgstr "" +"De multiples lignes de texte au format ReStructuredText (voir http://" +"docutils.sourceforge.net/)." #: ../Doc/distutils/setupscript.rst:646 msgid "'list of strings'" @@ -956,7 +1283,7 @@ msgstr "'liste de chaînes'" #: ../Doc/distutils/setupscript.rst:646 msgid "See below." -msgstr "" +msgstr "Voir ci-dessous." #: ../Doc/distutils/setupscript.rst:648 msgid "" @@ -972,42 +1299,59 @@ msgid "" "which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " "testing). Some examples:" msgstr "" +"Encoder les informations de version est un art en soi. Les paquets Python " +"adhèrent généralement au format de version *majeure.mineure[.correctif]" +"[sous]*. Le numéro majeur 0 est utilisé pour les publications " +"expérimentales, initiales d'un logiciel. Il est incrémenté pour les " +"publications qui représentent des étapes majeures pour le paquet. Le nombre " +"mineur est incrémenté quand d'importantes nouvelles fonctionnalités sont " +"ajoutées au paquet. Le numéro de correctif s'incrémente lors de la " +"publication d'une correction de bogue est faite. Celles-ci sont \"*a1,a2,...," +"aN*\" (pour les publications alpha, où les fonctionnalités et l'API peut " +"changer), \"*b1,b2,...,bN*\" (pour les publications *beta*, qui corrigent " +"seulement les bogues) et \"*pr1,pr2,...,prN*\" (pour les ultimes pré-" +"publication et publications de test). Quelques exemples :" #: ../Doc/distutils/setupscript.rst:660 msgid "0.1.0" -msgstr "" +msgstr "0.1.0" #: ../Doc/distutils/setupscript.rst:660 msgid "the first, experimental release of a package" -msgstr "" +msgstr "la première, publication expérimentale du paquet" #: ../Doc/distutils/setupscript.rst:663 msgid "1.0.1a2" -msgstr "" +msgstr "1.0.1a2" #: ../Doc/distutils/setupscript.rst:663 msgid "the second alpha release of the first patch version of 1.0" -msgstr "" +msgstr "la seconde publication alpha du premier correctif de la version 1.0" #: ../Doc/distutils/setupscript.rst:665 msgid "``classifiers`` must be specified in a list::" -msgstr "" +msgstr "les ``classifiers`` doivent être définis dans une liste ::" #: ../Doc/distutils/setupscript.rst:686 msgid "" ":class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` " "or ``platforms`` fields are not specified as a list or a string." msgstr "" +":class:`~distutils.core.setup` alerte maintenant lorsque les champs " +"``classifiers``, ``keywords`` ou ``platforms`` ne sont pas définis en tant " +"que liste ou chaîne de caractères." #: ../Doc/distutils/setupscript.rst:693 msgid "Debugging the setup script" -msgstr "" +msgstr "Débogage du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:695 msgid "" "Sometimes things go wrong, and the setup script doesn't do what the " "developer wants." msgstr "" +"Parfois les choses tournent mal et le script ``setup.py`` ne fait pas ce que " +"le développeur veut." #: ../Doc/distutils/setupscript.rst:698 msgid "" @@ -1019,6 +1363,14 @@ msgid "" "or the Python installation is broken because they don't read all the way " "down to the bottom and see that it's a permission problem." msgstr "" +"*Distutils* intercepte toute exception lors de l'exécution du script ``setup." +"py`` et affiche un message d'erreur simple avant d'arrêter le script. L'idée " +"est de ne pas embrouiller les administrateurs qui ne savent pas grand-chose " +"de Python et qui essayent d'installer un paquet. S'ils reçoivent une grosse " +"et longue trace d'appels provenant des entrailles de *Distutils*, ils " +"peuvent penser que le paquet ou que l'installation de Python est corrompue " +"car, ils ne lisent pas tout jusqu'en bas alors que c'est un problème de " +"droits." #: ../Doc/distutils/setupscript.rst:706 msgid "" @@ -1029,6 +1381,13 @@ msgid "" "traceback when an exception occurs, and print the whole command line when an " "external program (like a C compiler) fails." msgstr "" +"D'un autre côté, cela n'aide pas le développeur à trouver la cause du " +"problème. À cette fin, la variable d'environnement :envvar:`DISTUTILS_DEBUG` " +"peut être assignée à n'importe quoi sauf une chaîne de caractères vide, et " +"*distutils* affichera maintenant une information détaillée à propos de ce " +"qu'il fait, déversera la trace d'appels complète lors d'une exception, et " +"affichera la ligne de commande complète quand un programme externe (comme un " +"compilateur C) échoue." #~ msgid "\\(6)" #~ msgstr "\\(6)" diff --git a/distutils/uploading.po b/distutils/uploading.po index b914e4e42..575c2bcc0 100644 --- a/distutils/uploading.po +++ b/distutils/uploading.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2017-10-18 09:24+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-08-21 12:22+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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" #: ../Doc/distutils/uploading.rst:5 msgid "Uploading Packages to the Package Index" @@ -23,6 +24,8 @@ msgid "" "References to up to date PyPI documentation can be found at :ref:`publishing-" "python-packages`." msgstr "" +"Des références actualisées à la documentation de PyPI sont disponibles sur :" +"ref:`publishing-python-packages`." #~ msgid "" #~ "The contents of this page have moved to the section :ref:`package-index`." diff --git a/extending/extending.po b/extending/extending.po index b67b71508..ff4cb1c53 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -135,6 +135,9 @@ msgid "" "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " "``Python.h``. See :ref:`parsetuple` for a description of this macro." msgstr "" +"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " +"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " +"macro." #: ../Doc/extending/extending.rst:75 msgid "" @@ -567,13 +570,16 @@ msgstr "" #: ../Doc/extending/extending.rst:312 msgid "The Module's Method Table and Initialization Function" -msgstr "" +msgstr "La fonction d'initialisation et le tableau des méthodes du module" #: ../Doc/extending/extending.rst:314 msgid "" "I promised to show how :c:func:`spam_system` is called from Python programs. " "First, we need to list its name and address in a \"method table\"::" msgstr "" +"Nous avons promis de montrer comment :c:func:`spam_system` est appelée " +"depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et " +"son adresse dans un « tableau des méthodes » ::" #: ../Doc/extending/extending.rst:325 msgid "" @@ -583,6 +589,11 @@ msgid "" "value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` " "is used." msgstr "" +"Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type de " +"convention à utiliser pour la fonction C, à destination de l'interpréteur. " +"Il doit valoir normalement ``METH_VARARGS`` ou ``METH_VARARGS | " +"METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:" +"func:`PyArg_ParseTuple` est utilisée." #: ../Doc/extending/extending.rst:330 msgid "" @@ -590,6 +601,10 @@ msgid "" "level parameters to be passed in as a tuple acceptable for parsing via :c:" "func:`PyArg_ParseTuple`; more information on this function is provided below." msgstr "" +"Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que les " +"paramètres Python soient passés comme un n-uplet que l'on peut analyser " +"*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont " +"fournies plus bas." #: ../Doc/extending/extending.rst:334 msgid "" @@ -599,11 +614,18 @@ msgid "" "keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " "to such a function." msgstr "" +"Le bit :const:`METH_KEYWORDS` peut être mis à un dans le troisième champ si " +"des arguments par mot-clés doivent être passés à la fonction. Dans ce cas, " +"la fonction C doit accepter un troisième paramètre ``PyObject *`` qui est un " +"dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` " +"pour analyser les arguments d'une telle fonction." #: ../Doc/extending/extending.rst:340 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" +"Le tableau des méthodes doit être référencé dans la structure de définition " +"du module ::" #: ../Doc/extending/extending.rst:351 msgid "" @@ -612,6 +634,10 @@ msgid "" "`PyInit_name`, where *name* is the name of the module, and should be the " "only non-\\ ``static`` item defined in the module file::" msgstr "" +"Cette structure, à son tour, doit être transmise à l'interpréteur dans la " +"fonction d'initialisation du module. La fonction d'initialisation doit être " +"nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit être le " +"seul élément non ``static`` défini dans le fichier du module ::" #: ../Doc/extending/extending.rst:362 msgid "" @@ -619,6 +645,10 @@ msgid "" "type, declares any special linkage declarations required by the platform, " "and for C++ declares the function as ``extern \"C\"``." msgstr "" +"Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet de " +"type ``PyObject *``, et déclare également toute déclaration de liaison " +"spéciale requise par la plate-forme, et pour le C++ déclare la fonction " +"comme un C ``extern``." #: ../Doc/extending/extending.rst:366 msgid "" @@ -641,6 +671,11 @@ msgid "" "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" +"Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est pas " +"appelée automatiquement, sauf s'il y a une entrée dans la table :c:data:" +"`PyImport_Inittab`. Pour ajouter le module à la table d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivi éventuellement d'une " +"importation du module ::" #: ../Doc/extending/extending.rst:413 msgid "" @@ -650,6 +685,12 @@ msgid "" "extension modules. Extension module authors should exercise caution when " "initializing internal data structures." msgstr "" +"Supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un processus (ou suivre un :c:func:" +"`fork` sans l'intervention d'un :c:func:`exec`) peut créer des problèmes " +"pour certains modules d'extension. Les auteurs de modules d'extension " +"doivent faire preuve de prudence lorsqu'ils initialisent des structures de " +"données internes." #: ../Doc/extending/extending.rst:419 msgid "" @@ -657,6 +698,9 @@ msgid "" "distribution as :file:`Modules/xxmodule.c`. This file may be used as a " "template or simply read as an example." msgstr "" +"Un exemple de module plus substantiel est inclus dans la distribution des " +"sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " +"utilisé comme modèle ou simplement lu comme exemple." #: ../Doc/extending/extending.rst:425 msgid "" @@ -665,10 +709,15 @@ msgid "" "``PyInit_spam``, and creation of the module is left to the import machinery. " "For details on multi-phase initialization, see :PEP:`489`." msgstr "" +"Contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phase* (nouveau en Python 3.5), où une structure " +"*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " +"module est laissée au mécanisme d'importation. Pour plus de détails sur " +"l'initialisation multi-phase, voir :PEP:`489`." #: ../Doc/extending/extending.rst:434 msgid "Compilation and Linkage" -msgstr "" +msgstr "Compilation et liaison" #: ../Doc/extending/extending.rst:436 msgid "" @@ -707,7 +756,7 @@ msgstr "" #: ../Doc/extending/extending.rst:471 msgid "Calling Python Functions from C" -msgstr "" +msgstr "Appeler des fonctions Python en C" #: ../Doc/extending/extending.rst:473 msgid "" @@ -746,6 +795,10 @@ msgid "" "c:func:`PyArg_ParseTuple` function and its arguments are documented in " "section :ref:`parsetuple`." msgstr "" +"Cette fonction doit être déclarée en utilisant le drapeau :const:" +"`METH_VARARGS` ; ceci est décrit dans la section :ref:`methodtable`. La " +"fonction :c:func:`PyArg_ParseTuple` et ses arguments sont documentés dans la " +"section :ref:`parsetuple`." #: ../Doc/extending/extending.rst:522 msgid "" @@ -807,6 +860,16 @@ msgid "" "simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " "you want to pass an integral event code, you might use the following code::" msgstr "" +"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " +"peut-être aussi fournir une liste d'arguments à :c:func:" +"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également " +"fournie par le programme Python, par l'intermédiaire de la même interface " +"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et " +"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous " +"pouvez avoir à construire un nouveau n-uplet à passer comme liste " +"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:" +"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement " +"intégral, vous pouvez utiliser le code suivant ::" #: ../Doc/extending/extending.rst:594 msgid "" @@ -822,14 +885,18 @@ msgid "" "`PyObject_Call`, which supports arguments and keyword arguments. As in the " "above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" msgstr "" +"Vous pouvez également appeler une fonction avec des arguments nommés en " +"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " +"arguments nommés. Comme dans l'exemple ci-dessus, nous utilisons :c:func:" +"`Py_BuildValue` pour construire le dictionnaire. ::" #: ../Doc/extending/extending.rst:616 msgid "Extracting Parameters in Extension Functions" -msgstr "" +msgstr "Extraire des paramètres dans des fonctions d'extension" #: ../Doc/extending/extending.rst:620 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" -msgstr "" +msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" #: ../Doc/extending/extending.rst:624 msgid "" @@ -859,16 +926,17 @@ msgstr "" #: ../Doc/extending/extending.rst:638 msgid "Some example calls::" -msgstr "" +msgstr "Quelques exemples d'appels ::" #: ../Doc/extending/extending.rst:708 msgid "Keyword Parameters for Extension Functions" -msgstr "" +msgstr "Paramètres nommés pour des fonctions d'extension" #: ../Doc/extending/extending.rst:712 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" +"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" #: ../Doc/extending/extending.rst:717 msgid "" @@ -887,22 +955,29 @@ msgid "" "parameters passed in which are not present in the *kwlist* will cause :exc:" "`TypeError` to be raised." msgstr "" +"Les n-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments de type mot-clé ! Ceux-ci doivent apparaître dans dans *kwlist*, " +"dans le cas contraire une exception :exc:`TypeError` est levée." #: ../Doc/extending/extending.rst:733 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" +"Voici un exemple de module qui utilise des mots-clés, basé sur un exemple de " +"*Geoff Philbrick* (philbrick@hks.com) ::" #: ../Doc/extending/extending.rst:788 msgid "Building Arbitrary Values" -msgstr "" +msgstr "Créer des valeurs arbitraires" #: ../Doc/extending/extending.rst:790 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" +"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " +"déclarée comme suit ::" #: ../Doc/extending/extending.rst:795 msgid "" @@ -911,6 +986,11 @@ msgid "" "not output) must not be pointers, just values. It returns a new Python " "object, suitable for returning from a C function called from Python." msgstr "" +"Il reconnaît un ensemble d'unités de format similaires à celles reconnues " +"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " +"entrée de fonction, et non de la sortie) ne doivent pas être des pointeurs, " +"mais juste des valeurs. Il renvoie un nouvel objet Python, adapté pour être " +"renvoyé par une fonction C appelée depuis Python." #: ../Doc/extending/extending.rst:800 msgid "" @@ -928,10 +1008,11 @@ msgstr "" msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" +"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" #: ../Doc/extending/extending.rst:834 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" #: ../Doc/extending/extending.rst:836 msgid "" @@ -941,6 +1022,12 @@ msgid "" "``new`` and ``delete`` are used with essentially the same meaning and we'll " "restrict the following discussion to the C case." msgstr "" +"Dans les langages comme le C ou le C++, le développeur est responsable de " +"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " +"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " +"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " +"essentiellement la même signification et nous limiterons la discussion " +"suivante au cas du C." #: ../Doc/extending/extending.rst:842 msgid "" @@ -984,6 +1071,14 @@ msgid "" "reference to it is deleted. When the counter reaches zero, the last " "reference to the object has been deleted and the object is freed." msgstr "" +"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:" +"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:" +"`reference counting`. Le principe est simple : chaque objet contient un " +"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée " +"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est " +"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet " +"a été supprimée et l'objet est libéré." #: ../Doc/extending/extending.rst:874 msgid "" @@ -1000,6 +1095,19 @@ msgid "" "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" +"Une stratégie alternative est appelée :dfn:`automatic garbage collection` " +"(ramasse-miettes). Parfois, le comptage des références est également appelé " +"stratégie de ramasse-miettes, d'où l'utilisation du terme \"automatique\" " +"pour distinguer les deux. Le grand avantage du ramasse-miettes est que " +"l'utilisateur n'a pas besoin d'appeler :c:func:`free` explicitement. (Un " +"autre avantage important est l'amélioration de la vitesse ou de " +"l'utilisation de la mémoire, ce n'est cependant pas un fait avéré). " +"L'inconvénient est que pour C, il n'y a pas de ramasse-miettes portable " +"proprement-dit, alors que le comptage des références peut être implémenté de " +"façon portable (tant que les fonctions :c:func:`malloc` et :c:func:`free` " +"soient disponibles, ce que la norme C garantit). Peut-être qu'un jour un " +"ramasse-miettes suffisamment portable sera disponible pour C. D'ici là, nous " +"devrons utiliser les compteurs des références." #: ../Doc/extending/extending.rst:886 msgid "" @@ -1014,6 +1122,18 @@ msgid "" "in a reference cycle, or referenced from the objects in the cycle, even " "though there are no further references to the cycle itself." msgstr "" +"Bien que Python utilise l'implémentation traditionnelle de comptage de " +"référence, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de référence. Cela permet aux applications d'empêcher la " +"création de références circulaires directes ou indirectes ; ceci sont les " +"faiblesses du ramasse-miettes mis en œuvre en utilisant uniquement le " +"comptage de référence. Les cycles de référence sont constitués d'objets qui " +"contiennent des références (éventuellement indirectes) à eux-mêmes, de sorte " +"que chaque objet du cycle a un comptage de référence qui n'est pas nul. Les " +"implémentations typiques de comptage de référence ne sont pas capables de " +"récupérer la mémoire appartenant à des objets dans un cycle de référence, ou " +"référencés à partir des objets dans le cycle, même s'il n'y a pas d'autres " +"références au cycle lui-même." #: ../Doc/extending/extending.rst:897 msgid "" @@ -1029,7 +1149,7 @@ msgstr "" #: ../Doc/extending/extending.rst:911 msgid "Reference Counting in Python" -msgstr "" +msgstr "Comptage de références en Python" #: ../Doc/extending/extending.rst:913 msgid "" @@ -1041,6 +1161,13 @@ msgid "" "this purpose (and others), every object also contains a pointer to its type " "object." msgstr "" +"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " +"l'incrémentation et la décrémentation du comptage de référence. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le comptage atteint zéro. Pour " +"plus de flexibilité, il n'appelle pas :c:func:`free` directement — plutôt, " +"il fait un appel à travers un pointeur de fonction dans l'objet :dfn:`type " +"objet` de l'objet. À cette fin (et pour d'autres), chaque objet contient " +"également un pointeur vers son objet type." #: ../Doc/extending/extending.rst:920 msgid "" @@ -1054,6 +1181,16 @@ msgid "" "on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " "reference creates a memory leak." msgstr "" +"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " +"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " +"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " +"comptage de références d'un objet est maintenant défini comme étant le " +"nombre de références à cet objet. Le propriétaire d'une référence est " +"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " +"nécessaire. La propriété d'une référence peut être transférée. Il y a trois " +"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :" +"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite " +"de mémoire." #: ../Doc/extending/extending.rst:929 msgid "" @@ -1074,6 +1211,14 @@ msgid "" "code a borrowed reference can be used after the owner from which it was " "borrowed has in fact disposed of it." msgstr "" +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence est que " +"vous n'avez pas à vous soucier de disposer de la référence sur tous les " +"chemins possibles dans le code — en d'autres termes, avec une référence " +"empruntée, vous ne courez pas le risque de fuites lors d'une sortie " +"prématurée. L'inconvénient de l'emprunt par rapport à la possession est " +"qu'il existe certaines situations subtiles où, dans un code apparemment " +"correct, une référence empruntée peut être utilisée après que le " +"propriétaire auquel elle a été empruntée l'a en fait éliminée." #: ../Doc/extending/extending.rst:943 msgid "" @@ -1086,7 +1231,7 @@ msgstr "" #: ../Doc/extending/extending.rst:953 msgid "Ownership Rules" -msgstr "" +msgstr "Règles concernant la propriété de références" #: ../Doc/extending/extending.rst:955 msgid "" @@ -1094,6 +1239,10 @@ msgid "" "of the function's interface specification whether ownership is transferred " "with the reference or not." msgstr "" +"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " +"l'extérieur d'une fonction, elle fait partie de la spécification de " +"l'interface de la fonction, peu importe que la propriété soit transférée " +"avec la référence ou non." #: ../Doc/extending/extending.rst:959 msgid "" @@ -1153,7 +1302,7 @@ msgstr "" #: ../Doc/extending/extending.rst:1000 msgid "Thin Ice" -msgstr "" +msgstr "Terrain dangereux" #: ../Doc/extending/extending.rst:1002 msgid "" @@ -1162,6 +1311,10 @@ msgid "" "invocations of the interpreter, which can cause the owner of a reference to " "dispose of it." msgstr "" +"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " +"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " +"lien avec des invocations implicites de l’interpréteur, et peuvent amener le " +"propriétaire d'une référence à s'en défaire." #: ../Doc/extending/extending.rst:1006 msgid "" @@ -1169,6 +1322,9 @@ msgid "" "on an unrelated object while borrowing a reference to a list item. For " "instance::" msgstr "" +"Le premier cas, et le plus important à connaître, est celui de l'application " +"de :c:func:`Py_DECREF` à un objet non relié, tout en empruntant une " +"référence à un élément de liste. Par exemple ::" #: ../Doc/extending/extending.rst:1018 msgid "" @@ -1176,6 +1332,9 @@ msgid "" "``list[1]`` with the value ``0``, and finally prints the borrowed reference. " "Looks harmless, right? But it's not!" msgstr "" +"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " +"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " +"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" #: ../Doc/extending/extending.rst:1022 msgid "" @@ -1186,6 +1345,13 @@ msgid "" "defined a :meth:`__del__` method. If this class instance has a reference " "count of 1, disposing of it will call its :meth:`__del__` method." msgstr "" +"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " +"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " +"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " +"l'élément 1 original était une instance d'une classe définie par " +"l'utilisateur, et supposons en outre que la classe définisse une méthode :" +"meth:`__del__`. Si l'instance de cette classe a un nombre des références de " +"1, sa destruction appellera sa méthode :meth:`__del__`." #: ../Doc/extending/extending.rst:1029 msgid "" @@ -1197,6 +1363,13 @@ msgid "" "this was the last reference to that object, it would free the memory " "associated with it, thereby invalidating ``item``." msgstr "" +"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " +"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " +"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " +"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " +"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " +"supposant que ce soit la dernière référence à cet objet, elle libérerait la " +"mémoire qui lui est associée, invalidant ainsi ``item``." #: ../Doc/extending/extending.rst:1037 msgid "" @@ -1223,10 +1396,20 @@ msgid "" "complete. Obviously, the following function has the same problem as the " "previous one::" msgstr "" +"Le deuxième cas de problèmes liés à une référence empruntée est une variante " +"impliquant des fils de discussion. Normalement, plusieurs threads dans " +"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " +"verrou global protégeant tout l'espace objet de Python. Cependant, il est " +"possible de libérer temporairement ce verrou en utilisant la macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en utilisant :c:macro:" +"`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour bloquer les appels " +"d'entrées/sorties, afin de permettre aux autres threads d'utiliser le " +"processeur en attendant que les E/S soient terminées. Évidemment, la " +"fonction suivante a le même problème que la précédente ::" #: ../Doc/extending/extending.rst:1078 msgid "NULL Pointers" -msgstr "" +msgstr "Pointeurs ``NULL``" #: ../Doc/extending/extending.rst:1080 msgid "" @@ -1278,7 +1461,7 @@ msgstr "" #: ../Doc/extending/extending.rst:1117 msgid "Writing Extensions in C++" -msgstr "" +msgstr "Écrire des extensions en C++" #: ../Doc/extending/extending.rst:1119 msgid "" @@ -1292,10 +1475,21 @@ msgid "" "`` --- they use this form already if the symbol ``__cplusplus`` is defined " "(all recent C++ compilers define this symbol)." msgstr "" +"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " +"conditions. Si le programme principal (l'interpréteur Python) est compilé et " +"lié par le compilateur C, les objets globaux ou statiques avec les " +"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " +"programme principal est relié par le compilateur C++. Les fonctions qui " +"seront appelées par l'interpréteur Python (en particulier, les fonctions " +"d'initialisation des modules) doivent être déclarées en utilisant ``extern " +"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " +"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " +"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " +"symbole)." #: ../Doc/extending/extending.rst:1133 msgid "Providing a C API for an Extension Module" -msgstr "" +msgstr "Fournir une API en langage C pour un module d'extension" #: ../Doc/extending/extending.rst:1138 msgid "" @@ -1307,6 +1501,15 @@ msgid "" "create and manipulate lists, this new collection type should have a set of C " "functions for direct manipulation from other extension modules." msgstr "" +"De nombreux modules d'extension fournissent simplement de nouvelles " +"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " +"le code d'un module d'extension peut être utile pour d'autres modules " +"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " +"\"collection\" qui fonctionne comme des listes sans ordre. Tout comme le " +"type de liste Python standard possède une API C qui permet aux modules " +"d'extension de créer et de manipuler des listes, ce nouveau type de " +"collection devrait posséder un ensemble de fonctions C pour une manipulation " +"directe à partir d'autres modules d'extension." #: ../Doc/extending/extending.rst:1146 msgid "" @@ -1323,6 +1526,20 @@ msgid "" "if symbols are globally visible, the module whose functions one wishes to " "call might not have been loaded yet!" msgstr "" +"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " +"les déclarer \"statiques\", bien sûr), de fournir un fichier d'en-tête " +"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " +"les modules d'extension étaient toujours liés statiquement avec " +"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " +"des bibliothèques partagées, les symboles définis dans un module peuvent ne " +"pas être visibles par un autre module. Les détails de la visibilité " +"dépendent du système d'exploitation ; certains systèmes utilisent un espace " +"de noms global pour l'interpréteur Python et tous les modules d'extension " +"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " +"symboles importés au moment de la liaison des modules (AIX en est un " +"exemple), ou offrent un choix de stratégies différentes (la plupart des " +"*Unix*). Et même si les symboles sont globalement visibles, le module dont " +"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" #: ../Doc/extending/extending.rst:1158 msgid "" @@ -1333,6 +1550,14 @@ msgid "" "section :ref:`methodtable`). And it means that symbols that *should* be " "accessible from other extension modules must be exported in a different way." msgstr "" +"La portabilité exige donc de ne faire aucune supposition sur la visibilité " +"des symboles. Cela signifie que tous les symboles des modules d'extension " +"doivent être déclarés ``static``, à l'exception de la fonction " +"d'initialisation du module, afin d'éviter les conflits de noms avec les " +"autres modules d'extension (comme discuté dans la section :ref:" +"`methodtable`). Et cela signifie que les symboles qui *devraient* être " +"accessibles à partir d'autres modules d'extension doivent être exportés " +"d'une manière différente." #: ../Doc/extending/extending.rst:1165 msgid "" @@ -1355,6 +1580,13 @@ msgid "" "distributed in different ways between the module providing the code and the " "client modules." msgstr "" +"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " +"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " +"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " +"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " +"stockage et de récupération des pointeurs peuvent être réparties de " +"différentes manières entre le module fournissant le code et les modules " +"clients." #: ../Doc/extending/extending.rst:1179 msgid "" @@ -1390,6 +1622,14 @@ msgid "" "takes care of importing the module and retrieving its C API pointers; client " "modules only have to call this macro before accessing the C API." msgstr "" +"L'exemple suivant montre une approche qui fait peser la plus grande partie " +"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " +"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " +"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " +"pointeurs :c:type:`void` qui devient la valeur d'une Capsule. Le fichier " +"d'en-tête correspondant au module fournit une macro qui se charge d'importer " +"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " +"qu'à appeler cette macro avant d'accéder à l'API C." #: ../Doc/extending/extending.rst:1204 msgid "" @@ -1400,6 +1640,13 @@ msgid "" "complicated in reality (such as adding \"spam\" to every command). This " "function :c:func:`PySpam_System` is also exported to other extension modules." msgstr "" +"Le module d'exportation est une modification du module :mod:`spam` de la " +"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " +"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " +"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " +"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " +"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " +"modules d'extension." #: ../Doc/extending/extending.rst:1211 msgid "" @@ -1409,15 +1656,15 @@ msgstr "" #: ../Doc/extending/extending.rst:1220 msgid "The function :c:func:`spam_system` is modified in a trivial way::" -msgstr "" +msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" #: ../Doc/extending/extending.rst:1234 msgid "In the beginning of the module, right after the line ::" -msgstr "" +msgstr "Au début du module, immédiatement après la ligne ::" #: ../Doc/extending/extending.rst:1238 msgid "two more lines must be added::" -msgstr "" +msgstr "on doit ajouter deux lignes supplémentaires ::" #: ../Doc/extending/extending.rst:1243 msgid "" @@ -1426,18 +1673,26 @@ msgid "" "initialization function must take care of initializing the C API pointer " "array::" msgstr "" +"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " +"qu'il est inclus dans le module d'exportation, et non dans un module client. " +"Enfin, la fonction d'initialisation du module doit prendre en charge " +"l'initialisation du tableau de pointeurs de l'API C ::" #: ../Doc/extending/extending.rst:1269 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :func:`PyInit_spam` terminates!" msgstr "" +"Notez que ``PySpam_API`` est déclaré ``static`` ; sinon le tableau de " +"pointeurs disparaîtrait lorsque :func:`PyInit_spam`` se finit !" #: ../Doc/extending/extending.rst:1272 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" +"L'essentiel du travail se trouve dans le fichier d'en-tête :file:`spammodule." +"h`, qui ressemble à ceci ::" #: ../Doc/extending/extending.rst:1323 msgid "" @@ -1445,6 +1700,9 @@ msgid "" "func:`PySpam_System` is to call the function (or rather macro) :c:func:" "`import_spam` in its initialization function::" msgstr "" +"Tout ce qu'un module client doit faire pour avoir accès à la fonction :c:" +"func:`PySpam_System` est d'appeler la fonction (ou plutôt la macro) :c:func:" +"`import_spam` dans sa fonction d'initialisation ::" #: ../Doc/extending/extending.rst:1341 msgid "" @@ -1452,6 +1710,10 @@ msgid "" "is rather complicated. However, the basic structure is the same for each " "function that is exported, so it has to be learned only once." msgstr "" +"Le principal inconvénient de cette approche est que le fichier :file:" +"`spammodule.h` est assez compliqué. Cependant, la structure de base est la " +"même pour chaque fonction exportée, ce qui fait qu'elle ne doit être apprise " +"qu'une seule fois." #: ../Doc/extending/extending.rst:1345 msgid "" @@ -1462,6 +1724,13 @@ msgid "" "Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " "in the Python source code distribution)." msgstr "" +"Enfin, il convient de mentionner que Capsules offrent des fonctionnalités " +"supplémentaires, qui sont particulièrement utiles pour l'allocation de la " +"mémoire et la dés-allocation du pointeur stocké dans un objet Capsule. Les " +"détails sont décrits dans le manuel de référence de l'API Python/C dans la " +"section :ref:`capsules` et dans l'implémentation des Capsules (fichiers :" +"file:`Include/pycapsule.h` et :file:`Objects/pycapsule.c` dans la " +"distribution du code source Python)." #: ../Doc/extending/extending.rst:1353 msgid "Footnotes" @@ -1472,12 +1741,16 @@ msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" +"Une interface pour cette fonction existe déjà dans le module standard :mod:" +"`os`, elle a été choisie comme un exemple simple et direct." #: ../Doc/extending/extending.rst:1357 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" +"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " +"le propriétaire a toujours une copie de la référence." #: ../Doc/extending/extending.rst:1360 msgid "" @@ -1485,9 +1758,15 @@ msgid "" "reference count itself could be in freed memory and may thus be reused for " "another object!" msgstr "" +"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " +"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " +"peut donc être réutilisé pour un autre objet !" #: ../Doc/extending/extending.rst:1364 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." msgstr "" +"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " +"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " +"existant." diff --git a/extending/newtypes.po b/extending/newtypes.po index a1d0418cd..cb28a8c18 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:5 msgid "Defining Extension Types: Assorted Topics" -msgstr "" +msgstr "Définir les types d'extension : divers sujets" #: ../Doc/extending/newtypes.rst:9 msgid "" @@ -68,16 +68,21 @@ msgid "" "Here you can put a string (or its address) that you want returned when the " "Python script references ``obj.__doc__`` to retrieve the doc string." msgstr "" +"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " +"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " +"*docstring*." #: ../Doc/extending/newtypes.rst:47 msgid "" "Now we come to the basic type methods -- the ones most extension types will " "implement." msgstr "" +"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " +"plupart des types d'extension mettront en œuvre." #: ../Doc/extending/newtypes.rst:52 msgid "Finalization and De-allocation" -msgstr "" +msgstr "Finalisation et de-allocation" #: ../Doc/extending/newtypes.rst:64 msgid "" @@ -125,11 +130,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:134 msgid ":pep:`442` explains the new finalization scheme." -msgstr "" +msgstr ":pep:`442` explique le nouveau schéma de finalisation." #: ../Doc/extending/newtypes.rst:141 msgid "Object Presentation" -msgstr "" +msgstr "Présentation de l'objet" #: ../Doc/extending/newtypes.rst:143 msgid "" @@ -165,11 +170,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:174 msgid "Here is a simple example::" -msgstr "" +msgstr "Voici un exemple simple ::" #: ../Doc/extending/newtypes.rst:186 msgid "Attribute Management" -msgstr "" +msgstr "Gestion des attributs" #: ../Doc/extending/newtypes.rst:188 msgid "" @@ -203,7 +208,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:217 msgid "Generic Attribute Management" -msgstr "" +msgstr "Gestion des attributs génériques" #: ../Doc/extending/newtypes.rst:219 msgid "" @@ -216,6 +221,8 @@ msgid "" "The name of the attributes must be known when :c:func:`PyType_Ready` is " "called." msgstr "" +"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:" +"`PyType_Ready`." #: ../Doc/extending/newtypes.rst:225 msgid "" @@ -244,6 +251,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:239 msgid "The tables are declared as three fields of the type object::" msgstr "" +"Les tables sont déclarées sous la forme de trois champs de type objet ::" #: ../Doc/extending/newtypes.rst:245 msgid "" @@ -295,35 +303,35 @@ msgstr "Signification" #: ../Doc/extending/newtypes.rst:286 msgid ":const:`READONLY`" -msgstr "" +msgstr ":const:`READONLY`" #: ../Doc/extending/newtypes.rst:286 msgid "Never writable." -msgstr "" +msgstr "Jamais disponible en écriture." #: ../Doc/extending/newtypes.rst:288 msgid ":const:`READ_RESTRICTED`" -msgstr "" +msgstr ":const:`READ_RESTRICTED`" #: ../Doc/extending/newtypes.rst:288 msgid "Not readable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture, dans le mode restreint." #: ../Doc/extending/newtypes.rst:290 msgid ":const:`WRITE_RESTRICTED`" -msgstr "" +msgstr ":const:`WRITE_RESTRICTED`" #: ../Doc/extending/newtypes.rst:290 msgid "Not writable in restricted mode." -msgstr "" +msgstr "Non disponible en écriture dans le mode restreint." #: ../Doc/extending/newtypes.rst:292 msgid ":const:`RESTRICTED`" -msgstr "" +msgstr ":const:`RESTRICTED`" #: ../Doc/extending/newtypes.rst:292 msgid "Not readable or writable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture ou écriture, en mode restreint." #: ../Doc/extending/newtypes.rst:301 msgid "" @@ -334,6 +342,13 @@ msgid "" "the descriptor from the class object, and get the doc string using its :attr:" "`__doc__` attribute." msgstr "" +"Un avantage intéressant de l'utilisation de la table :c:member:" +"`~PyTypeObject.tp_members` pour construire les descripteurs qui sont " +"utilisés à l'exécution, est que à tout attribut défini de cette façon on " +"peut associer un *docstring*, en écrivant simplement le texte dans la table. " +"Une application peut utiliser l'API d'introspection pour récupérer le " +"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` " +"pour renvoyer le *docstring*." #: ../Doc/extending/newtypes.rst:307 msgid "" @@ -343,7 +358,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:321 msgid "Type-specific Attribute Management" -msgstr "" +msgstr "Gestion des attributs de type spécifiques" #: ../Doc/extending/newtypes.rst:323 msgid "" @@ -379,7 +394,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:365 msgid "Object Comparison" -msgstr "" +msgstr "Comparaison des objets" #: ../Doc/extending/newtypes.rst:371 msgid "" @@ -408,7 +423,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:414 msgid "Abstract Protocol Support" -msgstr "" +msgstr "Support pour le protocole abstrait" #: ../Doc/extending/newtypes.rst:416 msgid "" @@ -466,7 +481,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:470 msgid "This function takes three arguments:" -msgstr "" +msgstr "Cette fonction prend trois arguments :" #: ../Doc/extending/newtypes.rst:472 msgid "" @@ -491,7 +506,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:484 msgid "Here is a toy ``tp_call`` implementation::" -msgstr "" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" #: ../Doc/extending/newtypes.rst:510 msgid "" @@ -509,6 +524,10 @@ msgid "" "tp_iter` handler, which must return an :term:`iterator` object. Here the " "same guidelines apply as for Python classes:" msgstr "" +"Tout objet :term:`iterable` doit implémenter le gestionnaire :c:member:" +"`~PyTypeObject.tp_iter`, qui doit renvoyer un objet de type :term:" +"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que " +"pour les classes *Python* :" #: ../Doc/extending/newtypes.rst:521 msgid "" @@ -516,6 +535,9 @@ msgid "" "independent iterators, a new iterator should be created and returned by each " "call to :c:member:`~PyTypeObject.tp_iter`." msgstr "" +"Pour les collections (telles que les listes et les n-uplets) qui peuvent " +"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " +"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." #: ../Doc/extending/newtypes.rst:524 msgid "" @@ -541,7 +563,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:545 msgid "Weak Reference Support" -msgstr "" +msgstr "Prise en charge de la référence faible" #: ../Doc/extending/newtypes.rst:547 msgid "" @@ -549,16 +571,22 @@ msgid "" "type to participate in the weak reference mechanism without incurring the " "overhead on performance-critical objects (such as numbers)." msgstr "" +"L'un des objectifs de l'implémentation de la référence faible de *Python* " +"est de permettre à tout type d'objet de participer au mécanisme de référence " +"faible sans avoir à supporter le surcoût de la performance critique des " +"certains objets, tels que les nombres." #: ../Doc/extending/newtypes.rst:552 msgid "Documentation for the :mod:`weakref` module." -msgstr "" +msgstr "Documentation pour le module :mod:`weakref`." #: ../Doc/extending/newtypes.rst:554 msgid "" "For an object to be weakly referencable, the extension type must do two " "things:" msgstr "" +"Pour qu'un objet soit faiblement référençable, le type d'extension doit " +"faire deux choses :" #: ../Doc/extending/newtypes.rst:556 msgid "" @@ -574,16 +602,23 @@ msgid "" "offset of the aforementioned field in the C object structure, so that the " "interpreter knows how to access and modify that field." msgstr "" +"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " +"la valeur de décalage (*offset*) du champ susmentionné dans la structure de " +"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le " +"modifier." #: ../Doc/extending/newtypes.rst:565 msgid "" "Concretely, here is how a trivial object structure would be augmented with " "the required field::" msgstr "" +"Concrètement, voici comment une structure d'objet simple serait complétée " +"par le champ requis ::" #: ../Doc/extending/newtypes.rst:573 msgid "And the corresponding member in the statically-declared type object::" msgstr "" +"Et le membre correspondant dans l'objet de type déclaré statiquement ::" #: ../Doc/extending/newtypes.rst:581 msgid "" @@ -594,7 +629,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:597 msgid "More Suggestions" -msgstr "" +msgstr "Plus de suggestions" #: ../Doc/extending/newtypes.rst:599 msgid "" @@ -604,6 +639,12 @@ msgid "" "want (for example, ``tp_richcompare``). You will find examples of the " "function you want to implement." msgstr "" +"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " +"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " +"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " +"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " +"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " +"voulez implémenter." #: ../Doc/extending/newtypes.rst:605 msgid "" @@ -611,23 +652,27 @@ msgid "" "you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " "sample of its use might be something like the following::" msgstr "" +"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " +"du type que vous implémentez, utilisez la fonction :c:func:" +"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" #: ../Doc/extending/newtypes.rst:616 msgid "Download CPython source releases." -msgstr "" +msgstr "Télécharger les versions sources de *CPython*." #: ../Doc/extending/newtypes.rst:616 msgid "https://www.python.org/downloads/source/" -msgstr "" +msgstr "https://www.python.org/downloads/source/" #: ../Doc/extending/newtypes.rst:618 msgid "" "The CPython project on GitHub, where the CPython source code is developed." msgstr "" +"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." #: ../Doc/extending/newtypes.rst:619 msgid "https://github.com/python/cpython" -msgstr "" +msgstr "https://github.com/python/cpython" #~ msgid "Footnotes" #~ msgstr "Notes" diff --git a/faq/design.po b/faq/design.po index 0f8c51e83..0c6abcda3 100644 --- a/faq/design.po +++ b/faq/design.po @@ -504,7 +504,7 @@ msgstr "" "train de dire à une séquence de joindre ses membres avec une constante de " "chaîne\". Malheureusement, vous ne l'êtes pas. Pour quelque raison, il " "semble être bien moins difficile d'avoir :meth:`~str.split` en tant que " -"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" +"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" #: ../Doc/faq/design.rst:269 msgid "" @@ -1094,7 +1094,7 @@ msgstr "" "`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " "de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " "(ou une autre structure basée sur le hachage), restent fixes pendant que " -"l'objet est dans le dictionnaire (ou une autre structure). ::" +"l'objet est dans le dictionnaire (ou une autre structure). ::" #: ../Doc/faq/design.rst:574 msgid "" @@ -1341,7 +1341,7 @@ msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si vous essayez de construire un chemin d'accès pour une commande DOS, " -"essayez par exemple l'un de ceux-là ::" +"essayez par exemple l'un de ceux-là ::" #: ../Doc/faq/design.rst:698 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" @@ -1448,7 +1448,7 @@ msgstr "" #: ../Doc/faq/design.rst:761 msgid "versus ::" -msgstr "versus ::" +msgstr "versus ::" #: ../Doc/faq/design.rst:766 msgid "" diff --git a/faq/extending.po b/faq/extending.po index 8500930cc..2bf610334 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2018-02-15 00:37+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-31 11:36+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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" #: ../Doc/faq/extending.rst:3 msgid "Extending/Embedding FAQ" @@ -32,10 +33,15 @@ msgid "" "exceptions and even new types in C. This is explained in the document :ref:" "`extending-index`." msgstr "" +"Oui, vous pouvez créer des modules intégrés contenant des fonctions, des " +"variables, des exceptions et même de nouveaux types en C. Ceci est expliqué " +"dans le document :ref:`extending-index`." #: ../Doc/faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." msgstr "" +"La plupart des livres Python intermédiaires ou avancés couvrent également ce " +"sujet." #: ../Doc/faq/extending.rst:26 msgid "Can I create my own functions in C++?" @@ -74,6 +80,11 @@ msgid "" "Cython and Pyrex make it possible to write an extension without having to " "learn Python's C API." msgstr "" +"`Cython `_ et son cousin `Pyrex `_ sont des compilateurs qui " +"acceptent une forme légèrement modifiée de Python et produisent du code C " +"correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " +"à connaître l'API C de Python." #: ../Doc/faq/extending.rst:50 msgid "" @@ -85,10 +96,19 @@ msgid "" "html>`_, or `Weave `_ are also alternatives " "for wrapping C++ libraries." msgstr "" +"Si vous avez besoin d'accéder à l'interface d'une bibliothèque C ou C++ pour " +"laquelle aucune extension Python n'existe à ce jour, vous pouvez essayer " +"d'encapsuler les types de données et fonctions de la bibliothèque avec un " +"outil tel que `SWIG `_. `SIP `__, `CXX `_, `Boost `_ ou " +"`Weave `_ sont également des alternatives " +"pour encapsuler des bibliothèques C++." #: ../Doc/faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" msgstr "" +"Comment puis-je exécuter des instructions quelconques Python à partir de C ?" #: ../Doc/faq/extending.rst:63 msgid "" @@ -99,10 +119,18 @@ msgid "" "func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in " "``Python/pythonrun.c``." msgstr "" +"La fonction de plus haut niveau pour ce faire est :c:func:" +"`PyRun_SimpleStringString` qui prend une chaîne pour seul argument afin de " +"l'exécuter dans le contexte du module ``__main__`` et renvoie ``0`` en cas " +"de succès et ``-1`` quand une exception se produit (incluant :exc:" +"`SyntaxError`). Pour une meilleure maîtrise, utilisez :c:func:" +"`PyRun_String` ; voir le code source pour :c:func:`PyRun_SimpleString` dans " +"``Python/pythonrun.c``." #: ../Doc/faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "" +"Comment puis-je évaluer une expression quelconque de Python à partir de C ?" #: ../Doc/faq/extending.rst:74 msgid "" @@ -110,10 +138,13 @@ msgid "" "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" +"Appelez la fonction :c:func:`PyRun_String` de la question précédente avec le " +"symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " +"l'évalue et renvoie sa valeur." #: ../Doc/faq/extending.rst:80 msgid "How do I extract C values from a Python object?" -msgstr "" +msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" #: ../Doc/faq/extending.rst:82 msgid "" @@ -122,6 +153,10 @@ msgid "" "specified index. Lists have similar functions, :c:func:`PyListSize` and :c:" "func:`PyList_GetItem`." msgstr "" +"Cela dépend du type d'objet. Si c'est un tuple, :c:func:`PyTuple_Size` " +"renvoie sa longueur et :c:func:`PyTuple_GetItem` renvoie l'élément à l'index " +"spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :" +"c:func:`PyList_GetItem`." #: ../Doc/faq/extending.rst:87 msgid "" @@ -130,6 +165,10 @@ msgid "" "Note that Python bytes objects may contain null bytes so C's :c:func:" "`strlen` should not be used." msgstr "" +"Pour les bytes, :c:func:`PyBytes_Size` renvoie sa longueur et :c:func:" +"`PyBytes_AsStringAndSize` fournit un pointeur vers sa valeur et sa longueur. " +"Notez que les objets bytes en Python peuvent contenir des valeurs nulles, " +"c'est pourquoi il ne faut pas utiliser la fonction C :c:func:`strlen`." #: ../Doc/faq/extending.rst:92 msgid "" @@ -137,6 +176,9 @@ msgid "" "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" "`PyList_Check`, etc." msgstr "" +"Pour tester le type d'un objet, assurez-vous d'abord qu'il n'est pas *NULL*, " +"puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" +"`PyList_Check`, etc." #: ../Doc/faq/extending.rst:95 msgid "" @@ -147,18 +189,26 @@ msgid "" "as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " "al.) and mappings in the PyMapping APIs." msgstr "" +"Il y a aussi une API de haut niveau pour les objets Python qui est fournie " +"par l'interface dite « abstraite » — voir ``Include/abstract.h`` pour plus " +"de détails. Elle permet l'interfaçage avec tout type de séquence Python en " +"utilisant des appels tels que :c:func:`PySequence_Length`, :c:func:" +"`PySequence_GetItem`, etc. ainsi que de nombreux autres protocoles utiles " +"tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " +"correspondances dans les APIs PyMapping." #: ../Doc/faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" msgstr "" +"Comment utiliser Py_BuildValue() pour créer un tuple de longueur définie ?" #: ../Doc/faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "" +msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." #: ../Doc/faq/extending.rst:110 msgid "How do I call an object's method from C?" -msgstr "" +msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" #: ../Doc/faq/extending.rst:112 msgid "" @@ -167,6 +217,10 @@ msgid "" "to call, a format string like that used with :c:func:`Py_BuildValue`, and " "the argument values::" msgstr "" +"La fonction :c:func:`PyObject_CallMethod` peut être utilisée pour appeler la " +"méthode d'un objet. Les paramètres sont l'objet, le nom de la méthode à " +"appeler, une chaîne de caractères comme celle utilisée pour :c:func:" +"`Py_BuildValue` et les valeurs des arguments ::" #: ../Doc/faq/extending.rst:121 msgid "" @@ -174,12 +228,17 @@ msgid "" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " "return value." msgstr "" +"Cela fonctionne pour tous les objets qui ont des méthodes — qu'elles soient " +"intégrées ou définies par l'utilisateur. Vous êtes responsable de « :c:func:" +"`Py_DECREF`\\ *er* » la valeur de retour à la fin." #: ../Doc/faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" msgstr "" +"Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments " +"10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::" #: ../Doc/faq/extending.rst:135 msgid "" @@ -188,12 +247,18 @@ msgid "" "format, and to call a function with one argument, surround the argument in " "parentheses, e.g. \"(i)\"." msgstr "" +"Notez que :c:func:`PyObject_CallObject` veut *toujours* un tuple comme liste " +"d'arguments. Aussi, pour appeler une fonction sans arguments, utilisez " +"\"()\" pour être conforme au type et, pour appeler une fonction avec un " +"paramètre, entourez-le de parenthèses, p. ex. \"(i)\"." #: ../Doc/faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" msgstr "" +"Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui " +"s'affiche sur *stdout*/*stderr*) ?" #: ../Doc/faq/extending.rst:144 msgid "" @@ -202,22 +267,29 @@ msgid "" "print_error, or just allow the standard traceback mechanism to work. Then, " "the output will go wherever your ``write()`` method sends it." msgstr "" +"Dans le code Python, définissez un objet qui possède la méthode ``write()``. " +"Affectez cet objet à :data:`sys.stdout` et :data:`sys.stderr`. Appelez " +"*print_error* ou faites simplement en sorte que le mécanisme standard de " +"remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers " +"l'endroit où votre méthode ``write()`` écrit." #: ../Doc/faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" +"La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" #: ../Doc/faq/extending.rst:161 msgid "A custom object to do the same would look like this:" msgstr "" +"Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" #: ../Doc/faq/extending.rst:182 msgid "How do I access a module written in Python from C?" -msgstr "" +msgstr "Comment accéder à un module écrit en Python à partir de C ?" #: ../Doc/faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" -msgstr "" +msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" #: ../Doc/faq/extending.rst:188 msgid "" @@ -227,22 +299,32 @@ msgid "" "module into any namespace -- it only ensures it has been initialized and is " "stored in :data:`sys.modules`." msgstr "" +"Si le module n'a pas encore été importé (c.-à-d. qu'il n'est pas encore " +"présent dans :data:`sys.modules`), cela initialise le module ; sinon il " +"renvoie simplement la valeur de ``sys.modules[\"\"]``. Notez " +"qu'il n'inscrit le module dans aucun espace de nommage — il s'assure " +"seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys." +"modules`." #: ../Doc/faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" msgstr "" +"Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini " +"dans le module) comme suit ::" #: ../Doc/faq/extending.rst:199 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." msgstr "" +"Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " +"variables du module fonctionne également." #: ../Doc/faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" -msgstr "" +msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" #: ../Doc/faq/extending.rst:206 msgid "" @@ -253,14 +335,22 @@ msgid "" "building a new Python type around a C structure (pointer) type will also " "work for C++ objects." msgstr "" +"Selon vos besoins, de nombreuses approches sont possibles. Pour le faire " +"manuellement, commencez par lire :ref:`le document \"Extension et intégration" +"\" `. Sachez que pour le système d'exécution Python, il n'y " +"a pas beaucoup de différence entre C et C++ — donc la méthode pour " +"construire un nouveau type Python à partir d'une structure C (pointeur) " +"fonctionne également avec des objets en C++." #: ../Doc/faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." -msgstr "" +msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." #: ../Doc/faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" msgstr "" +"J'ai ajouté un module en utilisant le fichier *Setup* et la compilation " +"échoue ; pourquoi ?" #: ../Doc/faq/extending.rst:218 msgid "" @@ -268,30 +358,40 @@ msgid "" "fails. (Fixing this requires some ugly shell script hackery, and this bug " "is so minor that it doesn't seem worth the effort.)" msgstr "" +"Le fichier *Setup* doit se terminer par une ligne vide, s'il n'y a pas de " +"ligne vide, le processus de compilation échoue (ce problème peut se régler " +"en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite " +"pas qu'on s'y attarde)." #: ../Doc/faq/extending.rst:224 msgid "How do I debug an extension?" -msgstr "" +msgstr "Comment déboguer une extension ?" #: ../Doc/faq/extending.rst:226 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." msgstr "" +"Lorsque vous utilisez GDB avec des extensions chargées dynamiquement, vous " +"ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci " +"n'est pas chargée." #: ../Doc/faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" msgstr "" +"Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" #: ../Doc/faq/extending.rst:235 msgid "Then, when you run GDB:" -msgstr "" +msgstr "Ensuite, lorsque vous exécutez GDB :" #: ../Doc/faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" msgstr "" +"Je veux compiler un module Python sur mon système Linux, mais il manque " +"certains fichiers. Pourquoi ?" #: ../Doc/faq/extending.rst:249 msgid "" @@ -299,18 +399,25 @@ msgid "" "{x}/config/` directory, which contains various files required for compiling " "Python extensions." msgstr "" +"La plupart des versions pré-compilées de Python n'incluent pas le " +"répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents " +"fichiers nécessaires à la compilation des extensions Python." #: ../Doc/faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." msgstr "" +"Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers " +"nécessaires." #: ../Doc/faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." -msgstr "" +msgstr "Pour Debian, exécutez ``apt-get install python-dev``." #: ../Doc/faq/extending.rst:259 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" msgstr "" +"Comment distinguer une « entrée incomplète » (*incomplete input*) d'une " +"« entrée invalide » (*invalid input*) ?" #: ../Doc/faq/extending.rst:261 msgid "" @@ -320,12 +427,19 @@ msgid "" "parentheses or triple string quotes), but it gives you a syntax error " "message immediately when the input is invalid." msgstr "" +"Parfois vous souhaitez émuler le comportement de l'interpréteur interactif " +"Python, quand il vous donne une invite de continuation lorsque l'entrée est " +"incomplète (par exemple, vous avez tapé le début d'une instruction \"if\" ou " +"vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous " +"renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte." #: ../Doc/faq/extending.rst:267 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." msgstr "" +"En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche " +"assez du comportement de l'analyseur. Par exemple, IDLE l'utilise." #: ../Doc/faq/extending.rst:270 msgid "" @@ -335,6 +449,12 @@ msgid "" "to point at your custom input function. See ``Modules/readline.c`` and " "``Parser/myreadline.c`` for more hints." msgstr "" +"La façon la plus simple de le faire en C est d'appeler :c:func:" +"`PyRun_InteractiveLoop` (peut-être dans un autre fil d'exécution) et laisser " +"l'interpréteur Python gérer l'entrée pour vous. Vous pouvez également " +"définir :c:func:`PyOS_ReadlineFunctionPointer` pour pointer vers votre " +"fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/" +"myreadline.c`` pour plus de conseils." #: ../Doc/faq/extending.rst:276 msgid "" @@ -345,6 +465,13 @@ msgid "" "error`` equal to ``E_EOF``, which means the input is incomplete. Here's a " "sample code fragment, untested, inspired by code from Alex Farber::" msgstr "" +"Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans le " +"même fil d’exécution que le reste de votre application et vous ne pouvez pas " +"laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées utilisateur. La " +"seule solution est alors d'appeler :c:func:`PyParser_ParseString` et de " +"tester si ``e.error`` égale ``E_EOF``, ce qui signifie que l'entrée est " +"incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par " +"Alex Farber ::" #: ../Doc/faq/extending.rst:310 msgid "" @@ -357,10 +484,21 @@ msgid "" "\". Here is a complete example using the GNU readline library (you may want " "to ignore **SIGINT** while calling readline())::" msgstr "" +"Une autre solution est d'essayer de compiler la chaîne reçue avec :c:func:" +"`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter " +"l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, " +"enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez s'il " +"s'agit d'une erreur ou s'il faut juste plus de données — en extrayant la " +"chaîne de message du tuple d'exception et en la comparant à la chaîne *" +"\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation de " +"la bibliothèque *readline* de GNU (il vous est possible d'ignorer **SIGINT** " +"lors de l'appel à ``readline()``) ::" #: ../Doc/faq/extending.rst:432 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" msgstr "" +"Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou " +"``__pure_virtual`` ?" #: ../Doc/faq/extending.rst:434 msgid "" @@ -368,18 +506,27 @@ msgid "" "it using g++ (change LINKCC in the Python Modules Makefile), and link your " "extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." msgstr "" +"Pour charger dynamiquement les modules d'extension g++, vous devez " +"recompiler Python, effectuer l'édition de liens en utilisant g++ (modifiez " +"*LINKCC* dans le *Python Modules Makefile*), et effectuer l'édition de liens " +"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule." +"so mymodule.o``)." #: ../Doc/faq/extending.rst:440 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" msgstr "" +"Puis-je créer une classe d'objets avec certaines méthodes implémentées en C " +"et d'autres en Python (p. ex. en utilisant l'héritage) ?" #: ../Doc/faq/extending.rst:442 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." msgstr "" +"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :" +"class:`list`, :class:`dict`, etc." #: ../Doc/faq/extending.rst:445 msgid "" @@ -387,3 +534,6 @@ msgid "" "html) provides a way of doing this from C++ (i.e. you can inherit from an " "extension class written in C++ using the BPL)." msgstr "" +"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/" +"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que " +"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)." diff --git a/faq/general.po b/faq/general.po index cb001b272..1ecfe1bb7 100644 --- a/faq/general.po +++ b/faq/general.po @@ -760,12 +760,12 @@ msgid "" "for a PEP titled \"Python X.Y Release Schedule\", where X.Y is a version " "that hasn't been publicly released yet." msgstr "" -"Regardez https://www.python.org/dev/peps/ pour Python Enhancement Proposals " -"(PEPs). PEPs sont des documents techniques qui décrivent une nouvelle " -"fonctionnalité qui a été suggérée pour Python, en fournissant une " -"spécification technique concise et logique. Recherchez une PEP intitulée " -"\"Python X.Y Release Schedule\", où X.Y est la version qui n'a pas encore " -"été publiée." +"Regardez les propositions d'amélioration de Python (« *Python Enhancement " +"Proposals* », ou *PEP*) sur https://www.python.org/dev/peps/. Les PEP sont " +"des documents techniques qui décrivent une nouvelle fonctionnalité qui a été " +"suggérée pour Python, en fournissant une spécification technique concise et " +"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où X." +"Y est la version qui n'a pas encore été publiée." #: ../Doc/faq/general.rst:353 msgid "" diff --git a/faq/gui.po b/faq/gui.po index 9070d4f68..a162dab79 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -6,11 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2018-10-04 16:57+0200\n" +"PO-Revision-Date: 2019-08-06 11:31+0200\n" +"Last-Translator: Zepmanbc \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" @@ -42,7 +45,7 @@ msgstr "" #: ../Doc/faq/gui.rst:27 msgid "Tkinter" -msgstr "Tkinter" +msgstr "*Tkinter*" #: ../Doc/faq/gui.rst:29 msgid "" @@ -54,6 +57,14 @@ msgid "" "tk>`_. Tcl/Tk is fully portable to the Mac OS X, Windows, and Unix " "platforms." msgstr "" +"Les versions standards de Python incluent une interface orientée objet pour " +"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter `. " +"C'est probablement la plus facile à installer (puisqu'elle est incluse avec " +"la plupart des `distributions binaires `_ " +"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les " +"liens vers les sources, voir la page d'accueil `Tcl/Tk `_. *Tcl/Tk* est entièrement portable sur les plates-formes Mac OS X, " +"Windows et Unix." #: ../Doc/faq/gui.rst:38 msgid "wxWidgets" @@ -67,6 +78,11 @@ msgid "" "targets. Language bindings are available for a number of languages " "including Python, Perl, Ruby, etc." msgstr "" +"`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG " +"portable et gratuite écrite en C++ qui fournit une apparence native sur un " +"certain nombre de plates-formes, elle est notamment en version stable pour " +"Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un certain " +"nombre de langages, y compris Python, Perl, Ruby, etc." #: ../Doc/faq/gui.rst:46 msgid "" @@ -79,8 +95,8 @@ msgstr "" "`wxPython `_ est le portage Python de *wxWidgets*. " "Bien qu’il soit légèrement en retard sur les versions officielles de " "*wxWidgets*, il offre également des fonctionnalités propres à Python qui ne " -"sont pas disponibles pour les autres langages. *WxPython* dispose de plus, " -"d’une communauté d’utilisateurs et de développeurs active." +"sont pas disponibles pour les clients d'autres langages. *WxPython* dispose " +"de plus, d’une communauté d’utilisateurs et de développeurs active." #: ../Doc/faq/gui.rst:52 msgid "" @@ -88,10 +104,14 @@ msgid "" "licences that allow their use in commercial products as well as in freeware " "or shareware." msgstr "" +"*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open source, " +"avec des licences permissives qui permettent leur utilisation dans des " +"produits commerciaux ainsi que dans des logiciels gratuits ou contributifs " +"(*shareware*)." #: ../Doc/faq/gui.rst:58 msgid "Qt" -msgstr "" +msgstr "*Qt*" #: ../Doc/faq/gui.rst:60 msgid "" @@ -103,16 +123,26 @@ msgid "" "com/commercial/license-faq>`_ if you want to write proprietary " "applications. PySide is free for all applications." msgstr "" +"Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant " +"soit `PyQt `_ ou `PySide " +"`_) et pour *KDE* (`PyKDE4 `__). *PyQt* est actuellement plus mûre " +"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank " +"Computing `_ si " +"vous voulez écrire des applications propriétaires. *PySide* est gratuit " +"pour toutes les applications." #: ../Doc/faq/gui.rst:67 msgid "" "Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses " "are available from `The Qt Company `_." msgstr "" +"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont " +"disponibles auprès de `The Qt Company `_." #: ../Doc/faq/gui.rst:71 msgid "Gtk+" -msgstr "" +msgstr "*Gtk+*" #: ../Doc/faq/gui.rst:73 msgid "" @@ -121,16 +151,23 @@ msgid "" "also a `Python GTK+ 3 Tutorial `_." msgstr "" +"Les `GObject introspection bindings `_ pour Python vous permettent d'écrire des applications GTK+ 3. " +"Il y a aussi un tutoriel `Python GTK+ 3 `_." #: ../Doc/faq/gui.rst:77 msgid "" "The older PyGtk bindings for the `Gtk+ 2 toolkit `_ " "have been implemented by James Henstridge; see ." msgstr "" +"Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit `_ ont été implémentées par James Henstridge ; voir ." #: ../Doc/faq/gui.rst:81 msgid "Kivy" -msgstr "" +msgstr "*Kivy*" #: ../Doc/faq/gui.rst:83 msgid "" @@ -139,15 +176,20 @@ msgid "" "(Android, iOS). It is written in Python and Cython, and can use a range of " "windowing backends." msgstr "" +"`*Kivy* `_ est une bibliothèque GUI multi-plateformes " +"disponible à la fois sur les systèmes d'exploitation de bureau (Windows, " +"MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite en " +"Python et Cython, et peut utiliser une série de fenêtres de *backends*." #: ../Doc/faq/gui.rst:88 msgid "" "Kivy is free and open source software distributed under the MIT license." msgstr "" +"*Kivy* est un logiciel libre et open source distribué sous licence MIT." #: ../Doc/faq/gui.rst:91 msgid "FLTK" -msgstr "" +msgstr "*FLTK*" #: ../Doc/faq/gui.rst:93 msgid "" @@ -155,24 +197,33 @@ msgid "" "powerful and mature cross-platform windowing system, are available from `the " "PyFLTK project `_." msgstr "" +"Les liaisons Python pour `the FLTK toolkit `_, un " +"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont " +"disponibles auprès de `the PyFLTK project `_." #: ../Doc/faq/gui.rst:98 msgid "OpenGL" -msgstr "" +msgstr "*OpenGL*" #: ../Doc/faq/gui.rst:100 msgid "For OpenGL bindings, see `PyOpenGL `_." msgstr "" +"Pour les clients OpenGL, voir `PyOpenGL `_." #: ../Doc/faq/gui.rst:104 msgid "What platform-specific GUI toolkits exist for Python?" msgstr "" +"Quelles boîtes à outils IUG spécifiques à la plate-forme existent pour " +"Python ?" #: ../Doc/faq/gui.rst:106 msgid "" "By installing the `PyObjc Objective-C bridge `_, Python programs can use Mac OS X's Cocoa libraries." msgstr "" +"En installant le `PyObjc Objective-C bridge `_, les programmes Python peuvent utiliser les bibliothèques Cocoa de Mac " +"OS X." #: ../Doc/faq/gui.rst:110 msgid "" @@ -180,14 +231,17 @@ msgid "" "Microsoft Foundation Classes and a Python programming environment that's " "written mostly in Python using the MFC classes." msgstr "" +":ref:`Pythonwin ` de Mark Hammond inclut une interface vers les " +"classes `Microsoft Foundation Classes` et un environnement de programmation " +"Python qui est écrit principalement en Python utilisant les classes *MFC*." #: ../Doc/faq/gui.rst:116 msgid "Tkinter questions" -msgstr "" +msgstr "Questions à propos de *Tkinter*" #: ../Doc/faq/gui.rst:119 msgid "How do I freeze Tkinter applications?" -msgstr "" +msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?" #: ../Doc/faq/gui.rst:121 msgid "" @@ -195,6 +249,10 @@ msgid "" "applications, the applications will not be truly stand-alone, as the " "application will still need the Tcl and Tk libraries." msgstr "" +"*Freeze* est un outil pour créer des applications autonomes. Lors du " +"*freezage* des applications Tkinter, les applications ne seront pas vraiment " +"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et " +"Tk." #: ../Doc/faq/gui.rst:125 msgid "" @@ -202,6 +260,9 @@ msgid "" "point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:" "`TK_LIBRARY` environment variables." msgstr "" +"Une solution consiste à empaqueter les bibliothèques *Tcl* et *Tk* dans " +"l'application et de les retrouver à l'exécution en utilisant les variables " +"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`." #: ../Doc/faq/gui.rst:129 msgid "" @@ -210,6 +271,10 @@ msgid "" "is SAM (stand-alone modules), which is part of the Tix distribution (http://" "tix.sourceforge.net/)." msgstr "" +"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui " +"forment la bibliothèque doivent également être intégrés dans l'application. " +"Un outil supportant cela est *SAM* (modules autonomes), qui fait partie de " +"la distribution *Tix* (http://tix.sourceforge.net/)." #: ../Doc/faq/gui.rst:134 msgid "" @@ -217,10 +282,14 @@ msgid "" "`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " "with libtclsam and libtksam (you might include the Tix libraries as well)." msgstr "" +"Compilez Tix avec SAM activé, exécutez l'appel approprié à :c:func:" +"`Tclsam_init`, etc. dans le fichier :file:`Modules/tkappinit.c` de Python, " +"et liez avec *libtclsam* et *libtksam* (il est également possible d'inclure " +"les bibliothèques *Tix*)." #: ../Doc/faq/gui.rst:141 msgid "Can I have Tk events handled while waiting for I/O?" -msgstr "" +msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?" #: ../Doc/faq/gui.rst:143 msgid "" @@ -230,10 +299,18 @@ msgid "" "function which will be called from the Tk mainloop when I/O is possible on a " "file descriptor. See :ref:`tkinter-file-handlers`." msgstr "" +"Sur d'autres plates-formes que Windows, oui, et vous n'avez même pas besoin " +"de fils d'exécution multiples ! Mais vous devrez restructurer un peu votre " +"code *E/S*. *Tk* possède l'équivalent de l'appel :c:func:`XtAddInput()` de " +"*Xt*, qui vous permet d'enregistrer une fonction de *callback* qui sera " +"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur " +"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`." #: ../Doc/faq/gui.rst:151 msgid "I can't get key bindings to work in Tkinter: why?" msgstr "" +"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : " +"pourquoi ?" #: ../Doc/faq/gui.rst:153 msgid "" @@ -241,6 +318,9 @@ msgid "" "meth:`bind` method don't get handled even when the appropriate key is " "pressed." msgstr "" +"Une raison récurrente est que les gestionnaires d’évènements liés à des " +"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même " +"lorsque la touche appropriée est activée." #: ../Doc/faq/gui.rst:156 msgid "" @@ -249,3 +329,8 @@ msgid "" "focus command. Usually a widget is given the keyboard focus by clicking in " "it (but not for labels; see the takefocus option)." msgstr "" +"La cause la plus fréquente est que l'objet graphique auquel s'applique la " +"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour " +"la commande *focus*. Habituellement, un objet graphique reçoit le focus du " +"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option " +"*takefocus*)." diff --git a/faq/library.po b/faq/library.po index 3fc0bba62..ae422f258 100644 --- a/faq/library.po +++ b/faq/library.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-10-04 17:49+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-22 22:17+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \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" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" @@ -29,8 +30,7 @@ msgstr "Questions générales sur la bibliothèque" #: ../Doc/faq/library.rst:15 msgid "How do I find a module or application to perform task X?" msgstr "" -"Comment puis-je trouver un module ou une application pour exécuter la tâche " -"X?" +"Comment trouver un module ou une application pour effectuer la tâche X ?" #: ../Doc/faq/library.rst:17 msgid "" @@ -38,6 +38,9 @@ msgid "" "relevant standard library module. (Eventually you'll learn what's in the " "standard library and will be able to skip this step.)" msgstr "" +"Regardez si la :ref:`bibliothèque standard ` contient un " +"module approprié (avec l'expérience, vous connaitrez le contenu de la " +"bibliothèque standard et pourrez sauter cette étape)." #: ../Doc/faq/library.rst:21 msgid "" @@ -46,11 +49,17 @@ msgid "" "engine. Searching for \"Python\" plus a keyword or two for your topic of " "interest will usually find something helpful." msgstr "" +"Pour des paquets tiers, regardez dans `l'index des paquets Python `_ ou essayez `Google `_ ou un autre moteur " +"de recherche (NDT : comme le moteur français `Qwant `_). Rechercher « Python » accompagné d'un ou deux mots-clés se " +"rapportant à ce qui vous intéresse donne souvent de bons résultats." #: ../Doc/faq/library.rst:28 msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" msgstr "" -"Où se situe le fichier source *math.py* (*socket.py*, *regex.py*, etc.) ?" +"Où sont stockés les fichiers sources *math.py*, *socket.py*, *regex.py*, " +"etc ?" #: ../Doc/faq/library.rst:30 msgid "" @@ -60,31 +69,39 @@ msgid "" "file:`mathmodule.c`, somewhere in a C source directory (not on the Python " "Path)." msgstr "" +"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-" +"être parce que celui-ci est un module natif ou bien un module implémenté en " +"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, " +"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité " +"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas " +"dans le chemin Python), comme par exemple :file:`mathmodule.c`." #: ../Doc/faq/library.rst:35 msgid "There are (at least) three kinds of modules in Python:" -msgstr "Il y a (au moins) trois types de modules dans Python" +msgstr "Il y a (au moins) trois types de modules dans Python :" #: ../Doc/faq/library.rst:37 msgid "modules written in Python (.py);" -msgstr "modules écrits en Python (*.py*) ;" +msgstr "les modules écrits en Python (*.py*) ;" #: ../Doc/faq/library.rst:38 msgid "" "modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" msgstr "" -"modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *.sl*, " -"*.etc*) ;" +"les modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *." +"sl*, *etc.*) ;" #: ../Doc/faq/library.rst:39 msgid "" "modules written in C and linked with the interpreter; to get a list of " "these, type::" msgstr "" +"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, " +"entrez ::" #: ../Doc/faq/library.rst:47 msgid "How do I make a Python script executable on Unix?" -msgstr "" +msgstr "Comment rendre un script Python exécutable sous Unix ?" #: ../Doc/faq/library.rst:49 msgid "" @@ -92,24 +109,31 @@ msgid "" "first line must begin with ``#!`` followed by the path of the Python " "interpreter." msgstr "" +"Deux conditions doivent être remplies : les droits d'accès au fichier " +"doivent permettre son exécution et la première ligne du script doit " +"commencer par ``#!`` suivi du chemin vers l'interpréteur Python." #: ../Doc/faq/library.rst:53 msgid "" "The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " "755 scriptfile``." msgstr "" +"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou " +"``chmod 755 scriptfile``." #: ../Doc/faq/library.rst:56 msgid "" "The second can be done in a number of ways. The most straightforward way is " "to write ::" msgstr "" +"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à " +"écrire au tout début du fichier ::" #: ../Doc/faq/library.rst:61 msgid "" "as the very first line of your file, using the pathname for where the Python " "interpreter is installed on your platform." -msgstr "" +msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine." #: ../Doc/faq/library.rst:64 msgid "" @@ -118,6 +142,11 @@ msgid "" "variants support the following, assuming the Python interpreter is in a " "directory on the user's :envvar:`PATH`::" msgstr "" +"Pour rendre ce script indépendant de la localisation de l'interpréteur " +"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous " +"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que " +"l'interpréteur Python soit dans un dossier référencé dans la variable :" +"envvar:`PATH` de l'utilisateur ::" #: ../Doc/faq/library.rst:71 msgid "" @@ -125,6 +154,9 @@ msgid "" "scripts is often very minimal, so you need to use the actual absolute " "pathname of the interpreter." msgstr "" +"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des " +"scripts CGI est souvent très succincte, il faut par conséquent préciser le " +"chemin absolu réel de l'interpréteur." #: ../Doc/faq/library.rst:75 msgid "" @@ -132,16 +164,22 @@ msgid "" "env` program fails; or there's no env program at all. In that case, you can " "try the following hack (due to Alex Rezinsky):" msgstr "" +"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le " +"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* " +"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, " +"élaborée par Alex Rezinsky :" #: ../Doc/faq/library.rst:86 msgid "" "The minor disadvantage is that this defines the script's __doc__ string. " "However, you can fix that by adding ::" msgstr "" +"Le léger inconvénient est que cela définit la variable *__doc__* du script. " +"Cependant, il est possible de corriger cela en ajoutant ::" #: ../Doc/faq/library.rst:94 msgid "Is there a curses/termcap package for Python?" -msgstr "" +msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?" #: ../Doc/faq/library.rst:98 msgid "" @@ -150,6 +188,10 @@ msgid "" "compiled by default. (Note that this is not available in the Windows " "distribution -- there is no curses module for Windows.)" msgstr "" +"Pour les dérivés d'Unix : la distribution standard de Python contient un " +"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit " +"pas compilé par défaut. Il n'est pas disponible en Windows — le module " +"*curses* n'existant pas en Windows." #: ../Doc/faq/library.rst:103 msgid "" @@ -160,44 +202,57 @@ msgid "" "but there don't seem to be any currently maintained OSes that fall into this " "category." msgstr "" +"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et " +"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de " +"*SYSV curses* comme la couleur, la gestion des ensembles de caractères " +"alternatifs, la prise en charge du pavé tactile et de la souris. Cela " +"implique que le module n'est pas compatible avec des systèmes d'exploitation " +"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes " +"d'exploitation ne semblent plus exister ou être maintenus." #: ../Doc/faq/library.rst:109 msgid "" "For Windows: use `the consolelib module `_." msgstr "" +"Pour Windows : utilisez le module `consolelib `_." #: ../Doc/faq/library.rst:114 msgid "Is there an equivalent to C's onexit() in Python?" -msgstr "" +msgstr "Existe-t'il un équivalent à la fonction C ``onexit()`` en Python ?" #: ../Doc/faq/library.rst:116 msgid "" "The :mod:`atexit` module provides a register function that is similar to " "C's :c:func:`onexit`." msgstr "" +"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la " +"fonction C :c:func:`onexit`." #: ../Doc/faq/library.rst:121 msgid "Why don't my signal handlers work?" -msgstr "" +msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-t'ils pas ?" #: ../Doc/faq/library.rst:123 msgid "" "The most common problem is that the signal handler is declared with the " "wrong argument list. It is called as ::" msgstr "" +"Le problème le plus courant est d'appeler le gestionnaire de signaux avec " +"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::" #: ../Doc/faq/library.rst:128 msgid "so it should be declared with two arguments::" -msgstr "" +msgstr "donc il doit être déclaré avec deux paramètres ::" #: ../Doc/faq/library.rst:135 msgid "Common tasks" -msgstr "" +msgstr "Tâches fréquentes" #: ../Doc/faq/library.rst:138 msgid "How do I test a Python program or component?" -msgstr "" +msgstr "Comment tester un programme ou un composant Python ?" #: ../Doc/faq/library.rst:140 msgid "" @@ -205,12 +260,17 @@ msgid "" "examples in the docstrings for a module and runs them, comparing the output " "with the expected output given in the docstring." msgstr "" +"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des " +"exemples dans les *docstrings* d'un module et les exécute. Il compare alors " +"la sortie avec la sortie attendue, telle que définie dans la *docstring*." #: ../Doc/faq/library.rst:144 msgid "" "The :mod:`unittest` module is a fancier testing framework modelled on Java " "and Smalltalk testing frameworks." msgstr "" +"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les " +"cadriciels de test de Java et de Smalltalk." #: ../Doc/faq/library.rst:147 msgid "" @@ -222,14 +282,23 @@ msgid "" "avoid depending on mutating global variables, since this makes testing much " "more difficult to do." msgstr "" +"Pour rendre le test plus aisé, il est nécessaire de bien découper le code " +"d'un programme. Votre programme doit avoir la quasi-totalité des " +"fonctionnalités dans des fonctions ou des classes — et ceci a parfois " +"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, " +"les accès aux variables locales étant en effet plus rapides que les accès " +"aux variables globales. De plus le programme doit éviter au maximum de " +"manipuler des variables globales, car ceci rend le test beaucoup plus " +"difficile." #: ../Doc/faq/library.rst:155 msgid "The \"global main logic\" of your program may be as simple as ::" msgstr "" +"La « logique générale » d'un programme devrait être aussi simple que ::" #: ../Doc/faq/library.rst:160 msgid "at the bottom of the main module of your program." -msgstr "" +msgstr "à la fin du module principal du programme." #: ../Doc/faq/library.rst:162 msgid "" @@ -242,12 +311,24 @@ msgid "" "the \"production code\", since this makes it easy to find bugs and even " "design flaws earlier." msgstr "" +"Une fois que la logique du programme est implémentée par un ensemble de " +"fonctions et de comportements de classes, il faut écrire des fonctions de " +"test qui vont éprouver cette logique. À chaque module, il est possible " +"d'associer une suite de tests qui joue de manière automatique un ensemble de " +"tests. Au premier abord, il semble qu'il faille fournir un effort " +"conséquent, mais comme Python est un langage concis et flexible, c'est " +"surprenamment aisé. Écrire simultanément le code « de production » et les " +"fonctions de test associées rend le développement plus agréable et plus " +"amusant, car ceci permet de trouver des bogues, voire des défauts de " +"conception, plus facilement." #: ../Doc/faq/library.rst:170 msgid "" "\"Support modules\" that are not intended to be the main module of a program " "may include a self-test of the module. ::" msgstr "" +"Les « modules auxiliaires » qui n'ont pas vocation à être le module " +"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::" #: ../Doc/faq/library.rst:176 msgid "" @@ -255,10 +336,13 @@ msgid "" "when the external interfaces are unavailable by using \"fake\" interfaces " "implemented in Python." msgstr "" +"Les programmes qui interagissent avec des interfaces externes complexes " +"peuvent être testés même quand ces interfaces ne sont pas disponibles, en " +"utilisant des interfaces « simulacres » implémentées en Python." #: ../Doc/faq/library.rst:182 msgid "How do I create documentation from doc strings?" -msgstr "" +msgstr "Comment générer la documentation à partir des *docstrings* ?" #: ../Doc/faq/library.rst:184 msgid "" @@ -267,24 +351,32 @@ msgid "" "docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." msgstr "" +"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du " +"code source Python. Il est aussi possible de documenter une API uniquement à " +"partir des *docstrings* à l'aide de `epydoc `_. `Sphinx `_ peut également inclure du contenu " +"provenant de *docstrings*." #: ../Doc/faq/library.rst:191 msgid "How do I get a single keypress at a time?" -msgstr "" +msgstr "Comment détecter qu'une touche est pressée ?" #: ../Doc/faq/library.rst:193 msgid "" "For Unix variants there are several solutions. It's straightforward to do " "this using curses, but curses is a fairly large module to learn." msgstr "" +"Pour les dérivés d'Unix, plusieurs solutions s'offrent à vous. C'est facile " +"en utilisant le module *curses*, mais *curses* est un module assez " +"conséquent à apprendre." #: ../Doc/faq/library.rst:237 msgid "Threads" -msgstr "" +msgstr "Fils d'exécution" #: ../Doc/faq/library.rst:240 msgid "How do I program using threads?" -msgstr "" +msgstr "Comment programmer avec des fils d'exécution ?" #: ../Doc/faq/library.rst:242 msgid "" @@ -292,28 +384,38 @@ msgid "" "module. The :mod:`threading` module builds convenient abstractions on top of " "the low-level primitives provided by the :mod:`_thread` module." msgstr "" +"Veillez à bien utiliser le module :mod:`threading` et non le module :mod:" +"`_thread`. Le module :mod:`threading` fournit une abstraction plus facile à " +"manipuler que les primitives de bas-niveau du module :mod:`_thread`." #: ../Doc/faq/library.rst:246 msgid "" "Aahz has a set of slides from his threading tutorial that are helpful; see " "http://www.pythoncraft.com/OSCON2001/." msgstr "" +"Un ensemble de diapositives issues du didacticiel de Aahz sur les fils " +"d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/." #: ../Doc/faq/library.rst:251 msgid "None of my threads seem to run: why?" -msgstr "" +msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?" #: ../Doc/faq/library.rst:253 msgid "" "As soon as the main thread exits, all threads are killed. Your main thread " "is running too quickly, giving the threads no time to do any work." msgstr "" +"Dès que le fil d'exécution principal se termine, tous les fils sont tués. Le " +"fil principal s'exécute trop rapidement, sans laisser le temps aux autres " +"fils de faire quoi que ce soit." #: ../Doc/faq/library.rst:256 msgid "" "A simple fix is to add a sleep to the end of the program that's long enough " "for all the threads to finish::" msgstr "" +"Une correction simple consiste à ajouter un temps d'attente suffisamment " +"long à la fin du programme pour que tous les fils puissent se terminer ::" #: ../Doc/faq/library.rst:271 msgid "" @@ -321,10 +423,16 @@ msgid "" "run sequentially, one at a time! The reason is that the OS thread scheduler " "doesn't start a new thread until the previous thread is blocked." msgstr "" +"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas " +"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après " +"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne " +"démarre pas de nouveau fil avant que le précédent ne soit bloqué." #: ../Doc/faq/library.rst:275 msgid "A simple fix is to add a tiny sleep to the start of the run function::" msgstr "" +"Une correction simple consiste à ajouter un petit temps d'attente au début " +"de la fonction ::" #: ../Doc/faq/library.rst:288 msgid "" @@ -334,16 +442,27 @@ msgid "" "the queue when it finishes, and let the main thread read as many tokens from " "the queue as there are threads." msgstr "" +"Au lieu d'essayer de trouver une bonne valeur d'attente pour la fonction :" +"func:`time.sleep`, il vaut mieux utiliser un mécanisme basé sur les " +"sémaphores. Une solution consiste à utiliser le module :mod:`queue` pour " +"créer un objet file, faire en sorte que chaque fil ajoute un jeton à la file " +"quand il se termine, et que le fil principal retire autant de jetons de la " +"file qu'il y a de fils." #: ../Doc/faq/library.rst:296 msgid "How do I parcel out work among a bunch of worker threads?" msgstr "" +"Comment découper et répartir une tâche au sein d'un ensemble de fils " +"d'exécutions ?" #: ../Doc/faq/library.rst:298 msgid "" "The easiest way is to use the new :mod:`concurrent.futures` module, " "especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" +"La manière la plus simple est d'utiliser le nouveau module :mod:`concurrent." +"futures`, en particulier la classe :mod:`~concurrent.futures." +"ThreadPoolExecutor`." #: ../Doc/faq/library.rst:301 msgid "" @@ -354,24 +473,35 @@ msgid "" "``.get()`` method to return them. The class will take care of the locking " "necessary to ensure that each job is handed out exactly once." msgstr "" +"Ou bien, si vous désirez contrôler plus finement l'algorithme de " +"distribution, vous pouvez écrire votre propre logique « à la main ». " +"Utilisez le module :mod:`queue` pour créer une file de tâches ; la classe :" +"class:`~queue.Queue` gère une liste d'objets et a une méthode ``." +"put(objet)`` pour ajouter un élément à la file, et une méthode ``.get()`` " +"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque " +"tâche soit exécutée une et une seule fois." #: ../Doc/faq/library.rst:308 msgid "Here's a trivial example::" -msgstr "" +msgstr "Voici un exemple trivial ::" #: ../Doc/faq/library.rst:346 msgid "When run, this will produce the following output:" -msgstr "" +msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :" #: ../Doc/faq/library.rst:364 msgid "" "Consult the module's documentation for more details; the :class:`~queue." "Queue` class provides a featureful interface." msgstr "" +"Consultez la documentation du module pour plus de détails ; la classe :class:" +"`~queue.Queue` fournit une interface pleine de fonctionnalités." #: ../Doc/faq/library.rst:369 msgid "What kinds of global value mutation are thread-safe?" msgstr "" +"Quels types de mutations sur des variables globales sont compatibles avec " +"les programmes à fils d'exécution multiples ? sécurisé ?" #: ../Doc/faq/library.rst:371 msgid "" @@ -382,6 +512,14 @@ msgid "" "instruction and therefore all the C implementation code reached from each " "instruction is therefore atomic from the point of view of a Python program." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL " +"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la " +"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De " +"manière générale, Python ne change de fil qu'entre les instructions du code " +"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la " +"fréquence de bascule entre les fils. Chaque instruction du code " +"intermédiaire, et, par conséquent, tout le code C appelé par cette " +"instruction est donc atomique du point de vue d'un programme Python." #: ../Doc/faq/library.rst:378 msgid "" @@ -390,16 +528,24 @@ msgid "" "shared variables of built-in data types (ints, lists, dicts, etc) that " "\"look atomic\" really are." msgstr "" +"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance " +"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les " +"opérations sur des variables partagées de type natif (les entier, les " +"listes, les dictionnaires etc.) qui « semblent atomiques » le sont " +"réellement." #: ../Doc/faq/library.rst:383 msgid "" "For example, the following operations are all atomic (L, L1, L2 are lists, " "D, D1, D2 are dicts, x, y are objects, i, j are ints)::" msgstr "" +"Par exemple, les opérations suivantes sont toutes atomiques (*L*, *L1* et " +"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* " +"sont des objets, *i* et *j* des entiers) ::" #: ../Doc/faq/library.rst:398 msgid "These aren't::" -msgstr "" +msgstr "Les suivantes ne le sont pas ::" #: ../Doc/faq/library.rst:405 msgid "" @@ -408,10 +554,15 @@ msgid "" "affect things. This is especially true for the mass updates to dictionaries " "and lists. When in doubt, use a mutex!" msgstr "" +"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :" +"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, " +"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les " +"des changements massifs sur des dictionnaires ou des listes. En cas de " +"doute, il vaut mieux utiliser un mutex." #: ../Doc/faq/library.rst:412 msgid "Can't we get rid of the Global Interpreter Lock?" -msgstr "" +msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?" #: ../Doc/faq/library.rst:416 msgid "" @@ -420,6 +571,12 @@ msgid "" "multi-threaded Python program effectively only uses one CPU, due to the " "insistence that (almost) all Python code can only run while the GIL is held." msgstr "" +"Le :term:`verrou global de l'interpréteur ` (GIL) " +"est souvent vu comme un obstacle au déploiement de code Python sur des " +"serveurs puissants avec de nombreux processeurs, car un programme Python à " +"fils d'exécutions multiples n'utilise en réalité qu'un seul processeur. " +"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL " +"acquis." #: ../Doc/faq/library.rst:421 msgid "" @@ -432,6 +589,14 @@ msgid "" "due to the amount of fine-grained locking necessary to compensate for the " "removal of the GIL." msgstr "" +"À l'époque de Python 1.5, Greg Stein a bien implémenté un ensemble complet " +"de correctifs (les correctifs « fils d'exécution libres ») qui remplaçaient " +"le GIL par des verrous plus granulaires. Adam Olsen a conduit une expérience " +"similaire dans son projet `python-safethread `_. Malheureusement, ces deux tentatives ont " +"induit une baisse significative (d'au moins 30%) des performances du code à " +"un seul fil d'exécution, à cause de la quantité de verrouillage plus " +"granulaire nécessaire pour contrebalancer la suppression du GIL." #: ../Doc/faq/library.rst:429 msgid "" @@ -443,6 +608,13 @@ msgid "" "module provides a lower-level API in case you want more control over " "dispatching of tasks." msgstr "" +"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des " +"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le " +"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils " +"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du " +"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; " +"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un " +"meilleur contrôle sur la distribution des tâches." #: ../Doc/faq/library.rst:437 msgid "" @@ -452,6 +624,11 @@ msgid "" "work done. Some standard library modules such as :mod:`zlib` and :mod:" "`hashlib` already do this." msgstr "" +"Des extensions C appropriées peuvent aussi aider ; en utilisant une " +"extension C pour effectuer une tâche longue, l'extension peut relâcher le " +"GIL pendant que le fil est en train d'exécuter ce code et laisser les autres " +"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` " +"ou :mod:`hashlib` utilisent cette technique." #: ../Doc/faq/library.rst:443 msgid "" @@ -464,6 +641,15 @@ msgid "" "types have their own free list; these free lists would have to be moved to " "the interpreter state. And so on." msgstr "" +"On a déjà proposé de restreindre le GIL par interpréteur, et non plus d'être " +"complétement global ; les interpréteurs ne seraient plus en mesure de " +"partager des objets. Malheureusement, cela n'a pas beaucoup de chance non " +"plus d'arriver. Cela nécessiterait un travail considérable, car la façon " +"dont beaucoup d'objets sont implémentés rend leur état global. Par exemple, " +"les entiers et les chaînes de caractères courts sont mis en cache ; ces " +"caches devraient être déplacés au niveau de l'interpréteur. D'autres objets " +"ont leur propre liste de suppression, ces listes devraient être déplacées au " +"niveau de l'interpréteur et ainsi de suite." #: ../Doc/faq/library.rst:452 msgid "" @@ -472,12 +658,19 @@ msgid "" "extensions are being written at a faster rate than you can convert them to " "store all their global state in the interpreter state." msgstr "" +"C'est une tâche sans fin, car les extensions tierces ont le même problème, " +"et il est probable que les extensions tierces soient développées plus vite " +"qu'il ne soit possible de les corriger pour les faire stocker leur état au " +"niveau de l'interpréteur et non plus au niveau global." #: ../Doc/faq/library.rst:457 msgid "" "And finally, once you have multiple interpreters not sharing any state, what " "have you gained over running each interpreter in a separate process?" msgstr "" +"Et enfin, quel intérêt y-a t'il à avoir plusieurs interpréteurs qui ne " +"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans " +"un processus différent ?" #: ../Doc/faq/library.rst:462 msgid "Input and Output" @@ -485,7 +678,7 @@ msgstr "Les entrées/sorties" #: ../Doc/faq/library.rst:465 msgid "How do I delete a file? (And other file questions...)" -msgstr "" +msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)" #: ../Doc/faq/library.rst:467 msgid "" @@ -493,6 +686,10 @@ msgid "" "see the :mod:`os` module. The two functions are identical; :func:`~os." "unlink` is simply the name of the Unix system call for this function." msgstr "" +"Utilisez ``os.remove(filename)`` ou ``os.unlink(filename)`` ; pour la " +"documentation, référez-vous au module :mod:`os`. Ces deux fonctions sont " +"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel " +"système à cette fonction sous Unix." #: ../Doc/faq/library.rst:471 msgid "" @@ -502,10 +699,16 @@ msgid "" "directories as long as they're empty; if you want to delete an entire " "directory tree and its contents, use :func:`shutil.rmtree`." msgstr "" +"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour " +"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers " +"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` " +"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer " +"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`." #: ../Doc/faq/library.rst:477 msgid "To rename a file, use ``os.rename(old_path, new_path)``." msgstr "" +"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier." #: ../Doc/faq/library.rst:479 msgid "" @@ -514,6 +717,11 @@ msgid "" "There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os." "open`, where *fd* is the file descriptor (a small integer)." msgstr "" +"Pour supprimer le contenu d'un fichier, ouvrez celui-ci avec ``f = " +"open(nom_du_fichier, \"rb+\")``, puis exécutez ``f.truncate(décalage)`` où " +"*décalage* est par défaut la position actuelle de la tête de lecture. Il " +"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts avec :" +"func:`os.open`, où *df* est le descripteur de fichier (un entier court)." #: ../Doc/faq/library.rst:484 msgid "" @@ -521,20 +729,26 @@ msgid "" "files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" "func:`~shutil.rmtree`." msgstr "" +"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour " +"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :" +"func:`~shutil.copytree` et :func:`~shutil.rmtree`." #: ../Doc/faq/library.rst:490 msgid "How do I copy a file?" -msgstr "" +msgstr "Comment copier un fichier ?" #: ../Doc/faq/library.rst:492 msgid "" "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " "that on MacOS 9 it doesn't copy the resource fork and Finder info." msgstr "" +"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous " +"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations " +"du chercheur." #: ../Doc/faq/library.rst:497 msgid "How do I read (or write) binary data?" -msgstr "" +msgstr "Comment lire (ou écrire) des données binaires ?" #: ../Doc/faq/library.rst:499 msgid "" @@ -542,12 +756,18 @@ msgid "" "`struct` module. It allows you to take a string containing binary data " "(usually numbers) and convert it to Python objects; and vice versa." msgstr "" +"Pour lire ou écrire des formats de données complexes en binaire, il est " +"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir " +"une chaîne de caractères qui contient des données binaires, souvent des " +"nombres, en objets Python, et vice-versa." #: ../Doc/faq/library.rst:503 msgid "" "For example, the following code reads two 2-byte integers and one 4-byte " "integer in big-endian format from a file::" msgstr "" +"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur " +"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::" #: ../Doc/faq/library.rst:512 msgid "" @@ -555,12 +775,18 @@ msgid "" "one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " "bytes) from the string." msgstr "" +"« > » dans la chaîne de formatage indique que la donnée doit être lue en " +"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la " +"lettre « l » indique un entier long (4 octets)." #: ../Doc/faq/library.rst:516 msgid "" "For data that is more regular (e.g. a homogeneous list of ints or floats), " "you can also use the :mod:`array` module." msgstr "" +"Pour une donnée plus régulière (p. ex. une liste homogène d'entiers ou de " +"nombres à virgule flottante), il est possible d'utiliser le module :mod:" +"`array`." #: ../Doc/faq/library.rst:521 msgid "" @@ -569,10 +795,17 @@ msgid "" "instead (the default), the file will be open in text mode and ``f.read()`` " "will return :class:`str` objects rather than :class:`bytes` objects." msgstr "" +"Pour lire et écrire de la donnée binaire, il est obligatoire d'ouvrir le " +"fichier en mode binaire également (ici, en passant ``\"rb\"`` à :func:" +"`open`). En utilisant ``\"r\"`` (valeur par défaut), le fichier est ouvert " +"en mode textuel et ``f.read()`` renvoie des objets :class:`str` au lieu " +"d'objets :class:`bytes`." #: ../Doc/faq/library.rst:529 msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" msgstr "" +"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os." +"popen()`` ; pourquoi ?" #: ../Doc/faq/library.rst:531 msgid "" @@ -582,36 +815,47 @@ msgid "" "function. Thus, to read *n* bytes from a pipe *p* created with :func:`os." "popen`, you need to use ``p.read(n)``." msgstr "" +":func:`os.read` est une fonction de bas niveau qui prend en paramètre un " +"descripteur de fichier — un entier court qui représente le fichier ouvert. :" +"func:`os.popen` crée un objet fichier de haut niveau, du même type que celui " +"renvoyé par la fonction native :func:`open`. Par conséquent, pour lire *n* " +"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p." +"read(n)``." #: ../Doc/faq/library.rst:618 msgid "How do I access the serial (RS232) port?" -msgstr "" +msgstr "Comment accéder au port de transmission en série (RS-232) ?" #: ../Doc/faq/library.rst:620 msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:" -msgstr "" +msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :" #: ../Doc/faq/library.rst:622 msgid "http://pyserial.sourceforge.net" -msgstr "" +msgstr "http://pyserial.sourceforge.net" #: ../Doc/faq/library.rst:624 msgid "For Unix, see a Usenet post by Mitch Chapman:" msgstr "" +"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :" #: ../Doc/faq/library.rst:626 msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" -msgstr "" +msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" #: ../Doc/faq/library.rst:630 msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" msgstr "" +"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas " +"réellement ?" #: ../Doc/faq/library.rst:632 msgid "" "Python :term:`file objects ` are a high-level layer of " "abstraction on low-level C file descriptors." msgstr "" +"Les :term:`objets fichiers ` en Python sont des abstractions de " +"haut niveau sur les descripteurs de fichier C de bas niveau." #: ../Doc/faq/library.rst:635 msgid "" @@ -621,6 +865,11 @@ msgid "" "descriptor. This also happens automatically in ``f``'s destructor, when " "``f`` becomes garbage." msgstr "" +"Pour la plupart des objets fichiers créés en Python avec la fonction native :" +"func:`open`, ``f.close()`` marque le fichier comme fermé du point de vue de " +"Python et ferme aussi le descripteur C sous-jacent. Le même mécanisme est " +"enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` est " +"recyclé." #: ../Doc/faq/library.rst:641 msgid "" @@ -629,6 +878,10 @@ msgid "" "marks the Python-level file object as being closed, but does *not* close the " "associated C file descriptor." msgstr "" +"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en " +"Python, car leur statut en C est lui-aussi spécial. Exécuter ``sys.stdout." +"close()`` marque l'objet fichier comme fermé du point de vue de Python, mais " +"le descripteur de fichier C associé n'est *pas* fermé." #: ../Doc/faq/library.rst:646 msgid "" @@ -636,18 +889,24 @@ msgid "" "first be sure that's what you really want to do (e.g., you may confuse " "extension modules trying to do I/O). If it is, use :func:`os.close`::" msgstr "" +"Pour fermer le descripteur de fichier sous-jacent C de l'une de ces trois " +"sorties, demandez-vous avant tout si vous êtes sûr de vous (cela peut, par " +"exemple, perturber le bon fonctionnement de modules qui font des opérations " +"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::" #: ../Doc/faq/library.rst:654 msgid "Or you can use the numeric constants 0, 1 and 2, respectively." msgstr "" +"Il est aussi possible de fermer respectivement les constantes numériques 0, " +"1 ou 2." #: ../Doc/faq/library.rst:658 msgid "Network/Internet Programming" -msgstr "" +msgstr "Programmation réseau et Internet" #: ../Doc/faq/library.rst:661 msgid "What WWW tools are there for Python?" -msgstr "" +msgstr "Quels sont les outils Python dédiés à la Toile ?" #: ../Doc/faq/library.rst:663 msgid "" @@ -655,32 +914,42 @@ msgid "" "Reference Manual. Python has many modules that will help you build server-" "side and client-side web systems." msgstr "" +"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans " +"le manuel de référence de la bibliothèque. Python a de nombreux modules pour " +"construire des applications de Toile côté client comme côté serveur." #: ../Doc/faq/library.rst:669 msgid "" "A summary of available frameworks is maintained by Paul Boddie at https://" "wiki.python.org/moin/WebProgramming\\ ." msgstr "" +"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à " +"l'adresse https://wiki.python.org/moin/WebProgramming\\ ." #: ../Doc/faq/library.rst:672 msgid "" "Cameron Laird maintains a useful set of pages about Python web technologies " "at http://phaseit.net/claird/comp.lang.python/web_python." msgstr "" +"Cameron Laird maintient un ensemble intéressant d'articles sur les " +"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/" +"comp.lang.python/web_python." #: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" -msgstr "" +msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" #: ../Doc/faq/library.rst:679 msgid "" "I would like to retrieve web pages that are the result of POSTing a form. Is " "there existing code that would let me do this easily?" msgstr "" +"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la " +"Toile. Existe-t'il déjà du code qui pourrait m'aider à le faire facilement ?" #: ../Doc/faq/library.rst:682 msgid "Yes. Here's a simple example that uses urllib.request::" -msgstr "" +msgstr "Oui. Voici un exemple simple d'utilisation de *urllib.request* ::" #: ../Doc/faq/library.rst:697 msgid "" @@ -688,34 +957,42 @@ msgid "" "be quoted using :func:`urllib.parse.urlencode`. For example, to send " "``name=Guy Steele, Jr.``::" msgstr "" +"Remarquez qu'en général, la chaîne de caractères d'une requête POST encodée " +"avec des des signes « % » doit être mise entre guillemets à l'aide de :func:" +"`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy Steele, Jr." +"`` ::" #: ../Doc/faq/library.rst:705 msgid ":ref:`urllib-howto` for extensive examples." -msgstr "" +msgstr ":ref:`urllib-howto` pour des exemples complets." #: ../Doc/faq/library.rst:709 msgid "What module should I use to help with generating HTML?" -msgstr "" +msgstr "Quel module utiliser pour générer du HTML ?" #: ../Doc/faq/library.rst:713 msgid "" "You can find a collection of useful links on the `Web Programming wiki page " "`_." msgstr "" +"La `page wiki de la programmation Toile `_ (en anglais) répertorie un ensemble de liens pertinents." #: ../Doc/faq/library.rst:718 msgid "How do I send mail from a Python script?" -msgstr "" +msgstr "Comment envoyer un courriel avec un script Python ?" #: ../Doc/faq/library.rst:720 msgid "Use the standard library module :mod:`smtplib`." -msgstr "" +msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard." #: ../Doc/faq/library.rst:722 msgid "" "Here's a very simple interactive mail sender that uses it. This method will " "work on any host that supports an SMTP listener. ::" msgstr "" +"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette " +"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::" #: ../Doc/faq/library.rst:742 msgid "" @@ -724,16 +1001,24 @@ msgid "" "usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " "some sample code::" msgstr "" +"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de " +"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/" +"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut " +"vous aider. Par exemple ::" #: ../Doc/faq/library.rst:762 msgid "How do I avoid blocking in the connect() method of a socket?" msgstr "" +"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur " +"réseau ?" #: ../Doc/faq/library.rst:764 msgid "" "The :mod:`select` module is commonly used to help with asynchronous I/O on " "sockets." msgstr "" +"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-" +"sorties asynchrones sur des connecteurs réseaux." #: ../Doc/faq/library.rst:767 msgid "" @@ -744,6 +1029,13 @@ msgid "" "progress, but hasn't finished yet. Different OSes will return different " "values, so you're going to have to check what's returned on your system." msgstr "" +"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le " +"connecteur en mode lecture seule. Avec cela, au moment du ``connect()``, la " +"connexion pourra être immédiate (peu probable) ou bien vous obtiendrez une " +"exception qui contient le numéro d'erreur dans ``.errno``. ``errno." +"EINPROGRESS`` indique que la connexion est en cours, mais qu'elle n'a pas " +"encore aboutie. La valeur dépend du système d'exploitation, donc renseignez-" +"vous sur la valeur utilisée par votre système." #: ../Doc/faq/library.rst:774 msgid "" @@ -752,6 +1044,12 @@ msgid "" "again later -- ``0`` or ``errno.EISCONN`` indicate that you're connected -- " "or you can pass this socket to select to check if it's writable." msgstr "" +"``connect_ex()`` permet d'éviter la création de l'exception, et de ne " +"renvoyer que la valeur de *errno*. Pour vérifier l'état de la connexion, " +"utilisez encore une fois ``connect_ex()`` — ``0`` ou ``errno.EISCONN`` " +"indiquent que la connexion est active — ou passez le connecteur en argument " +"de ``select()`` pour vérifier si le connecteur est prêt à recevoir des " +"entrées." #: ../Doc/faq/library.rst:780 msgid "" @@ -759,14 +1057,19 @@ msgid "" "of writing non-blocking networking code. The third-party `Twisted `_ library is a popular and feature-rich alternative." msgstr "" +"Le module :mod:`asyncore` propose une approche en cadriciel pour écrire du " +"code réseau non-bloquant. La bibliothèque tierce `Twisted `_ en est une alternative plébiscitée, avec un grand " +"nombre de fonctionnalités." #: ../Doc/faq/library.rst:787 msgid "Databases" -msgstr "" +msgstr "Bases de données" #: ../Doc/faq/library.rst:790 msgid "Are there any interfaces to database packages in Python?" msgstr "" +"Existe-t'il des modules Python pour s'interfacer avec des bases de données ?" #: ../Doc/faq/library.rst:792 msgid "Yes." @@ -779,6 +1082,10 @@ msgid "" "`sqlite3` module, which provides a lightweight disk-based relational " "database." msgstr "" +"La distribution standard de Python fournit aussi des interfaces à des bases " +"de données comme :mod:`DBM ` ou :mod:`GDBM `. Il existe " +"aussi le module :mod:`sqlite3` qui implémente une base de données " +"relationelle légère sur disque." #: ../Doc/faq/library.rst:799 msgid "" @@ -786,10 +1093,13 @@ msgid "" "`DatabaseProgramming wiki page `_ for details." msgstr "" +"La gestion de la plupart des bases de données relationnelles est assurée. " +"Voir la page wiki `DatabaseProgramming `_ pour plus de détails." #: ../Doc/faq/library.rst:805 msgid "How do you implement persistent objects in Python?" -msgstr "" +msgstr "Comment implémenter la persistance d'objets en Python ?" #: ../Doc/faq/library.rst:807 msgid "" @@ -798,57 +1108,72 @@ msgid "" "mod:`shelve` library module uses pickle and (g)dbm to create persistent " "mappings containing arbitrary Python objects." msgstr "" +"Le module :mod:`pickle` répond à cela de manière large (bien qu'il ne soit " +"pas possible de stocker des fichiers ouverts, des connecteurs ou des " +"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise " +"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python." #: ../Doc/faq/library.rst:814 msgid "Mathematics and Numerics" -msgstr "" +msgstr "Mathématiques et calcul numérique" #: ../Doc/faq/library.rst:817 msgid "How do I generate random numbers in Python?" -msgstr "" +msgstr "Comment générer des nombres aléatoires en Python ?" #: ../Doc/faq/library.rst:819 msgid "" "The standard module :mod:`random` implements a random number generator. " "Usage is simple::" msgstr "" +"Le module :mod:`random` de la bibliothèque standard comprend un générateur " +"de nombres aléatoires. Son utilisation est simple ::" #: ../Doc/faq/library.rst:825 msgid "This returns a random floating point number in the range [0, 1)." msgstr "" +"Le code précédent renvoie un nombre à virgule flottante aléatoire dans " +"l'intervalle [0, 1[." #: ../Doc/faq/library.rst:827 msgid "" "There are also many other specialized generators in this module, such as:" -msgstr "" +msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :" #: ../Doc/faq/library.rst:829 msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." -msgstr "" +msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[." #: ../Doc/faq/library.rst:830 msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)." msgstr "" +"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans " +"l'intervalle [a, b[." #: ../Doc/faq/library.rst:831 msgid "" "``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." -msgstr "" +msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)." #: ../Doc/faq/library.rst:833 msgid "Some higher-level functions operate on sequences directly, such as:" msgstr "" +"Des fonctions de haut niveau opèrent directement sur des séquences comme :" #: ../Doc/faq/library.rst:835 msgid "``choice(S)`` chooses random element from a given sequence" -msgstr "" +msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée" #: ../Doc/faq/library.rst:836 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly" msgstr "" +"``shuffle(L)`` mélange une liste en-place, c-à-d lui applique une " +"permutation aléatoire" #: ../Doc/faq/library.rst:838 msgid "" "There's also a ``Random`` class you can instantiate to create independent " "multiple random number generators." msgstr "" +"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour " +"créer des générateurs aléatoires indépendants." diff --git a/faq/programming.po b/faq/programming.po index 07194dd2b..9f6da9491 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-05-23 19:19+0200\n" +"PO-Revision-Date: 2019-09-16 11:03+0200\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -32,7 +32,7 @@ msgid "" "Is there a source code level debugger with breakpoints, single-stepping, " "etc.?" msgstr "" -"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" "à-pas, etc. ?" #: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63 @@ -44,6 +44,8 @@ msgid "" "Several debuggers for Python are described below, and the built-in function :" "func:`breakpoint` allows you to drop into any of them." msgstr "" +"Plusieurs débogueurs sont décrits ci-dessous et la fonction native :func:" +"`breakpoint` permet d'utiliser n'importe lequel d'entre eux." #: ../Doc/faq/programming.rst:22 msgid "" @@ -52,10 +54,10 @@ msgid "" "Library Reference Manual `. You can also write your own debugger by " "using the code for pdb as an example." msgstr "" -"Le module pdb est un débogueur console simple, mais parfaitement adapté à " -"Python. Il fait partie de la bibliothèque standard de Python, sa " +"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté " +"à Python. Il fait partie de la bibliothèque standard de Python, sa " "documentation se trouve dans le :mod:`manuel de référence `. Vous " -"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur." +"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." #: ../Doc/faq/programming.rst:27 msgid "" @@ -64,8 +66,8 @@ msgid "" "graphical debugger." msgstr "" "L'environnement de développement interactif IDLE, qui est fourni avec la " -"distribution standard de Python (normalement disponible dans Tools/scripts/" -"idle) contient un débogueur graphique." +"distribution standard de Python (normalement disponible dans ``Tools/scripts/" +"idle``) contient un débogueur graphique." #: ../Doc/faq/programming.rst:31 msgid "" @@ -76,13 +78,14 @@ msgid "" ">`__ project and as a part of the ActivePython distribution (see https://www." "activestate.com/activepython\\ )." msgstr "" -"PythonWin est un environnement de développement intégré (EDI) Python qui " -"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore " -"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme " -"la possibilité de déboguer des programmes développés sans PythonWin. " -"Pythonwin est disponible dans le projet `Extensions Python pour Windows " -"`__ et fait partie de la " -"distribution ActivePython (voir https://www.activestate.com/activepython\\ )." +"*PythonWin* est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " +"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " +"comme la possibilité de déboguer des programmes développés sans " +"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python " +"pour Windows `__ et fait partie " +"de la distribution ActivePython (voir https://www.activestate.com/" +"activepython\\ )." #: ../Doc/faq/programming.rst:38 msgid "" @@ -93,8 +96,8 @@ msgid "" "an advanced debugger, integrated help, and Zope support." msgstr "" "`Boa Constructor `_ est un EDI et " -"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " -"création et la manipulation de fenêtres, un inspecteur d'objets, de " +"un constructeur d'interface homme-machine basé sur *wxWidgets*. Il propose " +"la création et la manipulation de fenêtres, un inspecteur d'objets, de " "nombreuses façons de visualiser des sources comme un navigateur d'objets, " "les hiérarchies d'héritage, la documentation html générée par les " "docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " @@ -143,7 +146,7 @@ msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:61 msgid "Is there a tool to help find bugs or perform static analysis?" msgstr "" -"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " +"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " "statique de code ?" #: ../Doc/faq/programming.rst:65 @@ -152,9 +155,9 @@ msgid "" "and warns about code complexity and style. You can get PyChecker from " "http://pychecker.sourceforge.net/." msgstr "" -"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " -"source Python et émet des avertissements relatifs à la complexité et au " -"style du code. PyChecker est disponible sur http://pychecker.sourceforge." +"*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " +"code source Python et émet des avertissements relatifs à la complexité et au " +"style du code. *PyChecker* est disponible sur http://pychecker.sourceforge." "net/." #: ../Doc/faq/programming.rst:69 @@ -266,7 +269,7 @@ msgstr "" #: ../Doc/faq/programming.rst:115 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" -"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"Existe-t-il des normes de développement ou un guide de style pour écrire des " "programmes Python ?" #: ../Doc/faq/programming.rst:117 @@ -412,7 +415,7 @@ msgid "" msgstr "" "Le code précédent crée une liste de 5 expressions lambda qui calculent " "chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" #: ../Doc/faq/programming.rst:230 msgid "" @@ -427,7 +430,7 @@ msgstr "" "l'appel de l'expression lambda – et non au moment où cette expression est " "définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " "renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en constatant que les résultats sont modifiés :" +"valeur de ``x`` et en constatant que les résultats sont modifiés ::" #: ../Doc/faq/programming.rst:240 msgid "" @@ -436,7 +439,7 @@ msgid "" msgstr "" "Pour éviter ce phénomène, les valeurs doivent être stockées dans des " "variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` :" +"plus sur la variable globale ``x`` ::" #: ../Doc/faq/programming.rst:247 msgid "" @@ -451,7 +454,7 @@ msgstr "" "``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " "``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " "troisième et ainsi de suite. Chaque expression lambda renvoie donc le " -"résultat correct :" +"résultat correct ::" #: ../Doc/faq/programming.rst:258 msgid "" @@ -483,15 +486,15 @@ msgstr "" #: ../Doc/faq/programming.rst:271 msgid "config.py::" -msgstr "*config.py* ::" +msgstr "*config.py* ::" #: ../Doc/faq/programming.rst:275 msgid "mod.py::" -msgstr "*mod.py* ::" +msgstr "*mod.py* ::" #: ../Doc/faq/programming.rst:280 msgid "main.py::" -msgstr "*main.py* ::" +msgstr "*main.py* ::" #: ../Doc/faq/programming.rst:286 msgid "" @@ -569,7 +572,7 @@ msgid "" "module is busy importing the 2nd." msgstr "" "Il n'y a aucun souci à faire des importations circulaires tant que les deux " -"modules utilisent la forme \"import \" . Ça ne pose problème que si " +"modules utilisent la forme ``import ``. Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " "module import name\"*) et que l'importation est dans l'espace de nommage du " "fichier. Les noms du premier module ne sont en effet pas encore disponibles " @@ -638,7 +641,7 @@ msgid "" "function::" msgstr "" "C'est un problème que rencontrent souvent les programmeurs débutants. " -"Examinons la fonction suivante ::" +"Examinons la fonction suivante ::" #: ../Doc/faq/programming.rst:350 msgid "" @@ -658,7 +661,7 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " "objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " "défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " "définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " @@ -686,11 +689,11 @@ msgstr "" "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " "valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " "est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " -"échéant. Par exemple, il ne faut pas écrire ::" +"échéant. Par exemple, il ne faut pas écrire ::" #: ../Doc/faq/programming.rst:371 msgid "but::" -msgstr "mais plutôt ::" +msgstr "mais plutôt ::" #: ../Doc/faq/programming.rst:377 msgid "" @@ -704,7 +707,7 @@ msgstr "" "paramètres et la valeur de retour de chacun des appels d'une fonction " "coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " "appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" +"s'implémente de la manière suivante ::" #: ../Doc/faq/programming.rst:392 msgid "" @@ -731,7 +734,7 @@ msgstr "" "dans la liste des paramètres de la fonction ; ceci donne les arguments " "positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " "de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" +"utilisant ``*`` et ``**`` ::" #: ../Doc/faq/programming.rst:418 msgid "What is the difference between arguments and parameters?" @@ -749,7 +752,7 @@ msgstr "" "définition de fonction, alors que les :term:`arguments ` sont les " "valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" "ci. Les paramètres définissent les types des arguments qu'une fonction " -"accepte. Ainsi, avec la définition de fonction suivante ::" +"accepte. Ainsi, avec la définition de fonction suivante ::" #: ../Doc/faq/programming.rst:428 msgid "" @@ -757,7 +760,7 @@ msgid "" "``func``, for example::" msgstr "" "*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" +"``func`` avec, par exemple ::" #: ../Doc/faq/programming.rst:433 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." @@ -814,7 +817,7 @@ msgstr "" #: ../Doc/faq/programming.rst:463 msgid "If we instead assign an immutable object to ``x``::" -msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" #: ../Doc/faq/programming.rst:473 msgid "" @@ -919,14 +922,14 @@ msgid "" "You can achieve the desired effect in a number of ways." msgstr "" "En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation crée des références à des objets, il n'y pas de lien " +"qu'une affectation crée des références à des objets, il n'y a pas de lien " "entre un argument dans l'appel de la fonction et sa définition, et donc pas " -"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"de passage par référence en soi. Il y a cependant plusieurs façons d'en " "émuler un." #: ../Doc/faq/programming.rst:519 msgid "By returning a tuple of the results::" -msgstr "En renvoyant un n-uplet de résultats ::" +msgstr "En renvoyant un n-uplet de résultats ::" #: ../Doc/faq/programming.rst:530 msgid "This is almost always the clearest solution." @@ -984,7 +987,7 @@ msgstr "Ou en utilisant un objet appelable ::" #: ../Doc/faq/programming.rst:597 msgid "In both cases, ::" -msgstr "Dans les deux cas, ::" +msgstr "Dans les deux cas ::" #: ../Doc/faq/programming.rst:601 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." @@ -1015,7 +1018,7 @@ msgstr "" #: ../Doc/faq/programming.rst:635 msgid "How do I copy an object in Python?" -msgstr "Comment copier un objet en Python?" +msgstr "Comment copier un objet en Python ?" #: ../Doc/faq/programming.rst:637 msgid "" @@ -1111,7 +1114,7 @@ msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " "chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " "­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" #: ../Doc/faq/programming.rst:695 msgid "" @@ -1167,7 +1170,7 @@ msgid "" "logical operators::" msgstr "" "Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" +"d'utiliser les opérateurs de logique ::" #: ../Doc/faq/programming.rst:735 msgid "" @@ -1268,7 +1271,7 @@ msgid "" msgstr "" "L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " -"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " +"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " "l'interpréteur Python ::" #: ../Doc/faq/programming.rst:835 @@ -1281,7 +1284,7 @@ msgid "" "``j``. If you want that, and also want::" msgstr "" "Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez en plus que ::" +"j. Si vous voulez en plus que ::" #: ../Doc/faq/programming.rst:842 msgid "" @@ -1304,8 +1307,8 @@ msgstr "" "Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " "négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " "tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " -"10h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " -"utile ; ``-190 % 12 == -10`` est un bogue en puissance." +"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " +"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." #: ../Doc/faq/programming.rst:854 msgid "How do I convert a string to a number?" @@ -1359,7 +1362,7 @@ msgid "" "expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " "does not allow leading '0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " +":func:`eval` a aussi pour effet d'interpréter les nombres comme des " "expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " "parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " "l'exception du nombre '0')." @@ -1401,13 +1404,13 @@ msgstr "" "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " "capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " -"un objet :class:`io.StringIO` ou le module :mod:`array` ::" +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" #: ../Doc/faq/programming.rst:922 msgid "How do I use strings to call functions/methods?" msgstr "" "Comment utiliser des chaînes de caractères pour appeler des fonctions/" -"méthodes?" +"méthodes ?" #: ../Doc/faq/programming.rst:924 msgid "There are various techniques." @@ -1481,7 +1484,7 @@ msgstr "" "occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " "caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " "représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " -"fin de de ligne de chaque ligne vide seront retirés ::" +"fin de ligne de chaque ligne vide seront retirés ::" #: ../Doc/faq/programming.rst:994 msgid "" @@ -1650,8 +1653,8 @@ msgid "" "detrimental to readability)." msgstr "" "Les abstractions ont tendance à créer des indirections et obligent " -"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " -"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " +"quantité de travail effectif, le programme sera ralenti. Il faut toujours " "éviter trop d'indirections, en particulier sous la forme de fonctions ou " "méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." @@ -1710,7 +1713,7 @@ msgid "" msgstr "" "Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " "recommandée consiste à toutes les mettre dans une liste et appeler la " -"méthode :meth:`str.join` à la fin ::" +"méthode :meth:`str.join` à la fin ::" #: ../Doc/faq/programming.rst:1096 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" @@ -1726,7 +1729,7 @@ msgid "" msgstr "" "Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " "recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " -"concaténation en-place (l'opérateur ``+=``) ::" +"concaténation en-place (l'opérateur ``+=``) ::" #: ../Doc/faq/programming.rst:1107 msgid "Sequences (Tuples/Lists)" @@ -1853,7 +1856,7 @@ msgid "" msgstr "" "Si tous les éléments de la liste peuvent être utilisés comme des clés de " "dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide ::" +"`) ceci est souvent plus rapide ::" #: ../Doc/faq/programming.rst:1180 msgid "" @@ -1962,7 +1965,7 @@ msgid "" msgstr "" "Cela génère une liste contenant elle-même trois listes distinctes, de " "longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " -"compréhension ::" +"compréhension ::" #: ../Doc/faq/programming.rst:1259 msgid "" @@ -1984,7 +1987,7 @@ msgstr "Utilisez une liste en compréhension ::" msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" -"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que " +"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " "l'addition fonctionne ?" #: ../Doc/faq/programming.rst:1275 @@ -2004,7 +2007,7 @@ msgid "" "a ``list`` and ``+=`` as our exemplar." msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des " "objets muables, mais on prendra ``list`` et ``+=`` comme exemple." #: ../Doc/faq/programming.rst:1283 @@ -2031,7 +2034,7 @@ msgid "" "approximately this::" msgstr "" "Sous le capot, une instruction d'affectation incrémentale fait à peu près " -"ceci :" +"ceci ::" #: ../Doc/faq/programming.rst:1306 msgid "" @@ -2043,7 +2046,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1309 msgid "When you write something like::" -msgstr "Quand vous écrivez un code du style :" +msgstr "Quand vous écrivez un code du style ::" #: ../Doc/faq/programming.rst:1317 msgid "" @@ -2051,7 +2054,7 @@ msgid "" "that even though there was an error, the append worked::" msgstr "" "L'exception est un peu plus surprenante et, chose encore plus étrange, " -"malgré l'erreur, l'ajout a fonctionné ::" +"malgré l'erreur, l'ajout a fonctionné ::" #: ../Doc/faq/programming.rst:1323 msgid "" @@ -2068,7 +2071,7 @@ msgstr "" "utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " "listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " "renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " -"``+=`` est un \"raccourci\" pour ``list.extend``::" +"``+=`` est un \"raccourci\" pour ``list.extend`` ::" #: ../Doc/faq/programming.rst:1335 msgid "This is equivalent to::" @@ -2090,7 +2093,7 @@ msgstr "" msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" "Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " -"équivalent à ::" +"équivalent à ::" #: ../Doc/faq/programming.rst:1353 msgid "" @@ -2109,7 +2112,7 @@ msgid "" "Python?" msgstr "" "Je souhaite faire un classement compliqué : peut on faire une transformation " -"de Schwartz en Python ?" +"de Schwartz en Python ?" #: ../Doc/faq/programming.rst:1361 msgid "" @@ -2121,7 +2124,7 @@ msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " "les éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " -"l'argument ``key`` de la méthode :meth:`list.sort` ::" +"l'argument ``key`` de la méthode :meth:`list.sort` ::" #: ../Doc/faq/programming.rst:1370 msgid "How can I sort one list by values from another list?" @@ -2165,7 +2168,7 @@ msgstr "Objets" #: ../Doc/faq/programming.rst:1404 msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe?" +msgstr "Qu'est-ce qu'une classe ?" #: ../Doc/faq/programming.rst:1406 msgid "" @@ -2277,7 +2280,7 @@ msgid "" "just call it::" msgstr "" "Une meilleure approche est de définir une méthode ``search()`` dans toutes " -"les classes et qu'il suffit d'appeler de la manière suivante ::" +"les classes et qu'il suffit d'appeler de la manière suivante ::" #: ../Doc/faq/programming.rst:1479 msgid "What is delegation?" @@ -2344,7 +2347,7 @@ msgid "" "store local state for self without causing an infinite recursion." msgstr "" "La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " +"``self.__dict__`` pour stocker l'état local de self sans provoquer une " "récursion infinie." #: ../Doc/faq/programming.rst:1525 @@ -2478,7 +2481,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1610 msgid "In C++ you'd write" -msgstr "In C++, on écrirait" +msgstr "En C++, on écrirait" #: ../Doc/faq/programming.rst:1619 msgid "" @@ -2498,7 +2501,7 @@ msgstr "" msgid "You could also try a variable-length argument list, e.g. ::" msgstr "" "Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " -"exemple ::" +"exemple ::" #: ../Doc/faq/programming.rst:1636 msgid "The same approach works for all method definitions." @@ -2598,7 +2601,7 @@ msgstr "" "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " "supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " "pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" -"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." #: ../Doc/faq/programming.rst:1681 @@ -2757,7 +2760,7 @@ msgid "" msgstr "" "Le module :mod:`py_compile` peut compiler n'importe quel module " "manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " -"manière interactive :" +"manière interactive ::" #: ../Doc/faq/programming.rst:1773 msgid "" @@ -2779,7 +2782,7 @@ msgstr "" "Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " "avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " "en exécutant ``compileall.py`` avec le chemin du dossier contenant les " -"fichiers Python à compiler ::" +"fichiers Python à compiler ::" #: ../Doc/faq/programming.rst:1786 msgid "How do I find the current module name?" @@ -2798,7 +2801,7 @@ msgstr "" "programme est exécuté comme un script. Beaucoup de modules qui doivent " "normalement être importés pour pouvoir être utilisés fournissent aussi une " "interface en ligne de commande ou un test automatique. Ils n'exécutent cette " -"portion du code qu'après avoir vérifié la valeur de ``__name__``::" +"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" #: ../Doc/faq/programming.rst:1803 msgid "How can I have modules that mutually import each other?" @@ -2810,11 +2813,11 @@ msgstr "Considérons les modules suivants :" #: ../Doc/faq/programming.rst:1807 msgid "foo.py::" -msgstr "*foo.py* ::" +msgstr "*foo.py* ::" #: ../Doc/faq/programming.rst:1812 msgid "bar.py::" -msgstr "*bar.py* ::" +msgstr "*bar.py* ::" #: ../Doc/faq/programming.rst:1817 msgid "The problem is that the interpreter will perform the following steps:" @@ -2937,7 +2940,8 @@ msgstr "Ces solutions peuvent être combinées." #: ../Doc/faq/programming.rst:1858 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "__import__('x.y.z') renvoie ; comment accéder à z ?" +msgstr "" +"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" #: ../Doc/faq/programming.rst:1860 msgid "" @@ -2945,7 +2949,7 @@ msgid "" "from :mod:`importlib` instead::" msgstr "" "Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" -"`importlib` ::" +"`importlib` ::" #: ../Doc/faq/programming.rst:1867 msgid "" @@ -2968,7 +2972,7 @@ msgstr "" "le cas, dans un programme composé d'un très grand nombre de modules qui " "importent tous le même module de base, ce module de base serait analysé et " "ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " -"module, il faut faire ::" +"module, il faut faire ::" #: ../Doc/faq/programming.rst:1879 msgid "" @@ -2986,9 +2990,9 @@ msgid "" "paradoxical behaviour::" msgstr "" "continuent de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, le instances déjà existantes de " +"module contient une définition de classe, les instances déjà existantes de " "celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " -"classe. Ceci peut conduire au comportement paradoxal suivant :" +"classe. Ceci peut conduire au comportement paradoxal suivant ::" #: ../Doc/faq/programming.rst:1897 msgid "" diff --git a/faq/windows.po b/faq/windows.po index 674e58611..6d4924b6f 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-10 09:35+0200\n" -"PO-Revision-Date: 2019-04-11 18:09+0200\n" -"Last-Translator: Jules Lasne \n" +"PO-Revision-Date: 2019-08-21 10:59+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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.1\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/faq/windows.rst:9 msgid "Python on Windows FAQ" @@ -236,6 +236,11 @@ msgid "" "extension for building Python 2.x-based executables, does not yet support " "Python 3 but a version that does is in development." msgstr "" +"Regardez `cx_Freeze `_ pour " +"une extension *distutils* qui permet de créer des exécutables console et IUG " +"à partir de code Python. `py2exe `_ est l'extension " +"la plus populaire pour construire des exécutables basés sur Python 2.x mais " +"l'implémentation en Python 3 est en cours de développement." #: ../Doc/faq/windows.rst:151 msgid "Is a ``*.pyd`` file the same as a DLL?" @@ -250,6 +255,13 @@ msgid "" "``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " "as that would cause Windows to require the DLL to be present." msgstr "" +"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques " +"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une " +"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import " +"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et " +"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour " +"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " +"Windows aura besoin de la DLL." #: ../Doc/faq/windows.rst:160 msgid "" @@ -261,16 +273,26 @@ msgid "" "``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of " "available functions." msgstr "" +"Notez que le chemin de recherche pour *foo.pyd* est *PYTHONPATH*, il est " +"différent de celui qu'utilise Windows pour rechercher *foo.dll*. De plus, " +"*foo.pyd* n'a pas besoin d'être présent pour que votre programme s'exécute " +"alors que si vous avez lié votre programme avec une *dll* celle-ci est " +"requise. Bien sûr *foo.pyd* est nécessaire si vous écrivez ``import foo``. " +"Dans une *DLL* le lien est déclaré dans le code source avec " +"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " +"liste de fonctions disponibles." #: ../Doc/faq/windows.rst:169 msgid "How can I embed Python into a Windows application?" -msgstr "" +msgstr "Comment puis-je intégrer Python dans une application Windows ?" #: ../Doc/faq/windows.rst:171 msgid "" "Embedding the Python interpreter in a Windows app can be summarized as " "follows:" msgstr "" +"L'intégration de l'interpréteur Python dans une application Windows peut se " +"résumer comme suit :" #: ../Doc/faq/windows.rst:173 msgid "" @@ -280,6 +302,12 @@ msgid "" "it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " "version, a number such as \"33\" for Python 3.3." msgstr "" +"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous " +"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " +"eux-mêmes des DLL (ceci constitue une information de première importance non " +"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " +"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " +"Python, par exemple « 33 » pour Python 3.3." #: ../Doc/faq/windows.rst:179 msgid "" @@ -289,6 +317,12 @@ msgid "" "the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It " "merely defines symbols for the linker.)" msgstr "" +"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien " +"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis " +"qu'un lien au moment de l'exécution signifie pointer vers :file:`python{NN}." +"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import " +"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des " +"liens symboliques pour l'éditeur de liens.)" #: ../Doc/faq/windows.rst:185 msgid "" @@ -300,12 +334,22 @@ msgid "" "these pointers transparent to any C code that calls routines in Python's C " "API." msgstr "" +"La liaison en temps réel simplifie grandement les options de liaison ; tout " +"se passe au moment de l'exécution. Votre code doit charger :file:" +"`python{NN}.dll` en utilisant la routine Windows ``LoadLibraryEx()``. Le " +"code doit aussi utiliser des routines d'accès et des données dans :file:" +"`python{NN}.dll` (c'est-à-dire les API C de Python) en utilisant des " +"pointeurs obtenus par la routine Windows ``GetProcAddress()``. Les macros " +"peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui " +"appelle des routines dans l'API C de Python." #: ../Doc/faq/windows.rst:192 msgid "" "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf." "exe first." msgstr "" +"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant " +"*Coff2Omf.exe* en premier." #: ../Doc/faq/windows.rst:197 msgid "" @@ -315,6 +359,12 @@ msgid "" "link *into* your .exe file (!) You do _not_ have to create a DLL file, and " "this also simplifies linking." msgstr "" +"Si vous utilisez SWIG, il est facile de créer un « module d'extension » " +"Python qui rendra les données et les méthodes de l'application disponibles " +"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le " +"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous " +"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également " +"la liaison." #: ../Doc/faq/windows.rst:203 msgid "" @@ -324,6 +374,12 @@ msgid "" "classes, as you should, the init function will be called initleoc(). This " "initializes a mostly hidden helper class used by the shadow class." msgstr "" +"SWIG va créer une fonction d'initialisation (fonction en C) dont le nom " +"dépend du nom du module d'extension. Par exemple, si le nom du module est " +"*leo*, la fonction *init* sera appelée *initleo()*. Si vous utilisez des " +"classes *shadow* SWIG, comme vous le devriez, la fonction *init* sera " +"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " +"utilisée par la classe *shadow*." #: ../Doc/faq/windows.rst:209 msgid "" @@ -331,18 +387,26 @@ msgid "" "calling the initialization function is equivalent to importing the module " "into Python! (This is the second key undocumented fact.)" msgstr "" +"La raison pour laquelle vous pouvez lier le code C à l'étape 2 dans votre " +"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à " +"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)" #: ../Doc/faq/windows.rst:213 msgid "" "In short, you can use the following code to initialize the Python " "interpreter with your extension module." msgstr "" +"En bref, vous pouvez utiliser le code suivant pour initialiser " +"l'interpréteur Python avec votre module d'extension." #: ../Doc/faq/windows.rst:224 msgid "" "There are two problems with Python's C API which will become apparent if you " "use a compiler other than MSVC, the compiler used to build pythonNN.dll." msgstr "" +"Il y a deux problèmes avec l'API C de Python qui apparaîtront si vous " +"utilisez un compilateur autre que MSVC, le compilateur utilisé pour " +"construire *pythonNN.dll*." #: ../Doc/faq/windows.rst:227 msgid "" @@ -351,12 +415,19 @@ msgid "" "compiler's notion of a struct FILE will be different. From an " "implementation standpoint these are very _low_ level functions." msgstr "" +"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les " +"arguments FILE * ne fonctionneront pas dans un environnement multi-" +"compilateur car chaque compilateur aura une notion différente de la " +"structure de FILE. Du point de vue de l'implémentation, il s'agit de " +"fonctions de très bas niveau." #: ../Doc/faq/windows.rst:232 msgid "" "Problem 2: SWIG generates the following code when generating wrappers to " "void functions:" msgstr "" +"Problème 2 : SWIG génère le code suivant lors de la génération " +"*d'encapsuleurs* pour annuler les fonctions :" #: ../Doc/faq/windows.rst:241 msgid "" @@ -364,6 +435,10 @@ msgid "" "structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " "fail in a mult-compiler environment. Replace such code by:" msgstr "" +"Hélas, *Py_None* est une macro qui se développe en référence à une structure " +"de données complexe appelée *_Py_NoneStruct* dans *pythonNN.dll*. Encore " +"une fois, ce code échouera dans un environnement multi-compilateur. " +"Remplacez ce code par :" #: ../Doc/faq/windows.rst:249 msgid "" @@ -371,6 +446,9 @@ msgid "" "automatically, though I have not been able to get this to work (I'm a " "complete SWIG newbie)." msgstr "" +"Il est possible d'utiliser la commande ``%typemap`` de SWIG pour effectuer " +"le changement automatiquement, bien que je n'ai pas réussi à le faire " +"fonctionner (je suis un débutant complet avec SWIG)." #: ../Doc/faq/windows.rst:253 msgid "" @@ -383,6 +461,15 @@ msgid "" "is a Python object (defined in your extension module) that contains read() " "and write() methods." msgstr "" +"Utiliser un script shell Python pour créer une fenêtre d'interpréteur Python " +"depuis votre application Windows n'est pas une bonne idée ; la fenêtre " +"résultante sera indépendante du système de fenêtrage de votre application. " +"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre " +"d'interpréteur « native ». Il est facile de connecter cette fenêtre à " +"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers " +"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce " +"dont vous avez besoin est un objet Python (défini dans votre module " +"d'extension) qui contient les méthodes *read()* et *write()*." #: ../Doc/faq/windows.rst:262 msgid "How do I keep editors from inserting tabs into my Python source?" diff --git a/glossary.po b/glossary.po index bc0d6c394..5c569c87b 100644 --- a/glossary.po +++ b/glossary.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2019-06-19 21:53+0200\n" +"PO-Revision-Date: 2019-08-19 10:02+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -69,7 +69,7 @@ msgid "" "reference`." msgstr "" "*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:" -"`lib2to3`; un point d’entrée indépendant est fourni via :file:`Tools/" +"`lib2to3` ; un point d’entrée indépendant est fourni via :file:`Tools/" "scripts/2to3`. Cf. :ref:`2to3-reference`." #: ../Doc/glossary.rst:29 @@ -113,7 +113,7 @@ msgid "" "parameter or return value, used by convention as a :term:`type hint`." msgstr "" "Étiquette associée à une variable, un attribut de classe, un paramètre de " -"fonction ou une valeur de retour. Elle est utilisé par convention comme :" +"fonction ou une valeur de retour. Elle est utilisée par convention comme :" "term:`type hint`." #: ../Doc/glossary.rst:48 @@ -146,7 +146,7 @@ msgid "" "function. There are two kinds of argument:" msgstr "" "Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " -"appel. Il existe deux types d'arguments :" +"appel. Il existe deux types d'arguments :" #: ../Doc/glossary.rst:61 msgid "" @@ -155,7 +155,7 @@ msgid "" "by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " "following calls to :func:`complex`::" msgstr "" -":dfn:`argument nommé`: un argument précédé d'un identifiant (comme " +":dfn:`argument nommé` : un argument précédé d'un identifiant (comme " "``name=``) ou un dictionnaire précédé de ``**``, lors d'un appel de " "fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " "nommés dans l'appel à :func:`complex` ici ::" @@ -167,7 +167,7 @@ msgid "" "be passed as elements of an :term:`iterable` preceded by ``*``. For example, " "``3`` and ``5`` are both positional arguments in the following calls::" msgstr "" -":dfn:`argument positionnel` : Un argument qui n'est pas nommé. Les arguments " +":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " "positionnels apparaissent au début de la liste des arguments, ou donnés sous " "forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " "sont tous les deux des arguments positionnels dans les appels suivants ::" @@ -191,9 +191,9 @@ msgid "" "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" -"Voir aussi :term:`parameter` dans le glossaire, la question :ref:" -"`Différence entre argument et paramètre ` de la " -"FAQ et la :pep:`362`." +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence " +"entre argument et paramètre ` de la FAQ et la :" +"pep:`362`." #: ../Doc/glossary.rst:86 msgid "asynchronous context manager" @@ -275,7 +275,7 @@ msgstr "" "mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " "locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " "générateur asynchrone reprend avec un nouvel *awaitable* renvoyé par :meth:" -"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " +"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " "et la :pep:`525`." #: ../Doc/glossary.rst:119 @@ -335,9 +335,9 @@ msgid "" "term:`coroutine` or an object with an :meth:`__await__` method. See also :" "pep:`492`." msgstr "" -"Objet pouvant être utilisé dans une expression :keyword:`await`. Peut être " -"une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. Voir " -"aussi la :pep:`492`." +"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " +"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " +"Voir aussi la :pep:`492`." #: ../Doc/glossary.rst:141 msgid "BDFL" @@ -348,7 +348,7 @@ msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." msgstr "" -"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " +"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " "Pseudonyme de `Guido van Rossum `_, le " "créateur de Python." @@ -380,7 +380,7 @@ msgstr "" #: ../Doc/glossary.rst:156 msgid "bytes-like object" -msgstr "objet bytes-compatible" +msgstr "objet octet-compatible" #: ../Doc/glossary.rst:158 msgid "" @@ -410,7 +410,7 @@ msgstr "" "Certaines opérations nécessitent de travailler sur des données binaires " "variables. La documentation parle de ceux-ci comme des *read-write bytes-" "like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " -"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " "travailler sur des données binaires stockées dans des objets immuables (*" "\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" "`memoryview` d'un objet :class:`byte`." @@ -492,11 +492,11 @@ msgstr "" "opération dont les deux opérandes doivent être de même type. Par exemple " "``int(3.15)`` convertit explicitement le nombre à virgule flottante en " "nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes " -"sont d'un type différent (Un entier et un nombre à virgule flottante), alors " -"qu'elles doivent avoir le même type pour être additionnées (sinon une " -"exception :exc:`TypeError` serait levée). Sans coercition, toutes les " -"opérandes, même de types compatibles, devraient être converties (on parle " -"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " +"sont d'un type différent (un entier et un nombre à virgule flottante), alors " +"qu'ils doivent avoir le même type pour être additionnés (sinon une " +"exception :exc:`TypeError` serait levée). Sans coercition, tous les " +"opérandes, même de types compatibles, devraient être convertis (on parle " +"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " "+ 4.5`` au lieu du simple ``3 + 4.5``." #: ../Doc/glossary.rst:206 @@ -520,7 +520,7 @@ msgstr "" "imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " "l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " "mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " -"nombres complexes, écrits avec cette dernière notation : la partie " +"nombres complexes, écrits avec cette dernière notation : la partie " "imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " "utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " "Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " @@ -646,7 +646,7 @@ msgid "" msgstr "" "Fonction dont la valeur de retour est une autre fonction. Un décorateur est " "habituellement utilisé pour transformer une fonction via la syntaxe " -"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" "`staticmethod`." #: ../Doc/glossary.rst:270 @@ -686,12 +686,12 @@ msgstr "" "N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" "`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " "descripteur, son comportement spécial est déclenché lors de la recherche des " -"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter " -"ou effacer un attribut, Python recherche l'objet nommé *b* dans le " -"dictionnaire de la classe de *a*. Mais si *b* est un descripteur, c'est la " -"méthode de ce descripteur qui est alors appelée. Comprendre les descripteurs " -"est requis pour avoir une compréhension approfondie de Python, ils sont la " -"base de nombre de ses caractéristiques notamment les fonctions, méthodes, " +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter ou " +"effacer un attribut, Python recherche l'objet nommé *b* dans le dictionnaire " +"de la classe de *a*. Mais si *b* est un descripteur, c'est la méthode de ce " +"descripteur qui est alors appelée. Comprendre les descripteurs est requis " +"pour avoir une compréhension approfondie de Python, ils sont la base de " +"nombre de ses caractéristiques notamment les fonctions, méthodes, " "propriétés, méthodes de classes, méthodes statiques et les références aux " "classes parentes." @@ -747,8 +747,8 @@ msgid "" "the canonical place for documentation of the object." msgstr "" "Première chaîne littérale qui apparaît dans l'expression d'une classe, " -"fonction, ou module. Bien qu'ignorée à l'exécution, elles est reconnue par " -"le compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " +"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " "fonction ou du module. Comme cette chaîne est disponible par introspection, " "c'est l'endroit idéal pour documenter l'objet." @@ -868,9 +868,9 @@ msgstr "" "méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " "il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " "disque ou à un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, une socket " -"réseau, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" -"objects` ou :dfn:`streams`." +"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " +"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " +"ou :dfn:`streams`." #: ../Doc/glossary.rst:365 msgid "" @@ -880,7 +880,7 @@ msgid "" "The canonical way to create a file object is by using the :func:`open` " "function." msgstr "" -"Il existe en réalité trois catégories de fichiers objets : les :term:" +"Il existe en réalité trois catégories de fichiers objets : les :term:" "`fichiers binaires ` bruts, les :term:`fichiers binaires " "` avec tampon (*buffer*) et les :term:`fichiers textes " "`. Leurs interfaces sont définies dans le module :mod:`io`. " @@ -913,9 +913,9 @@ msgid "" "` for use with :data:`sys.meta_path`, and :term:`path " "entry finders ` for use with :data:`sys.path_hooks`." msgstr "" -"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" "`chercheurs dans les méta-chemins ` à utiliser avec :data:" -"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." #: ../Doc/glossary.rst:382 @@ -986,7 +986,7 @@ msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality." msgstr "" -"Voir :term:`variable annotation` et :pep:` 484`, qui décrivent cette " +"Voir :term:`variable annotation` et :pep:`484`, qui décrivent cette " "fonctionnalité." #: ../Doc/glossary.rst:412 @@ -1275,7 +1275,7 @@ msgid "" msgstr "" "Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " "basé sur les chemins ` cherche les modules à importer. " -"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " "pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " "paquet parent." @@ -1361,9 +1361,10 @@ msgstr "" "modules ou quelques structures de données internes. Il fait aussi quelques " "appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " "dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " -"exécuté lors de l'arrêt peut rencontrer quelques exception puisque les " -"ressources auxquelles il fait appel pourraient ne plus fonctionner, " -"(typiquement les modules des bibliothèques ou le mécanisme de *warning*)." +"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " +"ressources auxquelles il fait appel sont susceptibles de ne plus " +"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " +"*warning*)." #: ../Doc/glossary.rst:573 msgid "" @@ -1406,14 +1407,14 @@ msgid "" msgstr "" "Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " "beaucoup d'autres endroits où une séquence est requise (:func:`zip`, :func:" -"`map`, ...). Lorsqu'un itérable est passé comme argument à la fonction " -"native :func:`iter`, celle-ci fournit en retour un itérateur sur cet " -"itérable. Cet itérateur n'est valable que pour une seule passe sur le jeu de " -"valeurs. Lors de l'utilisation d'itérables, il n'est habituellement pas " -"nécessaire d'appeler :func:`iter` ou de s'occuper soi-même des objets " -"itérateurs. L'instruction ``for`` le fait automatiquement pour vous, créant " -"une variable temporaire anonyme pour garder l'itérateur durant la boucle. " -"Voir aussi :term:`itérateur`, :term:`séquence` et :term:`générateur`." +"`map`…). Lorsqu'un itérable est passé comme argument à la fonction native :" +"func:`iter`, celle-ci fournit en retour un itérateur sur cet itérable. Cet " +"itérateur n'est valable que pour une seule passe sur le jeu de valeurs. Lors " +"de l'utilisation d'itérables, il n'est habituellement pas nécessaire " +"d'appeler :func:`iter` ou de s'occuper soi-même des objets itérateurs. " +"L'instruction ``for`` le fait automatiquement pour vous, créant une variable " +"temporaire anonyme pour garder l'itérateur durant la boucle. Voir aussi :" +"term:`itérateur`, :term:`séquence` et :term:`générateur`." #: ../Doc/glossary.rst:594 msgid "iterator" @@ -1443,7 +1444,7 @@ msgstr "" "point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" "`__next__` lèveront encore une exception :exc:`StopIteration`. Les " "itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " -"itérateur lui même, de façon à ce que chaque itérateur soit aussi itérable " +"itérateur lui-même, de façon à ce que chaque itérateur soit aussi itérable " "et puisse être utilisé dans la plupart des endroits où d'autres itérables " "sont attendus. Une exception notable est un code qui tente plusieurs " "itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " @@ -1500,7 +1501,7 @@ msgstr "" "recherches insensibles à la casse. Aussi, il est possible de créer des " "fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " "(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " -"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" "`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " "Trier ` pour des exemples de création et d'utilisation de " "fonctions clefs." @@ -1525,7 +1526,7 @@ msgid "" msgstr "" "Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " "qu'une seule expression, exécutée lorsque la fonction est appelée. La " -"syntaxe pour créer des fonctions lambda est: ``lambda [parameters]: " +"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " "expression``" #: ../Doc/glossary.rst:641 @@ -1590,8 +1591,8 @@ msgstr "" "et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." "format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " "nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " -"hexadécimal (``0x``...). La clause :keyword:`if` est optionnelle. Si elle " -"est omise, tous les éléments du ``range(256)`` seront utilisés." +"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." #: ../Doc/glossary.rst:666 msgid "loader" @@ -1681,16 +1682,16 @@ msgstr "" "pour rôle de réunir ces trois paramètres pour construire la classe. La " "plupart des langages orientés objet fournissent une implémentation par " "défaut. La particularité de Python est la possibilité de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'aura jamais besoin " -"de cet outil, mais lorsque le besoin survient, les métaclasses offrent des " -"solutions élégantes et puissantes. Elles sont utilisées pour journaliser les " -"accès à des propriétés, rendre sûr les environnements *multi-threads*, " -"suivre la création d'objets, implémenter des singletons et bien d'autres " -"tâches." +"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " +"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " +"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " +"journaliser les accès à des propriétés, rendre sûrs les environnements " +"*multi-threads*, suivre la création d'objets, implémenter des singletons et " +"bien d'autres tâches." #: ../Doc/glossary.rst:705 msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." #: ../Doc/glossary.rst:706 msgid "method" @@ -1941,7 +1942,7 @@ msgid "" msgstr "" "Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " "décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sortes de paramètres :" +"fonction accepte. Il existe cinq sortes de paramètres :" #: ../Doc/glossary.rst:802 msgid "" @@ -1950,7 +1951,7 @@ msgid "" "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" -":dfn:`positional-or-keyword`: l'argument peut être passé soit par sa :term:" +":dfn:`positional-or-keyword` : l'argument peut être passé soit par sa :term:" "`position `, soit en tant que :term:`argument nommé `. " "C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " "l'exemple suivant ::" @@ -1974,7 +1975,7 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" -":dfn:`keyword-only`: l'argument ne peut être fourni que nommé. Les " +":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " "paramètres *keyword-only* peuvent être définis en utilisant un seul " "paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " "liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " @@ -1988,7 +1989,7 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" -":dfn:`var-positional`: une séquence d'arguments positionnels peut être " +":dfn:`var-positional` : une séquence d'arguments positionnels peut être " "fournie (en plus de tous les arguments positionnels déjà acceptés par " "d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " "par une ``*``. Par exemple *args* ci-après ::" @@ -2000,7 +2001,7 @@ msgid "" "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" -":dfn:`var-keyword`: une quantité arbitraire d'arguments peut être passée, " +":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " "chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " "d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " "paramètre par ``**``. Par exemple, *kwargs* ci-dessus." @@ -2182,7 +2183,7 @@ msgstr "" "Une API provisoire est une API qui n'offre aucune garantie de " "rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " "Bien que des changements majeurs d'une telle interface ne soient pas " -"attendus, tant qu'elle est étiquetée provisoire, des changement cassant la " +"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " "rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " "les développeurs principaux le jugent nécessaire. Ces modifications ne " "surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " @@ -2194,9 +2195,9 @@ msgid "" "\"solution of last resort\" - every attempt will still be made to find a " "backwards compatible resolution to any identified problems." msgstr "" -"Même pour les API provisoires, les changement cassant la rétrocompatibilité " -"sont considérées comme des \"solutions de dernier recours\". Tout ce qui est " -"possible sera fait pour tenter de résoudre les problème en conservant la " +"Même pour les API provisoires, les changements cassant la rétrocompatibilité " +"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problèmes en conservant la " "rétrocompatibilité." #: ../Doc/glossary.rst:915 @@ -2280,7 +2281,7 @@ msgstr "" "Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " "(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " "par des points) vers le module, incluant tous les paquets parents. Par " -"exemple : ``email.mime.text`` ::" +"exemple : ``email.mime.text`` ::" #: ../Doc/glossary.rst:968 msgid "reference count" @@ -2354,7 +2355,7 @@ msgstr "" ":term:`itérable` qui offre un accès efficace à ses éléments par un indice " "sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " "qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " -"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" +"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" "`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" "`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " "*mapping* plutôt qu'une séquence, car ses accès se font par une clé " @@ -2548,7 +2549,7 @@ msgstr "" #: ../Doc/glossary.rst:1080 msgid "could be made more readable like this::" -msgstr "pourrait être rendu plus lisible comme ceci ::" +msgstr "pourrait être rendu plus lisible comme ceci ::" #: ../Doc/glossary.rst:1089 ../Doc/glossary.rst:1103 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." @@ -2572,8 +2573,8 @@ msgid "" "to static type analysis tools, and aid IDEs with code completion and " "refactoring." msgstr "" -"Les indications de type sont facultatifs et ne sont pas indispensables à " -"l'interpréteur Python, mais ils sont utiles aux outils d'analyse de type " +"Les indications de type sont facultatives et ne sont pas indispensables à " +"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " "statique et aident les IDE à compléter et à réusiner (*code refactoring* en " "anglais) le code." @@ -2599,7 +2600,7 @@ msgid "" "splitlines` for an additional use." msgstr "" "Une manière d'interpréter des flux de texte dans lesquels sont reconnues " -"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " "convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " "``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" "`bytes.splitlines` pour d'autres usages." @@ -2617,7 +2618,7 @@ msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Lorsque vous annotez une variable ou un attribut de classe, l'affectation " -"est facultative ::" +"est facultative ::" #: ../Doc/glossary.rst:1120 msgid "" @@ -2626,7 +2627,7 @@ msgid "" msgstr "" "Les annotations de variables sont généralement utilisées pour des :term:" "`indications de types ` : par exemple, cette variable devrait " -"prendre des valeurs de type :class:`int` ::" +"prendre des valeurs de type :class:`int` ::" #: ../Doc/glossary.rst:1126 msgid "Variable annotation syntax is explained in section :ref:`annassign`." @@ -2639,7 +2640,7 @@ msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality." msgstr "" -"Reportez-vous à :term:`function annotation`, à la :pep:` 484` et à la :pep:" +"Reportez-vous à :term:`function annotation`, à la :pep:`484` et à la :pep:" "`526` qui décrivent cette fonctionnalité." #: ../Doc/glossary.rst:1130 diff --git a/howto/argparse.po b/howto/argparse.po index 8a6d2b09c..a73e40cb9 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-10-13 22:28+0200\n" -"PO-Revision-Date: 2018-08-01 23:54+0200\n" -"Last-Translator: Hugo Ludmann \n" +"PO-Revision-Date: 2019-07-25 16:44+0200\n" +"Last-Translator: Antonin Décimo \n" "Language-Team: FRENCH \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 1.8.7.1\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/howto/argparse.rst:3 msgid "Argparse Tutorial" @@ -70,7 +70,7 @@ msgid "" "defaults to displaying the contents of the current directory." msgstr "" "La commande :command:`ls` est utile quand elle est exécutée sans aucun " -"paramètre. Par défaut cela affiche le contenu du dossier courant." +"paramètre. Elle affiche par défaut le contenu du dossier courant." #: ../Doc/howto/argparse.rst:51 msgid "" @@ -86,11 +86,11 @@ msgstr "" "Si l'on veut plus que ce qui est proposé par défaut, il faut l'indiquer. " "Dans le cas présent, on veut afficher un dossier différent : ``pypy``. Ce " "que l'on a fait c'est spécifier un argument positionnel. C'est appelé ainsi " -"car cela permet au programme de savoir quoi faire avec la valeur seulement " -"en se basant sur sa position dans la ligne de commande. Ce concept est plus " -"pertinent pour une commande comme :command:`cp` dont l'usage de base est " -"``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et le " -"second est *où vous voulez le copier*." +"car cela permet au programme de savoir quoi faire avec la valeur en se " +"basant seulement sur sa position dans la ligne de commande. Ce concept est " +"plus pertinent pour une commande comme :command:`cp` dont l'usage de base " +"est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " +"le second est *où vous voulez le copier*." #: ../Doc/howto/argparse.rst:60 msgid "" @@ -98,9 +98,9 @@ msgid "" "display more info for each file instead of just showing the file names. The " "``-l`` in that case is known as an optional argument." msgstr "" -"Maintenant, supposons que l'on veut changer la façon dont le programme agit. " -"Dans notre exemple, on affiche plus d'information pour chaque ficher que " -"simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." +"Maintenant, supposons que l'on veuille changer la façon dont le programme " +"agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " +"que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." #: ../Doc/howto/argparse.rst:64 msgid "" @@ -128,22 +128,22 @@ msgstr "Ce qui suit est le résultat de l'exécution du code :" #: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 #: ../Doc/howto/argparse.rst:296 msgid "Here is what is happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:97 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." msgstr "" -"Exécuter le script sans aucun paramètre à pour effet que rien est affiché " -"sur la sortie d'erreur. Ce n'est pas très utile." +"Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " +"la sortie d'erreur. Ce n'est pas très utile." #: ../Doc/howto/argparse.rst:100 msgid "" "The second one starts to display the usefulness of the :mod:`argparse` " "module. We have done almost nothing, but already we get a nice help message." msgstr "" -"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On a " +"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " "quasiment rien fait mais on a déjà un beau message d'aide." #: ../Doc/howto/argparse.rst:103 @@ -154,9 +154,9 @@ msgid "" "also for free." msgstr "" "L'option ``--help``, que l'on peut aussi raccourcir en ``-h``, est la seule " -"option que l'on a gratuitement (i.e. pas besoin de la préciser). Préciser " -"quoi que ce soit d'autre entrainera une erreur. Mais même dans ce cas, on " -"reçoit aussi un message utile, toujours gratuitement." +"option que l'on a gratuitement (pas besoin de la préciser). Préciser quoi " +"que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " +"aussi un message utile, toujours gratuitement." #: ../Doc/howto/argparse.rst:110 msgid "Introducing Positional arguments" @@ -172,7 +172,7 @@ msgstr "On exécute le code :" #: ../Doc/howto/argparse.rst:138 msgid "Here is what's happening:" -msgstr "Voilà ce qu'il ce passe :" +msgstr "Voilà ce qu'il se passe :" #: ../Doc/howto/argparse.rst:140 msgid "" @@ -195,7 +195,7 @@ msgid "" "specified, in this case, ``echo``." msgstr "" "La méthode :meth:`parse_args` renvoie en réalité certaines données des " -"paramètres précisées, dans le cas présent : ``echo``." +"paramètres précisés, dans le cas présent : ``echo``." #: ../Doc/howto/argparse.rst:149 msgid "" @@ -205,9 +205,9 @@ msgid "" "``echo``." msgstr "" "La variable est comme une forme de 'magie' que :mod:`argparse` effectue " -"gratuitement (i.e. pas besoin de préciser dans quelle variable la valeur est " -"stockée). Vous aurez aussi remarqué que le nom est le même que l'argument en " -"chaîne de caractère donné à la méthode : ``echo``." +"gratuitement (c.-à-d. pas besoin de préciser dans quelle variable la valeur " +"est stockée). Vous aurez aussi remarqué que le nom est le même que " +"l'argument en chaîne de caractères donné à la méthode : ``echo``." #: ../Doc/howto/argparse.rst:154 msgid "" @@ -220,7 +220,7 @@ msgstr "" "Notez cependant que, même si l'affichage d'aide paraît bien , il n'est pas " "aussi utile qu'il pourrait l'être. Par exemple, on peut lire que ``echo`` " "est un argument positionnel mais on ne peut pas savoir ce que cela fait " -"autrement qu'en le devinant ou en lisant le code source. Donc, rendons le un " +"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " "peu plus utile ::" #: ../Doc/howto/argparse.rst:165 @@ -230,8 +230,7 @@ msgstr "Et on obtient :" #: ../Doc/howto/argparse.rst:178 msgid "Now, how about doing something even more useful::" msgstr "" -"Maintenant, qu'en dîtes vous s'il on fait quelque chose d'encore plus utile " -" ::" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" #: ../Doc/howto/argparse.rst:196 msgid "" @@ -351,8 +350,8 @@ msgid "" "yet touched on the topic of short versions of the options. It's quite " "simple::" msgstr "" -"Si vous êtes familier avec l'utilisation des ligne de commande vous avez dû " -"remarqué que je n'ai pour l'instant rien dit au sujet des versions " +"Si vous êtes familier avec l'utilisation de la ligne de commande, vous avez " +"dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " "raccourcies des paramètres. C'est très simple ::" #: ../Doc/howto/argparse.rst:326 @@ -369,7 +368,7 @@ msgstr "Combinaison d'arguments positionnels et optionnels" #: ../Doc/howto/argparse.rst:345 msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de grandir en complexité ::" +msgstr "Notre programme continue de croître en complexité ::" #: ../Doc/howto/argparse.rst:360 msgid "And now the output:" @@ -388,7 +387,7 @@ msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" msgstr "" -"Qu'en est il si nous donnons à ce programme la possibilité d'avoir plusieurs " +"Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " "niveaux de verbosité, et que celui-ci les prend en compte ::" #: ../Doc/howto/argparse.rst:412 @@ -454,8 +453,8 @@ msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." msgstr "" -"Et si vous ne spécifiez pas le option ``-v``, ce option sera considéré en " -"tant que valeur ``None``." +"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " +"``None``." #: ../Doc/howto/argparse.rst:509 msgid "" @@ -473,8 +472,7 @@ msgid "" msgstr "" "Malheureusement, notre sortie d'aide n'est pas très informative à propos des " "nouvelles possibilités de notre programme, mais cela peut toujours être " -"corrigé en améliorant sa documentation. (e.g. en utilisant le l'argument " -"``help``)." +"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." #: ../Doc/howto/argparse.rst:516 msgid "That last output exposes a bug in our program." @@ -517,7 +515,7 @@ msgstr "" "l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " "Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " "il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " -"type entier (Une erreur :exc:`TypeError` serait alors levée)." +"type entier (une erreur :exc:`TypeError` serait alors levée)." #: ../Doc/howto/argparse.rst:582 msgid "And:" @@ -543,7 +541,7 @@ msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" msgstr "" -"Qu'en est il si nous souhaitons étendre notre mini programme pour le rendre " +"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " "capable de calculer d'autres puissances, et pas seulement des carrés ::" #: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653 @@ -597,8 +595,8 @@ msgid "" "form ones." msgstr "" "Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " -"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, i.e. " -"faire un mixe entre des paramètres courts et longs." +"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " +"exemple pour faire un mélange entre des paramètres courts et longs." #: ../Doc/howto/argparse.rst:717 msgid "" @@ -606,8 +604,8 @@ msgid "" "your program, just in case they don't know::" msgstr "" "Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " -"le but principal de votre programme, juste dans le cas ou ils ne savent " -"pas ::" +"le but principal de votre programme, juste dans le cas ou ils ne le " +"sauraient pas ::" #: ../Doc/howto/argparse.rst:738 msgid "" @@ -615,9 +613,9 @@ msgid "" "tells us that we can either use ``-v`` or ``-q``, but not both at the same " "time:" msgstr "" -"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]``, " -"qui nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais " -"pas les deux ensemble :" +"Notez cette nuance dans le texte d'utilisation. Les options `[-v | -q]`` " +"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " +"les deux ensemble :" #: ../Doc/howto/argparse.rst:760 msgid "Conclusion" @@ -630,6 +628,6 @@ msgid "" "tutorial, you should easily digest them without feeling overwhelmed." msgstr "" "Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " -"documentation est assez détaillée complète et pleine d'exemples. En ayant " -"accompli ce tutoriel, vous pourriez facilement comprendre cette " -"documentation sans vous sentir dépassé." +"documentation est assez détaillée, complète et pleine d'exemples. En ayant " +"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation " +"sans vous sentir dépassé." diff --git a/howto/clinic.po b/howto/clinic.po index bbecfc8e4..f7590053a 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:5 msgid "Argument Clinic How-To" -msgstr "" +msgstr "Guide Argument Clinic" #: ../Doc/howto/clinic.rst:0 msgid "author" @@ -25,7 +25,7 @@ msgstr "auteur" #: ../Doc/howto/clinic.rst:7 msgid "Larry Hastings" -msgstr "" +msgstr "Larry Hastings" #: ../Doc/howto/clinic.rst:None msgid "Abstract" @@ -896,7 +896,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:578 msgid "Renaming the C functions and variables generated by Argument Clinic" -msgstr "" +msgstr "Renommer les fonctions et variables C générées par Argument Clinic" #: ../Doc/howto/clinic.rst:580 msgid "" @@ -909,6 +909,14 @@ msgid "" "function, then add ``\"_impl\"`` to the end and use that for the name of the " "impl function." msgstr "" +"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, " +"cela peut poser des problèmes, si le nom généré entre en collision avec le " +"nom d'une fonction C existante. Il y a une solution simple : surcharger les " +"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` " +"sur la ligne de la déclaration de la fonction, suivi par le nom de la " +"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de " +"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` " +"à la fin et utilisera ce nom pour la fonction ``impl``." #: ../Doc/howto/clinic.rst:588 msgid "" @@ -916,7 +924,7 @@ msgid "" "``pickle.Pickler.dump``, it'd look like this::" msgstr "" "Par exemple, si nous voulons renommer les noms de fonction C générés pour " -"``pickle.Pickler.dump``, ça ressemblerait à ça :" +"``pickle.Pickler.dump``, ça ressemblerait à ça ::" #: ../Doc/howto/clinic.rst:596 msgid "" @@ -936,13 +944,15 @@ msgstr "" "De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " "paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " "Argument Clinic vous permet de donner à un paramètre des noms différents en " -"Python et en C." +"Python et en C ::" #: ../Doc/howto/clinic.rst:614 msgid "" "Here, the name used in Python (in the signature and the ``keywords`` array) " "would be ``file``, but the C variable would be named ``file_obj``." msgstr "" +"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " +"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." #: ../Doc/howto/clinic.rst:617 msgid "You can use this to rename the ``self`` parameter too!" @@ -960,6 +970,12 @@ msgid "" "appropriate. All arguments should be marked positional-only (add a ``/`` on " "a line by itself after the last argument)." msgstr "" +"Afin de convertir une fonction analysant ses arguments via :c:func:" +"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les " +"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` " +"d'argument afin de le forcer au type approprié. Tous les arguments devraient " +"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la " +"ligne après le dernier argument)." #: ../Doc/howto/clinic.rst:629 msgid "" @@ -983,6 +999,14 @@ msgid "" "optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was " "created." msgstr "" +"Certaines fonctions de base ont une approche particulière pour analyser " +"leurs arguments : elles comptent le nombre d'arguments positionnels, puis " +"elles utilisent une condition ``switch`` basée sur le nombre d'arguments " +"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " +"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant " +"qu'arguments nommés). Cette approche était utilisée pour simuler des " +"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit " +"créée." #: ../Doc/howto/clinic.rst:642 msgid "" @@ -997,6 +1021,17 @@ msgid "" "the function passing in ``x``, you must also pass in ``y``—and if you don't " "pass in ``x`` you may not pass in ``y`` either.)" msgstr "" +"Alors que les fonctions utilisant cette approche peuvent normalement être " +"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " +"arguments optionnels et des valeurs par défaut, ce n'est pas toujours " +"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:" +"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la " +"fonction native ``range()``, qui possède un argument optionnel à *gauche* de " +"ses arguments requis ! Un autre exemple est la fonction ``curses.window." +"addch()``, qui possède un groupe de deux arguments qui doivent toujours être " +"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous " +"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne " +"passez pas ``x``, vous ne devez pas passer ``y`` non plus)." #: ../Doc/howto/clinic.rst:654 msgid "" @@ -1007,6 +1042,14 @@ msgid "" "all be passed in together. They can be to the left or the right of the " "required arguments. They can *only* be used with positional-only parameters." msgstr "" +"Dans tous les cas, le but d'Argument Clinic est de prendre en charge " +"l'analyse des arguments pour toutes les fonctions natives de CPython sans " +"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette " +"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes " +"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent " +"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche " +"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant " +"que paramètres positionnels." #: ../Doc/howto/clinic.rst:662 msgid "" @@ -1018,6 +1061,14 @@ msgid "" "doesn't understand the concept. Please avoid using optional groups wherever " "possible." msgstr "" +"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions " +"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions " +"qui utilisent *au moins une* des autres approches ne doivent *presque " +"jamais* être converties à Argument Clinic en utilisant les groupes " +"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de " +"signature précise en Python, parce que celui-ci ne peut simplement pas " +"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes " +"optionnels si possible." #: ../Doc/howto/clinic.rst:671 msgid "" @@ -1027,6 +1078,11 @@ msgid "" "optional groups to make the first two parameters and the last parameter " "optional::" msgstr "" +"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " +"avant les paramètres que vous souhaitez inclure dans le groupe, puis un " +"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment " +"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel " +"les deux premiers paramètres ainsi que le dernier :" #: ../Doc/howto/clinic.rst:700 msgid "Notes:" @@ -1044,6 +1100,16 @@ msgid "" "was unused, and set to non-zero if this group was used. (By used or unused, " "I mean whether or not the parameters received arguments in this invocation.)" msgstr "" +"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " +"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé " +"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` " +"ou ``left`` suivant que le groupe est situé avant ou après les paramètres " +"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant " +"la distance entre le groupe et les paramètres requis. Quand la fonction " +"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a " +"pas été utilisé, et positionné à un nombre entier positif sinon (par " +"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet " +"appel)." #: ../Doc/howto/clinic.rst:713 msgid "" @@ -1058,10 +1124,13 @@ msgid "" "In the case of ambiguity, the argument parsing code favors parameters on the " "left (before the required parameters)." msgstr "" +"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à " +"gauche (avant les paramètres obligatoires)." #: ../Doc/howto/clinic.rst:719 msgid "Optional groups can only contain positional-only parameters." msgstr "" +"Les groupes optionnels ne peuvent contenir que des arguments positionnels." #: ../Doc/howto/clinic.rst:721 msgid "" @@ -1074,6 +1143,8 @@ msgstr "" #: ../Doc/howto/clinic.rst:726 msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" msgstr "" +"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " +"« adaptateurs de base »" #: ../Doc/howto/clinic.rst:728 msgid "" @@ -1083,17 +1154,25 @@ msgid "" "explicitly to make porting existing code to Argument Clinic easier. And to " "be clear, their use is acceptable when porting code for Python 3.4." msgstr "" +"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " +"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " +"« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " +"facilement du code existant sous Argument Clinic. Et pour être clair, leur " +"utilisation est tout à fait acceptable pour porter du code Python 3.4." #: ../Doc/howto/clinic.rst:735 msgid "" "However, in the long term we probably want all our blocks to use Argument " "Clinic's real syntax for converters. Why? A couple reasons:" msgstr "" +"Cependant, sur le long terme, il est certainement préférable que tous vos " +"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " +"Pourquoi ? Voici quelques raisons :" #: ../Doc/howto/clinic.rst:739 msgid "" "The proper converters are far easier to read and clearer in their intent." -msgstr "" +msgstr "Les adaptateurs sont plus simples et plus clairs." #: ../Doc/howto/clinic.rst:740 msgid "" @@ -1101,6 +1180,9 @@ msgid "" "because they require arguments, and the legacy converter syntax doesn't " "support specifying arguments." msgstr "" +"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », " +"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne " +"supporte pas cela." #: ../Doc/howto/clinic.rst:743 msgid "" @@ -1108,12 +1190,18 @@ msgid "" "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " "won't be available to parameters using legacy converters." msgstr "" +"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " +"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " +"accepte ; cette flexibilité ne serait pas accessible aux paramètres " +"utilisant des adaptateurs de base." #: ../Doc/howto/clinic.rst:747 msgid "" "Therefore, if you don't mind a little extra effort, please use the normal " "converters instead of legacy converters." msgstr "" +"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " +"devriez utiliser les adaptateurs normaux plutôt que ceux de base." #: ../Doc/howto/clinic.rst:750 msgid "" @@ -1122,16 +1210,22 @@ msgid "" "the function (all functions take their default values), you may omit the " "parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters." msgstr "" +"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel " +"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction " +"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les " +"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur." #: ../Doc/howto/clinic.rst:756 msgid "" "All arguments to Argument Clinic converters are keyword-only. All Argument " "Clinic converters accept the following arguments:" msgstr "" +"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " +"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" #: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1246 msgid "``c_default``" -msgstr "" +msgstr "``c_default``" #: ../Doc/howto/clinic.rst:760 msgid "" @@ -1140,10 +1234,15 @@ msgid "" "\". See :ref:`the section on default values ` for how to " "use this. Specified as a string." msgstr "" +"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, " +"il servira à initialiser la variable déclarée dans la « fonction " +"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut " +"` pour apprendre à l'utiliser. Spécifié en tant que chaîne " +"de caractères." #: ../Doc/howto/clinic.rst:769 msgid "``annotation``" -msgstr "" +msgstr "``annotation``" #: ../Doc/howto/clinic.rst:767 msgid "" @@ -1156,10 +1255,12 @@ msgid "" "In addition, some converters accept additional arguments. Here is a list of " "these arguments, along with their meanings:" msgstr "" +"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la " +"liste de ces arguments, avec leur explication :" #: ../Doc/howto/clinic.rst:780 msgid "``accept``" -msgstr "" +msgstr "``accept``" #: ../Doc/howto/clinic.rst:775 msgid "" @@ -1168,14 +1269,18 @@ msgid "" "purpose facility; as a rule it only supports specific lists of types as " "shown in the legacy converter table.)" msgstr "" +"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " +"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas " +"destiné à une utilisation généralisée ; en fait, il gère seulement les types " +"listés dans la table des adaptateurs de base)." #: ../Doc/howto/clinic.rst:780 msgid "To accept ``None``, add ``NoneType`` to this set." -msgstr "" +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." #: ../Doc/howto/clinic.rst:785 msgid "``bitwise``" -msgstr "" +msgstr "``bitwise``" #: ../Doc/howto/clinic.rst:783 msgid "" @@ -1183,10 +1288,13 @@ msgid "" "Python argument will be written to the parameter without any range checking, " "even for negative values." msgstr "" +"Autorisé seulement pour les entiers non signés. La valeur native de cet " +"argument Python sera transcrite dans le paramètre sans aucune vérification " +"de plage, même pour des valeurs négatives." #: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1260 msgid "``converter``" -msgstr "" +msgstr "``converter``" #: ../Doc/howto/clinic.rst:788 msgid "" @@ -1194,6 +1302,9 @@ msgid "" "\"converter function\" ` to use to convert this object to a " "native type." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:" +"`« fonction de conversion » depuis C ` à utiliser pour " +"convertir cet objet en type natif." #: ../Doc/howto/clinic.rst:795 msgid "``encoding``" @@ -1204,16 +1315,21 @@ msgid "" "Only supported for strings. Specifies the encoding to use when converting " "this string from a Python str (Unicode) value into a C ``char *`` value." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " +"utiliser lors de la conversion de cette chaîne depuis une valeur de type " +"Python ``str`` (Unicode) en valeur C ``char *``." #: ../Doc/howto/clinic.rst:799 msgid "``subclass_of``" -msgstr "" +msgstr "``subclass_of``" #: ../Doc/howto/clinic.rst:798 msgid "" "Only supported for the ``object`` converter. Requires that the Python value " "be a subclass of a Python type, as expressed in C." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " +"Python soit une sous-classe d'un type Python, telle qu'exprimée en C." #: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1232 msgid "``type``" @@ -1225,10 +1341,13 @@ msgid "" "type that will be used to declare the variable. Default value is ``" "\"PyObject *\"``." msgstr "" +"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le " +"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est " +"``\"PyObject *\"``." #: ../Doc/howto/clinic.rst:810 msgid "``zeroes``" -msgstr "" +msgstr "``zeroes``" #: ../Doc/howto/clinic.rst:807 msgid "" @@ -1237,6 +1356,10 @@ msgid "" "the impl function, just after the string parameter, as a parameter named " "``_length``." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL " +"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera " +"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que " +"paramètre nommé ``_length``." #: ../Doc/howto/clinic.rst:812 msgid "" @@ -1248,6 +1371,14 @@ msgid "" "any existing format unit. So Argument Clinic doesn't support it. (Or, at " "least, not yet.)" msgstr "" +"Attention de bien noter que toutes les combinaisons d'arguments ne " +"fonctionnent pas. Normalement, ces arguments sont mis en place via des " +"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " +"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " +"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " +"raisonnable de penser que ça puisse fonctionner, cette écriture ne " +"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, " +"pas pour le moment)." #: ../Doc/howto/clinic.rst:820 msgid "" @@ -1255,6 +1386,9 @@ msgid "" "Clinic converters. On the left is the legacy converter, on the right is the " "text you'd replace it with." msgstr "" +"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre " +"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les " +"adaptateurs de base et, à droite, le texte qui les remplace." #: ../Doc/howto/clinic.rst:825 msgid "``'B'``" @@ -1262,7 +1396,7 @@ msgstr "``'B'``" #: ../Doc/howto/clinic.rst:825 msgid "``unsigned_char(bitwise=True)``" -msgstr "" +msgstr "``unsigned_char(bitwise=True)``" #: ../Doc/howto/clinic.rst:826 msgid "``'b'``" @@ -1270,7 +1404,7 @@ msgstr "``'b'``" #: ../Doc/howto/clinic.rst:826 msgid "``unsigned_char``" -msgstr "" +msgstr "``unsigned_char``" #: ../Doc/howto/clinic.rst:827 msgid "``'c'``" @@ -1278,15 +1412,15 @@ msgstr "``'c'``" #: ../Doc/howto/clinic.rst:827 msgid "``char``" -msgstr "" +msgstr "``char``" #: ../Doc/howto/clinic.rst:828 msgid "``'C'``" -msgstr "" +msgstr "``'C'``" #: ../Doc/howto/clinic.rst:828 msgid "``int(accept={str})``" -msgstr "" +msgstr "``int(accept={str})``" #: ../Doc/howto/clinic.rst:829 msgid "``'d'``" @@ -1294,7 +1428,7 @@ msgstr "``'d'``" #: ../Doc/howto/clinic.rst:829 msgid "``double``" -msgstr "" +msgstr "``double``" #: ../Doc/howto/clinic.rst:830 msgid "``'D'``" @@ -1302,41 +1436,43 @@ msgstr "``'D'``" #: ../Doc/howto/clinic.rst:830 msgid "``Py_complex``" -msgstr "" +msgstr "``Py_complex``" #: ../Doc/howto/clinic.rst:831 msgid "``'es'``" -msgstr "" +msgstr "``'es'``" #: ../Doc/howto/clinic.rst:831 msgid "``str(encoding='name_of_encoding')``" -msgstr "" +msgstr "``str(encoding='name_of_encoding')``" #: ../Doc/howto/clinic.rst:832 msgid "``'es#'``" -msgstr "" +msgstr "``'es#'``" #: ../Doc/howto/clinic.rst:832 msgid "``str(encoding='name_of_encoding', zeroes=True)``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', zeroes=True)``" #: ../Doc/howto/clinic.rst:833 msgid "``'et'``" -msgstr "" +msgstr "``'et'``" #: ../Doc/howto/clinic.rst:833 msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" #: ../Doc/howto/clinic.rst:834 msgid "``'et#'``" -msgstr "" +msgstr "``'et#'``" #: ../Doc/howto/clinic.rst:834 msgid "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" msgstr "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" #: ../Doc/howto/clinic.rst:835 msgid "``'f'``" @@ -1344,7 +1480,7 @@ msgstr "``'f'``" #: ../Doc/howto/clinic.rst:835 msgid "``float``" -msgstr "" +msgstr "``float``" #: ../Doc/howto/clinic.rst:836 msgid "``'h'``" @@ -1352,7 +1488,7 @@ msgstr "``'h'``" #: ../Doc/howto/clinic.rst:836 msgid "``short``" -msgstr "" +msgstr "``short``" #: ../Doc/howto/clinic.rst:837 msgid "``'H'``" @@ -1360,7 +1496,7 @@ msgstr "``'H'``" #: ../Doc/howto/clinic.rst:837 msgid "``unsigned_short(bitwise=True)``" -msgstr "" +msgstr "``unsigned_short(bitwise=True)``" #: ../Doc/howto/clinic.rst:838 msgid "``'i'``" @@ -1376,23 +1512,23 @@ msgstr "``'I'``" #: ../Doc/howto/clinic.rst:839 msgid "``unsigned_int(bitwise=True)``" -msgstr "" +msgstr "``unsigned_int(bitwise=True)``" #: ../Doc/howto/clinic.rst:840 msgid "``'k'``" -msgstr "" +msgstr "``'k'``" #: ../Doc/howto/clinic.rst:840 msgid "``unsigned_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:841 msgid "``'K'``" -msgstr "" +msgstr "``'K'``" #: ../Doc/howto/clinic.rst:841 msgid "``unsigned_long_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long_long(bitwise=True)``" #: ../Doc/howto/clinic.rst:842 msgid "``'l'``" @@ -1408,7 +1544,7 @@ msgstr "``'L'``" #: ../Doc/howto/clinic.rst:843 msgid "``long long``" -msgstr "" +msgstr "``long long``" #: ../Doc/howto/clinic.rst:844 msgid "``'n'``" @@ -1416,39 +1552,39 @@ msgstr "``'n'``" #: ../Doc/howto/clinic.rst:844 msgid "``Py_ssize_t``" -msgstr "" +msgstr "``Py_ssize_t``" #: ../Doc/howto/clinic.rst:845 msgid "``'O'``" -msgstr "" +msgstr "``'O'``" #: ../Doc/howto/clinic.rst:845 msgid "``object``" -msgstr "" +msgstr "``object``" #: ../Doc/howto/clinic.rst:846 msgid "``'O!'``" -msgstr "" +msgstr "``'O!'``" #: ../Doc/howto/clinic.rst:846 msgid "``object(subclass_of='&PySomething_Type')``" -msgstr "" +msgstr "``object(subclass_of='&PySomething_Type')``" #: ../Doc/howto/clinic.rst:847 msgid "``'O&'``" -msgstr "" +msgstr "``'O&'``" #: ../Doc/howto/clinic.rst:847 msgid "``object(converter='name_of_c_function')``" -msgstr "" +msgstr "``object(converter='name_of_c_function')``" #: ../Doc/howto/clinic.rst:848 msgid "``'p'``" -msgstr "" +msgstr "``'p'``" #: ../Doc/howto/clinic.rst:848 msgid "``bool``" -msgstr "" +msgstr "``bool``" #: ../Doc/howto/clinic.rst:849 msgid "``'S'``" @@ -1456,7 +1592,7 @@ msgstr "``'S'``" #: ../Doc/howto/clinic.rst:849 msgid "``PyBytesObject``" -msgstr "" +msgstr "``PyBytesObject``" #: ../Doc/howto/clinic.rst:850 msgid "``'s'``" @@ -1464,23 +1600,23 @@ msgstr "``'s'``" #: ../Doc/howto/clinic.rst:850 msgid "``str``" -msgstr "" +msgstr "``str``" #: ../Doc/howto/clinic.rst:851 msgid "``'s#'``" -msgstr "" +msgstr "``'s#'``" #: ../Doc/howto/clinic.rst:851 msgid "``str(zeroes=True)``" -msgstr "" +msgstr "``str(zeroes=True)``" #: ../Doc/howto/clinic.rst:852 msgid "``'s*'``" -msgstr "" +msgstr "``'s*'``" #: ../Doc/howto/clinic.rst:852 msgid "``Py_buffer(accept={buffer, str})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str})``" #: ../Doc/howto/clinic.rst:853 msgid "``'U'``" @@ -1488,7 +1624,7 @@ msgstr "``'U'``" #: ../Doc/howto/clinic.rst:853 msgid "``unicode``" -msgstr "" +msgstr "``unicode``" #: ../Doc/howto/clinic.rst:854 msgid "``'u'``" @@ -1496,101 +1632,103 @@ msgstr "``'u'``" #: ../Doc/howto/clinic.rst:854 msgid "``Py_UNICODE``" -msgstr "" +msgstr "``Py_UNICODE``" #: ../Doc/howto/clinic.rst:855 msgid "``'u#'``" -msgstr "" +msgstr "``'u#'``" #: ../Doc/howto/clinic.rst:855 msgid "``Py_UNICODE(zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(zeroes=True)``" #: ../Doc/howto/clinic.rst:856 msgid "``'w*'``" -msgstr "" +msgstr "``'w*'``" #: ../Doc/howto/clinic.rst:856 msgid "``Py_buffer(accept={rwbuffer})``" -msgstr "" +msgstr "``Py_buffer(accept={rwbuffer})``" #: ../Doc/howto/clinic.rst:857 msgid "``'Y'``" -msgstr "" +msgstr "``'Y'``" #: ../Doc/howto/clinic.rst:857 msgid "``PyByteArrayObject``" -msgstr "" +msgstr "``PyByteArrayObject``" #: ../Doc/howto/clinic.rst:858 msgid "``'y'``" -msgstr "" +msgstr "``'y'``" #: ../Doc/howto/clinic.rst:858 msgid "``str(accept={bytes})``" -msgstr "" +msgstr "``str(accept={bytes})``" #: ../Doc/howto/clinic.rst:859 msgid "``'y#'``" -msgstr "" +msgstr "``'y#'``" #: ../Doc/howto/clinic.rst:859 msgid "``str(accept={robuffer}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={robuffer}, zeroes=True)``" #: ../Doc/howto/clinic.rst:860 msgid "``'y*'``" -msgstr "" +msgstr "``'y*'``" #: ../Doc/howto/clinic.rst:860 msgid "``Py_buffer``" -msgstr "" +msgstr "``Py_buffer``" #: ../Doc/howto/clinic.rst:861 msgid "``'Z'``" -msgstr "" +msgstr "``'Z'``" #: ../Doc/howto/clinic.rst:861 msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:862 msgid "``'Z#'``" -msgstr "" +msgstr "``'Z#'``" #: ../Doc/howto/clinic.rst:862 msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" #: ../Doc/howto/clinic.rst:863 msgid "``'z'``" -msgstr "" +msgstr "``'z'``" #: ../Doc/howto/clinic.rst:863 msgid "``str(accept={str, NoneType})``" -msgstr "" +msgstr "``str(accept={str, NoneType})``" #: ../Doc/howto/clinic.rst:864 msgid "``'z#'``" -msgstr "" +msgstr "``'z#'``" #: ../Doc/howto/clinic.rst:864 msgid "``str(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" #: ../Doc/howto/clinic.rst:865 msgid "``'z*'``" -msgstr "" +msgstr "``'z*'``" #: ../Doc/howto/clinic.rst:865 msgid "``Py_buffer(accept={buffer, str, NoneType})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" #: ../Doc/howto/clinic.rst:868 msgid "" "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " "converter::" msgstr "" +"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " +"approprié ::" #: ../Doc/howto/clinic.rst:881 msgid "" @@ -1599,10 +1737,14 @@ msgid "" "default value for each parameter. Just run ``Tools/clinic/clinic.py --" "converters`` to see the full list." msgstr "" +"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " +"adaptateur, il vous liste également l'ensemble des paramètres qu'ils " +"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement " +"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste." #: ../Doc/howto/clinic.rst:887 msgid "Py_buffer" -msgstr "" +msgstr "Py_buffer" #: ../Doc/howto/clinic.rst:889 msgid "" @@ -1611,16 +1753,23 @@ msgid "" "`PyBuffer_Release` on the provided buffer. Argument Clinic generates code " "that does it for you (in the parsing function)." msgstr "" +"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de " +"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " +"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " +"génère du code qui le fait pour vous (dans la fonction d'analyse)." #: ../Doc/howto/clinic.rst:897 msgid "Advanced converters" -msgstr "" +msgstr "Adaptateurs avancés" #: ../Doc/howto/clinic.rst:899 msgid "" "Remember those format units you skipped for your first time because they " "were advanced? Here's how to handle those too." msgstr "" +"Vous vous souvenez de ces spécifications de format que vous avez laissées de " +"côté la première fois parce qu'il s'agissait de notions avancées ? Voici " +"comment les utiliser." #: ../Doc/howto/clinic.rst:902 msgid "" @@ -1632,6 +1781,14 @@ msgid "" "``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " "units that start with ``e``)." msgstr "" +"L'astuce est que toutes ces spécifications de format acceptent des arguments " +"— aussi bien des fonctions de conversion que des types, ou des chaînes " +"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les " +"arguments. C'est pourquoi nous les avions laissés de côté pour votre " +"première fonction.) L'argument que vous aviez spécifié à la spécification de " +"format est désormais un argument du convertisseur ; cet argument est soit " +"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` " +"(pour toutes les spécifications de format qui commencent par ``e``)." #: ../Doc/howto/clinic.rst:910 msgid "" @@ -1641,6 +1798,12 @@ msgid "" "is a subclass of ``PyUnicode_Type``, you probably want to use the converter " "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." msgstr "" +"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " +"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous " +"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous " +"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, " +"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject " +"*', subclass_of='&PyUnicode_Type')``." #: ../Doc/howto/clinic.rst:916 msgid "" @@ -1654,30 +1817,46 @@ msgid "" "unreasonable; CPython itself always passes in static hard-coded encoding " "strings for parameters whose format units start with ``e``." msgstr "" +"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire " +"la flexibilité des spécifications de format commençant par ``e``. Lorsque " +"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " +"théoriquement décider quelle chaîne d'encodage passer à :c:func:" +"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au " +"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; " +"elle permet une gestion plus simple de cette spécification de format, et " +"peut permettre de futures optimisations. Cette restriction ne semble pas " +"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en " +"dur pour les paramètres dont les spécifications de format commencent par " +"``e``." #: ../Doc/howto/clinic.rst:929 msgid "Parameter default values" -msgstr "" +msgstr "Valeurs par défaut des paramètres" #: ../Doc/howto/clinic.rst:931 msgid "" "Default values for parameters can be any of a number of values. At their " "simplest, they can be string, int, or float literals:" msgstr "" +"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. " +"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :" #: ../Doc/howto/clinic.rst:940 msgid "They can also use any of Python's built-in constants:" msgstr "" +"Vous pouvez également utiliser n'importe quelle constante native de Python :" #: ../Doc/howto/clinic.rst:948 msgid "" "There's also special support for a default value of ``NULL``, and for simple " "expressions, documented in the following sections." msgstr "" +"La valeur ``NULL`` est également acceptée, ainsi que des expressions " +"simples, comme expliqué dans les sections suivantes." #: ../Doc/howto/clinic.rst:953 msgid "The ``NULL`` default value" -msgstr "" +msgstr "La valeur par défaut ``NULL``" #: ../Doc/howto/clinic.rst:955 msgid "" @@ -1688,10 +1867,16 @@ msgid "" "behaves like a default value of ``None``, but the C variable is initialized " "with ``NULL``." msgstr "" +"Pour les paramètres chaînes et objets, vous pouvez les positionner à " +"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " +"cela signifie que la variable C sera initialisée à ``Py_None``. Par " +"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette " +"raison : du point de vue de Python, cette valeur se comporte comme la valeur " +"par défaut ``None``, mais la variable C est initialisée à ``NULL``." #: ../Doc/howto/clinic.rst:963 msgid "Expressions specified as default values" -msgstr "" +msgstr "Expressions spécifiées comme valeurs par défaut" #: ../Doc/howto/clinic.rst:965 msgid "" @@ -1700,10 +1885,14 @@ msgid "" "on objects. However, this support isn't exactly simple, because of some non-" "obvious semantics." msgstr "" +"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " +"littérale. Il peut s'agir d'une expression, utilisant des opérateurs " +"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est " +"pas aussi simple, notamment à cause de sémantiques peu évidentes." #: ../Doc/howto/clinic.rst:970 msgid "Consider the following example:" -msgstr "" +msgstr "Examinons l'exemple suivant :" #: ../Doc/howto/clinic.rst:976 msgid "" @@ -1754,11 +1943,11 @@ msgstr "" #: ../Doc/howto/clinic.rst:1012 msgid "Function calls." -msgstr "" +msgstr "des appels de fonction." #: ../Doc/howto/clinic.rst:1013 msgid "Inline if statements (``3 if foo else 5``)." -msgstr "" +msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" #: ../Doc/howto/clinic.rst:1014 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." diff --git a/howto/cporting.po b/howto/cporting.po index ecd34a2ba..b14613dcb 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -6,12 +6,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" "PO-Revision-Date: 2019-07-19 23:34+0200\n" +"Last-Translator: Andy Kwok \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Andy Kwok \n" "X-Generator: Poedit 2.2.3\n" #: ../Doc/howto/cporting.rst:7 diff --git a/howto/curses.po b/howto/curses.po index 805a8375e..1255203e7 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -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 `_." msgstr "" +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." #: ../Doc/howto/curses.rst:46 msgid "" @@ -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 `_ est " +"disponible. Vous pouvez également essayer le `Windows console driver `_ écrit par Fredrik Lundh, qui n'utilise " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " +"curseur et une prise en charge complète de la souris et du clavier." #: ../Doc/howto/curses.rst:66 msgid "The Python curses module" -msgstr "" +msgstr "Le module *curses* de Python" #: ../Doc/howto/curses.rst:68 msgid "" @@ -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 `_ have more extensive collections " "of widgets.)" msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." #: ../Doc/howto/curses.rst:438 msgid "There are two methods for getting input from a window:" -msgstr "" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" #: ../Doc/howto/curses.rst:440 msgid "" @@ -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 `_ to learn more about submitting patches to Python." msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." #: ../Doc/howto/curses.rst:544 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." #: ../Doc/howto/curses.rst:546 msgid "`The ncurses man page `_" -msgstr "" +msgstr "`La page de manuel ncurses `_" #: ../Doc/howto/curses.rst:547 msgid "" "`The ncurses FAQ `_" msgstr "" +"`La FAQ ncurses `_ " +"(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\" `_ : 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\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*." diff --git a/howto/descriptor.po b/howto/descriptor.po index 3a522bcb1..2f4cf80ac 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" -"PO-Revision-Date: 2019-06-20 19:13+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -343,7 +343,7 @@ msgid "" msgstr "" "Le code suivant crée une classe dont les objets sont des descripteurs de " "données qui affichent un message pour chaque lecture ou écriture. " -"Redefinir :meth:`__getattribute__` est une approche alternative qui pourrait " +"Redéfinir :meth:`__getattribute__` est une approche alternative qui pourrait " "le faire pour chaque attribut. Cependant, ce descripteur n'est utile que " "pour le suivi de quelques attributs choisis ::" diff --git a/howto/functional.po b/howto/functional.po index b7bcbd28e..a1e3a4904 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/howto/functional.rst:5 msgid "A. M. Kuchling" -msgstr "" +msgstr "A. M. Kuchling" #: ../Doc/howto/functional.rst:0 msgid "Release" @@ -32,7 +32,7 @@ msgstr "Version" #: ../Doc/howto/functional.rst:6 msgid "0.32" -msgstr "" +msgstr "0.32" #: ../Doc/howto/functional.rst:8 msgid "" @@ -42,6 +42,11 @@ msgid "" "term:`iterator`\\s and :term:`generator`\\s and relevant library modules " "such as :mod:`itertools` and :mod:`functools`." msgstr "" +"Dans ce document, nous allons faire un tour des fonctionnalités de Python " +"adaptées à la réalisation d'un programme dans un style fonctionnel. Après " +"une introduction à la programmation fonctionnelle, nous aborderons des " +"outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " +"que les modules :mod:`itertools` et :mod:`functools`." #: ../Doc/howto/functional.rst:16 msgid "Introduction" @@ -53,11 +58,17 @@ msgid "" "just interested in learning about Python language features, skip to the next " "section on :ref:`functional-howto-iterators`." msgstr "" +"Cette section détaille les fondamentaux de la programmation fonctionnelle. " +"Si seules les fonctionnalités de Python vous intéressent, vous pouvez sauter " +"cette partie et lire la section suivante sur les :ref:`functional-howto-" +"iterators`." #: ../Doc/howto/functional.rst:22 msgid "" "Programming languages support decomposing problems in several different ways:" msgstr "" +"Les langages de programmation permettent de traiter des problèmes selon " +"différentes approches :" #: ../Doc/howto/functional.rst:24 msgid "" @@ -65,6 +76,11 @@ msgid "" "instructions that tell the computer what to do with the program's input. C, " "Pascal, and even Unix shells are procedural languages." msgstr "" +"La plupart des langages de programmation suivent une logique " +"**procédurale** : les programmes sont constitués de listes d'instructions " +"qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " +"programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " +"langages procéduraux." #: ../Doc/howto/functional.rst:28 msgid "" @@ -75,6 +91,13 @@ msgid "" "to retrieve, and the SQL engine decides whether to scan tables or use " "indexes, which subclauses should be performed first, etc." msgstr "" +"Les langages **déclaratifs** permettent d'écrire la spécification du " +"problème et laissent l'implémentation du langage trouver une façon efficace " +"de réaliser les calculs nécessaires à sa résolution. SQL est un langage " +"déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " +"le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " +"parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" +"clauses, etc." #: ../Doc/howto/functional.rst:35 msgid "" @@ -84,6 +107,11 @@ msgid "" "and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" +"Les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " +"possèdent un état interne et des méthodes qui interrogent ou modifient cet " +"état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " +"orientés objet. C++ et Python gèrent la programmation orientée objet mais " +"n'imposent pas l'utilisation de telles fonctionnalités." #: ../Doc/howto/functional.rst:41 msgid "" @@ -93,6 +121,12 @@ msgid "" "known functional languages include the ML family (Standard ML, OCaml, and " "other variants) and Haskell." msgstr "" +"La programmation **fonctionnelle** implique de décomposer un problème en un " +"ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " +"partir d'entrées et ne possède pas d'état interne qui soit susceptible de " +"modifier la sortie pour une entrée donnée. Les langages fonctionnels les " +"plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " +"Haskell." #: ../Doc/howto/functional.rst:47 msgid "" @@ -106,6 +140,16 @@ msgid "" "GUI might be object-oriented while the processing logic is procedural or " "functional, for example." msgstr "" +"Les personnes qui conçoivent des langages de programmation peuvent choisir " +"de privilégier une approche par rapport à une autre. Cela complexifie " +"l'écriture de programmes appliquant un paradigme différent de celui " +"considéré. Certains langages sont multi-paradigmes et gère plusieurs " +"approches différentes. Lisp, C++ et Python sont de tels langages ; vous " +"pouvez écrire des programmes ou des bibliothèques dans un style procédural, " +"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " +"d'une application peuvent être écrites selon des approches différentes ; par " +"exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " +"que la logique de traitement est procédurale ou fonctionnelle." #: ../Doc/howto/functional.rst:58 msgid "" @@ -117,6 +161,15 @@ msgid "" "side effects means not using data structures that get updated as a program " "runs; every function's output must only depend on its input." msgstr "" +"Dans un programme fonctionnel, l'entrée traverse un ensemble de fonctions. " +"Chaque fonction opère sur son entrée et produit une sortie. Le style " +"fonctionnel préconise de ne pas écrire de fonctions ayant des effets de " +"bord, c'est-à-dire qui modifient un état interne ou réalisent d'autres " +"changements qui ne sont pas visibles dans la valeur de sortie de la " +"fonction. Les fonctions qui ne présentent aucun effet de bord sont dites " +"**purement fonctionnelles**. L'interdiction des effets de bord signifie " +"qu'aucune structure de données n'est mise à jour lors de l'exécution du " +"programme ; chaque sortie d'une fonction ne dépend que de son entrée." #: ../Doc/howto/functional.rst:66 msgid "" @@ -128,6 +181,15 @@ msgid "" "called for their side effects of sending some text to the screen or pausing " "execution for a second." msgstr "" +"Certains langages sont très stricts en ce qui concerne la pureté des " +"fonctions et ne laissent même pas la possibilité d'assigner des variables " +"avec des expressions telles que ``a = 3`` ou ``c = a + b``, cependant il est " +"difficile d'éviter tous les effets de bord. Afficher un message sur l'écran " +"ou écrire un fichier sur le disque sont des effets de bord. Par exemple, un " +"appel aux fonctions :func:`print` ou :func:`time.sleep` en Python ne renvoie " +"aucune valeur utile ; ces fonctions ne sont appelées que pour leur effet de " +"bord (afficher du texte sur l'écran et mettre en pause l'exécution du " +"programme)." #: ../Doc/howto/functional.rst:74 msgid "" @@ -138,6 +200,13 @@ msgid "" "assignments to local variables, but won't modify global variables or have " "other side effects." msgstr "" +"Les programmes Python écrits dans un style fonctionnel ne poussent " +"généralement pas le curseur de la pureté à l'extrême en interdisant toute " +"entrée/sortie ou les assignations ; ils exhibent une interface fonctionnelle " +"en apparence mais utilisent des fonctionnalités impures en interne. Par " +"exemple, l'implémentation d'une fonction peut assigner dans des variables " +"locales mais ne modifiera pas de variable globale et n'aura pas d'autre " +"effet de bord." #: ../Doc/howto/functional.rst:80 msgid "" @@ -150,6 +219,15 @@ msgid "" "approaches by writing functions that take and return instances representing " "objects in your application (e-mail messages, transactions, etc.)." msgstr "" +"La programmation fonctionnelle peut être considérée comme l'opposé de la " +"programmation orientée objet. Les objets encapsulent un état interne ainsi " +"qu'une collection de méthodes qui permettent de modifier cet état. Les " +"programmes consistent à appliquer les bons changements à ces états. La " +"programmation fonctionnelle vous impose d'éviter au maximum ces changements " +"d'états en travaillant sur des données qui traversent un flux de fonctions. " +"En Python, vous pouvez combiner ces deux approches en écrivant des fonctions " +"qui prennent en argument et renvoient des instances représentants des objets " +"de votre application (courriers électroniques, transactions, etc.)." #: ../Doc/howto/functional.rst:89 msgid "" @@ -157,32 +235,37 @@ msgid "" "you avoid objects and side effects? There are theoretical and practical " "advantages to the functional style:" msgstr "" +"Programmer sous la contrainte du paradigme fonctionnel peut sembler étrange. " +"Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " +"avantages théoriques et pratiques au style fonctionnel :" #: ../Doc/howto/functional.rst:93 msgid "Formal provability." -msgstr "" +msgstr "Preuves formelles." #: ../Doc/howto/functional.rst:94 msgid "Modularity." -msgstr "" +msgstr "Modularité." #: ../Doc/howto/functional.rst:95 msgid "Composability." -msgstr "" +msgstr "Composabilité." #: ../Doc/howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "" +msgstr "Facilité de débogage et de test." #: ../Doc/howto/functional.rst:100 msgid "Formal provability" -msgstr "" +msgstr "Preuves formelles" #: ../Doc/howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." msgstr "" +"Un avantage théorique est qu'il plus facile de construire une preuve " +"mathématique de l'exactitude d'un programme fonctionnel." #: ../Doc/howto/functional.rst:105 msgid "" @@ -193,6 +276,12 @@ msgid "" "looks right; the goal is instead a rigorous proof that a program produces " "the right result for all possible inputs." msgstr "" +"Les chercheurs ont longtemps souhaité trouver des façons de prouver " +"mathématiquement qu'un programme est correct. Cela ne se borne pas à tester " +"si la sortie d'un programme est correcte sur de nombreuses entrées ou lire " +"le code source et en conclure que le celui-ci semble juste. L'objectif est " +"d'établir une preuve rigoureuse que le programme produit le bon résultat " +"pour toutes les entrées possibles." #: ../Doc/howto/functional.rst:112 msgid "" @@ -204,6 +293,14 @@ msgid "" "This continues until you reach the end of the program, at which point the " "invariants should match the desired conditions on the program's output." msgstr "" +"La technique utilisée pour prouver l'exactitude d'un programme est d'écrire " +"des **invariants**, c'est-à-dire des propriétés de l'entrée et des variables " +"du programme qui sont toujours vérifiées. Pour chaque ligne de code, il " +"suffit de montrer que si les invariants X et Y sont vrais **avant** " +"l'exécution de cette ligne, les invariants légèrement modifiés X' et Y' sont " +"vérifiés **après** son exécution. Ceci se répète jusqu'à atteindre la fin du " +"programme. À ce stade, les invariants doivent alors correspondre aux " +"propriétés que l'on souhaite que la sortie du programme vérifie." #: ../Doc/howto/functional.rst:120 msgid "" @@ -212,6 +309,10 @@ msgid "" "invariants that were true before the assignment without producing any new " "invariants that can be propagated onward." msgstr "" +"L'aversion du style fonctionnel envers les assignations de variable est " +"apparue car celles-ci sont difficiles à gérer avec cette méthode. Les " +"assignations peuvent rompre des invariants qui étaient vrais auparavant sans " +"pour autant produire de nouveaux invariants qui pourraient être propagés." #: ../Doc/howto/functional.rst:125 msgid "" @@ -224,10 +325,20 @@ msgid "" "the question of verifying the proof; maybe there's an error in it, and you " "wrongly believe you've proved the program correct." msgstr "" +"Malheureusement, prouver l'exactitude d'un programme est très peu commode et " +"ne concerne que rarement des logiciels en Python. Même des programmes " +"triviaux nécessitent souvent des preuves s'étalant sur plusieurs pages ; la " +"preuve de l'exactitude d'un programme relativement gros serait gigantesque. " +"Peu, voire aucun, des programmes que vous utilisez quotidiennement " +"(l'interpréteur Python, votre analyseur syntaxique XML, votre navigateur " +"web) ne peuvent être prouvés exacts. Même si vous écriviez ou généreriez une " +"preuve, il faudrait encore vérifier celle-ci. Peut-être qu'elle contient une " +"erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " +"programme est correct." #: ../Doc/howto/functional.rst:136 msgid "Modularity" -msgstr "" +msgstr "Modularité" #: ../Doc/howto/functional.rst:138 msgid "" @@ -237,14 +348,20 @@ msgid "" "thing than a large function that performs a complicated transformation. " "Small functions are also easier to read and to check for errors." msgstr "" +"Un intérêt plus pratique de la programmation fonctionnelle est qu'elle " +"impose de décomposer le problème en petits morceaux. Les programmes qui en " +"résultent sont souvent plus modulaires. Il est plus simple de spécifier et " +"d'écrire une petite fonction qui ne fait qu'une seule tâche plutôt qu'une " +"grosse fonction qui réalise une transformation complexe. Les petites " +"fonctions sont plus faciles à lire et à vérifier." #: ../Doc/howto/functional.rst:146 msgid "Ease of debugging and testing" -msgstr "" +msgstr "Facilité de débogage et de test" #: ../Doc/howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." -msgstr "" +msgstr "Tester et déboguer un programme fonctionnel est plus facile." #: ../Doc/howto/functional.rst:150 msgid "" @@ -254,6 +371,11 @@ msgid "" "intermediate inputs and outputs to quickly isolate the function that's " "responsible for a bug." msgstr "" +"Déboguer est plus simple car les fonctions sont généralement petites et bien " +"spécifiées. Lorsqu'un programme ne fonctionne pas, chaque fonction constitue " +"une étape intermédiaire au niveau de laquelle vous pouvez vérifier que les " +"valeurs sont justes. Vous pouvez observer les entrées intermédiaires et les " +"sorties afin d'isoler rapidement la fonction qui est à l'origine du bogue." #: ../Doc/howto/functional.rst:155 msgid "" @@ -262,10 +384,15 @@ msgid "" "before running a test; instead you only have to synthesize the right input " "and then check that the output matches expectations." msgstr "" +"Les tests sont plus faciles car chaque fonction est désormais un sujet " +"potentiel pour un test unitaire. Les fonctions ne dépendent pas d'un état " +"particulier du système qui devrait être répliqué avant d'exécuter un test ; " +"à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " +"le résultat correspond à ce que vous attendez." #: ../Doc/howto/functional.rst:162 msgid "Composability" -msgstr "" +msgstr "Composabilité" #: ../Doc/howto/functional.rst:164 msgid "" @@ -277,6 +404,14 @@ msgid "" "that takes a filename and returns its contents, can be applied to many " "different situations." msgstr "" +"En travaillant sur un programme dans le style fonctionnel, vous écrivez un " +"certain nombre de fonctions avec des entrées et des sorties variables. " +"Certaines de ces fonctions sont inévitablement spécifiques à une application " +"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. " +"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un " +"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le " +"contenu d'un fichier à partir de son nom peuvent être utiles dans de " +"nombreuses situations." #: ../Doc/howto/functional.rst:171 msgid "" @@ -284,6 +419,10 @@ msgid "" "assemble new programs by arranging existing functions in a new configuration " "and writing a few functions specialized for the current task." msgstr "" +"Au fur et à mesure, vous constituez ainsi une bibliothèque personnelle " +"d'utilitaires. Souvent, vous pourrez construire de nouveaux programmes en " +"agençant des fonctions existantes dans une nouvelle configuration et en " +"écrivant quelques fonctions spécifiques à votre objectif en cours." #: ../Doc/howto/functional.rst:179 msgid "Iterators" @@ -294,6 +433,8 @@ msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." msgstr "" +"Commençons par jeter un œil à une des fonctionnalités les plus importantes " +"pour écrire en style fonctionnel avec Python : les itérateurs." #: ../Doc/howto/functional.rst:184 msgid "" @@ -305,6 +446,13 @@ msgid "" "exception. Iterators don't have to be finite, though; it's perfectly " "reasonable to write an iterator that produces an infinite stream of data." msgstr "" +"Un itérateur est un objet qui représente un flux de données ; cet objet " +"renvoie les données un élément à la fois. Un itérateur Python doit posséder " +"une méthode :meth:`~iterator.__next__` qui ne prend pas d'argument et " +"renvoie toujours l'élément suivant du flux. S'il n'y plus d'élément dans le " +"flux, :meth:`~iterator.__next__` doit lever une exception :exc:" +"`StopIteration`. Toutefois, ce n'est pas indispensable ; il est envisageable " +"d'écrire un itérateur qui produit un flux infini de données." #: ../Doc/howto/functional.rst:192 msgid "" @@ -315,10 +463,16 @@ msgid "" "lists and dictionaries. An object is called :term:`iterable` if you can get " "an iterator for it." msgstr "" +"La fonction native :func:`iter` prend un objet arbitraire et tente de " +"construire un itérateur qui renvoie le contenu de l'objet (ou ses éléments) " +"en levant une exception :exc:`TypeError` si l'objet ne gère pas l'itération. " +"Plusieurs types de données natifs à Python gèrent l'itération, notamment les " +"listes et les dictionnaires. On appelle :term:`iterable` un objet pour " +"lequel il est possible de construire un itérateur." #: ../Doc/howto/functional.rst:199 msgid "You can experiment with the iteration interface manually:" -msgstr "" +msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" #: ../Doc/howto/functional.rst:217 msgid "" @@ -327,18 +481,27 @@ msgid "" "Y``, Y must be an iterator or some object for which :func:`iter` can create " "an iterator. These two statements are equivalent::" msgstr "" +"Python s'attend à travailler sur des objets itérables dans divers contextes " +"et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " +"``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" +"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" #: ../Doc/howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" msgstr "" +"Les itérateurs peuvent être transformés en listes ou en tuples en appelant " +"les constructeurs respectifs :func:`list` et :func:`tuple` :" #: ../Doc/howto/functional.rst:238 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" msgstr "" +"Le dépaquetage de séquences fonctionne également sur les itérateurs : si " +"vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " +"dans un n-uplet :" #: ../Doc/howto/functional.rst:247 msgid "" @@ -350,6 +513,14 @@ msgid "" "func:`min` will never return, and if the element X never appears in the " "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." msgstr "" +"Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " +"un itérateur en argument et en renvoie le plus grand ou le plus petit " +"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les " +"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " +"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " +"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " +"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``" +"\"not in\"`` non plus." #: ../Doc/howto/functional.rst:255 msgid "" @@ -361,10 +532,18 @@ msgid "" "need to do something different with the same stream, you'll have to create a " "new iterator." msgstr "" +"Notez qu'il n'est possible de parcourir un itérateur que vers l'avant et " +"qu'il est impossible de récupérer l'élément précédent, de réinitialiser " +"l'itérateur ou d'en créer une copie. Des objets itérateurs peuvent offrir " +"ces possibilités de façon facultative, mais le protocole d'itération ne " +"spécifie que la méthode :meth:`~iterator.__next__`. Certaines fonctions " +"peuvent ainsi consommer l'entièreté de la sortie d'un itérateur et, si vous " +"devez utiliser le même flux pour autre chose, vous devrez en créer un " +"nouveau." #: ../Doc/howto/functional.rst:265 msgid "Data Types That Support Iterators" -msgstr "" +msgstr "Types de données itérables" #: ../Doc/howto/functional.rst:267 msgid "" @@ -372,12 +551,17 @@ msgid "" "Python sequence type, such as strings, will automatically support creation " "of an iterator." msgstr "" +"Nous avons vu précédemment comment les listes et les *tuples* gèrent les " +"itérateurs. En réalité, n'importe quel type de séquence en Python, par " +"exemple les chaînes de caractères, sont itérables." #: ../Doc/howto/functional.rst:271 msgid "" "Calling :func:`iter` on a dictionary returns an iterator that will loop over " "the dictionary's keys::" msgstr "" +"Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " +"l'ensemble de ses clés ::" #: ../Doc/howto/functional.rst:291 msgid "" @@ -385,6 +569,10 @@ msgid "" "to be the same as the insertion order. In earlier versions, the behaviour " "was unspecified and could vary between implementations." msgstr "" +"Notez qu'à partir de la version 3.7, Python garantit que l'ordre de " +"l'itération sur un dictionnaire est identique à l'ordre d'insertion des " +"clés. Dans les versions précédentes, ce comportement n'était pas spécifié et " +"pouvait varier en fonction de l'implémentation." #: ../Doc/howto/functional.rst:295 msgid "" @@ -393,12 +581,19 @@ msgid "" "iterate over values or key/value pairs, you can explicitly call the :meth:" "`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." msgstr "" +"Appliquer :func:`iter` sur un dictionnaire produit un itérateur sur ses clés " +"mais il est possible d'obtenir d'autres itérateurs par d'autres méthodes. Si " +"vous souhaitez itérer sur les valeurs ou les paires clé/valeur du " +"dictionnaire, vous pouvez explicitement appeler les méthodes :meth:`~dict." +"values` ou :meth:`~dict.items` pour obtenir l'itérateur idoine." #: ../Doc/howto/functional.rst:301 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" msgstr "" +"Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " +"renvoie un flux fini de pairs ``(clé, valeur)`` :" #: ../Doc/howto/functional.rst:308 msgid "" @@ -406,16 +601,22 @@ msgid "" "method until there are no more lines in the file. This means you can read " "each line of a file like this::" msgstr "" +"Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io." +"TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le " +"fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " +"façon suivante ::" #: ../Doc/howto/functional.rst:316 msgid "" "Sets can take their contents from an iterable and let you iterate over the " "set's elements::" msgstr "" +"Les ensembles peuvent être créés à partir d'un itérable et autorisent " +"l'itération sur les éléments de l'ensemble ::" #: ../Doc/howto/functional.rst:326 msgid "Generator expressions and list comprehensions" -msgstr "" +msgstr "Expressions génératrices et compréhension de listes" #: ../Doc/howto/functional.rst:328 msgid "" @@ -425,6 +626,12 @@ msgid "" "strip off trailing whitespace from each line or extract all the strings " "containing a given substring." msgstr "" +"Deux opérations courantes réalisables sur la sortie d'un itérateur sont 1) " +"effectuer une opération pour chaque élément, 2) extraire le sous-ensemble " +"des éléments qui vérifient une certaine condition. Par exemple, pour une " +"liste de chaînes de caractères, vous pouvez choisir de retirer tous les " +"caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " +"contenant une sous-chaîne précise." #: ../Doc/howto/functional.rst:334 msgid "" @@ -433,11 +640,18 @@ msgid "" "functional programming language Haskell (https://www.haskell.org/). You can " "strip all the whitespace from a stream of strings with the following code::" msgstr "" +"Les compréhensions de listes et les expressions génératrices sont des façons " +"concises d'exprimer de telles opérations, inspirées du langage de " +"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " +"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " +"de caractères à l'aide du code suivant ::" #: ../Doc/howto/functional.rst:347 msgid "" "You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" +"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " +"« ``if`` » ::" #: ../Doc/howto/functional.rst:352 msgid "" @@ -449,6 +663,13 @@ msgid "" "infinite stream or a very large amount of data. Generator expressions are " "preferable in these situations." msgstr "" +"La compréhension de liste renvoie une liste Python ; ``stripped_list`` est " +"une liste contenant les lignes après transformation, pas un itérateur. Les " +"expressions génératrices renvoient un itérateur qui calcule les valeurs au " +"fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " +"que les compréhensions de listes ne sont pas très utiles si vous travaillez " +"sur des itérateurs infinis ou produisant une très grande quantité de " +"données. Les expressions génératrices sont préférables dans ce cas." #: ../Doc/howto/functional.rst:359 msgid "" @@ -456,12 +677,17 @@ msgid "" "comprehensions are surrounded by square brackets (\"[]\"). Generator " "expressions have the form::" msgstr "" +"Les expressions génératrices sont écrites entre parenthèses (« () ») et les " +"compréhensions de listes entre crochets (« [] »). Les expressions " +"génératrices sont de la forme ::" #: ../Doc/howto/functional.rst:372 msgid "" "Again, for a list comprehension only the outside brackets are different " "(square brackets instead of parentheses)." msgstr "" +"La compréhension de liste équivalente s'écrit de la même manière, utilisez " +"juste des crochets à la place des parenthèses." #: ../Doc/howto/functional.rst:375 msgid "" @@ -470,6 +696,9 @@ msgid "" "``expression`` is only evaluated and added to the result when ``condition`` " "is true." msgstr "" +"Les éléments de la sortie sont les valeurs successives de ``expression``. La " +"clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " +"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." #: ../Doc/howto/functional.rst:379 msgid "" @@ -477,6 +706,10 @@ msgid "" "parentheses signalling a function call also count. If you want to create an " "iterator that will be immediately passed to a function you can write::" msgstr "" +"Les expressions génératrices doivent toujours être écrites entre " +"parenthèses, mais les parenthèses qui encadrent un appel de fonction " +"comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " +"passé à une fonction, vous pouvez écrire ::" #: ../Doc/howto/functional.rst:385 msgid "" @@ -487,12 +720,20 @@ msgid "" "looped over for each resulting pair of elements from ``sequence1`` and " "``sequence2``." msgstr "" +"Les clauses ``for ... in`` indiquent les séquences sur lesquelles itérer. " +"Celles-ci peuvent être de longueurs différentes car l'itération est réalisée " +"de gauche à droite et non en parallèle. ``sequence2`` est parcourue " +"entièrement pour chaque élément de ``sequence1``. ``sequence3`` est ensuite " +"parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " +"et ``sequence2``." #: ../Doc/howto/functional.rst:391 msgid "" "To put it another way, a list comprehension or generator expression is " "equivalent to the following Python code::" msgstr "" +"Autrement dit, une compréhension de liste ou une expression génératrice est " +"équivalente au code Python ci-dessous ::" #: ../Doc/howto/functional.rst:408 msgid "" @@ -501,6 +742,10 @@ msgid "" "the lengths of all the sequences. If you have two lists of length 3, the " "output list is 9 elements long:" msgstr "" +"Ainsi lorsque plusieurs clauses ``for ... in`` sont présentes mais sans " +"condition ``if``, la longueur totale de la nouvelle séquence est égale au " +"produit des longueurs des séquences itérées. Si vous travaillez sur deux " +"listes de longueur 3, la sortie contiendra 9 éléments :" #: ../Doc/howto/functional.rst:420 msgid "" @@ -508,6 +753,10 @@ msgid "" "is creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" +"Afin de ne pas créer une ambiguïté dans la grammaire de Python, " +"``expression`` doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" #: ../Doc/howto/functional.rst:431 msgid "Generators" @@ -519,6 +768,10 @@ msgid "" "writing iterators. Regular functions compute a value and return it, but " "generators return an iterator that returns a stream of values." msgstr "" +"Les générateurs forment une classe spéciale de fonctions qui simplifie la " +"création d'itérateurs. Les fonctions habituelles calculent une valeur et la " +"renvoie, tandis que les générateurs renvoient un itérateur qui produit un " +"flux de valeurs." #: ../Doc/howto/functional.rst:437 msgid "" @@ -532,10 +785,22 @@ msgid "" "function where it left off? This is what generators provide; they can be " "thought of as resumable functions." msgstr "" +"Vous connaissez sans doute le fonctionnement des appels de fonctions en " +"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé " +"lui est associé pour ses variables locales. Lorsque le programme atteint une " +"instruction ``return``, les variables locales sont détruites et la valeur " +"est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " +"un nouvel espace de nommage privé et de nouvelles variables locales. " +"Cependant, que se passerait-il si les variables locales n'étaient pas " +"détruites lors de la sortie d'une fonction ? Et s'il était possible de " +"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les " +"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il " +"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " +"perdre leur progression." #: ../Doc/howto/functional.rst:446 msgid "Here's the simplest example of a generator function:" -msgstr "" +msgstr "Voici un exemple simple de fonction génératrice :" #: ../Doc/howto/functional.rst:452 msgid "" @@ -543,6 +808,9 @@ msgid "" "this is detected by Python's :term:`bytecode` compiler which compiles the " "function specially as a result." msgstr "" +"N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " +"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " +"prend en compte cette particularité de la fonction." #: ../Doc/howto/functional.rst:456 msgid "" @@ -555,16 +823,26 @@ msgid "" "preserved. On the next call to the generator's :meth:`~generator.__next__` " "method, the function will resume executing." msgstr "" +"Lorsque vous appelez une fonction génératrice, celle-ci ne renvoie pas une " +"unique valeur ; elle renvoie un objet générateur qui implémente le protocole " +"d'itération. Lorsque l'expression ``yield`` est exécutée, le générateur " +"renvoie la valeur de ``i``, d'une façon similaire à un ``return``. La " +"différence principale entre ``yield`` et ``return`` est qu'en atteignant " +"l'instruction ``yield``, l'état du générateur est suspendu et les variables " +"locales sont conservées. Lors de l'appel suivant à la méthode :meth:" +"`~generator.__next__` du générateur, la fonction reprend son exécution." #: ../Doc/howto/functional.rst:465 msgid "Here's a sample usage of the ``generate_ints()`` generator:" -msgstr "" +msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" #: ../Doc/howto/functional.rst:482 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " "generate_ints(3)``." msgstr "" +"Vous pourriez de façon équivalente écrire ``for i in generate_ints(5)`` ou " +"``a, b, c = generate_ints(3)``." #: ../Doc/howto/functional.rst:485 msgid "" @@ -573,6 +851,11 @@ msgid "" "method. Once this happens, or the bottom of the function is reached, the " "procession of values ends and the generator cannot yield any further values." msgstr "" +"Dans une fonction génératrice, une instruction ``return value`` entraine la " +"levée d'une exception ``StopIteration(value)`` dans la méthode :meth:" +"`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction " +"est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne " +"peut plus rien produire." #: ../Doc/howto/functional.rst:490 msgid "" @@ -583,6 +866,13 @@ msgid "" "method increment ``self.count`` and return it. However, for a moderately " "complicated generator, writing a corresponding class can be much messier." msgstr "" +"Vous pouvez obtenir le même comportement que celui des générateurs en " +"écrivant votre propre classe qui stocke les variables locales du générateur " +"comme variables d'instance. Pour renvoyer une liste d'entiers, par exemple, " +"vous pouvez initialiser ``self.count`` à 0 et écrire la méthode :meth:" +"`~iterator.__next__` de telle sorte qu'elle incrémente ``self.count`` puis " +"le renvoie. Cependant, cela devient beaucoup plus complexe pour des " +"générateurs relativement sophistiqués." #: ../Doc/howto/functional.rst:498 msgid "" @@ -591,6 +881,10 @@ msgid "" "one generator that implements an in-order traversal of a tree using " "generators recursively. ::" msgstr "" +":source:`Lib/test/test_generators.py`, la suite de test de la bibliothèque " +"Python, contient de nombreux exemples intéressants. Voici un générateur qui " +"implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " +"de façon récursive. ::" #: ../Doc/howto/functional.rst:514 msgid "" @@ -600,10 +894,16 @@ msgid "" "knight to every square of an NxN chessboard without visiting any square " "twice)." msgstr "" +"Deux autres exemples de ``test_generators.py`` permettent de résoudre le " +"problème des N Reines (placer *N* reines sur un échiquier de dimensions " +"*NxN* de telle sorte qu'aucune reine ne soit en position d'en prendre une " +"autre) et le problème du cavalier (trouver un chemin permettant au cavalier " +"de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " +"case deux fois)." #: ../Doc/howto/functional.rst:522 msgid "Passing values into a generator" -msgstr "" +msgstr "Transmettre des valeurs au générateur" #: ../Doc/howto/functional.rst:524 msgid "" @@ -614,6 +914,12 @@ msgid "" "variable or by passing in some mutable object that callers then modify, but " "these approaches are messy." msgstr "" +"Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " +"fois le code du générateur exécuté pour créer un itérateur, il était " +"impossible d'introduire de l'information nouvelle dans la fonction mise en " +"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le " +"générateur à consulter des variables globales ou en lui passant des objets " +"mutables modifiés hors du générateur, mais ces approches étaient compliquées." #: ../Doc/howto/functional.rst:531 msgid "" @@ -621,6 +927,10 @@ msgid "" "`yield` became an expression, returning a value that can be assigned to a " "variable or otherwise operated on::" msgstr "" +"À partir de Python 2.5, il existe une méthode simple pour transmettre des " +"valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " +"expression qui renvoie une valeur sur laquelle il est possible d'opérer et " +"que vous pouvez assigner à une variable ::" #: ../Doc/howto/functional.rst:537 msgid "" @@ -629,6 +939,12 @@ msgid "" "above example. The parentheses aren't always necessary, but it's easier to " "always add them instead of having to remember when they're needed." msgstr "" +"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** " +"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez " +"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux " +"vaut prévenir que guérir : il est plus facile de les ajouter " +"systématiquement que de prendre le risque de les oublier là où elles sont " +"requises." #: ../Doc/howto/functional.rst:542 msgid "" @@ -638,6 +954,11 @@ msgid "" "write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" +"(Les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " +"expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " +"l'expression la plus externe du côté droit d'une assignation. Cela signifie " +"que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " +"requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" #: ../Doc/howto/functional.rst:548 msgid "" @@ -646,16 +967,23 @@ msgid "" "``yield`` expression returns the specified value. If the regular :meth:" "`~generator.__next__` method is called, the ``yield`` returns ``None``." msgstr "" +"Des valeurs peuvent être transmises à un générateur en appelant sa méthode :" +"meth:`send(value) `. Celle-ci reprend l'exécution du " +"générateur et l'expression ``yield`` renvoie la valeur spécifiée. Si c'est " +"la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " +"``yield`` renvoie ``None``." #: ../Doc/howto/functional.rst:553 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." msgstr "" +"Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " +"de modifier le compte interne." #: ../Doc/howto/functional.rst:568 msgid "And here's an example of changing the counter:" -msgstr "" +msgstr "Et voici comment il est possible de modifier le compteur :" #: ../Doc/howto/functional.rst:585 msgid "" @@ -664,12 +992,18 @@ msgid "" "that the :meth:`~generator.send` method will be the only method used to " "resume your generator function." msgstr "" +"Puisque ``yield`` renvoie souvent ``None``, vous devez toujours vérifier si " +"c'est le cas. N'utilisez pas la valeur de retour à moins d'être certain que " +"seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " +"l'exécution de la fonction génératrice." #: ../Doc/howto/functional.rst:590 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" msgstr "" +"En plus de :meth:`~generator.send`, il existe deux autres méthodes " +"s'appliquant aux générateurs :" #: ../Doc/howto/functional.rst:593 msgid "" @@ -677,6 +1011,9 @@ msgid "" "raise an exception inside the generator; the exception is raised by the " "``yield`` expression where the generator's execution is paused." msgstr "" +":meth:`throw(type, value=None, traceback=None) ` permet de " +"lever une exception dans le générateur ; celle-ci est levée par l'expression " +"``yield`` à l'endroit où l'exécution a été mise en pause." #: ../Doc/howto/functional.rst:597 msgid "" @@ -688,6 +1025,13 @@ msgid "" "be called by Python's garbage collector when the generator is garbage-" "collected." msgstr "" +":meth:`~generator.close` lève une exception :exc:`GeneratorExit` dans le " +"générateur afin de terminer l'itération. Le code du générateur qui reçoit " +"cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:" +"`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi " +"que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque " +"le ramasse-miette de Python collecte le générateur, il appelle sa méthode :" +"meth:`~generator.close`." #: ../Doc/howto/functional.rst:605 msgid "" @@ -695,12 +1039,18 @@ msgid "" "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" +"Si vous devez exécuter du code pour faire le ménage lors d'une :exc:" +"`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... " +"finally`` plutôt que d'attraper :exc:`GeneratorExit`." #: ../Doc/howto/functional.rst:608 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." #: ../Doc/howto/functional.rst:611 msgid "" @@ -710,6 +1060,12 @@ msgid "" "can be entered, exited, and resumed at many different points (the ``yield`` " "statements)." msgstr "" +"Les générateurs sont également devenus des **coroutines**, une forme " +"généralisée de sous-routine. L'exécution des sous-routines démarre à un " +"endroit et se termine à un autre (au début de la fonction et au niveau de " +"l'instruction ``return``), tandis qu'il est possible d'entrer, de sortir ou " +"de reprendre une coroutine à différents endroits (les instructions " +"``yield``)." #: ../Doc/howto/functional.rst:618 msgid "Built-in functions" @@ -719,26 +1075,34 @@ msgstr "Fonctions natives" msgid "" "Let's look in more detail at built-in functions often used with iterators." msgstr "" +"Voyons un peu plus en détail les fonctions natives souvent utilisées de " +"concert avec les itérateurs." #: ../Doc/howto/functional.rst:622 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" msgstr "" +":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " +"clonent les propriétés des expressions génératrices :" #: ../Doc/howto/functional.rst:634 msgid "" ":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" msgstr "" +":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" #: ../Doc/howto/functional.rst:626 msgid "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." msgstr "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." #: ../Doc/howto/functional.rst:636 msgid "You can of course achieve the same effect with a list comprehension." msgstr "" +"Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " +"liste." #: ../Doc/howto/functional.rst:638 msgid "" @@ -748,10 +1112,16 @@ msgid "" "truth value of some condition; for use with :func:`filter`, the predicate " "must take a single value." msgstr "" +":func:`filter(predicate, iter) ` renvoie un itérateur sur l'ensemble " +"des éléments de la séquence qui vérifient une certaine condition. Son " +"comportement peut également être reproduit par une compréhension de liste. " +"Un **prédicat** est une fonction qui renvoie vrai ou faux en fonction d'une " +"certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " +"prendre qu'un seul argument." #: ../Doc/howto/functional.rst:651 msgid "This can also be written as a list comprehension:" -msgstr "" +msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" #: ../Doc/howto/functional.rst:657 msgid "" @@ -759,12 +1129,18 @@ msgid "" "iterable returning 2-tuples containing the count (from *start*) and each " "element. ::" msgstr "" +":func:`enumerate(iter, start=0) ` énumère les éléments de " +"l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " +"listés (depuis le *début*) et l'élément en cours ::" #: ../Doc/howto/functional.rst:667 msgid "" ":func:`enumerate` is often used when looping through a list and recording " "the indexes at which certain conditions are met::" msgstr "" +":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une " +"liste tout en listant les indices pour lesquels une certaine condition est " +"vérifiée ::" #: ../Doc/howto/functional.rst:675 msgid "" @@ -773,11 +1149,17 @@ msgid "" "result. The *key* and *reverse* arguments are passed through to the " "constructed list's :meth:`~list.sort` method. ::" msgstr "" +":func:`sorted(iterable, key=None, reverse=False) ` rassemble tous " +"les éléments de l'itérable dans une liste, les classe et renvoie le résultat " +"classé. Les arguments *key* et *reverse* sont passés à la méthode :meth:" +"`~list.sort` de la liste ainsi construite. ::" #: ../Doc/howto/functional.rst:690 msgid "" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" msgstr "" +"(Pour plus de détails sur les algorithmes de tri, se référer à :ref:" +"`sortinghowto`.)" #: ../Doc/howto/functional.rst:693 msgid "" @@ -786,12 +1168,19 @@ msgid "" "any element in the iterable is a true value, and :func:`all` returns " "``True`` if all of the elements are true values:" msgstr "" +"Les fonctions natives :func:`any(iter) ` et :func:`all(iter) ` " +"permettent d'observer les valeurs de vérité des éléments d'un itérable. :" +"func:`any` renvoie ``True`` si au moins un élément de l'itérable s'évalue " +"comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " +"comme vrai :" #: ../Doc/howto/functional.rst:712 msgid "" ":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " "and returns them in a tuple::" msgstr "" +":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " +"dans un n-uplet ::" #: ../Doc/howto/functional.rst:718 msgid "" @@ -800,6 +1189,11 @@ msgid "" "they're requested. (The technical term for this behaviour is `lazy " "evaluation `__.)" msgstr "" +"Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " +"d'entrée avant de renvoyer sa valeur ; en réalité les n-uplets sont " +"construits et renvoyés au fur et à mesure (il s'agit techniquement parlant " +"d'un comportement d'`évaluation paresseuse `__)." #: ../Doc/howto/functional.rst:723 msgid "" @@ -807,6 +1201,9 @@ msgid "" "length. If the iterables are of different lengths, the resulting stream " "will be the same length as the shortest iterable. ::" msgstr "" +"Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " +"longueur des itérables diffère, le flux résultant a la même longueur que le " +"plus court des itérables. ::" #: ../Doc/howto/functional.rst:730 msgid "" @@ -814,10 +1211,15 @@ msgid "" "the longer iterators and discarded. This means you can't go on to use the " "iterators further because you risk skipping a discarded element." msgstr "" +"Toutefois, vous devez éviter de dépendre de ce comportement. En effet un " +"élément d'un des itérables les plus longs peut être retiré puis jeté (car " +"l'autre itérable est trop court). Cela signifie que vous ne pouvez alors " +"plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " +"jeté." #: ../Doc/howto/functional.rst:736 msgid "The itertools module" -msgstr "" +msgstr "Le module *itertools*" #: ../Doc/howto/functional.rst:738 msgid "" @@ -825,30 +1227,38 @@ msgid "" "well as functions for combining several iterators. This section will " "introduce the module's contents by showing small examples." msgstr "" +"Le module :mod:`itertools` contient de nombreux itérateurs très utilisés, " +"ainsi que des fonctions pour combiner différents itérateurs. Cette section " +"présente le contenu du module au travers de quelques exemples." #: ../Doc/howto/functional.rst:742 msgid "The module's functions fall into a few broad classes:" -msgstr "" +msgstr "Les fonctions du module se divisent en quelques grandes catégories :" #: ../Doc/howto/functional.rst:744 msgid "Functions that create a new iterator based on an existing iterator." msgstr "" +"Les fonctions qui transforment un itérateur existant en un nouvel itérateur." #: ../Doc/howto/functional.rst:745 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" +"Les fonctions qui traitent les éléments d'un itérateur comme les arguments " +"d'une fonction." #: ../Doc/howto/functional.rst:746 msgid "Functions for selecting portions of an iterator's output." msgstr "" +"Les fonctions qui permettent de sélectionner des portions de la sortie d'un " +"itérateur." #: ../Doc/howto/functional.rst:747 msgid "A function for grouping an iterator's output." -msgstr "" +msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." #: ../Doc/howto/functional.rst:750 msgid "Creating new iterators" -msgstr "" +msgstr "Créer de nouveaux itérateurs" #: ../Doc/howto/functional.rst:752 msgid "" @@ -857,6 +1267,9 @@ msgid "" "number, which defaults to 0, and the interval between numbers, which " "defaults to 1::" msgstr "" +":func:`itertools.count(start, step) ` renvoie un flux " +"infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " +"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" #: ../Doc/howto/functional.rst:763 msgid "" @@ -865,6 +1278,9 @@ msgid "" "from first to last. The new iterator will repeat these elements " "infinitely. ::" msgstr "" +":func:`itertools.cycle(iter) ` sauvegarde une copie du " +"contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " +"produit tous les éléments du premier au dernier et se répète indéfiniment. ::" #: ../Doc/howto/functional.rst:770 msgid "" @@ -872,6 +1288,9 @@ msgid "" "element *n* times, or returns the element endlessly if *n* is not " "provided. ::" msgstr "" +":func:`itertools.repeat(elem, [n]) ` renvoie l'élément " +"passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " +"spécifié. ::" #: ../Doc/howto/functional.rst:778 msgid "" @@ -880,6 +1299,10 @@ msgid "" "first iterator, then all the elements of the second, and so on, until all of " "the iterables have been exhausted. ::" msgstr "" +":func:`itertools.chain(iterA, iterB, ...) ` reçoit un " +"nombre arbitraire d'itérables en entrée et les concatène, renvoyant tous les " +"éléments du premier itérateur, puis tous ceux du second et ainsi de suite " +"jusqu'à ce que tous les itérables aient été épuisés. ::" #: ../Doc/howto/functional.rst:786 msgid "" @@ -891,6 +1314,13 @@ msgid "" "and list slicing, you can't use negative values for *start*, *stop*, or " "*step*. ::" msgstr "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " +"il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " +"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une " +"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives " +"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " +"caractères de Python). ::" #: ../Doc/howto/functional.rst:800 msgid "" @@ -901,10 +1331,16 @@ msgid "" "iterator, so this can consume significant memory if the iterator is large " "and one of the new iterators is consumed more than the others. ::" msgstr "" +":func:`itertools.tee(iter, [n]) ` duplique un itérateur et " +"renvoie *n* itérateurs indépendants, chacun copiant le contenu de " +"l'itérateur source. La valeur par défaut pour *n* est 2. La réplication des " +"itérateurs nécessite la sauvegarde d'une partie du contenu de l'itérateur " +"source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " +"et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" #: ../Doc/howto/functional.rst:819 msgid "Calling functions on elements" -msgstr "" +msgstr "Appliquer des fonctions au contenu des itérateurs" #: ../Doc/howto/functional.rst:821 msgid "" @@ -914,6 +1350,11 @@ msgid "" "``a != b``), and :func:`operator.attrgetter('id') ` " "(returns a callable that fetches the ``.id`` attribute)." msgstr "" +"Le module :mod:`operator` rassemble des fonctions équivalentes aux " +"opérateurs Python. Par exemple, :func:`operator.add(a,b) ` " +"additionne deux valeurs, :func:`operator.ne(a, b) ` est " +"équivalent à ``a != b`` et :func:`operator.attrgetter('id') ` renvoie un objet appelable qui récupère l'attribut ``.id``." #: ../Doc/howto/functional.rst:827 msgid "" @@ -921,16 +1362,21 @@ msgid "" "iterable will return a stream of tuples, and calls *func* using these tuples " "as the arguments::" msgstr "" +":func:`itertools.starmap(func, iter) ` suppose que " +"l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant " +"tous les n-uplets comme arguments ::" #: ../Doc/howto/functional.rst:839 msgid "Selecting elements" -msgstr "" +msgstr "Sélectionner des éléments" #: ../Doc/howto/functional.rst:841 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." msgstr "" +"Une autre catégorie de fonctions est celle permettant de sélectionner un " +"sous-ensemble des éléments de l'itérateur selon un prédicat donné." #: ../Doc/howto/functional.rst:844 msgid "" @@ -938,6 +1384,9 @@ msgid "" "the opposite of :func:`filter`, returning all elements for which the " "predicate returns false::" msgstr "" +":func:`itertools.filterfalse(predicate, iter) ` est " +"l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " +"prédicat est faux ::" #: ../Doc/howto/functional.rst:851 msgid "" @@ -945,6 +1394,9 @@ msgid "" "elements for as long as the predicate returns true. Once the predicate " "returns false, the iterator will signal the end of its results. ::" msgstr "" +":func:`itertools.takewhile(predicate, iter) ` renvoie " +"les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " +"que le prédicat renvoie faux, l'itération s'arrête. ::" #: ../Doc/howto/functional.rst:864 msgid "" @@ -952,6 +1404,9 @@ msgid "" "elements while the predicate returns true, and then returns the rest of the " "iterable's results. ::" msgstr "" +":func:`itertools.dropwhile(predicate, iter) ` supprime " +"des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " +"éléments de l'itérable. ::" #: ../Doc/howto/functional.rst:874 msgid "" @@ -960,10 +1415,14 @@ msgid "" "corresponding element of *selectors* is true, stopping whenever either one " "is exhausted::" msgstr "" +":func:`itertools.compress(data, selectors) ` prend un " +"itérateur *data* et un itérateur *selectors* et renvoie les éléments de " +"*data* pour lesquels l'élément correspondant de *selectors* est évalué à " +"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" #: ../Doc/howto/functional.rst:883 msgid "Combinatoric functions" -msgstr "" +msgstr "Fonctions combinatoires" #: ../Doc/howto/functional.rst:885 msgid "" @@ -971,6 +1430,9 @@ msgid "" "returns an iterator giving all possible *r*-tuple combinations of the " "elements contained in *iterable*. ::" msgstr "" +":func:`itertools.combinations(iterable, r) ` renvoie " +"un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " +"éléments de *iterable*. ::" #: ../Doc/howto/functional.rst:900 msgid "" @@ -980,24 +1442,38 @@ msgid "" "permutations(iterable, r=None) `, removes this " "constraint on the order, returning all possible arrangements of length *r*::" msgstr "" +"Les éléments de chaque tuple sont ordonnés dans le même ordre que leur " +"apparition dans *iterable*. Ainsi, dans les exemples ci-dessus, le nombre 1 " +"se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools." +"permutations(iterable, r=None) ` supprime la " +"contrainte sur l'ordre et renvoie tous les arrangements possibles de " +"longueur *r* ::" #: ../Doc/howto/functional.rst:919 msgid "" "If you don't supply a value for *r* the length of the iterable is used, " "meaning that all the elements are permuted." msgstr "" +"Si vous ne spécifiez pas de valeur pour *r*, la longueur de l'itérable est " +"utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " +"sont renvoyées." #: ../Doc/howto/functional.rst:922 msgid "" "Note that these functions produce all of the possible combinations by " "position and don't require that the contents of *iterable* are unique::" msgstr "" +"Notez que ces fonctions génèrent toutes les combinaisons possibles en se " +"basant sur la position des éléments et ne requièrent pas que les éléments de " +"*iterable* soient uniques ::" #: ../Doc/howto/functional.rst:929 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." msgstr "" +"Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " +"caractères ``'a'`` proviennent de deux positions différentes." #: ../Doc/howto/functional.rst:932 msgid "" @@ -1007,10 +1483,15 @@ msgid "" "selected for the first position of each tuple and then is replaced before " "the second element is selected. ::" msgstr "" +"La fonction :func:`itertools.combinations_with_replacement(iterable, r) " +"` assouplit une autre contrainte : " +"les éléments peuvent être répétés au sein du même n-uplet. Il s'agit d'un " +"tirage avec remise : le premier élément sélectionné pour chaque n-uplet est " +"replacé dans la séquence avant le tirage du deuxième. ::" #: ../Doc/howto/functional.rst:947 msgid "Grouping elements" -msgstr "" +msgstr "Grouper les éléments" #: ../Doc/howto/functional.rst:949 msgid "" @@ -1020,6 +1501,12 @@ msgid "" "element returned by the iterable. If you don't supply a key function, the " "key is simply each element itself." msgstr "" +"La dernière fonction que allons voir, :func:`itertools.groupby(iter, " +"key_func=None) ` est la plus complexe. ``key_func(elem)`` " +"est une fonction qui produit une clé pour chaque élément renvoyé par " +"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est " +"l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " +"lui-même)." #: ../Doc/howto/functional.rst:954 msgid "" @@ -1027,6 +1514,9 @@ msgid "" "underlying iterable that have the same key value, and returns a stream of 2-" "tuples containing a key value and an iterator for the elements with that key." msgstr "" +":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " +"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " +"clé et un itérateur produisant la liste des éléments pour cette clé." #: ../Doc/howto/functional.rst:982 msgid "" @@ -1035,10 +1525,17 @@ msgid "" "also use the underlying iterable, so you have to consume the results of " "iterator-1 before requesting iterator-2 and its corresponding key." msgstr "" +":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " +"sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " +"itérateurs générés utilisent également l'itérable sous-jacent. Vous devez " +"donc consommer l'intégralité des résultats du premier itérateur renvoyé " +"(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième " +"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " +"est associé." #: ../Doc/howto/functional.rst:989 msgid "The functools module" -msgstr "" +msgstr "Le module *functools*" #: ../Doc/howto/functional.rst:991 msgid "" @@ -1047,6 +1544,10 @@ msgid "" "and returns a new function. The most useful tool in this module is the :" "func:`functools.partial` function." msgstr "" +"Le module :mod:`functools` introduit par Python 2.5 contient diverses " +"fonctions d'ordre supérieur. Une **fonction d'ordre supérieur** prend une ou " +"plusieurs fonctions en entrée et renvoie une fonction. L'outil le plus " +"important de ce module est la fonction :func:`functools.partial`." #: ../Doc/howto/functional.rst:996 msgid "" @@ -1057,6 +1558,12 @@ msgid "" "filling in a value for one of ``f()``'s parameters. This is called " "\"partial function application\"." msgstr "" +"En programmant dans un style fonctionnel, il est courant de vouloir " +"construire des variantes de fonctions existantes dont certains paramètres " +"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, " +"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, " +"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " +"``g()`` est une appelée « application partielle » de ``f()``." #: ../Doc/howto/functional.rst:1002 msgid "" @@ -1065,6 +1572,9 @@ msgid "" "resulting object is callable, so you can just call it to invoke ``function`` " "with the filled-in arguments." msgstr "" +"Le constructeur de :func:`~functools.partial` prend en argument ``(fonction, " +"arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " +"ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." #: ../Doc/howto/functional.rst:1007 msgid "Here's a small but realistic example::" @@ -1084,6 +1594,17 @@ msgid "" "If the initial value is supplied, it's used as a starting point and " "``func(initial_value, A)`` is the first calculation. ::" msgstr "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"applique une opération cumulative à tous les éléments d'un itérable et ne " +"peut donc être appliquée à des itérables infinis. *func* doit être une " +"fonction qui prend deux éléments et renvoie une seule valeur. :func:" +"`functools.reduce` prend les deux premiers éléments A et B renvoyés par " +"l'itérateur et calcule ``func(A, B)``. Elle extrait ensuite le troisième " +"élément C et calcule ``func(func(A, B), C)`` puis combine ce résultat avec " +"le quatrième élément renvoyé etc. jusqu'à épuisement de l'itérable. Une " +"exception :exc:`TypeError` est levée si l'itérable ne renvoie aucune valeur. " +"La valeur initiale *initial_value*, si spécifiée, est utilisée comme point " +"de départ et le premier calcul est alors ``func(inital_value, A)``. ::" #: ../Doc/howto/functional.rst:1043 msgid "" @@ -1091,12 +1612,19 @@ msgid "" "all the elements of the iterable. This case is so common that there's a " "special built-in called :func:`sum` to compute it:" msgstr "" +"Si vous combinez :func:`operator.add` avec :func:`functools.reduce`, vous " +"allez additionner tous les éléments de l'itérable. Ce cas est suffisamment " +"courant pour qu'il existe une fonction native :func:`sum` qui lui est " +"équivalent :" #: ../Doc/howto/functional.rst:1055 msgid "" "For many uses of :func:`functools.reduce`, though, it can be clearer to just " "write the obvious :keyword:`for` loop::" msgstr "" +"Cependant, il peut être plus lisible dans de nombreuses situations " +"impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" +"`for` ::" #: ../Doc/howto/functional.rst:1067 msgid "" @@ -1105,10 +1633,15 @@ msgid "" "of returning only the final result, :func:`accumulate` returns an iterator " "that also yields each partial result::" msgstr "" +":func:`itertools.accumulate(iterable, func=operator.add) ` est une fonction similaire qui réalise le même calcul mais, " +"plutôt que de renvoyer seulement le résultat final, :func:`accumulate` " +"renvoie un itérateur qui génère la séquence de tous les résultats " +"intermédiaires ::" #: ../Doc/howto/functional.rst:1080 msgid "The operator module" -msgstr "" +msgstr "Le module *operator*" #: ../Doc/howto/functional.rst:1082 msgid "" @@ -1117,53 +1650,68 @@ msgid "" "useful in functional-style code because they save you from writing trivial " "functions that perform a single operation." msgstr "" +"Le module :mod:`operator` mentionné précédemment contient un ensemble de " +"fonctions reproduisant les opérateurs de Python. Ces fonctions sont souvent " +"utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " +"écrire des fonctions triviales qui ne réalisent qu'une seule opération." #: ../Doc/howto/functional.rst:1087 msgid "Some of the functions in this module are:" -msgstr "" +msgstr "Voici quelques fonctions de ce module :" #: ../Doc/howto/functional.rst:1089 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" +"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``, ..." #: ../Doc/howto/functional.rst:1090 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "" +msgstr "Les opérations logiques : ``not_()``, ``truth()``." #: ../Doc/howto/functional.rst:1091 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "" +msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." #: ../Doc/howto/functional.rst:1092 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" +"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()``." #: ../Doc/howto/functional.rst:1093 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "" +msgstr "L'identification des objets : ``is_()``, ``is_not()``." #: ../Doc/howto/functional.rst:1095 msgid "Consult the operator module's documentation for a complete list." msgstr "" +"Veuillez vous référer à la documentation du module *operator* pour une liste " +"complète." #: ../Doc/howto/functional.rst:1099 msgid "Small functions and the lambda expression" -msgstr "" +msgstr "Expressions lambda et fonctions courtes" #: ../Doc/howto/functional.rst:1101 msgid "" "When writing functional-style programs, you'll often need little functions " "that act as predicates or that combine elements in some way." msgstr "" +"Dans un style de programmation fonctionnel, il est courant d'avoir besoin de " +"petites fonctions utilisées comme prédicats ou pour combiner des éléments " +"d'une façon ou d'une autre." #: ../Doc/howto/functional.rst:1104 msgid "" "If there's a Python built-in or a module function that's suitable, you don't " "need to define a new function at all::" msgstr "" +"S'il existe une fonction native Python ou une fonction d'un module qui " +"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" #: ../Doc/howto/functional.rst:1110 msgid "" @@ -1173,18 +1721,27 @@ msgid "" "parameters, and creates an anonymous function that returns the value of the " "expression::" msgstr "" +"Si la fonction dont vous avez besoin n'existe pas, vous devez l'écrire. Une " +"façon d'écrire des fonctions courtes consiste à utiliser les expressions :" +"keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression " +"combinant ces derniers afin de créer une fonction anonyme qui renvoie la " +"valeur de cette expression ::" #: ../Doc/howto/functional.rst:1119 msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" msgstr "" +"Une autre façon de faire est de simplement utiliser l'instruction ``def`` " +"afin de définir une fonction de la manière habituelle ::" #: ../Doc/howto/functional.rst:1128 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." msgstr "" +"La méthode à préférer est une question de style, en général l'auteur évite " +"l'utilisation de ``lambda``." #: ../Doc/howto/functional.rst:1131 msgid "" @@ -1195,6 +1752,13 @@ msgid "" "``lambda`` statement, you'll end up with an overly complicated expression " "that's hard to read. Quick, what's the following code doing? ::" msgstr "" +"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. " +"Le résultat doit pouvoir se calculer en une seule expression, ce qui " +"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " +"else`` à plusieurs branches ou des structures ``try ... except``. Si vous " +"essayez de trop en faire dans une expression ``lambda``, vous finirez avec " +"une expression illisible. Par exemple, pouvez-vous dire du premier coup " +"d’œil ce que fait le code ci-dessous ? ::" #: ../Doc/howto/functional.rst:1141 msgid "" @@ -1202,58 +1766,74 @@ msgid "" "figure out what's going on. Using a short nested ``def`` statements makes " "things a little bit better::" msgstr "" +"Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " +"de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " +"améliore la situation ::" #: ../Doc/howto/functional.rst:1151 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" +"Toutefois l'idéal aurait été de simplement se contenter d'une boucle " +"``for`` ::" #: ../Doc/howto/functional.rst:1157 msgid "Or the :func:`sum` built-in and a generator expression::" msgstr "" +"ou de la fonction native :func:`sum` et d'une expression génératrice ::" #: ../Doc/howto/functional.rst:1161 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." msgstr "" +"Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" +"`functools.reduce`." #: ../Doc/howto/functional.rst:1163 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" msgstr "" +"Frederik Lundh a suggéré quelques règles pour le réusinage de code " +"impliquant les expressions ``lambda`` :" #: ../Doc/howto/functional.rst:1166 msgid "Write a lambda function." -msgstr "" +msgstr "Écrire une fonction lambda." #: ../Doc/howto/functional.rst:1167 msgid "Write a comment explaining what the heck that lambda does." msgstr "" +"Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." #: ../Doc/howto/functional.rst:1168 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." msgstr "" +"Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " +"synthétise son essence." #: ../Doc/howto/functional.rst:1170 msgid "Convert the lambda to a def statement, using that name." msgstr "" +"Réécrire la fonction lambda en une définition *def* en utilisant ce nom." #: ../Doc/howto/functional.rst:1171 msgid "Remove the comment." -msgstr "" +msgstr "Effacer le commentaire." #: ../Doc/howto/functional.rst:1173 msgid "" "I really like these rules, but you're free to disagree about whether this " "lambda-free style is better." msgstr "" +"J'aime beaucoup ces règles mais vous êtes libre de ne pas être d'accord et " +"de ne pas préférer ce style sans lambda." #: ../Doc/howto/functional.rst:1178 msgid "Revision History and Acknowledgements" -msgstr "" +msgstr "Historique des modifications et remerciements" #: ../Doc/howto/functional.rst:1180 msgid "" @@ -1262,31 +1842,43 @@ msgid "" "Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " "Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" +"L'auteur souhaiterait remercier les personnes suivantes pour leurs " +"suggestions, leurs corrections et leur aide sur les premières versions de " +"cet article : Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " +"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " +"Winton." #: ../Doc/howto/functional.rst:1185 msgid "Version 0.1: posted June 30 2006." -msgstr "" +msgstr "Version 0.1 : publiée le 30 juin 2006." #: ../Doc/howto/functional.rst:1187 msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "" +msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." #: ../Doc/howto/functional.rst:1189 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." msgstr "" +"Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " +"*listcomp*. Correction orthographique." #: ../Doc/howto/functional.rst:1192 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" +"Version 0.21 : ajout de plusieurs références suggérées sur la liste de " +"diffusion *tutor*." #: ../Doc/howto/functional.rst:1194 msgid "" "Version 0.30: Adds a section on the ``functional`` module written by Collin " "Winter; adds short section on the operator module; a few other edits." msgstr "" +"Version 0.30 : ajout d'une section sur le module ``functional`` écrite par " +"Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " +"quelques autres modifications." #: ../Doc/howto/functional.rst:1199 msgid "References" @@ -1294,7 +1886,7 @@ msgstr "Références" #: ../Doc/howto/functional.rst:1202 msgid "General" -msgstr "" +msgstr "Général" #: ../Doc/howto/functional.rst:1204 msgid "" @@ -1306,6 +1898,13 @@ msgid "" "approaches described in these chapters are applicable to functional-style " "Python code." msgstr "" +"**Structure and Interpretation of Computer Programs** par Harold Abelson et " +"Gerald Jay Sussman avec Julie Sussman. Disponible à l'adresse https://" +"mitpress.mit.edu/sicp/. Ce livre est un classique en informatique. Les " +"chapitres 2 et 3 présentent l'utilisation des séquences et des flux pour " +"organiser le flot de données dans un programme. Les exemples du livre " +"utilisent le langage Scheme mais la plupart des approches décrites dans ces " +"chapitres s'appliquent au style fonctionnel de Python." #: ../Doc/howto/functional.rst:1212 msgid "" @@ -1313,25 +1912,33 @@ msgid "" "functional programming that uses Java examples and has a lengthy historical " "introduction." msgstr "" +"http://www.defmacro.org/ramblings/fp.html : une présentation générale à la " +"programmation fonctionnelle avec une longue introduction historique et des " +"exemples en Java." #: ../Doc/howto/functional.rst:1215 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." msgstr "" +"https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " +"Wikipédia qui décrit la programmation fonctionnelle." #: ../Doc/howto/functional.rst:1218 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "" +"https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." #: ../Doc/howto/functional.rst:1220 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" +"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " +"curryfication (création d'applications partielles)." #: ../Doc/howto/functional.rst:1223 msgid "Python-specific" -msgstr "" +msgstr "Spécifique à Python" #: ../Doc/howto/functional.rst:1225 msgid "" @@ -1340,6 +1947,10 @@ msgid "" "text processing, in the section titled \"Utilizing Higher-Order Functions in " "Text Processing\"." msgstr "" +"http://gnosis.cx/TPiP/ : le premier chapitre du livre de David Mertz :title-" +"reference:`Text Processing in Python` présente l'utilisation de la " +"programmation fonctionnelle pour le traitement de texte dans la section « " +"Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." #: ../Doc/howto/functional.rst:1230 msgid "" @@ -1349,29 +1960,37 @@ msgid "" "developerworks/linux/library/l-prog2/index.html>`__, and `part 3 `__," msgstr "" +"Mertz a également écrit une série de 3 articles (en anglais) sur la " +"programmation fonctionnelle pour le site de IBM *DeveloperWorks*, voir la " +"`partie 1 `__, la `partie 2 `__ et la `partie 3 `__." #: ../Doc/howto/functional.rst:1238 msgid "Python documentation" -msgstr "" +msgstr "Documentation Python" #: ../Doc/howto/functional.rst:1240 msgid "Documentation for the :mod:`itertools` module." -msgstr "" +msgstr "Documentation du module :mod:`itertools`." #: ../Doc/howto/functional.rst:1242 msgid "Documentation for the :mod:`functools` module." -msgstr "" +msgstr "Documentation du module :mod:`functools`." #: ../Doc/howto/functional.rst:1244 msgid "Documentation for the :mod:`operator` module." -msgstr "" +msgstr "Documentation du module :mod:`operator`." #: ../Doc/howto/functional.rst:1246 msgid ":pep:`289`: \"Generator Expressions\"" -msgstr "" +msgstr ":pep:`289`: *\"Generator Expressions\"*" #: ../Doc/howto/functional.rst:1248 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." msgstr "" +":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles " +"fonctionnalités des générateurs en Python 2.5." diff --git a/howto/instrumentation.po b/howto/instrumentation.po index ee9ea16b6..d9c2eb43f 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumenter CPython avec DTrace et SystemTap" #: ../Doc/howto/instrumentation.rst:0 msgid "author" @@ -24,11 +24,11 @@ msgstr "auteur" #: ../Doc/howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" #: ../Doc/howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" #: ../Doc/howto/instrumentation.rst:12 msgid "" @@ -36,18 +36,22 @@ msgid "" "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" +"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " +"un moyen de d'inspecter ce que font les processus d'un système informatique. " +"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " +"d'écrire des scripts qui permettent de ::" #: ../Doc/howto/instrumentation.rst:16 msgid "filter which processes are to be observed" -msgstr "" +msgstr "Filtrer les processus à observer." #: ../Doc/howto/instrumentation.rst:17 msgid "gather data from the processes of interest" -msgstr "" +msgstr "Recueillir des données sur le processus choisi." #: ../Doc/howto/instrumentation.rst:18 msgid "generate reports on the data" -msgstr "" +msgstr "Générer des rapports sur les données." #: ../Doc/howto/instrumentation.rst:20 msgid "" @@ -55,6 +59,9 @@ msgid "" "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" +"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " +"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " +"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." #: ../Doc/howto/instrumentation.rst:27 msgid "" @@ -63,10 +70,15 @@ msgid "" "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" +"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " +"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " +"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " +"fonctionner ou fonctionner incorrectement sans avertissement lors du " +"changement de version de CPython." #: ../Doc/howto/instrumentation.rst:34 msgid "Enabling the static markers" -msgstr "" +msgstr "Activer les marqueurs statiques" #: ../Doc/howto/instrumentation.rst:36 msgid "" @@ -74,10 +86,13 @@ msgid "" "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" +"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " +"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " +"de développement *SystemTap* doivent être installés." #: ../Doc/howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" -msgstr "" +msgstr "Sur une machine Linux, cela se fait via ::" #: ../Doc/howto/instrumentation.rst:44 msgid "or::" @@ -85,7 +100,7 @@ msgstr "ou ::" #: ../Doc/howto/instrumentation.rst:49 msgid "CPython must then be configured ``--with-dtrace``:" -msgstr "" +msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::" #: ../Doc/howto/instrumentation.rst:55 msgid "" @@ -93,22 +108,33 @@ msgid "" "in the background and listing all probes made available by the Python " "provider::" msgstr "" +"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " +"un processus Python en arrière-plan et en listant toutes les sondes mises à " +"disposition par le fournisseur Python ::" #: ../Doc/howto/instrumentation.rst:72 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" +"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " +"présents dans le binaire compilé, il suffit de regarder s'il contient une " +"section ``.note.stapsdt``." #: ../Doc/howto/instrumentation.rst:80 msgid "" "If you've built Python as a shared library (with --enable-shared), you need " "to look instead within the shared library. For example::" msgstr "" +"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--" +"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. " +"Par exemple ::" #: ../Doc/howto/instrumentation.rst:86 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" +"Une version suffisamment moderne de *readelf* peut afficher les " +"métadonnées ::" #: ../Doc/howto/instrumentation.rst:123 msgid "" @@ -116,10 +142,14 @@ msgid "" "patch strategically-placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" +"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " +"décrivant comment il peut mettre à jour des instructions de code machine " +"stratégiquement placées pour activer les crochets de traçage utilisés par un " +"script *SystemTap*." #: ../Doc/howto/instrumentation.rst:129 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondes DTrace statiques" #: ../Doc/howto/instrumentation.rst:131 msgid "" @@ -128,18 +158,22 @@ msgid "" "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" +"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " +"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " +"En d'autres termes, les appels de fonctions lors de la phase d'import ne " +"seront pas répertoriées ::" #: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 msgid "It can be invoked like this::" -msgstr "" +msgstr "Il peut être utilisé de cette manière ::" #: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marqueurs statiques *SystemTap*" #: ../Doc/howto/instrumentation.rst:201 msgid "" @@ -147,33 +181,39 @@ msgid "" "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"directement les marqueurs statiques. Pour cela vous devez pointer " +"explicitement le fichier binaire qui les contient." #: ../Doc/howto/instrumentation.rst:205 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" +"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " +"hiérarchie d'appel/retour d'un script Python ::" #: ../Doc/howto/instrumentation.rst:245 msgid "where the columns are:" -msgstr "" +msgstr "où les colonnes sont ::" #: ../Doc/howto/instrumentation.rst:247 msgid "time in microseconds since start of script" -msgstr "" +msgstr "temps en microsecondes depuis le début du script" #: ../Doc/howto/instrumentation.rst:249 msgid "name of executable" -msgstr "" +msgstr "nom de l'exécutable" #: ../Doc/howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID du processus" #: ../Doc/howto/instrumentation.rst:253 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" +"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." #: ../Doc/howto/instrumentation.rst:255 msgid "" @@ -181,24 +221,30 @@ msgid "" "the libpython shared library, and the probe's dotted path needs to reflect " "this. For example, this line from the above example:" msgstr "" +"Pour une compilation `--enable-shared` de CPython, les marqueurs sont " +"contenus dans la bibliothèque partagée *libpython*, et le chemin du module " +"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :" #: ../Doc/howto/instrumentation.rst:263 msgid "should instead read:" -msgstr "" +msgstr "doit plutôt se lire comme ::" #: ../Doc/howto/instrumentation.rst:269 msgid "(assuming a debug build of CPython 3.6)" msgstr "" +"(en supposant une version compilée avec le débogage activé de CPython 3.6)" #: ../Doc/howto/instrumentation.rst:273 msgid "Available static markers" -msgstr "" +msgstr "Marqueurs statiques disponibles" #: ../Doc/howto/instrumentation.rst:279 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " +"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." #: ../Doc/howto/instrumentation.rst:282 msgid "" @@ -206,22 +252,29 @@ msgid "" "tracing script as positional arguments, which must be accessed using ``" "$arg1``, ``$arg2``, ``$arg3``:" msgstr "" +"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " +"au script de traçage sous forme d'arguments positionnels, auxquels il faut " +"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" #: ../Doc/howto/instrumentation.rst:286 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" +"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " +"``user_string($arg1)``" #: ../Doc/howto/instrumentation.rst:288 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" +"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " +"``user_string($arg2)``" #: ../Doc/howto/instrumentation.rst:291 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : numéro de ligne ``int``" #: ../Doc/howto/instrumentation.rst:295 msgid "" @@ -229,10 +282,14 @@ msgid "" "execution of a Python function has ended (either via ``return``, or via an " "exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Il n'est déclenché que pour les fonctions en Python pur " +"(code intermédiaire)." #: ../Doc/howto/instrumentation.rst:299 msgid "The arguments are the same as for :c:func:`function__entry`" -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" #: ../Doc/howto/instrumentation.rst:303 msgid "" @@ -240,38 +297,51 @@ msgid "" "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" +"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " +"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " +"n'est pas déclenché dans les fonctions C." #: ../Doc/howto/instrumentation.rst:307 msgid "The arguments are the same as for :c:func:`function__entry`." -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." #: ../Doc/howto/instrumentation.rst:311 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" +"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " +"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." +"collect()`." #: ../Doc/howto/instrumentation.rst:316 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" +"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " +"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." #: ../Doc/howto/instrumentation.rst:321 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" +"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " +"le module. ``arg0`` est le nom du module." #: ../Doc/howto/instrumentation.rst:328 msgid "" "Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " "the module name, ``arg1`` indicates if module was successfully loaded." msgstr "" +"Fonction appelée après que la fonction ``find_and_load`` du module :mod:" +"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si " +"le module a été chargé avec succès." #: ../Doc/howto/instrumentation.rst:336 msgid "SystemTap Tapsets" -msgstr "" +msgstr "*Tapsets* de *SystemTap*" #: ../Doc/howto/instrumentation.rst:338 msgid "" @@ -279,22 +349,32 @@ msgid "" "\": SystemTap's equivalent of a library, which hides some of the lower-level " "details of the static markers." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " +"permet de masquer les détails de niveau inférieur des marqueurs statiques." #: ../Doc/howto/instrumentation.rst:342 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" +"Voici un fichier *tapset*, basé sur une version non partagée compilée de " +"CPython ::" #: ../Doc/howto/instrumentation.rst:365 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" +"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " +"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " +"deviennent disponibles ::" #: ../Doc/howto/instrumentation.rst:371 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" +"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " +"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." #: ../Doc/howto/instrumentation.rst:376 msgid "" @@ -303,6 +383,10 @@ msgid "" "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" +"Cette sonde est l'inverse de :c:func:`python.function.return`, et indique " +"que l'exécution d'une fonction Python est terminée (soit via ``return``, " +"soit via une exception). Elle est uniquement déclenchée pour les fonctions " +"en Python pur (code intermédiaire)." #: ../Doc/howto/instrumentation.rst:383 msgid "Examples" @@ -314,6 +398,10 @@ msgid "" "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" +"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " +"proprement l'exemple précédent de traçage de la hiérarchie des appels de " +"fonctions Python, sans avoir besoin de nommer directement les marqueurs " +"statiques ::" #: ../Doc/howto/instrumentation.rst:403 msgid "" @@ -321,3 +409,7 @@ msgid "" "running CPython code, showing the top 20 most frequently-entered bytecode " "frames, each second, across the whole system:" msgstr "" +"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " +"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " +"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " +"intermédiaire, chaque seconde, sur l'ensemble du système ::" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index cf3ca4500..2511a330b 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -269,7 +269,7 @@ msgstr "" #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "Extraire la version du protocole IP" +msgstr "Extraire la version du protocole IP ::" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index c330ae65f..f12524d87 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -54,7 +54,7 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" #: ../Doc/howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" diff --git a/howto/logging.po b/howto/logging.po index cc9b4765d..9c2df090f 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -1837,7 +1837,7 @@ msgstr "" "exceptions qui se produisent lors de la journalisation en production. Il " "s'agit de sorte que les erreurs qui se produisent lors de la gestion des " "événements de journalisation (telles qu'une mauvaise configuration de la " -"journalisation , une erreur réseau ou d'autres erreurs similaires) ne " +"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " "provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 diff --git a/howto/pyporting.po b/howto/pyporting.po index e68bc9de3..9a6a8ab43 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-09-05 10:42+0200\n" +"Last-Translator: \n" "Language-Team: FRENCH \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.1\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "" +msgstr "Portage de code Python 2 vers Python 3" #: ../Doc/howto/pyporting.rst:0 msgid "author" @@ -24,7 +25,7 @@ msgstr "auteur" #: ../Doc/howto/pyporting.rst:7 msgid "Brett Cannon" -msgstr "" +msgstr "Brett Cannon" #: ../Doc/howto/pyporting.rst:None msgid "Abstract" @@ -37,12 +38,18 @@ msgid "" "Python. This guide is meant to help you figure out how best to support both " "Python 2 & 3 simultaneously." msgstr "" +"Python 3 étant le futur de Python tandis que Python 2 est encore activement " +"utilisé, il est préférable de faire en sorte que votre projet soit " +"disponible pour les deux versions majeures de Python. Ce guide est destiné à " +"vous aider à comprendre comment gérer simultanément Python 2 & 3." #: ../Doc/howto/pyporting.rst:16 msgid "" "If you are looking to port an extension module instead of pure Python code, " "please see :ref:`cporting-howto`." msgstr "" +"Si vous cherchez à porter un module d'extension plutôt que du pur Python, " +"veuillez consulter :ref:`cporting-howto`." #: ../Doc/howto/pyporting.rst:19 msgid "" @@ -50,54 +57,70 @@ msgid "" "came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " "Cannon's `Why Python 3 exists`_." msgstr "" +"Si vous souhaitez lire l'avis d'un développeur principal de Python sur ce " +"qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & A`_ " +"de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon." #: ../Doc/howto/pyporting.rst:23 msgid "" "For help with porting, you can email the python-porting_ mailing list with " "questions." msgstr "" +"Vous pouvez solliciter par courriel l'aide de la liste de diffusion python-" +"porting_ pour vos questions liées au portage." #: ../Doc/howto/pyporting.rst:27 msgid "The Short Explanation" -msgstr "" +msgstr "La version courte" #: ../Doc/howto/pyporting.rst:29 msgid "" "To make your project be single-source Python 2/3 compatible, the basic steps " "are:" msgstr "" +"Afin de rendre votre projet compatible Python 2/3 avec le même code source, " +"les étapes de base sont :" #: ../Doc/howto/pyporting.rst:32 msgid "Only worry about supporting Python 2.7" -msgstr "" +msgstr "Ne se préoccuper que du support de Python 2.7" #: ../Doc/howto/pyporting.rst:33 msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``pip install " "coverage``)" msgstr "" +"S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; ``pip " +"install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116 msgid "Learn the differences between Python 2 & 3" -msgstr "" +msgstr "Apprendre les différences entre Python 2 et 3" #: ../Doc/howto/pyporting.rst:36 msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install " "future``)" msgstr "" +"Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par " +"exemple ``pip install future``)" #: ../Doc/howto/pyporting.rst:37 msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``pip install pylint``)" msgstr "" +"Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre prise " +"en charge de Python 3 (``pip install pylint``)" #: ../Doc/howto/pyporting.rst:39 msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" +"Utiliser `caniusepython3`_ pour déterminer quelles sont, parmi les " +"dépendances que vous utilisez, celles qui bloquent votre utilisation de " +"Python 3 (``pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -105,6 +128,10 @@ msgid "" "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " "help test against multiple versions of Python; ``pip install tox``)" msgstr "" +"Une fois que vos dépendances ne sont plus un obstacle, utiliser " +"l'intégration continue pour s'assurer que votre code demeure compatible " +"Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec " +"plusieurs versions de Python; ``pip install tox``)" #: ../Doc/howto/pyporting.rst:44 msgid "" @@ -112,6 +139,9 @@ msgid "" "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "Python 2 & Python 3)." msgstr "" +"Envisager l'utilisation d'un vérifieur de type statique afin de vous assurer " +"que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par " +"exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)." #: ../Doc/howto/pyporting.rst:50 msgid "Details" @@ -125,6 +155,12 @@ msgid "" "3. Most changes required to support Python 3 lead to cleaner code using " "newer practices even in Python 2 code." msgstr "" +"Un point clé du support simultané de Python 2 et 3 est qu'il vous est " +"possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne sont " +"pas encore compatibles Python 3, vous pouvez moderniser votre code **dès " +"maintenant** pour gérer Python 3. La plupart des modifications nécessaires à " +"la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe " +"plus récente, même dans du code Python 2." #: ../Doc/howto/pyporting.rst:58 msgid "" @@ -134,16 +170,25 @@ msgid "" "lower-level work is now mostly done for you and thus can at least benefit " "from the automated changes immediately." msgstr "" +"Un autre point important est que la modernisation de votre code Python 2 " +"pour le rendre compatible Python 3 est pratiquement automatique. Bien qu'il " +"soit possible d'avoir à effectuer des changements d'API compte-tenu de la " +"clarification de la gestion des données textuelles et binaires dans Python " +"3, le travail de bas niveau est en grande partie fait pour vous et vous " +"pouvez ainsi bénéficiez de ces modifications automatiques immédiatement." #: ../Doc/howto/pyporting.rst:64 msgid "" "Keep those key points in mind while you read on about the details of porting " "your code to support Python 2 & 3 simultaneously." msgstr "" +"Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous " +"concernant le portage de votre code vers une compatibilité simultanée Python " +"2 et 3." #: ../Doc/howto/pyporting.rst:69 msgid "Drop support for Python 2.6 and older" -msgstr "" +msgstr "Abandon de la compatibilité Python 2.6 et antérieures" #: ../Doc/howto/pyporting.rst:71 msgid "" @@ -153,6 +198,12 @@ msgid "" "simultaneously (``pip install six``). Do realize, though, that nearly all " "the projects listed in this HOWTO will not be available to you." msgstr "" +"Bien qu'il soit possible de rendre Python 2.5 compatible avec Python 3, il " +"est **beaucoup** plus simple de n'avoir qu'à travailler avec Python 2.7. Si " +"abandonner Python 2.5 n'est pas une option, alors le projet six_ peut vous " +"aider à gérer simultanément Python 2.5 et 3 (``pip install six``). " +"Néanmoins, soyez conscient que la quasi-totalité des projets listés dans ce " +"guide pratique ne seront pas applicables à votre situation." #: ../Doc/howto/pyporting.rst:77 msgid "" @@ -162,6 +213,12 @@ msgid "" "or have to import a function instead of using a built-in one, but otherwise " "the overall transformation should not feel foreign to you." msgstr "" +"Si vous pouvez ignorer Python 2.5 et antérieur, les changements nécessaires " +"à appliquer à votre code devraient encore ressembler à vos yeux à du code " +"Python idiomatique. Dans le pire cas, vous devrez utiliser une fonction " +"plutôt qu'une méthode dans certains cas, ou bien vous devrez importer une " +"fonction plutôt qu'utiliser une fonction native, mais le reste du temps le " +"code transformé devrait vous rester familier." #: ../Doc/howto/pyporting.rst:83 msgid "" @@ -173,11 +230,22 @@ msgid "" "simply be easier for you if you only support the versions of Python that you " "have to support." msgstr "" +"Mais nous vous conseillons de viser seulement un support de Python 2.7. " +"Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit plus " +"aucun correctif. Cela signifie que **vous** devrez trouver des solutions de " +"contournement aux problèmes que vous rencontrez avec Python 2.6. Il existe " +"en outre des outils mentionnés dans ce guide pratique qui ne supportent pas " +"Python 2.6 (par exemple Pylint_), ce qui sera de plus en plus courant au fil " +"du temps. Il est simplement plus facile pour vous de n'assurer une " +"compatibilité qu'avec les versions de Python que vous avez l'obligation de " +"gérer." #: ../Doc/howto/pyporting.rst:92 msgid "" "Make sure you specify the proper version support in your ``setup.py`` file" msgstr "" +"Assurez vous de spécifier la bonne version supportée dans le fichier ``setup." +"py``" #: ../Doc/howto/pyporting.rst:94 msgid "" @@ -188,10 +256,16 @@ msgid "" "minor version of Python that you do support, e.g. ``Programming Language :: " "Python :: 2.7``." msgstr "" +"Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ " +"spécifiant les versions de Python avec lesquelles vous êtes compatible. " +"Comme votre projet ne supporte pas encore Python 3, vous devriez au moins " +"spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous " +"devriez indiquer chaque version majeure/mineure de Python que vous gérez, " +"par exemple ``Programming Language :: Python :: 2.7``." #: ../Doc/howto/pyporting.rst:103 msgid "Have good test coverage" -msgstr "" +msgstr "Obtenir une bonne couverture de code" #: ../Doc/howto/pyporting.rst:105 msgid "" @@ -204,6 +278,16 @@ msgid "" "get better than 90% coverage). If you don't already have a tool to measure " "test coverage then coverage.py_ is recommended." msgstr "" +"Une fois que votre code est compatible avec la plus ancienne version de " +"Python 2 que vous souhaitez, vous devez vous assurer que votre suite de test " +"a une couverture suffisante. Une bonne règle empirique consiste à avoir " +"suffisamment confiance en la suite de test pour qu'une erreur apparaissant " +"après la réécriture du code par les outils automatiques résulte de bogues de " +"ces derniers et non de votre code. Si vous souhaitez une valeur cible, " +"essayez de dépasser les 80 % de couverture (et ne vous sentez pas coupable " +"si vous trouvez difficile de faire mieux que 90 % de couverture). Si vous ne " +"disposez pas encore d'un outil pour mesurer la couverture de code, coverage." +"py_ est recommandé." #: ../Doc/howto/pyporting.rst:118 msgid "" @@ -215,10 +299,18 @@ msgid "" "and the `Porting to Python 3`_ book (which is free online). There is also a " "handy `cheat sheet`_ from the Python-Future project." msgstr "" +"Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " +"portage vers Python 3 ! Mais afin de comprendre comment votre code va " +"changer et à quoi s'intéresser spécifiquement pendant que vous codez, vous " +"aurez sûrement envie de découvrir quels sont les changements introduits par " +"Python 3 par rapport à Python 2. Pour atteindre cet objectif, les deux " +"meilleurs moyens sont de lire le document `\"What's New\"`_ de chaque " +"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne). " +"Il y a également une `cheat sheet`_ très pratique du projet Python-Future." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" -msgstr "" +msgstr "Mettre à jour votre code" #: ../Doc/howto/pyporting.rst:130 msgid "" @@ -234,6 +326,20 @@ msgid "" "future, it might be best to consider Futurize to begin adjusting to any new " "practices that Python 3 introduces which you are not accustomed to yet." msgstr "" +"Une fois que vous pensez en savoir suffisamment sur les différences entre " +"Python 3 et Python 2, il est temps de mettre à jour votre code ! Vous avez " +"le choix entre deux outils pour porter votre code automatiquement : " +"Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python 3 " +"que vous souhaitez introduire dans votre code. Futurize_ s'efforce " +"d'introduire les idiomes et pratiques de Python 3 dans Python 2, par exemple " +"en réintroduisant le type ``bytes`` de Python 3 de telle sorte que la " +"sémantique soit identique entre les deux versions majeures de Python. En " +"revanche, Modernize_ est plus conservateur et vise un sous-ensemble " +"d'instructions Python 2/3, en s'appuyant directement sur six_ pour la " +"compatibilité. Python 3 étant le futur de Python, il pourrait être " +"préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux nouvelles " +"pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore " +"habitué." #: ../Doc/howto/pyporting.rst:142 msgid "" @@ -246,6 +352,16 @@ msgid "" "transform your application code knowing that any tests which fail is a " "translation failure." msgstr "" +"Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à " +"jour votre code afin qu'il puisse être exécuté par Python 3 tout en " +"maintenant sa compatibilité avec la version de Python 2 dont vous êtes " +"parti. En fonction du niveau de prudence que vous visez, vous pouvez " +"exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement " +"la différence afin de vous assurer que la transformation est exacte. Après " +"avoir transformé votre suite de test et vérifié que tous les tests " +"s'exécutent comme attendu, vous pouvez transformer le code de votre " +"application avec l'assurance que chaque test qui échoue correspond à un " +"échec de traduction." #: ../Doc/howto/pyporting.rst:150 msgid "" @@ -260,6 +376,18 @@ msgid "" "watch out for which can be considered large issues that may be hard to debug " "if not watched for." msgstr "" +"Malheureusement les outils ne peuvent pas automatiser tous les changements " +"requis pour permettre à votre code de s'exécuter sous Python 3 et il y a " +"donc quelques points sur lesquels vous devrez travailler manuellement afin " +"d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent " +"varier en fonction de l'outil utilisé). Lisez la documentation de l'outil " +"que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui " +"peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non) " +"corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le " +"remplacement ``io.open()`` plutôt que la fonction native ``open()`` est " +"inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques " +"points à surveiller qui peuvent réellement être considérés comme des " +"problèmes difficiles à déboguer si vous n'y prêtez pas attention." #: ../Doc/howto/pyporting.rst:162 msgid "Division" @@ -275,16 +403,27 @@ msgid "" "Q`` flag. If you have not been doing this then you will need to go through " "your code and do two things:" msgstr "" +"Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des " +"valeurs ``int`` renvoient un ``float``. Ce changement était en réalité " +"planifié depuis Python 2.2, publié en 2002. Depuis cette date, les " +"utilisateurs ont été encouragés à ajouter ``from __future__ import " +"division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à " +"exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi cette " +"recommandation, vous devrez manuellement modifier votre code et effectuer " +"deux changements :" #: ../Doc/howto/pyporting.rst:172 msgid "Add ``from __future__ import division`` to your files" -msgstr "" +msgstr "Ajouter ``from __future__ import division`` à vos fichiers" #: ../Doc/howto/pyporting.rst:173 msgid "" "Update any division operator as necessary to either use ``//`` to use floor " "division or continue using ``/`` and expect a float" msgstr "" +"Remplacer tous les opérateurs de division par ``//`` pour la division " +"entière, le cas échant, ou utiliser ``/`` et vous attendre à un résultat " +"flottant" #: ../Doc/howto/pyporting.rst:176 msgid "" @@ -293,10 +432,16 @@ msgid "" "then your code would begin to fail (e.g. a user-defined class that uses ``/" "`` to signify some operation but not ``//`` for the same thing or at all)." msgstr "" +"La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " +"automatiquement est que si un objet définit une méthode ``__truediv__`` mais " +"pas de méthode ``__floordiv__``, alors votre code pourrait produire une " +"erreur (par exemple, une classe définie par l'utilisateur qui utilise ``/`` " +"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du " +"tout la même signification, voire n'est pas utilisé du tout)." #: ../Doc/howto/pyporting.rst:183 msgid "Text versus binary data" -msgstr "" +msgstr "Texte et données binaires" #: ../Doc/howto/pyporting.rst:185 msgid "" @@ -309,6 +454,16 @@ msgid "" "supporting multiple languages as APIs wouldn't bother explicitly supporting " "``unicode`` when they claimed text data support." msgstr "" +"Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et " +"pour des données binaires. Malheureusement cet amalgame entre deux concepts " +"différents peut conduire à du code fragile pouvant parfois fonctionner pour " +"les deux types de données et parfois non. Cela a également conduit à des API " +"confuses si les auteurs ne déclaraient pas explicitement que quelque chose " +"qui acceptait ``str`` était compatible avec du texte ou des données binaires " +"et pas un seul des deux types. Cela a compliqué la situation pour les " +"personnes devant gérer plusieurs langages avec des API qui ne se " +"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être " +"compatibles avec des données au format texte." #: ../Doc/howto/pyporting.rst:194 msgid "" @@ -321,6 +476,15 @@ msgid "" "it does mean you might have to now care about when you are using text " "compared to binary data, which is why this cannot be entirely automated." msgstr "" +"Afin de rendre la distinction entre texte et données binaires claire et " +"prononcée, Python 3 a suivi la voie pavée par la plupart des langages créés " +"à l'ère d'Internet et a séparé les types texte et données binaires de telle " +"sorte qu'il ne soit plus possible de les confondre (Python est antérieur à " +"la démocratisation de l'accès à Internet). Cette séparation ne pose pas de " +"problème pour du code ne gérant soit que du texte, soit que des données " +"binaires. Cependant un code source devant gérer les deux doit désormais se " +"préoccuper du type des données manipulées, ce qui explique que ce processus " +"ne peut pas être entièrement automatisé." #: ../Doc/howto/pyporting.rst:203 msgid "" @@ -341,38 +505,57 @@ msgid "" "Python 3 doesn't have the method). Do note that as of Python 3.5 the " "``__mod__`` method was added to the bytes type." msgstr "" +"Pour commencer, vous devrez choisir quelles API travaillent sur du texte et " +"lesquelles travaillent avec des données binaires (il est **fortement** " +"recommandé de ne pas concevoir d'API qui gèrent les deux types compte-tenu " +"de la difficulté supplémentaire que cela induit). Dans Python 2, cela " +"signifie s'assurer que les API recevant du texte en entrée peuvent gérer " +"``unicode`` et celles qui reçoivent des données binaires fonctionnent avec " +"le type ``bytes`` de Python 3 (qui est un sous-ensemble de ``str`` dans " +"Python 2 et opère comme un alias du type ``bytes`` de Python 2). En général, " +"le principal problème consiste à inventorier quelles méthodes existent et " +"opèrent sur quel type dans Python & 3 simultanément (pour le texte, il " +"s'agit de ``unicode`` dans Python 2 et ``str`` dans Python 3, pour le " +"binaire il s'agit de ``str``/``bytes`` dans Python 2 et ``bytes`` dans " +"Python 3). Le tableau ci-dessous liste les méthodes **spécifiques** à chaque " +"type de données dans Python 2 et 3 (par exemple, la méthode ``decode()`` " +"peut être utilisée sur des données binaires équivalentes en Python 2 et 3, " +"mais ne peut pas être utilisée de la même façon sur le type texte en Python " +"2 et 3 car le type ``str`` de Python 3 ne possède pas de telle méthode). " +"Notez que depuis Python 3.5, la méthode ``__mod__`` a été ajoutée au type " +"*bytes*." #: ../Doc/howto/pyporting.rst:220 msgid "**Text data**" -msgstr "" +msgstr "**Format texte**" #: ../Doc/howto/pyporting.rst:220 msgid "**Binary data**" -msgstr "" +msgstr "**Format binaire**" #: ../Doc/howto/pyporting.rst:222 msgid "\\" -msgstr "" +msgstr "\\" #: ../Doc/howto/pyporting.rst:222 msgid "decode" -msgstr "" +msgstr "decode" #: ../Doc/howto/pyporting.rst:224 msgid "encode" -msgstr "" +msgstr "encode" #: ../Doc/howto/pyporting.rst:226 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/howto/pyporting.rst:228 msgid "isdecimal" -msgstr "" +msgstr "isdecimal" #: ../Doc/howto/pyporting.rst:230 msgid "isnumeric" -msgstr "" +msgstr "isnumeric" #: ../Doc/howto/pyporting.rst:233 msgid "" @@ -383,6 +566,14 @@ msgid "" "possible. This allows your code to work with only text internally and thus " "eliminates having to keep track of what type of data you are working with." msgstr "" +"Vous pouvez rendre le problème plus simple à gérer en réalisant les " +"opérations d'encodage et de décodage entre données binaires et texte aux " +"extrémités de votre code. Cela signifie que lorsque vous recevez du texte " +"dans un format binaire, vous devez immédiatement le décoder. À l'inverse si " +"votre code doit transmettre du texte sous forme binaire, encodez-le le plus " +"tard possible. Cela vous permet de ne manipuler que du texte à l'intérieur " +"de votre code et permet de ne pas se préoccuper du type des données sur " +"lesquelles vous travaillez." #: ../Doc/howto/pyporting.rst:240 msgid "" @@ -393,6 +584,14 @@ msgid "" "unspecified literals to be Unicode, but usage has shown it isn't as " "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" msgstr "" +"Le point suivant est de s'assurer que vous savez quelles chaînes de " +"caractères littérales de votre code correspondent à du texte ou à du " +"binaire. Vous devez préfixer par ``b`` tous les littéraux qui représentent " +"des données binaires et par ``u`` les littéraux qui représentent du texte " +"(il existe une importation du module :mod:`__future__` permettant de forcer " +"l'encodage de toutes les chaînes de caractères littérales non spécifiées en " +"Unicode, mais cette pratique s'est avérée moins efficace que l'ajout " +"explicite des préfixe ``b`` et ``u``)." #: ../Doc/howto/pyporting.rst:247 msgid "" @@ -411,6 +610,22 @@ msgid "" "`codecs.open` as that's only necessary for keeping compatibility with Python " "2.5." msgstr "" +"Une conséquence de cette dichotomie est que vous devez être prudents lors de " +"l'ouverture d'un fichier. À moins que vous travailliez sous Windows, il y a " +"des chances pour que vous ne vous soyez jamais préoccupé de spécifier le " +"mode ``b`` lorsque vous ouvrez des fichiers binaires (par exemple ``rb`` " +"pour lire un fichier binaire). Sous Python 3, les fichiers binaire et texte " +"sont distincts et mutuellement incompatibles ; se référer au module :mod:" +"`io` pour plus de détails. Ainsi vous **devez** décider lorsque vous ouvrez " +"un fichier si vous y accéderez en mode binaire (ce qui permet de lire et " +"écrire des données binaires) ou en mode texte (ce qui permet de lire et " +"écrire du texte). Vous devez également utiliser :func:`io.open` pour ouvrir " +"des fichiers plutôt que la fonction native :func:`open` étant donné que le " +"module :mod:`io` est cohérent de Python 2 à 3, ce qui n'est pas vrai pour la " +"fonction :func:`open` (en Python 3, il s'agit en réalité de :func:`io." +"open`). Ne cherchez pas à appliquer l'ancienne pratique consistant à " +"utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une " +"compatibilité avec Python 2.5." #: ../Doc/howto/pyporting.rst:261 msgid "" @@ -424,6 +639,16 @@ msgid "" "back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "representation of the bytes object: ``str(b'3') == \"b'3'\"``." msgstr "" +"Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique " +"différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à " +"``bytes`` sous Python 2 produit une représentation de cet entier en chaîne " +"de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument " +"entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier " +"spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. " +"La même prudence est nécessaire lorsque vous passez un objet *bytes* à " +"``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : " +"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en " +"chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``." #: ../Doc/howto/pyporting.rst:271 msgid "" @@ -436,14 +661,25 @@ msgid "" "``six.indexbytes()`` which will return an integer like in Python 3: ``six." "indexbytes(b'123', 1)``." msgstr "" +"Enfin, l'indiçage des données binaires exige une manipulation prudente (bien " +"que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention " +"particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 " +"``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une " +"collection de nombres en binaire, Python 3 renvoie la valeur entière de " +"l'octet indicé. Mais en Python 2, étant donné que ``bytes == str``, " +"l'indiçage renvoie une tranche de longueur 1 de *bytes*. Le projet six_ " +"dispose d'une fonction appelée ``six.indexbytes()`` qui renvoie un entier " +"comme en Python 3 : ``six.indexbytes(b'123', 1)``." #: ../Doc/howto/pyporting.rst:280 msgid "To summarize:" -msgstr "" +msgstr "Pour résumer :" #: ../Doc/howto/pyporting.rst:282 msgid "Decide which of your APIs take text and which take binary data" msgstr "" +"Décidez lesquelles de vos API travaillent sur du texte et lesquelles " +"travaillent sur des données binaires" #: ../Doc/howto/pyporting.rst:283 msgid "" @@ -451,32 +687,43 @@ msgid "" "and code for binary data works with ``bytes`` in Python 2 (see the table " "above for what methods you cannot use for each type)" msgstr "" +"Assurez vous que votre code travaillant sur du texte fonctionne aussi avec " +"le type ``unicode`` et que le code travaillant sur du binaire fonctionne " +"avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus pour la liste " +"des méthodes utilisables par chaque type)" #: ../Doc/howto/pyporting.rst:286 msgid "" "Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " "prefix" msgstr "" +"Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de " +"caractères littérales par ``u``" #: ../Doc/howto/pyporting.rst:288 msgid "" "Decode binary data to text as soon as possible, encode text as binary data " "as late as possible" msgstr "" +"Décodez les données binaires en texte dès que possible, encodez votre texte " +"au format binaire le plus tard possible" #: ../Doc/howto/pyporting.rst:290 msgid "" "Open files using :func:`io.open` and make sure to specify the ``b`` mode " "when appropriate" msgstr "" +"Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de " +"spécifier le mode ``b`` le cas échéant" #: ../Doc/howto/pyporting.rst:292 msgid "Be careful when indexing into binary data" -msgstr "" +msgstr "Utilisez avec prudence l'indiçage sur des données binaires" #: ../Doc/howto/pyporting.rst:296 msgid "Use feature detection instead of version detection" msgstr "" +"Utilisez la détection de fonctionnalités plutôt que la détection de version" #: ../Doc/howto/pyporting.rst:298 msgid "" @@ -487,6 +734,13 @@ msgid "" "version check be against Python 2 and not Python 3. To help explain this, " "let's look at an example." msgstr "" +"Vous rencontrerez inévitablement du code devant décider quoi faire en " +"fonction de la version de Python qui s'exécute. La meilleure façon de gérer " +"ce cas est de détecter si les fonctionnalités dont vous avez besoin sont " +"gérées par la version de Python sous laquelle le code s'exécute. Si pour " +"certaines raisons cela ne fonctionne pas, alors vous devez tester si votre " +"version est Python 2 et non Python 3. Afin de clarifier cette pratique, " +"voici un exemple." #: ../Doc/howto/pyporting.rst:305 msgid "" @@ -495,6 +749,11 @@ msgid "" "Python 2 through importlib2_ on PyPI. You might be tempted to write code to " "access e.g. the ``importlib.abc`` module by doing the following::" msgstr "" +"Supposons que vous avez besoin d'accéder à une fonctionnalité de importlib_ " +"qui n'est disponible dans la bibliothèque standard de Python que depuis la " +"version 3.3 et est disponible pour Python 2 via le module importlib2_ sur " +"PyPI. Vous pourriez être tenté d'écrire un code qui accède, par exemple, au " +"module ``importlib.abc`` avec l'approche suivante : ::" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -503,6 +762,10 @@ msgid "" "assume that future Python versions will be more compatible with Python 3 " "than Python 2::" msgstr "" +"Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " +"Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " +"Python 3 et de supposer que les versions futures de Python 2 seront plus " +"compatibles avec Python 3 qu'avec Python 2 ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -510,10 +773,14 @@ msgid "" "rely on feature detection. That avoids any potential issues of getting the " "version detection wrong and helps keep you future-compatible::" msgstr "" +"Néanmoins la meilleure solution est de ne pas chercher à déterminer la " +"version de Python mais plutôt à détecter les fonctionnalités disponibles. " +"Cela évite les problèmes potentiels liés aux erreurs de détection de version " +"et facilite la compatibilité future ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" -msgstr "" +msgstr "Prévenir les régressions de compatibilité" #: ../Doc/howto/pyporting.rst:342 msgid "" @@ -522,12 +789,19 @@ msgid "" "Python 3. This is especially true if you have a dependency which is blocking " "you from actually running under Python 3 at the moment." msgstr "" +"Une fois votre code traduit pour être compatible avec Python 3, vous devez " +"vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous " +"Python 3. Ceci est particulièrement important si une de vos dépendances vous " +"empêche de réellement exécuter le code sous Python 3 pour le moment." #: ../Doc/howto/pyporting.rst:347 msgid "" "To help with staying compatible, any new modules you create should have at " "least the following block of code at the top of it::" msgstr "" +"Afin de vous aider à maintenir la compatibilité, nous préconisons que tous " +"les nouveaux modules que vous créez aient au moins le bloc de code suivant " +"en en-tête ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -536,6 +810,11 @@ msgid "" "warnings into errors with ``-Werror`` then you can make sure that you don't " "accidentally miss a warning." msgstr "" +"Vous pouvez également lancer Python 2 avec le paramètre ``-3`` afin d'être " +"alerté en cas de divers problèmes de compatibilité que votre code déclenche " +"durant son exécution. Si vous transformez les avertissements en erreur avec " +"``-Werror``, vous pouvez être certain que ne passez pas accidentellement à " +"côté d'un avertissement." #: ../Doc/howto/pyporting.rst:359 msgid "" @@ -546,10 +825,17 @@ msgid "" "does require you only support Python 2.7 and Python 3.4 or newer as that is " "Pylint's minimum Python version support." msgstr "" +"Vous pouvez également utiliser le projet Pylint_ et son option ``--py3k`` " +"afin de modifier votre code pour recevoir des avertissements lorsque celui-" +"ci dévie de la compatibilité Python 3. Cela vous évite par ailleurs " +"d'appliquer Modernize_ ou Futurize_ sur votre code régulièrement pour " +"détecter des régressions liées à la compatibilité. Cependant cela nécessite " +"de votre part le support de Python 2.7 et Python 3.4 ou ultérieur étant " +"donné qu'il s'agit de la version minimale gérée par Pylint." #: ../Doc/howto/pyporting.rst:368 msgid "Check which dependencies block your transition" -msgstr "" +msgstr "Vérifier quelles dépendances empêchent la migration" #: ../Doc/howto/pyporting.rst:370 msgid "" @@ -560,6 +846,12 @@ msgid "" "is both a command-line tool as well as a web interface at https://" "caniusepython3.com." msgstr "" +"**Après** avoir rendu votre code compatible avec Python 3, vous devez " +"commencer à vous intéresser au portage de vos dépendances. Le projet " +"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets " +"sont bloquants dans votre support de Python 3, directement ou indirectement. " +"Il existe un outil en ligne de commande ainsi qu'une interface web : https://" +"caniusepython3.com." #: ../Doc/howto/pyporting.rst:377 msgid "" @@ -569,10 +861,17 @@ msgid "" "manually check your dependencies and to be notified quickly when you can " "start running on Python 3." msgstr "" +"Le projet fournit également du code intégrable dans votre suite de test qui " +"déclenchera un échec de test lorsque plus aucune de vos dépendances n'est " +"bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à " +"vérifier manuellement vos dépendances et d'être notifié rapidement quand " +"vous pouvez exécuter votre application avec Python 3." #: ../Doc/howto/pyporting.rst:384 msgid "Update your ``setup.py`` file to denote Python 3 compatibility" msgstr "" +"Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité " +"avec Python 3" #: ../Doc/howto/pyporting.rst:386 msgid "" @@ -582,10 +881,16 @@ msgid "" "that you support Python 2 **and** 3. Ideally you will also want to add " "classifiers for each major/minor version of Python you now support." msgstr "" +"Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour " +"vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language :: " +"Python :: 3`` et non seulement le support de Python 2. Cela signifiera à " +"quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal " +"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de " +"Python que vous supportez désormais." #: ../Doc/howto/pyporting.rst:394 msgid "Use continuous integration to stay compatible" -msgstr "" +msgstr "Utiliser l'intégration continue pour maintenir la compatibilité" #: ../Doc/howto/pyporting.rst:396 msgid "" @@ -595,6 +900,12 @@ msgid "" "integrate tox with your continuous integration system so that you never " "accidentally break Python 2 or 3 support." msgstr "" +"Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous " +"devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_ " +"est vraisemblablement le meilleur outil pour exécuter vos tests avec " +"plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre " +"système d'intégration continue afin de ne jamais accidentellement casser " +"votre gestion de Python 2 ou 3." #: ../Doc/howto/pyporting.rst:402 msgid "" @@ -607,6 +918,15 @@ msgid "" "these kinds of comparisons occur, making the mistake much easier to track " "down." msgstr "" +"Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python 3 " +"afin de déclencher une exception lorsque vous comparez des *bytes* à des " +"chaînes de caractères ou à un entier (cette deuxième possibilité est " +"disponible à partir de Python 3.5). Par défaut, des comparaisons entre types " +"différents renvoient simplement ``False`` mais si vous avez fait une erreur " +"dans votre séparation de la gestion texte/données binaires ou votre indiçage " +"des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son " +"identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 msgid "" @@ -615,10 +935,15 @@ msgid "" "don't accidentally break Python 2 or 3 compatibility regardless of which " "version you typically run your tests under while developing." msgstr "" +"Et c'est à peu près tout ! Une fois ceci fait, votre code source est " +"compatible avec Python 2 et 3 simultanément. Votre suite de test est " +"également en place de telle sorte que vous ne cassiez pas la compatibilité " +"Python 2 ou 3 indépendamment de la version que vous utilisez pendant le " +"développement." #: ../Doc/howto/pyporting.rst:417 msgid "Consider using optional static type checking" -msgstr "" +msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel" #: ../Doc/howto/pyporting.rst:419 msgid "" @@ -632,3 +957,14 @@ msgid "" "binary data, helping to make sure everything functions as expected in both " "versions of Python." msgstr "" +"Une autre façon de faciliter le portage de votre code est d'utiliser un " +"vérificateur de type statique comme mypy_ ou pytype_. Ces outils peuvent " +"être utilisés pour analyser votre code comme s'il était exécuté sous Python " +"2, puis une seconde fois comme s'il était exécuté sous Python 3. " +"L'utilisation double d'un vérificateur de type statique de cette façon " +"permet de détecter si, par exemple, vous faites une utilisation inappropriée " +"des types de données binaires dans une version de Python par rapport à " +"l'autre. Si vous ajoutez les indices optionnels de typage à votre code, vous " +"pouvez alors explicitement déclarer que vos API attendent des données " +"binaires ou du texte, ce qui facilite alors la vérification du comportement " +"de votre code dans les deux versions de Python." diff --git a/howto/regex.po b/howto/regex.po index b90af9bc1..c35905a75 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -1397,7 +1397,7 @@ msgid "" "it is to read? ::" msgstr "" "Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " -"constater qu'elle est beaucoup plus facile à lire ::" +"constater qu'elle est beaucoup plus facile à lire ::" #: ../Doc/howto/regex.rst:660 msgid "Without the verbose setting, the RE would look like this::" @@ -2655,7 +2655,7 @@ msgstr "" #: ../Doc/howto/regex.rst:1367 msgid "This is far more readable than::" -msgstr "Ceci est beaucoup plus lisible que::" +msgstr "Ceci est beaucoup plus lisible que ::" #: ../Doc/howto/regex.rst:1373 msgid "Feedback" diff --git a/howto/sockets.po b/howto/sockets.po index 8c831bd85..26706127d 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -15,7 +15,7 @@ msgstr "" #: ../Doc/howto/sockets.rst:5 msgid "Socket Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation avec les *sockets*" #: ../Doc/howto/sockets.rst:0 msgid "Author" @@ -38,6 +38,12 @@ msgid "" "a lot of them), but I hope it will give you enough background to begin using " "them decently." msgstr "" +"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " +"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " +"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " +"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " +"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " +"d'informations pour commencer à les utiliser correctement." #: ../Doc/howto/sockets.rst:20 msgid "Sockets" @@ -76,6 +82,14 @@ msgid "" "sockets exclusively; the web server it's talking to uses both \"server\" " "sockets and \"client\" sockets." msgstr "" +"Une partie de la difficulté à comprendre ces choses est que « connecteur » " +"peut désigner plusieurs choses très légèrement différentes, selon le " +"contexte. Faisons donc d'abord une distinction entre un connecteur " +"« client » — point final d'une conversation — et un connecteur « serveur », " +"qui ressemble davantage à un standardiste. L'application cliente (votre " +"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " +"le serveur web avec lequel elle parle utilise à la fois des connecteurs " +"« serveur » et des connecteurs « client »." #: ../Doc/howto/sockets.rst:40 msgid "History" @@ -88,6 +102,11 @@ msgid "" "other forms of IPC that are faster, but for cross-platform communication, " "sockets are about the only game in town." msgstr "" +"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " +"les connecteurs sont de loin les plus populaires. Sur une plate-forme " +"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " +"mais pour la communication entre plates-formes, les connecteurs sont à peu " +"près la seule solution valable." #: ../Doc/howto/sockets.rst:47 msgid "" @@ -96,6 +115,11 @@ msgid "" "of sockets with INET makes talking to arbitrary machines around the world " "unbelievably easy (at least compared to other schemes)." msgstr "" +"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " +"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " +"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " +"avec n’importe quelle machine dans le monde entier incroyablement facile (du " +"moins par rapport à d'autres systèmes)." #: ../Doc/howto/sockets.rst:54 msgid "Creating a Socket" @@ -106,6 +130,8 @@ msgid "" "Roughly speaking, when you clicked on the link that brought you to this " "page, your browser did something like the following::" msgstr "" +"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " +"page, votre navigateur a fait quelque chose comme ceci ::" #: ../Doc/howto/sockets.rst:64 msgid "" @@ -114,12 +140,19 @@ msgid "" "then be destroyed. That's right, destroyed. Client sockets are normally only " "used for one exchange (or a small set of sequential exchanges)." msgstr "" +"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " +"utilisé pour envoyer une requête demandant le texte de la page. Le même " +"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " +"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " +"échange (ou un petit ensemble d'échanges séquentiels)." #: ../Doc/howto/sockets.rst:70 msgid "" "What happens in the web server is a bit more complex. First, the web server " "creates a \"server socket\"::" msgstr "" +"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " +"le serveur web crée un « connecteur serveur » ::" #: ../Doc/howto/sockets.rst:80 msgid "" @@ -164,6 +197,8 @@ msgid "" "Now that we have a \"server\" socket, listening on port 80, we can enter the " "mainloop of the web server::" msgstr "" +"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " +"80, nous pouvons entrer dans la boucle principale du serveur web ::" #: ../Doc/howto/sockets.rst:106 msgid "" @@ -180,6 +215,20 @@ msgid "" "The two \"clients\" are free to chat it up - they are using some dynamically " "allocated port which will be recycled when the conversation ends." msgstr "" +"Il y a en fait trois façons générales de faire fonctionner cette boucle : " +"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " +"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " +"application pour utiliser des connecteurs non bloquants, et multiplexer " +"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " +"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " +"importante à comprendre maintenant est la suivante : c'est *tout* ce que " +"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " +"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " +"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " +"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " +"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " +"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " +"port alloué dynamiquement qui sera recyclé à la fin de la conversation." #: ../Doc/howto/sockets.rst:121 msgid "IPC" @@ -205,10 +254,12 @@ msgid "" "The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " "API." msgstr "" +"Le :mod:`multiprocessing` intègre de l’IPC multiplateforme dans une API de " +"plus haut niveau." #: ../Doc/howto/sockets.rst:134 msgid "Using a Socket" -msgstr "" +msgstr "Utilisation d'un connecteur" #: ../Doc/howto/sockets.rst:136 msgid "" @@ -220,6 +271,14 @@ msgid "" "in a request, or perhaps a signon. But that's a design decision - it's not a " "rule of sockets." msgstr "" +"La première chose à noter, c'est que la prise « client » du navigateur web " +"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" +"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " +"autrement, *en tant que concepteur, vous devrez décider quelles sont les " +"règles d'étiquette pour une conversation*. Normalement, la connexion via " +"``connect`` lance la conversation en envoyant une demande, ou peut-être un " +"signe. Mais c'est une décision de conception — ce n'est pas une règle des " +"connecteurs." #: ../Doc/howto/sockets.rst:143 msgid "" @@ -232,6 +291,16 @@ msgid "" "reply. Without a ``flush`` in there, you may wait forever for the reply, " "because the request may still be in your output buffer." msgstr "" +"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " +"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " +"connecteur client en une bête imitant un fichier et utiliser ``read`` et " +"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " +"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " +"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " +"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " +"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " +"pouvez attendre la réponse pour toujours, parce que la requête peut encore " +"être dans votre mémoire tampon de sortie." #: ../Doc/howto/sockets.rst:152 msgid "" @@ -243,6 +312,14 @@ msgid "" "you how many bytes they handled. It is *your* responsibility to call them " "again until your message has been completely dealt with." msgstr "" +"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " +"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " +"pas nécessairement tous les octets que vous leur passez (ou que vous " +"attendez d'eux), car leur principal objectif est de gérer les tampons " +"réseau. En général, leur exécution se termine lorsque les tampons réseau " +"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " +"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " +"les rappeler jusqu'à ce que votre message ait été complètement traité." #: ../Doc/howto/sockets.rst:160 msgid "" @@ -251,6 +328,10 @@ msgid "" "data on this connection. Ever. You may be able to send data successfully; " "I'll talk more about this later." msgstr "" +"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " +"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " +"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " +"succès. J’en parlerai plus tard." #: ../Doc/howto/sockets.rst:165 msgid "" @@ -306,6 +387,12 @@ msgid "" "gets more complex. (And in C, it's not much worse, except you can't use " "``strlen`` if the message has embedded ``\\0``\\ s.)" msgstr "" +"Le code d'envoi ici est utilisable pour presque tous les systèmes de " +"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " +"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " +"contient des caractères ``\\0``). C'est surtout le code de réception qui " +"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " +"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." #: ../Doc/howto/sockets.rst:223 msgid "" @@ -317,6 +404,15 @@ msgid "" "chunk size, (4096 or 8192 is frequently a good match for network buffer " "sizes), and scanning what you've received for a delimiter." msgstr "" +"Le plus simple est de faire du premier caractère du message un indicateur du " +"type de message, et de faire en sorte que le type détermine la longueur. " +"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " +"ce premier caractère afin de pouvoir déterminer la longueur, et le second " +"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " +"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " +"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " +"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " +"délimiteur." #: ../Doc/howto/sockets.rst:231 msgid "" @@ -326,6 +422,12 @@ msgid "" "of a following message. You'll need to put that aside and hold onto it, " "until it's needed." msgstr "" +"Une subtilité dont il faut être conscient : si votre protocole de " +"conversation permet de renvoyer plusieurs messages les uns à la suite des " +"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " +"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " +"message suivant. Vous devrez alors le mettre de côté et le conserver, " +"jusqu'à ce que vous en ayez besoin." #: ../Doc/howto/sockets.rst:237 msgid "" @@ -338,6 +440,16 @@ msgid "" "not always manage to get rid of everything in one pass. And despite having " "read this, you will eventually get bit by it!" msgstr "" +"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " +"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " +"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " +"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " +"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " +"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " +"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " +"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " +"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " +"avertissement, vous finirez par vous faire avoir par cette subtilité !" #: ../Doc/howto/sockets.rst:246 msgid "" @@ -345,6 +457,10 @@ msgid "" "competitive position), these enhancements are left as an exercise for the " "reader. Lets move on to cleaning up." msgstr "" +"Pour garder une longueur raisonnable à cette page, pour forger votre " +"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " +"ces améliorations ne seront pas abordées et sont laissées en exercice au " +"lecteur. Passons maintenant au nettoyage." #: ../Doc/howto/sockets.rst:252 msgid "Binary Data" @@ -362,6 +478,18 @@ msgid "" "order is host order, these do nothing, but where the machine is byte-" "reversed, these swap the bytes around appropriately." msgstr "" +"Il est parfaitement possible d’envoyer des données binaires sur un " +"connecteur. Le gros problème est que toutes les machines n’utilisent pas les " +"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " +"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et " +"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 " +"00. Les bibliothèques de connecteurs ont des appels pour convertir des " +"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie " +"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie " +"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du " +"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine " +"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière " +"appropriée." #: ../Doc/howto/sockets.rst:264 msgid "" @@ -371,6 +499,13 @@ msgid "" "The string \"0\" would be two bytes, while binary is four. Of course, this " "doesn't fit well with fixed-length messages. Decisions, decisions." msgstr "" +"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " +"données binaires est souvent plus compacte que la représentation binaire. " +"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur " +"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " +"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " +"très bien avec les messages de longueur fixe. Ah, les décisions, les " +"décisions…" #: ../Doc/howto/sockets.rst:272 msgid "Disconnecting" @@ -387,6 +522,15 @@ msgid "" "same as ``shutdown(); close()``. So in most situations, an explicit " "``shutdown`` is not needed." msgstr "" +"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " +"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " +"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " +"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " +"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " +"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " +"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " +"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " +"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." #: ../Doc/howto/sockets.rst:282 msgid "" @@ -397,6 +541,13 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" +"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " +"de type HTTP. Le client envoie une requête et effectue ensuite un " +"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " +"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " +"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " +"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " +"effet, le client était encore en train de recevoir." #: ../Doc/howto/sockets.rst:289 msgid "" @@ -407,10 +558,17 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" +"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " +"connecteur est collecté par le ramasse-miette, il effectue automatiquement " +"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " +"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " +"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " +"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " +"connecteurs quand vous avez terminé *s’il vous plait*." #: ../Doc/howto/sockets.rst:297 msgid "When Sockets Die" -msgstr "" +msgstr "Quand les connecteurs meurent" #: ../Doc/howto/sockets.rst:299 msgid "" @@ -426,10 +584,23 @@ msgid "" "automatic recycling of resources. In other words, if you do manage to kill " "the thread, your whole process is likely to be screwed up." msgstr "" +"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " +"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " +"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " +"est un protocole fiable, et il attendra très, très longtemps avant " +"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " +"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " +"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " +"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " +"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " +"fils sont plus efficients que les processus, c'est en partie parce qu'ils " +"évitent les coûts significatifs liés au recyclage automatique des " +"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " +"processus risque d'être foutu." #: ../Doc/howto/sockets.rst:313 msgid "Non-blocking Sockets" -msgstr "" +msgstr "Connecteurs non bloquants" #: ../Doc/howto/sockets.rst:315 msgid "" @@ -469,6 +640,13 @@ msgid "" "will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " "and do it right." msgstr "" +"La différence majeure de fonctionnement est que `send``, ``recv``, " +"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " +"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " +"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " +"croyez pas, essayez un jour. Votre application va grossir, boguer et " +"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " +"le départ et faisons les choses correctement." #: ../Doc/howto/sockets.rst:334 msgid "Use ``select``." @@ -494,6 +672,15 @@ msgid "" "generally a sensible thing to do - give it a nice long timeout (say a " "minute) unless you have good reason to do otherwise." msgstr "" +"Vous passez à ``select`` trois listes : la première contient tous les " +"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " +"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " +"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " +"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " +"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " +"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " +"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " +"ne pas le faire." #: ../Doc/howto/sockets.rst:355 msgid "" @@ -501,6 +688,10 @@ msgid "" "actually readable, writable and in error. Each of these lists is a subset " "(possibly empty) of the corresponding list you passed in." msgstr "" +"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " +"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " +"est un sous-ensemble (éventuellement vide) de la liste correspondante que " +"vous avez transmise." #: ../Doc/howto/sockets.rst:359 msgid "" diff --git a/howto/sorting.po b/howto/sorting.po index 48ee50342..9ad35fa82 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -62,7 +62,7 @@ msgid "" "It returns a new sorted list::" msgstr "" "Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" -"func:`sorted`. Elle renvoie une nouvelle liste triée : ::" +"func:`sorted`. Elle renvoie une nouvelle liste triée ::" #: ../Doc/howto/sorting.rst:26 msgid "" @@ -365,7 +365,7 @@ msgstr "" "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " "survenir quand des utilisateurs fournissent une fonction de comparaison et " "qu'il faut convertir cette fonction en une fonction-clef. La fonction " -"d'encapsulation suivante rend cela plus facile à faire : ::" +"d'encapsulation suivante rend cela plus facile à faire ::" #: ../Doc/howto/sorting.rst:245 msgid "To convert to a key function, just wrap the old comparison function:" @@ -414,7 +414,7 @@ msgstr "" "Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " "lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " "facile d'ajouter un ordre de tri standard à une classe en définissant sa " -"méthode :meth:`__lt__` : ::" +"méthode :meth:`__lt__` ::" #: ../Doc/howto/sorting.rst:285 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index ff6aedfc8..ea8483f11 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2019-06-08 10:54+0200\n" +"PO-Revision-Date: 2019-09-03 13:11+0200\n" "Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -33,7 +33,7 @@ msgid "" "representing textual data, and explains various problems that people " "commonly encounter when trying to work with Unicode." msgstr "" -"Ce HOWTO décrit la gestion de la spécification Unicode par Python pour les " +"Ce guide décrit la gestion de la spécification Unicode par Python pour les " "données textuelles et explique les différents problèmes généralement " "rencontrés par les utilisateurs qui travaillent avec Unicode." @@ -59,7 +59,7 @@ msgstr "" "Les programmes d'aujourd'hui doivent être capables de traiter une grande " "variété de caractères. Les applications sont souvent internationalisées pour " "afficher les messages et les résultats dans une variété de langues " -"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " +"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " "d'afficher un message d'erreur en anglais, français, japonais, hébreu ou " "russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues " "et peut également inclure une variété de symboles émoji. Le type de chaîne " @@ -93,8 +93,8 @@ msgstr "" "« B », « C », etc. sont tous des caractères différents. Il en va de même " "pour « È » et « Í ». Les caractères varient selon la langue ou le contexte " "dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain " -"Un » (*Roman Numeral One*) , « Ⅰ », qui est séparé de la lettre majuscule " -"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " +"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule " +"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " "différents qui ont des significations différentes." #: ../Doc/howto/unicode.rst:42 @@ -108,7 +108,7 @@ msgstr "" "Le standard Unicode décrit comment les caractères sont représentés par les " "**points de code**. Une valeur de point de code est un nombre entier compris " "entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs, avec environ " -"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " +"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " "document, un point de code est écrit en utilisant la notation ``U+265E`` " "pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)." @@ -118,7 +118,7 @@ msgid "" "corresponding code points:" msgstr "" "La standard Unicode contient de nombreux tableaux contenant la liste des " -"caractères et des points de code correspondants :" +"caractères et des points de code correspondants :" #: ../Doc/howto/unicode.rst:70 msgid "" @@ -129,9 +129,9 @@ msgid "" "and characters will sometimes be forgotten." msgstr "" "À proprement parler, ces définitions laissent entendre qu'il est inutile de " -"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " -"représente un caractère particulier ; dans ce cas, il représente le " -"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " +"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " +"représente un caractère particulier ; dans ce cas, il représente le " +"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " "distinction entre les points de code et les caractères sera parfois oubliée." #: ../Doc/howto/unicode.rst:77 @@ -147,7 +147,7 @@ msgstr "" "d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " "exemple, est deux traits diagonaux et un trait horizontal, bien que les " "détails exacts dépendent de la police utilisée. La plupart du code Python " -"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " "est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " "des polices d’un terminal." @@ -164,8 +164,8 @@ msgid "" "rules for translating a Unicode string into a sequence of bytes are called a " "**character encoding**, or just an **encoding**." msgstr "" -"Pour résumer la section précédente : une chaîne Unicode est une séquence de " -"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " +"Pour résumer la section précédente : une chaîne Unicode est une séquence de " +"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " "décimal). Cette séquence de points de code doit être stockée en mémoire sous " "la forme d'un ensemble de **unités de code**, et les **unités de code** sont " "ensuite transposées en octets de 8 bits. Les règles de traduction d'une " @@ -180,8 +180,8 @@ msgid "" msgstr "" "Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " "bits comme unité de code, puis l'utilisation de la représentation des " -"entiers 32 bits par le CPU. Dans cette représentation, la chaîne \"Python\" " -"ressemblerait à ceci :" +"entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » " +"ressemblerait à ceci :" #: ../Doc/howto/unicode.rst:106 msgid "" @@ -194,7 +194,7 @@ msgstr "" #: ../Doc/howto/unicode.rst:109 msgid "It's not portable; different processors order the bytes differently." msgstr "" -"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " "différemment." #: ../Doc/howto/unicode.rst:111 @@ -207,10 +207,10 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" -"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " "points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " "occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " -"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " "L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " "ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " "généralement pas si grandes que ça), mais l'accroissement de notre " @@ -261,7 +261,7 @@ msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" -"Si le point de code est >= 128, il est transformé en une séquence de deux, " +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " "trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " "et 255." @@ -282,7 +282,7 @@ msgid "" "end-of-string markers." msgstr "" "Une chaîne Unicode est transformée en une séquence d’octets qui contient des " -"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+000000). " +"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+0000). " "Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions " "C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets " "zéro signifient forcément la fin de chaîne." @@ -318,7 +318,7 @@ msgid "" "oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " "varies depending on the hardware on which the string was encoded." msgstr "" -"UTF-8 est un encodage orienté octets. L'encodage spécifie que chaque " +"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque " "caractère est représenté par une séquence spécifique d'un ou plusieurs " "octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent " "survenir avec les encodages orientés entiers (*integer*) ou orientés mots " @@ -340,7 +340,7 @@ msgid "" msgstr "" "Le site du `Consortium Unicode `_, en anglais, a des " "diagrammes de caractères, un glossaire et des versions PDF de la " -"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " "`chronologie `_ de l’origine et du " "développement de l’Unicode est également disponible sur le site." @@ -377,7 +377,7 @@ msgstr "" "com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-" "positively-must-know-about-unicode-and-character-sets-no-excuses/>`_ a été " "écrit par Joel Spolsky. Si cette présente introduction ne vous a pas " -"clarifié les choses, vous devriez essayer de lire cet article là avant de " +"clarifié les choses, vous devriez essayer de lire cet article-là avant de " "continuer." #: ../Doc/howto/unicode.rst:177 @@ -386,8 +386,8 @@ msgid "" "encoding `_\" and `UTF-8 " "`_, for example." msgstr "" -"Les pages Wikipédia sont souvent utiles ; voir les pages pour \"`Codage des " -"caractères `_\" et " +"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " +"caractères `_ » et " "`UTF-8 `_, par exemple." #: ../Doc/howto/unicode.rst:183 @@ -413,7 +413,7 @@ msgid "" "``'unicode rocks!'``, or the triple-quoted string syntax is stored as " "Unicode." msgstr "" -"\"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " +"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " "Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode " "déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " "est enregistrée comme Unicode." @@ -430,7 +430,7 @@ msgstr "" msgid "" "Side note: Python 3 also supports using Unicode characters in identifiers::" msgstr "" -"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" #: ../Doc/howto/unicode.rst:211 msgid "" @@ -443,8 +443,8 @@ msgstr "" "si vous voulez garder le code source uniquement en ASCII pour une raison " "quelconque, vous pouvez également utiliser des séquences d'échappement dans " "les littéraux de chaîne (en fonction de votre système, il se peut que vous " -"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence " -"d'échappement ``\\u...``) ::" +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" #: ../Doc/howto/unicode.rst:223 msgid "" @@ -453,7 +453,7 @@ msgid "" "``UTF-8``, and optionally an *errors* argument." msgstr "" "De plus, une chaîne de caractères peut être créée en utilisant la méthode :" -"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " "argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " "*errors*." @@ -469,11 +469,11 @@ msgid "" msgstr "" "L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " "pas être convertie selon les règles de l'encodage. Les valeurs autorisées " -"pour cet argument sont ``'strict'`` (\"strict\" : lève une exception :exc:" -"`UnicodeDecodeError`) , ``'replace'`` (\"remplacer\" : utilise ``U+FFFD``, " -"``REPLACEMENT CARACTER``), ``'ignore'`` (\"ignorer\" : n'inclut pas le " -"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (\"remplacer " -"avec antislash\" : insère une séquence d’échappement ``\\xNN``). Les " +"pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" +"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " +"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " +"avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " "exemples suivants illustrent les différences ::" #: ../Doc/howto/unicode.rst:247 @@ -486,9 +486,9 @@ msgid "" msgstr "" "Les encodages sont spécifiés sous forme de chaînes de caractères contenant " "le nom de l'encodage. Python est livré avec une centaine d'encodages " -"différents ; voir la référence de la bibliothèque Python sur les :ref:" +"différents ; voir la référence de la bibliothèque Python sur les :ref:" "`encodages standards ` pour une liste. Certains " -"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " +"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " "et ``'8859'`` sont tous synonymes du même encodage." #: ../Doc/howto/unicode.rst:253 @@ -554,9 +554,9 @@ msgstr "" "disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " "nouveaux encodages nécessite également de comprendre le module :mod:" "`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " -"ce module sont généralement de trop bas-niveau pour être confortables et " +"ce module sont généralement de bas-niveau pour être facilement utilisées et " "l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " -"module ne sera pas couvert dans ce HOWTO." +"module ne sera pas couvert dans ce guide." #: ../Doc/howto/unicode.rst:309 msgid "Unicode Literals in Python Source Code" @@ -571,7 +571,7 @@ msgid "" msgstr "" "Dans le code source Python, des points de code Unicode spécifiques peuvent " "être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " -"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" "\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" #: ../Doc/howto/unicode.rst:323 @@ -586,7 +586,7 @@ msgstr "" "à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " "beaucoup de caractères accentués, comme c'est le cas dans un programme avec " "des messages en français ou dans une autre langue utilisant des lettres " -"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " "l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." #: ../Doc/howto/unicode.rst:329 @@ -597,8 +597,8 @@ msgid "" "characters used at runtime." msgstr "" "Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " -"naturel de votre langue. Vous pourriez alors éditer le code source de " -"Python avec votre éditeur favori qui affiche les caractères accentués " +"naturel de votre langue. Vous pourriez alors éditer le code source de Python " +"avec votre éditeur favori qui affiche les caractères accentués " "naturellement, et a les bons caractères utilisés au moment de l'exécution." #: ../Doc/howto/unicode.rst:334 @@ -610,7 +610,7 @@ msgid "" msgstr "" "Python considère que le code source est écrit en UTF-8 par défaut, mais vous " "pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " -"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " "la deuxième ligne du fichier source ::" #: ../Doc/howto/unicode.rst:344 @@ -621,12 +621,12 @@ msgid "" "special; they have no significance to Python but are a convention. Python " "looks for ``coding: name`` or ``coding=name`` in the comment." msgstr "" -"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables " +"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables " "locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " -"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs " -"que le commentaire est spécial ; ils n'ont aucune signification pour Python " -"mais sont une convention. Python cherche ``coding: name`` ou " -"``coding=name`` dans le commentaire." +"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* " +"que le commentaire est spécial ; ils n'ont aucune signification pour Python " +"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` " +"dans le commentaire." #: ../Doc/howto/unicode.rst:350 msgid "" @@ -634,7 +634,7 @@ msgid "" "as already mentioned. See also :pep:`263` for more information." msgstr "" "Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " -"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." #: ../Doc/howto/unicode.rst:355 msgid "Unicode Properties" @@ -684,10 +684,10 @@ msgstr "" "Les codes de catégorie sont des abréviations décrivant la nature du " "caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " "« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " -"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " "``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " "autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " -"autre ». Voir la section `Valeurs générales des catégories de la " +"autre ». Voir la section `Valeurs générales des catégories de la " "documentation de la base de données de caractères Unicode `_ (ressource en anglais) " "pour une liste de codes de catégories." @@ -707,12 +707,12 @@ msgid "" msgstr "" "Unicode ajoute une certaine complication à la comparaison des chaînes de " "caractères, car le même jeu de caractères peut être représenté par " -"différentes séquences de points de code. Par exemple, une lettre comme " -"« ê » peut être représentée comme un point de code unique ``U+00EA``, ou " -"comme ``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un " -"point de code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le " -"même résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " -"caractères de longueur 1 et l'autre de longueur 2." +"différentes séquences de points de code. Par exemple, une lettre comme « ê » " +"peut être représentée comme un point de code unique ``U+00EA``, ou comme ``U" +"+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de code " +"pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même résultat " +"lorsqu'elles sont affichées, mais l'une est une chaîne de caractères de " +"longueur 1 et l'autre de longueur 2." #: ../Doc/howto/unicode.rst:411 msgid "" @@ -724,7 +724,7 @@ msgid "" msgstr "" "Un outil pour une comparaison insensible à la casse est la méthode :meth:" "`~str.casefold` qui convertit une chaîne en une forme insensible à la casse " -"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " +"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " "traitement spécial pour les caractères tels que la lettre allemande " "« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres " "minuscules « *ss* »." @@ -739,12 +739,12 @@ msgid "" "differently:" msgstr "" "Un deuxième outil est la fonction :mod:`unicodedata` du module :func:" -"`~unicodedata.normalize` du module qui convertit les chaînes de caractères " -"en l'une de plusieurs formes normales, où les lettres suivies d'un caractère " -"de combinaison sont remplacées par des caractères simples. :func:`normalize` " +"`~unicodedata.normalize` qui convertit les chaînes de caractères en l'une de " +"plusieurs formes normales, où les lettres suivies d'un caractère de " +"combinaison sont remplacées par des caractères simples. :func:`normalize` " "peut être utilisée pour effectuer des comparaisons qui ne rapportent pas " "faussement les inégalités si deux chaînes utilisent différents caractères de " -"combinaison :" +"combinaison :" #: ../Doc/howto/unicode.rst:447 msgid "When run, this outputs:" @@ -773,7 +773,7 @@ msgid "" "string, so the result needs to be normalized again. See section 3.13 of the " "Unicode Standard for a discussion and an example.)" msgstr "" -"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " +"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " "Parce qu'il y a quelques caractères qui font que :meth:`casefold` renvoie " "une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. " "Voir la section 3.13 du standard Unicode pour une discussion et un exemple)." @@ -792,12 +792,11 @@ msgid "" "in the ``'Nd'`` category." msgstr "" "Les expressions régulières gérées par le module :mod:`re` peuvent être " -"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " "caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " -"différentes selon que le motif est fourni en octets ou en texte. Par " -"exemple, ``\\d``` correspond aux caractères ``[0-9]`` en octets mais dans " -"les chaînes de caractères correspond à tout caractère de la catégorie " -"``'Nd'``." +"différentes selon que le motif est fourni en octets ou en texte. Par " +"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " +"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." #: ../Doc/howto/unicode.rst:492 msgid "" @@ -814,7 +813,7 @@ msgid "" "match the substring \"57\" instead." msgstr "" "Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " -"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." "compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." #: ../Doc/howto/unicode.rst:506 @@ -832,7 +831,7 @@ msgstr "" msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" "Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " -"sont :" +"sont :" #: ../Doc/howto/unicode.rst:519 msgid "" @@ -848,7 +847,7 @@ msgid "" "2012 presentation by Ned Batchelder." msgstr "" "`Pragmatic Unicode `_, une " -"présentation PyCon 2012 par Ned Batchelder." +"présentation *PyCon* 2012 par Ned Batchelder." #: ../Doc/howto/unicode.rst:522 msgid "" @@ -874,16 +873,16 @@ msgid "" "Python 2's Unicode features (where the Unicode string type is called " "``unicode`` and literals start with ``u``)." msgstr "" -"Marc-André Lemburg a fait une présentation intitulée `« Python et " +"Marc-André Lemburg a donné une présentation intitulée `« Python et " "Unicode » (diapositives PDF) `_ à EuroPython 2002. Les diapositives sont un excellent " +"EPC2002-Talk.pdf>`_ à *EuroPython* 2002. Les diapositives sont un excellent " "aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " -"de chaîne Unicode est appelé ``unicode`` et commence littéralement par " +"de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " "``u``)." #: ../Doc/howto/unicode.rst:537 msgid "Reading and Writing Unicode Data" -msgstr "" +msgstr "Lecture et écriture de données Unicode" #: ../Doc/howto/unicode.rst:539 msgid "" @@ -891,6 +890,10 @@ msgid "" "is input/output. How do you get Unicode strings into your program, and how " "do you convert Unicode into a form suitable for storage or transmission?" msgstr "" +"Une fois que vous avez écrit du code qui fonctionne avec des données " +"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " +"des chaînes Unicode dans votre programme et comment convertir les chaînes " +"Unicode dans une forme appropriée pour le stockage ou la transmission ?" #: ../Doc/howto/unicode.rst:543 msgid "" @@ -900,6 +903,13 @@ msgid "" "Unicode data, for example. Many relational databases also support Unicode-" "valued columns and can return Unicode values from an SQL query." msgstr "" +"Il est possible que vous n'ayez rien à faire en fonction de vos sources " +"d'entrée et des destinations de vos données de sortie ; il convient de " +"vérifier si les bibliothèques utilisées dans votre application gèrent " +"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " +"données Unicode. De nombreuses bases de données relationnelles prennent " +"également en charge les colonnes encodées en Unicode et peuvent renvoyer des " +"valeurs Unicode à partir d'une requête SQL." #: ../Doc/howto/unicode.rst:549 msgid "" @@ -909,6 +919,11 @@ msgid "" "bytes with ``bytes.decode(encoding)``. However, the manual approach is not " "recommended." msgstr "" +"Les données Unicode sont généralement converties en un encodage particulier " +"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il " +"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un " +"élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " +"Cependant, l'approche manuelle n'est pas recommandée." #: ../Doc/howto/unicode.rst:554 msgid "" @@ -923,6 +938,17 @@ msgid "" "least a moment you'd need to have both the encoded string and its Unicode " "version in memory.)" msgstr "" +"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"peut être représenté par plusieurs octets. Si vous voulez lire le fichier " +"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " +"écrire un code de gestion des erreurs pour détecter le cas où une partie " +"seulement des octets codant un seul caractère Unicode est lue à la fin d'un " +"morceau. Une solution serait de lire le fichier entier en mémoire et " +"d'effectuer le décodage, mais cela vous empêche de travailler avec des " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " +"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " +"sa version Unicode en mémoire)." #: ../Doc/howto/unicode.rst:564 msgid "" @@ -935,16 +961,27 @@ msgid "" "*encoding* and *errors* parameters which are interpreted just like those in :" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" +"La solution serait d'utiliser l'interface de décodage de bas-niveau pour " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " +"est dans un encodage spécifié et accepte les paramètres Unicode pour des " +"méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:" +"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes." +"decode`." #: ../Doc/howto/unicode.rst:573 msgid "Reading Unicode from a file is therefore simple::" -msgstr "" +msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" #: ../Doc/howto/unicode.rst:579 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" msgstr "" +"Il est également possible d'ouvrir des fichiers en mode « mise à jour », " +"permettant à la fois la lecture et l'écriture ::" #: ../Doc/howto/unicode.rst:587 msgid "" @@ -958,6 +995,17 @@ msgid "" "endian encodings, that specify one particular byte ordering and don't skip " "the BOM." msgstr "" +"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le " +"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " +"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " +"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " +"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " +"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " +"comme premier caractère et sera silencieusement retirée lorsque le fichier " +"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " +"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " +"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." #: ../Doc/howto/unicode.rst:596 msgid "" @@ -967,10 +1015,15 @@ msgid "" "reading such files, use the 'utf-8-sig' codec to automatically skip the mark " "if present." msgstr "" +"Dans certains cas, il est également d'usage d'utiliser une *BOM* au début " +"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " +"dépend pas de l'ordre des octets. La marque annonce simplement que le " +"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " +"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." #: ../Doc/howto/unicode.rst:603 msgid "Unicode filenames" -msgstr "" +msgstr "Noms de fichiers Unicode" #: ../Doc/howto/unicode.rst:605 msgid "" @@ -983,6 +1036,15 @@ msgid "" "if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you " "haven't, the default encoding is again UTF-8." msgstr "" +"La plupart des systèmes d'exploitation couramment utilisés aujourd'hui " +"prennent en charge les noms de fichiers qui contiennent des caractères " +"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la " +"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, " +"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 " +"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 " +"également. Sur les systèmes Unix, il n'y aura un encodage pour le système de " +"fichiers que si vous avez défini les variables d'environnement ``LANG`` ou " +"``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." #: ../Doc/howto/unicode.rst:615 msgid "" @@ -992,12 +1054,20 @@ msgid "" "writing, you can usually just provide the Unicode string as the filename, " "and it will be automatically converted to the right encoding for you::" msgstr "" +"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " +"sur votre système actuel, au cas où vous voudriez faire l'encodage " +"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " +"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " +"généralement simplement fournir la chaîne Unicode comme nom de fichier et " +"elle est automatiquement convertie à l'encodage qui convient ::" #: ../Doc/howto/unicode.rst:625 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." msgstr "" +"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " +"également les noms de fichiers Unicode." #: ../Doc/howto/unicode.rst:628 msgid "" @@ -1011,16 +1081,29 @@ msgid "" "assuming the default filesystem encoding is UTF-8, running the following " "program::" msgstr "" +"La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève " +"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " +"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" +"func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin " +"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " +"chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en " +"utilisant l'encodage du système de fichiers et une liste de chaînes Unicode " +"est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie " +"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " +"l'encodage par défaut du système de fichiers est UTF-8, exécuter le " +"programme suivant ::" #: ../Doc/howto/unicode.rst:646 msgid "will produce the following output:" -msgstr "" +msgstr "produit la sortie suivante :" #: ../Doc/howto/unicode.rst:654 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." msgstr "" +"La première liste contient les noms de fichiers encodés en UTF-8 et la " +"seconde contient les versions Unicode." #: ../Doc/howto/unicode.rst:657 msgid "" @@ -1029,26 +1112,36 @@ msgid "" "undecodable file names can be present; that's pretty much only Unix systems " "now." msgstr "" +"Notez que, dans la plupart des cas, il convient de vous en tenir à " +"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient " +"être utilisées que sur les systèmes où des noms de fichiers non décodables " +"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " +"maintenant." #: ../Doc/howto/unicode.rst:664 msgid "Tips for Writing Unicode-aware Programs" -msgstr "" +msgstr "Conseils pour écrire des programmes compatibles Unicode" #: ../Doc/howto/unicode.rst:666 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." msgstr "" +"Cette section fournit quelques suggestions sur l'écriture de logiciels qui " +"traitent de l'Unicode." #: ../Doc/howto/unicode.rst:669 msgid "The most important tip is:" -msgstr "" +msgstr "Le conseil le plus important est :" #: ../Doc/howto/unicode.rst:671 msgid "" "Software should only work with Unicode strings internally, decoding the " "input data as soon as possible and encoding the output only at the end." msgstr "" +"Il convient que le logiciel ne traite que des chaînes Unicode en interne, " +"décodant les données d'entrée dès que possible et encodant la sortie " +"uniquement à la fin." #: ../Doc/howto/unicode.rst:674 msgid "" @@ -1058,6 +1151,12 @@ msgid "" "or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " "raised." msgstr "" +"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " +"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " +"de bogues dans votre programme augmentent partout où vous combinez les deux " +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"`TypeError` est levée." #: ../Doc/howto/unicode.rst:679 msgid "" @@ -1070,10 +1169,21 @@ msgid "" "true if the input data also specifies the encoding, since the attacker can " "then choose a clever way to hide malicious text in the encoded bytestream." msgstr "" +"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une " +"autre source non fiable, une technique courante consiste à vérifier la " +"présence de caractères illégaux dans une chaîne de caractères avant de " +"l'utiliser pour générer une ligne de commande ou de la stocker dans une base " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " +"choisir un moyen intelligent de cacher du texte malveillant dans le flux de " +"données encodé." #: ../Doc/howto/unicode.rst:690 msgid "Converting Between File Encodings" -msgstr "" +msgstr "Conversion entre les encodages de fichiers" #: ../Doc/howto/unicode.rst:692 msgid "" @@ -1081,16 +1191,23 @@ msgid "" "encodings, taking a stream that returns data in encoding #1 and behaving " "like a stream returning data in encoding #2." msgstr "" +"La classe :class:`~codecs.StreamRecoder` peut convertir de manière " +"transparente entre les encodages : prenant un flux qui renvoie des données " +"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " +"dans l'encodage #2." #: ../Doc/howto/unicode.rst:696 msgid "" "For example, if you have an input file *f* that's in Latin-1, you can wrap " "it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" msgstr "" +"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous " +"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " +"renvoie des octets encodés en UTF-8 ::" #: ../Doc/howto/unicode.rst:710 msgid "Files in an Unknown Encoding" -msgstr "" +msgstr "Fichiers dans un encodage inconnu" #: ../Doc/howto/unicode.rst:712 msgid "" @@ -1099,6 +1216,10 @@ msgid "" "to examine or modify the ASCII parts, you can open the file with the " "``surrogateescape`` error handler::" msgstr "" +"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " +"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " +"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " +"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" #: ../Doc/howto/unicode.rst:726 msgid "" @@ -1107,6 +1228,11 @@ msgid "" "points will then turn back into the same bytes when the ``surrogateescape`` " "error handler is used to encode the data and write it back out." msgstr "" +"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-" +"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U" +"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le " +"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " +"données et les réécrire." #: ../Doc/howto/unicode.rst:736 msgid "" @@ -1114,6 +1240,10 @@ msgid "" "video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David " "Beazley, discusses text processing and binary data handling." msgstr "" +"Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " +"donnée lors de *PyCon* 2010 de David Beazley, parle du traitement de texte " +"et du traitement des données binaires." #: ../Doc/howto/unicode.rst:740 msgid "" @@ -1123,6 +1253,12 @@ msgid "" "character encodings as well as how to internationalize and localize an " "application. These slides cover Python 2.x only." msgstr "" +"Le `PDF du diaporama de la présentation de Marc-André Lemburg \"Writing " +"Unicodeaware Applications in Python\" `_ (ressource en " +"anglais) traite des questions d'encodage de caractères ainsi que de " +"l'internationalisation et de la localisation d'une application. Ces " +"diapositives ne couvrent que Python 2.x." #: ../Doc/howto/unicode.rst:746 msgid "" @@ -1130,6 +1266,10 @@ msgid "" "unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that " "discusses the internal Unicode representation in Python 3.3." msgstr "" +"`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence *PyCon* 2013 " +"donnée par Benjamin Peterson qui traite de la représentation interne Unicode " +"en Python 3.3." #: ../Doc/howto/unicode.rst:753 msgid "Acknowledgements" @@ -1141,6 +1281,9 @@ msgid "" "since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " "Kuchling, and Ezio Melotti." msgstr "" +"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a " +"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " +"Ezio Melotti." #: ../Doc/howto/unicode.rst:759 msgid "" @@ -1149,6 +1292,11 @@ msgid "" "Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " "Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." msgstr "" +"Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des " +"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " +"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " +"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " +"Wideman." #~ msgid "History of Character Codes" #~ msgstr "Histoire des codes de caractères" diff --git a/howto/urllib2.po b/howto/urllib2.po index 134c51f05..d4ebbac9a 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -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" diff --git a/install/index.po b/install/index.po index d2d91024e..ddda2a146 100644 --- a/install/index.po +++ b/install/index.po @@ -209,6 +209,8 @@ msgid "" "For Windows, this command should be run from a command prompt window (:" "menuselection:`Start --> Accessories`)::" msgstr "" +"Sous Windows, cette commande doit être lancée depuis une invite de commande " +"(:menuselection:`Démarrer --> Accessoires`) ::" #: ../Doc/install/index.rst:121 msgid "" @@ -762,6 +764,11 @@ msgid "" "`{userbase}/lib` to the compiler search path for libraries as well as to the " "runtime search path for shared C libraries (rpath)." msgstr "" +"La commande :command:`build_ext` possède aussi une option ``--user`` pour " +"ajouter :file:`{userbase}/include` dans les chemins où le compilateur " +"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins " +"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C " +"partagées chargeables à l'exécution (`rpath`)." #: ../Doc/install/index.rst:391 msgid "Alternate installation: the home scheme" @@ -992,7 +999,7 @@ msgstr "" #: ../Doc/install/index.rst:503 msgid "Alternate installation: Windows (the prefix scheme)" -msgstr "" +msgstr "Installation alternative : Windows (le schéma de préfixe)" #: ../Doc/install/index.rst:505 msgid "" @@ -1001,12 +1008,18 @@ msgid "" "`!--prefix` option has traditionally been used to install additional " "packages in separate locations on Windows. ::" msgstr "" +"Windows n'a pas de concept de répertoire utilisateur, et comme " +"l'installation standard de Python sur Windows est plus simple que sur Unix, " +"l':option:`!--prefix` option a traditionnellement été utilisée pour " +"installer des paquets supplémentaires à des endroits séparés sur Windows. ::" #: ../Doc/install/index.rst:512 msgid "" "to install modules to the :file:`\\\\Temp\\\\Python` directory on the " "current drive." msgstr "" +"pour installer des modules dans le dossier :file:`\\\\Temp\\\\Python` du " +"disque courant." #: ../Doc/install/index.rst:514 msgid "" @@ -1015,10 +1028,14 @@ msgid "" "that pure Python modules and extension modules are installed into the same " "location. Files are installed as follows:" msgstr "" +"Le dossier racine de l'installation est défini par l'option :option:`!--" +"prefix`. L'option :option:`!--exec-prefix` n'est pas gérée sur Windows, ce " +"qui signifie que les modules Python et les modules d'extension sont " +"installés au même endroit. Les fichiers sont installés selon ce tableau :" #: ../Doc/install/index.rst:523 msgid ":file:`{prefix}\\\\Scripts`" -msgstr "" +msgstr ":file:`{prefix}\\\\Scripts`" #: ../Doc/install/index.rst:525 msgid ":file:`{prefix}\\\\Include\\\\{distname}`" @@ -1026,7 +1043,7 @@ msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" #: ../Doc/install/index.rst:532 msgid "Custom Installation" -msgstr "" +msgstr "Installation personnalisée" #: ../Doc/install/index.rst:534 msgid "" @@ -1036,6 +1053,12 @@ msgid "" "directory, or you might want to completely redefine the installation " "scheme. In either case, you're creating a *custom installation scheme*." msgstr "" +"Parfois, les procédés d'installation alternatifs décrits dans la section :" +"ref:`inst-alt-install` ne font pas ce que vous attendiez. Vous pourriez " +"vouloir modifier seulement un ou deux répertoires en conservant tout le " +"reste sous la même racine, ou vouloir redéfinir l'ensemble du procédé " +"d'installation. Quel que soit le cas, vous créez ainsi un *procédé " +"d'installation personnalisé*." #: ../Doc/install/index.rst:540 msgid "" @@ -1043,38 +1066,41 @@ msgid "" "schemes and override some of the installation directories used for the " "various types of files, using these options:" msgstr "" +"Pour créer un modèle d'installation personnalisé, partez d'un modèle " +"alternatif et remplacez les dossiers d'installation de types de fichiers " +"donnés via ces options :" #: ../Doc/install/index.rst:545 msgid "Override option" -msgstr "" +msgstr "Option" #: ../Doc/install/index.rst:547 msgid "``--install-purelib``" -msgstr "" +msgstr "``--install-purelib``" #: ../Doc/install/index.rst:548 msgid "``--install-platlib``" -msgstr "" +msgstr "``--install-platlib``" #: ../Doc/install/index.rst:549 msgid "all modules" -msgstr "" +msgstr "tous les modules" #: ../Doc/install/index.rst:549 msgid "``--install-lib``" -msgstr "" +msgstr "``--install-lib``" #: ../Doc/install/index.rst:550 msgid "``--install-scripts``" -msgstr "" +msgstr "``--install-scripts``" #: ../Doc/install/index.rst:551 msgid "``--install-data``" -msgstr "" +msgstr "``--install-data``" #: ../Doc/install/index.rst:552 msgid "``--install-headers``" -msgstr "" +msgstr "``--install-headers``" #: ../Doc/install/index.rst:555 msgid "" diff --git a/library/2to3.po b/library/2to3.po index 6ba139b08..5f3d314e6 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 17:52+0200\n" -"PO-Revision-Date: 2019-06-01 23:47+0200\n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" "Last-Translator: Léa Klein \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -383,8 +383,8 @@ msgid "" msgstr "" "Fixe les méthodes d'itération sur les dictionnaires. :meth:`dict.iteritems` " "est converti en :meth:`dict.items`, :meth:`dict.iterkeys` en :meth:`dict." -"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. Similarly, :meth:" -"`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " +"keys` et :meth:`dict.itervalues` en :meth:`dict.values`. De la même façon, :" +"meth:`dict.viewitems`, :meth:`dict.viewkeys` et :meth:`dict.viewvalues` sont " "convertis respectivement en :meth:`dict.items`, :meth:`dict.keys` et :meth:" "`dict.values`. Il encapsule également les usages existants de :meth:`dict." "items`, :meth:`dict.keys` et :meth:`dict.values` dans un appel à :class:" @@ -455,7 +455,7 @@ msgstr "" #: ../Doc/library/2to3.rst:262 msgid "is changed to ::" -msgstr "est transformé en ::" +msgstr "est transformé en ::" #: ../Doc/library/2to3.rst:268 msgid "Detects sibling imports and converts them to relative imports." diff --git a/library/__future__.po b/library/__future__.po index 45ab9f574..72f3469b4 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -204,7 +204,7 @@ msgstr "3.0" #: ../Doc/library/__future__.rst:75 msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`328` : *Changement de l'opérateur de division*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" #: ../Doc/library/__future__.rst:78 msgid "absolute_import" diff --git a/library/_thread.po b/library/_thread.po index a20071d66..8f4472a90 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -180,7 +180,7 @@ msgstr "" #: ../Doc/library/_thread.rst:121 msgid "Lock objects have the following methods:" -msgstr "Les verrous ont les méthodes suivantes : " +msgstr "Les verrous ont les méthodes suivantes :" #: ../Doc/library/_thread.rst:126 msgid "" @@ -257,7 +257,7 @@ msgid "" "`with` statement, e.g.::" msgstr "" "En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " -"l'instruction :keyword:`with`, e.g. : ::" +"l'instruction :keyword:`with`, e.g. ::" #: ../Doc/library/_thread.rst:171 msgid "**Caveats:**" diff --git a/library/abc.po b/library/abc.po index ae7b58afd..5fc34e356 100644 --- a/library/abc.po +++ b/library/abc.po @@ -71,7 +71,7 @@ msgid "" msgstr "" "Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " "ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " -"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple : ::" +"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" #: ../Doc/library/abc.rst:41 msgid "" @@ -86,7 +86,7 @@ msgstr "" "concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " "peut entrainer des conflits de métaclasses. Il est également possible de " "définir une ABC en passant l'argument nommé *metaclass* et en utilisant :" -"class:`ABCMeta` directement, par exemple : ::" +"class:`ABCMeta` directement, par exemple ::" #: ../Doc/library/abc.rst:57 msgid "Metaclass for defining Abstract Base Classes (ABCs)." @@ -127,7 +127,7 @@ msgid "" "Register *subclass* as a \"virtual subclass\" of this ABC. For example::" msgstr "" "Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " -"exemple : ::" +"exemple ::" #: ../Doc/library/abc.rst:85 msgid "Returns the registered subclass, to allow usage as a class decorator." @@ -186,7 +186,7 @@ msgid "" "For a demonstration of these concepts, look at this example ABC definition::" msgstr "" "Pour une illustration de ces concepts, voir cet exemple de définition de " -"ABC : ::" +"ABC ::" #: ../Doc/library/abc.rst:143 msgid "" @@ -278,7 +278,7 @@ msgid "" msgstr "" "Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " "d'autres descripteurs de méthodes, il doit être appliqué en tant que " -"décorateur le plus interne. Voir les exemples d'utilisation suivants : ::" +"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" #: ../Doc/library/abc.rst:216 msgid "" @@ -337,7 +337,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " "désormais correctement identifié comme abstrait quand il est appliqué à une " -"méthode abstraite : ::" +"méthode abstraite ::" #: ../Doc/library/abc.rst:265 msgid "" @@ -363,7 +363,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " "désormais correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" #: ../Doc/library/abc.rst:285 msgid "" @@ -387,7 +387,7 @@ msgid "" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " "correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" #: ../Doc/library/abc.rst:303 msgid "" @@ -397,7 +397,7 @@ msgid "" msgstr "" "L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " "également définir une propriété en lecture-écriture abstraite en indiquant " -"une ou plusieurs des méthodes sous-jacentes comme abstraite : ::" +"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" #: ../Doc/library/abc.rst:317 msgid "" @@ -406,7 +406,7 @@ msgid "" msgstr "" "Si seuls certains composants sont abstraits, seuls ces composants abstraits " "nécessitent d'être mis à jour pour créer une propriété concrète dans une " -"sous-classe : ::" +"sous-classe ::" #: ../Doc/library/abc.rst:326 msgid "The :mod:`abc` module also provides the following functions:" diff --git a/library/aifc.po b/library/aifc.po index ecb272400..9d7bc658a 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -69,7 +69,7 @@ msgstr "" #: ../Doc/library/aifc.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/aifc.rst:53 msgid "" diff --git a/library/argparse.po b/library/argparse.po index beabc623a..f670ea2d2 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -48,6 +48,12 @@ msgid "" "mod:`argparse` module also automatically generates help and usage messages " "and issues errors when users give the program invalid arguments." msgstr "" +"Le module :mod:`argparse` facilite l'écriture d'interfaces en ligne de " +"commande agréables à l'emploi. Le programme définit les arguments requis et :" +"mod:`argparse` s'arrange pour analyser ceux provenant de :data:`sys.argv`. " +"Le module :mod:`argparse` génère aussi automatiquement les messages d'aide, " +"le mode d'emploi, et lève des erreurs lorsque les utilisateurs fournissent " +"au programme des arguments invalides." #: ../Doc/library/argparse.rst:30 msgid "Example" @@ -66,20 +72,25 @@ msgid "" "Assuming the Python code above is saved into a file called ``prog.py``, it " "can be run at the command line and provides useful help messages:" msgstr "" +"En supposant que le code Python ci-dessus est sauvegardé dans un fichier " +"nommé ``prog.py``, il peut être lancé en ligne de commande et fournit des " +"messages d'aide utiles :" #: ../Doc/library/argparse.rst:64 msgid "" "When run with the appropriate arguments, it prints either the sum or the max " "of the command-line integers:" msgstr "" +"Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou le " +"maximum des entiers fournis en ligne de commande :" #: ../Doc/library/argparse.rst:75 msgid "If invalid arguments are passed in, it will issue an error:" -msgstr "" +msgstr "Si des arguments invalides sont passés, il lève une erreur :" #: ../Doc/library/argparse.rst:83 msgid "The following sections walk you through this example." -msgstr "" +msgstr "Les sections suivantes vous guident au travers de cet exemple." #: ../Doc/library/argparse.rst:87 msgid "Creating a parser" @@ -90,12 +101,17 @@ msgid "" "The first step in using the :mod:`argparse` is creating an :class:" "`ArgumentParser` object::" msgstr "" +"La première étape dans l'utilisation de :mod:`argparse` est de créer un " +"objet :class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:94 msgid "" "The :class:`ArgumentParser` object will hold all the information necessary " "to parse the command line into Python data types." msgstr "" +"L'objet :class:`ArgumentParser` contiendra toutes les informations " +"nécessaires pour interpréter la ligne de commande comme des types de données " +"de Python." #: ../Doc/library/argparse.rst:99 msgid "Adding arguments" @@ -110,6 +126,13 @@ msgid "" "stored and used when :meth:`~ArgumentParser.parse_args` is called. For " "example::" msgstr "" +"Alimenter un :class:`ArgumentParser` avec des informations sur les arguments " +"du programme s'effectue en faisant des appels à la méthode :meth:" +"`~ArgumentParser.add_argument`. En général ces appels disent à l':class:" +"`ArgumentParser` comment prendre les chaînes de caractères de la ligne de " +"commande et les transformer en objets. Cette information est stockée et " +"utilisée lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par " +"exemple ::" #: ../Doc/library/argparse.rst:113 msgid "" @@ -119,6 +142,11 @@ msgid "" "either the :func:`sum` function, if ``--sum`` was specified at the command " "line, or the :func:`max` function if it was not." msgstr "" +"Ensuite, appeler :meth:`~ArgumentParser.parse_args` va renvoyer un objet " +"avec deux attributs, ``integers`` et ``accumulate``. L'attribut ``integers`` " +"est une liste d'un ou plusieurs entiers, et l'attribut ``accumulate`` est " +"soit la fonction :func:`sum`, si ``--sum`` était fourni à la ligne de " +"commande, soit la fonction :func:`max` dans le cas contraire." #: ../Doc/library/argparse.rst:121 msgid "Parsing arguments" @@ -132,6 +160,11 @@ msgid "" "most cases, this means a simple :class:`Namespace` object will be built up " "from attributes parsed out of the command line::" msgstr "" +":class:`ArgumentParser` analyse les arguments avec la méthode :meth:" +"`~ArgumentParser.parse_args`. Cette méthode inspecte la ligne de commande, " +"convertit chaque argument au type approprié et invoque l'action requise. " +"Dans la plupart des cas, le résultat est la construction d'un objet :class:" +"`Namespace` à partir des attributs analysés dans la ligne de commande ::" #: ../Doc/library/argparse.rst:132 msgid "" @@ -139,10 +172,13 @@ msgid "" "with no arguments, and the :class:`ArgumentParser` will automatically " "determine the command-line arguments from :data:`sys.argv`." msgstr "" +"Dans un script, :meth:`~ArgumentParser.parse_args` est généralement appelée " +"sans arguments et l'objet :class:`ArgumentParser` détermine automatiquement " +"les arguments de la ligne de commande à partir de :data:`sys.argv`." #: ../Doc/library/argparse.rst:138 msgid "ArgumentParser objects" -msgstr "Objets ArgumentParser" +msgstr "Objets ``ArgumentParser``" #: ../Doc/library/argparse.rst:147 msgid "" @@ -150,69 +186,92 @@ msgid "" "as keyword arguments. Each parameter has its own more detailed description " "below, but in short they are:" msgstr "" +"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " +"être passés en arguments nommés. Chaque paramètre a sa propre description " +"détaillée ci-dessous, mais en résumé ils sont :" #: ../Doc/library/argparse.rst:151 msgid "prog_ - The name of the program (default: ``sys.argv[0]``)" -msgstr "" +msgstr "prog_ – Le nom du programme (par défaut : ``sys.argv[0]``)" #: ../Doc/library/argparse.rst:153 msgid "" "usage_ - The string describing the program usage (default: generated from " "arguments added to parser)" msgstr "" +"usage_ – La chaîne décrivant l'utilisation du programme (par défaut : " +"générée à partir des arguments ajoutés à l'analyseur)" #: ../Doc/library/argparse.rst:156 msgid "description_ - Text to display before the argument help (default: none)" msgstr "" +"description_ – Texte à afficher avant l'aide des arguments (par défaut : " +"vide)" #: ../Doc/library/argparse.rst:158 msgid "epilog_ - Text to display after the argument help (default: none)" msgstr "" +"epilog_ – Texte à afficher après l'aide des arguments (par défaut : vide)" #: ../Doc/library/argparse.rst:160 msgid "" "parents_ - A list of :class:`ArgumentParser` objects whose arguments should " "also be included" msgstr "" +"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " +"qui devraient aussi être inclus" #: ../Doc/library/argparse.rst:163 msgid "formatter_class_ - A class for customizing the help output" msgstr "" +"formatter_class_ – Classe pour personnaliser la sortie du message d'aide" #: ../Doc/library/argparse.rst:165 msgid "" "prefix_chars_ - The set of characters that prefix optional arguments " "(default: '-')" msgstr "" +"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " +"défaut : ``'-'``)" #: ../Doc/library/argparse.rst:168 msgid "" "fromfile_prefix_chars_ - The set of characters that prefix files from which " "additional arguments should be read (default: ``None``)" msgstr "" +"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " +"arguments additionnels doivent être lus (par défaut : ``None``)" #: ../Doc/library/argparse.rst:171 msgid "" "argument_default_ - The global default value for arguments (default: " "``None``)" msgstr "" +"argument_default_ – Valeur globale par défaut pour les arguments (par " +"défaut : ``None``)" #: ../Doc/library/argparse.rst:174 msgid "" "conflict_handler_ - The strategy for resolving conflicting optionals " "(usually unnecessary)" msgstr "" +"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " +"optionnels (non-nécessaire en général)" #: ../Doc/library/argparse.rst:177 msgid "" "add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" msgstr "" +"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " +"défaut : ``True``)" #: ../Doc/library/argparse.rst:179 msgid "" "allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " "unambiguous. (default: ``True``)" msgstr "" +"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " +"options longues (par défaut : ``True``)" #: ../Doc/library/argparse.rst:182 msgid "*allow_abbrev* parameter was added." @@ -221,10 +280,12 @@ msgstr "Le paramètre *allow_abbrev* est ajouté." #: ../Doc/library/argparse.rst:185 ../Doc/library/argparse.rst:683 msgid "The following sections describe how each of these are used." msgstr "" +"Les sections suivantes décrivent comment chacune de ces options sont " +"utilisées." #: ../Doc/library/argparse.rst:189 msgid "prog" -msgstr "prog" +msgstr "Le paramètre *prog*" #: ../Doc/library/argparse.rst:191 msgid "" @@ -234,18 +295,28 @@ msgid "" "program was invoked on the command line. For example, consider a file named " "``myprogram.py`` with the following code::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " +"déterminer comment afficher le nom du programme dans les messages d'aide. " +"Cette valeur par défaut est presque toujours souhaitable, car elle produit " +"un message d'aide qui correspond à la méthode utilisée pour lancer le " +"programme sur la ligne de commande. Par exemple, si on a un fichier nommé " +"``myprogram.py`` avec le code suivant ::" #: ../Doc/library/argparse.rst:202 msgid "" "The help for this program will display ``myprogram.py`` as the program name " "(regardless of where the program was invoked from):" msgstr "" +"Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom du " +"programme (peu importe d'où le programme est lancé) :" #: ../Doc/library/argparse.rst:221 msgid "" "To change this default behavior, another value can be supplied using the " "``prog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Pour changer ce comportement par défaut, une valeur alternative est passée " +"par l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:231 msgid "" @@ -253,31 +324,40 @@ msgid "" "the ``prog=`` argument, is available to help messages using the ``%(prog)s`` " "format specifier." msgstr "" +"Prenez note que le nom du programme, peu importe s'il provient de ``sys." +"argv[0]`` ou de l'argument ``prog=``, est accessible aux messages d'aide " +"grâce au spécificateur de formatage ``%(prog)s``." #: ../Doc/library/argparse.rst:248 msgid "usage" -msgstr "usage" +msgstr "Le paramètre *usage*" #: ../Doc/library/argparse.rst:250 msgid "" "By default, :class:`ArgumentParser` calculates the usage message from the " "arguments it contains::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " +"l'utilisation à partir des arguments qu'il contient ::" #: ../Doc/library/argparse.rst:266 msgid "" "The default message can be overridden with the ``usage=`` keyword argument::" msgstr "" +"Le message par défaut peut être remplacé grâce à l'argument nommé " +"``usage=`` ::" #: ../Doc/library/argparse.rst:281 msgid "" "The ``%(prog)s`` format specifier is available to fill in the program name " "in your usage messages." msgstr "" +"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " +"nom du programme dans vos messages d'utilisation." #: ../Doc/library/argparse.rst:286 msgid "description" -msgstr "description" +msgstr "Le paramètre *description*" #: ../Doc/library/argparse.rst:288 msgid "" @@ -287,16 +367,24 @@ msgid "" "description is displayed between the command-line usage string and the help " "messages for the various arguments::" msgstr "" +"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " +"l'argument nommé ``description=``. Cet argument donne une brève description " +"de ce que fait le programme et de comment il fonctionne. Dans les messages " +"d'aide, cette description est affichée entre le prototype de ligne de " +"commande et les messages d'aide des arguments ::" #: ../Doc/library/argparse.rst:303 msgid "" "By default, the description will be line-wrapped so that it fits within the " "given space. To change this behavior, see the formatter_class_ argument." msgstr "" +"Par défaut, la description est sujette au retour à la ligne automatique pour " +"se conformer à l'espace disponible. Pour changer ce comportement, voyez " +"l'argument formatter_class_." #: ../Doc/library/argparse.rst:308 msgid "epilog" -msgstr "epilog" +msgstr "Le paramètre *epilog*" #: ../Doc/library/argparse.rst:310 msgid "" @@ -304,6 +392,9 @@ msgid "" "the description of the arguments. Such text can be specified using the " "``epilog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Certains programmes aiment afficher un texte supplémentaire après la " +"description des arguments. Un tel texte peut être spécifié grâce à " +"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:327 msgid "" @@ -311,10 +402,14 @@ msgid "" "wrapped, but this behavior can be adjusted with the formatter_class_ " "argument to :class:`ArgumentParser`." msgstr "" +"De même que pour l'argument description_, le texte passé à ``epilog=`` est " +"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " +"grâce à l'argument formatter_class_ du constructeur d':class:" +"`ArgumentParser`." #: ../Doc/library/argparse.rst:333 msgid "parents" -msgstr "parents" +msgstr "Le paramètre *parents*" #: ../Doc/library/argparse.rst:335 msgid "" @@ -326,6 +421,14 @@ msgid "" "actions from them, and adds these actions to the :class:`ArgumentParser` " "object being constructed::" msgstr "" +"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " +"que de répéter les définitions de ces arguments, un analyseur commun qui " +"contient tous les arguments partagés peut être utilisé, puis passé à " +"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " +"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " +"accumule toutes les actions positionnelles et optionnelles de ces objets, " +"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " +"création ::" #: ../Doc/library/argparse.rst:355 msgid "" @@ -333,6 +436,10 @@ msgid "" "the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " "parent and one in the child) and raise an error." msgstr "" +"Prenez note que la majorité des analyseurs parents doivent spécifier " +"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " +"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " +"l'instance en cours de création) et va lever une erreur." #: ../Doc/library/argparse.rst:360 msgid "" @@ -340,10 +447,13 @@ msgid "" "If you change the parent parsers after the child parser, those changes will " "not be reflected in the child." msgstr "" +"Vous devez initialiser complètement les analyseurs avant de les passer à " +"``parents=``. Si vous changez les analyseurs parents après la création de " +"l'analyseur enfant, ces changements ne seront pas répercutés sur l'enfant." #: ../Doc/library/argparse.rst:366 msgid "formatter_class" -msgstr "formatter_class" +msgstr "Le paramètre *formatter_class*" #: ../Doc/library/argparse.rst:368 msgid "" @@ -351,6 +461,9 @@ msgid "" "by specifying an alternate formatting class. Currently, there are four such " "classes:" msgstr "" +"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " +"en page des messages d'aide en spécifiant une classe de formatage " +"alternative. Il y a actuellement quatre classes de formatage :" #: ../Doc/library/argparse.rst:377 msgid "" @@ -359,6 +472,11 @@ msgid "" "`ArgumentParser` objects line-wrap the description_ and epilog_ texts in " "command-line help messages::" msgstr "" +":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " +"donnent plus de contrôle sur comment les descriptions textuelles sont " +"affichées. Par défaut, les contenus de description_ et epilog_ des objets :" +"class:`ArgumentParser` font l'objet du retour à la ligne automatique dans " +"les messages d'aide ::" #: ../Doc/library/argparse.rst:402 msgid "" @@ -366,6 +484,10 @@ msgid "" "indicates that description_ and epilog_ are already correctly formatted and " "should not be line-wrapped::" msgstr "" +"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " +"que les textes de description_ et d'epilog_ ont déjà été formatés " +"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " +"automatique ::" #: ../Doc/library/argparse.rst:428 msgid "" @@ -374,12 +496,19 @@ msgid "" "replaced with one. If you wish to preserve multiple blank lines, add spaces " "between the newlines." msgstr "" +":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " +"catégories de textes d'aide, y compris les descriptions des arguments. Notez " +"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " +"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " +"entre les caractères de changement de ligne." #: ../Doc/library/argparse.rst:433 msgid "" ":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " "default values to each of the argument help messages::" msgstr "" +":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " +"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" #: ../Doc/library/argparse.rst:451 msgid "" @@ -387,10 +516,13 @@ msgid "" "each argument as the display name for its values (rather than using the " "dest_ as the regular formatter does)::" msgstr "" +":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " +"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " +"au formateur standard qui utilise dest_) ::" #: ../Doc/library/argparse.rst:472 msgid "prefix_chars" -msgstr "prefix_chars" +msgstr "Le paramètre *prefix_chars*" #: ../Doc/library/argparse.rst:474 msgid "" @@ -399,6 +531,11 @@ msgid "" "for options like ``+f`` or ``/foo``, may specify them using the " "``prefix_chars=`` argument to the ArgumentParser constructor::" msgstr "" +"La majorité des options sur la ligne de commande utilisent ``-`` comme " +"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " +"accepter des caractères préfixes autres ou additionnels (par exemple pour " +"les options ``+f`` ou ``/foo``), vous devez les spécifier en utilisant " +"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" #: ../Doc/library/argparse.rst:486 msgid "" @@ -406,10 +543,13 @@ msgid "" "characters that does not include ``-`` will cause ``-f/--foo`` options to be " "disallowed." msgstr "" +"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " +"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" +"f/--foo``." #: ../Doc/library/argparse.rst:492 msgid "fromfile_prefix_chars" -msgstr "fromfile_prefix_chars" +msgstr "Le paramètre *fromfile_prefix_chars*" #: ../Doc/library/argparse.rst:494 msgid "" @@ -420,6 +560,13 @@ msgid "" "with any of the specified characters will be treated as files, and will be " "replaced by the arguments they contain. For example::" msgstr "" +"Parfois, par exemple quand on traite une liste d'arguments particulièrement " +"longue, il est logique de stocker la liste d'arguments dans un fichier " +"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " +"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur de :class:" +"`ArgumentParser`, alors les arguments qui commencent par l'un des caractères " +"spécifiés seront traités comme des fichiers et seront remplacés par les " +"arguments contenus dans ces fichiers. Par exemple ::" #: ../Doc/library/argparse.rst:508 msgid "" @@ -430,16 +577,25 @@ msgid "" "'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" "f', 'bar']``." msgstr "" +"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " +"une nouvelle ligne (voir aussi :meth:`~ArgumentParser." +"convert_arg_line_to_args`) et ils sont traités comme s'ils étaient au même " +"emplacement que le fichier original référençant les arguments de la ligne de " +"commande. Ainsi dans l'exemple ci-dessus, l'expression ``['-f', 'foo', " +"'@args.txt']`` est équivalente à l'expression ``['-f', 'foo', '-f', 'bar']``." #: ../Doc/library/argparse.rst:514 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" +"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " +"signifie que les arguments ne seront pas traités en tant que références à " +"des fichiers." #: ../Doc/library/argparse.rst:519 msgid "argument_default" -msgstr "argument_default" +msgstr "Le paramètre *argument_default*" #: ../Doc/library/argparse.rst:521 msgid "" @@ -452,10 +608,20 @@ msgid "" "suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " "supply ``argument_default=SUPPRESS``::" msgstr "" +"Généralement, les valeurs par défaut des arguments sont spécifiées soit en " +"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " +"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " +"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " +"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " +"peut activer ce comportement en passant la valeur désirée à l'argument nommé " +"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " +"exemple, pour supprimer globalement la création d'attributs pendant l'appel " +"de :meth:`~ArgumentParser.parse_args`, on fournit " +"``argument_default=SUPPRESS`` ::" #: ../Doc/library/argparse.rst:541 msgid "allow_abbrev" -msgstr "allow_abbrev" +msgstr "Le paramètre *allow_abbrev*" #: ../Doc/library/argparse.rst:543 msgid "" @@ -463,14 +629,19 @@ msgid "" "parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " "abbreviations ` of long options." msgstr "" +"En temps normal, lorsque vous passez une liste d'arguments à la méthode :" +"meth:`~ArgumentParser.parse_args` d':class:`ArgumentParser` :ref:`elle " +"accepte les abréviations ` des options longues." #: ../Doc/library/argparse.rst:547 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" +"Cette fonctionnalité peut être désactivée en passant ``False`` à " +"``allow_abbrev`` ::" #: ../Doc/library/argparse.rst:560 msgid "conflict_handler" -msgstr "conflict_handler" +msgstr "Le paramètre *conflict_handler*" #: ../Doc/library/argparse.rst:562 msgid "" @@ -479,6 +650,10 @@ msgid "" "exception if an attempt is made to create an argument with an option string " "that is already in use::" msgstr "" +"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " +"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " +"lèvent une exception si on essaie de créer un argument avec une chaîne " +"d'option qui est déjà utilisée ::" #: ../Doc/library/argparse.rst:574 msgid "" @@ -487,6 +662,10 @@ msgid "" "value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " "of :class:`ArgumentParser`::" msgstr "" +"Parfois, par exemple si on utilise des analyseurs parents_, il est " +"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " +"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " +"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:590 msgid "" @@ -495,10 +674,14 @@ msgid "" "foo`` action is retained as the ``-f`` action, because only the ``--foo`` " "option string was overridden." msgstr "" +"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " +"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" +"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " +"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." #: ../Doc/library/argparse.rst:597 msgid "add_help" -msgstr "add_help" +msgstr "Le paramètre *add_help*" #: ../Doc/library/argparse.rst:599 msgid "" @@ -506,12 +689,17 @@ msgid "" "parser's help message. For example, consider a file named ``myprogram.py`` " "containing the following code::" msgstr "" +"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " +"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " +"fichier ``myprogram.py`` qui contient le code suivant ::" #: ../Doc/library/argparse.rst:608 msgid "" "If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " "help will be printed:" msgstr "" +"Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " +"d'aide de l'``ArgumentParser`` sera affiché :" #: ../Doc/library/argparse.rst:620 msgid "" @@ -519,6 +707,9 @@ msgid "" "This can be achieved by passing ``False`` as the ``add_help=`` argument to :" "class:`ArgumentParser`::" msgstr "" +"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " +"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " +"constructeur d':class:`ArgumentParser` ::" #: ../Doc/library/argparse.rst:632 msgid "" @@ -527,6 +718,11 @@ msgid "" "h`` and ``--help`` are not valid options. In this case, the first character " "in ``prefix_chars`` is used to prefix the help options::" msgstr "" +"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " +"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" +"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " +"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " +"des options d'aide ::" #: ../Doc/library/argparse.rst:647 msgid "The add_argument() method" @@ -537,66 +733,82 @@ msgid "" "Define how a single command-line argument should be parsed. Each parameter " "has its own more detailed description below, but in short they are:" msgstr "" +"Définie comment une option de ligne de commande doit être analysée. Chacun " +"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" #: ../Doc/library/argparse.rst:656 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " "or ``-f, --foo``." msgstr "" +"`name_or_flags`_ – un nom ou une liste de chaînes d'options. Par exemple : " +"``foo`` ou ``-f, --foo``." #: ../Doc/library/argparse.rst:659 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" +"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " +"reconnu sur la ligne de commande." #: ../Doc/library/argparse.rst:662 msgid "nargs_ - The number of command-line arguments that should be consumed." -msgstr "" +msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer." #: ../Doc/library/argparse.rst:664 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" +"const_ – Valeur constante requise par certains choix d'action_ et de nargs_." #: ../Doc/library/argparse.rst:666 msgid "" "default_ - The value produced if the argument is absent from the command " "line." msgstr "" +"default_ – Valeur produite si l'argument est absent de la ligne de commande." #: ../Doc/library/argparse.rst:669 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" +"type_ – Type vers lequel l'argument sur la ligne de commande doit être " +"converti." #: ../Doc/library/argparse.rst:671 msgid "choices_ - A container of the allowable values for the argument." msgstr "" +"choices_ – Conteneur qui contient toutes les valeurs permises pour cet " +"argument." #: ../Doc/library/argparse.rst:673 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" +"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " +"(ne s'applique qu'aux arguments optionnels)." #: ../Doc/library/argparse.rst:676 msgid "help_ - A brief description of what the argument does." -msgstr "" +msgstr "help_ – Brève description de ce que fait l'argument." #: ../Doc/library/argparse.rst:678 msgid "metavar_ - A name for the argument in usage messages." -msgstr "" +msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations." #: ../Doc/library/argparse.rst:680 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" +"dest_ – Nom de l'attribut qui sera ajouté à l'objet retourné par :meth:" +"`parse_args`." #: ../Doc/library/argparse.rst:687 msgid "name or flags" -msgstr "nom ou option" +msgstr "Les paramètres *name* et *flags*" #: ../Doc/library/argparse.rst:689 msgid "" @@ -607,10 +819,17 @@ msgid "" "or a simple argument name. For example, an optional argument could be " "created like::" msgstr "" +"La méthode :meth:`~ArgumentParser.add_argument` doit savoir si c'est un " +"argument optionnel (tel que ``-f`` ou ``--foo``) ou plutôt un argument " +"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " +"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " +"soit une série de noms d'options tels qu'ils apparaissent sur la ligne de " +"commande, soit simplement un nom si on désire un argument positionnel. Par " +"exemple, un argument optionnel est créé comme suit ::" #: ../Doc/library/argparse.rst:698 msgid "while a positional argument could be created like::" -msgstr "" +msgstr "alors qu'un argument positionnel est créé comme suit ::" #: ../Doc/library/argparse.rst:702 msgid "" @@ -618,10 +837,13 @@ msgid "" "be identified by the ``-`` prefix, and the remaining arguments will be " "assumed to be positional::" msgstr "" +"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " +"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " +"sont présumés positionnels ::" #: ../Doc/library/argparse.rst:719 msgid "action" -msgstr "action" +msgstr "Le paramètre *action*" #: ../Doc/library/argparse.rst:721 msgid "" @@ -632,12 +854,21 @@ msgid "" "``action`` keyword argument specifies how the command-line arguments should " "be handled. The supplied actions are:" msgstr "" +"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " +"commande avec des actions. Ces actions peuvent soumettre les arguments de la " +"ligne de commande auxquels elles sont associées à un traitement arbitraire, " +"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " +"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " +"indique comment l'argument de la ligne de commande sera traité. Les actions " +"natives sont :" #: ../Doc/library/argparse.rst:727 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action. For example::" msgstr "" +"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " +"l'action par défaut. Par exemple ::" #: ../Doc/library/argparse.rst:735 msgid "" @@ -645,6 +876,10 @@ msgid "" "argument. The ``'store_const'`` action is most commonly used with optional " "arguments that specify some sort of flag. For example::" msgstr "" +"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. " +"L'action ``'store_const'`` est typiquement utilisée avec des arguments " +"optionnels qui représentent un drapeau ou une condition similaire. Par " +"exemple ::" #: ../Doc/library/argparse.rst:744 msgid "" @@ -653,6 +888,10 @@ msgid "" "respectively. In addition, they create default values of ``False`` and " "``True`` respectively. For example::" msgstr "" +"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " +"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " +"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " +"par défaut ``False`` et ``True``, respectivement. Par exemple ::" #: ../Doc/library/argparse.rst:756 msgid "" @@ -660,6 +899,9 @@ msgid "" "list. This is useful to allow an option to be specified multiple times. " "Example usage::" msgstr "" +"``'append'`` – Stocke une liste et ajoute la valeur de l'argument à la " +"liste. Ceci est pratique pour les options qui peuvent être répétées sur la " +"ligne de commande ::" #: ../Doc/library/argparse.rst:765 msgid "" @@ -669,12 +911,19 @@ msgid "" "useful when multiple arguments need to store constants to the same list. For " "example::" msgstr "" +"``'append_const'`` – Stocke une liste et ajoute la valeur passée à " +"l'argument nommé const_ à la fin de la liste. Notez que la valeur par défaut " +"de l'argument nommé const_ est ``None``. L'action ``'append_const'`` est " +"pratique quand plusieurs arguments ont besoin de stocker des constantes dans " +"la même liste. Par exemple ::" #: ../Doc/library/argparse.rst:777 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" msgstr "" +"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " +"pratique, par exemple, pour augmenter le niveau de verbosité ::" #: ../Doc/library/argparse.rst:785 msgid "" @@ -683,6 +932,10 @@ msgid "" "added to the parser. See :class:`ArgumentParser` for details of how the " "output is created." msgstr "" +"``'help'`` – Affiche le message d'aide complet pour toutes les options de " +"l'analyseur puis termine l'exécution. Une action ``help`` est " +"automatiquement ajoutée à l'analyseur par défaut. Consultez :class:" +"`ArgumentParser` pour les détails de la création du contenu de l'aide." #: ../Doc/library/argparse.rst:790 msgid "" @@ -690,6 +943,9 @@ msgid "" "`~ArgumentParser.add_argument` call, and prints version information and " "exits when invoked::" msgstr "" +"``'version'`` – Affiche la version du programme puis termine l'exécution. " +"Cette action requiert l'argument nommé ``version=`` dans l'appel à :meth:" +"`~ArgumentParser.add_argument` ::" #: ../Doc/library/argparse.rst:800 msgid "" @@ -709,7 +965,7 @@ msgstr "Pour plus d'information, voir :class:`Action`." #: ../Doc/library/argparse.rst:828 msgid "nargs" -msgstr "nargs" +msgstr "Le paramètre *nargs*" #: ../Doc/library/argparse.rst:830 msgid "" @@ -718,18 +974,27 @@ msgid "" "different number of command-line arguments with a single action. The " "supported values are:" msgstr "" +"En général, les objets ``ArgumentParser`` associent un seul argument de la " +"ligne de commande à une seule action à entreprendre. L'argument nommé " +"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " +"une action. Les valeurs reconnues sont :" #: ../Doc/library/argparse.rst:835 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" +"``N`` (un entier). ``N`` arguments de la ligne de commande seront capturés " +"ensemble et stockés dans une liste. Par exemple ::" #: ../Doc/library/argparse.rst:844 msgid "" "Note that ``nargs=1`` produces a list of one item. This is different from " "the default, in which the item is produced by itself." msgstr "" +"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " +"différent du comportement par défaut qui produit l'élément directement " +"(comme un scalaire)." #: ../Doc/library/argparse.rst:849 msgid "" @@ -740,12 +1005,20 @@ msgid "" "by a command-line argument. In this case the value from const_ will be " "produced. Some examples to illustrate this::" msgstr "" +"``'?'``. Un argument sera capturé de la ligne de commande et produit " +"directement. Si aucun argument n'est présent sur la ligne de commande, la " +"valeur de default_ est produite. Prenez note que pour les arguments " +"optionnels, il est aussi possible que la chaîne d'option soit présente mais " +"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " +"est produite. Voici quelques exemples pour illustrer ceci ::" #: ../Doc/library/argparse.rst:866 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" +"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " +"de sortie optionnels ::" #: ../Doc/library/argparse.rst:883 msgid "" @@ -754,6 +1027,11 @@ msgid "" "argument with ``nargs='*'``, but multiple optional arguments with " "``nargs='*'`` is possible. For example::" msgstr "" +"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " +"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " +"argument positionnel avec ``nargs='*'``, mais il est par contre possible " +"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " +"exemple ::" #: ../Doc/library/argparse.rst:897 msgid "" @@ -761,6 +1039,10 @@ msgid "" "a list. Additionally, an error message will be generated if there wasn't at " "least one command-line argument present. For example::" msgstr "" +"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " +"commande sont capturés dans une liste. De plus, un message d'erreur est " +"produit s'il n'y a pas au moins un argument présent sur la ligne de " +"commande. Par exemple ::" #: ../Doc/library/argparse.rst:911 msgid "" @@ -776,10 +1058,13 @@ msgid "" "command-line argument will be consumed and a single item (not a list) will " "be produced." msgstr "" +"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " +"capturés est déterminé par l'action_. En général, c'est un seul argument de " +"la ligne de commande qui est capturé et il est produit directement." #: ../Doc/library/argparse.rst:928 msgid "const" -msgstr "const" +msgstr "Le paramètre *const*" #: ../Doc/library/argparse.rst:930 msgid "" @@ -788,6 +1073,10 @@ msgid "" "required for the various :class:`ArgumentParser` actions. The two most " "common uses of it are:" msgstr "" +"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " +"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " +"est requise par certaines actions d':class:`ArgumentParser`. Les deux " +"utilisations les plus communes sont :" #: ../Doc/library/argparse.rst:934 msgid "" @@ -796,6 +1085,11 @@ msgid "" "the ``const`` value to one of the attributes of the object returned by :meth:" "`~ArgumentParser.parse_args`. See the action_ description for examples." msgstr "" +"quand :meth:`~ArgumentParser.add_argument` est appelée avec " +"``action='store_const'`` ou ``action='append_const'``. Ces actions ajoutent " +"la valeur de ``const`` à l'un des attributs de l'objet renvoyé par :meth:" +"`~ArgumentParser.parse_args`. Consultez la description d'action_ pour voir " +"quelques exemples ;" #: ../Doc/library/argparse.rst:939 msgid "" @@ -806,16 +1100,26 @@ msgid "" "command-line argument following it, the value of ``const`` will be assumed " "instead. See the nargs_ description for examples." msgstr "" +"quand la méthode :meth:`~ArgumentParser.add_argument` est appelée avec des " +"chaînes d'options (telles que ``-f`` ou ``--foo``) et ``nargs='?'``. Ceci " +"crée un argument optionnel qui peut être suivi de zéro ou un argument de " +"ligne de commande. Quand la ligne de commande est analysée, si la chaîne " +"d'option est trouvée mais qu'elle n'est pas suivie par un argument, la " +"valeur de ``const`` est utilisée. Consultez la description de nargs_ pour " +"voir quelques exemples." #: ../Doc/library/argparse.rst:946 msgid "" "With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " "keyword argument must be given. For other actions, it defaults to ``None``." msgstr "" +"Pour les actions ``'store_const'`` et ``'append_const'``, l'argument nommé " +"``const`` doit être spécifié. Pour toutes les autres actions, il est " +"optionnel et sa valeur par défaut est ``None``." #: ../Doc/library/argparse.rst:951 msgid "default" -msgstr "default" +msgstr "Le paramètre *default*" #: ../Doc/library/argparse.rst:953 msgid "" @@ -826,6 +1130,12 @@ msgid "" "the ``default`` value is used when the option string was not present at the " "command line::" msgstr "" +"Tous les arguments optionnels et certains arguments positionnels peuvent " +"être omis à la ligne de commande. L'argument nommé ``default`` de la " +"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " +"indique quelle valeur sera utilisé si l'argument est absent de la ligne de " +"commande. Pour les arguments optionnels, la valeur de ``default`` est " +"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" #: ../Doc/library/argparse.rst:967 msgid "" @@ -834,22 +1144,33 @@ msgid "" "conversion argument, if provided, before setting the attribute on the :class:" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" +"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " +"comme si c'était un argument de la ligne de commande. En particulier, " +"l'analyseur applique la conversion spécifiée par l'argument type_ (si elle " +"est fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` " +"renvoyé. Autrement, l'analyseur utilise la valeur telle qu'elle ::" #: ../Doc/library/argparse.rst:978 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" msgstr "" +"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " +"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " +"de commande ::" #: ../Doc/library/argparse.rst:989 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" +"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut ne sera ajouté " +"à l'objet ``Namespace`` quand l'argument est absent de la ligne de " +"commande ::" #: ../Doc/library/argparse.rst:1001 msgid "type" -msgstr "type" +msgstr "Le paramètre *type*" #: ../Doc/library/argparse.rst:1003 msgid "" @@ -861,12 +1182,21 @@ msgid "" "performed. Common built-in types and functions can be used directly as the " "value of the ``type`` argument::" msgstr "" +"Par défaut, les objets :class:`ArgumentParser` capturent les arguments de la " +"ligne de commande comme des chaînes. Très souvent par contre, on désire " +"interpréter les chaînes de la ligne de commande comme un autre type, tel " +"que :class:`float` ou :class:`int`. L'argument nommé ``type`` d':meth:" +"`~ArgumentParser.add_argument` nous permet de faire les vérifications et les " +"conversions de type nécessaires. Les types et les fonctions natives peuvent " +"être utilisés directement pour la valeur de l'argument ``type`` ::" #: ../Doc/library/argparse.rst:1016 msgid "" "See the section on the default_ keyword argument for information on when the " "``type`` argument is applied to default arguments." msgstr "" +"Consultez la rubrique de l'argument nommé default_ pour plus d'information " +"sur quand l'argument ``type`` est appliqué aux arguments par défaut." #: ../Doc/library/argparse.rst:1019 msgid "" @@ -875,26 +1205,36 @@ msgid "" "``errors=`` arguments of the :func:`open` function. For example, " "``FileType('w')`` can be used to create a writable file::" msgstr "" +"Pour faciliter l'utilisation de types de fichiers variés, le module " +"``argparse`` fournit le type fabrique ``FileType`` qui accepte les arguments " +"``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la fonction :func:" +"`open`. Par exemple, ``FileType('w')`` peut être utilisé pour créer un " +"fichier en mode écriture ::" #: ../Doc/library/argparse.rst:1029 msgid "" "``type=`` can take any callable that takes a single string argument and " "returns the converted value::" msgstr "" +"``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " +"prend une seule chaîne de caractère comme argument et qui renvoie la valeur " +"convertie ::" #: ../Doc/library/argparse.rst:1048 msgid "" "The choices_ keyword argument may be more convenient for type checkers that " "simply check against a range of values::" msgstr "" +"L'argument nommé choices_ est parfois plus facile d'utilisation pour les " +"vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" #: ../Doc/library/argparse.rst:1059 msgid "See the choices_ section for more details." -msgstr "Voir la section choices_ pour plus de détails." +msgstr "Voir le chapitre choices_ pour plus de détails." #: ../Doc/library/argparse.rst:1063 msgid "choices" -msgstr "choices" +msgstr "Le paramètre *choices*" #: ../Doc/library/argparse.rst:1065 msgid "" @@ -904,6 +1244,12 @@ msgid "" "line is parsed, argument values will be checked, and an error message will " "be displayed if the argument was not one of the acceptable values::" msgstr "" +"Certains arguments de la ligne de commande doivent être choisis parmi un " +"ensemble fermé de valeurs. Ceux-ci peuvent être gérés en passant un " +"conteneur à l'argument nommé *choices* de la méthode :meth:`~ArgumentParser." +"add_argument`. Quand la ligne de commande est analysée, les valeurs de " +"l'argument sont comparées et un message d'erreur est affiché si l'argument " +"n'est pas parmi les valeurs acceptables ::" #: ../Doc/library/argparse.rst:1080 msgid "" @@ -911,6 +1257,9 @@ msgid "" "conversions have been performed, so the type of the objects in the *choices* " "container should match the type_ specified::" msgstr "" +"Prenez note que le test d'inclusion dans le conteur *choices* est fait après " +"la conversion de type_. Le type des objets dans le conteneur *choices* " +"doivent donc correspondre au type_ spécifié ::" #: ../Doc/library/argparse.rst:1092 msgid "" @@ -921,7 +1270,7 @@ msgstr "" #: ../Doc/library/argparse.rst:1098 msgid "required" -msgstr "required" +msgstr "Le paramètre *required*" #: ../Doc/library/argparse.rst:1100 msgid "" @@ -930,6 +1279,11 @@ msgid "" "command line. To make an option *required*, ``True`` can be specified for " "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" +"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " +"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " +"toujours être omis de la ligne de commande. Pour rendre une option " +"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` d':" +"meth:`~ArgumentParser.add_argument` ::" #: ../Doc/library/argparse.rst:1113 msgid "" @@ -937,16 +1291,22 @@ msgid "" "`~ArgumentParser.parse_args` will report an error if that option is not " "present at the command line." msgstr "" +"Tel qu'illustré' dans l'exemple, quand l'option est marquée comme " +"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " +"l'option est absente de la ligne de commande." #: ../Doc/library/argparse.rst:1119 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." msgstr "" +"En général, les options obligatoires manifestent un style boiteux, car les " +"utilisateurs s'attendent que les *options* soient *optionnelles*. Elles " +"devraient donc être évitées si possible." #: ../Doc/library/argparse.rst:1124 msgid "help" -msgstr "help" +msgstr "Le paramètre *help*" #: ../Doc/library/argparse.rst:1126 msgid "" @@ -955,6 +1315,10 @@ msgid "" "at the command line), these ``help`` descriptions will be displayed with " "each argument::" msgstr "" +"La valeur de ``help`` est une chaîne qui contient une brève description de " +"l'argument. Quand un utilisateur demande de l'aide (en général par " +"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " +"descriptions d'aide seront affichées pour chacun des arguments ::" #: ../Doc/library/argparse.rst:1146 msgid "" @@ -964,22 +1328,33 @@ msgid "" "arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``" "%(type)s``, etc.::" msgstr "" +"La chaîne ``help`` peut contenir des spécificateurs de formatage afin " +"d'éviter la répétition de contenu tel que le nom du programme et la valeur " +"par défaut de l'argument (voir default_). Les spécificateurs de formatage " +"disponibles incluent entre autres le nom du programme, ``%(prog)s``, et la " +"plupart des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels " +"que ``%(default)s``, ``%(type)s``, etc. ::" #: ../Doc/library/argparse.rst:1163 msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " "appear in the help string, you must escape it as ``%%``." msgstr "" +"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " +"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " +"faire l’échappement avec ``%%``." #: ../Doc/library/argparse.rst:1166 msgid "" ":mod:`argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" +":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " +"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" #: ../Doc/library/argparse.rst:1179 msgid "metavar" -msgstr "metavar" +msgstr "Le paramètre *metavar*" #: ../Doc/library/argparse.rst:1181 msgid "" @@ -992,10 +1367,19 @@ msgid "" "optional argument ``--foo`` that should be followed by a single command-line " "argument will be referred to as ``FOO``. An example::" msgstr "" +"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " +"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " +"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " +"objet. Par défaut, la valeur de dest_ est utilisée telle quelle pour les " +"actions d'arguments positionnels et elle (dest_) est convertie en majuscules " +"pour les actions d'arguments optionnels. Ainsi, un argument positionnel " +"unique avec ``dest='bar'`` sera affiché comme ``bar`` et un argument " +"positionnel unique ``--foo`` qui prend un seul argument sur la ligne de " +"commande sera affiché comme ``FOO``. Par exemple ::" #: ../Doc/library/argparse.rst:1205 msgid "An alternative name can be specified with ``metavar``::" -msgstr "" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" #: ../Doc/library/argparse.rst:1222 msgid "" @@ -1003,6 +1387,9 @@ msgid "" "attribute on the :meth:`~ArgumentParser.parse_args` object is still " "determined by the dest_ value." msgstr "" +"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " +"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " +"est toujours déterminé par la valeur de dest_." #: ../Doc/library/argparse.rst:1226 msgid "" @@ -1010,10 +1397,13 @@ msgid "" "times. Providing a tuple to ``metavar`` specifies a different display for " "each of the arguments::" msgstr "" +"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " +"plus d'une fois. Passer un n-uplet à ``metavar`` indique les différents noms " +"à afficher pour chacun des arguments ::" #: ../Doc/library/argparse.rst:1243 msgid "dest" -msgstr "dest" +msgstr "Le paramètre *dest*" #: ../Doc/library/argparse.rst:1245 msgid "" @@ -1024,6 +1414,12 @@ msgid "" "is normally supplied as the first argument to :meth:`~ArgumentParser." "add_argument`::" msgstr "" +"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " +"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " +"de l'attribut est déterminé par l'argument nommé ``dest`` d':meth:" +"`~ArgumentParser.add_argument`. Pour les arguments positionnels, ``dest`` " +"est généralement le premier argument d':meth:`~ArgumentParser." +"add_argument` ::" #: ../Doc/library/argparse.rst:1257 msgid "" @@ -1036,10 +1432,18 @@ msgid "" "characters to make sure the string is a valid attribute name. The examples " "below illustrate this behavior::" msgstr "" +"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " +"généralement inférée à partir des chaînes d'option. :class:`ArgumentParser` " +"génère la valeur de ``dest`` en prenant la première chaîne d'option longue " +"et en retirant le préfixe ``--``. Si une chaîne d'option longue n'est pas " +"fournie, ``dest`` sera dérivée de la première chaîne d'option courte sans le " +"préfixe ``-``. Tous les ``-`` subséquents seront convertis en ``_`` pour " +"s'assurer que le chaîne est un nom d'attribut valide. Les exemples suivants " +"illustrent ce comportement ::" #: ../Doc/library/argparse.rst:1274 msgid "``dest`` allows a custom attribute name to be provided::" -msgstr "" +msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" #: ../Doc/library/argparse.rst:1282 msgid "Action classes" @@ -1051,6 +1455,10 @@ msgid "" "which processes arguments from the command-line. Any object which follows " "this API may be passed as the ``action`` parameter to :meth:`add_argument`." msgstr "" +"Les classes ``Action`` implémentent l'API Action, un appelable qui retourne " +"un appelable qui traite les arguments de la ligne de commande. Tout objet " +"qui suit cette API peut être passé comme paramètre ``action`` d':meth:" +"`add_argument`." #: ../Doc/library/argparse.rst:1293 msgid "" @@ -1060,6 +1468,11 @@ msgid "" "keyword arguments passed to :meth:`ArgumentParser.add_argument` except for " "the ``action`` itself." msgstr "" +"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " +"représenter l'information nécessaire à l'analyse d'un seul argument à partir " +"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " +"doit accepter les deux arguments positionnels d':meth:`ArgumentParser." +"add_argument` ainsi que tous ses arguments nommés, sauf ``action``." #: ../Doc/library/argparse.rst:1299 msgid "" @@ -1068,16 +1481,24 @@ msgid "" "\"type\", \"required\", \"help\", etc. defined. The easiest way to ensure " "these attributes are defined is to call ``Action.__init__``." msgstr "" +"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " +"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " +"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " +"plus simple de s'assurer que ces attributs sont définis est d'appeler " +"``Action.__init__``." #: ../Doc/library/argparse.rst:1304 msgid "" "Action instances should be callable, so subclasses must override the " "``__call__`` method, which should accept four parameters:" msgstr "" +"Les instances d'``Action`` doivent être appelables et donc les sous-classes " +"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " +"quatre paramètres :" #: ../Doc/library/argparse.rst:1307 msgid "``parser`` - The ArgumentParser object which contains this action." -msgstr "" +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action." #: ../Doc/library/argparse.rst:1309 msgid "" @@ -1085,6 +1506,9 @@ msgid "" "`~ArgumentParser.parse_args`. Most actions add an attribute to this object " "using :func:`setattr`." msgstr "" +"``namespace`` – L'objet :class:`Namespace` qui sera renvoyé par :meth:" +"`~ArgumentParser.parse_args`. La majorité des actions ajoutent un attribut à " +"cet objet avec :func:`setattr`." #: ../Doc/library/argparse.rst:1313 msgid "" @@ -1092,6 +1516,10 @@ msgid "" "conversions applied. Type conversions are specified with the type_ keyword " "argument to :meth:`~ArgumentParser.add_argument`." msgstr "" +"``values`` – Les arguments de la ligne de commande associés à l'action après " +"les avoir soumis à la conversion de type. Les conversions de types sont " +"spécifiées grâce à l’argument nommé type_ d':meth:`~ArgumentParser." +"add_argument`." #: ../Doc/library/argparse.rst:1317 msgid "" @@ -1099,12 +1527,18 @@ msgid "" "The ``option_string`` argument is optional, and will be absent if the action " "is associated with a positional argument." msgstr "" +"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " +"L'argument ``option_string`` est optionnel et est absent si l'action est " +"associée à un argument positionnel." #: ../Doc/library/argparse.rst:1321 msgid "" "The ``__call__`` method may perform arbitrary actions, but will typically " "set attributes on the ``namespace`` based on ``dest`` and ``values``." msgstr "" +"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " +"général elle affect des attributs sur ``namespace`` en fonction de ``dest`` " +"et de ``values``." #: ../Doc/library/argparse.rst:1326 msgid "The parse_args() method" @@ -1115,6 +1549,8 @@ msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" +"Convertie les chaînes d'arguments en objets et les assigne comme attributs " +"de l'objet ``namespace``. Retourne l'objet ``namespace`` rempli." #: ../Doc/library/argparse.rst:1333 msgid "" @@ -1122,22 +1558,29 @@ msgid "" "created and how they are assigned. See the documentation for :meth:" "`add_argument` for details." msgstr "" +"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " +"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " +"d':meth:`add_argument` pour les détails." #: ../Doc/library/argparse.rst:1337 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" +"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " +"dans : :data:`sys.argv`." #: ../Doc/library/argparse.rst:1340 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" +"namespace_ – Un objet pour recevoir les attributs. Par défaut : une nouvelle " +"instance (vide) de :class:`Namespace`." #: ../Doc/library/argparse.rst:1345 msgid "Option value syntax" -msgstr "" +msgstr "Syntaxe de la valeur des options" #: ../Doc/library/argparse.rst:1347 msgid "" @@ -1145,6 +1588,10 @@ msgid "" "specifying the value of an option (if it takes one). In the simplest case, " "the option and its value are passed as two separate arguments::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " +"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " +"simple, l'option et sa valeur sont passées en tant que deux arguments " +"distincts ::" #: ../Doc/library/argparse.rst:1359 msgid "" @@ -1152,18 +1599,26 @@ msgid "" "option and value can also be passed as a single command-line argument, using " "``=`` to separate them::" msgstr "" +"Pour les options longues (les options qui ont un nom plus long qu'un seul " +"caractère), l'option et sa valeur peuvent être passées comme un seul " +"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" #: ../Doc/library/argparse.rst:1366 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" +"Pour les options courtes (les options qui utilisent un seul caractère), " +"l'option et sa valeur peuvent être concaténées ::" #: ../Doc/library/argparse.rst:1372 msgid "" "Several short options can be joined together, using only a single ``-`` " "prefix, as long as only the last option (or none of them) requires a value::" msgstr "" +"Plusieurs options courtes peuvent être groupées ensemble après un seul " +"préfixe ``-`` pour autant que seule la dernière (ou aucune) nécessite une " +"valeur ::" #: ../Doc/library/argparse.rst:1384 msgid "Invalid arguments" @@ -1176,6 +1631,12 @@ msgid "" "options, wrong number of positional arguments, etc. When it encounters such " "an error, it exits and prints the error along with a usage message::" msgstr "" +"Quand elle fait l'analyse de la ligne de commande, la méthode :meth:" +"`~ArgumentParser.parse_args` vérifie plusieurs erreurs possibles : entre " +"autres, options ambigües, types invalides, options invalides, nombre " +"incorrect d'arguments positionnels, etc. Quand une erreur est rencontrée, " +"elle affiche l'erreur accompagnée du message d'aide puis termine " +"l'exécution ::" #: ../Doc/library/argparse.rst:1412 msgid "Arguments containing ``-``" @@ -1192,6 +1653,15 @@ msgid "" "like negative numbers and there are no options in the parser that look like " "negative numbers::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " +"quand l'utilisateur s'est clairement trompé. Par contre, certaines " +"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " +"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " +"option qu'une tentative de passer un argument positionnel. La méthode :meth:" +"`~ArgumentParser.parse_args` est prudente : les arguments positionnels ne " +"peuvent commencer par ``-`` que s'ils ont l'apparence d'un nombre négatif et " +"que l'analyseur ne contient aucune option qui a l'apparence d'un nombre " +"négatif ::" #: ../Doc/library/argparse.rst:1452 msgid "" @@ -1200,10 +1670,14 @@ msgid "" "tells :meth:`~ArgumentParser.parse_args` that everything after that is a " "positional argument::" msgstr "" +"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " +"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" +"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " +"traiter tout ce qui suit comme un argument positionnel ::" #: ../Doc/library/argparse.rst:1463 msgid "Argument abbreviations (prefix matching)" -msgstr "Arguments abrégés (Part comparaison de leur préfixes)" +msgstr "Arguments abrégés (Par comparaison de leurs préfixes)" #: ../Doc/library/argparse.rst:1465 msgid "" @@ -1211,16 +1685,23 @@ msgid "" "` allows long options to be abbreviated to a prefix, if the " "abbreviation is unambiguous (the prefix matches a unique option)::" msgstr "" +"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " +"options longues soient :ref:`abrégées ` par un préfixe pour " +"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " +"corresponde qu'à une seule option ::" #: ../Doc/library/argparse.rst:1480 msgid "" "An error is produced for arguments that could produce more than one options. " "This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." msgstr "" +"Une erreur est générée pour les arguments qui peuvent produire plus d'une " +"option. Ce comportement peut être désactivé en passant ``False`` à :ref:" +"`allow_abbrev`." #: ../Doc/library/argparse.rst:1486 msgid "Beyond ``sys.argv``" -msgstr "Au delà de ``sys.argv``" +msgstr "Au-delà de ``sys.argv``" #: ../Doc/library/argparse.rst:1488 msgid "" @@ -1229,6 +1710,11 @@ msgid "" "of strings to :meth:`~ArgumentParser.parse_args`. This is useful for " "testing at the interactive prompt::" msgstr "" +"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " +"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " +"traitement en passant une liste de chaînes à :meth:`~ArgumentParser." +"parse_args`. Cette approche est pratique pour faire des tests depuis " +"l'invite de commande ::" #: ../Doc/library/argparse.rst:1508 msgid "The Namespace object" @@ -1239,6 +1725,9 @@ msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" +"Classe rudimentaire qui est utilisé par défaut par :meth:`~ArgumentParser." +"parse_args` pour créer un objet qui stock les attributs. Cet objet est " +"renvoyé par ``ArgumentParser.parse_args``." #: ../Doc/library/argparse.rst:1515 msgid "" @@ -1246,6 +1735,10 @@ msgid "" "readable string representation. If you prefer to have dict-like view of the " "attributes, you can use the standard Python idiom, :func:`vars`::" msgstr "" +"Cette classe est délibérément rudimentaire : une sous-classe d':class:" +"`object` avec une représentation textuelle intelligible. Si vous préférez " +"une vue *dict-compatible*, vous devez utiliser :func:`vars` (un idiome " +"Python classique) ::" #: ../Doc/library/argparse.rst:1525 msgid "" @@ -1253,6 +1746,10 @@ msgid "" "to an already existing object, rather than a new :class:`Namespace` object. " "This can be achieved by specifying the ``namespace=`` keyword argument::" msgstr "" +"Il est parfois utile de demander à :class:`ArgumentParser` de faire " +"l'affectation des attributs sur un objet existant plutôt que de faire la " +"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " +"l'argument nommé ``namespace=`` ::" #: ../Doc/library/argparse.rst:1541 msgid "Other utilities" @@ -1277,6 +1774,18 @@ msgid "" "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." msgstr "" +"Certains programmes divisent leurs fonctionnalités entre un nombre de sous-" +"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " +"checkout``, ``svn update`` et ``svn commit``. Séparer les fonctionnalités de " +"cette façon est judicieux quand le programme effectue plusieurs fonctions " +"différentes qui requièrent différents types de lignes de commandes. :class:" +"`ArgumentParser` prend en charge la création de ce genre de sous-commandes " +"grâce à la méthode :meth:`add_subparsers`. La méthode :meth:`add_subparsers` " +"est généralement appelée sans argument et elle renvoie un objet ``Action`` " +"spécial. Cet objet possède une seule méthode, :meth:`~ArgumentParser." +"add_parser`, qui prend le nom d'une commande et n'importe quels arguments du " +"constructeur d':class:`ArgumentParser` ; elle renvoie un objet :class:" +"`ArgumentParser` qui peut être modifié normalement." #: ../Doc/library/argparse.rst:1563 msgid "Description of parameters:" @@ -1288,12 +1797,17 @@ msgid "" "\"subcommands\" if description is provided, otherwise uses title for " "positional arguments" msgstr "" +"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " +"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " +"la valeur de ``title`` de la section sur les arguments positionnels ;" #: ../Doc/library/argparse.rst:1569 msgid "" "description - description for the sub-parser group in help output, by " "default ``None``" msgstr "" +"``description`` – description du groupe de ce sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" #: ../Doc/library/argparse.rst:1572 msgid "" @@ -1301,24 +1815,34 @@ msgid "" "default the name of the program and any positional arguments before the " "subparser argument" msgstr "" +"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" +"commandes ; par défaut : le nom du programme et les arguments positionnels " +"qui arrivent avant l'argument de ce sous-analyseur ;" #: ../Doc/library/argparse.rst:1576 msgid "" "parser_class - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. ArgumentParser)" msgstr "" +"``parser_class`` – classe utilisée pour créer les instances de sous-" +"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " +"``ArgumentParser``) ;" #: ../Doc/library/argparse.rst:1579 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" +"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " +"de commande ;" #: ../Doc/library/argparse.rst:1582 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" msgstr "" +"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " +"défaut : ``None`` et aucune valeur n'est stockée ;" #: ../Doc/library/argparse.rst:1585 msgid "" @@ -1329,12 +1853,17 @@ msgstr "" #: ../Doc/library/argparse.rst:1588 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" +"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" #: ../Doc/library/argparse.rst:1590 msgid "" "metavar_ - string presenting available sub-commands in help; by default it " "is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" msgstr "" +"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " +"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " +"chaîne suivant le format ``'{cmd1, cmd2, …}'``." #: ../Doc/library/argparse.rst:1593 msgid "Some example usage::" @@ -1349,6 +1878,13 @@ msgid "" "present, and when the ``b`` command is specified, only the ``foo`` and " "``baz`` attributes are present." msgstr "" +"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " +"attributs reconnus par l'analyseur principal et le sous-analyseur " +"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " +"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " +"commande ``a`` est spécifiée, seuls les attributs ``foo`` et ``bar`` sont " +"présents ; quand la commande ``b`` est spécifiée, seuls les attributs " +"``foo`` et ``baz`` sont présents." #: ../Doc/library/argparse.rst:1621 msgid "" @@ -1358,6 +1894,12 @@ msgid "" "subparser command, however, can be given by supplying the ``help=`` argument " "to :meth:`add_parser` as above.)" msgstr "" +"De même, quand le message d'aide est demandé depuis l'un des sous-" +"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " +"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" +"analyseurs au même niveau. Il est toutefois possible de fournir un message " +"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` d':meth:" +"`add_parser` tel qu'illustré ci-dessus." #: ../Doc/library/argparse.rst:1657 msgid "" @@ -1365,6 +1907,10 @@ msgid "" "``description`` keyword arguments. When either is present, the subparser's " "commands will appear in their own group in the help output. For example::" msgstr "" +"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " +"``description``. Quand au moins l'un des deux est présent, les commandes du " +"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " +"Par exemple ::" #: ../Doc/library/argparse.rst:1678 msgid "" @@ -1372,6 +1918,10 @@ msgid "" "which allows multiple strings to refer to the same subparser. This example, " "like ``svn``, aliases ``co`` as a shorthand for ``checkout``::" msgstr "" +"De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " +"permet à plusieurs chaînes de faire référence au même sous-analyseur. " +"L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " +"abréviation de ``checkout`` ::" #: ../Doc/library/argparse.rst:1689 msgid "" @@ -1380,6 +1930,10 @@ msgid "" "so that each subparser knows which Python function it should execute. For " "example::" msgstr "" +"Une façon efficace de traiter les sous-commandes est de combiner " +"l'utilisation de la méthode :meth:`add_subparsers` avec des appels à :meth:" +"`set_defaults` pour que chaque sous-analyseur sache quelle fonction Python " +"doit être exécutée. Par exemple ::" #: ../Doc/library/argparse.rst:1726 msgid "" @@ -1390,6 +1944,12 @@ msgid "" "to check the name of the subparser that was invoked, the ``dest`` keyword " "argument to the :meth:`add_subparsers` call will work::" msgstr "" +"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " +"l'appel à la bonne fonction après avoir analysé les arguments. Associer " +"fonctions et actions est en général la façon la plus facile de gérer des " +"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " +"avez besoin de consulter le nom de du sous-analyseur qui a été invoqué, vous " +"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" #: ../Doc/library/argparse.rst:1744 msgid "FileType objects" @@ -1403,6 +1963,12 @@ msgid "" "with the requested modes, buffer sizes, encodings and error handling (see " "the :func:`open` function for more details)::" msgstr "" +"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " +"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " +"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " +"ligne de commande en tant que fichiers avec les options spécifiées : mode, " +"taille du tampon, encodage et gestion des erreurs (voir la fonction :func:" +"`open` pour plus de détails) ::" #: ../Doc/library/argparse.rst:1760 msgid "" @@ -1410,6 +1976,10 @@ msgid "" "convert this into ``sys.stdin`` for readable :class:`FileType` objects and " "``sys.stdout`` for writable :class:`FileType` objects::" msgstr "" +"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et en font " +"automatiquement la conversion vers ``sys.stdin`` pour les objets :class:" +"`FileType` ouverts en lecture et vers ``sys.stdout`` pour les objets :class:" +"`FileType` ouverts en écriture ::" #: ../Doc/library/argparse.rst:1769 msgid "The *encodings* and *errors* keyword arguments." @@ -1427,6 +1997,11 @@ msgid "" "default one, appropriate groups can be created using the :meth:" "`add_argument_group` method::" msgstr "" +"Par défaut, :class:`ArgumentParser` sépare les arguments de la ligne de " +"commande entre les groupes « arguments positionnels » et « arguments " +"optionnels » au moment d'afficher les messages d'aide. S'il existe un " +"meilleur regroupement conceptuel des arguments, les groupes adéquats peuvent " +"être créés avec la méthode :meth:`add_argument_group` ::" #: ../Doc/library/argparse.rst:1795 msgid "" @@ -1438,12 +2013,22 @@ msgid "" "accepts *title* and *description* arguments which can be used to customize " "this display::" msgstr "" +"La méthode :meth:`add_argument_group` renvoie un objet représentant le " +"groupe d'arguments. Cet objet possède une méthode :meth:`~ArgumentParser." +"add_argument` semblable à celle d':class:`ArgumentParser`. Quand un argument " +"est ajouté au groupe, l'analyseur le traite comme un argument normal, mais " +"il affiche le nouvel argument dans un groupe séparé dans les messages " +"d'aide. Afin de personnaliser l'affichage, la méthode :meth:" +"`add_argument_group` accepte les arguments ``title`` et ``description`` ::" #: ../Doc/library/argparse.rst:1821 msgid "" "Note that any arguments not in your user-defined groups will end up back in " "the usual \"positional arguments\" and \"optional arguments\" sections." msgstr "" +"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " +"affiché dans l'une des sections usuelles *positional arguments* et *optional " +"arguments*." #: ../Doc/library/argparse.rst:1826 msgid "Mutual exclusion" @@ -1455,6 +2040,9 @@ msgid "" "one of the arguments in the mutually exclusive group was present on the " "command line::" msgstr "" +"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " +"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " +"la ligne de commande ::" #: ../Doc/library/argparse.rst:1846 msgid "" @@ -1462,6 +2050,9 @@ msgid "" "argument, to indicate that at least one of the mutually exclusive arguments " "is required::" msgstr "" +"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " +"``required`` pour indiquer qu'au moins un des arguments mutuellement " +"exclusifs est nécessaire ::" #: ../Doc/library/argparse.rst:1858 msgid "" @@ -1469,6 +2060,9 @@ msgid "" "*title* and *description* arguments of :meth:`~ArgumentParser." "add_argument_group`." msgstr "" +"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " +"n'acceptent pas les arguments ``title`` et ``description`` d':meth:" +"`~ArgumentParser.add_argument_group`." #: ../Doc/library/argparse.rst:1864 msgid "Parser defaults" @@ -1482,11 +2076,18 @@ msgid "" "additional attributes that are determined without any inspection of the " "command line to be added::" msgstr "" +"Dans la majorité des cas, les attributs de l'objet renvoyé par :meth:" +"`parse_args` sont entièrement définis par l'inspection des arguments de la " +"ligne de commande et par les actions des arguments. La méthode :meth:" +"`set_defaults` permet l'ajout d'attributs additionnels qui sont définis sans " +"nécessiter l'inspection de la ligne de commande ::" #: ../Doc/library/argparse.rst:1880 msgid "" "Note that parser-level defaults always override argument-level defaults::" msgstr "" +"Prenez note que les valeurs par défaut au niveau de l'analyseur ont " +"précédence sur les valeurs par défaut au niveau de l'argument ::" #: ../Doc/library/argparse.rst:1888 msgid "" @@ -1494,12 +2095,18 @@ msgid "" "parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " "example of this type." msgstr "" +"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " +"quand on travaille avec plusieurs analyseurs. Voir la méthode :meth:" +"`~ArgumentParser.add_subparsers` pour un exemple de cette utilisation." #: ../Doc/library/argparse.rst:1894 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" msgstr "" +"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " +"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou par :" +"meth:`~ArgumentParser.set_defaults` ::" #: ../Doc/library/argparse.rst:1905 msgid "Printing help" @@ -1511,6 +2118,9 @@ msgid "" "care of formatting and printing any usage or error messages. However, " "several formatting methods are available:" msgstr "" +"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " +"charge du formatage et de l'affichage des messages d'erreur et " +"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" #: ../Doc/library/argparse.rst:1913 msgid "" @@ -1518,6 +2128,9 @@ msgid "" "invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " "assumed." msgstr "" +"Affiche une brève description sur la façon d'invoquer l':class:" +"`ArgumentParser` depuis la ligne de commande. Si ``file`` est ``None``, " +"utilise :data:`sys.stdout`." #: ../Doc/library/argparse.rst:1919 msgid "" @@ -1525,24 +2138,34 @@ msgid "" "arguments registered with the :class:`ArgumentParser`. If *file* is " "``None``, :data:`sys.stdout` is assumed." msgstr "" +"Affiche un message d'aide qui inclut l'utilisation du programme et " +"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " +"Si ``file`` est ``None``, utilise :data:`sys.stdout`." #: ../Doc/library/argparse.rst:1923 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" +"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " +"que de l'afficher :" #: ../Doc/library/argparse.rst:1928 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" +"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " +"l':class:`ArgumentParser` depuis la ligne de commande." #: ../Doc/library/argparse.rst:1933 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." msgstr "" +"Renvoie une chaîne représentant un message d'aide qui inclut des " +"informations sur l'utilisation du programme et sur les arguments définis " +"dans l':class:`ArgumentParser`." #: ../Doc/library/argparse.rst:1938 msgid "Partial parsing" @@ -1558,6 +2181,13 @@ msgid "" "a two item tuple containing the populated namespace and the list of " "remaining argument strings." msgstr "" +"Parfois, un script n'analyse que de quelques-uns des arguments de la ligne " +"de commande avant de passer les arguments non-traités à un autre script ou " +"un autre programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " +"utile dans ces cas. Elle fonctionne similairement à :meth:`~ArgumentParser." +"parse_args`, mais elle ne lève pas d'erreur quand des arguments non-reconnus " +"sont présents. Au lieu, elle renvoie une paire de valeurs : l'objet " +"``Namespace`` rempli et la liste des arguments non-traités." #: ../Doc/library/argparse.rst:1958 msgid "" @@ -1566,6 +2196,10 @@ msgid "" "prefix of one of its known options, instead of leaving it in the remaining " "arguments list." msgstr "" +"Les règles d':ref:`acceptation des abréviations ` sont " +"applicables à :meth:`parse_known_args`. L'analyseur peut ainsi capturer une " +"option même si elle n'est que le préfixe d'une option reconnue plutôt que de " +"la laisser dans la liste des arguments non-traités." #: ../Doc/library/argparse.rst:1965 msgid "Customizing file parsing" @@ -1578,6 +2212,10 @@ msgid "" "per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " "reading." msgstr "" +"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " +"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " +"un traitement plus élaboré. Voir aussi l'argument nommé " +"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." #: ../Doc/library/argparse.rst:1974 msgid "" @@ -1585,16 +2223,24 @@ msgid "" "the argument file. It returns a list of arguments parsed from this string. " "The method is called once per line read from the argument file, in order." msgstr "" +"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " +"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " +"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " +"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " +"préservé." #: ../Doc/library/argparse.rst:1978 msgid "" "A useful override of this method is one that treats each space-separated " "word as an argument. The following example demonstrates how to do this::" msgstr "" +"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " +"par des espaces d'être traité comme un argument. L'exemple suivant illustre " +"comment réaliser ceci ::" #: ../Doc/library/argparse.rst:1987 msgid "Exiting methods" -msgstr "" +msgstr "Méthodes d'interruptions" #: ../Doc/library/argparse.rst:1991 msgid "" @@ -1607,6 +2253,9 @@ msgid "" "This method prints a usage message including the *message* to the standard " "error and terminates the program with a status code of 2." msgstr "" +"Cette méthode affiche un message d'utilisation qui inclut la chaîne " +"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " +"code de fin d'exécution 2." #: ../Doc/library/argparse.rst:2001 msgid "Intermixed parsing" @@ -1619,6 +2268,10 @@ msgid "" "and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " "parsing style." msgstr "" +"De nombreuses commandes Unix permettent à l'utilisateur d'entremêler les " +"arguments optionnels et les arguments positionnels. Les méthodes :meth:" +"`~ArgumentParser.parse_intermixed_args` et :meth:`~ArgumentParser." +"parse_known_intermixed_args` permettent ce style d'analyse." #: ../Doc/library/argparse.rst:2011 msgid "" @@ -1627,6 +2280,11 @@ msgid "" "``argparse.REMAINDER``, and mutually exclusive groups that include both " "optionals and positionals are not supported." msgstr "" +"Ces analyseurs n'offrent pas toutes les fonctionnalités d'``argparse`` et " +"ils lèvent une exception si une fonctionnalité non prise en charge est " +"utilisée. En particulier, les sous-analyseurs, ``argparse.REMAINDER`` et les " +"groupes mutuellement exclusifs qui contiennent à la fois des arguments " +"optionnels et des arguments positionnels ne sont pas pris en charge." #: ../Doc/library/argparse.rst:2016 msgid "" @@ -1635,6 +2293,10 @@ msgid "" "former returns ``['2', '3']`` as unparsed arguments, while the latter " "collects all the positionals into ``rest``. ::" msgstr "" +"L'exemple suivant illustre la différence entre :meth:`~ArgumentParser." +"parse_known_args` et :meth:`~ArgumentParser.parse_intermixed_args` : le " +"premier renvoie ``['2', '3']`` comme arguments non-traités alors que le " +"second capture tous les arguments positionnels dans ``rest`` ::" #: ../Doc/library/argparse.rst:2031 msgid "" @@ -1643,6 +2305,10 @@ msgid "" "strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " "there are any remaining unparsed argument strings." msgstr "" +":meth:`~ArgumentParser.parse_known_intermixed_args` renvoie une paire de " +"valeurs : l'objet ``Namespace`` rempli et une liste de chaînes d'arguments " +"non-traités. :meth:`~ArgumentParser.parse_intermixed_args` lève une erreur " +"s'il reste des chaînes d'arguments non-traités." #: ../Doc/library/argparse.rst:2041 msgid "Upgrading optparse code" @@ -1658,46 +2324,58 @@ msgid "" "patched, it no longer seemed practical to try to maintain the backwards " "compatibility." msgstr "" +"Initialement, le module :mod:`argparse` tentait de rester compatible avec :" +"mod:`optparse`. Hélas, il était difficile de faire des améliorations à :mod:" +"`optparse` de façon transparente, en particulier pour les changements requis " +"pour gérer les nouveaux spécificateurs de ``nargs=`` et les messages " +"d'utilisation améliorés. Après avoir porté ou surchargé tout le code d':mod:" +"`optparse`, la rétro-compatibilité pouvait difficilement être conservée." #: ../Doc/library/argparse.rst:2050 msgid "" "The :mod:`argparse` module improves on the standard library :mod:`optparse` " "module in a number of ways including:" msgstr "" +"Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " +"module :mod:`optparse` de la bibliothèque standard :" #: ../Doc/library/argparse.rst:2053 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels." +msgstr "Gère les arguments positionnels." #: ../Doc/library/argparse.rst:2054 msgid "Supporting sub-commands." -msgstr "Gérer les sous commandes." +msgstr "Prise en charge des sous commandes." #: ../Doc/library/argparse.rst:2055 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "" +"Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." #: ../Doc/library/argparse.rst:2056 msgid "Handling zero-or-more and one-or-more style arguments." -msgstr "" +msgstr "Prend en charge la répétition de valeurs (zéro ou plus, un ou plus)." #: ../Doc/library/argparse.rst:2057 msgid "Producing more informative usage messages." -msgstr "Fournir des message d'aide plus complets." +msgstr "Fournit des messages d'aide plus complets." #: ../Doc/library/argparse.rst:2058 msgid "Providing a much simpler interface for custom ``type`` and ``action``." msgstr "" +"Fournit une interface plus simple pour les types et actions personnalisés" #: ../Doc/library/argparse.rst:2060 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -msgstr "" +msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" #: ../Doc/library/argparse.rst:2062 msgid "" "Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" "`ArgumentParser.add_argument` calls." msgstr "" +"Remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " +"appels à :meth:`ArgumentParser.add_argument`." #: ../Doc/library/argparse.rst:2065 msgid "" @@ -1706,6 +2384,11 @@ msgid "" "for the positional arguments. Keep in mind that what was previously called " "``options``, now in the :mod:`argparse` context is called ``args``." msgstr "" +"Remplacer ``(options, args) = parser.parse_args()`` par ``args = parser." +"parse_args()`` et ajouter des appels à :meth:`ArgumentParser.add_argument` " +"pour les arguments positionnels. Prenez note que les valeurs précédemment " +"appelées ``options`` sont appelées ``args`` dans le contexte d':mod:" +"`argparse`." #: ../Doc/library/argparse.rst:2070 msgid "" @@ -1713,24 +2396,35 @@ msgid "" "meth:`~ArgumentParser.parse_intermixed_args` instead of :meth:" "`~ArgumentParser.parse_args`." msgstr "" +"Remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " +"appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt que :meth:" +"`~ArgumentParser.parse_args`." #: ../Doc/library/argparse.rst:2074 msgid "" "Replace callback actions and the ``callback_*`` keyword arguments with " "``type`` or ``action`` arguments." msgstr "" +"Remplacer les actions de rappel (*callback actions* en anglais) et les " +"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions``." #: ../Doc/library/argparse.rst:2077 msgid "" "Replace string names for ``type`` keyword arguments with the corresponding " "type objects (e.g. int, float, complex, etc)." msgstr "" +"Remplacer les chaînes représentant le nom des types pour l'argument nommé " +"``type`` par les objets types correspondants (par exemple : ``int``, " +"``float``, ``complex``, etc)." #: ../Doc/library/argparse.rst:2080 msgid "" "Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." "OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." msgstr "" +"Remplacer :class:`optparse.Values` par :class:`Namespace` ; et :exc:" +"`optparse.OptionError` et :exc:`optparse.OptionValueError` par :exc:" +"`ArgumentError`." #: ../Doc/library/argparse.rst:2084 msgid "" @@ -1738,6 +2432,10 @@ msgid "" "with the standard Python syntax to use dictionaries to format strings, that " "is, ``%(default)s`` and ``%(prog)s``." msgstr "" +"Remplacer les chaînes avec des arguments de formatage implicite (tels que ``" +"%default`` ou ``%prog``) par la syntaxe standard de Python pour " +"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" +"dire ``%(default)s`` et ``%(prog)s``)." #: ../Doc/library/argparse.rst:2088 msgid "" @@ -1745,3 +2443,6 @@ msgid "" "``parser.add_argument('--version', action='version', version='')``." msgstr "" +"Remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " +"appel à ``parser.add_argument('--version', action='version', version='')``." diff --git a/library/array.po b/library/array.po index e3b096157..cfd681fc9 100644 --- a/library/array.po +++ b/library/array.po @@ -542,7 +542,7 @@ msgstr "" #: ../Doc/library/array.rst:276 msgid "`The Numerical Python Documentation `_" -msgstr "`The Numerical Python Documentation `_" +msgstr "`La documentation de *Numerical Python* `" #: ../Doc/library/array.rst:276 msgid "" diff --git a/library/ast.po b/library/ast.po index 6d5897de8..1b018cc68 100644 --- a/library/ast.po +++ b/library/ast.po @@ -164,11 +164,11 @@ msgid "" "use ::" msgstr "" "Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " -"utiliser ::" +"utiliser ::" #: ../Doc/library/ast.rst:91 msgid "or the more compact ::" -msgstr "ou, plus compact ::" +msgstr "ou, plus compact ::" #: ../Doc/library/ast.rst:100 msgid "Abstract Grammar" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index 16daf66de..1bfe29dde 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -965,7 +965,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:504 msgid "Return the current process-wide policy." -msgstr "" +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." #: ../Doc/library/asyncio-llapi-index.rst:506 msgid ":meth:`asyncio.set_event_loop_policy`" diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 085bc9a53..ddb9ff308 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -125,7 +125,7 @@ msgstr "" #: ../Doc/library/asyncio-platforms.rst:88 msgid "macOS" -msgstr "" +msgstr "macOS" #: ../Doc/library/asyncio-platforms.rst:90 msgid "Modern macOS versions are fully supported." diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 70ebca61c..93e6c4482 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-01-03 16:57+0100\n" -"PO-Revision-Date: 2018-11-29 18:26+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-04-11 22:41+0200\n" +"Last-Translator: \n" "Language-Team: FRENCH \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.1\n" #: ../Doc/library/asyncio-policy.rst:8 msgid "Policies" -msgstr "" +msgstr "Stratégies" #: ../Doc/library/asyncio-policy.rst:10 msgid "" @@ -24,12 +25,19 @@ msgid "" "management of the event loop. Each event loop has a default policy, which " "can be changed and customized using the policy API." msgstr "" +"Une stratégie de boucle d'événements est un objet global, pour chaque " +"processus, qui contrôle la gestion de la boucle d'événement. Chaque boucle " +"d'événement a une stratégie par défaut, qui peut être modifiée et " +"personnalisée à l'aide de l'API de la stratégie." #: ../Doc/library/asyncio-policy.rst:14 msgid "" "A policy defines the notion of *context* and manages a separate event loop " "per context. The default policy defines *context* to be the current thread." msgstr "" +"Une stratégie définit la notion de *contexte* et gère une boucle d'événement " +"distincte par contexte. La stratégie par défaut définit le *contexte* comme " +"étant le fil d'exécution actuel." #: ../Doc/library/asyncio-policy.rst:18 msgid "" @@ -37,46 +45,57 @@ msgid "" "`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` " "functions can be customized." msgstr "" +"En utilisant une stratégie de boucle d'événement personnalisée, le " +"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` " +"et :func:`new_event_loop` peut être personnalisé." #: ../Doc/library/asyncio-policy.rst:22 msgid "" "Policy objects should implement the APIs defined in the :class:" "`AbstractEventLoopPolicy` abstract base class." msgstr "" +"Les objets de stratégie doivent implémenter les API définies dans la classe " +"de base abstraite :class:`AbstractEventLoopPolicy`." #: ../Doc/library/asyncio-policy.rst:27 msgid "Getting and Setting the Policy" -msgstr "" +msgstr "Obtenir et définir la stratégie" #: ../Doc/library/asyncio-policy.rst:29 msgid "" "The following functions can be used to get and set the policy for the " "current process:" msgstr "" +"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la " +"stratégie du processus en cours :" #: ../Doc/library/asyncio-policy.rst:34 msgid "Return the current process-wide policy." -msgstr "" +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." #: ../Doc/library/asyncio-policy.rst:38 msgid "Set the current process-wide policy to *policy*." msgstr "" +"Définit la stratégie actuelle sur l'ensemble du processus sur *policy*." #: ../Doc/library/asyncio-policy.rst:40 msgid "If *policy* is set to ``None``, the default policy is restored." msgstr "" +"Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée." #: ../Doc/library/asyncio-policy.rst:44 msgid "Policy Objects" -msgstr "" +msgstr "Sujets de stratégie" #: ../Doc/library/asyncio-policy.rst:46 msgid "The abstract event loop policy base class is defined as follows:" msgstr "" +"La classe de base abstraite de la stratégie de boucle d'événements est " +"définie comme suit:" #: ../Doc/library/asyncio-policy.rst:50 msgid "An abstract base class for asyncio policies." -msgstr "" +msgstr "Une classe de base abstraite pour les stratégies *asyncio*." #: ../Doc/library/asyncio-policy.rst:54 msgid "Get the event loop for the current context." @@ -87,58 +106,69 @@ msgid "" "Return an event loop object implementing the :class:`AbstractEventLoop` " "interface." msgstr "" +"Renvoie un objet de boucle d'événements en implémentant l'interface :class:" +"`AbstractEventLoop`." #: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71 msgid "This method should never return ``None``." -msgstr "" +msgstr "Cette méthode ne devrait jamais renvoyer ``None``." #: ../Doc/library/asyncio-policy.rst:65 msgid "Set the event loop for the current context to *loop*." -msgstr "" +msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." #: ../Doc/library/asyncio-policy.rst:69 msgid "Create and return a new event loop object." -msgstr "" +msgstr "Crée et renvoie un nouvel objet de boucle d'événements." #: ../Doc/library/asyncio-policy.rst:75 msgid "Get a child process watcher object." -msgstr "" +msgstr "Récupère un objet observateur du processus enfant." #: ../Doc/library/asyncio-policy.rst:77 msgid "" "Return a watcher object implementing the :class:`AbstractChildWatcher` " "interface." msgstr "" +"Renvoie un objet observateur implémentant l'interface :class:" +"`AbstractChildWatcher`." #: ../Doc/library/asyncio-policy.rst:80 ../Doc/library/asyncio-policy.rst:86 msgid "This function is Unix specific." -msgstr "" +msgstr "Cette fonction est spécifique à Unix." #: ../Doc/library/asyncio-policy.rst:84 msgid "Set the current child process watcher to *watcher*." -msgstr "" +msgstr "Définit l'observateur du processus enfant actuel à *watcher*." #: ../Doc/library/asyncio-policy.rst:89 msgid "asyncio ships with the following built-in policies:" -msgstr "" +msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :" #: ../Doc/library/asyncio-policy.rst:94 msgid "" "The default asyncio policy. Uses :class:`SelectorEventLoop` on both Unix " "and Windows platforms." msgstr "" +"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " +"les plates-formes Unix et Windows." #: ../Doc/library/asyncio-policy.rst:97 msgid "" "There is no need to install the default policy manually. asyncio is " "configured to use the default policy automatically." msgstr "" +"Il n'est pas nécessaire d'installer la stratégie par défaut manuellement. " +"*asyncio* est configuré pour utiliser automatiquement la stratégie par " +"défaut." #: ../Doc/library/asyncio-policy.rst:103 msgid "" "An alternative event loop policy that uses the :class:`ProactorEventLoop` " "event loop implementation." msgstr "" +"Stratégie de boucle d'événements alternative utilisant l'implémentation de " +"la boucle d'événements :class:`ProactorEventLoop`." #: ../Doc/library/asyncio-policy.rst:106 msgid ":ref:`Availability `: Windows." @@ -146,7 +176,7 @@ msgstr ":ref:`Disponibilité ` : Windows." #: ../Doc/library/asyncio-policy.rst:110 msgid "Process Watchers" -msgstr "" +msgstr "Observateurs de processus" #: ../Doc/library/asyncio-policy.rst:112 msgid "" @@ -154,12 +184,18 @@ msgid "" "processes on Unix. Specifically, the event loop needs to know when a child " "process has exited." msgstr "" +"Un observateur de processus permet de personnaliser la manière dont une " +"boucle d'événements surveille les processus enfants sous Unix. Plus " +"précisément, la boucle d'événements a besoin de savoir quand un processus " +"enfant s'est terminé." #: ../Doc/library/asyncio-policy.rst:116 msgid "" "In asyncio, child processes are created with :func:`create_subprocess_exec` " "and :meth:`loop.subprocess_exec` functions." msgstr "" +"Dans *asyncio*, les processus enfants sont créés avec les fonctions :func:" +"`create_subprocess_exec` et :meth:`loop.subprocess_exec`." #: ../Doc/library/asyncio-policy.rst:120 msgid "" @@ -168,22 +204,31 @@ msgid "" "class:`SafeChildWatcher` (configured to be used by default) and :class:" "`FastChildWatcher`." msgstr "" +"*asyncio* définit la classe de base abstraite :class:`AbstractChildWatcher`, " +"que les observateurs enfants doivent implémenter et possède deux " +"implémentations différentes : :class:`SafeChildWatcher` (configurée pour " +"être utilisé par défaut) et :class:`FastChildWatcher`." #: ../Doc/library/asyncio-policy.rst:125 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." #: ../Doc/library/asyncio-policy.rst:128 msgid "" "The following two functions can be used to customize the child process " "watcher implementation used by the asyncio event loop:" msgstr "" +"Les deux fonctions suivantes peuvent être utilisées pour personnaliser " +"l'implémentation de l'observateur de processus enfant utilisé par la boucle " +"d'événements *asyncio* :" #: ../Doc/library/asyncio-policy.rst:133 msgid "Return the current child watcher for the current policy." -msgstr "" +msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle." #: ../Doc/library/asyncio-policy.rst:137 msgid "" @@ -191,6 +236,9 @@ msgid "" "*watcher* must implement methods defined in the :class:" "`AbstractChildWatcher` base class." msgstr "" +"Définit l'observateur enfant actuel à *watcher* pour la stratégie actuelle. " +"*watcher* doit implémenter les méthodes définies dans la classe de base :" +"class:`AbstractChildWatcher`." #: ../Doc/library/asyncio-policy.rst:142 msgid "" @@ -198,10 +246,14 @@ msgid "" "watchers. For such event loops, using :func:`set_child_watcher` might be " "prohibited or have no effect." msgstr "" +"Les implémentations de boucles d'événement tierces peuvent ne pas prendre en " +"charge les observateurs enfants personnalisés. Pour ces boucles " +"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou " +"n'avoir aucun effet." #: ../Doc/library/asyncio-policy.rst:150 msgid "Register a new child handler." -msgstr "" +msgstr "Enregistre un nouveau gestionnaire." #: ../Doc/library/asyncio-policy.rst:152 msgid "" @@ -209,60 +261,77 @@ msgid "" "with PID equal to *pid* terminates. Specifying another callback for the " "same process replaces the previous handler." msgstr "" +"Organise l'appel de ``callback(pid, returncode, * args)`` lorsqu'un " +"processus dont le PID est égal à *pid* se termine. La spécification d'un " +"autre rappel pour le même processus remplace le gestionnaire précédent." #: ../Doc/library/asyncio-policy.rst:157 msgid "The *callback* callable must be thread-safe." msgstr "" +"L'appelable *callback* doit être compatible avec les programmes à fils " +"d'exécution multiples." #: ../Doc/library/asyncio-policy.rst:161 msgid "Removes the handler for process with PID equal to *pid*." -msgstr "" +msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." #: ../Doc/library/asyncio-policy.rst:163 msgid "" "The function returns ``True`` if the handler was successfully removed, " "``False`` if there was nothing to remove." msgstr "" +"La fonction renvoie ``True`` si le gestionnaire a été supprimé avec succès, " +"``False`` s'il n'y a rien à supprimer." #: ../Doc/library/asyncio-policy.rst:168 msgid "Attach the watcher to an event loop." -msgstr "" +msgstr "Attache l'observateur à une boucle d'événement." #: ../Doc/library/asyncio-policy.rst:170 msgid "" "If the watcher was previously attached to an event loop, then it is first " "detached before attaching to the new loop." msgstr "" +"Si l'observateur était précédemment attaché à une boucle d'événements, il " +"est d'abord détaché avant d'être rattaché à la nouvelle boucle." #: ../Doc/library/asyncio-policy.rst:173 msgid "Note: loop may be ``None``." -msgstr "" +msgstr "Remarque : la boucle peut être ``None``." #: ../Doc/library/asyncio-policy.rst:177 msgid "Close the watcher." -msgstr "" +msgstr "Ferme l'observateur." #: ../Doc/library/asyncio-policy.rst:179 msgid "" "This method has to be called to ensure that underlying resources are cleaned-" "up." msgstr "" +"Cette méthode doit être appelée pour s'assurer que les ressources sous-" +"jacentes sont nettoyées." #: ../Doc/library/asyncio-policy.rst:184 msgid "" "This implementation avoids disrupting other code spawning processes by " "polling every process explicitly on a :py:data:`SIGCHLD` signal." msgstr "" +"Cette implémentation évite de perturber un autre code qui aurait besoin de " +"générer des processus en interrogeant chaque processus explicitement par un " +"signal :py:data:`SIGCHLD`." #: ../Doc/library/asyncio-policy.rst:187 msgid "" "This is a safe solution but it has a significant overhead when handling a " "big number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." msgstr "" +"C'est une solution sûre, mais elle nécessite un temps système important lors " +"de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que " +"un :py:data:`SIGCHLD` est reçu)." #: ../Doc/library/asyncio-policy.rst:191 msgid "asyncio uses this safe implementation by default." -msgstr "" +msgstr "*asyncio* utilise cette implémentation sécurisée par défaut." #: ../Doc/library/asyncio-policy.rst:195 msgid "" @@ -270,16 +339,21 @@ msgid "" "waitpid(-1)`` directly, possibly breaking other code spawning processes and " "waiting for their termination." msgstr "" +"Cette implémentation récupère tous les processus terminés en appelant " +"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui " +"génère des processus et attend leur fin." #: ../Doc/library/asyncio-policy.rst:199 msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates)." msgstr "" +"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " +"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." #: ../Doc/library/asyncio-policy.rst:204 msgid "Custom Policies" -msgstr "" +msgstr "Stratégies personnalisées" #: ../Doc/library/asyncio-policy.rst:206 msgid "" @@ -287,3 +361,7 @@ msgid "" "`DefaultEventLoopPolicy` and override the methods for which custom behavior " "is wanted, e.g.::" msgstr "" +"Pour implémenter une nouvelle politique de boucle d’événements, il est " +"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de " +"réimplémenter les méthodes pour lesquelles un comportement personnalisé est " +"souhaité, par exemple ::" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index d8aaf1acd..a0db5bdb6 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -201,6 +201,8 @@ msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." #: ../Doc/library/asyncio-subprocess.rst:181 msgid "Wait for the child process to terminate." diff --git a/library/base64.po b/library/base64.po index cdd85f6af..93ff72b67 100644 --- a/library/base64.po +++ b/library/base64.po @@ -6,22 +6,22 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-07-29 00:47+0200\n" +"PO-Revision-Date: 2019-08-20 15:51+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \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 1.8.11\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/library/base64.rst:2 msgid ":mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings" -msgstr "" +msgstr ":mod:`base64` — Encodages base16, base32, base64 et base85" #: ../Doc/library/base64.rst:8 msgid "**Source code:** :source:`Lib/base64.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/base64.py`" #: ../Doc/library/base64.rst:16 msgid "" @@ -31,6 +31,12 @@ msgid "" "which defines the Base16, Base32, and Base64 algorithms, and for the de-" "facto standard Ascii85 and Base85 encodings." msgstr "" +"Ce module fournit des fonctions permettant de coder des données binaires en " +"caractères ASCII affichables ainsi que de décoder ces caractères vers des " +"données binaires en retour. Il fournit des fonctions d'encodage et de " +"décodage pour les codages spécifiés par la :rfc:`3548` qui définit les " +"algorithmes base16, base32 et base64, ainsi que les encodages standards *de " +"facto* Ascii85 et base85." #: ../Doc/library/base64.rst:22 msgid "" @@ -39,6 +45,10 @@ msgid "" "HTTP POST request. The encoding algorithm is not the same as the :program:" "`uuencode` program." msgstr "" +"Les encodages définis par la :rfc:`3548` sont adaptés au codage des données " +"binaires pour leur transfert par courriel, comme éléments d'une URL ou d'une " +"requête HTTP POST. L'algorithme d'encodage ne doit pas être confondu avec le " +"programme :program:`uuencode`." #: ../Doc/library/base64.rst:27 msgid "" @@ -48,6 +58,12 @@ msgid "" "or strings containing ASCII to :class:`bytes`. Both base-64 alphabets " "defined in :rfc:`3548` (normal, and URL- and filesystem-safe) are supported." msgstr "" +"Ce module présente deux interfaces. L'interface moderne gère l'encodage d':" +"term:`objets octet-compatibles ` en :class:`bytes` ASCII " +"ainsi que le décodage d':term:`objets octet-compatibles ` " +"ou de chaînes de caractères contenant de l'ASCII en :class:`bytes`. Les deux " +"alphabets de l'algorithme base64 définis par la :rfc:`3548` (normal et sûr " +"pour les systèmes de fichiers ou URL) sont gérés." #: ../Doc/library/base64.rst:33 msgid "" @@ -58,12 +74,22 @@ msgid "" "looking for :rfc:`2045` support you probably want to be looking at the :mod:" "`email` package instead." msgstr "" +"L'interface historique ne permet pas le décodage des chaînes de caractères " +"mais fournit des fonctions permettant d'encoder et décoder depuis et vers " +"des :term:`objets fichiers `. Elle ne gère que l'alphabet " +"base64 standard et ajoute une nouvelle ligne tous les 76 caractères, comme " +"spécifié par la :rfc:`2045`. Notez que le paquet :mod:`email` est " +"probablement ce que vous cherchez si vous souhaitez une implémentation de " +"la :rfc:`2045`." #: ../Doc/library/base64.rst:41 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of the " "modern interface." msgstr "" +"Les chaînes de caractères Unicode contenant uniquement des caractères ASCII " +"sont désormais acceptées par les fonctions de décodage de l'interface " +"moderne." #: ../Doc/library/base64.rst:45 msgid "" @@ -71,6 +97,9 @@ msgid "" "encoding and decoding functions in this module. Ascii85/Base85 support " "added." msgstr "" +"Tous les :term:`objets octet-compatibles ` sont désormais " +"acceptés par l'ensemble des fonctions d'encodage et de décodage de ce " +"module. La gestion de Ascii85/base85 a été ajoutée." #: ../Doc/library/base64.rst:49 msgid "The modern interface provides:" @@ -81,6 +110,8 @@ msgid "" "Encode the :term:`bytes-like object` *s* using Base64 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:56 msgid "" @@ -90,12 +121,21 @@ msgid "" "generate URL or filesystem safe Base64 strings. The default is ``None``, " "for which the standard Base64 alphabet is used." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet " +"alternatif pour les délimiteurs ``+`` et ``/``. Cela permet de générer des " +"chaînes de caractères base64 pouvant être utilisées pour une URL ou dans un " +"système de fichiers. La valeur par défaut est ``None``, auquel cas " +"l'alphabet standard base64 est utilisé." #: ../Doc/library/base64.rst:65 msgid "" "Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:68 msgid "" @@ -103,11 +143,16 @@ msgid "" "at least length 2 (additional characters are ignored) which specifies the " "alternative alphabet used instead of the ``+`` and ``/`` characters." msgstr "" +"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " +"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un " +"alphabet alternatif pour les délimiteurs ``+`` et ``/``." #: ../Doc/library/base64.rst:72 msgid "" "A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue." #: ../Doc/library/base64.rst:75 msgid "" @@ -116,18 +161,28 @@ msgid "" "the padding check. If *validate* is ``True``, these non-alphabet characters " "in the input result in a :exc:`binascii.Error`." msgstr "" +"Si *validate* est ``False`` (par défaut), les caractères qui ne sont ni dans " +"l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant " +"la vérification de la longueur du remplissage. Si *validate* est ``True``, " +"les caractères hors de l'alphabet de l'entrée produisent une :exc:`binascii." +"Error`." #: ../Doc/library/base64.rst:84 msgid "" "Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " "return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* en " +"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:90 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the standard " "Base64 alphabet and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie les :" +"class:`bytes` décodés." #: ../Doc/library/base64.rst:96 msgid "" @@ -136,6 +191,10 @@ msgid "" "`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " "The result can still contain ``=``." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"un alphabet sûr pour les URL et systèmes de fichiers qui substitue ``-`` et " +"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie les :class:" +"`bytes` encodés." #: ../Doc/library/base64.rst:105 msgid "" @@ -144,24 +203,36 @@ msgid "" "instead of ``/`` in the standard Base64 alphabet, and return the decoded :" "class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* utilisant un alphabet sûr pour les URL et systèmes " +"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet " +"standard base64 et renvoie les :class:`bytes` décodés." #: ../Doc/library/base64.rst:114 msgid "" "Encode the :term:`bytes-like object` *s* using Base32 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base32 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:120 msgid "" "Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:123 ../Doc/library/base64.rst:150 msgid "" "Optional *casefold* is a flag specifying whether a lowercase alphabet is " "acceptable as input. For security purposes, the default is ``False``." msgstr "" +"L'option *casefold* est un drapeau spécifiant si l'utilisation d'un alphabet " +"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, " +"cette option est à ``False`` par défaut." #: ../Doc/library/base64.rst:127 msgid "" @@ -173,30 +244,46 @@ msgid "" "purposes the default is ``None``, so that 0 and 1 are not allowed in the " "input." msgstr "" +"La :rfc:`3548` autorise une correspondance optionnelle du chiffre 0 (zéro) " +"vers la lettre O (/o/) ainsi que du chiffre 1 (un) vers soit la lettre I (/" +"i/) ou la lettre L (/l/). L'argument optionnel *map01*, lorsqu'il diffère de " +"``None``, spécifie en quelle lettre le chiffre 1 doit être transformé " +"(lorsque *map01* n'est pas ``None``, le chiffre 0 est toujours transformé en " +"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle " +"sorte que 0 et 1 ne sont pas autorisés dans l'entrée." #: ../Doc/library/base64.rst:134 ../Doc/library/base64.rst:154 msgid "" "A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " "are non-alphabet characters present in the input." msgstr "" +"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " +"longueur attendue ou si elle contient des caractères hors de l'alphabet." #: ../Doc/library/base64.rst:141 msgid "" "Encode the :term:`bytes-like object` *s* using Base16 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base16 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:147 msgid "" "Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:161 msgid "" "Encode the :term:`bytes-like object` *b* using Ascii85 and return the " "encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:164 msgid "" @@ -204,6 +291,10 @@ msgid "" "instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " "feature is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:168 msgid "" @@ -211,24 +302,35 @@ msgid "" "characters added to it. If this is non-zero, each output line will be at " "most this many characters long." msgstr "" +"*wrapcol* contrôle l'ajout de caractères de saut de ligne (``b'\\n'``) à la " +"sortie. Chaque ligne de sortie contient au maximum *wrapcol* caractères si " +"cette option diffère de zéro." #: ../Doc/library/base64.rst:172 msgid "" "*pad* controls whether the input is padded to a multiple of 4 before " "encoding. Note that the ``btoa`` implementation always pads." msgstr "" +"*pad* spécifie l'ajout de caractères de remplissage (*padding* en anglais) à " +"l'entrée jusqu'à ce que sa longueur soit un multiple de 4 avant encodage. " +"Notez que l'implémentation ``btoa`` effectue systématiquement ce remplissage." #: ../Doc/library/base64.rst:175 msgid "" "*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " "``~>``, which is used by the Adobe implementation." msgstr "" +"*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée par " +"``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe." #: ../Doc/library/base64.rst:183 msgid "" "Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " +"décodés." #: ../Doc/library/base64.rst:186 msgid "" @@ -236,12 +338,18 @@ msgid "" "be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " "is not supported by the \"standard\" Ascii85 encoding." msgstr "" +"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " +"de quatre espaces consécutives (ASCII `0x20`) comme pris en charge par " +"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " +"Ascii85." #: ../Doc/library/base64.rst:190 msgid "" "*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " "is framed with <~ and ~>)." msgstr "" +"*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 " +"(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)." #: ../Doc/library/base64.rst:193 msgid "" @@ -250,18 +358,28 @@ msgid "" "whitespace characters, and by default contains all whitespace characters in " "ASCII." msgstr "" +"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " +"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " +"des caractères d'espacement et contient par défaut l'ensemble des caractères " +"d'espacement de l'alphabet ASCII." #: ../Doc/library/base64.rst:203 msgid "" "Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" "style binary diffs) and return the encoded :class:`bytes`." msgstr "" +"Encode un :term:`objet byte-compatible ` *s* en utilisant " +"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* " +"sur des données binaires) et renvoie les :class:`bytes` encodés." #: ../Doc/library/base64.rst:206 msgid "" "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " "multiple of 4 bytes before encoding." msgstr "" +"Si *pad* est vrai, des caractères de remplissage ``b'``0'`` (*padding* en " +"anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un multiple " +"de 4 octets avant encodage." #: ../Doc/library/base64.rst:214 msgid "" @@ -269,6 +387,10 @@ msgid "" "return the decoded :class:`bytes`. Padding is implicitly removed, if " "necessary." msgstr "" +"Décode un :term:`objet octet-compatible ` ou une chaîne " +"de caractères ASCII *b* encodé en base85 et renvoie les :class:`bytes` " +"décodés. Les caractères de remplissage sont implicitement retirés si " +"nécessaire." #: ../Doc/library/base64.rst:221 msgid "The legacy interface:" @@ -281,16 +403,23 @@ msgid "" "objects `. *input* will be read until ``input.readline()`` " "returns an empty bytes object." msgstr "" +"Décode le contenu d'un fichier binaire *input* et écrit les données binaires " +"résultantes dans le fichier *output*. *input* et *output* doivent être des :" +"term:`objets fichiers `. *input* est lu jusqu'à ce que ``input." +"readline()`` renvoie un objet *bytes* vide." #: ../Doc/library/base64.rst:233 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." msgstr "" +"Décode un :term:`objet octet-compatible ` *s* devant " +"contenir une ou plusieurs lignes de données encodées en base64 et renvoie " +"les :class:`bytes` décodés." #: ../Doc/library/base64.rst:240 msgid "Deprecated alias of :func:`decodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`decodebytes`." #: ../Doc/library/base64.rst:247 msgid "" @@ -301,6 +430,13 @@ msgid "" "(``b'\\n'``) after every 76 bytes of the output, as well as ensuring that " "the output always ends with a newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode le contenu du fichier binaire *input* et écrit les données encodées " +"en base64 résultantes dans le fichier *output. *input* et *output* doivent " +"être des :term:`objets fichiers `. *input* est lu jusqu'à ce " +"que ``input.readline()`` renvoie un objet *bytes* vide. :func:`encode` " +"insère un caractère de saut de ligne (``b'\\n'``) tous les 76 octets de " +"sortie et assure que celle-ci se termine par une nouvelle ligne, comme " +"spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:257 msgid "" @@ -309,10 +445,15 @@ msgid "" "newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " "that there is a trailing newline, as per :rfc:`2045` (MIME)." msgstr "" +"Encode un :term:`objet octet-compatible ` *s* pouvant " +"contenir des données binaires arbitraires et renvoie les :class:`bytes` " +"contenant les données encodées en base64. Un caractère de saut de ligne " +"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine " +"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)." #: ../Doc/library/base64.rst:266 msgid "Deprecated alias of :func:`encodebytes`." -msgstr "" +msgstr "Alias obsolète de :func:`encodebytes`." #: ../Doc/library/base64.rst:271 msgid "An example usage of the module:" @@ -335,12 +476,17 @@ msgid "" "Mechanisms for Specifying and Describing the Format of Internet Message " "Bodies" msgstr "" +":rfc:`1521` — MIME (*Multipurpose Internet Mail Extensions*) *Part One: " +"Mechanisms for Specifying and Describing the Format of Internet Message " +"Bodies*" #: ../Doc/library/base64.rst:288 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." msgstr "" +"La Section 5.2, \"*Base64 Content-Transfer-Encoding*\", donne la définition " +"de l'encodage base64." #~ msgid "``encodestring`` is a deprecated alias." #~ msgstr "``encodestring`` est un alias obsolète." diff --git a/library/bisect.po b/library/bisect.po index 09b657316..2e2ee1652 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -136,7 +136,7 @@ msgstr "" "Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " "éléments, mais peuvent être étranges et peu naturelles à utiliser pour " "rechercher des éléments. Les cinq fonctions suivantes montrent comment les " -"transformer en recherche plus classique pour les listes triées : ::" +"transformer en recherche plus classique pour les listes triées ::" #: ../Doc/library/bisect.rst:114 msgid "Other Examples" @@ -153,7 +153,7 @@ msgstr "" "tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " "note (sous forme de lettre) correspondant à un note sous forme de points, en " "se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " -"'B', etc… : ::" +"'B', etc… ::" #: ../Doc/library/bisect.rst:130 msgid "" @@ -174,4 +174,4 @@ msgid "" "of the record in question::" msgstr "" "Il est préférable d'utiliser une liste de clefs pré-calculée pour chercher " -"l'index de l'enregistrement en question : ::" +"l'index de l'enregistrement en question ::" diff --git a/library/bz2.po b/library/bz2.po index 90a4f9baf..d8d83a852 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -16,45 +16,55 @@ msgstr "" #: ../Doc/library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" -msgstr "" +msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" #: ../Doc/library/bz2.rst:12 msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/bz2.py`" #: ../Doc/library/bz2.rst:16 msgid "" "This module provides a comprehensive interface for compressing and " "decompressing data using the bzip2 compression algorithm." msgstr "" +"Ce module fournit une interface complète pour compresser et décompresser les " +"données en utilisant l'algorithme de compression *bzip2*." #: ../Doc/library/bz2.rst:19 msgid "The :mod:`bz2` module contains:" -msgstr "Le module :mod:`bz2` contiens :" +msgstr "Le module :mod:`bz2` contient :" #: ../Doc/library/bz2.rst:21 msgid "" "The :func:`.open` function and :class:`BZ2File` class for reading and " "writing compressed files." msgstr "" +"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " +"des fichiers compressés." #: ../Doc/library/bz2.rst:23 msgid "" "The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " "incremental (de)compression." msgstr "" +"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " +"(dé)compression incrémentielle." #: ../Doc/library/bz2.rst:25 msgid "" "The :func:`compress` and :func:`decompress` functions for one-shot " "(de)compression." msgstr "" +"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " +"en une seule fois." #: ../Doc/library/bz2.rst:28 msgid "" "All of the classes in this module may safely be accessed from multiple " "threads." msgstr "" +"Toutes les classes de ce module peuvent en toute sécurité être accédées " +"depuis de multiples fils d'exécution." #: ../Doc/library/bz2.rst:32 msgid "(De)compression of files" @@ -65,6 +75,8 @@ msgid "" "Open a bzip2-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " +"renvoyant en :term:`file object`." #: ../Doc/library/bz2.rst:39 msgid "" @@ -72,6 +84,9 @@ msgid "" "an actual filename (a :class:`str` or :class:`bytes` object), or an existing " "file object to read from or write to." msgstr "" +"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " +"*filename* peut être un nom de fichier réel (un objet :class:`str` ou :class:" +"`bytes`), ou un objet fichier existant à lire ou à écrire." #: ../Doc/library/bz2.rst:43 msgid "" @@ -79,12 +94,17 @@ msgid "" "``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " "``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." msgstr "" +"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " +"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " +"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." #: ../Doc/library/bz2.rst:47 msgid "" "The *compresslevel* argument is an integer from 1 to 9, as for the :class:" "`BZ2File` constructor." msgstr "" +"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " +"constructeur :class:`BZ2File`." #: ../Doc/library/bz2.rst:50 msgid "" @@ -93,6 +113,10 @@ msgid "" "this case, the *encoding*, *errors* and *newline* arguments must not be " "provided." msgstr "" +"Pour le mode binaire, cette fonction est équivalente au constructeur :class:" +"`BZ2File` : ``BZ2File(filename, mode, compresslevel=compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* arguments ne doivent " +"pas être fournis." #: ../Doc/library/bz2.rst:55 msgid "" @@ -100,10 +124,13 @@ msgid "" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " +"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " +"de gestion des erreurs et les fins de ligne." #: ../Doc/library/bz2.rst:61 ../Doc/library/bz2.rst:127 msgid "The ``'x'`` (exclusive creation) mode was added." -msgstr "Le mode ``'x'`` (création exclusive) est créé." +msgstr "Le mode ``'x'`` (création exclusive) est ajouté." #: ../Doc/library/bz2.rst:64 ../Doc/library/bz2.rst:134 msgid "Accepts a :term:`path-like object`." @@ -119,6 +146,9 @@ msgid "" "file directly. Otherwise, *filename* should be a :term:`file object`, which " "will be used to read or write the compressed data." msgstr "" +"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " +"fichier directement. Autrement, *filename* doit être un :term:`file object`, " +"qui est utilisé pour lire ou écrire les données compressées." #: ../Doc/library/bz2.rst:76 msgid "" @@ -127,12 +157,18 @@ msgid "" "can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " "respectively." msgstr "" +"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " +"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " +"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " +"``'xb'`` et ``'ab'``." #: ../Doc/library/bz2.rst:81 msgid "" "If *filename* is a file object (rather than an actual file name), a mode of " "``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." msgstr "" +"Si *filename* est un objet fichier (plutôt que le nom de fichier réel), le " +"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." #: ../Doc/library/bz2.rst:84 msgid "The *buffering* argument is ignored. Its use is deprecated." @@ -144,12 +180,18 @@ msgid "" "``1`` and ``9`` specifying the level of compression: ``1`` produces the " "least compression, and ``9`` (default) produces the most compression." msgstr "" +"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre " +"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la " +"compression la moins forte, et ``9`` (par défaut) la compression la plus " +"forte." #: ../Doc/library/bz2.rst:90 msgid "" "If *mode* is ``'r'``, the input file may be the concatenation of multiple " "compressed streams." msgstr "" +"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " +"plusieurs flux compressés." #: ../Doc/library/bz2.rst:93 msgid "" @@ -157,10 +199,13 @@ msgid "" "BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " "and the :keyword:`with` statement are supported." msgstr "" +":class:`BZ2File` fournit tous les membres spécifiés par la classe :class:`io." +"BufferedIOBase`, excepté les méthodes :meth:`detach` et :meth:`truncate`. " +"L'itération et l'instruction :keyword:`with` sont prises en charge." #: ../Doc/library/bz2.rst:97 msgid ":class:`BZ2File` also provides the following method:" -msgstr "" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" #: ../Doc/library/bz2.rst:101 msgid "" @@ -168,6 +213,9 @@ msgid "" "of data will be returned (unless at EOF). The exact number of bytes returned " "is unspecified." msgstr "" +"Renvoie des données en mémoire tampon sans avancer la position du fichier. " +"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " +"d'octets renvoyés n'est pas spécifié." #: ../Doc/library/bz2.rst:105 msgid "" @@ -176,38 +224,50 @@ msgid "" "the :class:`BZ2File` was constructed by passing a file object for " "*filename*)." msgstr "" +"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " +"fichier de la classe :class:`BZ2File`, il peut changer la position de " +"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " +"construite en passant un objet fichier à *filename*)." #: ../Doc/library/bz2.rst:112 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/bz2.rst:115 msgid "" "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" "meth:`read1` and :meth:`readinto` methods were added." msgstr "" +"Les méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:" +"`writable`, :meth:`read1` et :meth:`readinto` ont été ajoutées." #: ../Doc/library/bz2.rst:119 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." msgstr "" +"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " +"fichier réel a été ajoutée." #: ../Doc/library/bz2.rst:123 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." msgstr "" +"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " +"des fichiers *multiflux*." #: ../Doc/library/bz2.rst:130 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." #: ../Doc/library/bz2.rst:139 msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentale" +msgstr "(Dé)compression incrémentielle" #: ../Doc/library/bz2.rst:143 msgid "" @@ -215,35 +275,48 @@ msgid "" "incrementally. For one-shot compression, use the :func:`compress` function " "instead." msgstr "" +"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " +"compresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`compress`." #: ../Doc/library/bz2.rst:147 ../Doc/library/bz2.rst:235 msgid "" "*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " "default is ``9``." msgstr "" +"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. " +"Sa valeur par défaut est ``9``." #: ../Doc/library/bz2.rst:152 msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." msgstr "" +"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " +"compressées si possible, ou autrement une chaîne d'octet vide." #: ../Doc/library/bz2.rst:155 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." msgstr "" +"Quand vous avez fini de fournir des données au compresseur, appelez la " +"méthode :meth:`flush` pour finir le processus de compression." #: ../Doc/library/bz2.rst:161 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." msgstr "" +"Finit le processus de compression. Renvoie la donnée compressée restante " +"dans les tampons internes." #: ../Doc/library/bz2.rst:164 msgid "" "The compressor object may not be used after this method has been called." msgstr "" +"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " +"appelée." #: ../Doc/library/bz2.rst:169 msgid "" @@ -251,6 +324,9 @@ msgid "" "incrementally. For one-shot compression, use the :func:`decompress` function " "instead." msgstr "" +"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " +"décompresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`decompress`." #: ../Doc/library/bz2.rst:174 msgid "" @@ -259,6 +335,11 @@ msgid "" "need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " "must use a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, à la différence de :func:`decompress` et :class:" +"`BZ2File`. Si vous avez besoin de décompresser une entrée *multiflux* avec " +"la classe :class:`BZ2Decompressor`, vous devez utiliser un nouveau " +"décompresseur pour chaque flux." #: ../Doc/library/bz2.rst:181 msgid "" @@ -267,6 +348,11 @@ msgid "" "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." #: ../Doc/library/bz2.rst:187 msgid "" @@ -276,6 +362,11 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." #: ../Doc/library/bz2.rst:194 msgid "" @@ -283,6 +374,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." #: ../Doc/library/bz2.rst:199 msgid "" @@ -290,6 +384,9 @@ msgid "" "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." #: ../Doc/library/bz2.rst:203 msgid "Added the *max_length* parameter." @@ -297,7 +394,7 @@ msgstr "Ajout du paramètre *max_length*." #: ../Doc/library/bz2.rst:208 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." #: ../Doc/library/bz2.rst:215 msgid "Data found after the end of the compressed stream." @@ -308,12 +405,16 @@ msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." msgstr "" +"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " +"sera ``b''``." #: ../Doc/library/bz2.rst:222 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." #: ../Doc/library/bz2.rst:229 msgid "One-shot (de)compression" @@ -321,29 +422,35 @@ msgstr "(Dé)compression en une fois" #: ../Doc/library/bz2.rst:233 msgid "Compress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Compresse *data*, un :term:`bytes-like object `." #: ../Doc/library/bz2.rst:238 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "" +"Pour la compression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Compressor`." #: ../Doc/library/bz2.rst:243 msgid "Decompress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Décompresse *data*, un :term:`bytes-like object `." #: ../Doc/library/bz2.rst:245 msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." msgstr "" +"Si *data* est la concaténation de multiples flux compressés, décompresse " +"tous les flux." #: ../Doc/library/bz2.rst:248 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" +"Pour une décompression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Decompressor`." #: ../Doc/library/bz2.rst:250 msgid "Support for multi-stream inputs was added." -msgstr "" +msgstr "Prise en charge des entrées *multiflux*." #: ../Doc/library/bz2.rst:256 msgid "Examples of usage" @@ -352,16 +459,22 @@ msgstr "Exemples d'utilisation" #: ../Doc/library/bz2.rst:258 msgid "Below are some examples of typical usage of the :mod:`bz2` module." msgstr "" +"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du " +"module :mod:`bz2`." #: ../Doc/library/bz2.rst:260 msgid "" "Using :func:`compress` and :func:`decompress` to demonstrate round-trip " "compression:" msgstr "" +"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer " +"une compression aller-retour :" #: ../Doc/library/bz2.rst:281 msgid "Using :class:`BZ2Compressor` for incremental compression:" msgstr "" +"Utilise la classe :class:`BZ2Compressor` pour une compression " +"incrémentielle :" #: ../Doc/library/bz2.rst:300 msgid "" @@ -369,6 +482,10 @@ msgid "" "\"` chunks). Random data tends to compress poorly, while ordered, " "repetitive data usually yields a high compression ratio." msgstr "" +"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un " +"flux de blocs de `b\"z\"`). Les données aléatoires ont tendance à mal se " +"compresser, alors que les données répétitives ou ordonnées donnent " +"généralement un taux de compression élevé." #: ../Doc/library/bz2.rst:304 #, fuzzy diff --git a/library/calendar.po b/library/calendar.po index 6bfccf1c6..32610fe7f 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" -msgstr "" +msgstr ":mod:`calendar` — Fonctions calendaires générales" #: ../Doc/library/calendar.rst:10 msgid "**Source code:** :source:`Lib/calendar.py`" @@ -277,12 +277,17 @@ msgid "" "Return a month's calendar as an HTML table. If *withyear* is true the year " "will be included in the header, otherwise just the month name will be used." msgstr "" +"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " +"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " +"mois sera utilisé." #: ../Doc/library/calendar.rst:186 msgid "" "Return a year's calendar as an HTML table. *width* (defaulting to 3) " "specifies the number of months per row." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " +"(par défaut à 3) spécifie le nombre de mois par ligne." #: ../Doc/library/calendar.rst:192 msgid "" @@ -292,59 +297,81 @@ msgid "" "be used. *encoding* specifies the encoding to be used for the output " "(defaulting to the system default encoding)." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " +"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " +"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " +"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " +"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " +"défaut du système)." #: ../Doc/library/calendar.rst:199 msgid "" ":class:`!HTMLCalendar` has the following attributes you can override to " "customize the CSS classes used by the calendar:" msgstr "" +":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez " +"surcharger pour personnaliser les classes CSS utilisées par le calendrier :" #: ../Doc/library/calendar.rst:204 msgid "" "A list of CSS classes used for each weekday. The default class list is::" msgstr "" +"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste " +"par défaut de la classe est ::" #: ../Doc/library/calendar.rst:208 msgid "more styles can be added for each day::" -msgstr "" +msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::" #: ../Doc/library/calendar.rst:212 msgid "Note that the length of this list must be seven items." -msgstr "" +msgstr "Notez que la longueur de cette liste doit être de sept éléments." #: ../Doc/library/calendar.rst:217 msgid "The CSS class for a weekday occurring in the previous or coming month." msgstr "" +"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent " +"ou à venir." #: ../Doc/library/calendar.rst:224 msgid "" "A list of CSS classes used for weekday names in the header row. The default " "is the same as :attr:`cssclasses`." msgstr "" +"Une liste de classes CSS utilisées pour les noms des jours de la semaine " +"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`." #: ../Doc/library/calendar.rst:232 msgid "" "The month's head CSS class (used by :meth:`formatmonthname`). The default " "value is ``\"month\"``." msgstr "" +"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La " +"valeur par défaut est ``\"month\"``." #: ../Doc/library/calendar.rst:240 msgid "" "The CSS class for the whole month's table (used by :meth:`formatmonth`). The " "default value is ``\"month\"``." msgstr "" +"La classe CSS pour la table du mois entière (utilisé par :meth:" +"`formatmonth`). La valeur par défaut est ``\"month\"``." #: ../Doc/library/calendar.rst:248 msgid "" "The CSS class for the whole year's table of tables (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour la table entière des tables de l'année (utilisé par :meth:" +"`formatyear`). La valeur par défaut est ``\"year\"``." #: ../Doc/library/calendar.rst:256 msgid "" "The CSS class for the table head for the whole year (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé par :" +"meth:`formatyear`). La valeur par défaut est ``\"year\"``." #: ../Doc/library/calendar.rst:262 msgid "" @@ -352,10 +379,15 @@ msgid "" "singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " "single CSS class with a space separated list of CSS classes, for example::" msgstr "" +"Notez que même si le nommage ci-dessus des attributs de classe est au " +"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer " +"la seule classe CSS par une liste de classes CSS séparées par une espace, " +"par exemple ::" #: ../Doc/library/calendar.rst:268 msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" msgstr "" +"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::" #: ../Doc/library/calendar.rst:280 msgid "" @@ -364,6 +396,11 @@ msgid "" "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Le constructeur de cette sous-classe de :class:`TextCalendar` accepte un " +"paramètre régional *locale* : une langue au format ``\"fr_FR.UTF-8\"``, et " +"renvoie les noms de mois et de jours de la semaine traduits dans cette " +"langue. Si ce lieu possède un encodage, toutes les chaînes contenant des " +"noms de mois ou de jours de la semaine seront renvoyées en Unicode." #: ../Doc/library/calendar.rst:288 msgid "" @@ -372,6 +409,11 @@ msgid "" "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Cette sous-classe de :class:`HTMLCalendar` peut recevoir un nom de lieu dans " +"le constructeur et renvoie les noms de mois et de jours de la semaine selon " +"le lieu spécifié. Si ce lieu possède un encodage, toutes les chaînes " +"contenant des noms de mois ou de jours de la semaine seront renvoyées en " +"Unicode." #: ../Doc/library/calendar.rst:295 msgid "" @@ -380,10 +422,16 @@ msgid "" "Because the current locale is a process-wide setting, they are not thread-" "safe." msgstr "" +"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " +"classes changent temporairement le paramètre régional courant pour le " +"paramètre donné via *locale* . Comme le paramètre régional est un réglage de " +"l'ensemble du processus, elles ne sont pas utilisables de manière sûre avec " +"les programmes à fils d'exécution multiples." #: ../Doc/library/calendar.rst:300 msgid "For simple text calendars this module provides the following functions." msgstr "" +"Pour les calendriers texte simples ce module fournit les fonctions suivantes." #: ../Doc/library/calendar.rst:304 msgid "" @@ -392,43 +440,62 @@ msgid "" "`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are " "provided for convenience. For example, to set the first weekday to Sunday::" msgstr "" +"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " +"débute chaque semaine. Les valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:" +"`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, et :" +"const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " +"premier jour de la semaine à dimanche ::" #: ../Doc/library/calendar.rst:315 msgid "Returns the current setting for the weekday to start each week." msgstr "" +"Renvoie le réglage courant pour le jour de la semaine débutant chaque " +"semaine." #: ../Doc/library/calendar.rst:320 msgid "" "Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." msgstr "" +"Renvoie :const:`True` si *year* est une année bissextile, sinon :const:" +"`False`." #: ../Doc/library/calendar.rst:325 msgid "" "Returns the number of leap years in the range from *y1* to *y2* (exclusive), " "where *y1* and *y2* are years." msgstr "" +"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " +"inclus), où *y1* et *y2* sont des années." #: ../Doc/library/calendar.rst:328 msgid "This function works for ranges spanning a century change." msgstr "" +"Cette fonction marche pour les périodes couvrant un changement de siècle." #: ../Doc/library/calendar.rst:333 msgid "" "Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " "*month* (``1``--``12``), *day* (``1``--``31``)." msgstr "" +"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " +"*month* (``1``--``12``), *day* (``1``--``31``)." #: ../Doc/library/calendar.rst:339 msgid "" "Return a header containing abbreviated weekday names. *n* specifies the " "width in characters for one weekday." msgstr "" +"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " +"la largeur en caractères pour un jour de la semaine." #: ../Doc/library/calendar.rst:345 msgid "" "Returns weekday of first day of the month and number of days in month, for " "the specified *year* and *month*." msgstr "" +"Renvoie le jour de la semaine correspondant au premier jour du mois et le " +"nombre de jours dans le mois, pour l'année *year* et le mois *month* " +"spécifiés." #: ../Doc/library/calendar.rst:351 msgid "" @@ -439,24 +506,31 @@ msgstr "" #: ../Doc/library/calendar.rst:358 msgid "Prints a month's calendar as returned by :func:`month`." -msgstr "" +msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." #: ../Doc/library/calendar.rst:363 msgid "" "Returns a month's calendar in a multi-line string using the :meth:" "`formatmonth` of the :class:`TextCalendar` class." msgstr "" +"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " +"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." #: ../Doc/library/calendar.rst:369 msgid "" "Prints the calendar for an entire year as returned by :func:`calendar`." msgstr "" +"Affiche le calendrier pour une année entière tel que renvoyé par :func:" +"`calendar`." #: ../Doc/library/calendar.rst:374 msgid "" "Returns a 3-column calendar for an entire year as a multi-line string using " "the :meth:`formatyear` of the :class:`TextCalendar` class." msgstr "" +"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " +"multi-lignes en utilisant la méthode :meth:`formatyear` de la classe :class:" +"`TextCalendar`." #: ../Doc/library/calendar.rst:380 msgid "" @@ -466,20 +540,29 @@ msgid "" "encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " "inverse." msgstr "" +"Une fonction sans rapport mais pratique, qui prend un n-uplet temporel tel " +"que celui renvoyé par la fonction :func:`~time.gmtime` dans le module :mod:" +"`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en anglais) " +"correspondante, en supposant une époque de 1970, et l'encodage POSIX. En " +"fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de l'autre." #: ../Doc/library/calendar.rst:387 msgid "The :mod:`calendar` module exports the following data attributes:" -msgstr "" +msgstr "Le module :mod:`calendar` exporte les attributs suivants :" #: ../Doc/library/calendar.rst:391 msgid "An array that represents the days of the week in the current locale." msgstr "" +"Un tableau qui représente les jours de la semaine pour les paramètres " +"régionaux actifs." #: ../Doc/library/calendar.rst:396 msgid "" "An array that represents the abbreviated days of the week in the current " "locale." msgstr "" +"Un tableau qui représente les jours de la semaine en abrégé pour les " +"paramètres régionaux actifs." #: ../Doc/library/calendar.rst:401 msgid "" @@ -487,6 +570,10 @@ msgid "" "follows normal convention of January being month number 1, so it has a " "length of 13 and ``month_name[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année pour les paramètres régionaux " +"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " +"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " +"vide." #: ../Doc/library/calendar.rst:408 msgid "" @@ -494,6 +581,10 @@ msgid "" "locale. This follows normal convention of January being month number 1, so " "it has a length of 13 and ``month_abbr[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " +"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " +"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " +"chaîne vide." #: ../Doc/library/calendar.rst:417 msgid "Module :mod:`datetime`" @@ -504,6 +595,8 @@ msgid "" "Object-oriented interface to dates and times with similar functionality to " "the :mod:`time` module." msgstr "" +"Interface orientée objet pour les dates et les heures avec des " +"fonctionnalités similaires au module :mod:`time`." #: ../Doc/library/calendar.rst:419 msgid "Module :mod:`time`" @@ -511,4 +604,4 @@ msgstr "Module :mod:`time`" #: ../Doc/library/calendar.rst:420 msgid "Low-level time related functions." -msgstr "" +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/cgitb.po b/library/cgitb.po index 7c549d02c..fef0663b1 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -51,7 +51,7 @@ msgstr "" msgid "To enable this feature, simply add this to the top of your CGI script::" msgstr "" "Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " -"script CGI : ::" +"script CGI ::" #: ../Doc/library/cgitb.rst:35 msgid "" diff --git a/library/codecs.po b/library/codecs.po index 0fe48ed33..7ae3c2e82 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" -msgstr "" +msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" #: ../Doc/library/codecs.rst:11 msgid "**Source code:** :source:`Lib/codecs.py`" -msgstr "**Code source :** :source:`Lib/codecs.py`" +msgstr "**Code source :** :source:`Lib/codecs.py`" #: ../Doc/library/codecs.rst:23 msgid "" @@ -33,16 +33,29 @@ msgid "" "features are restricted to use specifically with :term:`text encodings `, or with codecs that encode to :class:`bytes`." msgstr "" +"Ce module définit les classes de base pour les codecs (encodeurs et " +"décodeurs) standards Python et fournit l'interface avec le registre des " +"codecs internes à Python, qui gère le processus de recherche de codecs et de " +"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " +"texte `, qui encode du texte vers des séquences d'octets " +"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " +"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " +"personnalisés peuvent encoder et décoder des types arbitraires, mais " +"l'utilisation de certaines fonctionnalités du module est restreinte aux :" +"term:`encodeurs de texte ` ou aux codecs qui encodent vers :" +"class:`bytes`." #: ../Doc/library/codecs.rst:33 msgid "" "The module defines the following functions for encoding and decoding with " "any codec:" msgstr "" +"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " +"de n'importe quel codec :" #: ../Doc/library/codecs.rst:38 msgid "Encodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." #: ../Doc/library/codecs.rst:40 msgid "" @@ -52,10 +65,16 @@ msgid "" "`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." #: ../Doc/library/codecs.rst:48 msgid "Decodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." #: ../Doc/library/codecs.rst:50 msgid "" @@ -65,16 +84,25 @@ msgid "" "`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." #: ../Doc/library/codecs.rst:56 msgid "The full details for each codec can also be looked up directly:" msgstr "" +"Les détails complets de chaque codec peuvent être examinés directement :" #: ../Doc/library/codecs.rst:60 msgid "" "Looks up the codec info in the Python codec registry and returns a :class:" "`CodecInfo` object as defined below." msgstr "" +"Recherche les informations relatives au codec dans le registre des codecs de " +"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." #: ../Doc/library/codecs.rst:63 msgid "" @@ -83,16 +111,23 @@ msgid "" "object is found, a :exc:`LookupError` is raised. Otherwise, the :class:" "`CodecInfo` object is stored in the cache and returned to the caller." msgstr "" +"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " +"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " +"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:" +"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache " +"et renvoyé vers l'appelant." #: ../Doc/library/codecs.rst:70 msgid "" "Codec details when looking up the codec registry. The constructor arguments " "are stored in attributes of the same name:" msgstr "" +"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " +"constructeur sont stockés dans les attributs éponymes :" #: ../Doc/library/codecs.rst:76 msgid "The name of the encoding." -msgstr "" +msgstr "Le nom de l'encodeur." #: ../Doc/library/codecs.rst:82 msgid "" @@ -102,6 +137,11 @@ msgid "" "objects>`). The functions or methods are expected to work in a stateless " "mode." msgstr "" +"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " +"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:" +"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs " +"`). Les fonctions et méthodes sont censées fonctionner sans " +"état interne." #: ../Doc/library/codecs.rst:92 msgid "" @@ -110,6 +150,11 @@ msgid "" "`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. " "Incremental codecs can maintain state." msgstr "" +"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " +"doivent avoir respectivement les mêmes interfaces que celles définies par " +"les classes de base :class:`IncrementalEncoder` et :class:" +"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états " +"internes." #: ../Doc/library/codecs.rst:101 msgid "" @@ -117,69 +162,94 @@ msgid "" "the interface defined by the base classes :class:`StreamWriter` and :class:" "`StreamReader`, respectively. Stream codecs can maintain state." msgstr "" +"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " +"avoir les mêmes interfaces que celles définies par les classes de base :" +"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de " +"flux peuvent conserver un état interne." #: ../Doc/library/codecs.rst:106 msgid "" "To simplify access to the various codec components, the module provides " "these additional functions which use :func:`lookup` for the codec lookup:" msgstr "" +"Pour simplifier l'accès aux différents composants du codec, le module " +"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " +"pour la recherche du codec :" #: ../Doc/library/codecs.rst:111 msgid "" "Look up the codec for the given encoding and return its encoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " +"d'encodage." #: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120 #: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154 msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." -msgstr "" +msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." #: ../Doc/library/codecs.rst:118 msgid "" "Look up the codec for the given encoding and return its decoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " +"décodage." #: ../Doc/library/codecs.rst:125 msgid "" "Look up the codec for the given encoding and return its incremental encoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " +"d'encodage incrémental ou la fonction usine." #: ../Doc/library/codecs.rst:128 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental encoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas l'encodage incrémental." #: ../Doc/library/codecs.rst:134 msgid "" "Look up the codec for the given encoding and return its incremental decoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " +"décodage incrémental ou la fonction usine." #: ../Doc/library/codecs.rst:137 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental decoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas le décodage incrémental." #: ../Doc/library/codecs.rst:143 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamReader` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamReader` ou la fonction usine." #: ../Doc/library/codecs.rst:151 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamWriter` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamWriter` ou la fonction usine." #: ../Doc/library/codecs.rst:156 msgid "" "Custom codecs are made available by registering a suitable codec search " "function:" msgstr "" +"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " +"de recherche de codecs adaptée :" #: ../Doc/library/codecs.rst:161 msgid "" @@ -188,12 +258,20 @@ msgid "" "class:`CodecInfo` object. In case a search function cannot find a given " "encoding, it should return ``None``." msgstr "" +"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " +"de recherche prenne un argument, le nom de l'encodage écrit en lettres " +"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " +"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " +"None``." #: ../Doc/library/codecs.rst:168 msgid "" "Search function registration is not currently reversible, which may cause " "problems in some cases, such as unit testing or module reloading." msgstr "" +"l'enregistrement d'une fonction de recherche n'est actuellement pas " +"réversible, ce qui peut entraîner des problèmes dans certains cas, par " +"exemple pour les tests unitaires ou le rechargement de module." #: ../Doc/library/codecs.rst:172 msgid "" @@ -202,6 +280,11 @@ msgid "" "provides additional utility functions and classes that allow the use of a " "wider range of codecs when working with binary files:" msgstr "" +"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " +"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " +"présent module fournit des fonctions et classes utilitaires supplémentaires " +"qui permettent l'utilisation d'une plus large gamme de codecs si vous " +"travaillez avec des fichiers binaires :" #: ../Doc/library/codecs.rst:179 msgid "" @@ -209,6 +292,10 @@ msgid "" "`StreamReaderWriter`, providing transparent encoding/decoding. The default " "file mode is ``'r'``, meaning to open the file in read mode." msgstr "" +"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " +"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " +"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " +"est ouvert en lecture." #: ../Doc/library/codecs.rst:185 msgid "" @@ -217,6 +304,11 @@ msgid "" "may be any binary mode acceptable to the built-in :func:`open` function; the " "``'b'`` is automatically added." msgstr "" +"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " +"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " +"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " +"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " +"automatiquement ajouté." #: ../Doc/library/codecs.rst:190 msgid "" @@ -224,6 +316,10 @@ msgid "" "encoding that encodes to and decodes from bytes is allowed, and the data " "types supported by the file methods depend on the codec used." msgstr "" +"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " +"encode et décode des octets (type *bytes*) est autorisé et les types de " +"données pris en charge par les méthodes relatives aux fichiers dépendent du " +"codec utilisé." #: ../Doc/library/codecs.rst:194 msgid "" @@ -231,6 +327,9 @@ msgid "" "``'strict'`` which causes a :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." #: ../Doc/library/codecs.rst:197 msgid "" @@ -244,6 +343,9 @@ msgid "" "provides transparent transcoding. The original file is closed when the " "wrapped version is closed." msgstr "" +"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " +"qui fournit un transcodage transparent. Le fichier original est fermé quand " +"la version encapsulée est fermée." #: ../Doc/library/codecs.rst:207 msgid "" @@ -252,10 +354,17 @@ msgid "" "*file_encoding*. Bytes read from the original file are decoded according to " "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" +"Les données écrites dans un fichier encapsulant sont décodées en fonction du " +"*data_encoding* spécifié puis écrites vers le fichier original en tant que " +"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " +"original sont décodés conformément à *file_encoding* et le résultat est " +"encodé en utilisant *data_encoding*." #: ../Doc/library/codecs.rst:213 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" +"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " +"*data_encoding*." #: ../Doc/library/codecs.rst:215 msgid "" @@ -263,6 +372,9 @@ msgid "" "``'strict'``, which causes :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." #: ../Doc/library/codecs.rst:222 msgid "" @@ -271,6 +383,10 @@ msgid "" "well as any other keyword argument) is passed through to the incremental " "encoder." msgstr "" +"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur " +"`. L'argument *errors* (ainsi que tout autre argument passé par " +"mot-clé) est transmis à l'encodeur incrémental." #: ../Doc/library/codecs.rst:227 msgid "" @@ -278,6 +394,9 @@ msgid "" "encode. Therefore it does not support bytes-to-bytes encoders such as " "``base64_codec``." msgstr "" +"Cette fonction nécessite que le codec accepte les objets texte (classe :" +"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les " +"encodeurs *bytes* vers *bytes* tels que ``base64_codec``." #: ../Doc/library/codecs.rst:234 msgid "" @@ -286,6 +405,10 @@ msgid "" "well as any other keyword argument) is passed through to the incremental " "decoder." msgstr "" +"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " +"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au " +"décodeur incrémental." #: ../Doc/library/codecs.rst:239 msgid "" @@ -294,12 +417,18 @@ msgid "" "``rot_13``, although ``rot_13`` may be used equivalently with :func:" "`iterencode`." msgstr "" +"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " +"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " +"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " +"manière équivalente avec :func:`iterencode`." #: ../Doc/library/codecs.rst:245 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" +"Le module fournit également les constantes suivantes qui sont utiles pour " +"lire et écrire les fichiers dépendants de la plateforme :" #: ../Doc/library/codecs.rst:260 msgid "" @@ -312,10 +441,19 @@ msgid "" "`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others " "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" +"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " +"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " +"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " +"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " +"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:" +"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un " +"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " +"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " +"BOM dans les encodages UTF-8 et UTF-32." #: ../Doc/library/codecs.rst:274 msgid "Codec Base Classes" -msgstr "" +msgstr "Classes de base de codecs" #: ../Doc/library/codecs.rst:276 msgid "" @@ -323,6 +461,10 @@ msgid "" "interfaces for working with codec objects, and can also be used as the basis " "for custom codec implementations." msgstr "" +"Le module :mod:`codecs` définit un ensemble de classes de base qui " +"spécifient les interfaces pour travailler avec des objets codecs et qui " +"peuvent également être utilisées comme base pour des implémentations de " +"codecs personnalisés." #: ../Doc/library/codecs.rst:280 msgid "" @@ -332,10 +474,16 @@ msgid "" "decoder to implement the file protocols. Codec authors also need to define " "how the codec will handle encoding and decoding errors." msgstr "" +"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " +"en Python : codeur sans état, décodeur sans état, lecteur de flux et " +"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " +"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " +"Les auteurs de codecs doivent également définir comment le codec gère les " +"erreurs d'encodage et de décodage." #: ../Doc/library/codecs.rst:291 msgid "Error Handlers" -msgstr "" +msgstr "Gestionnaires d'erreurs" #: ../Doc/library/codecs.rst:293 msgid "" @@ -380,6 +528,8 @@ msgid "" "The following error handlers are only applicable to :term:`text encodings " "`:" msgstr "" +"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:" +"`encodeurs de texte ` :" #: ../Doc/library/codecs.rst:326 msgid "``'replace'``" @@ -411,6 +561,8 @@ msgid "" "Replace with backslashed escape sequences. Implemented in :func:" "`backslashreplace_errors`." msgstr "" +"Remplace avec une séquence échappée par des antislashs. Implémenté dans :" +"func:`backslashreplace_errors`." #: ../Doc/library/codecs.rst:341 msgid "``'namereplace'``" @@ -438,10 +590,12 @@ msgstr "" msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" +"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " +"suivants :" #: ../Doc/library/codecs.rst:357 msgid "Codecs" -msgstr "" +msgstr "Codecs" #: ../Doc/library/codecs.rst:359 msgid "``'surrogatepass'``" @@ -449,7 +603,7 @@ msgstr "``'surrogatepass'``" #: ../Doc/library/codecs.rst:359 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -msgstr "" +msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" #: ../Doc/library/codecs.rst:359 msgid "" @@ -460,28 +614,35 @@ msgstr "" #: ../Doc/library/codecs.rst:364 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." #: ../Doc/library/codecs.rst:367 msgid "" "The ``'surrogatepass'`` error handlers now works with utf-16\\* and " "utf-32\\* codecs." msgstr "" +"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " +"codecs utf-16\\* et utf-32\\*." #: ../Doc/library/codecs.rst:370 msgid "The ``'namereplace'`` error handler." -msgstr "" +msgstr "le gestionnaire d'erreurs ``'namereplace'``." #: ../Doc/library/codecs.rst:373 msgid "" "The ``'backslashreplace'`` error handlers now works with decoding and " "translating." msgstr "" +"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " +"le décodage et la traduction." #: ../Doc/library/codecs.rst:377 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" +"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " +"nouveau gestionnaire d'erreurs nommé :" #: ../Doc/library/codecs.rst:382 msgid "" diff --git a/library/collections.abc.po b/library/collections.abc.po index af995c284..3ce72723f 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -526,7 +526,7 @@ msgid "" "functionality, for example::" msgstr "" "Ces ABC permettent de demander à des classes ou à des instances si elles " -"fournissent des fonctionnalités particulières, par exemple ::" +"fournissent des fonctionnalités particulières, par exemple ::" #: ../Doc/library/collections.abc.rst:247 msgid "" @@ -543,7 +543,7 @@ msgstr "" "il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " "abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " "apporte les méthodes restantes, comme :meth:`__and__` et :meth:" -"`isdisjoint` ::" +"`isdisjoint` ::" #: ../Doc/library/collections.abc.rst:276 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" diff --git a/library/collections.po b/library/collections.po index 1bb2b8d5b..7008e910b 100644 --- a/library/collections.po +++ b/library/collections.po @@ -347,7 +347,7 @@ msgid "" "contexts::" msgstr "" "Exemple 3 : modèles pour simuler des contexte imbriqués avec la classe :" -"class:`ChainMap` ::" +"class:`ChainMap` ::" #: ../Doc/library/collections.rst:190 msgid "" @@ -1354,7 +1354,7 @@ msgid "" msgstr "" "Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de " "type pour les tuples nommés. Cela propose aussi une notation élégante " -"utilisant le mot-clé :keyword:`class` :" +"utilisant le mot-clé :keyword:`class` ::" #: ../Doc/library/collections.rst:1028 msgid "" diff --git a/library/compileall.po b/library/compileall.po index ec8fd8d0f..e4b841d36 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -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 ``." msgstr "" +"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " +"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " +"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " +"reçoit aucun argument, il fait comme s'il avait été appelé avec `-l `." #: ../Doc/library/compileall.rst:35 msgid "" "Do not recurse into subdirectories, only compile source code files directly " "contained in the named or implied directories." msgstr "" +"Compiler uniquement les fichiers situés directement dans les dossiers passés " +"en argument ou implicites, sans descendre récursivement dans les sous-" +"dossiers." #: ../Doc/library/compileall.rst:40 msgid "Force rebuild even if timestamps are up-to-date." -msgstr "" +msgstr "Forcer la recompilation même si les horodatages sont à jour." #: ../Doc/library/compileall.rst:44 msgid "" "Do not print the list of files compiled. If passed once, error messages will " "still be printed. If passed twice (``-qq``), all output is suppressed." msgstr "" +"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " +"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " +"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." #: ../Doc/library/compileall.rst:49 msgid "" @@ -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 -r 0` is equivalent to :program:`python -m compileall " " -l`." msgstr "" +"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " +"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " +"compileall -r 0` revient au même que :program:`python -m " +"compileall -l`." #: ../Doc/library/compileall.rst:82 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.cpu_count()` will be used." msgstr "" +"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " +"de processus sont créés que la machine dispose de processeurs (résultat de :" +"func:`os.cpu_count()`)." #: ../Doc/library/compileall.rst:88 msgid "" @@ -120,10 +162,20 @@ msgid "" "`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if " "the ``SOURCE_DATE_EPOCH`` environment variable is set." msgstr "" +"Définit la manière dont les fichiers de code intermédiaire seront invalidés " +"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés " +"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou " +"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent " +"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-" +"invalidation` pour plus d'informations sur la manière dont Python valide les " +"fichiers de code intermédiaire conservés en cache lors de l'exécution. La " +"valeur par défaut est ``timestamp``. Cependant, si la variable " +"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient " +"``checked-hash``." #: ../Doc/library/compileall.rst:99 msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "" +msgstr "ajout des options ``-i``, ``-b`` et ``-h``." #: ../Doc/library/compileall.rst:102 msgid "" @@ -131,10 +183,13 @@ msgid "" "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" +"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " +"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " +"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." #: ../Doc/library/compileall.rst:107 msgid "Added the ``--invalidation-mode`` option." -msgstr "" +msgstr "ajout de l'option ``--invalidation-mode``." #: ../Doc/library/compileall.rst:111 msgid "" @@ -142,10 +197,14 @@ msgid "" "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" +"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " +"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " +"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:" +"`python -O -m compileall`." #: ../Doc/library/compileall.rst:116 msgid "Public functions" -msgstr "" +msgstr "Fonctions publiques" #: ../Doc/library/compileall.rst:120 msgid "" @@ -153,6 +212,9 @@ msgid "" "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" +"Parcourt récursivement le dossier *dir*, en compilant tous les fichiers :" +"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés " +"sans erreur, et une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:124 msgid "" @@ -168,12 +230,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " +"seraient levées lors de la compilation. De plus, il se retrouve dans les " +"fichiers de code intermédiaire, pour utilisation dans les traces et autres " +"messages si le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:133 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" +"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " +"sont à jour." #: ../Doc/library/compileall.rst:136 msgid "" @@ -188,6 +257,10 @@ msgid "" "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" +"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " +"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " +"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " +"émise." #: ../Doc/library/compileall.rst:144 ../Doc/library/compileall.rst:201 msgid "" @@ -197,6 +270,12 @@ msgid "" "names, which allows byte-code files from multiple versions of Python to " "coexist." msgstr "" +"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " +"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " +"une autre version de Python. Par défaut, les règles décrites dans la :pep:" +"`3147` s'appliquent. Elles permettent à différentes versions de " +"l'interpréteur Python de coexister en conservant chacune ses propres " +"fichiers ``.pyc``." #: ../Doc/library/compileall.rst:150 ../Doc/library/compileall.rst:207 msgid "" @@ -219,19 +298,22 @@ msgid "" "PycInvalidationMode` enum and controls how the generated pycs are " "invalidated at runtime." msgstr "" +"*invalidation_mode* doit être un membre de l'énumération :class:`py_compile." +"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` " +"sont invalidés lorsque l'interpréteur tente de les utiliser." #: ../Doc/library/compileall.rst:163 ../Doc/library/compileall.rst:236 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "ajout des paramètres *legacy* et *optimize*." #: ../Doc/library/compileall.rst:166 msgid "Added the *workers* parameter." -msgstr "" +msgstr "ajout du paramètre *workers*." #: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:216 #: ../Doc/library/compileall.rst:239 msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." #: ../Doc/library/compileall.rst:172 ../Doc/library/compileall.rst:219 #: ../Doc/library/compileall.rst:242 @@ -239,6 +321,8 @@ msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" +"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``." +"pyo``, sont générés, quel que soit le niveau d'optimisation." #: ../Doc/library/compileall.rst:176 msgid "Accepts a :term:`path-like object`." @@ -247,13 +331,15 @@ msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/compileall.rst:179 ../Doc/library/compileall.rst:223 #: ../Doc/library/compileall.rst:246 msgid "The *invalidation_mode* parameter was added." -msgstr "" +msgstr "ajout du paramètre *invalidation_mode*." #: ../Doc/library/compileall.rst:184 msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" +"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " +"valeur vraie si et seulement si le fichier est compilé sans erreur." #: ../Doc/library/compileall.rst:187 msgid "" @@ -263,6 +349,11 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " +"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " +"code intermédiaire, pour utilisation dans les traces et autres messages si " +"le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:193 msgid "" @@ -277,6 +368,9 @@ msgid "" "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" +"Compile tous les fichiers :file:`.py` contenus dans les dossiers de ``sys." +"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et " +"une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:231 msgid "" @@ -285,17 +379,23 @@ msgid "" "`compile_dir` function. Note that unlike the other compile functions, " "``maxlevels`` defaults to ``0``." msgstr "" +"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " +"exclu de la recherche. Les autres paramètres sont passés à :func:" +"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la " +"valeur par défaut de ``maxlevels`` est ``0``." #: ../Doc/library/compileall.rst:249 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" +"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " +"dossier :file:`Lib/` et tous ses sous-dossiers ::" #: ../Doc/library/compileall.rst:266 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Module :mod:`py_compile`" #: ../Doc/library/compileall.rst:267 msgid "Byte-compile a single source file." -msgstr "" +msgstr "Compiler un fichier source unique." diff --git a/library/configparser.po b/library/configparser.po index 35d1312d3..950f8a656 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -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 à " +"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " +"stockées en minuscules. [1]_." #: ../Doc/library/configparser.rst:140 msgid "Supported Datatypes" -msgstr "" +msgstr "Types de données prises en charge" #: ../Doc/library/configparser.rst:142 msgid "" @@ -104,6 +137,10 @@ msgid "" "always storing them internally as strings. This means that if you need " "other datatypes, you should convert on your own:" msgstr "" +"Les lecteurs de configuration n'essayent jamais de deviner le type des " +"valeurs présentes dans les fichiers de configuration, et elles sont toujours " +"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " +"type différent, vous devez effectuer la conversion vous-même :" #: ../Doc/library/configparser.rst:153 msgid "" @@ -115,6 +152,16 @@ msgid "" "and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " "``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" msgstr "" +"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " +"configurations fournissent un ensemble d'accesseurs permettant de gérer les " +"entiers, les flottants et les booléens plus facilement. Le cas des booléens " +"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " +"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " +"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " +"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " +"la casse et interprète correctement les valeurs booléennes associées aux " +"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " +"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" #: ../Doc/library/configparser.rst:170 msgid "" @@ -123,16 +170,22 @@ msgid "" "methods. You can register your own converters and customize the provided " "ones. [1]_" msgstr "" +"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " +"fournissent également des méthodes similaires comme :meth:`~ConfigParser." +"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos " +"propres convertisseurs et personnaliser ceux déjà fournis. [1]_" #: ../Doc/library/configparser.rst:176 msgid "Fallback Values" -msgstr "" +msgstr "Valeurs de substitution" #: ../Doc/library/configparser.rst:178 msgid "" "As with a dictionary, you can use a section's :meth:`get` method to provide " "fallback values:" msgstr "" +"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " +"d'une section en spécifiant une valeur de substitution :" #: ../Doc/library/configparser.rst:191 msgid "" @@ -142,6 +195,11 @@ msgid "" "``'topsecret.server.com'``, we will always get the default, even if we " "specify a fallback:" msgstr "" +"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " +"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " +"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " +"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " +"valeur par défaut, même en ayant spécifié une valeur de substitution :" #: ../Doc/library/configparser.rst:202 msgid "" @@ -150,6 +208,10 @@ msgid "" "compatibility. When using this method, a fallback value can be provided via " "the ``fallback`` keyword-only argument:" msgstr "" +"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " +"l'analyseur fournit une interface particulière et plus complexe, qui est " +"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " +"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" #: ../Doc/library/configparser.rst:213 msgid "" @@ -157,10 +219,13 @@ msgid "" "getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " "methods, for example:" msgstr "" +"L'argument ``fallback`` peut être utilisé de la même façon avec les " +"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :" +"meth:`~ConfigParser.getboolean`. Par exemple :" #: ../Doc/library/configparser.rst:229 msgid "Supported INI File Structure" -msgstr "" +msgstr "Structure des fichiers *INI* prise en change" #: ../Doc/library/configparser.rst:231 msgid "" @@ -173,6 +238,17 @@ msgid "" "indented deeper than the first line of the value. Depending on the parser's " "mode, blank lines may be treated as parts of multiline values or ignored." msgstr "" +"Un fichier de configuration est constitué de sections. Chacune des sections " +"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" +"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " +"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " +"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " +"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " +"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " +"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " +"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " +"vides peuvent être considérées comme faisant partie des valeurs multi " +"lignes, en fonction de la configuration de l'analyseur." #: ../Doc/library/configparser.rst:240 msgid "" @@ -180,14 +256,18 @@ msgid "" "(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " "otherwise empty line, possibly indented. [1]_" msgstr "" +"Les fichiers de configuration peuvent contenir des commentaires, préfixés " +"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " +"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " +"aussi être indentés. [1]_" #: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" #: ../Doc/library/configparser.rst:292 msgid "Interpolation of values" -msgstr "" +msgstr "Interpolation des valeurs" #: ../Doc/library/configparser.rst:294 msgid "" @@ -195,6 +275,9 @@ msgid "" "interpolation. This means values can be preprocessed before returning them " "from ``get()`` calls." msgstr "" +"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " +"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " +"avant d'être renvoyées par les appels aux méthodes ``get()``." #: ../Doc/library/configparser.rst:302 msgid "" @@ -203,6 +286,11 @@ msgid "" "or values in the special default section [1]_. Additional default values " "can be provided on initialization." msgstr "" +"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " +"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " +"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " +"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " +"fournies au moment de l'initialisation de cette classe." #: ../Doc/library/configparser.rst:317 msgid "" @@ -213,6 +301,13 @@ msgid "" "keys used in the chain of references do not have to be specified in any " "specific order in the configuration file." msgstr "" +"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " +"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " +"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " +"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" +"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " +"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " +"être définies dans le fichier de configuration dans n'importe quel ordre." #: ../Doc/library/configparser.rst:324 msgid "" @@ -220,6 +315,9 @@ msgid "" "%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" "lumberjack`` as the value of ``my_dir``." msgstr "" +"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie ``" +"%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" +"lumberjack`` comme valeur pour ``my_dir``." #: ../Doc/library/configparser.rst:332 msgid "" @@ -230,20 +328,30 @@ msgid "" "`` part is omitted, interpolation defaults to the current section (and " "possibly the default values from the special section)." msgstr "" +"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " +"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " +"chaîne de formatage ``{section:option}}`` pour désigner une valeur " +"appartenant à une autre section. L'interpolation peut s'étendre sur " +"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " +"l'interpolation utilise la section courante par défaut (et, le cas échéant, " +"les valeurs de la section par défaut spéciale)." #: ../Doc/library/configparser.rst:339 msgid "" "For example, the configuration specified above with basic interpolation, " "would look like this with extended interpolation:" msgstr "" +"Voici comment transformer la configuration ci-dessus avec la syntaxe " +"d'interpolation étendue :" #: ../Doc/library/configparser.rst:349 msgid "Values from other sections can be fetched as well:" msgstr "" +"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" #: ../Doc/library/configparser.rst:371 msgid "Mapping Protocol Access" -msgstr "" +msgstr "Protocole d'accès associatif" #: ../Doc/library/configparser.rst:375 msgid "" @@ -252,6 +360,11 @@ msgid "" "`configparser`, the mapping interface implementation is using the " "``parser['section']['option']`` notation." msgstr "" +"Le terme « protocole d'accès associatif » est utilisé pour décrire la " +"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " +"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " +"l’implémentation du protocole utilise la notation ``parser['section']" +"['option']``." #: ../Doc/library/configparser.rst:380 msgid "" @@ -261,6 +374,12 @@ msgid "" "values are changed on a section proxy, they are actually mutated in the " "original parser." msgstr "" +"En particulier, ``parser['section']`` renvoie un mandataire vers les données " +"de la section correspondantes dans l'analyseur. Cela signifie que les " +"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " +"demande. Plus important encore, lorsque les valeurs sont changées dans un " +"mandataire pour une section, elles sont en réalité changées dans l'analyseur " +"initial." #: ../Doc/library/configparser.rst:386 msgid "" @@ -269,6 +388,11 @@ msgid "" "`~collections.abc.MutableMapping` ABC. However, there are a few differences " "that should be taken into account:" msgstr "" +"Les objets du module :mod:`configparser` se comportent le plus possible " +"comme des vrais dictionnaires. L'interface est complète et suit les " +"définitions fournies par la classe abstraite :class:`~collections.abc." +"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de " +"différences :" #: ../Doc/library/configparser.rst:391 msgid "" @@ -278,6 +402,11 @@ msgid "" "default. At the same time, for a section that holds the key ``'a'``, both " "expressions return ``True``::" msgstr "" +"Par défaut, toutes les clés des sections sont accessibles sans respect de la " +"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " +"uniquement les clés telles que transformées par la méthode ``optionxform``, " +"c'est-à-dire des clés transformées en minuscules. De même, pour une section " +"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" #: ../Doc/library/configparser.rst:399 msgid "" @@ -288,22 +417,30 @@ msgid "" "deleting causes the default value to be visible again. Trying to delete a " "default value causes a :exc:`KeyError`." msgstr "" +"Toutes les sections incluent en plus les valeurs de la section " +"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la " +"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne " +"peuvent pas être supprimées de la section (car, techniquement, elles n'y " +"sont pas présentes). Si vous détruisez une valeur par défaut qui a été " +"écrasée dans une section, alors la valeur par défaut sera de nouveau " +"visible. Essayer de détruire une valeur par défaut lève l'exception :exc:" +"`KeyError`." #: ../Doc/library/configparser.rst:406 msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" #: ../Doc/library/configparser.rst:408 msgid "trying to delete it raises :exc:`ValueError`," -msgstr "" +msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" #: ../Doc/library/configparser.rst:410 msgid "``parser.clear()`` leaves it intact," -msgstr "" +msgstr "appeler ``parser.clear()`` la laisse intacte ;" #: ../Doc/library/configparser.rst:412 msgid "``parser.popitem()`` never returns it." -msgstr "" +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." #: ../Doc/library/configparser.rst:414 msgid "" @@ -311,6 +448,10 @@ msgid "" "fallback value. Note however that the section-level ``get()`` methods are " "compatible both with the mapping protocol and the classic configparser API." msgstr "" +"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " +"**pas** une valeur de substitution. Notez cependant que les méthodes " +"``get()`` fournies par les sections sont compatibles à la fois avec le " +"protocole associatif et avec l'API classique de *configparser*." #: ../Doc/library/configparser.rst:418 msgid "" @@ -321,6 +462,13 @@ msgid "" "*value* pairs for a specified ``section``, with all interpolations expanded " "(unless ``raw=True`` is provided)." msgstr "" +"La méthode ``parser.items()`` est compatible avec le protocole d'accès " +"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " +"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " +"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " +"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " +"section spécifiée, en interprétant les interpolations (à moins d'utiliser " +"``raw=True``)." #: ../Doc/library/configparser.rst:425 msgid "" @@ -328,10 +476,13 @@ msgid "" "that subclasses overriding the original interface still should have mappings " "working as expected." msgstr "" +"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " +"sous-classes qui écrasent des méthodes de l'interface originale se " +"comportent correctement du point de vue du protocole d'accès." #: ../Doc/library/configparser.rst:431 msgid "Customizing Parser Behaviour" -msgstr "" +msgstr "Personnalisation du comportement de l'analyseur" #: ../Doc/library/configparser.rst:433 msgid "" @@ -341,16 +492,25 @@ msgid "" "dictated by historical background and it's very likely that you will want to " "customize some of the features." msgstr "" +"Il existe pratiquement autant de variations du format *INI* que " +"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " +"possible pour gérer le plus grand nombre de variantes raisonnables du style " +"*INI*. Le comportement par défaut est principalement contraint par des " +"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " +"de personnaliser certaines des fonctionnalités de ce module." #: ../Doc/library/configparser.rst:439 msgid "" "The most common way to change the way a specific config parser works is to " "use the :meth:`__init__` options:" msgstr "" +"La méthode la plus fréquemment utilisée pour changer la façon dont se " +"comporte un analyseur est d’utiliser les options de la méthode :meth:" +"`__init__` :" #: ../Doc/library/configparser.rst:442 msgid "*defaults*, default value: ``None``" -msgstr "" +msgstr "*defaults*, valeur par défaut : ``None``" #: ../Doc/library/configparser.rst:444 msgid "" @@ -359,12 +519,20 @@ msgid "" "concise configuration files that don't specify values which are the same as " "the documented default." msgstr "" +"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " +"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " +"élégante de prendre en charge des fichiers de configuration qui n'ont pas " +"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " +"par défaut documentées." #: ../Doc/library/configparser.rst:449 msgid "" "Hint: if you want to specify default values for a specific section, use :" "meth:`read_dict` before you read the actual file." msgstr "" +"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " +"configuration si vous voulez spécifier des valeurs par défaut pour une " +"section spécifique." #: ../Doc/library/configparser.rst:452 msgid "*dict_type*, default value: :class:`collections.OrderedDict`" @@ -395,7 +563,7 @@ msgstr "" #: ../Doc/library/configparser.rst:486 msgid "*allow_no_value*, default value: ``False``" -msgstr "" +msgstr "*allow_no_value*, valeur par défaut : ``False``" #: ../Doc/library/configparser.rst:488 msgid "" @@ -404,10 +572,15 @@ msgid "" "*allow_no_value* parameter to the constructor can be used to indicate that " "such values should be accepted:" msgstr "" +"Certains fichiers de configurations sont connus pour contenir des options " +"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " +"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " +"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " +"construction de l'instance :" #: ../Doc/library/configparser.rst:523 msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" #: ../Doc/library/configparser.rst:525 msgid "" @@ -415,20 +588,30 @@ msgid "" "The first occurrence of a delimiting substring on a line is considered a " "delimiter. This means values (but not keys) can contain the delimiters." msgstr "" +"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " +"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " +"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " +"contenir certains des délimiteurs (mais pas les clés)." #: ../Doc/library/configparser.rst:529 msgid "" "See also the *space_around_delimiters* argument to :meth:`ConfigParser." "write`." msgstr "" +"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:" +"`ConfigParser.write`." #: ../Doc/library/configparser.rst:532 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" #: ../Doc/library/configparser.rst:534 msgid "*inline_comment_prefixes*, default value: ``None``" msgstr "" +"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " +"défaut : ``('#', ';')``" #: ../Doc/library/configparser.rst:536 msgid "" @@ -439,12 +622,23 @@ msgid "" "well). By default inline comments are disabled and ``'#'`` and ``';'`` are " "used as prefixes for whole line comments." msgstr "" +"Les préfixes de commentaire indiquent le début d'un commentaire valide au " +"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " +"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " +"préfixes de commentaires en ligne peuvent être utilisés après n'importe " +"quelle valeur valide (comme les noms des sections, les options et les lignes " +"vides). Par défaut, les commentaires en ligne sont désactivés et les " +"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " +"sont `'#'`` et ``';'``." #: ../Doc/library/configparser.rst:543 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." msgstr "" +"Les précédentes versions du module :mod:`configparser` se comportent comme " +"en utilisant ``comment_prefixes=('#',';')`` et " +"``inline_comment_prefixes=(';',)``." #: ../Doc/library/configparser.rst:547 msgid "" @@ -455,10 +649,17 @@ msgid "" "storing comment prefix characters at the beginning of a line in multiline " "values is to interpolate the prefix, for example::" msgstr "" +"Notez que les analyseurs ne prennent pas en charge l'échappement des " +"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " +"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " +"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " +"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " +"la seule façon de stocker des préfixes de commentaires au début d'une valeur " +"multi lignes est d'interpoler ceux-ci, par exemple ::" #: ../Doc/library/configparser.rst:593 msgid "*strict*, default value: ``True``" -msgstr "" +msgstr "*scrict*, valeur par défaut : ``True``" #: ../Doc/library/configparser.rst:595 msgid "" @@ -467,16 +668,23 @@ msgid "" "meth:`read_string` or :meth:`read_dict`). It is recommended to use strict " "parsers in new applications." msgstr "" +"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " +"option dupliquée lors de la lecture d'une source unique (lorsque :meth:" +"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il " +"est recommandé d'utiliser un mode de fonctionnement strict pour les " +"analyseurs employés par de nouvelles applications." #: ../Doc/library/configparser.rst:600 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``strict=False``." msgstr "" +"Les versions précédentes du module :mod:`configparser` se comportent comme " +"en utilisant ``strict=False``." #: ../Doc/library/configparser.rst:604 msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" #: ../Doc/library/configparser.rst:606 msgid "" @@ -487,6 +695,13 @@ msgid "" "when configuration files get big and complex, it is easy for the user to " "lose track of the file structure. Take for instance:" msgstr "" +"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " +"lignes à partir du moment où elles sont plus indentées que la clé qui les " +"contient. Par défaut les analyseurs autorisent les lignes vides à faire " +"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " +"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " +"est probable que l'utilisateur perde de vue la structure du fichier lorsque " +"celui-ci devient long et complexe. Prenez par exemple :" #: ../Doc/library/configparser.rst:621 msgid "" @@ -496,12 +711,20 @@ msgid "" "This will make empty lines split keys every time. In the example above, it " "would produce two keys, ``key`` and ``this``." msgstr "" +"Ceci est particulièrement problématique si l'utilisateur a configuré son " +"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " +"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " +"moins que votre application en ait besoin. Dans ce cas, les lignes vides " +"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" +"dessus, cela produit deux clés : ``key`` et ``this``." #: ../Doc/library/configparser.rst:627 msgid "" "*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``" "\"DEFAULT\"``)" msgstr "" +"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " +"(autrement dit : ``\"DEFAULT\"``)" #: ../Doc/library/configparser.rst:630 msgid "" @@ -572,6 +795,12 @@ msgid "" "``'off'``. You can override this by specifying a custom dictionary of " "strings and their Boolean outcomes. For example:" msgstr "" +"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " +"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et " +"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " +"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " +"Par exemple :" #: ../Doc/library/configparser.rst:692 msgid "" diff --git a/library/contextlib.po b/library/contextlib.po index 13d2a9d0b..cbc808c42 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -18,6 +18,8 @@ msgstr "" msgid "" ":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" msgstr "" +":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur " +"l'instruction :keyword:`!with`" #: ../Doc/library/contextlib.rst:7 msgid "**Source code:** :source:`Lib/contextlib.py`" @@ -29,6 +31,9 @@ msgid "" "`with` statement. For more information see also :ref:`typecontextmanager` " "and :ref:`context-managers`." msgstr "" +"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :" +"keyword:`with`. Pour plus d'informations voir aussi :ref:" +"`typecontextmanager` et :ref:`context-managers`." #: ../Doc/library/contextlib.rst:17 msgid "Utilities" @@ -36,7 +41,7 @@ msgstr "Utilitaires" #: ../Doc/library/contextlib.rst:19 msgid "Functions and classes provided:" -msgstr "" +msgstr "Fonctions et classes fournies :" #: ../Doc/library/contextlib.rst:23 msgid "" @@ -46,6 +51,12 @@ msgid "" "__exit__` is an abstract method which by default returns ``None``. See also " "the definition of :ref:`typecontextmanager`." msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__enter__` et :meth:`object." +"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`typecontextmanager`." #: ../Doc/library/contextlib.rst:34 msgid "" @@ -55,6 +66,12 @@ msgid "" "__aexit__` is an abstract method which by default returns ``None``. See also " "the definition of :ref:`async-context-managers`." msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__aenter__` et :meth:`object." +"__aexit__`. Une implémentation par défaut de :meth:`object.__aenter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__aexit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`async-context-managers`." #: ../Doc/library/contextlib.rst:46 msgid "" @@ -62,6 +79,10 @@ msgid "" "function for :keyword:`with` statement context managers, without needing to " "create a class or separate :meth:`__enter__` and :meth:`__exit__` methods." msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte à utiliser avec :" +"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:" +"`__enter__` et :meth:`__exit__` séparées." #: ../Doc/library/contextlib.rst:50 msgid "" @@ -70,12 +91,18 @@ msgid "" "and doesn't implement a ``close()`` method for use with ``contextlib." "closing``" msgstr "" +"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, " +"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont " +"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode " +"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``" #: ../Doc/library/contextlib.rst:54 msgid "" "An abstract example would be the following to ensure correct resource " "management::" msgstr "" +"L'exemple abstrait suivant présente comment assurer une gestion correcte des " +"ressources ::" #: ../Doc/library/contextlib.rst:73 msgid "" @@ -83,6 +110,10 @@ msgid "" "called. This iterator must yield exactly one value, which will be bound to " "the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." msgstr "" +"La fonction à décorer doit renvoyer un :term:`générateur `-" +"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " +"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " +"clause :keyword:`!as` si précisée." #: ../Doc/library/contextlib.rst:77 msgid "" @@ -99,6 +130,18 @@ msgid "" "handled, and execution will resume with the statement immediately following " "the :keyword:`!with` statement." msgstr "" +"Au moment où le générateur produit une valeur, le bloc imbriqué sous " +"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris " +"après la sortie du bloc. Si une exception non gérée survient dans le bloc, " +"elle est relayée dans le générateur au niveau de l'instruction *yield*. " +"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…\\ :keyword:" +"`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y a), ou vous " +"assurer qu'un nettoyage a bien lieu. Si une exception est attrapée dans " +"l'unique but d'être journalisée ou d'effectuer une action particulière " +"(autre que supprimer entièrement l'exception), le générateur se doit de la " +"relayer. Autrement le générateur gestionnaire de contexte doit indiquer à " +"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution " +"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`." #: ../Doc/library/contextlib.rst:89 msgid "" @@ -110,16 +153,26 @@ msgid "" "that context managers support multiple invocations in order to be used as " "decorators)." msgstr "" +"Le décorateur :func:`contextmanager` utilise la classe :class:" +"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée " +"puissent être utilisés aussi bien en tant que décorateurs qu'avec des " +"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une " +"nouvelle instance du générateur est créée à chaque appel de la fonction " +"(cela permet aux gestionnaires de contexte à usage unique créés par :func:" +"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs " +"fois afin d'être utilisés comme décorateurs)." #: ../Doc/library/contextlib.rst:96 msgid "Use of :class:`ContextDecorator`." -msgstr "" +msgstr "Utilisation de la classe :class:`ContextDecorator`." #: ../Doc/library/contextlib.rst:102 msgid "" "Similar to :func:`~contextlib.contextmanager`, but creates an :ref:" "`asynchronous context manager `." msgstr "" +"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:" +"`gestionnaire de contexte asynchrone `." #: ../Doc/library/contextlib.rst:105 msgid "" @@ -129,6 +182,12 @@ msgid "" "`__aexit__` methods. It must be applied to an :term:`asynchronous generator` " "function." msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser " +"avec :keyword:`async with`, sans nécessiter de créer une classe ou des " +"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur " +"doit être appliqué à une fonction renvoyant un :term:`asynchronous " +"generator`." #: ../Doc/library/contextlib.rst:111 msgid "A simple example::" @@ -139,16 +198,20 @@ msgid "" "Return a context manager that closes *thing* upon completion of the block. " "This is basically equivalent to::" msgstr "" +"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " +"C'est essentiellement équivalent à ::" #: ../Doc/library/contextlib.rst:144 msgid "And lets you write code like this::" -msgstr "" +msgstr "Et cela vous permet d'écrire du code tel que ::" #: ../Doc/library/contextlib.rst:153 msgid "" "without needing to explicitly close ``page``. Even if an error occurs, " "``page.close()`` will be called when the :keyword:`with` block is exited." msgstr "" +"sans besoin de fermer explicitement ``page``. Même si une erreur survient, " +"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`." #: ../Doc/library/contextlib.rst:161 msgid "" @@ -156,10 +219,13 @@ msgid "" "otherwise does nothing. It is intended to be used as a stand-in for an " "optional context manager, for example::" msgstr "" +"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie " +"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme " +"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::" #: ../Doc/library/contextlib.rst:175 msgid "An example using *enter_result*::" -msgstr "" +msgstr "Un exemple utilisant *enter_result* ::" #: ../Doc/library/contextlib.rst:193 msgid "" @@ -167,6 +233,9 @@ msgid "" "they occur in the body of a with statement and then resumes execution with " "the first statement following the end of the with statement." msgstr "" +"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions " +"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " +"l'exécution sur la première instruction qui suit la fin du bloc *with*." #: ../Doc/library/contextlib.rst:197 msgid "" @@ -175,6 +244,10 @@ msgid "" "silently continuing with program execution is known to be the right thing to " "do." msgstr "" +"Comme pour tous les mécanismes qui suppriment complètement les exceptions, " +"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas " +"très spécifiques d'erreurs où il est certain que continuer silencieusement " +"l'exécution du programme est la bonne chose à faire." #: ../Doc/library/contextlib.rst:202 msgid "For example::" @@ -187,19 +260,23 @@ msgstr "Ce code est équivalent à ::" #: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263 #: ../Doc/library/contextlib.rst:273 msgid "This context manager is :ref:`reentrant `." -msgstr "" +msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." #: ../Doc/library/contextlib.rst:231 msgid "" "Context manager for temporarily redirecting :data:`sys.stdout` to another " "file or file-like object." msgstr "" +"Gestionnaire de contexte servant à rediriger temporairement :data:`sys." +"stdout` vers un autre fichier ou objet fichier-compatible." #: ../Doc/library/contextlib.rst:234 msgid "" "This tool adds flexibility to existing functions or classes whose output is " "hardwired to stdout." msgstr "" +"Cet outil ajoute une certaine flexibilité aux fonctions ou classes " +"existantes dont la sortie est envoyée vers la sortie standard." #: ../Doc/library/contextlib.rst:237 msgid "" @@ -207,16 +284,21 @@ msgid "" "You can capture that output in a string by redirecting the output to an :" "class:`io.StringIO` object::" msgstr "" +"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys." +"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en " +"la redirigeant vers un objet :class:`io.StringIO` ::" #: ../Doc/library/contextlib.rst:246 msgid "" "To send the output of :func:`help` to a file on disk, redirect the output to " "a regular file::" msgstr "" +"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " +"redirigez-la sur un fichier normal ::" #: ../Doc/library/contextlib.rst:253 msgid "To send the output of :func:`help` to *sys.stderr*::" -msgstr "" +msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" #: ../Doc/library/contextlib.rst:258 msgid "" @@ -225,17 +307,27 @@ msgid "" "applications. It also has no effect on the output of subprocesses. However, " "it is still a useful approach for many utility scripts." msgstr "" +"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce " +"gestionnaire de contexte n'est pas adapté à une utilisation dans le code " +"d'une bibliothèque ni dans la plupart des applications à plusieurs fils " +"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. " +"Cependant, cela reste une approche utile pour beaucoup de scripts " +"utilitaires." #: ../Doc/library/contextlib.rst:270 msgid "" "Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." "stderr` to another file or file-like object." msgstr "" +"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys." +"stderr` vers un autre fichier ou objet fichier-compatible." #: ../Doc/library/contextlib.rst:280 msgid "" "A base class that enables a context manager to also be used as a decorator." msgstr "" +"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " +"utilisé comme décorateur." #: ../Doc/library/contextlib.rst:282 msgid "" @@ -243,37 +335,50 @@ msgid "" "``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " "exception handling even when used as a decorator." msgstr "" +"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent " +"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` " +"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " +"décorateur." #: ../Doc/library/contextlib.rst:286 msgid "" "``ContextDecorator`` is used by :func:`contextmanager`, so you get this " "functionality automatically." msgstr "" +"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " +"bénéficiez automatiquement de cette fonctionnalité." #: ../Doc/library/contextlib.rst:289 msgid "Example of ``ContextDecorator``::" -msgstr "" +msgstr "Exemple de ``ContextDecorator`` ::" #: ../Doc/library/contextlib.rst:318 msgid "" "This change is just syntactic sugar for any construct of the following form::" msgstr "" +"Ce changement est simplement un sucre syntaxique pour les constructions de " +"la forme suivante ::" #: ../Doc/library/contextlib.rst:324 msgid "``ContextDecorator`` lets you instead write::" -msgstr "" +msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" #: ../Doc/library/contextlib.rst:330 msgid "" "It makes it clear that the ``cm`` applies to the whole function, rather than " "just a piece of it (and saving an indentation level is nice, too)." msgstr "" +"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas " +"seulement à un morceau en particulier (et gagner un niveau d'indentation est " +"toujours appréciable)." #: ../Doc/library/contextlib.rst:333 msgid "" "Existing context managers that already have a base class can be extended by " "using ``ContextDecorator`` as a mixin class::" msgstr "" +"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " +"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" #: ../Doc/library/contextlib.rst:346 msgid "" @@ -282,6 +387,11 @@ msgid "" "statements. If this is not the case, then the original construct with the " "explicit :keyword:`!with` statement inside the function should be used." msgstr "" +"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, " +"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans " +"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la " +"construction d'origine avec de multiples instructions :keyword:`!with` au " +"sein de la fonction doit être utilisée." #: ../Doc/library/contextlib.rst:356 msgid "" @@ -289,12 +399,18 @@ msgid "" "combine other context managers and cleanup functions, especially those that " "are optional or otherwise driven by input data." msgstr "" +"Gestionnaire de contexte conçu pour simplifier le fait de combiner " +"programmatiquement d'autres gestionnaires de contexte et fonctions de " +"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " +"données d'entrée." #: ../Doc/library/contextlib.rst:360 msgid "" "For example, a set of files may easily be handled in a single with statement " "as follows::" msgstr "" +"Par exemple, un ensemble de fichiers peut facilement être géré dans une " +"unique instruction *with* comme suit ::" #: ../Doc/library/contextlib.rst:369 msgid "" @@ -303,6 +419,11 @@ msgid "" "at the end of a :keyword:`with` statement). Note that callbacks are *not* " "invoked implicitly when the context stack instance is garbage collected." msgstr "" +"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) " +"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée " +"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez " +"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " +"la pile de contextes est collectée par le ramasse-miettes." #: ../Doc/library/contextlib.rst:374 msgid "" @@ -310,6 +431,9 @@ msgid "" "resources in their ``__init__`` method (such as file objects) can be handled " "correctly." msgstr "" +"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui " +"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " +"objets-fichiers) puissent être gérés correctement." #: ../Doc/library/contextlib.rst:378 msgid "" @@ -320,6 +444,12 @@ msgid "" "exception, then outer callbacks will be passed arguments based on that " "updated state." msgstr "" +"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre " +"inverse d'enregistrement, cela revient au même que si de multiples blocs :" +"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions " +"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction " +"de rappel intérieure supprime ou remplace une exception, alors les fonctions " +"extérieures reçoivent des arguments basés sur ce nouvel état." #: ../Doc/library/contextlib.rst:385 msgid "" @@ -328,6 +458,10 @@ msgid "" "foundation for higher level context managers that manipulate the exit stack " "in application specific ways." msgstr "" +"C'est une *API* relativement bas-niveau qui s'occupe de dérouler " +"correctement la pile des appels de sortie. Elle fournit une base adaptée " +"pour des gestionnaires de contexte de plus haut niveau qui manipulent la " +"pile de sortie de manière spécifique à l'application." #: ../Doc/library/contextlib.rst:394 msgid "" @@ -335,16 +469,24 @@ msgid "" "callback stack. The return value is the result of the context manager's own :" "meth:`__enter__` method." msgstr "" +"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:" +"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la " +"méthode :meth:`__enter__` du gestionnaire de contexte donné." #: ../Doc/library/contextlib.rst:398 msgid "" "These context managers may suppress exceptions just as they normally would " "if used directly as part of a :keyword:`with` statement." msgstr "" +"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le " +"feraient normalement s'ils étaient utilisés directement derrière une " +"instruction :keyword:`with`." #: ../Doc/library/contextlib.rst:403 msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." msgstr "" +"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " +"d'appels." #: ../Doc/library/contextlib.rst:405 msgid "" @@ -352,6 +494,9 @@ msgid "" "an :meth:`__enter__` implementation with a context manager's own :meth:" "`__exit__` method." msgstr "" +"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée " +"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " +"propre méthode :meth:`__exit__` d'un gestionnaire de contexte." #: ../Doc/library/contextlib.rst:409 msgid "" @@ -359,36 +504,52 @@ msgid "" "a callback with the same signature as a context manager's :meth:`__exit__` " "method and adds it directly to the callback stack." msgstr "" +"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume " +"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :" +"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à " +"la pile d'appels." #: ../Doc/library/contextlib.rst:413 msgid "" "By returning true values, these callbacks can suppress exceptions the same " "way context manager :meth:`__exit__` methods can." msgstr "" +"En retournant des valeurs vraies, ces fonctions peuvent supprimer des " +"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " +"des gestionnaires de contexte." #: ../Doc/library/contextlib.rst:416 msgid "" "The passed in object is returned from the function, allowing this method to " "be used as a function decorator." msgstr "" +"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " +"méthode d'être utilisée comme décorateur de fonction." #: ../Doc/library/contextlib.rst:421 msgid "" "Accepts an arbitrary callback function and arguments and adds it to the " "callback stack." msgstr "" +"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " +"fonctions de rappel." #: ../Doc/library/contextlib.rst:424 msgid "" "Unlike the other methods, callbacks added this way cannot suppress " "exceptions (as they are never passed the exception details)." msgstr "" +"À la différence des autres méthodes, les fonctions de rappel ajoutées de " +"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " +"reçoivent jamais les détails de l'exception)." #: ../Doc/library/contextlib.rst:427 msgid "" "The passed in callback is returned from the function, allowing this method " "to be used as a function decorator." msgstr "" +"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " +"la méthode d'être utilisée comme décorateur de fonction." #: ../Doc/library/contextlib.rst:432 msgid "" @@ -397,12 +558,18 @@ msgid "" "now be invoked when the new stack is closed (either explicitly or implicitly " "at the end of a :keyword:`with` statement)." msgstr "" +"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et " +"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à " +"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " +"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." #: ../Doc/library/contextlib.rst:437 msgid "" "For example, a group of files can be opened as an \"all or nothing\" " "operation as follows::" msgstr "" +"Par exemple, un groupe de fichiers peut être ouvert comme une opération " +"« tout ou rien » comme suit ::" #: ../Doc/library/contextlib.rst:451 msgid "" @@ -410,6 +577,10 @@ msgid "" "order of registration. For any context managers and exit callbacks " "registered, the arguments passed in will indicate that no exception occurred." msgstr "" +"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel " +"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte " +"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " +"exception n'est survenue." #: ../Doc/library/contextlib.rst:458 msgid "" @@ -417,49 +588,62 @@ msgid "" "class:`ExitStack`, that supports combining both synchronous and asynchronous " "context managers, as well as having coroutines for cleanup logic." msgstr "" +"Un :ref:`gestionnaire de contexte asynchrone `, " +"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires " +"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines " +"pour la logique de nettoyage." #: ../Doc/library/contextlib.rst:463 msgid "" "The :meth:`close` method is not implemented, :meth:`aclose` must be used " "instead." msgstr "" +"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt " +"être utilisée." #: ../Doc/library/contextlib.rst:468 msgid "" "Similar to :meth:`enter_context` but expects an asynchronous context manager." msgstr "" +"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " +"asynchrone." #: ../Doc/library/contextlib.rst:473 msgid "" "Similar to :meth:`push` but expects either an asynchronous context manager " "or a coroutine function." msgstr "" +"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte " +"asynchrone soit une fonction coroutine." #: ../Doc/library/contextlib.rst:478 msgid "Similar to :meth:`callback` but expects a coroutine function." -msgstr "" +msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." #: ../Doc/library/contextlib.rst:482 msgid "Similar to :meth:`close` but properly handles awaitables." msgstr "" +"Similaire à :meth:`close` mais gère correctement les tâches asynchrones." #: ../Doc/library/contextlib.rst:484 msgid "Continuing the example for :func:`asynccontextmanager`::" -msgstr "" +msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" #: ../Doc/library/contextlib.rst:496 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et Recettes" #: ../Doc/library/contextlib.rst:498 msgid "" "This section describes some examples and recipes for making effective use of " "the tools provided by :mod:`contextlib`." msgstr "" +"Cette section décrit quelques exemples et recettes pour décrire une " +"utilisation réelle des outils fournis par :mod:`contextlib`." #: ../Doc/library/contextlib.rst:503 msgid "Supporting a variable number of context managers" -msgstr "" +msgstr "Gérer un nombre variable de gestionnaires de contexte" #: ../Doc/library/contextlib.rst:505 msgid "" @@ -470,6 +654,13 @@ msgid "" "input (such as opening a user specified collection of files), or from some " "of the context managers being optional::" msgstr "" +"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la " +"documentation de la classe : gérer un nombre variable de gestionnaires de " +"contexte et d'autres opérations de nettoyage en une unique instruction :" +"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de " +"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une " +"collection spécifique de fichiers de l'utilisateur), ou de certains " +"gestionnaires de contexte qui peuvent être optionnels ::" #: ../Doc/library/contextlib.rst:520 msgid "" @@ -477,10 +668,13 @@ msgid "" "statements to manage arbitrary resources that don't natively support the " "context management protocol." msgstr "" +"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les " +"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " +"gèrent pas nativement le protocole des gestionnaires de contexte." #: ../Doc/library/contextlib.rst:526 msgid "Catching exceptions from ``__enter__`` methods" -msgstr "" +msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" #: ../Doc/library/contextlib.rst:528 msgid "" @@ -490,6 +684,12 @@ msgid "" "By using :class:`ExitStack` the steps in the context management protocol can " "be separated slightly in order to allow this::" msgstr "" +"Il est occasionnellement souhaitable d'attraper les exceptions depuis " +"l'implémentation d'une méthode ``__enter__``, *sans* attraper par " +"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de " +"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:" +"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent " +"être légèrement séparées pour permettre le code suivant ::" #: ../Doc/library/contextlib.rst:543 msgid "" @@ -501,10 +701,18 @@ msgid "" "to handle various situations that can't be handled directly in a :keyword:" "`with` statement." msgstr "" +"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-" +"jacente devrait fournir une interface directe de gestion des ressources à " +"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:" +"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet " +"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion " +"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la " +"gestion de plusieurs situations qui ne peuvent pas être traitées directement " +"dans une instruction :keyword:`with`." #: ../Doc/library/contextlib.rst:553 msgid "Cleaning up in an ``__enter__`` implementation" -msgstr "" +msgstr "Nettoyer dans une méthode ``__enter__``" #: ../Doc/library/contextlib.rst:555 msgid "" @@ -512,6 +720,9 @@ msgid "" "useful in cleaning up an already allocated resource if later steps in the :" "meth:`__enter__` implementation fail." msgstr "" +"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode " +"peut être utile pour nettoyer une ressource déjà allouée si les dernières " +"étapes de l'implémentation de :meth:`__enter__` échouent." #: ../Doc/library/contextlib.rst:559 msgid "" @@ -519,10 +730,13 @@ msgid "" "acquisition and release functions, along with an optional validation " "function, and maps them to the context management protocol::" msgstr "" +"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions " +"d'acquisition de ressources et de libération, avec une méthode de validation " +"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" #: ../Doc/library/contextlib.rst:599 msgid "Replacing any use of ``try-finally`` and flag variables" -msgstr "" +msgstr "Remplacer un ``try-finally`` avec une option variable" #: ../Doc/library/contextlib.rst:601 msgid "" @@ -531,6 +745,10 @@ msgid "" "should be executed. In its simplest form (that can't already be handled just " "by using an ``except`` clause instead), it looks something like this::" msgstr "" +"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une " +"option pour indiquer si le corps de la clause ``finally`` doit être exécuté " +"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " +"juste une clause ``except``), cela ressemble à ::" #: ../Doc/library/contextlib.rst:615 msgid "" @@ -538,6 +756,10 @@ msgid "" "development and review, because the setup code and the cleanup code can end " "up being separated by arbitrarily long sections of code." msgstr "" +"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut " +"poser problème pour le développement et la revue, parce que beaucoup de " +"codes d'installation et de nettoyage peuvent finir par être séparés par des " +"sections de code arbitrairement longues." #: ../Doc/library/contextlib.rst:619 msgid "" @@ -545,18 +767,25 @@ msgid "" "execution at the end of a ``with`` statement, and then later decide to skip " "executing that callback::" msgstr "" +":class:`ExitStack` rend possible de plutôt enregistrer une fonction de " +"rappel pour être exécutée à la fin d'une instruction ``with``, et décider " +"ensuite de passer l'exécution de cet appel ::" #: ../Doc/library/contextlib.rst:631 msgid "" "This allows the intended cleanup up behaviour to be made explicit up front, " "rather than requiring a separate flag variable." msgstr "" +"Cela permet de rendre explicite dès le départ le comportement de nettoyage " +"attendu, plutôt que de nécessiter une option séparée." #: ../Doc/library/contextlib.rst:634 msgid "" "If a particular application uses this pattern a lot, it can be simplified " "even further by means of a small helper class::" msgstr "" +"Si une application particulière utilise beaucoup ce modèle, cela peut-être " +"simplifié encore plus au moyen d'une petite classe d'aide ::" #: ../Doc/library/contextlib.rst:652 msgid "" @@ -564,6 +793,10 @@ msgid "" "function, then it is still possible to use the decorator form of :meth:" "`ExitStack.callback` to declare the resource cleanup in advance::" msgstr "" +"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans " +"une fonction autonome, il est possible d'utiliser le décorateur :meth:" +"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en " +"avance ::" #: ../Doc/library/contextlib.rst:667 msgid "" @@ -571,16 +804,24 @@ msgid "" "this way cannot take any parameters. Instead, any resources to be released " "must be accessed as closure variables." msgstr "" +"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée " +"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer " +"doivent être récupérées depuis l'extérieur comme des variables de fermeture " +"(*closure*)." #: ../Doc/library/contextlib.rst:673 msgid "Using a context manager as a function decorator" msgstr "" +"Utiliser un gestionnaire de contexte en tant que décorateur de fonction" #: ../Doc/library/contextlib.rst:675 msgid "" ":class:`ContextDecorator` makes it possible to use a context manager in both " "an ordinary ``with`` statement and also as a function decorator." msgstr "" +":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de " +"contexte à la fois ordinairement avec une instruction ``with`` ou comme un " +"décorateur de fonction." #: ../Doc/library/contextlib.rst:678 msgid "" @@ -590,14 +831,22 @@ msgid "" "task, inheriting from :class:`ContextDecorator` provides both capabilities " "in a single definition::" msgstr "" +"Par exemple, il est parfois utile d'emballer les fonctions ou blocs " +"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution " +"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un " +"gestionnaire de contexte pour la même tâche, hériter de :class:" +"`ContextDecorator` fournit les deux fonctionnalités en une seule " +"définition ::" #: ../Doc/library/contextlib.rst:699 msgid "Instances of this class can be used as both a context manager::" msgstr "" +"Les instances de cette classe peuvent être utilisées comme gestionnaires de " +"contexte ::" #: ../Doc/library/contextlib.rst:705 msgid "And also as a function decorator::" -msgstr "" +msgstr "Et comme décorateurs de fonctions ::" #: ../Doc/library/contextlib.rst:712 msgid "" @@ -606,6 +855,10 @@ msgid "" "`__enter__`. If that value is needed, then it is still necessary to use an " "explicit ``with`` statement." msgstr "" +"Notez qu'il y a une autre limitation en utilisant les gestionnaires de " +"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur " +"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " +"utiliser explicitement une instruction ``with``." #: ../Doc/library/contextlib.rst:720 msgid ":pep:`343` - The \"with\" statement" @@ -621,7 +874,7 @@ msgstr "" #: ../Doc/library/contextlib.rst:726 msgid "Single use, reusable and reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" #: ../Doc/library/contextlib.rst:728 msgid "" @@ -630,6 +883,11 @@ msgid "" "managers must be created afresh each time they're used - attempting to use " "them a second time will trigger an exception or otherwise not work correctly." msgstr "" +"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne " +"leur permet que d'être utilisés une fois avec une instruction :keyword:" +"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés " +"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois " +"lève une exception ou ne fonctionne pas correctement." #: ../Doc/library/contextlib.rst:734 msgid "" @@ -637,6 +895,10 @@ msgid "" "context managers directly in the header of the :keyword:`with` statement " "where they are used (as shown in all of the usage examples above)." msgstr "" +"Cette limitation commune signifie qu'il est généralement conseillé de créer " +"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:" +"`with` où ils sont utilisés (comme montré dans tous les exemples " +"d'utilisation au-dessus)." #: ../Doc/library/contextlib.rst:738 msgid "" @@ -644,6 +906,10 @@ msgid "" "first :keyword:`with` statement will close the file, preventing any further " "IO operations using that file object." msgstr "" +"Les fichiers sont un exemple de gestionnaires de contexte étant " +"effectivement à usage unique, puisque la première instruction :keyword:" +"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie " +"d'être exécutées sur ce fichier." #: ../Doc/library/contextlib.rst:742 msgid "" @@ -651,10 +917,13 @@ msgid "" "context managers, and will complain about the underlying generator failing " "to yield if an attempt is made to use them a second time::" msgstr "" +"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à " +"usage unique, et se plaindront du fait que le générateur sous-jacent ne " +"produise plus de valeur si vous essayez de les utiliser une seconde fois ::" #: ../Doc/library/contextlib.rst:770 msgid "Reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte réentrants" #: ../Doc/library/contextlib.rst:772 msgid "" @@ -663,6 +932,11 @@ msgid "" "may also be used *inside* a :keyword:`!with` statement that is already using " "the same context manager." msgstr "" +"Certains gestionnaires de contexte plus sophistiqués peuvent être " +"« réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être " +"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à " +"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même " +"gestionnaire de contexte." #: ../Doc/library/contextlib.rst:777 msgid "" @@ -670,6 +944,9 @@ msgid "" "are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple " "example of reentrant use::" msgstr "" +":class:`threading.RLock` est un exemple de gestionnaire de contexte " +"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " +"Voici un très simple exemple d'utilisation réentrante ::" #: ../Doc/library/contextlib.rst:796 msgid "" @@ -677,6 +954,9 @@ msgid "" "functions calling each other and hence be far more complicated than this " "example." msgstr "" +"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs " +"fonctions s'entre-appelant, et donc être bien plus compliqués que cet " +"exemple." #: ../Doc/library/contextlib.rst:800 msgid "" @@ -685,10 +965,14 @@ msgid "" "as it makes a global modification to the system state by binding :data:`sys." "stdout` to a different stream." msgstr "" +"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:" +"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, " +"puisqu'il effectue des changements globaux sur l'état du système en " +"branchant :data:`sys.stdout` sur différents flux." #: ../Doc/library/contextlib.rst:809 msgid "Reusable context managers" -msgstr "" +msgstr "Gestionnaires de contexte réutilisables" #: ../Doc/library/contextlib.rst:811 msgid "" @@ -699,6 +983,14 @@ msgid "" "will fail (or otherwise not work correctly) if the specific context manager " "instance has already been used in a containing with statement." msgstr "" +"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " +"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " +"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires " +"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de " +"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront " +"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de " +"contexte référencée a déjà été utilisée dans une instruction *with* " +"englobante." #: ../Doc/library/contextlib.rst:818 msgid "" @@ -706,6 +998,9 @@ msgid "" "context manager (for a reentrant lock, it is necessary to use :class:" "`threading.RLock` instead)." msgstr "" +":class:`threading.Lock` est un exemple de gestionnaire de contexte " +"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " +"place utiliser :class:`threading.RLock`)." #: ../Doc/library/contextlib.rst:822 msgid "" @@ -713,6 +1008,10 @@ msgid "" "`ExitStack`, as it invokes *all* currently registered callbacks when leaving " "any with statement, regardless of where those callbacks were added::" msgstr "" +"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant " +"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel " +"actuellement enregistrées en quittant l'instruction *with*, sans regarder où " +"ces fonctions ont été ajoutées ::" #: ../Doc/library/contextlib.rst:853 msgid "" @@ -721,9 +1020,15 @@ msgid "" "cause the stack to be cleared at the end of the innermost with statement, " "which is unlikely to be desirable behaviour." msgstr "" +"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre " +"plusieurs instructions *with* fonctionne correctement, mais essayer de les " +"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " +"qui n'est probablement pas le comportement voulu." #: ../Doc/library/contextlib.rst:858 msgid "" "Using separate :class:`ExitStack` instances instead of reusing a single " "instance avoids that problem::" msgstr "" +"Pour éviter ce problème, utilisez des instances différentes de :class:" +"`ExitStack` plutôt qu'une seule instance ::" diff --git a/library/contextvars.po b/library/contextvars.po index af286c73b..cd9b2f541 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -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 ` to their values." msgstr "" +"Tableau associatif entre :class:`ContextVars ` 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 " +"l’adresse d'un client distant soit disponible dans le *Task* qui gère ce " +"client ::" diff --git a/library/csv.po b/library/csv.po index 7cb0b192d..aa672b40d 100644 --- a/library/csv.po +++ b/library/csv.po @@ -77,7 +77,7 @@ msgstr "" #: ../Doc/library/csv.rst:41 msgid ":pep:`305` - CSV File API" -msgstr ":pep:`305` -- Interface des fichiers CSV" +msgstr ":pep:`305` ­— Interface des fichiers CSV" #: ../Doc/library/csv.rst:42 msgid "The Python Enhancement Proposal which proposed this addition to Python." @@ -110,10 +110,10 @@ msgid "" msgstr "" "Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* " "donné. *csvfile* peut être n'importe quel objet supportant le protocole :" -"term:`iterator` et renvoyant une chaîne de caractères chaque fois que sa " -"méthode :meth:`!__next__` est appelée --- les :term:`fichiers objets ` et les listes sont tous deux valables. Si *csvfile* est un " -"fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " +"term:`itérateur ` et renvoyant une chaîne de caractères chaque " +"fois que sa méthode :meth:`!__next__` est appelée — les :term:`fichiers " +"objets ` et les listes sont tous deux valables. Si *csvfile* " +"est un fichier, il doit être ouvert avec ``newline=''``. [1]_ Un paramètre " "*dialect* optionnel peut être fourni pour définir un ensemble de paramètres " "spécifiques à un dialecte CSV particulier. Il peut s'agir d'une instance de " "sous-classe de :class:`Dialect` ou de l'une des chaînes renvoyées par la " @@ -139,7 +139,7 @@ msgstr "" #: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 #: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208 msgid "A short usage example::" -msgstr "Un court exemple d'utilisation : ::" +msgstr "Un court exemple d'utilisation ::" #: ../Doc/library/csv.rst:88 msgid "" @@ -293,7 +293,7 @@ msgid "" msgstr "" "Crée un objet qui opère comme un transcripteur ordinaire mais qui produit " "les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* " -"est une :mod:`sequence ` de clés qui indique l'ordre dans " +"est une :mod:`séquence ` de clés qui indique l'ordre dans " "lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` " "doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* " "spécifie la valeur à écrire si une clé de *fieldnames* manque dans le " @@ -382,7 +382,7 @@ msgstr "" #: ../Doc/library/csv.rst:269 msgid "An example for :class:`Sniffer` use::" -msgstr "Un exemple d'utilisation de :class:`Sniffer` : ::" +msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" #: ../Doc/library/csv.rst:278 msgid "The :mod:`csv` module defines the following constants:" @@ -698,15 +698,15 @@ msgstr "Exemples" #: ../Doc/library/csv.rst:480 msgid "The simplest example of reading a CSV file::" -msgstr "Le plus simple exemple de lecture d'un fichier CSV : ::" +msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" #: ../Doc/library/csv.rst:488 msgid "Reading a file with an alternate format::" -msgstr "Lire un fichier avec un format alternatif : ::" +msgstr "Lire un fichier avec un format alternatif ::" #: ../Doc/library/csv.rst:496 msgid "The corresponding simplest possible writing example is::" -msgstr "Le plus simple exemple d'écriture correspondant est : ::" +msgstr "Le plus simple exemple d'écriture correspondant est ::" #: ../Doc/library/csv.rst:503 msgid "" @@ -719,7 +719,7 @@ msgstr "" "fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " "défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier " "utilisant un encodage différent, utilisez l'argument ``encoding`` de " -"*open* : ::" +"*open* ::" #: ../Doc/library/csv.rst:514 msgid "" @@ -732,7 +732,7 @@ msgstr "" #: ../Doc/library/csv.rst:517 msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte : ::" +msgstr "Enregistrer un nouveau dialecte ::" #: ../Doc/library/csv.rst:524 msgid "" @@ -740,7 +740,7 @@ msgid "" "errors::" msgstr "" "Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " -"notifiant les erreurs : ::" +"notifiant les erreurs ::" #: ../Doc/library/csv.rst:536 msgid "" @@ -748,7 +748,7 @@ msgid "" "be done::" msgstr "" "Et bien que le module ne permette pas d'analyser directement des chaînes, " -"cela peut être fait facilement : ::" +"cela peut être fait facilement ::" #: ../Doc/library/csv.rst:545 msgid "Footnotes" diff --git a/library/ctypes.po b/library/ctypes.po index 928afc079..9d03b9fb7 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr "" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" #: ../Doc/library/ctypes.rst:11 msgid "" @@ -24,10 +24,15 @@ msgid "" "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." #: ../Doc/library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "" +msgstr "Didacticiel de *ctypes*" #: ../Doc/library/ctypes.rst:21 msgid "" @@ -35,6 +40,10 @@ msgid "" "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " +"contiennent des directives *doctest* dans les commentaires." #: ../Doc/library/ctypes.rst:25 msgid "" @@ -43,16 +52,23 @@ msgid "" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." #: ../Doc/library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des DLL" #: ../Doc/library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." #: ../Doc/library/ctypes.rst:38 msgid "" @@ -64,12 +80,22 @@ msgid "" "error code is used to automatically raise an :class:`OSError` exception when " "the function call fails." msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." #: ../Doc/library/ctypes.rst:46 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." #: ../Doc/library/ctypes.rst:51 msgid "" @@ -77,10 +103,13 @@ msgid "" "C library containing most standard C functions, and uses the cdecl calling " "convention::" msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" #: ../Doc/library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." #: ../Doc/library/ctypes.rst:66 msgid "" @@ -89,6 +118,11 @@ msgid "" "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." #: ../Doc/library/ctypes.rst:71 msgid "" @@ -98,14 +132,19 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" #: ../Doc/library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" #: ../Doc/library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" #: ../Doc/library/ctypes.rst:106 msgid "" @@ -117,6 +156,13 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qu'UNICODE est définie ou non) ::" #: ../Doc/library/ctypes.rst:119 msgid "" @@ -124,6 +170,10 @@ msgid "" "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères, respectivement." #: ../Doc/library/ctypes.rst:123 msgid "" @@ -131,6 +181,9 @@ msgid "" "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" #: ../Doc/library/ctypes.rst:131 msgid "" @@ -138,10 +191,13 @@ msgid "" "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" #: ../Doc/library/ctypes.rst:148 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" #: ../Doc/library/ctypes.rst:150 msgid "" @@ -150,6 +206,10 @@ msgid "" "Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " "module handle." msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." #: ../Doc/library/ctypes.rst:155 msgid "" @@ -170,12 +230,16 @@ msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl`` et vice-versa ::" #: ../Doc/library/ctypes.rst:186 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." #: ../Doc/library/ctypes.rst:189 msgid "" @@ -183,6 +247,11 @@ msgid "" "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" #: ../Doc/library/ctypes.rst:199 msgid "" @@ -191,6 +260,11 @@ msgid "" "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " +"C)." #: ../Doc/library/ctypes.rst:204 msgid "" @@ -202,24 +276,37 @@ msgid "" "platforms default C :c:type:`int` type, their value is masked to fit into " "the C type." msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " +"pour qu'ils tiennent dans le type C." #: ../Doc/library/ctypes.rst:211 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." #: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2066 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" #: ../Doc/library/ctypes.rst:220 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" #: ../Doc/library/ctypes.rst:223 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" #: ../Doc/library/ctypes.rst:223 msgid "C type" @@ -239,7 +326,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/ctypes.rst:225 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" #: ../Doc/library/ctypes.rst:227 msgid ":class:`c_char`" @@ -251,7 +338,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/ctypes.rst:227 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet (*bytes*) de 1 caractère" #: ../Doc/library/ctypes.rst:229 msgid ":class:`c_wchar`" @@ -263,7 +350,7 @@ msgstr ":c:type:`wchar_t`" #: ../Doc/library/ctypes.rst:229 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractères (*string*) de longueur 1" #: ../Doc/library/ctypes.rst:231 msgid ":class:`c_byte`" @@ -348,7 +435,7 @@ msgstr ":class:`c_ulonglong`" #: ../Doc/library/ctypes.rst:249 msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" #: ../Doc/library/ctypes.rst:252 msgid ":class:`c_size_t`" @@ -401,11 +488,11 @@ msgstr ":class:`c_char_p`" #: ../Doc/library/ctypes.rst:263 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:263 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" #: ../Doc/library/ctypes.rst:265 msgid ":class:`c_wchar_p`" @@ -413,11 +500,11 @@ msgstr ":class:`c_wchar_p`" #: ../Doc/library/ctypes.rst:265 msgid ":c:type:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (Terminé par NUL)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" #: ../Doc/library/ctypes.rst:265 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" #: ../Doc/library/ctypes.rst:267 msgid ":class:`c_void_p`" @@ -429,22 +516,26 @@ msgstr ":c:type:`void *`" #: ../Doc/library/ctypes.rst:267 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" #: ../Doc/library/ctypes.rst:271 msgid "The constructor accepts any object with a truth value." -msgstr "" +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." #: ../Doc/library/ctypes.rst:273 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" #: ../Doc/library/ctypes.rst:284 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" #: ../Doc/library/ctypes.rst:296 msgid "" @@ -453,6 +544,10 @@ msgid "" "point to, *not the contents* of the memory block (of course not, because " "Python bytes objects are immutable)::" msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" #: ../Doc/library/ctypes.rst:316 msgid "" @@ -463,6 +558,12 @@ msgid "" "``raw`` property; if you want to access it as NUL terminated string, use the " "``value`` property::" msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" #: ../Doc/library/ctypes.rst:340 msgid "" @@ -472,10 +573,15 @@ msgid "" "memory block containing unicode characters of the C type :c:type:`wchar_t` " "use the :func:`create_unicode_buffer` function." msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" +"`wchar_t`." #: ../Doc/library/ctypes.rst:350 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" #: ../Doc/library/ctypes.rst:352 msgid "" @@ -483,6 +589,9 @@ msgid "" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" #: ../Doc/library/ctypes.rst:372 msgid "" @@ -490,10 +599,14 @@ msgid "" "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" #: ../Doc/library/ctypes.rst:385 msgid "Calling functions with your own custom data types" -msgstr "" +msgstr "Appel de fonctions avec des types de données personnalisés" #: ../Doc/library/ctypes.rst:387 msgid "" @@ -502,6 +615,11 @@ msgid "" "an :attr:`_as_parameter_` attribute and uses this as the function argument. " "Of course, it must be one of integer, string, or bytes::" msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets ::" #: ../Doc/library/ctypes.rst:402 msgid "" @@ -509,16 +627,21 @@ msgid "" "instance variable, you could define a :class:`property` which makes the " "attribute available on request." msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." #: ../Doc/library/ctypes.rst:410 msgid "Specifying the required argument types (function prototypes)" -msgstr "" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" #: ../Doc/library/ctypes.rst:412 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." #: ../Doc/library/ctypes.rst:415 msgid "" @@ -527,6 +650,11 @@ msgid "" "different types of parameters depending on the format string, on the other " "hand this is quite handy to experiment with this feature)::" msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" #: ../Doc/library/ctypes.rst:426 msgid "" @@ -534,6 +662,9 @@ msgid "" "prototype for a C function), and tries to convert the arguments to valid " "types::" msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" #: ../Doc/library/ctypes.rst:438 msgid "" @@ -547,10 +678,19 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." #: ../Doc/library/ctypes.rst:452 msgid "Return types" -msgstr "" +msgstr "Types de sortie" #: ../Doc/library/ctypes.rst:454 msgid "" @@ -558,12 +698,18 @@ msgid "" "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." #: ../Doc/library/ctypes.rst:458 msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères ::" #: ../Doc/library/ctypes.rst:471 msgid "" @@ -571,6 +717,9 @@ msgid "" "`argtypes` attribute, and the second argument will be converted from a " "single character Python bytes object into a C char::" msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C ::" #: ../Doc/library/ctypes.rst:489 msgid "" @@ -581,6 +730,12 @@ msgid "" "function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions ::" #: ../Doc/library/ctypes.rst:512 msgid "" @@ -589,16 +744,24 @@ msgid "" "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." #: ../Doc/library/ctypes.rst:517 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " +"précisions." #: ../Doc/library/ctypes.rst:524 msgid "Passing pointers (or: passing parameters by reference)" -msgstr "" +msgstr "Passage de pointeurs (passage de paramètres par référence)" #: ../Doc/library/ctypes.rst:526 msgid "" @@ -607,6 +770,10 @@ msgid "" "large to be passed by value. This is also known as *passing parameters by " "reference*." msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." #: ../Doc/library/ctypes.rst:530 msgid "" @@ -616,10 +783,15 @@ msgid "" "constructs a real pointer object, so it is faster to use :func:`byref` if " "you don't need the pointer object in Python itself::" msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant ::" #: ../Doc/library/ctypes.rst:552 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" #: ../Doc/library/ctypes.rst:554 msgid "" @@ -628,12 +800,19 @@ msgid "" "subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " "a list of *2-tuples*, containing a *field name* and a *field type*." msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." #: ../Doc/library/ctypes.rst:559 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." #: ../Doc/library/ctypes.rst:562 msgid "" @@ -641,30 +820,43 @@ msgid "" "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur ::" #: ../Doc/library/ctypes.rst:582 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." #: ../Doc/library/ctypes.rst:585 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* ::" #: ../Doc/library/ctypes.rst:599 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons ::" #: ../Doc/library/ctypes.rst:604 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" #: ../Doc/library/ctypes.rst:618 msgid "" @@ -673,10 +865,15 @@ msgid "" "guaranteed by the library to work in the general case. Unions and " "structures with bit-fields should always be passed to functions by pointer." msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." #: ../Doc/library/ctypes.rst:624 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" #: ../Doc/library/ctypes.rst:626 msgid "" @@ -695,10 +892,15 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." #: ../Doc/library/ctypes.rst:642 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" #: ../Doc/library/ctypes.rst:644 msgid "" @@ -706,64 +908,81 @@ msgid "" "fields are only possible for integer fields, the bit width is specified as " "the third item in the :attr:`_fields_` tuples::" msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" #: ../Doc/library/ctypes.rst:662 msgid "Arrays" -msgstr "" +msgstr "Tableaux" #: ../Doc/library/ctypes.rst:664 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." #: ../Doc/library/ctypes.rst:666 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" #: ../Doc/library/ctypes.rst:671 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" #: ../Doc/library/ctypes.rst:687 msgid "Instances are created in the usual way, by calling the class::" -msgstr "" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" #: ../Doc/library/ctypes.rst:693 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." #: ../Doc/library/ctypes.rst:696 msgid "Initializers of the correct type can also be specified::" -msgstr "" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" #: ../Doc/library/ctypes.rst:712 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" #: ../Doc/library/ctypes.rst:714 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:722 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" #: ../Doc/library/ctypes.rst:729 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" #: ../Doc/library/ctypes.rst:738 msgid "" @@ -771,14 +990,17 @@ msgid "" "attribute would cause the pointer to point to the memory location where this " "is stored::" msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" #: ../Doc/library/ctypes.rst:750 msgid "Pointer instances can also be indexed with integers::" -msgstr "" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" #: ../Doc/library/ctypes.rst:756 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "" +msgstr "Affecter à travers un indice change la valeur pointée ::" #: ../Doc/library/ctypes.rst:765 msgid "" @@ -788,6 +1010,11 @@ msgid "" "a C function, and you *know* that the pointer actually points to an array " "instead of a single item." msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." #: ../Doc/library/ctypes.rst:771 msgid "" @@ -796,22 +1023,31 @@ msgid "" "the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " "returns a new type::" msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" #: ../Doc/library/ctypes.rst:787 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" #: ../Doc/library/ctypes.rst:795 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" #: ../Doc/library/ctypes.rst:814 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" #: ../Doc/library/ctypes.rst:816 msgid "" @@ -823,6 +1059,14 @@ msgid "" "instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " "accepts an array of c_int::" msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" #: ../Doc/library/ctypes.rst:837 msgid "" @@ -831,10 +1075,17 @@ msgid "" "pointed type (``c_int`` in this case) can be passed to the function. ctypes " "will apply the required :func:`byref` conversion in this case automatically." msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." #: ../Doc/library/ctypes.rst:842 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" #: ../Doc/library/ctypes.rst:849 msgid "" @@ -844,10 +1095,16 @@ msgid "" "accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " "``values`` field, but not instances of other types::" msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" #: ../Doc/library/ctypes.rst:861 msgid "For these cases, the :func:`cast` function is handy." -msgstr "" +msgstr "C'est là que la fonction :func:`cast` intervient." #: ../Doc/library/ctypes.rst:863 msgid "" @@ -857,16 +1114,24 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument ::" #: ../Doc/library/ctypes.rst:874 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" #: ../Doc/library/ctypes.rst:887 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" #: ../Doc/library/ctypes.rst:889 msgid "" @@ -874,12 +1139,16 @@ msgid "" "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" #: ../Doc/library/ctypes.rst:900 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" #: ../Doc/library/ctypes.rst:913 msgid "" @@ -887,6 +1156,10 @@ msgid "" "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe ::" #: ../Doc/library/ctypes.rst:925 msgid "" @@ -896,13 +1169,15 @@ msgstr "" #: ../Doc/library/ctypes.rst:946 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" #: ../Doc/library/ctypes.rst:948 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." #: ../Doc/library/ctypes.rst:951 msgid "" @@ -910,6 +1185,9 @@ msgid "" "the calling convention, the return type, and the number and types of " "arguments this function will receive." msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." #: ../Doc/library/ctypes.rst:955 msgid "" @@ -918,6 +1196,10 @@ msgid "" "factory function creates types for callback functions using the ``stdcall`` " "calling convention." msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." #: ../Doc/library/ctypes.rst:960 msgid "" @@ -925,6 +1207,8 @@ msgid "" "argument, and the callback functions expected argument types as the " "remaining arguments." msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." #: ../Doc/library/ctypes.rst:964 msgid "" @@ -932,6 +1216,10 @@ msgid "" "`qsort` function, that is used to sort items with the help of a callback " "function. :c:func:`qsort` will be used to sort an array of integers::" msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers ::" #: ../Doc/library/ctypes.rst:974 msgid "" @@ -942,36 +1230,51 @@ msgid "" "is smaller than the second, a zero if they are equal, and a positive integer " "otherwise." msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c-à-d la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." #: ../Doc/library/ctypes.rst:980 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" #: ../Doc/library/ctypes.rst:986 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe ::" #: ../Doc/library/ctypes.rst:996 msgid "The result::" -msgstr "" +msgstr "Résultat ::" #: ../Doc/library/ctypes.rst:1006 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile ::" #: ../Doc/library/ctypes.rst:1021 msgid "As we can easily check, our array is sorted now::" msgstr "" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" #: ../Doc/library/ctypes.rst:1028 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" +"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " +"donc possible d'écrire ::" #: ../Doc/library/ctypes.rst:1046 msgid "" @@ -979,6 +1282,10 @@ msgid "" "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " "garbage collected, crashing your program when a callback is made." msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." #: ../Doc/library/ctypes.rst:1050 msgid "" @@ -989,10 +1296,17 @@ msgid "" "with :class:`threading.local` will *not* survive across different callbacks, " "even when those calls are made from the same C thread." msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." #: ../Doc/library/ctypes.rst:1060 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis une DLL" #: ../Doc/library/ctypes.rst:1062 msgid "" @@ -1001,6 +1315,10 @@ msgid "" "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." #: ../Doc/library/ctypes.rst:1067 msgid "" @@ -1008,6 +1326,9 @@ msgid "" "methods of the type. *pythonapi* is a predefined symbol giving access to " "the Python C api::" msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" #: ../Doc/library/ctypes.rst:1076 msgid "" @@ -1015,16 +1336,20 @@ msgid "" "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." #: ../Doc/library/ctypes.rst:1080 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." #: ../Doc/library/ctypes.rst:1083 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" #: ../Doc/library/ctypes.rst:1085 msgid "" @@ -1040,12 +1365,17 @@ msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" #: ../Doc/library/ctypes.rst:1102 msgid "" "We have defined the :c:type:`struct _frozen` data type, so we can get the " "pointer to the table::" msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" #: ../Doc/library/ctypes.rst:1109 msgid "" @@ -1065,23 +1395,28 @@ msgstr "" #: ../Doc/library/ctypes.rst:1135 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" #: ../Doc/library/ctypes.rst:1137 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." #: ../Doc/library/ctypes.rst:1140 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" #: ../Doc/library/ctypes.rst:1160 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" #: ../Doc/library/ctypes.rst:1168 msgid "" @@ -1091,6 +1426,11 @@ msgid "" "the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " "have the expected effect." msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." #: ../Doc/library/ctypes.rst:1174 msgid "" @@ -1098,6 +1438,9 @@ msgid "" "doesn't *copy* the sub-object, instead it retrieves a wrapper object " "accessing the root-object's underlying buffer." msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." #: ../Doc/library/ctypes.rst:1178 msgid "" @@ -1113,15 +1456,22 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" #: ../Doc/library/ctypes.rst:1198 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" #: ../Doc/library/ctypes.rst:1200 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." #: ../Doc/library/ctypes.rst:1202 msgid "" @@ -1131,6 +1481,12 @@ msgid "" "cannot be made smaller than the natural memory block specified by the " "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" #: ../Doc/library/ctypes.rst:1222 msgid "" @@ -1138,6 +1494,9 @@ msgid "" "contained in this array? Since the type still only knows about 4 elements, " "we get errors accessing other elements::" msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" #: ../Doc/library/ctypes.rst:1234 msgid "" @@ -1145,20 +1504,27 @@ msgid "" "the dynamic nature of Python, and (re-)define the data type after the " "required size is already known, on a case by case basis." msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." #: ../Doc/library/ctypes.rst:1242 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" #: ../Doc/library/ctypes.rst:1248 msgid "Finding shared libraries" -msgstr "" +msgstr "Recherche de bibliothèques partagées" #: ../Doc/library/ctypes.rst:1250 msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." msgstr "" +"Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " +"moment de la compilation, de l'édition de liens et pendant l'exécution du " +"programme." #: ../Doc/library/ctypes.rst:1253 msgid "" @@ -1168,12 +1534,20 @@ msgid "" "while the ctypes library loaders act like when a program is run, and call " "the runtime loader directly." msgstr "" +"Le but de la fonction :func:`find_library` est de trouver une bibliothèque " +"de la même façon que le ferait le compilateur ou le chargeur (sur les plates-" +"formes avec plusieurs versions de la même bibliothèque, la plus récente est " +"chargée), alors que les chargeurs de bibliothèques de *ctypes* se comportent " +"de la même façon qu'un programme qui s'exécute, et appellent directement le " +"chargeur." #: ../Doc/library/ctypes.rst:1259 msgid "" "The :mod:`ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" +"Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " +"bibliothèque charger." #: ../Doc/library/ctypes.rst:1267 msgid "" @@ -1182,10 +1556,15 @@ msgid "" "number (this is the form used for the posix linker option :option:`!-l`). " "If no library can be found, returns ``None``." msgstr "" +"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " +"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " +"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " +"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " +"trouver de bibliothèque, elle renvoie ``None``." #: ../Doc/library/ctypes.rst:1272 ../Doc/library/ctypes.rst:1860 msgid "The exact functionality is system dependent." -msgstr "" +msgstr "Le mode opératoire exact dépend du système." #: ../Doc/library/ctypes.rst:1274 msgid "" @@ -1193,6 +1572,9 @@ msgid "" "ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " "returns the filename of the library file." msgstr "" +"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " +"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." #: ../Doc/library/ctypes.rst:1278 msgid "" @@ -1200,16 +1582,21 @@ msgid "" "when searching for libraries, if a library cannot be found by any other " "means." msgstr "" +"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " +"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." #: ../Doc/library/ctypes.rst:1282 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/library/ctypes.rst:1293 msgid "" "On OS X, :func:`find_library` tries several predefined naming schemes and " "paths to locate the library, and returns a full pathname if successful::" msgstr "" +"Sous OS X, :func:`find_library` regarde dans des chemins et conventions de " +"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " +"complet si elle la trouve :" #: ../Doc/library/ctypes.rst:1307 msgid "" @@ -1217,6 +1604,10 @@ msgid "" "returns the full pathname, but since there is no predefined naming scheme a " "call like ``find_library(\"c\")`` will fail and return ``None``." msgstr "" +"Sous Windows, :func:`find_library` examine le chemin de recherche du système " +"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " +"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " +"et renvoient ``None``." #: ../Doc/library/ctypes.rst:1311 msgid "" @@ -1225,16 +1616,24 @@ msgid "" "into the wrapper module instead of using :func:`find_library` to locate the " "library at runtime." msgstr "" +"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " +"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " +"lors du développement et de l'écrire en dur dans le module d'encapsulation, " +"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " +"l'exécution." #: ../Doc/library/ctypes.rst:1319 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" #: ../Doc/library/ctypes.rst:1321 msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" msgstr "" +"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " +"processus Python. L'un d'entre eux consiste à instancier une des classes " +"suivantes :" #: ../Doc/library/ctypes.rst:1327 msgid "" @@ -1242,6 +1641,9 @@ msgid "" "these libraries use the standard C calling convention, and are assumed to " "return :c:type:`int`." msgstr "" +"Une instance de cette classe représente une bibliothèque partagée déjà " +"chargée. Les fonctions de cette bibliothèque utilisent la convention d'appel " +"C standard et doivent renvoyer un :c:type:`int`." #: ../Doc/library/ctypes.rst:1334 msgid "" @@ -1252,10 +1654,17 @@ msgid "" "failed or succeeded, together with additional error code. If the return " "value signals a failure, an :class:`OSError` is automatically raised." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall*, et doivent renvoyer un code :" +"class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " +"contiennent des informations précisant si l'appel de la fonction a échoué ou " +"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " +"retour signale un échec, une :class:`OSError` est levée automatiquement." #: ../Doc/library/ctypes.rst:1341 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." #: ../Doc/library/ctypes.rst:1347 msgid "" @@ -1263,6 +1672,10 @@ msgid "" "functions in these libraries use the ``stdcall`` calling convention, and are " "assumed to return :c:type:`int` by default." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut un :" +"c:type:`int`." #: ../Doc/library/ctypes.rst:1351 msgid "" @@ -1270,12 +1683,18 @@ msgid "" "the :class:`WinDLL` and :class:`OleDLL` use the standard calling convention " "on this platform." msgstr "" +"Sous Windows CE, seule la convention d'appel standard est utilisée. Pour des " +"raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " +"convention d'appel standard sur cette plate-forme." #: ../Doc/library/ctypes.rst:1355 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" +"Le :term:`verrou global de l'interpréteur ` Python " +"est relâché avant chaque appel d'une fonction exposée par ces bibliothèques " +"et ré-activé après." #: ../Doc/library/ctypes.rst:1361 msgid "" @@ -1284,10 +1703,15 @@ msgid "" "function execution the Python error flag is checked. If the error flag is " "set, a Python exception is raised." msgstr "" +"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " +"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " +"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " +"Python est levée." #: ../Doc/library/ctypes.rst:1366 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" +"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." #: ../Doc/library/ctypes.rst:1368 msgid "" @@ -1298,6 +1722,12 @@ msgid "" "``LoadLibrary`` function is used to load the library into the process, and " "to get a handle to it." msgstr "" +"Toutes ces classes peuvent être instanciées en les appelant avec le chemin " +"de la bibliothèque partagée comme unique argument. Il est aussi possible de " +"passer un lien vers une bibliothèque déjà chargée en utilisant le paramètre " +"``handle``. Sinon, les fonctions ``dlopen`` ou ``LoadLibrary`` de la plate-" +"forme sous-jacente permettent de charger la bibliothèque dans le processus, " +"et d'en obtenir un lien." #: ../Doc/library/ctypes.rst:1375 msgid "" @@ -1306,6 +1736,10 @@ msgid "" "ignored. On posix systems, RTLD_NOW is always added, and is not " "configurable." msgstr "" +"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " +"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " +"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " +"est toujours ajouté. Ceci n'est pas configurable." #: ../Doc/library/ctypes.rst:1380 msgid "" @@ -1316,6 +1750,13 @@ msgid "" "the :data:`errno` value before the function call is swapped with the ctypes " "private copy, the same happens immediately after the function call." msgstr "" +"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " +"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " +"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " +"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " +"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " +"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " +"produit juste après l'appel de la fonction." #: ../Doc/library/ctypes.rst:1387 msgid "" @@ -1323,6 +1764,9 @@ msgid "" "private copy, and the function :func:`ctypes.set_errno` changes the ctypes " "private copy to a new value and returns the former value." msgstr "" +"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " +"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " +"la copie privée et renvoie l'ancienne valeur." #: ../Doc/library/ctypes.rst:1391 msgid "" @@ -1332,24 +1776,36 @@ msgid "" "and :func:`ctypes.set_last_error` are used to request and change the ctypes " "private copy of the windows error code." msgstr "" +"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " +"le code d'erreur de Windows qui est géré par les fonctions :func:" +"`GetLastError` et :func:`SetLastError` de l'API Windows ; :func:`ctypes." +"get_last_error` et :func:`ctypes.set_last_error` servent à obtenir et " +"modifier la copie privée *ctypes* de ce code d'erreur." #: ../Doc/library/ctypes.rst:1400 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:1407 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:1414 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:1417 msgid "" @@ -1359,12 +1815,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:1430 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:1436 msgid "The system handle used to access the library." @@ -1372,7 +1835,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1441 msgid "The name of the library passed in the constructor." -msgstr "" +msgstr "Nom de la bibliothèque donné au constructeur." #: ../Doc/library/ctypes.rst:1443 msgid "" @@ -1381,12 +1844,18 @@ msgid "" "calling the :meth:`LoadLibrary` method, or by retrieving the library as " "attribute of the loader instance." msgstr "" +"Il est possible de charger une bibliothèque partagée soit en utilisant une " +"instance de la classe :class:`LibraryLoader`, soit en appelant la méthode :" +"meth:`LoadLibrary`, soit en récupérant la bibliothèque comme attribut de " +"l'instance du chargeur." #: ../Doc/library/ctypes.rst:1451 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:1454 msgid "" @@ -1394,38 +1863,44 @@ msgid "" "by accessing it as attribute of a library loader instance. The result is " "cached, so repeated attribute accesses return the same library each time." msgstr "" +":meth:`__getattr__` a un comportement particulier : elle charge une " +"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " +"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " +"fois." #: ../Doc/library/ctypes.rst:1460 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." msgstr "" +"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " +"méthode renvoie toujours une nouvelle instance de la bibliothèque." #: ../Doc/library/ctypes.rst:1464 msgid "These prefabricated library loaders are available:" -msgstr "" +msgstr "Plusieurs chargeurs sont fournis :" #: ../Doc/library/ctypes.rst:1469 msgid "Creates :class:`CDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`CDLL`." #: ../Doc/library/ctypes.rst:1475 msgid "Windows only: Creates :class:`WinDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1481 msgid "Windows only: Creates :class:`OleDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." #: ../Doc/library/ctypes.rst:1487 msgid "Creates :class:`PyDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`PyDLL`." #: ../Doc/library/ctypes.rst:1490 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" -msgstr "" +msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" #: ../Doc/library/ctypes.rst:1496 msgid "" @@ -1434,10 +1909,15 @@ msgid "" "`int`, which is of course not always the truth, so you have to assign the " "correct :attr:`restype` attribute to use these functions." msgstr "" +"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " +"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " +"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " +"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " +"utiliser." #: ../Doc/library/ctypes.rst:1505 msgid "Foreign functions" -msgstr "" +msgstr "Fonctions externes" #: ../Doc/library/ctypes.rst:1507 msgid "" @@ -1447,28 +1927,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:1516 msgid "Base class for C callable foreign functions." -msgstr "" +msgstr "Classe de base pour les fonctions externes C." #: ../Doc/library/ctypes.rst:1518 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:1521 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:1526 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:1529 msgid "" @@ -1479,6 +1972,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:1538 msgid "" @@ -1488,6 +1989,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:1544 msgid "" @@ -1498,6 +2004,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:1551 msgid "" @@ -1506,30 +2019,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:1558 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:1565 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:1568 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:1572 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:1576 msgid "" @@ -1537,16 +2067,21 @@ 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:1583 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:1590 msgid "Function prototypes" -msgstr "" +msgstr "Prototypes de fonction" #: ../Doc/library/ctypes.rst:1592 msgid "" @@ -1730,7 +2265,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:1771 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" #: ../Doc/library/ctypes.rst:1775 msgid "" @@ -2305,7 +2840,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2309 msgid "Structured data types" -msgstr "" +msgstr "Types de donnée dérivés de Structure" #: ../Doc/library/ctypes.rst:2314 msgid "Abstract base class for unions in native byte order." @@ -2435,7 +2970,7 @@ msgstr "" #: ../Doc/library/ctypes.rst:2432 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" #: ../Doc/library/ctypes.rst:2436 msgid "Abstract base class for arrays." diff --git a/library/curses.po b/library/curses.po index 093dce215..70732c855 100644 --- a/library/curses.po +++ b/library/curses.po @@ -1636,7 +1636,7 @@ msgstr "" #: ../Doc/library/curses.rst:1364 msgid "Key" -msgstr "" +msgstr "Clé" #: ../Doc/library/curses.rst:1366 msgid "``KEY_MIN``" @@ -1948,7 +1948,7 @@ msgstr "``KEY_CLOSE``" #: ../Doc/library/curses.rst:1443 msgid "Close" -msgstr "" +msgstr "*Close*" #: ../Doc/library/curses.rst:1445 msgid "``KEY_COMMAND``" @@ -1964,7 +1964,7 @@ msgstr "``KEY_COPY``" #: ../Doc/library/curses.rst:1447 msgid "Copy" -msgstr "" +msgstr "*Copy*" #: ../Doc/library/curses.rst:1449 msgid "``KEY_CREATE``" @@ -1988,7 +1988,7 @@ msgstr "``KEY_EXIT``" #: ../Doc/library/curses.rst:1453 msgid "Exit" -msgstr "" +msgstr "*Exit*" #: ../Doc/library/curses.rst:1455 msgid "``KEY_FIND``" @@ -2068,7 +2068,7 @@ msgstr "``KEY_REDO``" #: ../Doc/library/curses.rst:1473 msgid "Redo" -msgstr "" +msgstr "*Redo*" #: ../Doc/library/curses.rst:1475 msgid "``KEY_REFERENCE``" @@ -2116,7 +2116,7 @@ msgstr "``KEY_SAVE``" #: ../Doc/library/curses.rst:1485 msgid "Save" -msgstr "" +msgstr "*Save*" #: ../Doc/library/curses.rst:1487 msgid "``KEY_SBEG``" @@ -2364,7 +2364,7 @@ msgstr "``KEY_UNDO``" #: ../Doc/library/curses.rst:1547 msgid "Undo" -msgstr "" +msgstr "*Undo*" #: ../Doc/library/curses.rst:1549 msgid "``KEY_MOUSE``" @@ -2964,7 +2964,7 @@ msgstr "" #: ../Doc/library/curses.rst:1768 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/curses.rst:1770 msgid ":kbd:`Control-A`" diff --git a/library/dataclasses.po b/library/dataclasses.po index 05eed9a5b..2394e2f3b 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -41,12 +41,12 @@ msgid "" "pep:`526` type annotations. For example this code::" msgstr "" "Les variables membres à utiliser dans ces méthodes générées sont définies en " -"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" +"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" #: ../Doc/library/dataclasses.rst:32 msgid "Will add, among other things, a :meth:`__init__` that looks like::" msgstr "" -"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" +"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" #: ../Doc/library/dataclasses.rst:39 msgid "" @@ -113,7 +113,7 @@ msgstr "" "Si :func:`dataclass` est utilisé comme simple décorateur sans paramètres, il " "se comporte comme si on l’avait appelé avec les valeurs par défaut présentes " "en signature. Ainsi, les trois usages suivants de :func:`dataclass` sont " -"équivalents ::" +"équivalents ::" #: ../Doc/library/dataclasses.rst:84 msgid "The parameters to :func:`dataclass` are:" @@ -303,7 +303,7 @@ msgid "" "syntax::" msgstr "" "Les ``field``\\s peuvent éventuellement spécifier une valeur par défaut, en " -"utilisant la syntaxe Python normale ::" +"utilisant la syntaxe Python normale ::" #: ../Doc/library/dataclasses.rst:170 msgid "" @@ -311,7 +311,7 @@ msgid "" "`__init__` method, which will be defined as::" msgstr "" "Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de " -"la méthode générée :meth:`__init__`, qui est définie comme suit ::" +"la méthode générée :meth:`__init__`, qui est définie comme suit ::" #: ../Doc/library/dataclasses.rst:175 msgid "" diff --git a/library/datetime.po b/library/datetime.po index bf913e7e5..8a40b2139 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-19 22:32+0200\n" -"PO-Revision-Date: 2019-05-23 20:04+0200\n" +"PO-Revision-Date: 2019-08-21 00:28+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -1332,7 +1332,7 @@ msgstr "" msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" msgstr "" "Pour obtenir un objet :class:`.datetime` avisé, appelez :meth:" -"`fromtimestamp` : ::" +"`fromtimestamp` ::" #: ../Doc/library/datetime.rst:801 msgid "" @@ -1340,7 +1340,7 @@ msgid "" "expression::" msgstr "" "Sur les plateformes respectant *POSIX*, cela est équivalent à l'expression " -"suivante : ::" +"suivante ::" #: ../Doc/library/datetime.rst:806 msgid "" @@ -1784,7 +1784,7 @@ msgstr "" "Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " "dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :" "meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " -"comporte comme : ::" +"comporte comme ::" #: ../Doc/library/datetime.rst:1094 msgid "*tz* now can be omitted." @@ -1839,7 +1839,7 @@ msgid "" msgstr "" "Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie ``self." "tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " -"renvoie pas ``None`` ou une chaîne de caractères." +"renvoie pas ``None`` ou une chaîne de caractères," #: ../Doc/library/datetime.rst:1131 msgid "" @@ -1927,7 +1927,7 @@ msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" "Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " -"calculée comme suit : ::" +"calculée comme suit ::" #: ../Doc/library/datetime.rst:1181 msgid "" @@ -1952,7 +1952,7 @@ msgstr "" #: ../Doc/library/datetime.rst:1195 msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement : ::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" #: ../Doc/library/datetime.rst:1201 msgid "" @@ -1996,10 +1996,9 @@ msgid "" "the UTC offset: YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]] or, if :attr:" "`microsecond` is 0 YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]." msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne de 6 caractères est " -"ajoutée, donnant le décalage UTC en heures et minutes (relatives) : *YYYY-MM-" -"DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]* ou, si :attr:`microsecond` vaut 0, " -"*YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]*" +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC : *YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]* " +"ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]*." #: ../Doc/library/datetime.rst:1229 msgid "" @@ -2304,10 +2303,9 @@ msgid "" msgstr "" "Renvoie une chaîne représentant l'heure au format ISO 8601, ``HH:MM:SS." "ffffff`` ou, si :attr:`microsecond` vaut 0, ``HH:MM:SS`` Si :meth:" -"`utcoffset` ne renvoie pas ``None``, une chaîne de 6 caractères est ajoutée, " -"donnant le décalage UTC en heures et minutes (relatives) : ``HH:MM:SS.ffffff" -"+HH:MM[:SS[.ffffff]]`` ou, si ``self.microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:" -"SS[.ffffff]]``" +"`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, donnant le " +"décalage UTC : ``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]`` ou, si ``self." +"microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:SS[.ffffff]]``." #: ../Doc/library/datetime.rst:1603 msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." @@ -2544,7 +2542,7 @@ msgid "" "two::" msgstr "" "La plupart des implémentations de :meth:`dst` ressembleront probablement à " -"l'une des deux suivantes : ::" +"l'une des deux suivantes ::" #: ../Doc/library/datetime.rst:1766 msgid "or ::" @@ -2692,7 +2690,7 @@ msgid "" "acts like::" msgstr "" "En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:" -"`fromutc` se comporte comme suit : ::" +"`fromutc` se comporte comme suit ::" #: ../Doc/library/datetime.rst:1857 msgid "" @@ -3106,7 +3104,7 @@ msgstr "01, 02, ..., 31" #: ../Doc/library/datetime.rst:2104 ../Doc/library/datetime.rst:2110 #: ../Doc/library/datetime.rst:2128 msgid "\\(9)" -msgstr "" +msgstr "\\(9)" #: ../Doc/library/datetime.rst:2082 msgid "``%b``" @@ -3237,9 +3235,8 @@ msgid "Second as a zero-padded decimal number." msgstr "Secondes sur deux chiffres." #: ../Doc/library/datetime.rst:2113 -#, fuzzy msgid "\\(4), \\(9)" -msgstr "\\(1), \\(3)" +msgstr "\\(4), \\(9)" #: ../Doc/library/datetime.rst:2116 msgid "``%f``" @@ -3320,9 +3317,8 @@ msgid "00, 01, ..., 53" msgstr "00, 01, ..., 53" #: ../Doc/library/datetime.rst:2131 ../Doc/library/datetime.rst:2139 -#, fuzzy msgid "\\(7), \\(9)" -msgstr "\\(1), \\(3)" +msgstr "\\(7), \\(9)" #: ../Doc/library/datetime.rst:2139 msgid "``%W``" @@ -3465,9 +3461,8 @@ msgid "01, 02, ..., 53" msgstr "01, 02, ..., 53" #: ../Doc/library/datetime.rst:2180 -#, fuzzy msgid "\\(8), \\(9)" -msgstr "\\(1), \\(3)" +msgstr "\\(8), \\(9)" #: ../Doc/library/datetime.rst:2187 msgid "``%G``, ``%u`` and ``%V`` were added." @@ -3617,9 +3612,9 @@ msgid "" "in calculations when the day of the week and the calendar year (``%Y``) are " "specified." msgstr "" -"Quand utilisés avec la méthode :meth:`strptime`, ``%U`` et ``%W`` ne sont " -"utilisés dans les calculs que si le jour de la semaine et l'année calendaire " -"(``%Y``) sont spécifiés." +"Quand ces directives sont utilisées avec la méthode :meth:`strptime`, ``%U`` " +"et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " +"l'année calendaire (``%Y``) sont spécifiés." #: ../Doc/library/datetime.rst:2272 msgid "" @@ -3639,6 +3634,10 @@ msgid "" "for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, ``%U``, " "``%W``, and ``%V``. Format ``%y`` does require a leading zero." msgstr "" +"Quand cette directive est utilisée avec la méthode :meth:`strptime`, le zéro " +"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, ``" +"%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert un " +"zéro en entête." #: ../Doc/library/datetime.rst:2283 msgid "Footnotes" diff --git a/library/decimal.po b/library/decimal.po index cb1878aed..090d5b1cc 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -511,7 +511,7 @@ msgstr "" "Il existe quelques différences mineures entre l'arithmétique entre les " "objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " "l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " -"résultat est le signe du *dividend* plutôt que le signe du diviseur::" +"résultat est le signe du *dividend* plutôt que le signe du diviseur ::" #: ../Doc/library/decimal.rst:423 msgid "" @@ -521,7 +521,7 @@ msgid "" msgstr "" "L'opérateur division entière, ``//`` se comporte de la même manière, " "retournant la partie entière du quotient, plutôt que son arrondi, de manière " -"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y``::" +"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" #: ../Doc/library/decimal.rst:432 msgid "" diff --git a/library/difflib.po b/library/difflib.po index eaf33ceab..777976d55 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" -msgstr "" +msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" #: ../Doc/library/difflib.rst:11 msgid "**Source code:** :source:`Lib/difflib.py`" @@ -46,6 +46,20 @@ msgid "" "minimal edit sequences, but does tend to yield matches that \"look right\" " "to people." msgstr "" +"C'est une classe flexible permettant de comparer des séquences deux à deux " +"de n'importe quel type, tant que les éléments des séquences sont :term:" +"`hachables `. L'algorithme de base est antérieur, et un peu plus " +"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et " +"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est " +"de trouver la plus longue sous-séquence d'appariement contiguë qui ne " +"contient pas d'éléments « indésirables » ; ces éléments « indésirables » " +"sont ceux qui sont inintéressants dans un certain sens, comme les lignes " +"blanches ou les espaces. (Le traitement des éléments indésirables est une " +"extension de l'algorithme de Ratcliff et Obershelp). La même idée est " +"ensuite appliquée récursivement aux morceaux des séquences à gauche et à " +"droite de la sous-séquence correspondante. Cela ne donne pas des séquences " +"de montage minimales, mais tend à donner des correspondances qui « semblent " +"correctes » pour les gens." #: ../Doc/library/difflib.rst:40 msgid "" @@ -55,6 +69,12 @@ msgid "" "dependent in a complicated way on how many elements the sequences have in " "common; best case time is linear." msgstr "" +"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " +"de complexité cubique dans le pire cas et de complexité quadratique dans le " +"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " +"pire cas et son comportement dans le cas attendu dépend de façon complexe du " +"nombre d'éléments que les séquences ont en commun ; le temps dans le " +"meilleur cas est linéaire." #: ../Doc/library/difflib.rst:46 msgid "" @@ -67,10 +87,20 @@ msgid "" "This heuristic can be turned off by setting the ``autojunk`` argument to " "``False`` when creating the :class:`SequenceMatcher`." msgstr "" +"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " +"utilise une heuristique qui traite automatiquement certains éléments de la " +"séquence comme indésirables. L'heuristique compte combien de fois chaque " +"élément individuel apparaît dans la séquence. Si les doublons d'un élément " +"(après le premier) représentent plus de 1 % de la séquence et que la " +"séquence compte au moins 200 éléments, cet élément est marqué comme " +"« populaire » et est traité comme indésirable aux fins de la comparaison des " +"séquences. Cette heuristique peut être désactivée en réglant l'argument " +"``autojunk`` sur ``False`` lors de la création de la classe :class:" +"`SequenceMatcher`." #: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:383 msgid "The *autojunk* parameter." -msgstr "" +msgstr "Le paramètre *autojunk*." #: ../Doc/library/difflib.rst:60 msgid "" @@ -79,10 +109,17 @@ msgid "" "both to compare sequences of lines, and to compare sequences of characters " "within similar (near-matching) lines." msgstr "" +"Il s'agit d'une classe permettant de comparer des séquences de lignes de " +"texte et de produire des différences ou deltas humainement lisibles. " +"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " +"séquences de lignes, et pour comparer des séquences de caractères dans des " +"lignes similaires (quasi-correspondantes)." #: ../Doc/library/difflib.rst:65 msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" msgstr "" +"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " +"lettres :" #: ../Doc/library/difflib.rst:68 msgid "Code" @@ -98,7 +135,7 @@ msgstr "``'- '``" #: ../Doc/library/difflib.rst:70 msgid "line unique to sequence 1" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 1" #: ../Doc/library/difflib.rst:72 msgid "``'+ '``" @@ -106,7 +143,7 @@ msgstr "``'+ '``" #: ../Doc/library/difflib.rst:72 msgid "line unique to sequence 2" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 2" #: ../Doc/library/difflib.rst:74 msgid "``' '``" @@ -114,7 +151,7 @@ msgstr "``' '``" #: ../Doc/library/difflib.rst:74 msgid "line common to both sequences" -msgstr "" +msgstr "ligne commune aux deux séquences" #: ../Doc/library/difflib.rst:76 msgid "``'? '``" @@ -122,7 +159,7 @@ msgstr "``'? '``" #: ../Doc/library/difflib.rst:76 msgid "line not present in either input sequence" -msgstr "" +msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" #: ../Doc/library/difflib.rst:79 msgid "" @@ -130,6 +167,10 @@ msgid "" "differences, and were not present in either input sequence. These lines can " "be confusing if the sequences contain tab characters." msgstr "" +"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " +"différences intralignes, et n'étaient présentes dans aucune des séquences " +"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " +"des caractères de tabulation." #: ../Doc/library/difflib.rst:86 msgid "" @@ -138,26 +179,35 @@ msgid "" "text with inter-line and intra-line change highlights. The table can be " "generated in either full or contextual difference mode." msgstr "" +"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " +"HTML complet contenant le tableau) montrant une comparaison côte à côte, " +"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " +"Le tableau peut être généré en mode de différence complet ou contextuel." #: ../Doc/library/difflib.rst:91 msgid "The constructor for this class is:" -msgstr "" +msgstr "Le constructeur pour cette classe est :" #: ../Doc/library/difflib.rst:96 msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "" +msgstr "Initialise l'instance de :class:`HtmlDiff`." #: ../Doc/library/difflib.rst:98 msgid "" "*tabsize* is an optional keyword argument to specify tab stop spacing and " "defaults to ``8``." msgstr "" +"*tabsize* est un mot-clé optionnel pour spécifier l'espacement des " +"tabulations et sa valeur par défaut est ``8``." #: ../Doc/library/difflib.rst:101 msgid "" "*wrapcolumn* is an optional keyword to specify column number where lines are " "broken and wrapped, defaults to ``None`` where lines are not wrapped." msgstr "" +"*wrapcolumn* est un mot-clé optionnel pour spécifier le numéro de la colonne " +"où les lignes sont coupées pour être ré-agencées, la valeur par défaut est " +"``None`` lorsque les lignes ne sont pas ré-agencées." #: ../Doc/library/difflib.rst:104 msgid "" @@ -166,10 +216,14 @@ msgid "" "differences). See :func:`ndiff` documentation for argument default values " "and descriptions." msgstr "" +"*linejunk* et *charjunk* sont des arguments de mots-clés optionnels passés " +"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les " +"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour " +"les valeurs par défaut des arguments et les descriptions." #: ../Doc/library/difflib.rst:108 msgid "The following methods are public:" -msgstr "" +msgstr "Les méthodes suivantes sont publiques :" #: ../Doc/library/difflib.rst:113 msgid "" @@ -177,12 +231,19 @@ msgid "" "which is a complete HTML file containing a table showing line by line " "differences with inter-line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " +"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " +"un tableau montrant les différences ligne par ligne avec les changements " +"inter-lignes et intralignes mis en évidence." #: ../Doc/library/difflib.rst:117 msgid "" "*fromdesc* and *todesc* are optional keyword arguments to specify from/to " "file column header strings (both default to an empty string)." msgstr "" +"*fromdesc* et *todesc* sont des arguments mot-clé optionnels pour spécifier " +"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " +"chaînes vides par défaut)." #: ../Doc/library/difflib.rst:120 msgid "" @@ -196,12 +257,25 @@ msgid "" "hyperlinks to place the next difference highlight at the top of the browser " "without any leading context)." msgstr "" +"*context* et *numlines* sont tous deux des arguments mots-clés facultatifs. " +"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " +"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " +"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " +"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte " +"qui entourent les différences mise en évidence. Lorsque *context* est " +"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " +"un surlignage de différence lors de l'utilisation des hyperliens " +"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " +"« suivants » placeraient le surlignage de différence suivant en haut du " +"navigateur sans aucun contexte introductif)." #: ../Doc/library/difflib.rst:130 msgid "" "*charset* keyword-only argument was added. The default charset of HTML " "document changed from ``'ISO-8859-1'`` to ``'utf-8'``." msgstr "" +"l'argument mot-clé *charset* a été ajouté. Le jeu de caractères par défaut " +"du document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." #: ../Doc/library/difflib.rst:136 msgid "" @@ -209,24 +283,34 @@ msgid "" "which is a complete HTML table showing line by line differences with inter-" "line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " +"qui est un tableau HTML complet montrant les différences ligne par ligne " +"avec les changements inter-lignes et intralignes mis en évidence." #: ../Doc/library/difflib.rst:140 msgid "" "The arguments for this method are the same as those for the :meth:" "`make_file` method." msgstr "" +"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:" +"`make_file`." #: ../Doc/library/difflib.rst:143 msgid "" ":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " "contains a good example of its use." msgstr "" +":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette " +"classe et contient un bon exemple de son utilisation." #: ../Doc/library/difflib.rst:149 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in context diff format." msgstr "" +"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :" +"term:`generateur ` générant les lignes delta) dans un format de " +"différence de contexte." #: ../Doc/library/difflib.rst:152 msgid "" @@ -243,12 +327,20 @@ msgid "" "with :func:`io.IOBase.writelines` since both the inputs and outputs have " "trailing newlines." msgstr "" +"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " +"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " +"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " +"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " +"puisque les entrées et les sorties ont des nouvelles lignes de fin." #: ../Doc/library/difflib.rst:162 ../Doc/library/difflib.rst:293 msgid "" "For inputs that do not have trailing newlines, set the *lineterm* argument " "to ``\"\"`` so that the output will be uniformly newline free." msgstr "" +"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " +"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " +"ligne." #: ../Doc/library/difflib.rst:165 ../Doc/library/difflib.rst:296 msgid "" @@ -258,10 +350,18 @@ msgid "" "normally expressed in the ISO 8601 format. If not specified, the strings " "default to blanks." msgstr "" +"Le format de contexte de différence comporte normalement un en-tête pour les " +"noms de fichiers et les heures de modification. Tout ou partie de ces " +"éléments peuvent être spécifiés en utilisant les chaînes de caractères " +"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " +"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " +"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." #: ../Doc/library/difflib.rst:188 ../Doc/library/difflib.rst:317 msgid "See :ref:`difflib-interface` for a more detailed example." msgstr "" +"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." #: ../Doc/library/difflib.rst:193 msgid "" diff --git a/library/dis.po b/library/dis.po index 213a594ab..1141b4328 100644 --- a/library/dis.po +++ b/library/dis.po @@ -7,12 +7,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2019-07-18 21:03+0200\n" +"Last-Translator: Aya Keddam \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Aya Keddam \n" "X-Generator: Poedit 2.2.1\n" #: ../Doc/library/dis.rst:2 diff --git a/library/email.errors.po b/library/email.errors.po index 536743673..10e707678 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -16,17 +16,19 @@ msgstr "" #: ../Doc/library/email.errors.rst:2 msgid ":mod:`email.errors`: Exception and Defect classes" -msgstr "" +msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" #: ../Doc/library/email.errors.rst:7 msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/errors.py`" #: ../Doc/library/email.errors.rst:11 msgid "" "The following exception classes are defined in the :mod:`email.errors` " "module:" msgstr "" +"Les classes d'exception suivantes sont définies dans le module :mod:`email." +"errors` :" #: ../Doc/library/email.errors.rst:16 msgid "" @@ -34,6 +36,9 @@ msgid "" "raise. It is derived from the standard :exc:`Exception` class and defines " "no additional methods." msgstr "" +"Exception de base, dont héritent toutes les exceptions du paquet :mod:" +"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne " +"définit aucune méthode additionnelle." #: ../Doc/library/email.errors.rst:23 msgid "" @@ -41,6 +46,9 @@ msgid "" "Parser` class. It is derived from :exc:`MessageError`. This class is also " "used internally by the parser used by :mod:`~email.headerregistry`." msgstr "" +"Exception de base pour les exceptions levées par la classe :class:`~email." +"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi " +"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`." #: ../Doc/library/email.errors.rst:31 msgid "" @@ -53,10 +61,19 @@ msgid "" "header (that is, there is what is supposed to be a continuation line that " "has no leading whitespace and looks like a header)." msgstr "" +"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " +"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " +"message. Lorsque la méthode :meth:`~email.message.EmailMessage." +"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est " +"inconnu. La classe :class:`~email.header.Header` lève cette exception pour " +"certains types d'erreurs provenant du décodage base64. Elle la lève aussi " +"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, " +"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas " +"par des caractères d'espacement." #: ../Doc/library/email.errors.rst:43 msgid "Deprecated and no longer used." -msgstr "" +msgstr "Obsolète, n'est plus utilisé." #: ../Doc/library/email.errors.rst:48 msgid "" @@ -66,6 +83,12 @@ msgid "" "`multipart` or missing. :exc:`MultipartConversionError` multiply inherits " "from :exc:`MessageError` and the built-in :exc:`TypeError`." msgstr "" +"Cette exception est levée quand le contenu, que la méthode :meth:" +"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, " +"est déjà un scalaire et que le type principal du message :mailheader:" +"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:" +"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :" +"exc:`TypeError`." #: ../Doc/library/email.errors.rst:54 msgid "" @@ -75,6 +98,11 @@ msgid "" "derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:" "`~email.mime.image.MIMEImage`)." msgstr "" +"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception " +"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:" +"`~email.message.Message.attach` est invoquée sur une instance de classe " +"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:" +"`~email.mime.image.MIMEImage`)." #: ../Doc/library/email.errors.rst:62 msgid "" @@ -85,41 +113,60 @@ msgid "" "nested message object would have a defect, but the containing messages would " "not." msgstr "" +"Voici la liste des anomalies que peut identifier :class:`~email.parser." +"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont " +"signalées à l'endroit où elles sont détectées : par exemple, dans le cas " +"d'une malformation de l'en-tête d'un message imbriqué dans un message de " +"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le " +"message imbriqué seulement." #: ../Doc/library/email.errors.rst:68 msgid "" "All defect classes are subclassed from :class:`email.errors.MessageDefect`." msgstr "" +"Toutes les anomalies sont des sous-classes de :class:`email.errors." +"MessageDefect`." #: ../Doc/library/email.errors.rst:70 msgid "" ":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, " "but had no :mimetype:`boundary` parameter." msgstr "" +":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " +"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:" +"`boundary`." #: ../Doc/library/email.errors.rst:73 msgid "" ":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :" "mailheader:`Content-Type` header was never found." msgstr "" +":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " +"séparateur de départ indiqué dans le :mailheader:`Content-Type`." #: ../Doc/library/email.errors.rst:76 msgid "" ":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no " "corresponding close boundary was ever found." msgstr "" +":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " +"mais pas le séparateur de fin correspondant." #: ../Doc/library/email.errors.rst:81 msgid "" ":class:`FirstHeaderLineIsContinuationDefect` -- The message had a " "continuation line as its first header line." msgstr "" +":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" +"tête du message est une ligne de continuation." #: ../Doc/library/email.errors.rst:84 msgid "" ":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in " "the middle of a header block." msgstr "" +":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " +"à l'intérieur d'un bloc d'en-tête." #: ../Doc/library/email.errors.rst:87 msgid "" @@ -127,16 +174,21 @@ msgid "" "headers that had no leading white space but contained no ':'. Parsing " "continues assuming that the line represents the first line of the body." msgstr "" +":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " +"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " +"en supposant qu'il s'agit donc de la première ligne du corps du message." #: ../Doc/library/email.errors.rst:93 msgid "" ":class:`MalformedHeaderDefect` -- A header was found that was missing a " "colon, or was otherwise malformed." msgstr "" +":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " +"« : »." #: ../Doc/library/email.errors.rst:96 msgid "This defect has not been used for several Python versions." -msgstr "" +msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." #: ../Doc/library/email.errors.rst:99 msgid "" @@ -152,6 +204,9 @@ msgid "" "encoded bytes, the padding was not correct. Enough padding is added to " "perform the decode, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " +"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " +"pour permettre le décodage, mais le résultat du décodage peut être invalide." #: ../Doc/library/email.errors.rst:108 msgid "" @@ -159,6 +214,10 @@ msgid "" "encoded bytes, characters outside the base64 alphabet were encountered. The " "characters are ignored, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " +"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " +"encodés en base64. Les caractères ont été ignorés, mais le résultat du " +"décodage peut être invalide." #: ../Doc/library/email.errors.rst:112 msgid "" @@ -166,3 +225,6 @@ msgid "" "encoded bytes, the number of non-padding base64 characters was invalid (1 " "more than a multiple of 4). The encoded block was kept as-is." msgstr "" +":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " +"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " +"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." diff --git a/library/email.message.po b/library/email.message.po index 0cf5ea282..9947bcaca 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -342,7 +342,7 @@ msgstr "" #: ../Doc/library/email.message.rst:287 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/email.message.rst:291 msgid "This will add a header that looks like ::" diff --git a/library/enum.po b/library/enum.po index d834af4d9..7131f5378 100644 --- a/library/enum.po +++ b/library/enum.po @@ -6,21 +6,22 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-07-26 19:08+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \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" #: ../Doc/library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" -msgstr "" +msgstr ":mod:`enum` — Énumerations" #: ../Doc/library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" -msgstr "**Code source :** :source:`Lib/enum.py`" +msgstr "**Code source :** :source:`Lib/enum.py`" #: ../Doc/library/enum.rst:18 msgid "" @@ -28,6 +29,10 @@ msgid "" "constant values. Within an enumeration, the members can be compared by " "identity, and the enumeration itself can be iterated over." msgstr "" +"Une énumération est un ensemble de noms symboliques, appelés *membres*, liés " +"à des valeurs constantes et uniques. Au sein d'une énumération, les membres " +"peuvent être comparés entre eux et il est possible d'itérer sur " +"l'énumération elle-même." #: ../Doc/library/enum.rst:24 msgid "Module Contents" @@ -40,18 +45,26 @@ msgid "" "`Flag`, and :class:`IntFlag`. It also defines one decorator, :func:" "`unique`, and one helper, :class:`auto`." msgstr "" +"Ce module définit quatre classes d'énumération qui permettent de définir des " +"ensembles uniques de noms et de valeurs : :class:`Enum`, :class:`IntEnum`, :" +"class:`Flag` et :class:`IntFlag`. Il fournit également un décorateur, :func:" +"`unique`, ainsi qu'une classe utilitaire, :class:`auto`." #: ../Doc/library/enum.rst:33 msgid "" "Base class for creating enumerated constants. See section `Functional API`_ " "for an alternate construction syntax." msgstr "" +"Classe de base pour créer une énumération de constantes. Voir la section " +"`API par fonction`_ pour une syntaxe alternative de construction." #: ../Doc/library/enum.rst:38 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`." msgstr "" +"Classe de base pour créer une énumération de constantes qui sont également " +"des sous-classes de :class:`int`." #: ../Doc/library/enum.rst:43 msgid "" @@ -59,29 +72,40 @@ msgid "" "bitwise operators without losing their :class:`IntFlag` membership. :class:" "`IntFlag` members are also subclasses of :class:`int`." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " +"sous-classes de :class:`int`." #: ../Doc/library/enum.rst:49 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." msgstr "" +"Classe de base pour créer une énumération de constantes pouvant être " +"combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " +"qualité de :class:`Flag`." #: ../Doc/library/enum.rst:54 msgid "" "Enum class decorator that ensures only one name is bound to any one value." msgstr "" +"Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " +"un seul nom." #: ../Doc/library/enum.rst:58 msgid "Instances are replaced with an appropriate value for Enum members." msgstr "" +"Les instances de cette classe remplacent les membres d'une *Enum* par une " +"valeur appropriée." #: ../Doc/library/enum.rst:60 msgid "``Flag``, ``IntFlag``, ``auto``" -msgstr "" +msgstr "``Flag``, ``IntFlag``, ``auto``" #: ../Doc/library/enum.rst:64 msgid "Creating an Enum" -msgstr "" +msgstr "Création d'une *Enum*" #: ../Doc/library/enum.rst:66 msgid "" @@ -90,10 +114,14 @@ msgid "" "`Functional API`_. To define an enumeration, subclass :class:`Enum` as " "follows::" msgstr "" +"Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " +"à lire et à écrire. Une autre méthode de création est décrite dans `API par " +"fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " +"de la manière suivante ::" #: ../Doc/library/enum.rst:78 msgid "Enum member values" -msgstr "" +msgstr "Valeurs des membres d'une *Enum*" #: ../Doc/library/enum.rst:80 msgid "" @@ -102,62 +130,80 @@ msgid "" "appropriate value will be chosen for you. Care must be taken if you mix :" "class:`auto` with other values." msgstr "" +"La valeur d'un membre peut être de n'importe quel type : :class:`int`, :" +"class:`str`, etc. Si la valeur exacte n'a pas d'importance, utilisez des " +"instances de :class:`auto` et une valeur appropriée sera choisie pour vous. " +"Soyez vigilant si vous mélangez :class:`auto` avec d'autres valeurs." #: ../Doc/library/enum.rst:85 msgid "Nomenclature" -msgstr "" +msgstr "Nomenclature" #: ../Doc/library/enum.rst:87 msgid "The class :class:`Color` is an *enumeration* (or *enum*)" -msgstr "" +msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." #: ../Doc/library/enum.rst:88 msgid "" "The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " "*enumeration members* (or *enum members*) and are functionally constants." msgstr "" +"Les attributs :attr:`Color.RED`, :attr:`Color.GREEN`, etc., sont les " +"*membres de l'énumération* (ou les *membres de l'enum*) et sont " +"fonctionnellement des constantes." #: ../Doc/library/enum.rst:90 msgid "" "The enum members have *names* and *values* (the name of :attr:`Color.RED` is " "``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" msgstr "" +"Les membres de *l'enum* ont chacun un *nom* et une *valeur* ; le nom de :" +"attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, etc." #: ../Doc/library/enum.rst:96 msgid "" "Even though we use the :keyword:`class` syntax to create Enums, Enums are " "not normal Python classes. See `How are Enums different?`_ for more details." msgstr "" +"Même si on utilise la syntaxe en :keyword:`class` pour créer des " +"énumérations, les *Enums* ne sont pas des vraies classes Python. Voir `En " +"quoi les Enums sont différentes ?`_ pour plus de détails." #: ../Doc/library/enum.rst:100 msgid "Enumeration members have human readable string representations::" msgstr "" +"Les membres d'une énumération ont une représentation en chaîne de caractères " +"compréhensible par un humain ::" #: ../Doc/library/enum.rst:105 msgid "...while their ``repr`` has more information::" -msgstr "" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" #: ../Doc/library/enum.rst:110 msgid "The *type* of an enumeration member is the enumeration it belongs to::" -msgstr "" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" #: ../Doc/library/enum.rst:118 msgid "Enum members also have a property that contains just their item name::" -msgstr "" +msgstr "Les membres ont également un attribut qui contient leur nom ::" #: ../Doc/library/enum.rst:123 msgid "Enumerations support iteration, in definition order::" msgstr "" +"Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " +"les membres sont déclarés ::" #: ../Doc/library/enum.rst:139 msgid "" "Enumeration members are hashable, so they can be used in dictionaries and " "sets::" msgstr "" +"Les membres d'une énumération sont hachables, ils peuvent ainsi être " +"utilisés dans des dictionnaires ou des ensembles ::" #: ../Doc/library/enum.rst:149 msgid "Programmatic access to enumeration members and their attributes" -msgstr "" +msgstr "Accès dynamique aux membres et à leurs attributs" #: ../Doc/library/enum.rst:151 msgid "" @@ -165,22 +211,28 @@ msgid "" "e. situations where ``Color.RED`` won't do because the exact color is not " "known at program-writing time). ``Enum`` allows such access::" msgstr "" +"Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " +"énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " +"``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " +"programme). ``Enum`` permet de tels accès ::" #: ../Doc/library/enum.rst:160 msgid "If you want to access enum members by *name*, use item access::" msgstr "" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::" #: ../Doc/library/enum.rst:167 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" #: ../Doc/library/enum.rst:177 msgid "Duplicating enum members and values" -msgstr "" +msgstr "Duplication de membres et de valeurs" #: ../Doc/library/enum.rst:179 msgid "Having two enum members with the same name is invalid::" msgstr "" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" #: ../Doc/library/enum.rst:189 msgid "" @@ -189,6 +241,10 @@ msgid "" "A. By-value lookup of the value of A and B will return A. By-name lookup " "of B will also return A::" msgstr "" +"Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " +"ont la même valeur (et que A est défini en premier), B sera un alias de A. " +"Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " +"par nom renverra aussi A ::" #: ../Doc/library/enum.rst:209 msgid "" @@ -196,10 +252,13 @@ msgid "" "attribute (another member, a method, etc.) or attempting to create an " "attribute with the same name as a member is not allowed." msgstr "" +"Il est interdit de créer un membre avec le même nom qu'un attribut déjà " +"défini (un autre membre, une méthode, etc.) ou de créer un attribut avec le " +"nom d'un membre." #: ../Doc/library/enum.rst:215 msgid "Ensuring unique enumeration values" -msgstr "" +msgstr "Coercition d'unicité des valeurs d'une énumération" #: ../Doc/library/enum.rst:217 msgid "" @@ -207,6 +266,10 @@ msgid "" "When this behavior isn't desired, the following decorator can be used to " "ensure each value is used only once in the enumeration:" msgstr "" +"Par défaut, les énumérations autorisent les alias de nom pour une même " +"valeur. Quand ce comportement n'est pas désiré, il faut utiliser le " +"décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " +"seule fois au sein de l'énumération : ::" #: ../Doc/library/enum.rst:223 msgid "" @@ -214,20 +277,27 @@ msgid "" "enumeration's :attr:`__members__` gathering any aliases it finds; if any are " "found :exc:`ValueError` is raised with the details::" msgstr "" +"Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " +"l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::" #: ../Doc/library/enum.rst:241 msgid "Using automatic values" -msgstr "" +msgstr "Valeurs automatiques" #: ../Doc/library/enum.rst:243 msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "" +"Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" +"`auto` ::" #: ../Doc/library/enum.rst:254 msgid "" "The values are chosen by :func:`_generate_next_value_`, which can be " "overridden::" msgstr "" +"Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " +"être redéfinie ::" #: ../Doc/library/enum.rst:272 msgid "" @@ -235,14 +305,17 @@ msgid "" "the next :class:`int` in sequence with the last :class:`int` provided, but " "the way it does this is an implementation detail and may change." msgstr "" +"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" +"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " +"mais la séquence générée dépend de l'implémentation Python." #: ../Doc/library/enum.rst:277 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/enum.rst:279 msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" #: ../Doc/library/enum.rst:284 msgid "" @@ -250,12 +323,17 @@ msgid "" "to members. It includes all names defined in the enumeration, including the " "aliases::" msgstr "" +"L'attribut spécial ``__members__`` est un dictionnaire ordonné qui fait " +"correspondre les noms aux membres. Il inclut tous les noms définis dans " +"l'énumération, alias compris : ::" #: ../Doc/library/enum.rst:296 msgid "" "The ``__members__`` attribute can be used for detailed programmatic access " "to the enumeration members. For example, finding all the aliases::" msgstr "" +"L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " +"de l'énumération. Par exemple, pour trouver tous les alias ::" #: ../Doc/library/enum.rst:304 msgid "Comparisons" @@ -263,17 +341,20 @@ msgstr "Comparaisons" #: ../Doc/library/enum.rst:306 msgid "Enumeration members are compared by identity::" -msgstr "" +msgstr "Les membres d'une énumération sont comparés par identité ::" #: ../Doc/library/enum.rst:315 msgid "" "Ordered comparisons between enumeration values are *not* supported. Enum " "members are not integers (but see `IntEnum`_ below)::" msgstr "" +"Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " +"*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " +"`IntEnum`_ ci-dessous) ::" #: ../Doc/library/enum.rst:323 msgid "Equality comparisons are defined though::" -msgstr "" +msgstr "A contrario, les comparaisons d'égalité existent ::" #: ../Doc/library/enum.rst:332 msgid "" @@ -281,10 +362,13 @@ msgid "" "(again, :class:`IntEnum` was explicitly designed to behave differently, see " "below)::" msgstr "" +"Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " +"toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " +"différemment, voir ci-dessous) ::" #: ../Doc/library/enum.rst:341 msgid "Allowed members and attributes of enumerations" -msgstr "" +msgstr "Membres et attributs autorisés dans une énumération" #: ../Doc/library/enum.rst:343 msgid "" @@ -294,16 +378,24 @@ msgid "" "the actual value of an enumeration is. But if the value *is* important, " "enumerations can have arbitrary values." msgstr "" +"Les exemples précédents utilisent des entiers pour énumérer les valeurs. " +"C'est un choix concis et pratique (et implémenté par défaut dans l'`API par " +"fonction`_), mais ce n'est pas une obligation. Dans la majorité des cas, il " +"importe peu de connaître la valeur réelle d'une énumération. Il est " +"toutefois possible de donner une valeur arbitraire aux énumérations, si " +"cette valeur est *vraiment* significative." #: ../Doc/library/enum.rst:349 msgid "" "Enumerations are Python classes, and can have methods and special methods as " "usual. If we have this enumeration::" msgstr "" +"Les énumérations sont des classes Python et peuvent donc avoir des méthodes " +"et des méthodes spéciales. L'énumération suivante ::" #: ../Doc/library/enum.rst:369 msgid "Then::" -msgstr "" +msgstr "amène ::" #: ../Doc/library/enum.rst:378 msgid "" @@ -314,6 +406,13 @@ msgid "" "`__add__`, etc.), descriptors (methods are also descriptors), and variable " "names listed in :attr:`_ignore_`." msgstr "" +"Les règles pour ce qui est autorisé sont les suivantes : les noms qui " +"commencent et finissent avec un seul tiret bas sont réservés par *enum* et " +"ne peuvent pas être utilisés ; tous les autres attributs définis dans " +"l'énumération en deviendront des membres, à l'exception des méthodes " +"spéciales (:meth:`__str__`, :meth:`__add__`, etc.), des descripteurs (les " +"méthodes sont aussi des descripteurs) et des noms de variable listés dans :" +"attr:`_ignore_`." #: ../Doc/library/enum.rst:385 msgid "" @@ -321,10 +420,13 @@ msgid "" "then whatever value(s) were given to the enum member will be passed into " "those methods. See `Planet`_ for an example." msgstr "" +"Remarque : si l'énumération définit :meth:`__new__` ou :meth:`__init__`, " +"alors la (ou les) valeur affectée au membre sera passée à ces méthodes. Voir " +"l'exemple de `Planet`_." #: ../Doc/library/enum.rst:391 msgid "Restricted Enum subclassing" -msgstr "" +msgstr "Restrictions sur l'héritage" #: ../Doc/library/enum.rst:393 msgid "" @@ -332,16 +434,22 @@ msgid "" "data type, and as many :class:`object`-based mixin classes as needed. The " "order of these base classes is::" msgstr "" +"Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, au " +"plus un type de données concret et autant de classes de mélange (basées sur :" +"class:`object`) que nécessaire. L'ordre de ces classes de base est le " +"suivant ::" #: ../Doc/library/enum.rst:400 msgid "" "Also, subclassing an enumeration is allowed only if the enumeration does not " "define any members. So this is forbidden::" msgstr "" +"Hériter d'une énumération n'est permis que si cette énumération ne définit " +"aucun membre. Le code suivant n'est pas autorisé ::" #: ../Doc/library/enum.rst:410 msgid "But this is allowed::" -msgstr "" +msgstr "Mais celui-ci est correct ::" #: ../Doc/library/enum.rst:421 msgid "" @@ -350,14 +458,18 @@ msgid "" "makes sense to allow sharing some common behavior between a group of " "enumerations. (See `OrderedEnum`_ for an example.)" msgstr "" +"Autoriser l'héritage d'*enums* définissant des membres violerait des " +"invariants sur les types et les instances. D'un autre côté, il est logique " +"d'autoriser un groupe d'énumérations à partager un comportement commun (voir " +"par exemple `OrderedEnum`_)." #: ../Doc/library/enum.rst:428 msgid "Pickling" -msgstr "" +msgstr "Sérialisation" #: ../Doc/library/enum.rst:430 msgid "Enumerations can be pickled and unpickled::" -msgstr "" +msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" #: ../Doc/library/enum.rst:437 msgid "" @@ -365,33 +477,44 @@ msgid "" "in the top level of a module, since unpickling requires them to be " "importable from that module." msgstr "" +"Les restrictions habituelles de sérialisation s'appliquent : les *enums* à " +"sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " +"module car la déserialisation nécessite que ces *enums* puissent être " +"importés depuis ce module." #: ../Doc/library/enum.rst:443 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." msgstr "" +"Depuis la version 4 du protocole de *pickle*, il est possible de sérialiser " +"facilement des *enums* imbriqués dans d'autres classes." #: ../Doc/library/enum.rst:446 msgid "" "It is possible to modify how Enum members are pickled/unpickled by defining :" "meth:`__reduce_ex__` in the enumeration class." msgstr "" +"Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " +"sérialisation ou la dé-sérialisation des membres d'une énumération." #: ../Doc/library/enum.rst:451 msgid "Functional API" -msgstr "" +msgstr "API par fonction" #: ../Doc/library/enum.rst:453 msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::" #: ../Doc/library/enum.rst:465 msgid "" "The semantics of this API resemble :class:`~collections.namedtuple`. The " "first argument of the call to :class:`Enum` is the name of the enumeration." msgstr "" +"La sémantique de cette API est similaire à :class:`~collections.namedtuple`. " +"Le premier argument de l'appel à :class:`Enum` est le nom de l'énumération." #: ../Doc/library/enum.rst:468 msgid "" @@ -404,6 +527,15 @@ msgid "" "class derived from :class:`Enum` is returned. In other words, the above " "assignment to :class:`Animal` is equivalent to::" msgstr "" +"Le second argument est la *source* des noms des membres de l'énumération. Il " +"peut être une chaîne de caractères contenant les noms séparés par des " +"espaces, une séquence de noms, une séquence de couples clé / valeur ou un " +"dictionnaire (p. ex. un *dict*) de valeurs indexées par des noms. Les deux " +"dernières options permettent d'affecter des valeurs arbitraires aux " +"énumérations ; les autres affectent automatiquement des entiers en " +"commençant par 1 (le paramètre ``start`` permet de changer la valeur de " +"départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" #: ../Doc/library/enum.rst:484 msgid "" @@ -411,6 +543,9 @@ msgid "" "that ``0`` is ``False`` in a boolean sense, but enum members all evaluate to " "``True``." msgstr "" +"La valeur de départ par défaut est ``1`` et non ``0`` car ``0`` au sens " +"booléen vaut ``False`` alors que tous les membres d'une *enum* valent " +"``True``." #: ../Doc/library/enum.rst:488 msgid "" @@ -420,6 +555,13 @@ msgid "" "function in separate module, and also may not work on IronPython or Jython). " "The solution is to specify the module name explicitly as follows::" msgstr "" +"La sérialisation d'énumérations créées avec l'API en fonction peut être " +"source de problèmes, car celle-ci repose sur des détails d'implémentation de " +"l'affichage de la pile d'appel pour tenter de déterminer dans quel module " +"l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " +"provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " +"Jython). La solution consiste à préciser explicitement le nom du module " +"comme ceci ::" #: ../Doc/library/enum.rst:498 msgid "" @@ -427,6 +569,9 @@ msgid "" "Enum members will not be unpicklable; to keep errors closer to the source, " "pickling will be disabled." msgstr "" +"Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " +"nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les " +"erreurs au plus près de leur origine, la sérialisation sera désactivée." #: ../Doc/library/enum.rst:502 msgid "" @@ -435,40 +580,48 @@ msgid "" "able to find the class. For example, if the class was made available in " "class SomeData in the global scope::" msgstr "" +"Le nouveau protocole version 4 de *pickle* se base lui aussi, dans certains " +"cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " +"où *pickle* peut trouver la classe. Par exemple, si la classe était " +"disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " +"niveau ::" #: ../Doc/library/enum.rst:509 msgid "The complete signature is::" -msgstr "" +msgstr "La signature complète est la suivante ::" #: ../Doc/library/enum.rst:0 msgid "value" -msgstr "valeur" +msgstr "value" #: ../Doc/library/enum.rst:513 msgid "What the new Enum class will record as its name." -msgstr "" +msgstr "Le nom de la la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "names" -msgstr "" +msgstr "names" #: ../Doc/library/enum.rst:515 msgid "" "The Enum members. This can be a whitespace or comma separated string " "(values will start at 1 unless otherwise specified)::" msgstr "" +"Les membres de l'énumération. Une chaîne de caractères séparés par des " +"espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " +"spécifiée autrement) ::" #: ../Doc/library/enum.rst:520 msgid "or an iterator of names::" -msgstr "" +msgstr "ou un itérateur sur les noms ::" #: ../Doc/library/enum.rst:524 msgid "or an iterator of (name, value) pairs::" -msgstr "" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" #: ../Doc/library/enum.rst:528 msgid "or a mapping::" -msgstr "" +msgstr "ou une correspondance ::" #: ../Doc/library/enum.rst:0 msgid "module" @@ -476,15 +629,15 @@ msgstr "module" #: ../Doc/library/enum.rst:532 msgid "name of module where new Enum class can be found." -msgstr "" +msgstr "nom du module dans lequel la classe *Enum* se trouve." #: ../Doc/library/enum.rst:0 msgid "qualname" -msgstr "" +msgstr "qualname" #: ../Doc/library/enum.rst:534 msgid "where in module new Enum class can be found." -msgstr "" +msgstr "localisation de la nouvelle classe *Enum* dans le module." #: ../Doc/library/enum.rst:0 msgid "type" @@ -492,23 +645,23 @@ msgstr "type" #: ../Doc/library/enum.rst:536 msgid "type to mix in to new Enum class." -msgstr "" +msgstr "le type à mélanger dans la nouvelle classe *Enum*." #: ../Doc/library/enum.rst:0 msgid "start" -msgstr "" +msgstr "start" #: ../Doc/library/enum.rst:538 msgid "number to start counting at if only names are passed in." -msgstr "" +msgstr "index de départ si uniquement des noms sont passés." #: ../Doc/library/enum.rst:540 msgid "The *start* parameter was added." -msgstr "" +msgstr "Ajout du paramètre *start*." #: ../Doc/library/enum.rst:545 msgid "Derived Enumerations" -msgstr "" +msgstr "Énumérations dérivées" #: ../Doc/library/enum.rst:548 msgid "IntEnum" @@ -521,21 +674,29 @@ msgid "" "extension, integer enumerations of different types can also be compared to " "each other::" msgstr "" +"La première version dérivée de :class:`Enum` qui existe est aussi une sous-" +"classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " +"comparés à des entiers et, par extension, les comparaisons entre des " +"énumérations entières de type différent sont possibles ::" #: ../Doc/library/enum.rst:571 msgid "" "However, they still can't be compared to standard :class:`Enum` " "enumerations::" msgstr "" +"Elles ne peuvent cependant toujours pas être comparées à des énumérations " +"standards de :class:`Enum` ::" #: ../Doc/library/enum.rst:584 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" +"Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " +"pouvait s'y attendre ::" #: ../Doc/library/enum.rst:595 msgid "IntFlag" -msgstr "" +msgstr "IntFlag" #: ../Doc/library/enum.rst:597 msgid "" @@ -547,14 +708,23 @@ msgid "" "is used. Any operation on an :class:`IntFlag` member besides the bit-wise " "operations will lose the :class:`IntFlag` membership." msgstr "" +"La version dérivée suivante de :class:`Enum` est :class:`IntFlag`. Elle est " +"aussi basée sur :class:`int`, à la différence près que les membres de :class:" +"`IntFlag` peuvent être combinés en utilisant les opérateurs bit-à-bit (&, " +"\\|, ^, ~) et que le résultat reste un membre de :class:`IntFlag`. " +"Cependant, comme le nom l'indique, les membres d'une classe :class:`IntFlag` " +"héritent aussi de :class:`int` et peuvent être utilisés là où un :class:" +"`int` est utilisé. Toute opération sur un membre d'une classe :class:" +"`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" +"class:`IntFlag`." #: ../Doc/library/enum.rst:607 msgid "Sample :class:`IntFlag` class::" -msgstr "" +msgstr "Exemple d'une classe :class:`IntFlag` ::" #: ../Doc/library/enum.rst:623 msgid "It is also possible to name the combinations::" -msgstr "" +msgstr "Il est aussi possible de nommer les combinaisons ::" #: ../Doc/library/enum.rst:635 msgid "" @@ -562,12 +732,17 @@ msgid "" "that if no flags are set (the value is 0), its boolean evaluation is :data:" "`False`::" msgstr "" +"Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " +"que, si aucune option n'est activée (la valeur vaut 0), son évaluation " +"booléenne est :data:`False` ::" #: ../Doc/library/enum.rst:643 msgid "" "Because :class:`IntFlag` members are also subclasses of :class:`int` they " "can be combined with them::" msgstr "" +"Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" +"`int`, ils peuvent être combinés avec eux ::" #: ../Doc/library/enum.rst:651 msgid "Flag" @@ -582,24 +757,39 @@ msgid "" "specify the values directly it is recommended to use :class:`auto` as the " "value and let :class:`Flag` select an appropriate value." msgstr "" +"La dernière version dérivée est la classe :class:`Flag`. Comme :class:" +"`IntFlag`, les membres d'une classe :class:`Flag` peuvent être combinés en " +"utilisant les opérateurs de comparaison bit-à-bit. Cependant, à la " +"différence de :class:`IntFlag`, ils ne peuvent ni être combinés, ni être " +"comparés avec une autre énumération :class:`Flag`, ni avec :class:`int`. " +"Bien qu'il soit possible de définir directement les valeurs, il est " +"recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " +"choisir une valeur appropriée." #: ../Doc/library/enum.rst:662 msgid "" "Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " "no flags being set, the boolean evaluation is :data:`False`::" msgstr "" +"Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" +"class:`Flag` n'active aucune option, l'évaluation booléenne de la " +"comparaison est :data:`False` ::" #: ../Doc/library/enum.rst:676 msgid "" "Individual flags should have values that are powers of two (1, 2, 4, " "8, ...), while combinations of flags won't::" msgstr "" +"Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " +"4, 8, ...) mais pas les combinaisons ::" #: ../Doc/library/enum.rst:688 msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" msgstr "" +"Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " +"booléenne ::" #: ../Doc/library/enum.rst:704 msgid "" @@ -611,6 +801,14 @@ msgid "" "will not do; for example, when integer constants are replaced with " "enumerations, or for interoperability with other systems." msgstr "" +"Dans la plupart des cas, il est fortement recommandé d'utiliser :class:" +"`Enum` et :class:`Flag` pour écrire du code nouveau, car :class:`IntEnum` " +"et :class:`IntFlag` violent certains principes sémantiques d'une énumération " +"(en pouvant être comparées à des entiers et donc, par transitivité, à " +"d'autres énumérations). :class:`IntEnum` et :class:`IntFlag` ne doivent être " +"utilisées que dans les cas où :class:`Enum` et :class:`Flag` ne suffisent " +"pas ; par exemple quand des constantes entières sont remplacées par des " +"énumérations, ou pour l’interopérabilité avec d'autres systèmes." #: ../Doc/library/enum.rst:714 msgid "Others" @@ -621,6 +819,8 @@ msgid "" "While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " "simple to implement independently::" msgstr "" +"Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " +"très simple à implémenter hors de ce module ::" #: ../Doc/library/enum.rst:722 msgid "" @@ -628,10 +828,13 @@ msgid "" "example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" "`int`." msgstr "" +"Ceci montre comment définir des énumérations dérivées similaires ; par " +"exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " +"de :class:`int`." #: ../Doc/library/enum.rst:725 msgid "Some rules:" -msgstr "" +msgstr "Quelques règles :" #: ../Doc/library/enum.rst:727 msgid "" @@ -639,6 +842,9 @@ msgid "" "`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " "above." msgstr "" +"Pour hériter de :class:`Enum`, les types de mélange doivent être placés " +"avant la classe :class:`Enum` elle-même dans la liste des classes de base, " +"comme dans l'exemple de :class:`IntEnum` ci-dessus." #: ../Doc/library/enum.rst:730 msgid "" @@ -648,6 +854,11 @@ msgid "" "methods and don't specify another data type such as :class:`int` or :class:" "`str`." msgstr "" +"Même si une classe :class:`Enum` peut avoir des membres de n'importe quel " +"type, dès lors qu'un type de mélange est ajouté, tous les membres doivent " +"être de ce type, p. ex. :class:`int` ci-dessus. Cette restriction ne " +"s'applique pas aux types de mélange qui ne font qu'ajouter des méthodes et " +"ne définissent pas de type de données, tels :class:`int` ou :class:`str`. " #: ../Doc/library/enum.rst:735 msgid "" @@ -655,6 +866,9 @@ msgid "" "same* as the enum member itself, although it is equivalent and will compare " "equal." msgstr "" +"Quand un autre type de données est mélangé, l'attribut :attr:`value` n'est " +"*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " +"équivalents et égaux en comparaison." #: ../Doc/library/enum.rst:738 msgid "" @@ -662,6 +876,10 @@ msgid "" "`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or `" "%h` for IntEnum) treat the enum member as its mixed-in type." msgstr "" +"Formatage de style *%* : `%s` et `%r` appellent respectivement les méthodes :" +"meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; les autres " +"codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au membre comme si " +"celui-ci était converti en son type de mélange." #: ../Doc/library/enum.rst:741 msgid "" @@ -670,10 +888,14 @@ msgid "" "`Enum` class's :func:`str` or :func:`repr` is desired, use the `!s` or `!r` " "format codes." msgstr "" +":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." +"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " +"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " +"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." #: ../Doc/library/enum.rst:748 msgid "Interesting examples" -msgstr "" +msgstr "Exemples intéressants" #: ../Doc/library/enum.rst:750 msgid "" @@ -682,34 +904,44 @@ msgid "" "all. Here are recipes for some different types of enumerations that can be " "used directly, or as examples for creating one's own." msgstr "" +"Bien que :class:`Enum`, :class:`IntEnum`, :class:`IntFlag` et :class:`Flag` " +"soient conçues pour répondre à la majorité des besoins, elles ne peuvent " +"répondre à tous. Voici quelques recettes d'énumération qui peuvent être " +"réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " +"propres énumérations." #: ../Doc/library/enum.rst:757 msgid "Omitting values" -msgstr "" +msgstr "Omettre les valeurs" #: ../Doc/library/enum.rst:759 msgid "" "In many use-cases one doesn't care what the actual value of an enumeration " "is. There are several ways to define this type of simple enumeration:" msgstr "" +"Dans de nombreux cas, la valeur réelle de l'énumération n'a pas " +"d'importance. Il y a plusieurs façons de définir ce type d'énumération " +"simple :" #: ../Doc/library/enum.rst:762 msgid "use instances of :class:`auto` for the value" -msgstr "" +msgstr "affecter des instances de :class:`auto` aux valeurs" #: ../Doc/library/enum.rst:763 msgid "use instances of :class:`object` as the value" -msgstr "" +msgstr "affecter des instances de :class:`object` aux valeurs" #: ../Doc/library/enum.rst:764 msgid "use a descriptive string as the value" -msgstr "" +msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" #: ../Doc/library/enum.rst:765 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" msgstr "" +"affecter un n-uplet aux valeurs et définir une méthode :meth:`__new__` pour " +"remplacer les n-uplets avec un :class:`int`" #: ../Doc/library/enum.rst:768 msgid "" @@ -717,44 +949,51 @@ msgid "" "important, and also enables one to add, remove, or reorder members without " "having to renumber the remaining members." msgstr "" +"Utiliser une de ces méthodes indique à l'utilisateur que les valeurs n'ont " +"pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de ré-" +"ordonner les membres sans avoir à ré-énumérer les membres existants." #: ../Doc/library/enum.rst:772 msgid "" "Whichever method you choose, you should provide a :meth:`repr` that also " "hides the (unimportant) value::" msgstr "" +"Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " +"qui masque les valeurs (pas importantes de toute façon) ::" #: ../Doc/library/enum.rst:782 msgid "Using :class:`auto`" -msgstr "" +msgstr "Avec :class:`auto`" #: ../Doc/library/enum.rst:784 msgid "Using :class:`auto` would look like::" -msgstr "" +msgstr "On utilise :class:`auto` de la manière suivante ::" #: ../Doc/library/enum.rst:796 msgid "Using :class:`object`" -msgstr "" +msgstr "Avec :class:`object`" #: ../Doc/library/enum.rst:798 msgid "Using :class:`object` would look like::" -msgstr "" +msgstr "On utilise :class:`object` de la manière suivante ::" #: ../Doc/library/enum.rst:810 msgid "Using a descriptive string" -msgstr "" +msgstr "Avec une chaîne de caractères de description" #: ../Doc/library/enum.rst:812 msgid "Using a string as the value would look like::" -msgstr "" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" #: ../Doc/library/enum.rst:826 msgid "Using a custom :meth:`__new__`" -msgstr "" +msgstr "Avec une méthode ad-hoc :meth:`__new__`" #: ../Doc/library/enum.rst:828 msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "" +"On utilise une méthode :meth:`__new__` d'énumération de la manière " +"suivante ::" #: ../Doc/library/enum.rst:850 msgid "" @@ -762,6 +1001,10 @@ msgid "" "members; it is then replaced by Enum's :meth:`__new__` which is used after " "class creation for lookup of existing members." msgstr "" +"La méthode :meth:`__new__`, si définie, est appelée à la création des " +"membres de l'énumération ; elle est ensuite remplacée par la méthode :meth:" +"`__new__` de *Enum*, qui est utilisée après la création de la classe pour la " +"recherche des membres existants." #: ../Doc/library/enum.rst:856 msgid "OrderedEnum" @@ -773,6 +1016,10 @@ msgid "" "maintains the normal :class:`Enum` invariants (such as not being comparable " "to other enumerations)::" msgstr "" +"Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " +"par conséquent, respecte les invariants classiques de :class:`Enum` (comme " +"par exemple l'impossibilité de pouvoir être comparée à d'autres " +"énumérations) ::" #: ../Doc/library/enum.rst:892 msgid "DuplicateFreeEnum" @@ -783,6 +1030,7 @@ msgid "" "Raises an error if a duplicate member name is found instead of creating an " "alias::" msgstr "" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" #: ../Doc/library/enum.rst:919 msgid "" @@ -790,38 +1038,45 @@ msgid "" "behaviors as well as disallowing aliases. If the only desired change is " "disallowing aliases, the :func:`unique` decorator can be used instead." msgstr "" +"Cet exemple d'héritage de *Enum* est intéressant pour ajouter ou modifier " +"des comportements comme interdire les alias. Si vous ne souhaitez " +"qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." #: ../Doc/library/enum.rst:925 msgid "Planet" -msgstr "" +msgstr "Planet" #: ../Doc/library/enum.rst:927 msgid "" "If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " "member will be passed to those methods::" msgstr "" +"Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " +"l'énumération sera passée à ces méthodes ::" #: ../Doc/library/enum.rst:955 msgid "TimePeriod" -msgstr "" +msgstr "TimePeriod" #: ../Doc/library/enum.rst:957 msgid "An example to show the :attr:`_ignore_` attribute in use::" -msgstr "" +msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" #: ../Doc/library/enum.rst:974 msgid "How are Enums different?" -msgstr "" +msgstr "En quoi les *Enums* sont différentes ?" #: ../Doc/library/enum.rst:976 msgid "" "Enums have a custom metaclass that affects many aspects of both derived Enum " "classes and their instances (members)." msgstr "" +"Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects des " +"classes dérivées de *Enum* et de leur instances (membres)." #: ../Doc/library/enum.rst:981 msgid "Enum Classes" -msgstr "" +msgstr "Classes *Enum*" #: ../Doc/library/enum.rst:983 msgid "" @@ -833,10 +1088,17 @@ msgid "" "`Enum` class are correct (such as :meth:`__new__`, :meth:`__getnewargs__`, :" "meth:`__str__` and :meth:`__repr__`)." msgstr "" +"La métaclasse :class:`EnumMeta` se charge de fournir les méthodes :meth:" +"`__contains__`, :meth:`__dir__`, :meth:`__iter__` etc. qui permettent de " +"faire des opérations sur une classe :class:`Enum` qui ne fonctionneraient " +"pas sur une classe standard, comme `list(Color)` ou `some_enum_var in " +"Color`. :class:`EnumMeta` garantit que les autres méthodes de la classe " +"finale :class:`Enum` sont correctes (comme :meth:`__new__`, :meth:" +"`__getnewargs__`, :meth:`__str__` et :meth:`__repr__`)." #: ../Doc/library/enum.rst:993 msgid "Enum Members (aka instances)" -msgstr "" +msgstr "Membres d'Enum (c.-à-d. instances)" #: ../Doc/library/enum.rst:995 msgid "" @@ -846,20 +1108,28 @@ msgid "" "no new ones are ever instantiated by returning only the existing member " "instances." msgstr "" +"Il est intéressant de souligner que les membres d'une *Enum* sont des " +"singletons. La classe :class:`EnumMeta` les crée tous au moment de la " +"création de la classe :class:`Enum` elle-même et implémente une méthode :" +"meth:`__new__` spécifique. Cette méthode renvoie toujours les instances de " +"membres déjà existantes pour être sûr de ne jamais en instancier de " +"nouvelles." #: ../Doc/library/enum.rst:1003 msgid "Finer Points" -msgstr "" +msgstr "Aspects approfondis" #: ../Doc/library/enum.rst:1006 msgid "Supported ``__dunder__`` names" -msgstr "" +msgstr "Noms de la forme ``__dunder__`` disponibles" #: ../Doc/library/enum.rst:1008 msgid "" ":attr:`__members__` is an :class:`OrderedDict` of ``member_name``:``member`` " "items. It is only available on the class." msgstr "" +":attr:`__members__` est une :class:`OrderedDict` de correspondances " +"``nom_du_membre`` / ``membre``. Elle n'est disponible que depuis la classe." #: ../Doc/library/enum.rst:1011 msgid "" @@ -867,25 +1137,33 @@ msgid "" "is also a very good idea to set the member's :attr:`_value_` appropriately. " "Once all the members are created it is no longer used." msgstr "" +"La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer les " +"membres de l'énumération ; affecter correctement l'attribut :attr:`_value_` " +"du membre est également conseillé. Une fois que tous les membres ont été " +"créés, cette méthode n'est plus utilisée." #: ../Doc/library/enum.rst:1017 msgid "Supported ``_sunder_`` names" -msgstr "" +msgstr "Noms de la forme ``_sunder_`` disponibles" #: ../Doc/library/enum.rst:1019 msgid "``_name_`` -- name of the member" -msgstr "" +msgstr "``_name_`` -- nom du membre" #: ../Doc/library/enum.rst:1020 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" +"``_value_`` -- valeur du membre ; il est possible d'y accéder ou de la muer " +"dans ``__new__``" #: ../Doc/library/enum.rst:1022 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" msgstr "" +"``_missing_`` -- une fonction de recherche qui est appelée quand la valeur " +"n'est pas trouvée ; elle peut être redéfinie" #: ../Doc/library/enum.rst:1024 msgid "" @@ -893,26 +1171,35 @@ msgid "" "that will not be transformed into members, and will be removed from the " "final class" msgstr "" +"``_ignore_`` -- une liste de noms, sous la forme de :func:`list` ou de :func:" +"`str`, qui ne seront pas transformés en membres, et seront supprimés de la " +"classe résultante" #: ../Doc/library/enum.rst:1027 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" msgstr "" +"``_order_`` -- utilisé en Python 2 ou 3 pour s'assurer que l'ordre des " +"membres est cohérent (attribut de classe, supprimé durant la création de la " +"classe)" #: ../Doc/library/enum.rst:1029 msgid "" "``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" "`auto` to get an appropriate value for an enum member; may be overridden" msgstr "" +"``_generate_next_value_`` -- utilisée par l' `API par fonction`_ et par :" +"class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " +"*l'enum* ; elle peut être redéfinie" #: ../Doc/library/enum.rst:1033 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" -msgstr "" +msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" #: ../Doc/library/enum.rst:1034 msgid "``_ignore_``" -msgstr "" +msgstr "``_ignore_``" #: ../Doc/library/enum.rst:1036 msgid "" @@ -920,16 +1207,21 @@ msgid "" "can be provided. It will be checked against the actual order of the " "enumeration and raise an error if the two do not match::" msgstr "" +"Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" +"`_order_` peut être défini. Il sera comparé au véritable ordre de " +"l'énumération et lève une erreur si les deux ne correspondent pas ::" #: ../Doc/library/enum.rst:1052 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." msgstr "" +"En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " +"définition est perdu avant de pouvoir être enregistré." #: ../Doc/library/enum.rst:1056 msgid "``Enum`` member type" -msgstr "" +msgstr "Type des membres de ``Enum``" #: ../Doc/library/enum.rst:1058 msgid "" @@ -940,10 +1232,17 @@ msgid "" "`Enum` member you are looking for (this is another good reason to use all-" "uppercase names for members)::" msgstr "" +"Les membres de :class:`Enum` sont des instances de leur classe :class:" +"`Enum`. On y accède normalement par ``ClasseEnum.membre``. Dans certains " +"cas, on peut également y accéder par ``ClasseEnum.membre.membre``, mais ceci " +"est fortement déconseillé car cette indirection est susceptible d'échouer, " +"ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " +"(c'est une autre bonne raison pour définir tous les noms des membres en " +"majuscules) ::" #: ../Doc/library/enum.rst:1079 msgid "Boolean value of ``Enum`` classes and members" -msgstr "" +msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" #: ../Doc/library/enum.rst:1081 msgid "" @@ -953,14 +1252,19 @@ msgid "" "own Enum's boolean evaluation depend on the member's value add the following " "to your class::" msgstr "" +"Les membres d'une classe :class:`Enum` mélangée avec un type non dérivé de :" +"class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " +"règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " +"faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " +"membre, il faut ajouter le code suivant à votre classe ::" #: ../Doc/library/enum.rst:1090 msgid ":class:`Enum` classes always evaluate as :data:`True`." -msgstr "" +msgstr "Les classes :class:`Enum` valent toujours :data:`True`." #: ../Doc/library/enum.rst:1094 msgid "``Enum`` classes with methods" -msgstr "" +msgstr "Classes ``Enum`` avec des méthodes" #: ../Doc/library/enum.rst:1096 msgid "" @@ -968,13 +1272,19 @@ msgid "" "class above, those methods will show up in a :func:`dir` of the member, but " "not of the class::" msgstr "" +"Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " +"la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" +"`dir` sur le membre, mais pas avec un appel sur la classe ::" #: ../Doc/library/enum.rst:1107 msgid "Combining members of ``Flag``" -msgstr "" +msgstr "Combinaison de membres de ``Flag``" #: ../Doc/library/enum.rst:1109 msgid "" "If a combination of Flag members is not named, the :func:`repr` will include " "all named flags and all named combinations of flags that are in the value::" msgstr "" +"Si une valeur issue de la combinaison de membres de *Flag* n'est pas " +"associée explicitement à un membre, la fonction :func:`repr` inclut tous les " +"membres et toutes les combinaisons de membres présents dans cette valeur ::" diff --git a/library/exceptions.po b/library/exceptions.po index 66da1e65d..ba20b9683 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -104,7 +104,7 @@ msgstr "" "En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " "pour lever à nouveau l'exception en cours de traitement), le contexte " "implicite d'exception peut être complété par une cause explicite en " -"utilisant :keyword:`from` avec :keyword:`raise`: ::" +"utilisant :keyword:`from` avec :keyword:`raise` ::" #: ../Doc/library/exceptions.rst:50 msgid "" @@ -196,7 +196,7 @@ msgid "" msgstr "" "Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " "l'exception et retourne l'objet exception. Elle est généralement utilisée " -"dans du code de gestion d'exceptions comme ceci: ::" +"dans du code de gestion d'exceptions comme ceci ::" #: ../Doc/library/exceptions.rst:105 msgid "" diff --git a/library/filecmp.po b/library/filecmp.po index 75b480815..07eaad4f7 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -278,4 +278,4 @@ msgid "" msgstr "" "Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " "effectuer une recherche récursive dans deux répertoires afin d'afficher des " -"fichiers communs différents ::" +"fichiers communs différents ::" diff --git a/library/fnmatch.po b/library/fnmatch.po index b46b330bf..6ae9a020f 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -94,7 +94,7 @@ msgstr "" "traité de manière spéciale par ce module. Voir le module :mod:`glob` pour la " "recherche de chemins (:mod:`glob` utilise :func:`.filter` pour reconnaître " "les composants d'un chemin). De la même manière, les noms de fichiers " -"commençant par une virgule ne sont pas traités de manière spéciale par ce " +"commençant par un point ne sont pas traités de manière spéciale par ce " "module, et sont reconnus par les motifs ``*`` et ``?``." #: ../Doc/library/fnmatch.rst:52 diff --git a/library/ftplib.po b/library/ftplib.po index cfef746c8..eef2d4fcf 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -58,7 +58,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:68 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/ftplib.rst:71 ../Doc/library/ftplib.rst:92 #: ../Doc/library/ftplib.rst:193 diff --git a/library/functions.po b/library/functions.po index 6585c8313..01b537ca8 100644 --- a/library/functions.po +++ b/library/functions.po @@ -557,7 +557,7 @@ msgid "" "instance method receives the instance. To declare a class method, use this " "idiom::" msgstr "" -"Une méthode de classe reçoit implicitement la classe en premier augment, " +"Une méthode de classe reçoit implicitement la classe en premier argument, " "tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " "une méthode de classe ::" @@ -1707,7 +1707,7 @@ msgid "" "exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" "Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator." -"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, " +"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épuisé, " "sinon :exc:`StopIteration` est levée." #: ../Doc/library/functions.rst:931 @@ -1910,8 +1910,8 @@ msgid "" "platform-independent." msgstr "" "Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" -"jacent, tout est effectué par Python lui même, et ainsi indépendant de la " -"plateforme." +"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"indépendant de la plateforme." #: ../Doc/library/functions.rst:1031 msgid "" @@ -2902,7 +2902,7 @@ msgid "" "locals dictionary is only useful for reads since updates to the locals " "dictionary are ignored." msgstr "" -"Sans augment, :func:`vars` se comporte comme :func:`locals`. Notez que le " +"Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que le " "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." @@ -3051,8 +3051,8 @@ msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" -"En revanche, l'instruction ``from spam.ham import eggs, saucage as saus`` " -"donne ::" +"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " +"donne ::" #: ../Doc/library/functions.rst:1713 msgid "" diff --git a/library/functools.po b/library/functools.po index edc5ce440..080f4db19 100644 --- a/library/functools.po +++ b/library/functools.po @@ -357,7 +357,7 @@ msgstr "" #: ../Doc/library/functools.rst:265 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "Sensiblement équivalent à ::" #: ../Doc/library/functools.rst:280 msgid "" @@ -476,7 +476,7 @@ msgstr "" "sur la fonction englobante et quels attributs de la fonction englobante sont " "mis à jour avec les attributs de la fonction originale. Les valeurs par " "défaut de ces arguments sont les constantes au niveau du module " -"``WRAPPER_ASSIGNMENTS`` (qui assigne``__module__``, ``__name__``, " +"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, " "``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de " "documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui " "met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " diff --git a/library/getopt.po b/library/getopt.po index 934b4c838..cfd98267a 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -6,17 +6,19 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-09 17:26+0200\n" +"Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \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.4\n" #: ../Doc/library/getopt.rst:2 msgid ":mod:`getopt` --- C-style parser for command line options" msgstr "" +":mod:`getopt` – Analyseur de style C pour les options de ligne de commande" #: ../Doc/library/getopt.rst:8 msgid "**Source code:** :source:`Lib/getopt.py`" @@ -30,6 +32,12 @@ msgid "" "write less code and get better help and error messages should consider using " "the :mod:`argparse` module instead." msgstr "" +"Le module :mod:`getopt` est un analyseur pour les options de ligne de " +"commande dont l’API est conçue pour être familière aux utilisateurs de la " +"fonction C :c:func:`getopt`. Les utilisateurs qui ne connaissent pas la " +"fonction :c:func:`getopt` ou qui aimeraient écrire moins de code, obtenir " +"une meilleure aide et de meilleurs messages d’erreur devraient utiliser le " +"module :mod:`argparse`." #: ../Doc/library/getopt.rst:20 msgid "" @@ -39,10 +47,16 @@ msgid "" "and '``--``'). Long options similar to those supported by GNU software may " "be used as well via an optional third argument." msgstr "" +"Ce module aide les scripts à analyser les arguments de ligne de commande " +"contenus dans ``sys.argv``. Il prend en charge les mêmes conventions que la " +"fonction UNIX :c:func:`getopt` (y compris les significations spéciales des " +"arguments de la forme ``-`` et ``--``). De longues options similaires à " +"celles prises en charge par le logiciel GNU peuvent également être utilisées " +"via un troisième argument facultatif." #: ../Doc/library/getopt.rst:26 msgid "This module provides two functions and an exception:" -msgstr "" +msgstr "Ce module fournit deux fonctions et une exception :" #: ../Doc/library/getopt.rst:32 msgid "" @@ -53,6 +67,14 @@ msgid "" "argument followed by a colon (``':'``; i.e., the same format that Unix :c:" "func:`getopt` uses)." msgstr "" +"Analyse les options de ligne de commande et la liste des paramètres. *args* " +"est la liste d’arguments à analyser, sans la référence principale au " +"programme en cours d’exécution. En général, cela signifie ``sys.argv[1:]`` " +"(donc que le premier argument contenant le nom du programme n’est pas dans " +"la liste). *shortopts* est la chaîne de lettres d’options que le script doit " +"reconnaître, avec des options qui requièrent un argument suivi d’un signe " +"deux-points (``:``, donc le même format que la version Unix de :c:func:" +"`getopt` utilise)." #: ../Doc/library/getopt.rst:40 msgid "" @@ -60,6 +82,9 @@ msgid "" "arguments are considered also non-options. This is similar to the way non-" "GNU Unix systems work." msgstr "" +"Contrairement au :c:func:`getopt` GNU, après un argument n'appartenant pas à " +"une option, aucun argument ne sera considéré comme appartenant à une option. " +"Ceci est similaire à la façon dont les systèmes UNIX non-GNU fonctionnent." #: ../Doc/library/getopt.rst:44 msgid "" @@ -74,6 +99,17 @@ msgid "" "option ``--fo`` will match as ``--foo``, but ``--f`` will not match " "uniquely, so :exc:`GetoptError` will be raised." msgstr "" +"*longopts*, si spécifié, doit être une liste de chaînes avec les noms des " +"options longues qui doivent être prises en charge. Le premier ``'--'`` ne " +"dois pas figurer dans le nom de l’option. Les options longues qui requièrent " +"un argument doivent être suivies d’un signe égal (``'='``). Les arguments " +"facultatifs ne sont pas pris en charge. Pour accepter uniquement les options " +"longues, *shortopts* doit être une chaîne vide. Les options longues sur la " +"ligne de commande peuvent être reconnues tant qu’elles fournissent un " +"préfixe du nom de l’option qui correspond exactement à l’une des options " +"acceptées. Par exemple, si *longopts* est ``['foo', 'frob']``, l’option ``--" +"fo`` correspondra à ``--foo``, mais ``--f`` ne correspondra pas de façon " +"unique, donc :exc:`GetoptError` sera levé." #: ../Doc/library/getopt.rst:55 msgid "" @@ -87,6 +123,17 @@ msgid "" "list in the same order in which they were found, thus allowing multiple " "occurrences. Long and short options may be mixed." msgstr "" +"La valeur de retour se compose de deux éléments : le premier est une liste " +"de paires ``(option, value)``, la deuxième est la liste des arguments de " +"programme laissés après que la liste d’options est été dépouillée (il s’agit " +"d’une tranche de fin de *args*). Chaque paire option-valeur retournée a " +"l’option comme premier élément, préfixée avec un trait d'union pour les " +"options courtes (par exemple, ``'-x'``) ou deux tirets pour les options " +"longues (par exemple, ``'--long-option'``), et l’argument option comme " +"deuxième élément, ou une chaîne vide si le option n’a aucun argument. Les " +"options se trouvent dans la liste dans l’ordre dans lequel elles ont été " +"trouvées, permettant ainsi plusieurs occurrences. Les options longues et " +"courtes peuvent être mélangées." #: ../Doc/library/getopt.rst:68 msgid "" @@ -95,6 +142,10 @@ msgid "" "intermixed. The :func:`getopt` function stops processing options as soon as " "a non-option argument is encountered." msgstr "" +"Cette fonction fonctionne comme :func:`getopt`, sauf que le mode de *scan* " +"GNU est utilisé par défaut. Cela signifie que les arguments option et non-" +"option peuvent être **intermixés**. La fonction :func:`getopt` arrête le " +"traitement des options dès qu’un argument de non-option est rencontré." #: ../Doc/library/getopt.rst:73 msgid "" @@ -102,6 +153,9 @@ msgid "" "environment variable :envvar:`POSIXLY_CORRECT` is set, then option " "processing stops as soon as a non-option argument is encountered." msgstr "" +"Si le premier caractère de la chaîne d’options est ``+``, ou si la variable " +"d’environnement :envvar:`POSIXLY_CORRECT` est définie, le traitement des " +"options s’arrête dès qu’un argument non-option est rencontré." #: ../Doc/library/getopt.rst:80 msgid "" @@ -113,22 +167,30 @@ msgid "" "give the error message and related option; if there is no specific option to " "which the exception relates, :attr:`opt` is an empty string." msgstr "" +"Cette exception est levée lorsqu’une option non reconnue est trouvée dans la " +"liste d’arguments ou lorsqu’une option nécessitant un argument n’en a pas " +"reçu. L’argument de l’exception est une chaîne de caractères indiquant la " +"cause de l’erreur. Pour les options longues, un argument donné à une option " +"qui n’en exige pas un entraîne également le levage de cette exception. Les " +"attributs :attr:`msg` et :attr:`opt` donnent le message d’erreur et l’option " +"connexe. S’il n’existe aucune option spécifique à laquelle l’exception se " +"rapporte, :attr:`opt` est une chaîne vide." #: ../Doc/library/getopt.rst:91 msgid "Alias for :exc:`GetoptError`; for backward compatibility." -msgstr "" +msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité." #: ../Doc/library/getopt.rst:93 msgid "An example using only Unix style options:" -msgstr "" +msgstr "Un exemple utilisant uniquement les options de style UNIX :" #: ../Doc/library/getopt.rst:105 msgid "Using long option names is equally easy:" -msgstr "" +msgstr "L’utilisation de noms d’options longs est tout aussi simple :" #: ../Doc/library/getopt.rst:118 msgid "In a script, typical usage is something like this::" -msgstr "" +msgstr "Dans un script, l’utilisation typique ressemble à ceci ::" #: ../Doc/library/getopt.rst:147 msgid "" @@ -136,11 +198,16 @@ msgid "" "code and more informative help and error messages by using the :mod:" "`argparse` module::" msgstr "" +"Notez qu’une interface de ligne de commande équivalente peut être produite " +"avec moins de code et des messages d’erreur et d’aide plus informatifs à " +"l’aide du module :mod:`argparse` module ::" #: ../Doc/library/getopt.rst:162 msgid "Module :mod:`argparse`" -msgstr "" +msgstr "Module :mod:`argparse`" #: ../Doc/library/getopt.rst:163 msgid "Alternative command line option and argument parsing library." msgstr "" +"Option de ligne de commande alternative et bibliothèque d’analyse " +"d’arguments." diff --git a/library/gettext.po b/library/gettext.po index 0a759ef31..05b8e3477 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -215,7 +215,7 @@ msgstr "" #: ../Doc/library/gettext.rst:123 msgid "Here's an example of typical usage for this API::" -msgstr "Voici un exemple classique d'utilisation de cette API : ::" +msgstr "Voici un exemple classique d'utilisation de cette API ::" #: ../Doc/library/gettext.rst:134 msgid "Class-based API" @@ -373,7 +373,7 @@ msgid "" "function, like this::" msgstr "" "Habituellement, la fonction :func:`_` est appliquée aux chaînes de " -"caractères qui doivent être traduites comme suit : ::" +"caractères qui doivent être traduites comme suit ::" #: ../Doc/library/gettext.rst:210 msgid "" @@ -535,7 +535,7 @@ msgstr "" "cela affecte toute l'application, et plus particulièrement l'espace de " "nommage natif, les modules localisés ne devraient jamais y positionner :func:" "`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant " -"pour rendre :func:`_` accessible par leurs modules : ::" +"pour rendre :func:`_` accessible par leurs modules ::" #: ../Doc/library/gettext.rst:317 msgid "" @@ -660,7 +660,7 @@ msgstr "" #: ../Doc/library/gettext.rst:373 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/gettext.rst:386 msgid "" @@ -699,7 +699,7 @@ msgid "" msgstr "" "GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " "qui a une API légèrement différente. D'après la documentation, elle " -"s'utilise ainsi : ::" +"s'utilise ainsi ::" #: ../Doc/library/gettext.rst:418 msgid "" @@ -773,7 +773,7 @@ msgstr "" "Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " "toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " "caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" -"à-dire en appelant la fonction :func:`_`. Par exemple : ::" +"à-dire en appelant la fonction :func:`_`. Par exemple ::" #: ../Doc/library/gettext.rst:452 msgid "" @@ -897,7 +897,7 @@ msgstr "" "Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " "de traduction dans les différentes langues naturelles soient dans :file:`/" "usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " -"pouvez alors mettre en haut de votre module : ::" +"pouvez alors mettre en haut de votre module ::" #: ../Doc/library/gettext.rst:515 msgid "Localizing your application" @@ -922,7 +922,7 @@ msgid "" "main driver file of your application::" msgstr "" "Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " -"principal de votre application : ::" +"principal de votre application ::" #: ../Doc/library/gettext.rst:528 msgid "" @@ -930,7 +930,7 @@ msgid "" "`install` function::" msgstr "" "Si vous avez besoin de définir le dossier des localisations, vous pouvez le " -"mettre en argument de la fonction :func:`install` : ::" +"mettre en argument de la fonction :func:`install` ::" #: ../Doc/library/gettext.rst:536 msgid "Changing languages on the fly" @@ -944,7 +944,7 @@ msgid "" msgstr "" "Si votre programme a besoin de prendre en charge plusieurs langues en même " "temps, vous pouvez créer plusieurs instances de traduction, puis basculer " -"entre elles de façon explicite, comme ceci : ::" +"entre elles de façon explicite, comme ceci ::" #: ../Doc/library/gettext.rst:559 msgid "Deferred translations" @@ -959,7 +959,7 @@ msgstr "" "Dans la plupart des cas, en programmation, les chaînes de caractères sont " "traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " "ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " -"exemple classique est : ::" +"exemple classique est ::" #: ../Doc/library/gettext.rst:574 msgid "" @@ -972,7 +972,7 @@ msgstr "" #: ../Doc/library/gettext.rst:578 msgid "Here is one way you can handle this situation::" -msgstr "Voici un moyen de gérer ce cas : ::" +msgstr "Voici un moyen de gérer ce cas ::" #: ../Doc/library/gettext.rst:594 msgid "" @@ -1001,7 +1001,7 @@ msgstr "" #: ../Doc/library/gettext.rst:604 msgid "Another way to handle this is with the following example::" -msgstr "Voici une autre solution : ::" +msgstr "Voici une autre solution ::" #: ../Doc/library/gettext.rst:618 msgid "" diff --git a/library/gzip.po b/library/gzip.po index 067fb80ac..94f295985 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -355,22 +355,22 @@ msgstr "Exemples d'utilisation" #: ../Doc/library/gzip.rst:181 msgid "Example of how to read a compressed file::" -msgstr "Exemple montrant comment lire un fichier compressé : ::" +msgstr "Exemple montrant comment lire un fichier compressé ::" #: ../Doc/library/gzip.rst:187 msgid "Example of how to create a compressed GZIP file::" -msgstr "Exemple montrant comment créer un fichier GZIP : ::" +msgstr "Exemple montrant comment créer un fichier GZIP ::" #: ../Doc/library/gzip.rst:194 msgid "Example of how to GZIP compress an existing file::" msgstr "" -"Exemple montrant comment compresser dans un GZIP un fichier existant : ::" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" #: ../Doc/library/gzip.rst:202 msgid "Example of how to GZIP compress a binary string::" msgstr "" "Exemple montrant comment compresser dans un GZIP un binaire dans une " -"chaîne : ::" +"chaîne ::" #: ../Doc/library/gzip.rst:211 msgid "Module :mod:`zlib`" diff --git a/library/hashlib.po b/library/hashlib.po index bcfc3b453..10d5bc5af 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -75,7 +75,7 @@ msgstr "" "Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " "retournent un objet haché avec la même interface. Par exemple : utilisez :" "func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " -"maintenant utilisez cet objet :term:`bytes-like objects ` " +"maintenant utiliser cet objet :term:`bytes-like objects ` " "(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " "tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " "données fournies en utilisant les méthodes :meth:`digest` ou :meth:" @@ -299,9 +299,10 @@ msgid "" "by the SHAKE algorithm." msgstr "" "Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des " -"messages de longueur variable avec des longueurs_en_bits//2 jusqu'à 128 ou " -"256 bits de sécurité. Leurs méthodes *digests* requièrent une longueur. Les " -"longueurs maximales ne sont pas limitées par l'algorithme SHAKE." +"messages de longueur variable avec des ``longueurs_en_bits // 2`` jusqu'à " +"128 ou 256 bits de sécurité. Leurs méthodes *digests* requièrent une " +"longueur. Les longueurs maximales ne sont pas limitées par l'algorithme " +"SHAKE." #: ../Doc/library/hashlib.rst:208 msgid "" @@ -443,7 +444,7 @@ msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" -"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant " "des messages de toutes tailles entre 1 et 32 octets." #: ../Doc/library/hashlib.rst:296 diff --git a/library/heapq.po b/library/heapq.po index 43e53080d..eeab0342e 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/heapq.rst:2 msgid ":mod:`heapq` --- Heap queue algorithm" -msgstr "" +msgstr ":mod:`heapq` — File de priorité basée sur un tas" #: ../Doc/library/heapq.rst:12 msgid "**Source code:** :source:`Lib/heapq.py`" @@ -27,6 +27,8 @@ msgid "" "This module provides an implementation of the heap queue algorithm, also " "known as the priority queue algorithm." msgstr "" +"Ce module expose une implémentation de l'algorithme de file de priorité, " +"basée sur un tas." #: ../Doc/library/heapq.rst:19 msgid "" @@ -37,6 +39,13 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that its smallest element is always the root, ``heap[0]``." msgstr "" +"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un " +"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation " +"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= " +"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour " +"contenter l'opérateur de comparaison, les éléments inexistants sont " +"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son " +"plus petit élément est toujours la racine, ``tas[0]``." #: ../Doc/library/heapq.rst:26 msgid "" @@ -48,6 +57,13 @@ msgid "" "\"max heap\" is more common in texts because of its suitability for in-place " "sorting)." msgstr "" +"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " +"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation " +"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " +"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " +"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " +"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " +"la littérature car il permet le classement sans tampon)." #: ../Doc/library/heapq.rst:33 msgid "" @@ -55,20 +71,28 @@ msgid "" "surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains " "the heap invariant!" msgstr "" +"Ces deux points permettent d'aborder le tas comme une liste Python standard " +"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` " +"conserve l'invariant du tas !" #: ../Doc/library/heapq.rst:37 msgid "" "To create a heap, use a list initialized to ``[]``, or you can transform a " "populated list into a heap via function :func:`heapify`." msgstr "" +"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez " +"une liste existante et transformez la en tas à l'aide de la fonction :func:" +"`heapify`." #: ../Doc/library/heapq.rst:40 msgid "The following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" +msgstr "Les fonctions suivantes sont fournies :" #: ../Doc/library/heapq.rst:45 msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." msgstr "" +"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " +"tas." #: ../Doc/library/heapq.rst:50 msgid "" @@ -76,6 +100,9 @@ msgid "" "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " "the smallest item without popping it, use ``heap[0]``." msgstr "" +"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si " +"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " +"plus petit élément sans le retirer, utilisez ``heap[0]``." #: ../Doc/library/heapq.rst:57 msgid "" @@ -83,10 +110,15 @@ msgid "" "*heap*. The combined action runs more efficiently than :func:`heappush` " "followed by a separate call to :func:`heappop`." msgstr "" +"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément " +"de *heap*. Cette action combinée est plus efficace que :func:`heappush` " +"suivie par un appel séparé à :func:`heappop`." #: ../Doc/library/heapq.rst:64 msgid "Transform list *x* into a heap, in-place, in linear time." msgstr "" +"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " +"linéaire." #: ../Doc/library/heapq.rst:69 msgid "" @@ -94,6 +126,9 @@ msgid "" "*item*. The heap size doesn't change. If the heap is empty, :exc:" "`IndexError` is raised." msgstr "" +"Extraie le plus petit élément de *heap* et introduit le nouvel élément " +"*item*. La taille du tas ne change pas. Si le tas est vide, une exception :" +"exc:`IndexError` est levée." #: ../Doc/library/heapq.rst:72 msgid "" @@ -102,6 +137,10 @@ msgid "" "heap. The pop/push combination always returns an element from the heap and " "replaces it with *item*." msgstr "" +"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` " +"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas " +"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément " +"du tas et le remplace par *item*." #: ../Doc/library/heapq.rst:77 msgid "" @@ -110,10 +149,15 @@ msgid "" "combination returns the smaller of the two values, leaving the larger value " "on the heap." msgstr "" +"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si " +"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. " +"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs " +"et laisse la plus grande sur le tas." #: ../Doc/library/heapq.rst:83 msgid "The module also offers three general purpose functions based on heaps." msgstr "" +"Ce module contient également trois fonctions génériques utilisant les tas." #: ../Doc/library/heapq.rst:88 msgid "" @@ -121,6 +165,9 @@ msgid "" "timestamped entries from multiple log files). Returns an :term:`iterator` " "over the sorted values." msgstr "" +"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par " +"exemple, fusionne des entrées datées provenant de multiples journaux " +"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées." #: ../Doc/library/heapq.rst:92 msgid "" @@ -128,6 +175,9 @@ msgid "" "does not pull the data into memory all at once, and assumes that each of the " "input streams is already sorted (smallest to largest)." msgstr "" +"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un " +"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose " +"que chaque flux d'entrée est déjà classé (en ordre croissant)." #: ../Doc/library/heapq.rst:96 msgid "" @@ -169,6 +219,11 @@ msgid "" "example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, " "reverse=True)[:n]``." msgstr "" +"Renvoie une liste contenant les *n* plus grands éléments du jeu de données " +"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " +"fonction à un argument qui est utilisée pour extraire la clé de comparaison " +"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " +"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." #: ../Doc/library/heapq.rst:122 msgid "" @@ -178,6 +233,11 @@ msgid "" "example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)[:" "n]``." msgstr "" +"Renvoie une liste contenant les *n* plus petits éléments du jeu de données " +"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " +"fonction à un argument qui est utilisée pour extraire la clé de comparaison " +"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " +"Équivalent à : ``sorted(iterable, key=key)[:n]``." #: ../Doc/library/heapq.rst:128 msgid "" @@ -187,10 +247,16 @@ msgid "" "`max` functions. If repeated usage of these functions is required, consider " "turning the iterable into an actual heap." msgstr "" +"Les deux fonctions précédentes sont les plus efficaces pour des petites " +"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la " +"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace " +"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez " +"utiliser ces fonctions de façon répétée, il est préférable de transformer " +"l'itérable en tas." #: ../Doc/library/heapq.rst:136 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/heapq.rst:138 msgid "" @@ -198,52 +264,71 @@ msgid "" "pushing all values onto a heap and then popping off the smallest values one " "at a time::" msgstr "" +"Un `tri par tas `_ peut être " +"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant " +"l'extraction des éléments un par un ::" #: ../Doc/library/heapq.rst:151 msgid "" "This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " "implementation is not stable." msgstr "" +"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:" +"`sorted`, cette implémentation n'est pas stable." #: ../Doc/library/heapq.rst:154 msgid "" "Heap elements can be tuples. This is useful for assigning comparison values " "(such as task priorities) alongside the main record being tracked::" msgstr "" +"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour " +"assigner des valeurs de comparaison (par exemple, des priorités de tâches) " +"en plus de l'élément qui est suivi ::" #: ../Doc/library/heapq.rst:167 msgid "Priority Queue Implementation Notes" -msgstr "" +msgstr "Notes d'implémentation de la file de priorité" #: ../Doc/library/heapq.rst:169 msgid "" "A `priority queue `_ is common " "use for a heap, and it presents several implementation challenges:" msgstr "" +"Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " +"d'implémentation :" #: ../Doc/library/heapq.rst:172 msgid "" "Sort stability: how do you get two tasks with equal priorities to be " "returned in the order they were originally added?" msgstr "" +"Stabilité du classement : comment s'assurer que deux tâches avec la même " +"priorité sont renvoyées dans l'ordre de leur ajout ?" #: ../Doc/library/heapq.rst:175 msgid "" "Tuple comparison breaks for (priority, task) pairs if the priorities are " "equal and the tasks do not have a default comparison order." msgstr "" +"La comparaison des couples (priorité, tâche) échoue si les priorités sont " +"identiques et que les tâches n'ont pas de relation d'ordre par défaut." #: ../Doc/library/heapq.rst:178 msgid "" "If the priority of a task changes, how do you move it to a new position in " "the heap?" msgstr "" +"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " +"position dans le tas ?" #: ../Doc/library/heapq.rst:181 msgid "" "Or if a pending task needs to be deleted, how do you find it and remove it " "from the queue?" msgstr "" +"Si une tâche en attente doit être supprimée, comment la trouver et la " +"supprimer de la file ?" #: ../Doc/library/heapq.rst:184 msgid "" @@ -253,6 +338,13 @@ msgid "" "returned in the order they were added. And since no two entry counts are the " "same, the tuple comparison will never attempt to directly compare two tasks." msgstr "" +"Une solution aux deux premiers problèmes consiste à stocker les entrées sous " +"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la " +"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux " +"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. " +"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la " +"comparaison des triplets ne va jamais chercher à comparer des tâches entre " +"elles." #: ../Doc/library/heapq.rst:190 msgid "" @@ -260,6 +352,9 @@ msgid "" "wrapper class that ignores the task item and only compares the priority " "field::" msgstr "" +"Une autre solution au fait que les tâches ne possèdent pas de relation " +"d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche " +"et ne compare que le champ priorité ::" #: ../Doc/library/heapq.rst:201 msgid "" @@ -267,6 +362,9 @@ msgid "" "changes to its priority or removing it entirely. Finding a task can be done " "with a dictionary pointing to an entry in the queue." msgstr "" +"Le problème restant consiste à trouver une tâche en attente et modifier sa " +"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un " +"dictionnaire pointant vers une entrée dans la file." #: ../Doc/library/heapq.rst:205 msgid "" @@ -274,10 +372,14 @@ msgid "" "would break the heap structure invariants. So, a possible solution is to " "mark the entry as removed and add a new entry with the revised priority::" msgstr "" +"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " +"romprait l'invariant de la structure de tas. Une solution possible est de " +"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " +"priorité modifiée ::" #: ../Doc/library/heapq.rst:239 msgid "Theory" -msgstr "" +msgstr "Théorie" #: ../Doc/library/heapq.rst:241 msgid "" @@ -286,12 +388,19 @@ msgid "" "elements are considered to be infinite. The interesting property of a heap " "is that ``a[0]`` is always its smallest element." msgstr "" +"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= " +"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour " +"simplifier la comparaison, les éléments inexistants sont considérés comme " +"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " +"petit élément." #: ../Doc/library/heapq.rst:246 msgid "" "The strange invariant above is meant to be an efficient memory " "representation for a tournament. The numbers below are *k*, not ``a[k]``::" msgstr "" +"L'invariant étrange ci-dessus est une représentation efficace en mémoire " +"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" #: ../Doc/library/heapq.rst:259 msgid "" @@ -305,6 +414,17 @@ msgid "" "two cells it tops contain three different items, but the top cell \"wins\" " "over the two topped cells." msgstr "" +"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k" +"+2``. Dans les tournois binaires habituels dans les compétitions sportives, " +"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons " +"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient " +"ses adversaires. Cependant, dans de nombreuses applications informatiques de " +"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. " +"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa " +"promotion par un autre élément à un plus bas niveau. La règle devient alors " +"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments " +"différents, mais le nœud supérieur « gagne » contre les deux nœuds " +"inférieurs." #: ../Doc/library/heapq.rst:268 msgid "" @@ -316,6 +436,15 @@ msgid "" "logarithmic on the total number of items in the tree. By iterating over all " "items, you get an O(n log n) sort." msgstr "" +"Si cet invariant de tas est vérifié à tout instant, alors l'élément à " +"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " +"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " +"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " +"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " +"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " +"approche a un coût logarithmique par rapport au nombre total d'éléments dans " +"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n " +"log n) opérations." #: ../Doc/library/heapq.rst:275 msgid "" @@ -328,6 +457,16 @@ msgid "" "easily go into the heap. So, a heap is a good structure for implementing " "schedulers (this is what I used for my MIDI sequencer :-)." msgstr "" +"Une propriété agréable de cet algorithme est qu'il est possible d'insérer " +"efficacement de nouveaux éléments en cours de classement, du moment que les " +"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " +"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " +"liste des événements arrivants et que la condition de « victoire » est le " +"plus petit temps d'exécution planifié. Lorsqu'un événement programme " +"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " +"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " +"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon " +"séquenceur MIDI ☺)." #: ../Doc/library/heapq.rst:284 msgid "" @@ -337,6 +476,11 @@ msgid "" "average case. However, there are other representations which are more " "efficient overall, yet the worst cases might be terrible." msgstr "" +"Plusieurs structures ont été étudiées en détail pour implémenter des " +"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " +"rapides, leur vitesse est presque constante et le pire cas ne diffère pas " +"trop du cas moyen. S'il existe des représentations qui sont plus efficaces " +"en général, les pires cas peuvent être terriblement mauvais." #: ../Doc/library/heapq.rst:290 msgid "" @@ -351,6 +495,18 @@ msgid "" "which are twice the size of the memory for random input, and much better for " "input fuzzily ordered." msgstr "" +"Les tas sont également très utiles pour ordonner les données sur de gros " +"disques. Vous savez probablement qu'un gros tri implique la production de " +"séquences pré-classées (dont la taille est généralement liée à la quantité " +"de mémoire CPU disponible), suivie par une passe de fusion qui est " +"généralement organisée de façon très intelligente [#]_. Il est très " +"important que le classement initial produise des séquences les plus longues " +"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en " +"utilisant toute la mémoire disponible pour stocker un tournoi, vous " +"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la " +"séquence courante, vous produirez des séquences d'une taille égale au double " +"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée " +"approximativement triée." #: ../Doc/library/heapq.rst:300 msgid "" @@ -362,12 +518,23 @@ msgid "" "the first heap is melting. When the first heap completely vanishes, you " "switch heaps and start a new run. Clever and quite effective!" msgstr "" +"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " +"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " +"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " +"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " +"mémoire libérée peut être réutilisée immédiatement pour progressivement " +"construire un deuxième tas, qui croit à la même vitesse que le premier " +"décroît. Lorsque le premier tas a complètement disparu, vous échangez les " +"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" #: ../Doc/library/heapq.rst:308 msgid "" "In a word, heaps are useful memory structures to know. I use them in a few " "applications, and I think it is good to keep a 'heap' module around. :-)" msgstr "" +"Pour résumer, les tas sont des structures de données qu'il est bon de " +"connaître. Je les utilise dans quelques applications et je pense qu'il est " +"bon de garder le module *heap* sous le coude. ☺" #: ../Doc/library/heapq.rst:312 msgid "Footnotes" @@ -385,3 +552,14 @@ msgid "" "Believe me, real good tape sorts were quite spectacular to watch! From all " "times, sorting has always been a Great Art! :-)" msgstr "" +"Les algorithmes de répartition de charge pour les disques, courants de nos " +"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à " +"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire " +"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " +"était différent et il fallait être malin pour s'assurer (bien à l'avance) " +"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " +"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " +"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " +"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " +"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " +"le Grand Art ! ☺" diff --git a/library/hmac.po b/library/hmac.po index 089007167..64e36be3f 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -17,6 +17,8 @@ msgstr "" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" msgstr "" +":mod:`hmac` — Authentification de messages par hachage en combinaison avec " +"une clé secrète" #: ../Doc/library/hmac.rst:10 msgid "**Source code:** :source:`Lib/hmac.py`" @@ -25,6 +27,7 @@ msgstr "**Code source :** :source:`Lib/hmac.py`" #: ../Doc/library/hmac.rst:14 msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." msgstr "" +"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." #: ../Doc/library/hmac.rst:19 msgid "" @@ -41,6 +44,9 @@ msgid "" "of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " "name of a hash algorithm." msgstr "" +"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " +"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " +"paramètre *digestmod* peut être le nom d'un algorithme de hachage." #: ../Doc/library/hmac.rst:31 msgid "MD5 as implicit default digest for *digestmod* is deprecated." @@ -54,6 +60,12 @@ msgid "" "The parameters *key*, *msg*, and *digest* have the same meaning as in :func:" "`~hmac.new`." msgstr "" +"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à " +"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, " +"digest).digest()``, mais elle utilise une implémentation optimisée en C ou " +"*inline*, qui est plus rapide pour les messages dont la taille leur permet " +"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la " +"même signification que pour :func:`~hmac.new`." #: ../Doc/library/hmac.rst:42 msgid "" @@ -61,10 +73,13 @@ msgid "" "when *digest* is a string and name of a digest algorithm, which is supported " "by OpenSSL." msgstr "" +"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée " +"que lorsque le *digest* est une chaîne de caractères et le nom d'un " +"algorithme de hachage implémenté dans OpenSSL." #: ../Doc/library/hmac.rst:49 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objet HMAC a les méthodes suivantes :" #: ../Doc/library/hmac.rst:53 msgid "" @@ -72,10 +87,14 @@ msgid "" "single call with the concatenation of all the arguments: ``m.update(a); m." "update(b)`` is equivalent to ``m.update(a + b)``." msgstr "" +"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " +"seul appel avec la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a + b)``." #: ../Doc/library/hmac.rst:57 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" +"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." #: ../Doc/library/hmac.rst:63 msgid "" @@ -84,6 +103,10 @@ msgid "" "given to the constructor. It may contain non-ASCII bytes, including NUL " "bytes." msgstr "" +"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " +"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " +"la fonction de hachage donnée au constructeur. Il peut contenir des octets " +"qui ne sont pas dans la table ASCII, y compris des octets NUL." #: ../Doc/library/hmac.rst:70 msgid "" @@ -92,6 +115,10 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " +"par ailleurs par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." #: ../Doc/library/hmac.rst:78 msgid "" @@ -99,6 +126,10 @@ msgid "" "length containing only hexadecimal digits. This may be used to exchange the " "value safely in email or other non-binary environments." msgstr "" +"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " +"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " +"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " +"d'autres environnements ne gérant pas les données binaires." #: ../Doc/library/hmac.rst:84 msgid "" @@ -107,6 +138,11 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " +"connu obtenu par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " +"les temps de réponse." #: ../Doc/library/hmac.rst:92 msgid "" @@ -114,14 +150,21 @@ msgid "" "efficiently compute the digests of strings that share a common initial " "substring." msgstr "" +"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " +"manière efficace les empreintes cryptographiques de chaînes de caractères " +"qui ont en commun une sous-chaîne initiale." #: ../Doc/library/hmac.rst:96 msgid "A hash object has the following attributes:" -msgstr "L'objet haché possède les attributs suivants ::" +msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" #: ../Doc/library/hmac.rst:100 msgid "The size of the resulting HMAC digest in bytes." msgstr "" +"La taille du code d'authentification (c-à-d de l'empreinte cryptographique) " +"en octets." #: ../Doc/library/hmac.rst:104 msgid "The internal block size of the hash algorithm in bytes." @@ -130,10 +173,12 @@ msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hmac.rst:110 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" +"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " +"``hmac-md5``." #: ../Doc/library/hmac.rst:115 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Ce module fournit également la fonction utilitaire suivante :" #: ../Doc/library/hmac.rst:119 msgid "" @@ -143,6 +188,12 @@ msgid "" "either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." "hexdigest`), or a :term:`bytes-like object`." msgstr "" +"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " +"temporelles en évitant l'implémentation de courts-circuits basés sur le " +"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " +"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " +"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " +"object`." #: ../Doc/library/hmac.rst:127 msgid "" @@ -150,11 +201,14 @@ msgid "" "attack could theoretically reveal information about the types and lengths of " "*a* and *b*—but not their values." msgstr "" +"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " +"attaque temporelle pourrait en théorie obtenir des informations sur les " +"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." #: ../Doc/library/hmac.rst:137 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Module :mod:`hashlib`" #: ../Doc/library/hmac.rst:138 msgid "The Python module providing secure hash functions." -msgstr "" +msgstr "Le module Python fournissant des fonctions de hachage sécurisé." diff --git a/library/http.cookies.po b/library/http.cookies.po index 72f3192b4..47fd3aefe 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -205,7 +205,7 @@ msgid "" msgstr "" "Si *rawdata* est une chaine de caractères, l'analyser comme étant un " "``HTTP_COOKIE`` et ajouter les valeurs trouvées en tant que :class:`Morsel`" -"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" +"\\ s. S'il s'agit d'un dictionnaire, cela est équivalent à ::" #: ../Doc/library/http.cookies.rst:124 msgid "Morsel Objects" diff --git a/library/idle.po b/library/idle.po index d8ec2a143..ed9f75a75 100644 --- a/library/idle.po +++ b/library/idle.po @@ -7,13 +7,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-19 22:32+0200\n" "PO-Revision-Date: 2019-07-02 11:42+0200\n" -"Last-Translator: FULL NAME \n" +"Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" "X-Generator: Poedit 2.2.1\n" #: ../Doc/library/idle.rst:4 @@ -580,7 +579,7 @@ msgstr "" #: ../Doc/library/idle.rst:241 msgid "Run... Customized" -msgstr "" +msgstr "Run... Customized" #: ../Doc/library/idle.rst:238 msgid "" @@ -588,6 +587,10 @@ msgid "" "settings. *Command Line Arguments* extend :data:`sys.argv` as if passed on " "a command line. The module can be run in the Shell without restarting." msgstr "" +"Similaire à :ref:`Run Module `, mais lance le module avec des " +"paramètres personnalisés. Les *Command Line Arguments* se rajoutent à :data:" +"`sys.argv` comme s'ils étaient passés par la ligne de commande. Le module " +"peut être lancé dans le terminal sans avoir à le redémarrer." #: ../Doc/library/idle.rst:244 msgid "Shell menu (Shell window only)" @@ -648,7 +651,8 @@ msgstr "Menu *Debug* (fenêtre de console uniquement)" msgid "Go to File/Line" msgstr "*Go to File/Line*" -# Look on the current line. with the cursor, and the line above for a filename and line number. +# Look on the current line. with the cursor, and the line above for a filename +# and line number. # Il y a des erreurs d'anglais là-dedans... #: ../Doc/library/idle.rst:265 msgid "" @@ -1540,7 +1544,8 @@ msgstr "" "redémarrer la console dans le menu Shell peut résoudre un problème " "temporaire." -# ... this can be prevented by never editing the files by hand, using the configuration dialog, under Options, instead Options. +# ... this can be prevented by never editing the files by hand, using the +# configuration dialog, under Options, instead Options. # Qu'est-ce que ça veut dire ??? #: ../Doc/library/idle.rst:677 msgid "" @@ -1560,7 +1565,8 @@ msgstr "" "la solution peut être de supprimer un ou plusieurs des fichiers de " "configuration." -# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m idlelib``)... +# Je suppose que c'est (``python -m idlelib)``, et pas (``python -m +# idlelib``)... #: ../Doc/library/idle.rst:684 msgid "" "If IDLE quits with no message, and it was not started from a console, try " @@ -1654,6 +1660,8 @@ msgid "" "When user code raises SystemExit either directly or by calling sys.exit, " "IDLE returns to a Shell prompt instead of exiting." msgstr "" +"Lorsque l'utilisateur lève `SystemExit` directement ou en appelant ``sys." +"exit``, IDLE revient au terminal IDLE au lieu de quitter." #: ../Doc/library/idle.rst:724 msgid "User output in Shell" diff --git a/library/imaplib.po b/library/imaplib.po index bd2001b44..93f4cac96 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -54,7 +54,7 @@ msgstr "" #: ../Doc/library/imaplib.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/imaplib.rst:53 msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" diff --git a/library/io.po b/library/io.po index 571e73c13..1b869f532 100644 --- a/library/io.po +++ b/library/io.po @@ -1320,7 +1320,7 @@ msgstr "" #: ../Doc/library/io.rst:965 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" #: ../Doc/library/io.rst:987 msgid "" @@ -1330,7 +1330,7 @@ msgstr "" #: ../Doc/library/io.rst:992 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/library/io.rst:994 msgid "" diff --git a/library/ipaddress.po b/library/ipaddress.po index 2981b08b9..5f92dea99 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:9 msgid "**Source code:** :source:`Lib/ipaddress.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/ipaddress.py`" #: ../Doc/library/ipaddress.rst:13 msgid "" @@ -676,7 +676,7 @@ msgstr "" #: ../Doc/library/ipaddress.rst:693 msgid "Iteration" -msgstr "" +msgstr "Itération" #: ../Doc/library/ipaddress.rst:695 msgid "" diff --git a/library/itertools.po b/library/itertools.po index 661a92e2f..e235c72f1 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -18,8 +18,7 @@ msgstr "" #: ../Doc/library/itertools.rst:2 msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" msgstr "" -":mod:`itertools` --- Fonctions créant des itérateurs pour boucler " -"efficacement." +":mod:`itertools` — Fonctions créant des itérateurs pour boucler efficacement" #: ../Doc/library/itertools.rst:16 msgid "" @@ -28,8 +27,8 @@ msgid "" "suitable for Python." msgstr "" "Ce module implémente de nombreuses briques :term:`d'itérateurs ` " -"inspirées par des constructions de APL, Haskell et SML. Toutes ont été " -"retravaillées dans un format adéquat pour Python." +"inspirées par des éléments de APL, Haskell et SML. Toutes ont été " +"retravaillées dans un format adapté à Python." #: ../Doc/library/itertools.rst:20 msgid "" @@ -38,10 +37,10 @@ msgid "" "algebra\" making it possible to construct specialized tools succinctly and " "efficiently in pure Python." msgstr "" -"Ce module standardise un noyau d'outils rapide, efficaces en mémoire qui " -"sont utiles d'eux-mêmes ou en les combinant. Ensemble, ils forment une " -"\"algèbre d'itérateurs\" rendant possible la construction succincte et " -"efficace d'outils spécialisés en Python seulement." +"Ce module standardise un ensemble de base d'outils rapides et efficaces en " +"mémoire qui peuvent être utilisés individuellement ou en les combinant. " +"Ensemble, ils forment une « algèbre d'itérateurs » rendant possible la " +"construction rapide et efficace d'outils spécialisés en Python." #: ../Doc/library/itertools.rst:25 msgid "" @@ -50,7 +49,7 @@ msgid "" "by combining :func:`map` and :func:`count` to form ``map(f, count())``." msgstr "" "Par exemple, SML fournit un outil de tabulation ``tabulate(f)`` qui produit " -"une séquence ``f(0), f(1), ...``. Le même résultat peut être achevé en " +"une séquence ``f(0), f(1), ...``. Le même résultat peut être obtenu en " "Python en combinant :func:`map` et :func:`count` pour former ``map(f, " "count())``." @@ -61,10 +60,10 @@ msgid "" "multiplication operator can be mapped across two vectors to form an " "efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``." msgstr "" -"Ces outils et leurs équivalents intégrés fonctionnent aussi bien avec les " -"fonction à grande vitesse dans le module :mod:`operator`. Par exemple, " -"l'opérateur de multiplication peut être appliqué à deux vecteurs pour créer " -"un produit scalaire efficace ``sum(map(operator.mul, vecteur1, vecteur2))``." +"Ces outils et leurs équivalents natifs fonctionnent également bien avec les " +"fonctions optimisées du module :mod:`operator`. Par exemple, l'opérateur de " +"multiplication peut être appliqué à deux vecteurs pour créer un produit " +"scalaire efficace : ``sum(map(operator.mul, vecteur1, vecteur2))``." #: ../Doc/library/itertools.rst:35 msgid "**Infinite iterators:**" @@ -224,7 +223,7 @@ msgstr ":func:`filterfalse`" #: ../Doc/library/itertools.rst:55 msgid "elements of seq where pred(elem) is false" -msgstr "éléments de *seq* quand *pred(elem)* est faux" +msgstr "éléments de *seq* pour lesquels *pred(elem)* est faux" #: ../Doc/library/itertools.rst:55 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" @@ -337,8 +336,8 @@ msgstr "p[, r]" #: ../Doc/library/itertools.rst:70 msgid "r-length tuples, all possible orderings, no repeated elements" msgstr "" -"*tuples* de longueur *r*, tous les ré-arrangements possibles, sans " -"répétition d'éléments" +"n-uplets de longueur r, tous les ré-arrangements possibles, sans répétition " +"d'éléments" #: ../Doc/library/itertools.rst:71 msgid ":func:`combinations`" @@ -350,7 +349,7 @@ msgstr "p, r" #: ../Doc/library/itertools.rst:71 msgid "r-length tuples, in sorted order, no repeated elements" -msgstr "tuples de longueur r, triés, sans répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, sans répétition d'éléments" #: ../Doc/library/itertools.rst:72 msgid ":func:`combinations_with_replacement`" @@ -358,7 +357,7 @@ msgstr ":func:`combinations_with_replacement`" #: ../Doc/library/itertools.rst:72 msgid "r-length tuples, in sorted order, with repeated elements" -msgstr "tuples de longueur r, triés, avec répétition d'éléments" +msgstr "n-uplets de longueur r, ordonnés, avec répétition d'éléments" #: ../Doc/library/itertools.rst:73 msgid "``product('ABCD', repeat=2)``" @@ -402,10 +401,10 @@ msgid "" "provide streams of infinite length, so they should only be accessed by " "functions or loops that truncate the stream." msgstr "" -"Toutes les fonctions de module qui suivent construisent et renvoient des " -"itérateurs. Certaines fournissent des flux de longueur infinie, elles " -"devraient seulement être accédées par des fonctions ou boucles qui tronquent " -"le flux." +"Toutes les fonctions du module qui suivent construisent et renvoient des " +"itérateurs. Certaines produisent des flux de longueur infinie ; celles-ci ne " +"doivent donc être contrôlées que par des fonctions ou boucles qui " +"interrompent le flux." #: ../Doc/library/itertools.rst:91 msgid "" @@ -432,7 +431,7 @@ msgstr "" #: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:478 #: ../Doc/library/itertools.rst:557 ../Doc/library/itertools.rst:610 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "À peu près équivalent à ::" #: ../Doc/library/itertools.rst:117 msgid "" @@ -444,14 +443,15 @@ msgid "" "modeled by supplying the initial value in the iterable and using only the " "accumulated total in *func* argument::" msgstr "" -"Il y a de nombreuses utilisations pour l'argument *func*. Il peut être :func:" -"`min` pour un minimum glissant, :func:`max` pour un maximum glissant, ou :" -"func:`operator.mul` pour un produit glissant. Des tableaux de remboursement " -"peuvent être construites en accumulant l'intérêt et en déposant des " -"paiements. Des `suites de récurrences `_ de premier ordre peuvent être modélisées " -"en renseignant la valeur initiale dans l'itérable et en utilisant seulement " -"le total accumulé dans l'argument *func* : ::" +"Il y a de nombreuses utilisations à l'argument *func*. Celui-ci peut être :" +"func:`min` pour calculer un minimum glissant, :func:`max` pour un maximum " +"glissant ou :func:`operator.mul` pour un produit glissant. Des tableaux de " +"remboursements peuvent être construits en ajoutant les intérêts et en " +"soustrayant les paiements. Des `suites par récurrence `_ de premier ordre peuvent " +"être modélisées en en passant la valeur initiale dans *iterable* et en " +"n'utilisant que le premier argument de *func*, qui contient le résultat des " +"évaluations précédentes ::" #: ../Doc/library/itertools.rst:147 msgid "" @@ -463,7 +463,7 @@ msgstr "" #: ../Doc/library/itertools.rst:152 msgid "Added the optional *func* parameter." -msgstr "Le paramètre optionnel *func* a été ajouté." +msgstr "Ajout du paramètre optionnel *func*." #: ../Doc/library/itertools.rst:157 msgid "" @@ -472,10 +472,10 @@ msgid "" "are exhausted. Used for treating consecutive sequences as a single " "sequence. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments du premier itérable jusqu'à son " +"Crée un itérateur qui renvoie les éléments du premier itérable jusqu'à son " "épuisement, puis continue avec l'itérable suivant jusqu'à ce que tous les " "itérables soient épuisés. Utilisée pour traiter des séquences consécutives " -"comme une seule séquence Sensiblement équivalente à : ::" +"comme une seule séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:171 msgid "" @@ -483,12 +483,12 @@ msgid "" "iterable argument that is evaluated lazily. Roughly equivalent to::" msgstr "" "Constructeur alternatif pour :func:`chain`. Récupère des entrées chaînées " -"d'un unique argument itérable qui est évalué de manière paresseuse. " -"Sensiblement équivalente à : ::" +"depuis un unique itérable passé en argument, qui est évalué de manière " +"paresseuse. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:183 msgid "Return *r* length subsequences of elements from the input *iterable*." -msgstr "Renvoyer les sous-séquences de longueur *r* de l'itérable *iterable*." +msgstr "Renvoie les combinaisons de longueur *r* de *iterable*." #: ../Doc/library/itertools.rst:185 ../Doc/library/itertools.rst:234 msgid "" @@ -496,9 +496,9 @@ msgid "" "*iterable* is sorted, the combination tuples will be produced in sorted " "order." msgstr "" -"Les combinaisons sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable *iterable* est trié, les *tuples* de combinaison seront produits " -"dans l'ordre." +"Les combinaisons sont produites dans l'ordre lexicographique. Ainsi, si " +"l'itérable *iterable* est ordonné, les n-uplets de combinaison produits le " +"sont aussi." #: ../Doc/library/itertools.rst:189 msgid "" @@ -516,9 +516,9 @@ msgid "" "func:`permutations` after filtering entries where the elements are not in " "sorted order (according to their position in the input pool)::" msgstr "" -"Le code de :func:`combinations` peut aussi être exprimé comme une sous-" -"séquence de :func:`permutations` après avoir filtré les entrées dont les " -"éléments ne sont pas triés (selon leur position dans le *pool* d'entrée) : ::" +"Un appel à :func:`combinations` peut aussi être vu comme à un appel à :func:" +"`permutations` en excluant les sorties dans lesquelles les éléments ne sont " +"pas ordonnés (avec la même relation d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:226 msgid "" @@ -553,10 +553,10 @@ msgid "" "a subsequence of :func:`product` after filtering entries where the elements " "are not in sorted order (according to their position in the input pool)::" msgstr "" -"Le code pour :func:`combinations_with_replacement` peut aussi être exprimé " -"comme une sous-séquence de :func:`product` après avoir filtré les entrées où " -"les éléments ne sont pas dans triés (selon leur position dans le *pool* " -"d'entrée) : ::" +"Un appel à :func:`combinations_with_replacement` peut aussi être vu comme un " +"appel à :func:`product` en excluant les sorties dans lesquelles les éléments " +"ne sont pas dans ordonnés (avec la même relation d'ordre que pour " +"l'entrée) ::" #: ../Doc/library/itertools.rst:272 msgid "" @@ -571,10 +571,10 @@ msgid "" "Stops when either the *data* or *selectors* iterables has been exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *data*, renvoyant seulement " -"ceux qui ont un élément correspondant dans *selectors* qui évalue à " -"``True``. S'arrête quand l'itérable *data* ou *selectors* a été épuisé. " -"Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *data*, en ne renvoyant que " +"ceux dont l'élément correspondant dans *selectors* s'évalue à ``True``. " +"S'arrête quand l'itérable *data* ou *selectors* a été épuisé. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:293 msgid "" @@ -583,10 +583,10 @@ msgid "" "data points. Also, used with :func:`zip` to add sequence numbers. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les valeurs espacées également commençant par " -"le nombre *start*. Souvent utilisée comme un argument de :func:`map` pour " -"générer des points de données consécutifs. Aussi utilisé avec :func:`zip` " -"pour ajouter des nombres de séquence. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie des valeurs espacées régulièrement, en " +"commençant par le nombre *start*. Souvent utilisé comme un argument de :func:" +"`map` pour générer des points de données consécutifs. Aussi utilisé avec :" +"func:`zip` pour ajouter des nombres de séquence. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:305 msgid "" @@ -594,9 +594,9 @@ msgid "" "achieved by substituting multiplicative code such as: ``(start + step * i " "for i in count())``." msgstr "" -"Quand on compte avec des nombres à virgule flottante, il est parfois " -"possible d'obtenir une meilleure précision en substituant du code " -"multiplicateur comme : ``(start + step * i for i in count())``." +"Pour compter avec des nombres à virgule flottante, il est parfois préférable " +"d'utiliser le code : ``(start + step * i for i in count())`` pour obtenir " +"une meilleure précision." #: ../Doc/library/itertools.rst:309 msgid "Added *step* argument and allowed non-integer arguments." @@ -610,18 +610,17 @@ msgid "" "each. When the iterable is exhausted, return elements from the saved copy. " "Repeats indefinitely. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments de l'itérable et qui sauvegarde " -"une copie de chaque. Quand l'itérable est épuisé, renvoyer les éléments " -"depuis la copie sauvegardée. Répète à l'infini. Sensiblement équivalent " -"à : ::" +"Crée un itérateur qui renvoie les éléments de l'itérable en en sauvegardant " +"une copie. Quand l'itérable est épuisé, renvoie les éléments depuis la " +"sauvegarde. Répète à l'infini. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:328 msgid "" "Note, this member of the toolkit may require significant auxiliary storage " "(depending on the length of the iterable)." msgstr "" -"Note, cette fonction pourrait avoir besoin d'un stockage auxiliaire " -"important (en fonction de la longueur de l'itérable)." +"Note, cette fonction peut avoir besoin d'un stockage auxiliaire important " +"(en fonction de la longueur de l'itérable)." #: ../Doc/library/itertools.rst:334 msgid "" @@ -630,10 +629,10 @@ msgid "" "does not produce *any* output until the predicate first becomes false, so it " "may have a lengthy start-up time. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui saute les éléments de l'itérable tant que le prédicat " -"est vrai ; ensuite, renvoyer chaque élément. Note, l'itérateur ne produit " +"Crée un itérateur qui saute les éléments de l'itérable tant que le prédicat " +"est vrai ; renvoie ensuite chaque élément. Notez que l'itérateur ne produit " "*aucune* sortie avant que le prédicat ne devienne faux, il peut donc avoir " -"un temps de démarrage long. Sensiblement équivalent à : ::" +"un temps de démarrage long. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:351 msgid "" @@ -641,9 +640,9 @@ msgid "" "for which the predicate is ``False``. If *predicate* is ``None``, return the " "items that are false. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui filtre les éléments de *iterable*, ne renvoyant " -"seulement ceux pour lesquels le prédicat est ``Faux``. Si *predicate* vaut " -"``None``, renvoyer les éléments qui sont faux. Sensiblement équivalent à : ::" +"Crée un itérateur qui filtre les éléments de *iterable*, ne renvoyant " +"seulement ceux pour lesquels le prédicat est ``False``. Si *predicate* vaut " +"``None``, renvoie les éléments qui sont faux. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:366 msgid "" @@ -653,12 +652,12 @@ msgid "" "returns the element unchanged. Generally, the iterable needs to already be " "sorted on the same key function." msgstr "" -"Créer un itérateur qui renvoie les clés et les groupes de l'itérable " +"Crée un itérateur qui renvoie les clés et les groupes de l'itérable " "*iterable*. La clé *key* est une fonction qui génère une clé pour chaque " -"élément. Si *key* n'est pas spécifié ou est ``None``, elle vaut par défaut " +"élément. Si *key* n'est pas spécifiée ou est ``None``, elle vaut par défaut " "une fonction d'identité qui renvoie l'élément sans le modifier. " -"Généralement, l'itérable a besoin d'être déjà trié selon cette même fonction " -"de clé." +"Généralement, l'itérable a besoin d'avoir ses éléments déjà classés selon " +"cette même fonction de clé." #: ../Doc/library/itertools.rst:372 msgid "" @@ -685,12 +684,12 @@ msgstr "" "Le groupe renvoyé est lui-même un itérateur qui partage l'itérable sous-" "jacent avec :func:`groupby`. Puisque que la source est partagée, quand " "l'objet :func:`groupby` est avancé, le groupe précédent n'est plus visible. " -"Ainsi, si cette donnée doit être utilisée plus tard, elle devrait être " -"stockée comme une liste : ::" +"Ainsi, si cette donnée doit être utilisée plus tard, elle doit être stockée " +"comme une liste ::" #: ../Doc/library/itertools.rst:390 msgid ":func:`groupby` is roughly equivalent to::" -msgstr ":func:`groupby` est sensiblement équivalent à : ::" +msgstr ":func:`groupby` est à peu près équivalente à ::" #: ../Doc/library/itertools.rst:423 msgid "" @@ -705,18 +704,18 @@ msgid "" "the internal structure has been flattened (for example, a multi-line report " "may list a name field on every third line). Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " -"*start* est non-nul, alors les éléments de l'itérable sont sautés jusqu'à ce " -"que *start* soit atteint. Ensuite, les éléments sont renvoyés " +"Crée un itérateur qui renvoie les élément sélectionnés de l'itérable. Si " +"*start* est différent de zéro, alors les éléments de l'itérable sont ignorés " +"jusqu'à ce que *start* soit atteint. Ensuite, les éléments sont renvoyés " "consécutivement sauf si *step* est plus grand que 1, auquel cas certains " -"éléments seront sautés. Si *stop* est ``None``, alors l'itération continue " +"éléments seront ignorés. Si *stop* est ``None``, alors l'itération continue " "jusqu'à ce que l'itérateur soit épuisé s'il ne l'est pas déjà ; sinon, il " -"s'arrête à la position spécifiée. À la différence du *slicing* standard, :" -"func:`slice` ne supporte pas les valeurs négatives pour *start*, *stop* ou " -"*step*. Peut être utilisée pour extraire les champs apparentés depuis des " +"s'arrête à la position spécifiée. À la différence des tranches standards, :" +"func:`slice` ne gère pas les valeurs négatives pour *start*, *stop* ou " +"*step*. Peut être utilisée pour extraire les champs consécutifs depuis des " "données dont la structure interne a été aplatie (par exemple, un rapport " -"multi-ligne pourrait lister un nom de champ toutes les trois lignes). " -"Sensiblement similaire à : ::" +"multi-lignes pourrait lister un nom de champ toutes les trois lignes). À peu " +"près similaire à ::" #: ../Doc/library/itertools.rst:458 msgid "" @@ -730,7 +729,7 @@ msgstr "" msgid "" "Return successive *r* length permutations of elements in the *iterable*." msgstr "" -"Renvoyer les permutations successives de longueur *r* des éléments de " +"Renvoie les arrangements successifs de longueur *r* des éléments de " "*iterable*." #: ../Doc/library/itertools.rst:466 @@ -749,8 +748,8 @@ msgid "" "order." msgstr "" "Les permutations sont émises dans l'ordre lexicographique. Ainsi, si " -"l'itérable d'entrée *iterable* est trié, les *tuples* de permutation seront " -"produits dans l'ordre." +"l'itérable d'entrée *iterable* est classé, les n-uplets de permutation sont " +"produits dans ce même ordre." #: ../Doc/library/itertools.rst:474 msgid "" @@ -768,9 +767,9 @@ msgid "" "func:`product`, filtered to exclude entries with repeated elements (those " "from the same position in the input pool)::" msgstr "" -"Le code pour :func:`permutations` peut aussi être exprimé comme une sous-" -"séquence de :func:`product`, filtré pour exclure les entrées avec des " -"éléments répétés (celles de la même position dans la *pool* d'entrée) : ::" +"Un appel à :func:`permutations` peut aussi être vu un appel à :func:" +"`product` en excluant les sorties avec des doublons (avec la même relation " +"d'ordre que pour l'entrée) ::" #: ../Doc/library/itertools.rst:517 msgid "" @@ -790,9 +789,9 @@ msgid "" "example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " "B)``." msgstr "" -"Sensiblement équivalent à des boucles *for* imbriquées dans une expression " -"de générateur. Par exemple ``product(A, B)`` renvoie la même chose que " -"``((x, y) for x in A for y in B)``." +"À peu près équivalent à des boucles *for* imbriquées dans une expression de " +"générateur. Par exemple ``product(A, B)`` renvoie la même chose que ``((x, " +"y) for x in A for y in B)``." #: ../Doc/library/itertools.rst:527 msgid "" @@ -802,9 +801,9 @@ msgid "" "sorted order." msgstr "" "Les boucles imbriquées tournent comme un compteur kilométrique avec " -"l'élément le plus à droite avançant à chaque itération. ce motif créé un tri " -"lexicographique afin que si les itérables de l'entrée sont triés, les " -"*tuples* de produit sont émis dans l'ordre." +"l'élément le plus à droite avançant à chaque itération. Ce motif défini un " +"ordre lexicographique afin que, si les éléments des itérables en l'entrée " +"sont ordonnés, les n-uplets produits le sont aussi." #: ../Doc/library/itertools.rst:532 msgid "" @@ -812,17 +811,18 @@ msgid "" "repetitions with the optional *repeat* keyword argument. For example, " "``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``." msgstr "" -"Pour générer le produit d'un itérable avec lui-même, spécifier le nombre de " +"Pour générer le produit d'un itérable avec lui-même, spécifiez le nombre de " "répétitions avec le paramètre nommé optionnel *repeat*. Par exemple, " -"``product(A, repeat=4)`` veut dire la même chose que ``product(A, A, A, A)``." +"``product(A, repeat=4)`` est équivalent à ``product(A, A, A, A)``." #: ../Doc/library/itertools.rst:536 msgid "" "This function is roughly equivalent to the following code, except that the " "actual implementation does not build up intermediate results in memory::" msgstr "" -"Cette fonction est sensiblement équivalente au code suivant, saut que la " -"vraie implémentation ne créé pas les résultats intermédiaires en mémoire : ::" +"Cette fonction est à peu près équivalente au code suivant, à la différence " +"près que la vraie implémentation ne crée pas de résultats intermédiaires en " +"mémoire ::" #: ../Doc/library/itertools.rst:552 msgid "" @@ -831,18 +831,18 @@ msgid "" "func:`map` for invariant parameters to the called function. Also used with :" "func:`zip` to create an invariant part of a tuple record." msgstr "" -"Créer un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " +"Crée un itérateur qui renvoie *object* à l'infini. S'exécute indéfiniment " "sauf si l'argument *times* est spécifié. Utilisée comme argument de :func:" "`map` pour les paramètres invariants de la fonction appelée. Aussi utilisée " -"avec :func:`zip` pour créer une partie invariante d'un *tuple*." +"avec :func:`zip` pour créer une partie invariante d'un n-uplet." #: ../Doc/library/itertools.rst:568 msgid "" "A common use for *repeat* is to supply a stream of constant values to *map* " "or *zip*::" msgstr "" -"Une utilisation commune de *repeat* est de fournir un flux constant de " -"valeurs à *map* ou *zip* : ::" +"Une utilisation courante de *repeat* est de fournir un flux constant de " +"valeurs à *map* ou *zip* ::" #: ../Doc/library/itertools.rst:576 msgid "" @@ -853,24 +853,24 @@ msgid "" "the distinction between ``function(a,b)`` and ``function(*c)``. Roughly " "equivalent to::" msgstr "" -"Créer un itérateur qui exécute la fonction avec les arguments obtenus de " +"Crée un itérateur qui exécute la fonction avec les arguments obtenus depuis " "l'itérable. Utilisée à la place de :func:`map` quand les arguments sont déjà " -"groupés en *tuples* depuis un seul itérable (la donnée a déjà été \"pré-" -"zippée\"). La différence entre :func:`map` et :func:`starmap` est similaire " -"à la différence entre ``fonction(a,b)`` et ``fonction(*c)``. Sensiblement " -"équivalent à : ::" +"groupés en n-uplets depuis un seul itérable — la donnée a déjà été « pré-" +"zippée ». La différence entre :func:`map` et :func:`starmap` est similaire à " +"la différence entre ``fonction(a,b)`` et ``fonction(*c)``. À peu près " +"équivalent à ::" #: ../Doc/library/itertools.rst:590 msgid "" "Make an iterator that returns elements from the iterable as long as the " "predicate is true. Roughly equivalent to::" msgstr "" -"Créer un itérateur qui renvoie les éléments d'un itérable tant que le " -"prédicat est vrai. Sensiblement équivalent à : ::" +"Crée un itérateur qui renvoie les éléments d'un itérable tant que le " +"prédicat est vrai. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:604 msgid "Return *n* independent iterators from a single iterable." -msgstr "Renvoyer *n* itérateurs indépendant depuis un unique itérable." +msgstr "Renvoie *n* itérateurs indépendants depuis un unique itérable." #: ../Doc/library/itertools.rst:606 msgid "" @@ -878,9 +878,9 @@ msgid "" "implementation is more complex and uses only a single underlying :abbr:`FIFO " "(first-in, first-out)` queue)." msgstr "" -"Le code Python qui suit aide à expliquer ce que fait *tee* (bien que la " -"vraie implémentation est plus complexe et n'utilise qu'une file :abbr:`FIFO " -"(first-in, first-out)`)." +"Le code Python qui suit aide à expliquer ce que fait *tee*, bien que la " +"vraie implémentation soit plus complexe et n'utilise qu'une file :abbr:`FIFO " +"(premier entré, premier sorti ou *first-in, first-out* en anglais)`." #: ../Doc/library/itertools.rst:627 msgid "" @@ -889,8 +889,8 @@ msgid "" "tee objects being informed." msgstr "" "Une fois que :func:`tee` a créé un branchement, l'itérable *iterable* ne " -"devrait être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " -"avancé sans que les objets tee soient informés." +"doit être utilisé nulle part ailleurs ; sinon, *iterable* pourrait être " +"avancé sans que les objets tee ne soient informés." #: ../Doc/library/itertools.rst:631 msgid "" @@ -899,11 +899,11 @@ msgid "" "most or all of the data before another iterator starts, it is faster to use :" "func:`list` instead of :func:`tee`." msgstr "" -"Cet outil pourrait avoir besoin d'un stockage auxiliaire important (en " -"fonction de la taille des données temporaires nécessaires). En général, si " -"un itérateur utilise la majorité ou toute la donnée avant qu'un autre " -"itérateur ne commence, il est plus rapide d'utiliser :func:`list` à la place " -"de :func:`tee`." +"Cet outil peut avoir besoin d'un stockage auxiliaire important (en fonction " +"de la taille des données temporaires nécessaires). En général, si un " +"itérateur utilise la majorité ou toute la donnée avant qu'un autre itérateur " +"ne commence, il est plus rapide d'utiliser :func:`list` à la place de :func:" +"`tee`." #: ../Doc/library/itertools.rst:639 msgid "" @@ -912,10 +912,10 @@ msgid "" "*fillvalue*. Iteration continues until the longest iterable is exhausted. " "Roughly equivalent to::" msgstr "" -"Créer un itérateur qui agrège les éléments de chacun des itérables. Si les " +"Crée un itérateur qui agrège les éléments de chacun des itérables. Si les " "itérables sont de longueurs différentes, les valeurs manquantes sont " "remplacées par *fillvalue*. L'itération continue jusqu'à ce que l'itérable " -"le plus long soit épuisé. Sensiblement équivalent à : ::" +"le plus long soit épuisé. À peu près équivalent à ::" #: ../Doc/library/itertools.rst:663 msgid "" @@ -925,7 +925,7 @@ msgid "" "specified, *fillvalue* defaults to ``None``." msgstr "" "Si un des itérables est potentiellement infini, alors la fonction :func:" -"`zip_longest` devrait être entourée avec quelque chose qui limite le nombre " +"`zip_longest` doit être encapsulée dans un code qui limite le nombre " "d'appels (par exemple, :func:`islice` ou :func:`takewhile`). Si *fillvalue* " "n'est pas spécifié, il vaut ``None`` par défaut." @@ -938,8 +938,8 @@ msgid "" "This section shows recipes for creating an extended toolset using the " "existing itertools as building blocks." msgstr "" -"Cette section montre des recettes pour créer une boîte à outil étendue en se " -"servant des *itertools* existants comme de briques." +"Cette section présente des recettes pour créer une vaste boîte à outils en " +"se servant des *itertools* existants comme des briques." #: ../Doc/library/itertools.rst:677 msgid "" @@ -955,9 +955,10 @@ msgstr "" "jacents. La performance mémoire supérieure est gardée en traitant les " "éléments un à la fois plutôt que de charger tout l'itérable en mémoire en " "même temps. Le volume de code reste bas grâce à un chaînage de style " -"fonctionnel qui aide à éliminer des variables temporaires. La grande vitesse " -"est gardée en préférant les briques \"vectorisées\" plutôt que les boucles " -"*for* et les :term:`générateur`\\s qui engendrent du sur-coût de traitement." +"fonctionnel qui aide à éliminer les variables temporaires. La grande vitesse " +"est gardée en préférant les briques « vectorisées » plutôt que les boucles " +"*for* et les :term:`générateurs ` qui engendrent un surcoût de " +"traitement." #: ../Doc/library/itertools.rst:899 msgid "" diff --git a/library/json.po b/library/json.po index 72cbda1f6..afccadb0a 100644 --- a/library/json.po +++ b/library/json.po @@ -49,27 +49,27 @@ msgstr "" #: ../Doc/library/json.rst:24 msgid "Encoding basic Python object hierarchies::" -msgstr "Encodage d'objets Python basiques : ::" +msgstr "Encodage d'objets Python basiques ::" #: ../Doc/library/json.rst:43 msgid "Compact encoding::" -msgstr "Encodage compact : ::" +msgstr "Encodage compact ::" #: ../Doc/library/json.rst:49 msgid "Pretty printing::" -msgstr "Affichage élégant : ::" +msgstr "Affichage élégant ::" #: ../Doc/library/json.rst:58 msgid "Decoding JSON::" -msgstr "Décodage JSON : ::" +msgstr "Décodage JSON ::" #: ../Doc/library/json.rst:70 msgid "Specializing JSON object decoding::" -msgstr "Spécialisation du décodage JSON pour un objet : ::" +msgstr "Spécialisation du décodage JSON pour un objet ::" #: ../Doc/library/json.rst:85 msgid "Extending :class:`JSONEncoder`::" -msgstr "Étendre la classe :class:`JSONEncoder` : ::" +msgstr "Étendre la classe :class:`JSONEncoder` ::" #: ../Doc/library/json.rst:103 msgid "Using :mod:`json.tool` from the shell to validate and pretty-print:" @@ -496,7 +496,7 @@ msgstr "*null*" #: ../Doc/library/json.rst:313 ../Doc/library/json.rst:400 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/library/json.rst:316 msgid "" @@ -684,7 +684,7 @@ msgid "" "like this::" msgstr "" "Par exemple, pour supporter des itérateurs arbitraires, vous pourriez " -"implémenter *default* comme cela : ::" +"implémenter *default* comme cela ::" #: ../Doc/library/json.rst:484 msgid "" @@ -692,7 +692,7 @@ msgid "" "example::" msgstr "" "Renvoie une chaîne JSON représentant la structure de données Python *o*. " -"Par exemple : ::" +"Par exemple ::" #: ../Doc/library/json.rst:493 msgid "" @@ -700,7 +700,7 @@ msgid "" "available. For example::" msgstr "" "Encode l'objet *o* donné, et produit chaque chaîne représentant l'objet " -"selon disponibilité. Par exemple : ::" +"selon disponibilité. Par exemple ::" #: ../Doc/library/json.rst:501 msgid "Exceptions" @@ -884,7 +884,7 @@ msgstr "" "La RFC spécifie que les noms au sein d'un objet JSON doivent être uniques, " "mais ne décrit pas comment les noms répétés doivent être gérés. Par défaut, " "ce module ne lève pas d'exception ; à la place, il ignore tous les couples " -"nom/valeur sauf le dernier pour un nom donné : ::" +"nom/valeur sauf le dernier pour un nom donné ::" #: ../Doc/library/json.rst:613 msgid "The *object_pairs_hook* parameter can be used to alter this behavior." diff --git a/library/locale.po b/library/locale.po index f90d0a7ab..ce59a7ae8 100644 --- a/library/locale.po +++ b/library/locale.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/locale.rst:2 msgid ":mod:`locale` --- Internationalization services" -msgstr "" +msgstr ":mod:`locale` — Services d'internationalisation" #: ../Doc/library/locale.rst:10 msgid "**Source code:** :source:`Lib/locale.py`" @@ -29,22 +29,33 @@ msgid "" "certain cultural issues in an application, without requiring the programmer " "to know all the specifics of each country where the software is executed." msgstr "" +"Le module :mod:`locale` donne accès à la base de données et aux " +"fonctionnalités des paramètres linguistiques définis par POSIX. Le mécanisme " +"des paramètres linguistiques de POSIX permet aux développeurs de faire face " +"à certaines problématiques culturelles dans une application, sans avoir à " +"connaître toutes les spécificités de chaque pays où le logiciel est exécuté." #: ../Doc/library/locale.rst:21 msgid "" "The :mod:`locale` module is implemented on top of the :mod:`_locale` module, " "which in turn uses an ANSI C locale implementation if available." msgstr "" +"Le module :mod:`locale` est implémenté au-dessus du module :mod:`_locale`, " +"qui lui-même utilise l'implémentation du paramètre régional ANSI C si " +"disponible." #: ../Doc/library/locale.rst:24 msgid "The :mod:`locale` module defines the following exception and functions:" msgstr "" +"Le module :mod:`locale` définit l'exception et les fonctions suivantes :" #: ../Doc/library/locale.rst:29 msgid "" "Exception raised when the locale passed to :func:`setlocale` is not " "recognized." msgstr "" +"Exception levée lorsque le paramètre régional passé en paramètre de :func:" +"`setlocale` n'est pas reconnu." #: ../Doc/library/locale.rst:35 msgid "" @@ -57,18 +68,31 @@ msgid "" "exception :exc:`Error` is raised. If successful, the new locale setting is " "returned." msgstr "" +"Si *locale* ne vaut pas ``None``, :func:`setlocale` modifie le paramètre " +"régional pour la catégorie *category*. Les catégories disponibles sont " +"listées dans la description des données ci-dessous. *locale* peut être une " +"chaîne de caractères ou un itérable de deux chaînes de caractères (code de " +"la langue et encodage). Si c'est un itérable, il est converti en un nom de " +"paramètre régional à l'aide du moteur de normalisation fait pour. Si c'est " +"une chaîne vide, les paramètres par défaut de l'utilisateur sont utilisés. " +"Si la modification du paramètre régional échoue, l'exception :exc:`Error` " +"est levée. Si elle fonctionne, le nouveau paramètre est renvoyé." #: ../Doc/library/locale.rst:43 msgid "" "If *locale* is omitted or ``None``, the current setting for *category* is " "returned." msgstr "" +"Si *locale* est omis ou vaut ``None``, le paramètre actuel de *category* est " +"renvoyé." #: ../Doc/library/locale.rst:46 msgid "" ":func:`setlocale` is not thread-safe on most systems. Applications typically " "start with a call of ::" msgstr "" +":func:`setlocale` n'est pas *thread-safe* sur la plupart des systèmes. Les " +"applications commencent généralement par un appel de : ::" #: ../Doc/library/locale.rst:52 msgid "" @@ -77,20 +101,28 @@ msgid "" "locale is not changed thereafter, using multithreading should not cause " "problems." msgstr "" +"Cela définit les paramètres régionaux dans toutes les catégories sur ceux " +"par défaut de l'utilisateur (habituellement spécifiés dans la variable " +"d'environnement :envvar:`LANG`). Si les paramètres régionaux ne sont pas " +"modifiés par la suite, l'utilisation de fils d'exécution ne devrait pas " +"poser de problèmes." #: ../Doc/library/locale.rst:59 msgid "" "Returns the database of the local conventions as a dictionary. This " "dictionary has the following strings as keys:" msgstr "" +"Renvoie la base de données des conventions locales sous forme de " +"dictionnaire. Ce dictionnaire a les chaînes de caractères suivantes comme " +"clés :" #: ../Doc/library/locale.rst:65 msgid "Category" -msgstr "" +msgstr "Catégorie" #: ../Doc/library/locale.rst:65 msgid "Key" -msgstr "" +msgstr "Clé" #: ../Doc/library/locale.rst:65 msgid "Meaning" @@ -107,6 +139,8 @@ msgstr "``'decimal_point'``" #: ../Doc/library/locale.rst:67 msgid "Decimal point character." msgstr "" +"Caractère du séparateur décimal (entre la partie entière et la partie " +"décimale)." #: ../Doc/library/locale.rst:69 msgid "``'grouping'``" @@ -119,6 +153,11 @@ msgid "" "`CHAR_MAX`, no further grouping is performed. If the sequence terminates " "with a ``0``, the last group size is repeatedly used." msgstr "" +"Séquence de nombres spécifiant les positions relatives attendues pour " +"``'thousands_sep'`` (séparateur de milliers). Si la séquence se termine " +"par :const:`CHAR_MAX`, aucun autre regroupement n'est effectué. Si la " +"séquence se termine par un ``0``, la dernière taille du groupe est utilisée " +"à plusieurs reprises." #: ../Doc/library/locale.rst:80 msgid "``'thousands_sep'``" @@ -126,7 +165,7 @@ msgstr "``'thousands_sep'``" #: ../Doc/library/locale.rst:80 msgid "Character used between groups." -msgstr "" +msgstr "Caractère utilisé entre les groupes (séparateur de milliers)." #: ../Doc/library/locale.rst:82 msgid ":const:`LC_MONETARY`" @@ -138,7 +177,7 @@ msgstr "``'int_curr_symbol'``" #: ../Doc/library/locale.rst:82 msgid "International currency symbol." -msgstr "" +msgstr "Symbole monétaire international." #: ../Doc/library/locale.rst:84 msgid "``'currency_symbol'``" @@ -146,7 +185,7 @@ msgstr "``'currency_symbol'``" #: ../Doc/library/locale.rst:84 msgid "Local currency symbol." -msgstr "" +msgstr "Symbole monétaire local." #: ../Doc/library/locale.rst:86 msgid "``'p_cs_precedes/n_cs_precedes'``" @@ -157,6 +196,8 @@ msgid "" "Whether the currency symbol precedes the value (for positive resp. negative " "values)." msgstr "" +"Si le symbole monétaire précède ou non la valeur (pour les valeurs positives " +"et négatives, respectivement)." #: ../Doc/library/locale.rst:91 msgid "``'p_sep_by_space/n_sep_by_space'``" @@ -167,6 +208,8 @@ msgid "" "Whether the currency symbol is separated from the value by a space (for " "positive resp. negative values)." msgstr "" +"Si le symbole monétaire est séparé de la valeur par une espace ou non (pour " +"les valeurs positives et négatives, respectivement)." #: ../Doc/library/locale.rst:96 msgid "``'mon_decimal_point'``" @@ -175,6 +218,8 @@ msgstr "``'mon_decimal_point'``" #: ../Doc/library/locale.rst:96 msgid "Decimal point used for monetary values." msgstr "" +"Séparateur décimal (entre la partie entière et la partie décimale) utilisé " +"pour les valeurs monétaires." #: ../Doc/library/locale.rst:99 msgid "``'frac_digits'``" @@ -184,6 +229,7 @@ msgstr "``'frac_digits'``" msgid "" "Number of fractional digits used in local formatting of monetary values." msgstr "" +"Nombre de décimales utilisées dans le format local des valeurs monétaires." #: ../Doc/library/locale.rst:103 msgid "``'int_frac_digits'``" @@ -194,6 +240,8 @@ msgid "" "Number of fractional digits used in international formatting of monetary " "values." msgstr "" +"Nombre de décimales utilisées dans le format international des valeurs " +"monétaires." #: ../Doc/library/locale.rst:107 msgid "``'mon_thousands_sep'``" @@ -201,7 +249,7 @@ msgstr "``'mon_thousands_sep'``" #: ../Doc/library/locale.rst:107 msgid "Group separator used for monetary values." -msgstr "" +msgstr "Séparateur de groupe utilisé pour les valeurs monétaires." #: ../Doc/library/locale.rst:110 msgid "``'mon_grouping'``" @@ -209,7 +257,7 @@ msgstr "``'mon_grouping'``" #: ../Doc/library/locale.rst:110 msgid "Equivalent to ``'grouping'``, used for monetary values." -msgstr "" +msgstr "Équivalent de ``'grouping'``, utilisé pour les valeurs monétaires." #: ../Doc/library/locale.rst:113 msgid "``'positive_sign'``" @@ -217,7 +265,7 @@ msgstr "``'positive_sign'``" #: ../Doc/library/locale.rst:113 msgid "Symbol used to annotate a positive monetary value." -msgstr "" +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est positive." #: ../Doc/library/locale.rst:116 msgid "``'negative_sign'``" @@ -225,7 +273,7 @@ msgstr "``'negative_sign'``" #: ../Doc/library/locale.rst:116 msgid "Symbol used to annotate a negative monetary value." -msgstr "" +msgstr "Symbole utilisé pour indiquer qu'une valeur monétaire est négative." #: ../Doc/library/locale.rst:119 msgid "``'p_sign_posn/n_sign_posn'``" @@ -235,18 +283,24 @@ msgstr "``'p_sign_posn/n_sign_posn'``" msgid "" "The position of the sign (for positive resp. negative values), see below." msgstr "" +"Position du signe (pour les valeurs positives et négatives, respectivement), " +"voir ci-dessous." #: ../Doc/library/locale.rst:124 msgid "" "All numeric values can be set to :const:`CHAR_MAX` to indicate that there is " "no value specified in this locale." msgstr "" +"Toutes les valeurs numériques peuvent être définies à :const:`CHAR_MAX` pour " +"indiquer qu'il n'y a pas de valeur spécifiée pour ces paramètres régionaux." #: ../Doc/library/locale.rst:127 msgid "" "The possible values for ``'p_sign_posn'`` and ``'n_sign_posn'`` are given " "below." msgstr "" +"Les valeurs possibles pour ``'p_sign_posn'`` et ``'n_sign_posn'`` sont " +"données ci-dessous." #: ../Doc/library/locale.rst:130 msgid "Value" @@ -262,7 +316,7 @@ msgstr "``0``" #: ../Doc/library/locale.rst:132 msgid "Currency and value are surrounded by parentheses." -msgstr "" +msgstr "Le symbole monétaire et la valeur sont entourés de parenthèses." #: ../Doc/library/locale.rst:135 msgid "``1``" @@ -270,7 +324,7 @@ msgstr "``1``" #: ../Doc/library/locale.rst:135 msgid "The sign should precede the value and currency symbol." -msgstr "" +msgstr "Le signe doit précéder la valeur et le symbole monétaire." #: ../Doc/library/locale.rst:138 msgid "``2``" @@ -278,7 +332,7 @@ msgstr "``2``" #: ../Doc/library/locale.rst:138 msgid "The sign should follow the value and currency symbol." -msgstr "" +msgstr "Le signe doit suivre la valeur et le symbole monétaire." #: ../Doc/library/locale.rst:141 msgid "``3``" @@ -286,7 +340,7 @@ msgstr "``3``" #: ../Doc/library/locale.rst:141 msgid "The sign should immediately precede the value." -msgstr "" +msgstr "Le signe doit précéder immédiatement la valeur." #: ../Doc/library/locale.rst:144 msgid "``4``" @@ -294,7 +348,7 @@ msgstr "``4``" #: ../Doc/library/locale.rst:144 msgid "The sign should immediately follow the value." -msgstr "" +msgstr "Le signe doit suivre immédiatement la valeur." #: ../Doc/library/locale.rst:147 msgid "``CHAR_MAX``" @@ -302,7 +356,7 @@ msgstr "``CHAR_MAX``" #: ../Doc/library/locale.rst:147 msgid "Nothing is specified in this locale." -msgstr "" +msgstr "Rien n'est spécifié dans ces paramètres régionaux." #: ../Doc/library/locale.rst:150 msgid "" @@ -316,6 +370,8 @@ msgid "" "The function now sets temporarily the ``LC_CTYPE`` locale to the " "``LC_NUMERIC`` locale in some cases." msgstr "" +"La fonction définit maintenant la valeur du paramètre ``LC_CTYPE`` à celle " +"du paramètre ``LC_NUMERIC`` temporairement dans certains cas." #: ../Doc/library/locale.rst:161 msgid "" @@ -324,6 +380,11 @@ msgid "" "across platforms. The possible argument values are numbers, for which " "symbolic constants are available in the locale module." msgstr "" +"Renvoie quelques informations spécifiques aux paramètres régionaux sous " +"forme de chaîne. Cette fonction n'est pas disponible sur tous les systèmes " +"et l'ensemble des options possibles peut également varier d'une plateforme à " +"l'autre. Les valeurs possibles pour les arguments sont des nombres, pour " +"lesquels des constantes symboliques sont disponibles dans le module *locale*." #: ../Doc/library/locale.rst:166 msgid "" @@ -331,84 +392,114 @@ msgid "" "descriptions are taken from the corresponding description in the GNU C " "library." msgstr "" +"La fonction :func:`nl_langinfo` accepte l'une des clés suivantes. La " +"plupart des descriptions sont extraites des descriptions correspondantes " +"dans la bibliothèque GNU C." #: ../Doc/library/locale.rst:172 msgid "" "Get a string with the name of the character encoding used in the selected " "locale." msgstr "" +"Récupère une chaîne avec le nom de l'encodage des caractères utilisé par le " +"paramètre régional sélectionné." #: ../Doc/library/locale.rst:177 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent date and time in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter la date et l'heure pour un " +"paramètre régional spécifique." #: ../Doc/library/locale.rst:182 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a date in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une date pour un paramètre régional " +"spécifique." #: ../Doc/library/locale.rst:187 msgid "" "Get a string that can be used as a format string for :func:`time.strftime` " "to represent a time in a locale-specific way." msgstr "" +"Récupère une chaîne qui peut être utilisée comme une chaîne de format par :" +"func:`time.strftime` afin de représenter une heure pour un paramètre " +"régional spécifique." #: ../Doc/library/locale.rst:192 msgid "" "Get a format string for :func:`time.strftime` to represent time in the am/pm " "format." msgstr "" +"Récupère une chaîne de format pour :func:`time.strftime` afin de représenter " +"l'heure au format am / pm." #: ../Doc/library/locale.rst:197 msgid "Get the name of the n-th day of the week." -msgstr "" +msgstr "Récupère le nom du n-ième jour de la semaine." #: ../Doc/library/locale.rst:201 msgid "" "This follows the US convention of :const:`DAY_1` being Sunday, not the " "international convention (ISO 8601) that Monday is the first day of the week." msgstr "" +"Cela suit la convention américaine qui définit :const:`DAY_1` comme étant " +"dimanche, et non la convention internationale (ISO 8601) où lundi est le " +"premier jour de la semaine." #: ../Doc/library/locale.rst:207 msgid "Get the abbreviated name of the n-th day of the week." -msgstr "" +msgstr "Récupère l'abréviation du n-ième jour de la semaine." #: ../Doc/library/locale.rst:211 msgid "Get the name of the n-th month." -msgstr "" +msgstr "Récupère le nom du n-ième mois." #: ../Doc/library/locale.rst:215 msgid "Get the abbreviated name of the n-th month." -msgstr "" +msgstr "Récupère l'abréviation du n-ième mois." #: ../Doc/library/locale.rst:219 msgid "Get the radix character (decimal dot, decimal comma, etc.)." msgstr "" +"Récupère le caractère de séparation *radix* (point décimal, virgule " +"décimale, etc.)." #: ../Doc/library/locale.rst:223 msgid "Get the separator character for thousands (groups of three digits)." msgstr "" +"Récupère le caractère de séparation des milliers (groupes de 3 chiffres)." #: ../Doc/library/locale.rst:227 msgid "" "Get a regular expression that can be used with the regex function to " "recognize a positive response to a yes/no question." msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex* pour reconnaître une réponse positive à une question fermée (oui / " +"non)." #: ../Doc/library/locale.rst:232 msgid "" "The expression is in the syntax suitable for the :c:func:`regex` function " "from the C library, which might differ from the syntax used in :mod:`re`." msgstr "" +"L'expression est dans une syntaxe adaptée à la fonction :c:func:`regex` de " +"la bibliothèque C, qui peut différer de la syntaxe utilisée par :mod:`re`." #: ../Doc/library/locale.rst:237 msgid "" "Get a regular expression that can be used with the regex(3) function to " "recognize a negative response to a yes/no question." msgstr "" +"Récupère une expression régulière qui peut être utilisée par la fonction " +"*regex(3)* pour reconnaître une réponse négative à une question fermée " +"(oui / non)." #: ../Doc/library/locale.rst:242 msgid "" @@ -416,10 +507,15 @@ msgid "" "before the value, \"+\" if the symbol should appear after the value, or \"." "\" if the symbol should replace the radix character." msgstr "" +"Récupère le symbole monétaire, précédé de « - » si le symbole doit " +"apparaître avant la valeur, « + » s'il doit apparaître après la valeur, ou " +"« . » s'il doit remplacer le caractère de séparation *radix*." #: ../Doc/library/locale.rst:248 msgid "Get a string that represents the era used in the current locale." msgstr "" +"Récupère une chaîne qui représente l'ère utilisée pour le paramètre régional " +"actuel." #: ../Doc/library/locale.rst:250 msgid "" @@ -428,6 +524,10 @@ msgid "" "representation of dates includes the name of the era corresponding to the " "then-emperor's reign." msgstr "" +"La plupart des paramètres régionaux ne définissent pas cette valeur. Un " +"exemple de région qui définit bien cette valeur est le japonais. Au Japon, " +"la représentation traditionnelle des dates comprend le nom de l'ère " +"correspondant au règne de l'empereur de l'époque." #: ../Doc/library/locale.rst:255 msgid "" @@ -437,36 +537,51 @@ msgid "" "specified, and therefore you should not assume knowledge of it on different " "systems." msgstr "" +"Normalement, il ne devrait pas être nécessaire d'utiliser cette valeur " +"directement. Spécifier le modificateur ``E`` dans leurs chaînes de format " +"provoque l'utilisation de cette information par la fonction :func:`time." +"strftime`. Le format de la chaîne renvoyée n'est pas spécifié, et vous ne " +"devez donc pas supposer en avoir connaissance sur des systèmes différents." #: ../Doc/library/locale.rst:263 msgid "" "Get a format string for :func:`time.strftime` to represent date and time in " "a locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"la date et l'heure pour un paramètre régional spécifique basée sur une ère." #: ../Doc/library/locale.rst:268 msgid "" "Get a format string for :func:`time.strftime` to represent a date in a " "locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une date pour un paramètre régional spécifique basée sur une ère." #: ../Doc/library/locale.rst:273 msgid "" "Get a format string for :func:`time.strftime` to represent a time in a " "locale-specific era-based way." msgstr "" +"Récupère la chaîne de format pour :func:`time.strftime` afin de représenter " +"une heure pour un paramètre régional spécifique basée sur une ère." #: ../Doc/library/locale.rst:278 msgid "" "Get a representation of up to 100 values used to represent the values 0 to " "99." msgstr "" +"Récupère une représentation de 100 valeurs maximum utilisées pour " +"représenter les valeurs de 0 à 99." #: ../Doc/library/locale.rst:284 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." msgstr "" +"Tente de déterminer les paramètres régionaux par défaut, puis les renvoie " +"sous la forme d'un n-uplet ``(code de la langue, encodage)``." #: ../Doc/library/locale.rst:287 msgid "" @@ -476,6 +591,12 @@ msgid "" "Since we do not want to interfere with the current locale setting we thus " "emulate the behavior in the way described above." msgstr "" +"D'après POSIX, un programme qui n'a pas appelé ``setlocale(LC_ALL, '')`` " +"fonctionne en utilisant le paramètre régional portable ``'C'``. Appeler " +"``setlocale(LC_ALL, '')`` lui permet d'utiliser les paramètres régionaux par " +"défaut définis par la variable :envvar:`LANG`. Comme nous ne voulons pas " +"interférer avec les paramètres régionaux actuels, nous émulons donc le " +"comportement décrit ci-dessus." #: ../Doc/library/locale.rst:293 msgid "" @@ -486,6 +607,14 @@ msgid "" "``'LANG'``. The GNU gettext search path contains ``'LC_ALL'``, " "``'LC_CTYPE'``, ``'LANG'`` and ``'LANGUAGE'``, in that order." msgstr "" +"Afin de maintenir la compatibilité avec d'autres plateformes, non seulement " +"la variable :envvar:`LANG` est testée, mais c'est aussi le cas pour toute " +"une liste de variables passés en paramètre via *envvars*. La première " +"variable à être définie sera utilisée. *envvars* utilise par défaut le " +"chemin de recherche utilisé dans GNU *gettext* ; il doit toujours contenir " +"le nom de variable ``'LANG'``. Le chemin de recherche de GNU *gettext* " +"contient ``'LC_ALL'``, ``'LC_CTYPE'``, ``'LANG'`` et ``'LANGUAGE'``, dans " +"cet ordre." #: ../Doc/library/locale.rst:300 ../Doc/library/locale.rst:311 msgid "" @@ -493,6 +622,9 @@ msgid "" "*language code* and *encoding* may be ``None`` if their values cannot be " "determined." msgstr "" +"À l'exception du code ``'C'``, le code d'une langue correspond à la :rfc:" +"`1766`. Le *code de la langue* et l'*encodage* peuvent valoir ``None`` si " +"leur valeur ne peut être déterminée." #: ../Doc/library/locale.rst:307 msgid "" @@ -500,6 +632,11 @@ msgid "" "containing *language code*, *encoding*. *category* may be one of the :const:" "`LC_\\*` values except :const:`LC_ALL`. It defaults to :const:`LC_CTYPE`." msgstr "" +"Renvoie les réglages actuels pour la catégorie de paramètres régionaux " +"donnée, sous la forme d'une séquence contenant le *code de la langue* et " +"l'*encodage*. La catégorie *category* peut être l'une des valeurs :const:`LC_" +"\\*` à l'exception de :const:`LC_ALL`. La valeur par défaut est :const:" +"`LC_CTYPE`." #: ../Doc/library/locale.rst:318 msgid "" @@ -508,6 +645,11 @@ msgid "" "available programmatically on some systems, so this function only returns a " "guess." msgstr "" +"Renvoie le codage utilisé pour les données textuelles, selon les préférences " +"de l'utilisateur. Les préférences de l'utilisateur sont exprimées " +"différemment selon les systèmes et peuvent ne pas être disponibles via les " +"interfaces de programmation sur certains systèmes. Cette fonction ne renvoie " +"donc qu'une supposition." #: ../Doc/library/locale.rst:323 msgid "" @@ -515,18 +657,28 @@ msgid "" "user preferences, so this function is not thread-safe. If invoking setlocale " "is not necessary or desired, *do_setlocale* should be set to ``False``." msgstr "" +"Sur certains systèmes, il est nécessaire d'invoquer :func:`setlocale` pour " +"obtenir les préférences de l'utilisateur, cette fonction n'est donc pas " +"utilisable sans protection dans les programmes à fils d'exécutions " +"multiples. Si l'appel de `setlocale` n'est pas nécessaire ou souhaité, " +"*do_setlocale* doit être réglé à ``False``." #: ../Doc/library/locale.rst:327 msgid "" "On Android or in the UTF-8 mode (:option:`-X` ``utf8`` option), always " "return ``'UTF-8'``, the locale and the *do_setlocale* argument are ignored." msgstr "" +"Sur Android ou dans le mode UTF-8 (avec l'option :option:`-X` ``utf8``), " +"renvoie toujours ``'UTF-8'``, la locale et l'argument *do_setlocale* sont " +"ignorés." #: ../Doc/library/locale.rst:330 msgid "" "The function now always returns ``UTF-8`` on Android or if the UTF-8 mode is " "enabled." msgstr "" +"La fonction renvoie maintenant toujours ``UTF-8`` sur Android ou si le mode " +"UTF-8 est activé." #: ../Doc/library/locale.rst:337 msgid "" @@ -534,22 +686,31 @@ msgid "" "locale code is formatted for use with :func:`setlocale`. If normalization " "fails, the original name is returned unchanged." msgstr "" +"Renvoie un code normalisé pour le nom du paramètre régional fourni. Ce code " +"renvoyé est structuré de façon à être utilisé avec :func:`setlocale`. Si la " +"normalisation échoue, le nom d'origine est renvoyé inchangé." #: ../Doc/library/locale.rst:341 msgid "" "If the given encoding is not known, the function defaults to the default " "encoding for the locale code just like :func:`setlocale`." msgstr "" +"Si l'encodage donné n'est pas connu, la fonction utilise l'encodage par " +"défaut pour le code du paramètre régional, tout comme :func:`setlocale`." #: ../Doc/library/locale.rst:347 msgid "Sets the locale for *category* to the default setting." msgstr "" +"Définit le paramètre régional de la catégorie *category* au réglage par " +"défaut." #: ../Doc/library/locale.rst:349 msgid "" "The default setting is determined by calling :func:`getdefaultlocale`. " "*category* defaults to :const:`LC_ALL`." msgstr "" +"Le réglage par défaut est déterminé en appelant :func:`getdefaultlocale`. La " +"catégorie *category* vaut par défaut :const:`LC_ALL`." #: ../Doc/library/locale.rst:355 msgid "" @@ -558,6 +719,10 @@ msgid "" "``0``, depending on whether *string1* collates before or after *string2* or " "is equal to it." msgstr "" +"Compare deux chaînes en se basant sur le paramètre :const:`LC_COLLATE` " +"actuel. Comme toute autre fonction de comparaison, renvoie une valeur " +"négative, positive, ou ``0``, selon si *string1* est lexicographiquement " +"inférieure, supérieure, ou égale à *string2*." #: ../Doc/library/locale.rst:363 msgid "" @@ -566,6 +731,11 @@ msgid "" "s2) < 0``. This function can be used when the same string is compared " "repeatedly, e.g. when collating a sequence of strings." msgstr "" +"Transforme une chaîne de caractères en une chaîne qui peut être utilisée " +"dans les comparaisons sensibles aux paramètres régionaux. Par exemple, " +"``strxfrm(s1) < strxfrm(s2)`` est équivalent à ``strcoll(s1, s2) < 0``. " +"Cette fonction peut être utilisée lorsque la même chaîne est comparée de " +"façon répétitive, par exemple lors de l'assemblage d'une séquence de chaînes." #: ../Doc/library/locale.rst:372 msgid "" @@ -574,18 +744,26 @@ msgid "" "point values, the decimal point is modified if appropriate. If *grouping* " "is true, also takes the grouping into account." msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_NUMERIC` " +"actuel. Le format suit les conventions de l'opérateur ``%``. Pour les " +"valeurs à virgule flottante, le point décimal est modifié si nécessaire. Si " +"*grouping* est vrai, le regroupement est également pris en compte." #: ../Doc/library/locale.rst:377 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." msgstr "" +"Si *monetary* est vrai, la conversion utilise un séparateur des milliers " +"monétaire et des chaînes de regroupement." #: ../Doc/library/locale.rst:380 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." msgstr "" +"Traite les marqueurs de structure en ``format % val``, mais en prenant en " +"compte les paramètres régionaux actuels." #: ../Doc/library/locale.rst:383 msgid "The *monetary* keyword parameter was added." @@ -611,6 +789,8 @@ msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" +"Structure un nombre *val* en fonction du paramètre :const:`LC_MONETARY` " +"actuel." #: ../Doc/library/locale.rst:403 msgid "" @@ -619,36 +799,51 @@ msgid "" "is done with the value. If *international* is true (which is not the " "default), the international currency symbol is used." msgstr "" +"La chaîne renvoyée inclut le symbole monétaire si *symbol* est vrai, ce qui " +"est le cas par défaut. Si *grouping* est vrai (ce qui n'est pas le cas par " +"défaut), un regroupement est effectué avec la valeur. Si *international* est " +"vrai (ce qui n'est pas le cas par défaut), le symbole de la devise " +"internationale est utilisé." #: ../Doc/library/locale.rst:408 msgid "" "Note that this function will not work with the 'C' locale, so you have to " "set a locale via :func:`setlocale` first." msgstr "" +"Notez que cette fonction ne fonctionnera pas avec le paramètre régional 'C', " +"vous devez donc d'abord en définir un via :func:`setlocale`." #: ../Doc/library/locale.rst:414 msgid "" "Formats a floating point number using the same format as the built-in " "function ``str(float)``, but takes the decimal point into account." msgstr "" +"Structure un nombre flottant en utilisant le même format que la fonction " +"native ``str(float)``, mais en prenant en compte le point décimal." #: ../Doc/library/locale.rst:420 msgid "" "Converts a string into a normalized number string, following the :const:" "`LC_NUMERIC` settings." msgstr "" +"Convertit une chaîne de caractères en une chaîne de nombres normalisés, en " +"suivant les réglages :const:`LC_NUMERIC`." #: ../Doc/library/locale.rst:428 msgid "" "Converts a string to a floating point number, following the :const:" "`LC_NUMERIC` settings." msgstr "" +"Convertit une chaîne de caractères en nombre à virgule flottante, en suivant " +"les réglages :const:`LC_NUMERIC`." #: ../Doc/library/locale.rst:434 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." msgstr "" +"Convertit une chaîne de caractères en un entier, en suivant les réglages :" +"const:`LC_NUMERIC`." #: ../Doc/library/locale.rst:441 msgid "" @@ -656,24 +851,35 @@ msgid "" "of this category, the functions of module :mod:`string` dealing with case " "change their behaviour." msgstr "" +"Catégorie de paramètre régional pour les fonctions de type caractère. " +"Suivant les réglages de la catégorie, les fonctions du module :mod:`string` " +"gérant la casse peuvent changer leur comportement." #: ../Doc/library/locale.rst:448 msgid "" "Locale category for sorting strings. The functions :func:`strcoll` and :" "func:`strxfrm` of the :mod:`locale` module are affected." msgstr "" +"Catégorie de paramètre régional pour les tris de chaînes de caractères. Les " +"fonctions :func:`strcoll` et :func:`strxfrm` du module :mod:`locale` sont " +"concernées." #: ../Doc/library/locale.rst:454 msgid "" "Locale category for the formatting of time. The function :func:`time." "strftime` follows these conventions." msgstr "" +"Catégorie de paramètre régional pour la mise en forme de la date et de " +"l'heure. La fonction :func:`time.strftime` suit ces conventions." #: ../Doc/library/locale.rst:460 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." msgstr "" +"Catégorie de paramètre régional pour la mise en forme des valeurs " +"monétaires. Les options disponibles sont accessibles à partir de la " +"fonction :func:`localeconv`." #: ../Doc/library/locale.rst:466 msgid "" @@ -682,6 +888,11 @@ msgid "" "operating system, like those returned by :func:`os.strerror` might be " "affected by this category." msgstr "" +"Catégorie de paramètre régional pour l'affichage de messages. Actuellement, " +"Python ne gère pas les messages spécifiques aux applications qui sont " +"sensibles aux paramètres régionaux. Les messages affichés par le système " +"d'exploitation, comme ceux renvoyés par :func:`os.strerror` peuvent être " +"affectés par cette catégorie." #: ../Doc/library/locale.rst:474 msgid "" @@ -690,6 +901,10 @@ msgid "" "affected by that category. All other numeric formatting operations are not " "affected." msgstr "" +"Catégorie de paramètre régional pour la mise en forme des nombres. Les " +"fonctions :func:`.format`, :func:`atoi`, :func:`atof` et :func:`.str` du " +"module :mod:`locale` sont affectées par cette catégorie. Toutes les autres " +"opérations de mise en forme des nombres ne sont pas affectées." #: ../Doc/library/locale.rst:482 msgid "" @@ -700,12 +915,21 @@ msgid "" "categories is returned. This string can be later used to restore the " "settings." msgstr "" +"Combinaison de tous les paramètres régionaux. Si cette option est utilisée " +"lors du changement de paramètres régionaux, la définition de ces paramètres " +"pour toutes les catégories est tentée. Si cela échoue pour n'importe quelle " +"catégorie, aucune d'entre elles n'est modifiée. Lorsque les paramètres " +"régionaux sont récupérés à l'aide de cette option, une chaîne de caractères " +"indiquant le réglage pour toutes les catégories est renvoyée. Cette chaîne " +"peut alors être utilisée plus tard pour restaurer les paramètres d'origine." #: ../Doc/library/locale.rst:491 msgid "" "This is a symbolic constant used for different values returned by :func:" "`localeconv`." msgstr "" +"Ceci est une constante symbolique utilisée pour différentes valeurs " +"renvoyées par :func:`localeconv`." #: ../Doc/library/locale.rst:495 msgid "Example::" @@ -713,7 +937,7 @@ msgstr "Exemple ::" #: ../Doc/library/locale.rst:508 msgid "Background, details, hints, tips and caveats" -msgstr "" +msgstr "Contexte, détails, conseils, astuces et mises en garde" #: ../Doc/library/locale.rst:510 msgid "" @@ -722,6 +946,11 @@ msgid "" "broken in such a way that frequent locale changes may cause core dumps. " "This makes the locale somewhat painful to use correctly." msgstr "" +"La norme C définie les paramètres régionaux comme une propriété à l'échelle " +"d'un programme, qui peut être relativement coûteuse à changer. En plus de " +"cela, certaines implémentations ne fonctionnent pas car des changements " +"fréquents de paramètres régionaux peuvent causer des *core dumps*. Cela " +"rend l'utilisation correcte de ces paramètres quelque peu pénible." #: ../Doc/library/locale.rst:515 msgid "" @@ -732,6 +961,13 @@ msgid "" "explicitly say that it wants the user's preferred locale settings for other " "categories by calling ``setlocale(LC_ALL, '')``." msgstr "" +"Initialement, lorsqu'un programme est démarré, les paramètres régionaux " +"``C`` sont utilisés, peu importe les réglages de l'utilisateur. Il y a " +"toutefois une exception : la catégorie :data:`LC_CTYPE` est modifiée au " +"démarrage pour définir l'encodage des paramètres régionaux actuels comme " +"celui défini par l'utilisateur. Le programme doit explicitement dire qu'il " +"veut utiliser les réglages de l'utilisateur pour les autres catégories, en " +"appelant ``setlocale(LC_ALL, '')``." #: ../Doc/library/locale.rst:522 msgid "" @@ -740,6 +976,11 @@ msgid "" "restoring it is almost as bad: it is expensive and affects other threads " "that happen to run before the settings have been restored." msgstr "" +"C'est généralement une mauvaise idée d'appeler :func:`setlocale` dans une " +"routine de bibliothèque car cela a pour effet secondaire d'affecter le " +"programme entier. Sauvegarder et restaurer les paramètres est presque aussi " +"mauvais : c'est coûteux et cela affecte d'autres fils d'exécutions qui " +"s'exécutent avant que les paramètres n'aient été restaurés." #: ../Doc/library/locale.rst:527 msgid "" @@ -751,6 +992,14 @@ msgid "" "you document that your module is not compatible with non-\\ ``C`` locale " "settings." msgstr "" +"Si, lors du développement d'un module à usage général, vous avez besoin " +"d'une version indépendante des paramètres régionaux pour une opération y " +"étant sensible (comme c'est le cas pour certains formats utilisés avec :func:" +"`time.strftime`), vous devez trouver un moyen de le faire sans utiliser la " +"routine de la bibliothèque standard. Le mieux est encore de se convaincre " +"que l'usage des paramètres régionaux est une bonne chose. Ce n'est qu'en " +"dernier recours que vous devez documenter que votre module n'est pas " +"compatible avec les réglages du paramètre régional ``C``." #: ../Doc/library/locale.rst:534 msgid "" @@ -758,6 +1007,9 @@ msgid "" "the special functions defined by this module: :func:`atof`, :func:`atoi`, :" "func:`.format`, :func:`.str`." msgstr "" +"La seule façon d'effectuer des opérations numériques conformément aux " +"paramètres régionaux est d'utiliser les fonctions spéciales définies par ce " +"module : :func:`atof`, :func:`atoi`, :func:`.format`, :func:`.str`." #: ../Doc/library/locale.rst:538 msgid "" @@ -769,10 +1021,18 @@ msgid "" "converted or considered part of a character class such as letter or " "whitespace." msgstr "" +"Il n'y a aucun moyen d'effectuer des conversions de casse et des " +"classifications de caractères en fonction des paramètres régionaux. Pour " +"les chaînes de caractères (Unicode), celles-ci se font uniquement en " +"fonction de la valeur du caractère, tandis que pour les chaînes d'octets, " +"les conversions et les classifications se font en fonction de la valeur " +"ASCII de l'octet, et les octets dont le bit de poids fort est à 1 (c'est-à-" +"dire les octets non ASCII) ne sont jamais convertis ou considérés comme " +"faisant partie d'une classe de caractères comme une lettre ou une espace." #: ../Doc/library/locale.rst:549 msgid "For extension writers and programs that embed Python" -msgstr "" +msgstr "Pour les auteurs d'extensions et les programmes qui intègrent Python" #: ../Doc/library/locale.rst:551 msgid "" @@ -781,6 +1041,10 @@ msgid "" "portably to restore it, that is not very useful (except perhaps to find out " "whether or not the locale is ``C``)." msgstr "" +"Les modules d'extensions ne devraient jamais appeler :func:`setlocale`, sauf " +"pour connaître le paramètre régional actuel. Mais comme la valeur renvoyée " +"ne peut être utilisée que pour le restaurer, ce n'est pas très utile (sauf " +"peut-être pour savoir si le paramètre régional est défini à ``C`` ou non)." #: ../Doc/library/locale.rst:556 msgid "" @@ -791,10 +1055,17 @@ msgid "" "file:`config.c` file, and make sure that the :mod:`_locale` module is not " "accessible as a shared library." msgstr "" +"Lorsque le code Python utilise le module :mod:`locale` pour changer le " +"paramètre régional, cela affecte également l'application intégrée. Si " +"l'application intégrée ne souhaite pas que cela se produise, elle doit " +"supprimer le module d'extension :mod:`_locale` (qui fait tout le travail) de " +"la table des modules natifs se trouvant dans le fichier :file:`config.c`, et " +"s'assurer que le module :mod:`_locale` n'est pas accessible en tant que " +"bibliothèque partagée." #: ../Doc/library/locale.rst:567 msgid "Access to message catalogs" -msgstr "" +msgstr "Accéder aux catalogues de messages" #: ../Doc/library/locale.rst:575 msgid "" @@ -806,6 +1077,12 @@ msgid "" "binary format for message catalogs, and the C library's search algorithms " "for locating message catalogs." msgstr "" +"Le module *locale* expose l'interface *gettext* de la bibliothèque C sur les " +"systèmes qui fournissent cette interface. Il se compose des fonctions :func:" +"`!gettext`, :func:`!dgettext`, :func:`!dcgettext`, :func:`!textdomain`, :" +"func:`!bindtextdomain` et :func:`!bind_textdomain_codeset`. Elles sont " +"similaires aux fonctions du module :mod:`gettext`, mais utilisent le format " +"binaire de la bibliothèque C pour les catalogues de messages." #: ../Doc/library/locale.rst:582 msgid "" @@ -816,3 +1093,10 @@ msgid "" "necessary to bind the text domain, so that the libraries can properly locate " "their message catalogs." msgstr "" +"Les applications Python ne devraient normalement pas avoir besoin de faire " +"appel à ces fonctions, mais devraient plutôt utiliser :mod:`gettext`. Une " +"exception connue pour cette règle concerne les applications qui sont liées " +"avec des bibliothèques C supplémentaires faisant appel à :c:func:`gettext` " +"ou :c:func:`dcgettext`. Pour ces applications, il peut être nécessaire de " +"lier le domaine du texte, afin que les bibliothèques puissent régionaliser " +"correctement leurs catalogues de messages." diff --git a/library/logging.config.po b/library/logging.config.po index cfbe26559..3e275727e 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -26,18 +26,20 @@ msgstr "" msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.config.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.config.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.config.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.config.rst:23 msgid "This section describes the API for configuring the logging module." @@ -135,7 +137,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.config.rst:90 msgid "" @@ -555,7 +557,7 @@ msgstr "" #: ../Doc/library/logging.config.rst:453 msgid "and::" -msgstr "et  ::" +msgstr "et ::" #: ../Doc/library/logging.config.rst:460 msgid "" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 1bf114be9..4da950d1c 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -16,28 +16,30 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:2 msgid ":mod:`logging.handlers` --- Logging handlers" -msgstr "" +msgstr ":mod:`logging.handlers` — Gestionnaires de journalisation" #: ../Doc/library/logging.handlers.rst:10 msgid "**Source code:** :source:`Lib/logging/handlers.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/handlers.py`" #: ../Doc/library/logging.handlers.rst:14 msgid "" "This page contains only reference information. For tutorials, please see" msgstr "" +"Cette page contient uniquement des informations de référence. Pour des " +"tutoriels, veuillez consulter" #: ../Doc/library/logging.handlers.rst:17 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.handlers.rst:18 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.handlers.rst:19 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.handlers.rst:25 msgid "" @@ -46,10 +48,15 @@ msgid "" "`NullHandler`) are actually defined in the :mod:`logging` module itself, but " "have been documented here along with the other handlers." msgstr "" +"Les gestionnaires suivants, très utiles, sont fournis dans le paquet. Notez " +"que trois des gestionnaires (:class:`StreamHandler`, :class:`FileHandler` " +"et :class:`NullHandler`) sont en réalité définis dans le module :mod:" +"`logging` lui-même, mais qu’ils sont documentés ici avec les autres " +"gestionnaires." #: ../Doc/library/logging.handlers.rst:33 msgid "StreamHandler" -msgstr "" +msgstr "Gestionnaire à flux — *StreamHandler*" #: ../Doc/library/logging.handlers.rst:35 msgid "" @@ -58,6 +65,10 @@ msgid "" "or any file-like object (or, more precisely, any object which supports :meth:" "`write` and :meth:`flush` methods)." msgstr "" +"La classe :class:`StreamHandler`, du paquet :mod:`logging`, envoie les " +"sorties de journalisation dans des flux tels que *sys.stdout*, *sys.stderr* " +"ou n’importe quel objet fichier-compatible (ou, plus précisément, tout objet " +"qui gère les méthodes :meth:`write` et :meth:`flush`)." #: ../Doc/library/logging.handlers.rst:43 msgid "" @@ -65,6 +76,9 @@ msgid "" "specified, the instance will use it for logging output; otherwise, *sys." "stderr* will be used." msgstr "" +"Renvoie une nouvelle instance de la classe :class:`StreamHandler`. Si " +"*stream* est spécifié, l’instance l’utilise pour les sorties de " +"journalisation ; autrement elle utilise *sys.stderr*." #: ../Doc/library/logging.handlers.rst:50 msgid "" @@ -80,28 +94,34 @@ msgid "" "`close` method is inherited from :class:`~logging.Handler` and so does no " "output, so an explicit :meth:`flush` call may be needed at times." msgstr "" +"Purge le flux en appelant sa méthode :meth:`flush`. Notez que la méthode :" +"meth:`close` est héritée de :class:`~logging.Handler` donc elle n'écrit " +"rien. Par conséquent, un appel explicite à :meth:`flush` peut parfois " +"s'avérer nécessaire." #: ../Doc/library/logging.handlers.rst:64 msgid "" "Sets the instance's stream to the specified value, if it is different. The " "old stream is flushed before the new stream is set." msgstr "" +"Définit le flux de l’instance à la valeur spécifiée, si elle est différente. " +"L’ancien flux est purgé avant que le nouveau flux ne soit établi." #: ../Doc/library/logging.handlers.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.handlers.rst:67 msgid "The stream that the handler should use." -msgstr "" +msgstr "Le flux que le gestionnaire doit utiliser." #: ../Doc/library/logging.handlers.rst:0 msgid "Returns" -msgstr "" +msgstr "Renvoie" #: ../Doc/library/logging.handlers.rst:69 msgid "the old stream, if the stream was changed, or *None* if it wasn't." -msgstr "" +msgstr "l’ancien flux, si le flux a été changé, ou *None* s’il ne l’a pas été." #: ../Doc/library/logging.handlers.rst:74 msgid "" @@ -114,7 +134,7 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:85 msgid "FileHandler" -msgstr "" +msgstr "Gestionnaire à fichier — *FileHandler*" #: ../Doc/library/logging.handlers.rst:87 msgid "" @@ -122,6 +142,9 @@ msgid "" "sends logging output to a disk file. It inherits the output functionality " "from :class:`StreamHandler`." msgstr "" +"La classe :class:`FileHandler`, du paquet :mod:`logging`, envoie les sorties " +"de journalisation dans un fichier. Elle hérite des fonctionnalités de sortie " +"de :class:`StreamHandler`." #: ../Doc/library/logging.handlers.rst:94 msgid "" @@ -141,18 +164,20 @@ msgid "" "As well as string values, :class:`~pathlib.Path` objects are also accepted " "for the *filename* argument." msgstr "" +"L'argument *filename* accepte les objets :class:`~pathlib.Path` aussi bien " +"que les chaînes de caractères." #: ../Doc/library/logging.handlers.rst:106 msgid "Closes the file." -msgstr "" +msgstr "Ferme le fichier." #: ../Doc/library/logging.handlers.rst:111 msgid "Outputs the record to the file." -msgstr "" +msgstr "Écrit l’enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:117 msgid "NullHandler" -msgstr "" +msgstr "Gestionnaire à puits sans fond — *NullHandler*" #: ../Doc/library/logging.handlers.rst:121 msgid "" @@ -160,31 +185,38 @@ msgid "" "does not do any formatting or output. It is essentially a 'no-op' handler " "for use by library developers." msgstr "" +"La classe :class:`NullHandler`, située dans le paquet principal :mod:" +"`logging`, ne produit aucun formatage ni sortie. C’est 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é qu’il n’y a aucun " +"flux d'entrée-sortie sous-jacent dont l’accès doit être sérialisé." #: ../Doc/library/logging.handlers.rst:143 msgid "" "See :ref:`library-config` for more information on how to use :class:" "`NullHandler`." msgstr "" +"Voir :ref:`library-config` pour plus d’information sur l'utilisation de :" +"class:`NullHandler`." #: ../Doc/library/logging.handlers.rst:149 msgid "WatchedFileHandler" -msgstr "" +msgstr "Gestionnaire à fichier avec surveillance — *WatchedFileHandler*" #: ../Doc/library/logging.handlers.rst:153 msgid "" @@ -193,6 +225,10 @@ msgid "" "logging to. If the file changes, it is closed and reopened using the file " "name." msgstr "" +"La classe :class:`WatchedFileHandler`, située dans le module :mod:`logging." +"handlers`, est un :class:`FileHandler` qui surveille le fichier dans lequel " +"il journalise. Si le fichier change, il est fermé et rouvert en utilisant le " +"nom du fichier." #: ../Doc/library/logging.handlers.rst:157 msgid "" @@ -203,6 +239,14 @@ msgid "" "changed.) If the file has changed, the old file stream is closed, and the " "file opened to get a new stream." msgstr "" +"Un changement du fichier peut arriver à cause de l’utilisation de programmes " +"tels que *newsyslog* ou *logrotate* qui assurent le roulement des fichiers " +"de journalisation. Ce gestionnaire, destiné à une utilisation sous Unix/" +"Linux, surveille le fichier pour voir s’il a changé depuis la dernière " +"écriture (un fichier est réputé avoir changé si son nœud d’index ou le " +"périphérique auquel il est rattaché a changé). Si le fichier a changé, " +"l’ancien flux vers ce fichier est fermé, et le fichier est ouvert pour " +"établir un nouveau flux." #: ../Doc/library/logging.handlers.rst:164 msgid "" @@ -212,6 +256,12 @@ msgid "" "*ST_INO* is not supported under Windows; :func:`~os.stat` always returns " "zero for this value." msgstr "" +"Ce gestionnaire n’est pas approprié pour une utilisation sous *Windows*, car " +"sous *Windows* les fichiers de journalisation ouverts ne peuvent être ni " +"déplacés, ni renommés — la journalisation ouvre les fichiers avec des " +"verrous exclusifs — de telle sorte qu’il n’y a pas besoin d’un tel " +"gestionnaire. En outre, *ST_INO* n’est pas géré par *Windows* ; :func:`~os." +"stat` renvoie toujours zéro pour cette valeur." #: ../Doc/library/logging.handlers.rst:173 msgid "" @@ -229,16 +279,21 @@ msgid "" "flushed and closed and the file opened again, typically as a precursor to " "outputting the record to the file." msgstr "" +"Vérifie si le fichier a changé. Si c’est le cas, le flux existant est purgé " +"et fermé et le fichier est rouvert, généralement avant d'effectuer " +"l’écriture de l'enregistrement dans le fichier." #: ../Doc/library/logging.handlers.rst:194 msgid "" "Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to " "reopen the file if it has changed." msgstr "" +"Écrit l’enregistrement dans le fichier, mais appelle d’abord :meth:" +"`reopenIfNeeded` pour rouvrir le fichier s’il a changé." #: ../Doc/library/logging.handlers.rst:200 msgid "BaseRotatingHandler" -msgstr "" +msgstr "Base des gestionnaires à roulement *BaseRotatingHandler*" #: ../Doc/library/logging.handlers.rst:202 msgid "" @@ -248,10 +303,17 @@ msgid "" "need to instantiate this class, but it has attributes and methods you may " "need to override." msgstr "" +"La classe :class:`BaseRotatingHandler`, située dans le module :mod:`logging." +"handlers`, est la classe de base pour les gestionnaires à roulement, :class:" +"`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Vous ne devez " +"pas initialiser cette classe, mais elle a des attributs et des méthodes que " +"vous devrez peut-être surcharger." #: ../Doc/library/logging.handlers.rst:210 msgid "The parameters are as for :class:`FileHandler`. The attributes are:" msgstr "" +"Les paramètres sont les mêmes que pour :class:`FileHandler`. Les attributs " +"sont :" #: ../Doc/library/logging.handlers.rst:214 msgid "" @@ -259,6 +321,9 @@ msgid "" "delegates to this callable. The parameters passed to the callable are those " "passed to :meth:`rotation_filename`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, la méthode :meth:" +"`rotation_filename` se rapporte à cet appelable. Les paramètres passés à " +"l’appelable sont ceux passés à :meth:`rotation_filename`." #: ../Doc/library/logging.handlers.rst:218 msgid "" @@ -267,6 +332,10 @@ msgid "" "every time for a given input, otherwise the rollover behaviour may not work " "as expected." msgstr "" +"La fonction *namer* est appelée pas mal de fois durant le roulement, de " +"telle sorte qu’elle doit être aussi simple et rapide que possible. Elle doit " +"aussi renvoyer toujours la même sortie pour une entrée donnée, autrement le " +"comportement du roulement pourrait être différent de celui attendu." #: ../Doc/library/logging.handlers.rst:228 msgid "" @@ -274,14 +343,18 @@ msgid "" "to this callable. The parameters passed to the callable are those passed " "to :meth:`rotate`." msgstr "" +"Si cet attribut est défini en tant qu’appelable, cet appelable se substitue " +"à la méthode :meth:`rotate`. Les paramètres passés à l’appelable sont ceux " +"passés à :meth:`rotate`." #: ../Doc/library/logging.handlers.rst:236 msgid "Modify the filename of a log file when rotating." msgstr "" +"Modifie le nom du fichier d’un fichier de journalisation lors du roulement." #: ../Doc/library/logging.handlers.rst:238 msgid "This is provided so that a custom filename can be provided." -msgstr "" +msgstr "Cette méthode sert à pouvoir produire un nom de fichier personnalisé." #: ../Doc/library/logging.handlers.rst:240 msgid "" @@ -289,14 +362,17 @@ msgid "" "it's callable, passing the default name to it. If the attribute isn't " "callable (the default is ``None``), the name is returned unchanged." msgstr "" +"L’implémentation par défaut appelle l’attribut *namer* du gestionnaire, si " +"c’est un appelable, lui passant le nom par défaut. Si l’attribut n’est pas " +"un appelable (le défaut est ``None``), le nom est renvoyé tel quel." #: ../Doc/library/logging.handlers.rst:244 msgid "The default name for the log file." -msgstr "" +msgstr "Le nom par défaut du fichier de journalisation." #: ../Doc/library/logging.handlers.rst:251 msgid "When rotating, rotate the current log." -msgstr "" +msgstr "Lors du roulement, effectue le roulement du journal courant." #: ../Doc/library/logging.handlers.rst:253 msgid "" @@ -305,17 +381,25 @@ msgid "" "isn't callable (the default is ``None``), the source is simply renamed to " "the destination." msgstr "" +"L’implémentation par défaut appelle l’attribut *rotator* du gestionnaire, si " +"c’est un appelable, lui passant les arguments *source* et *dest*. Si " +"l’attribut n’est pas un appelable (le défaut est ``None``), le nom de la " +"source est simplement renommé avec la destination." #: ../Doc/library/logging.handlers.rst:258 msgid "" "The source filename. This is normally the base filename, e.g. 'test.log'." msgstr "" +"Le nom du fichier source. Il s’agit normalement du nom du fichier, par " +"exemple ``\"test.log\"``." #: ../Doc/library/logging.handlers.rst: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 s’agit normalement du nom donné à la " +"source après le roulement, par exemple ``\"test.log.1\"``." #: ../Doc/library/logging.handlers.rst:265 msgid "" @@ -326,26 +410,36 @@ msgid "" "exception during an :meth:`emit` call, i.e. via the :meth:`handleError` " "method of the handler." msgstr "" +"La raison d’être de ces attributs est de vous épargner la création d’une " +"sous-classe — vous pouvez utiliser les mêmes appels pour des instances de :" +"class:`RotatingFileHandler` et :class:`TimedRotatingFileHandler`. Si le " +"*namer* ou le *rotator* appelable lève une exception, ce sera géré de la " +"même manière que n’importe quelle exception durant un appel :meth:`emit`, " +"c'est-à-dire par la méthode :meth:`handleError` du gestionnaire." #: ../Doc/library/logging.handlers.rst: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 d’importantes modifications au processus de " +"roulement, surchargez les méthodes." #: ../Doc/library/logging.handlers.rst:275 msgid "For an example, see :ref:`cookbook-rotator-namer`." -msgstr "" +msgstr "Pour un exemple, voir :ref:`cookbook-rotator-namer`." #: ../Doc/library/logging.handlers.rst:281 msgid "RotatingFileHandler" -msgstr "" +msgstr "Gestionnaire à roulement de fichiers — *RotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:283 msgid "" "The :class:`RotatingFileHandler` class, located in the :mod:`logging." "handlers` module, supports rotation of disk log files." msgstr "" +"La classe :class:`RotatingFileHandler`, située dans le module :mod:`logging." +"handlers`, gère le roulement des fichiers de journalisation sur disque." #: ../Doc/library/logging.handlers.rst:289 msgid "" @@ -374,21 +468,41 @@ msgid "" "log.1`, and if files :file:`app.log.1`, :file:`app.log.2`, etc. exist, then " "they are renamed to :file:`app.log.2`, :file:`app.log.3` etc. respectively." msgstr "" +"Utilisez les valeurs *maxBytes* et *backupCount* pour autoriser le roulement " +"du fichier (:dfn:`rollover`) à une taille prédéterminée. Quand la taille " +"limite est sur le point d’être dépassée, le fichier est fermé et un nouveau " +"fichier est discrètement ouvert en tant que sortie. Un roulement se produit " +"dès que le fichier de journalisation actuel atteint presque une taille de " +"*maxBytes* ; si *maxBytes* ou *backupCount* est à 0, le roulement ne se " +"produit jamais, donc en temps normal il convient de définir *backupCount* à " +"au moins 1, et avoir une valeur de *maxBytes* non nulle. Quand *backupCount* " +"est non nul, le système sauvegarde les anciens fichiers de journalisation en " +"leur ajoutant au nom du fichier, les suffixes ``\".1\"``, ``\".2\"`` et " +"ainsi de suite. Par exemple, avec un *backupCount* de 5 et :file:`app.log` " +"comme radical du fichier, vous obtiendrez :file:`app.log`, :file:`app." +"log.1`, :file:`app.log.2`, jusqu’à :file:`app.log.5`. Le fichier dans lequel " +"on écrit est toujours :file:`app.log`. Quand ce fichier est rempli, il est " +"fermé et renommé en :file:`app.log.1`, et si les fichiers :file:`app." +"log.1`, :file:`app.log.2`, etc. existent, alors ils sont renommés " +"respectivement en :file:`app.log.2`, :file:`app.log.3` etc." #: ../Doc/library/logging.handlers.rst:316 #: ../Doc/library/logging.handlers.rst:416 msgid "Does a rollover, as described above." -msgstr "" +msgstr "Effectue un roulement, comme décrit au-dessus." #: ../Doc/library/logging.handlers.rst:321 msgid "" "Outputs the record to the file, catering for rollover as described " "previously." msgstr "" +"Écrit l'enregistrement dans le fichier, effectuant un roulement au besoin " +"comme décrit précédemment." #: ../Doc/library/logging.handlers.rst:327 msgid "TimedRotatingFileHandler" msgstr "" +"Gestionnaire à roulement de fichiers périodique — *TimedRotatingFileHandler*" #: ../Doc/library/logging.handlers.rst:329 msgid "" @@ -396,6 +510,9 @@ msgid "" "handlers` module, supports rotation of disk log files at certain timed " "intervals." msgstr "" +"La classe :class:`TimedRotatingFileHandler`, située dans le module :mod:" +"`logging.handlers`, gère le roulement des fichiers de journalisation sur le " +"disque à un intervalle de temps spécifié." #: ../Doc/library/logging.handlers.rst:336 msgid "" @@ -404,12 +521,19 @@ msgid "" "also sets the filename suffix. Rotating happens based on the product of " "*when* and *interval*." msgstr "" +"Renvoie une nouvelle instance de la classe :class:" +"`TimedRotatingFileHandler`. Le fichier spécifié est ouvert et utilisé en " +"tant que flux de sortie pour la journalisation. Au moment du roulement, il " +"met également à jour le suffixe du nom du fichier. Le roulement se produit " +"sur la base combinée de *when* et *interval*." #: ../Doc/library/logging.handlers.rst:341 msgid "" "You can use the *when* to specify the type of *interval*. The list of " "possible values is below. Note that they are not case sensitive." msgstr "" +"Utilisez le *when* pour spécifier le type de l’*interval*. La liste des " +"valeurs possibles est ci-dessous. Notez qu’elles sont sensibles à la casse." #: ../Doc/library/logging.handlers.rst:345 msgid "Value" @@ -417,11 +541,11 @@ msgstr "Valeur" #: ../Doc/library/logging.handlers.rst:345 msgid "Type of interval" -msgstr "" +msgstr "Type d’intervalle" #: ../Doc/library/logging.handlers.rst:345 msgid "If/how *atTime* is used" -msgstr "" +msgstr "Si/comment *atTime* est utilisé" #: ../Doc/library/logging.handlers.rst:347 msgid "``'S'``" @@ -429,7 +553,7 @@ msgstr "``'S'``" #: ../Doc/library/logging.handlers.rst:347 msgid "Seconds" -msgstr "" +msgstr "Secondes" #: ../Doc/library/logging.handlers.rst:347 #: ../Doc/library/logging.handlers.rst:349 @@ -444,7 +568,7 @@ msgstr "``'M'``" #: ../Doc/library/logging.handlers.rst:349 msgid "Minutes" -msgstr "" +msgstr "Minutes" #: ../Doc/library/logging.handlers.rst:351 msgid "``'H'``" @@ -452,7 +576,7 @@ msgstr "``'H'``" #: ../Doc/library/logging.handlers.rst:351 msgid "Hours" -msgstr "" +msgstr "Heures" #: ../Doc/library/logging.handlers.rst:353 msgid "``'D'``" @@ -460,7 +584,7 @@ msgstr "``'D'``" #: ../Doc/library/logging.handlers.rst:353 msgid "Days" -msgstr "" +msgstr "Jours" #: ../Doc/library/logging.handlers.rst:355 msgid "``'W0'-'W6'``" @@ -468,12 +592,12 @@ msgstr "``'W0'-'W6'``" #: ../Doc/library/logging.handlers.rst:355 msgid "Weekday (0=Monday)" -msgstr "" +msgstr "Jour de la semaine (0=lundi)" #: ../Doc/library/logging.handlers.rst:355 #: ../Doc/library/logging.handlers.rst:358 msgid "Used to compute initial rollover time" -msgstr "" +msgstr "Utilisé pour calculer le moment du roulement" #: ../Doc/library/logging.handlers.rst:358 msgid "``'midnight'``" @@ -482,6 +606,8 @@ msgstr "``'midnight'``" #: ../Doc/library/logging.handlers.rst:358 msgid "Roll over at midnight, if *atTime* not specified, else at time *atTime*" msgstr "" +"Roulement du fichier à minuit, si *atTime* n’est pas spécifié, sinon à " +"l’heure *atTime*" #: ../Doc/library/logging.handlers.rst:363 msgid "" @@ -489,6 +615,10 @@ msgid "" "Tuesday, and so on up to 'W6' for Sunday. In this case, the value passed for " "*interval* isn't used." msgstr "" +"Lors de l’utilisation d’un roulement basé sur les jours de la semaine, " +"définir *W0* pour lundi, *W1* pour mardi, et ainsi de suite jusqu’à *W6* " +"pour dimanche. Dans ce cas, la valeur indiquée pour *interval* n’est pas " +"utilisée." #: ../Doc/library/logging.handlers.rst:367 msgid "" @@ -496,6 +626,10 @@ msgid "" "The extensions are date-and-time based, using the strftime format ``%Y-%m-%d_" "%H-%M-%S`` or a leading portion thereof, depending on the rollover interval." msgstr "" +"Le système sauvegarde les anciens fichiers de journalisation en ajoutant une " +"extension au nom du fichier. Les extensions sont basées sur la date et " +"l’heure, en utilisation le format *strftime* ``%Y-%m-%d_%H-%M-%S`` ou le " +"début de celui-ci, selon l’intervalle du roulement." #: ../Doc/library/logging.handlers.rst:372 msgid "" @@ -503,6 +637,10 @@ msgid "" "is created), the last modification time of an existing log file, or else the " "current time, is used to compute when the next rotation will occur." msgstr "" +"Lors du premier calcul du roulement suivant (quand le gestionnaire est " +"créé), la dernière date de modification d’un fichier de journalisation " +"existant, ou sinon la date actuelle, est utilisée pour calculer la date du " +"prochain roulement." #: ../Doc/library/logging.handlers.rst:376 msgid "" diff --git a/library/logging.po b/library/logging.po index 726130c4f..b52217a30 100644 --- a/library/logging.po +++ b/library/logging.po @@ -17,35 +17,40 @@ msgstr "" #: ../Doc/library/logging.rst:2 msgid ":mod:`logging` --- Logging facility for Python" -msgstr "" +msgstr ":mod:`logging` — Fonctionnalités de journalisation pour Python" #: ../Doc/library/logging.rst:10 msgid "**Source code:** :source:`Lib/logging/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/logging/__init__.py`" #: ../Doc/library/logging.rst:16 msgid "" "This page contains the API reference information. For tutorial information " "and discussion of more advanced topics, see" msgstr "" +"Cette page contient les informations de référence de l’API. Pour des " +"tutoriels et des discussions sur des sujets plus avancés, voir" #: ../Doc/library/logging.rst:19 msgid ":ref:`Basic Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel basique `" #: ../Doc/library/logging.rst:20 msgid ":ref:`Advanced Tutorial `" -msgstr "" +msgstr ":ref:`Tutoriel avancé `" #: ../Doc/library/logging.rst:21 msgid ":ref:`Logging Cookbook `" -msgstr "" +msgstr ":ref:`Recettes pour la journalisation `" #: ../Doc/library/logging.rst:25 msgid "" "This module defines functions and classes which implement a flexible event " "logging system for applications and libraries." msgstr "" +"Ce module définit les fonctions et les classes qui mettent en œuvre un " +"système flexible d’enregistrement des événements pour les applications et " +"les bibliothèques." #: ../Doc/library/logging.rst:28 msgid "" @@ -54,6 +59,10 @@ msgid "" "application log can include your own messages integrated with messages from " "third-party modules." msgstr "" +"Le principal avantage de l’API de journalisation fournie par un module de " +"bibliothèque standard est que tous les modules Python peuvent participer à " +"la journalisation, de sorte que le journal de votre application peut inclure " +"vos propres messages intégrés aux messages de modules tiers." #: ../Doc/library/logging.rst:33 msgid "" @@ -61,12 +70,17 @@ msgid "" "unfamiliar with logging, the best way to get to grips with it is to see the " "tutorials (see the links on the right)." msgstr "" +"Le module offre beaucoup de fonctionnalités et de flexibilité. Si vous " +"n’êtes pas familiarisé avec la journalisation, la meilleure façon de vous y " +"familiariser est de consulter les tutoriels (voir les liens à droite)." #: ../Doc/library/logging.rst:37 msgid "" "The basic classes defined by the module, together with their functions, are " "listed below." msgstr "" +"Les classes de base définies par le module, ainsi que leurs fonctions, sont " +"énumérées ci-dessous." #: ../Doc/library/logging.rst:40 msgid "Loggers expose the interface that application code directly uses." @@ -79,7 +93,7 @@ msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" -"Les gestionnaires (*handlers*) envoient les entrées de journal (crées par " +"Les gestionnaires (*handlers*) envoient les entrées de journal (créées par " "les *loggers*) vers les destinations voulues." #: ../Doc/library/logging.rst:43 @@ -98,7 +112,7 @@ msgstr "" #: ../Doc/library/logging.rst:51 msgid "Logger Objects" -msgstr "" +msgstr "Objets Enregistreurs" #: ../Doc/library/logging.rst:53 msgid "" @@ -107,6 +121,11 @@ msgid "" "function ``logging.getLogger(name)``. Multiple calls to :func:`getLogger` " "with the same name will always return a reference to the same Logger object." msgstr "" +"Les enregistreurs ont les attributs et les méthodes suivants. Notez que les " +"enregistreurs ne doivent *JAMAIS* être instanciés directement, mais toujours " +"par la fonction au niveau du module ``logging.getLogger(name)``. Plusieurs " +"appels à :func:`getLogger` avec le même nom renvoient toujours une référence " +"au même objet enregistreur." #: ../Doc/library/logging.rst:58 msgid "" @@ -121,6 +140,18 @@ msgid "" "getLogger(__name__)``. That's because in a module, ``__name__`` is the " "module's name in the Python package namespace." msgstr "" +"Le nom ``name`` est potentiellement une valeur avec plusieurs niveaux de " +"hiérarchie, séparés par des points, comme ``truc.machin.bidule`` (bien qu’il " +"puisse aussi être simplement ``truc``, par exemple). Les enregistreurs qui " +"sont plus bas dans la liste hiérarchique sont les enfants des enregistreurs " +"plus haut dans la liste. Par exemple, pour un enregistreur nommé ``truc``, " +"les enregistreurs portant les noms ``truc.machin``, ``truc.machin.bidule`` " +"et ``truc.chose`` sont tous des descendants de ``truc``. La hiérarchie des " +"noms d’enregistreurs est analogue à la hiérarchie des paquets Python, et est " +"identique à celle-ci si vous organisez vos enregistreurs par module en " +"utilisant la construction recommandée ``logging.getLogger(__name__)``. " +"C’est ainsi parce que dans un module, ``__name__`` est le nom du module dans " +"l’espace de noms des paquets Python." #: ../Doc/library/logging.rst:74 msgid "" @@ -130,16 +161,24 @@ msgid "" "ancestor loggers' handlers - neither the level nor filters of the ancestor " "loggers in question are considered." msgstr "" +"Si cet attribut est évalué comme vrai, les événements enregistrés dans cet " +"enregistreur seront transmis aux gestionnaires des enregistreurs de niveau " +"supérieur (parents), en plus des gestionnaires attachés à cet enregistreur. " +"Les messages sont transmis directement aux gestionnaires des enregistreurs " +"parents — ni le niveau ni les filtres des enregistreurs ancestraux en " +"question ne sont pris en compte." #: ../Doc/library/logging.rst:80 msgid "" "If this evaluates to false, logging messages are not passed to the handlers " "of ancestor loggers." msgstr "" +"S’il s’évalue comme faux, les messages de journalisation ne sont pas " +"transmis aux gestionnaires des enregistreurs parents." #: ../Doc/library/logging.rst:83 msgid "The constructor sets this attribute to ``True``." -msgstr "" +msgstr "Le constructeur fixe cet attribut à ``True``." #: ../Doc/library/logging.rst:85 msgid "" @@ -152,6 +191,15 @@ msgid "" "handlers only to the root logger, and to let propagation take care of the " "rest." msgstr "" +"Si vous associez un gestionnaire à un enregistreur *et* à un ou plusieurs de " +"ses parents, il peut émettre le même enregistrement plusieurs fois. En " +"général, vous ne devriez pas avoir besoin d'attacher un gestionnaire à plus " +"d'un enregistreur — si vous l'attachez simplement à l'enregistreur approprié " +"qui est le plus haut dans la hiérarchie des enregistreurs, alors il voit " +"tous les événements enregistrés par tous les enregistreurs descendants, à " +"condition que leur paramètre de propagation soit laissé à ``True``. Un " +"scénario courant est d'attacher les gestionnaires uniquement à " +"l'enregistreur racine, et de laisser la propagation s'occuper du reste." #: ../Doc/library/logging.rst:96 msgid "" @@ -161,6 +209,11 @@ msgid "" "service this logger, unless a handler's level has been set to a higher " "severity level than *level*." msgstr "" +"Fixe le seuil de cet enregistreur au niveau *level*. Les messages de " +"journalisation qui sont moins graves que *level* sont ignorés ; les messages " +"qui ont une gravité égale à *level* ou plus élevée sont émis par le ou les " +"gestionnaires de cet enregistreur, à moins que le niveau d'un gestionnaire " +"n'ait été fixé à un niveau de gravité plus élevé que *level*." #: ../Doc/library/logging.rst:101 msgid "" @@ -169,6 +222,11 @@ msgid "" "delegation to the parent when the logger is a non-root logger). Note that " "the root logger is created with level :const:`WARNING`." msgstr "" +"Lorsqu'un enregistreur est créé, le niveau est fixé à :const:`NOTSET` (ce " +"qui entraîne le traitement de tous les messages lorsque l'enregistreur est " +"l'enregistreur racine, ou la délégation au parent lorsque l'enregistreur est " +"un enregistreur non racine). Notez que l'enregistreur racine est créé avec " +"le niveau :const:`WARNING`." #: ../Doc/library/logging.rst:106 msgid "" @@ -176,6 +234,10 @@ msgid "" "NOTSET, its chain of ancestor loggers is traversed until either an ancestor " "with a level other than NOTSET is found, or the root is reached." msgstr "" +"Le terme « délégation au parent » signifie que si un enregistreur a un " +"niveau de ``NOTSET``, sa chaîne d’enregistreurs parents est parcourue " +"jusqu'à ce qu'un parent ayant un niveau autre que ``NOTSET`` soit trouvé, ou " +"que la racine soit atteinte." #: ../Doc/library/logging.rst:110 msgid "" @@ -183,6 +245,10 @@ msgid "" "level is treated as the effective level of the logger where the ancestor " "search began, and is used to determine how a logging event is handled." msgstr "" +"Si un ancêtre est trouvé avec un niveau autre que NOTSET, alors le niveau de " +"ce parent est traité comme le niveau effectif de l'enregistreur où la " +"recherche de l'ancêtre a commencé, et est utilisé pour déterminer comment un " +"événement d'enregistrement est traité." #: ../Doc/library/logging.rst:114 msgid "" @@ -190,10 +256,13 @@ msgid "" "be processed. Otherwise, the root's level will be used as the effective " "level." msgstr "" +"Si la racine est atteinte, et qu'elle a un niveau de NOTSET, alors tous les " +"messages sont traités. Sinon, le niveau de la racine est utilisé comme " +"niveau effectif." #: ../Doc/library/logging.rst:117 ../Doc/library/logging.rst:407 msgid "See :ref:`levels` for a list of levels." -msgstr "" +msgstr "Voir :ref:`levels` pour la liste des niveaux." #: ../Doc/library/logging.rst:119 msgid "" @@ -203,6 +272,12 @@ msgid "" "such as e.g. :meth:`getEffectiveLevel` and :meth:`isEnabledFor` will return/" "expect to be passed integers." msgstr "" +"Le paramètre *level* accepte maintenant une représentation du niveau en " +"chaîne de caractères (comme ``'INFO'``) en alternative aux constantes " +"entières comme :const:`INFO`. Notez, cependant, que les niveaux sont stockés " +"en interne sous forme d'entiers, et des méthodes telles que :meth:" +"`getEffectiveLevel` et :meth:`isEnabledFor` renvoient/s'attendent à recevoir " +"des entiers." #: ../Doc/library/logging.rst:129 msgid "" @@ -220,6 +295,12 @@ msgid "" "`NOTSET` is found, and that value is returned. The value returned is an " "integer, typically one of :const:`logging.DEBUG`, :const:`logging.INFO` etc." msgstr "" +"Indique le niveau effectif pour cet enregistreur. Si une valeur autre que :" +"const:`NOTSET` a été définie en utilisant :meth:`setLevel`, elle est " +"renvoyée. Sinon, la hiérarchie est parcourue vers la racine jusqu'à ce " +"qu'une valeur autre que :const:`NOTSET` soit trouvée, et cette valeur est " +"renvoyée. La valeur renvoyée est un entier, généralement l'un de :const:" +"`logging.DEBUG`, :const:`logging.INFO`, etc." #: ../Doc/library/logging.rst:147 msgid "" @@ -229,6 +310,12 @@ msgid "" "ghi')``. This is a convenience method, useful when the parent logger is " "named using e.g. ``__name__`` rather than a literal string." msgstr "" +"Renvoie un enregistreur qui est un enfant de cet enregistreur, tel que " +"déterminé par le suffixe. Ainsi, ``logging.getLogger('abc').getChild('def." +"ghi')`` renvoie le même enregistreur que celui renvoyé par ``logging." +"getLogger('abc.def.ghi')``. C'est une méthode de pure commodité, utile " +"lorsque l’enregistreur parent est nommé en utilisant par exemple " +"``__name__`` plutôt qu'une chaîne de caractères littérale." #: ../Doc/library/logging.rst:158 msgid "" @@ -848,7 +935,7 @@ msgstr "" #: ../Doc/library/logging.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/logging.rst:672 msgid "" diff --git a/library/lzma.po b/library/lzma.po index 67eee8f88..d63ddd544 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -45,16 +45,24 @@ msgid "" "`LZMAFile` instance from multiple threads, it is necessary to protect it " "with a lock." msgstr "" +"L'interface disponible par ce module ressemble en de nombreux points à celle " +"du module :mod:`bz2`. Cependant, notez que la :class:`LZMAFile` n'est pas " +"*thread-safe*, comme l'est la :class:`bz2.BZ2File`. Donc, si vous souhaitez " +"utiliser une seule instance de :class:`LZMAFile` pour plusieurs fils, il " +"sera alors nécessaire de la protéger avec un verrou (*lock*)." #: ../Doc/library/lzma.rst:29 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the compressor/decompressor state." msgstr "" +"Cette exception est levée dès lors qu'une erreur survient pendant la " +"compression ou la décompression, ou pendant l'initialisation de l'état de la " +"compression/décompression." #: ../Doc/library/lzma.rst:34 msgid "Reading and writing compressed files" -msgstr "" +msgstr "Lire et écrire des fichiers compressés" #: ../Doc/library/lzma.rst:38 msgid "" @@ -69,6 +77,10 @@ msgid "" "which case the named file is opened, or it can be an existing file object to " "read from or write to." msgstr "" +"L'argument *nom de fichier* peut être soit le nom d'un fichier à créer " +"(donné pour :class:`str`, :class:`bytes` ou un objet :term:`path-like `), dont le fichier nommé reste ouvert, ou soit un objet fichier " +"existant à lire ou à écrire." #: ../Doc/library/lzma.rst:46 msgid "" @@ -77,6 +89,10 @@ msgid "" "\"rt\"``, ``\"wt\"``, ``\"xt\"``, or ``\"at\"`` for text mode. The default " "is ``\"rb\"``." msgstr "" +"L'argument *mode* peut être n'importe quel argument suivant : ``\"r\"``, ``" +"\"rb\"``, ``\"w\"``, ``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` ou ``\"ab" +"\"`` pour le mode binaire, ou ``\"rt\"``, ``\"wt\"``, ``\"xt\"``, ou ``\"at" +"\"`` pour le mode texte. La valeur par défaut est ``\"rb\"``." #: ../Doc/library/lzma.rst:50 ../Doc/library/lzma.rst:95 msgid "" @@ -84,12 +100,18 @@ msgid "" "the same meanings as for :class:`LZMADecompressor`. In this case, the " "*check* and *preset* arguments should not be used." msgstr "" +"Quand un fichier est ouvert pour le lire, les arguments *format* et " +"*filters* ont les mêmes significations que pour la :class:" +"`LZMADecompressor`. Par conséquent, les arguments *check* et *preset* ne " +"devront pas être sollicités." #: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" +"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, *check*, " +"*preset* et *filters* ont le même sens que dans la :class:`LZMACompressor`." #: ../Doc/library/lzma.rst:57 msgid "" @@ -97,6 +119,9 @@ msgid "" "constructor: ``LZMAFile(filename, mode, ...)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" +"Pour le mode binaire, cette fonction équivaut au constructeur de la :class:" +"`LZMAFile` : ``LZMAFile(filename, mode, ...)``. Dans ce cas précis, les " +"arguments *encoding*, *errors* et *newline* ne sont pas accessibles." #: ../Doc/library/lzma.rst:61 msgid "" @@ -107,7 +132,7 @@ msgstr "" #: ../Doc/library/lzma.rst:65 msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." -msgstr "" +msgstr "Support ajouté pour les modes ``\"x\"``, ``\"xb\"`` et ``\"xt\"``." #: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 msgid "Accepts a :term:`path-like object`." @@ -115,7 +140,7 @@ msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." -msgstr "" +msgstr "Ouvre un fichier LZMA compressé en mode binaire." #: ../Doc/library/lzma.rst:76 msgid "" @@ -126,6 +151,12 @@ msgid "" "wrapping an existing file object, the wrapped file will not be closed when " "the :class:`LZMAFile` is closed." msgstr "" +"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " +"operate directly on a named file. The *filename* argument specifies either " +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." #: ../Doc/library/lzma.rst:83 msgid "" @@ -134,6 +165,10 @@ msgid "" "appending. These can equivalently be given as ``\"rb\"``, ``\"wb\"``, ``\"xb" "\"`` and ``\"ab\"`` respectively." msgstr "" +"L'argument *mode* peut être soit ``\"r\"`` pour la lecture (défaut), ``\"w" +"\"`` pour la ré-écriture, ``\"x\"`` pour la création exclusive, ou ``\"a\"`` " +"pour l'insertion. Elles peuvent aussi être écrites de la façon suivante : ``" +"\"rb\"``, ``\"wb\"``, ``\"xb\"`` et ``\"ab\"`` respectivement." #: ../Doc/library/lzma.rst:88 msgid "" @@ -147,6 +182,9 @@ msgid "" "multiple separate compressed streams. These are transparently decoded as a " "single logical stream." msgstr "" +"Dès l'ouverture d'un fichier pour être lu, le fichier d'entrée peut être le " +"résultat d'une concaténation de plusieurs flux distincts et compressés. Ceux-" +"ci sont décodés de manière transparente en un seul flux logique." #: ../Doc/library/lzma.rst:102 msgid "" @@ -157,7 +195,7 @@ msgstr "" #: ../Doc/library/lzma.rst:106 msgid "The following method is also provided:" -msgstr "" +msgstr "Les méthodes suivantes sont aussi disponibles :" #: ../Doc/library/lzma.rst:110 msgid "" @@ -165,6 +203,10 @@ msgid "" "of data will be returned, unless EOF has been reached. The exact number of " "bytes returned is unspecified (the *size* argument is ignored)." msgstr "" +"Renvoie la donnée en mémoire-tampon sans progression de la position du " +"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " +"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " +"*taille* est ignoré). " #: ../Doc/library/lzma.rst:114 msgid "" @@ -183,49 +225,61 @@ msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." #: ../Doc/library/lzma.rst:131 msgid "Compressing and decompressing data in memory" -msgstr "" +msgstr "Compresser et décompresser une donnée en mémoire" #: ../Doc/library/lzma.rst:135 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" +"Créé un objet compresseur, qui peut être utilisé pour compresser " +"incrémentalement une donnée." #: ../Doc/library/lzma.rst:137 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." msgstr "" +"Pour une façon plus adaptée de compresser un seul extrait de donnée, voir :" +"func:`compress`." #: ../Doc/library/lzma.rst:140 msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" msgstr "" +"L'argument *format* définit quel format de conteneur sera mis en œuvre. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:144 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." -msgstr "" +msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``." #: ../Doc/library/lzma.rst:144 msgid "This is the default format." -msgstr "" +msgstr "C'est le format par défaut." #: ../Doc/library/lzma.rst:148 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." -msgstr "" +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma``." #: ../Doc/library/lzma.rst:147 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" +"Ce format est davantage limité que ``.xz`` --il ne supporte pas les " +"vérifications d'intégrité ou les filtres multiples." #: ../Doc/library/lzma.rst:154 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" +":const:`FORMAT_RAW`: Un flux de données brut, n'utilisant aucun format de " +"conteneur." #: ../Doc/library/lzma.rst:151 msgid "" @@ -234,6 +288,11 @@ msgid "" "decompression). Additionally, data compressed in this manner cannot be " "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" +"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et " +"exige systématiquement la définition d'une chaîne de filtrage personnalisée " +"(à la fois pour la compression et la décompression). Par ailleurs, les " +"données compressées par ce biais ne peuvent pas être décompressées par " +"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)." #: ../Doc/library/lzma.rst:156 msgid "" @@ -241,31 +300,46 @@ msgid "" "compressed data. This check is used when decompressing, to ensure that the " "data has not been corrupted. Possible values are:" msgstr "" +"L'argument *check* détermine le type de vérification d'intégrité à exploiter " +"avec la donnée compressée. Cette vérification est déclenchée lors de la " +"décompression, pour garantir que la donnée n'a pas été corrompue. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:160 msgid "" ":const:`CHECK_NONE`: No integrity check. This is the default (and the only " "acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." msgstr "" +":const:`CHECK_NONE`: Pas de vérification d'intégrité. C'est la valeur par " +"défaut (et la seule valeur acceptable) pour :const:`FORMAT_ALONE` et :const:" +"`FORMAT_RAW`." #: ../Doc/library/lzma.rst:164 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr "" +":const:`CHECK_CRC32`: Vérification par Redondance Cyclique 32-bit (*Cyclic " +"Redundancy Check*)." #: ../Doc/library/lzma.rst:166 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." msgstr "" +":const:`CHECK_CRC64`: Vérification par Redondance Cyclique 64-bit (*Cyclic " +"Redundancy Check*). Valeur par défaut pour :const:`FORMAT_XZ`." #: ../Doc/library/lzma.rst:169 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr "" +":const:`CHECK_SHA256`: Algorithme de Hachage Sécurisé 256-bit (*Secure Hash " +"Algorithm*)." #: ../Doc/library/lzma.rst:171 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" +"Si le type de vérification n'est pas supporté par le système, une erreur de " +"type :class:`LZMAError` est levée." #: ../Doc/library/lzma.rst:173 msgid "" @@ -273,6 +347,10 @@ msgid "" "level (with the *preset* argument), or in detail as a custom filter chain " "(with the *filters* argument)." msgstr "" +"Les réglages de compression peuvent être définis soit comme un pré-réglage " +"de niveau de compression (avec l'argument *preset*) ; soit de façon " +"détaillée comme une chaîne particulière de filtres (avec l'argument " +"*filters*)." #: ../Doc/library/lzma.rst:177 msgid "" @@ -282,6 +360,12 @@ msgid "" "behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher " "presets produce smaller output, but make the compression process slower." msgstr "" +"L'argument *preset* (s'il est fourni) doit être un entier compris entre `0`` " +"et ``9`` (inclus), éventuellement relié à OR avec la constante :const:" +"`PRESET_EXTREME`. Si aucun *preset* ni *filters* ne ont définis, le " +"comportement par défaut consiste à utiliser la :const:`PRESET_DEFAULT` " +"(niveau par défaut : ``6``). Des pré-réglages plus élevés entraîne une " +"sortie plus petite, mais rend le processus de compression plus lent." #: ../Doc/library/lzma.rst:186 msgid "" @@ -291,12 +375,20 @@ msgid "" "`LZMACompressor` object can be as high as 800 MiB. For this reason, it is " "generally best to stick with the default preset." msgstr "" +"En plus d'être plus gourmande en CPU, la compression avec des préréglages " +"plus élevés nécessite beaucoup plus de mémoire (et produit des résultats qui " +"nécessitent plus de mémoire pour décompresser). Par exemple, avec le " +"préréglage ``9``, l'objet d'une :class:`LZMACompressor` peut dépasser " +"largement les 800 Mo. Pour cette raison, il est généralement préférable de " +"respecter le préréglage par défaut." #: ../Doc/library/lzma.rst:192 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." msgstr "" +"L'argument *filters* (s'il est défini) doit être un critère de la chaîne de " +"filtrage. Voir :ref:`filter-chain-specs` pour plus de précisions." #: ../Doc/library/lzma.rst:197 msgid "" @@ -306,12 +398,21 @@ msgid "" "meth:`flush`. The returned data should be concatenated with the output of " "any previous calls to :meth:`compress`." msgstr "" +"Une *data* compressée (un objet :class:`bytes`), renvoie un objet :class:" +"`bytes` contenant une donnée compressée pour au moins une partie de " +"l'entrée. Certaine *data* peuvent être mise en tampon, pour être utiliser " +"lors de prochains appels par :meth:`compress` et :meth:`flush`. La donnée " +"renvoyée pourra être concaténée avec la sortie d'appels précédents vers la " +"méthode :meth:`compress`." #: ../Doc/library/lzma.rst:205 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" +"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` " +"constitué de toutes les données stockées dans les tampons interne du " +"compresseur." #: ../Doc/library/lzma.rst:208 msgid "The compressor cannot be used after this method has been called." @@ -322,12 +423,16 @@ msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" +"Créé un objet de décompression, pour décompresser de façon incrémentale une " +"donnée." #: ../Doc/library/lzma.rst:216 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." msgstr "" +"Pour un moyen plus pratique de décompresser un flux compressé complet en une " +"seule fois, voir :func:`decompress`." #: ../Doc/library/lzma.rst:219 msgid "" @@ -336,6 +441,10 @@ msgid "" "``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:" "`FORMAT_ALONE`, and :const:`FORMAT_RAW`." msgstr "" +"L'argument *format* spécifie le format du conteneur à utiliser. La valeur " +"par défaut est :const:`FORMAT_AUTO` pouvant à la fois décompresser les " +"fichiers ``.xz`` et ``.lzma``. D'autres valeurs sont possibles comme :const:" +"`FORMAT_XZ`, :const:`FORMAT_ALONE`, et :const:`FORMAT_RAW`." #: ../Doc/library/lzma.rst:224 msgid "" @@ -344,6 +453,10 @@ msgid "" "will fail with an :class:`LZMAError` if it is not possible to decompress the " "input within the given memory limit." msgstr "" +"L'argument *memlimit* spécifie une limite (en octets) sur la quantité de " +"mémoire que le décompresseur peut utiliser. Lorsque cet argument est " +"utilisé, la décompression échouera avec une :class:`LZMAError` s'il n'est " +"pas possible de décompresser l'entrée dans la limite mémoire disponible." #: ../Doc/library/lzma.rst:229 msgid "" @@ -352,6 +465,10 @@ msgid "" "const:`FORMAT_RAW`, but should not be used for other formats. See :ref:" "`filter-chain-specs` for more information about filter chains." msgstr "" +"L'argument *filters* spécifie la chaîne de filtrage utilisée pour créer le " +"flux décompressé. Cet argument est requis si *format* est :const:" +"`FORMAT_RAW`, mais ne doit pas être utilisé pour d'autres formats. Voir :ref:" +"`filter-chain-specs` pour plus d'informations sur les chaînes de filtrage." #: ../Doc/library/lzma.rst:235 msgid "" @@ -360,6 +477,10 @@ msgid "" "decompress a multi-stream input with :class:`LZMADecompressor`, you must " "create a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, contrairement à :func:`decompress` et :class:" +"`LZMAFile`. Pour décompresser une entrée multi-flux avec :class:" +"`LZMADecompressor`, vous devez créer un nouveau décompresseur à chaque flux." #: ../Doc/library/lzma.rst:242 msgid "" @@ -368,6 +489,11 @@ msgid "" "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." #: ../Doc/library/lzma.rst:248 msgid "" @@ -377,6 +503,11 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." #: ../Doc/library/lzma.rst:255 msgid "" @@ -384,6 +515,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." #: ../Doc/library/lzma.rst:260 msgid "" @@ -391,6 +525,9 @@ msgid "" "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." @@ -402,10 +539,13 @@ msgid "" "`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " "integrity check it uses." msgstr "" +"L'ID de la vérification d'intégrité exploité par le flux entrant. Il s'agit " +"de :const:`CHECK_UNKNOWN` tant que ce flux a été décodé pour déterminer quel " +"type de vérification d'intégrité à été utilisé." #: ../Doc/library/lzma.rst:275 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." #: ../Doc/library/lzma.rst:279 msgid "Data found after the end of the compressed stream." @@ -413,43 +553,55 @@ msgstr "Donnée trouvée après la fin du flux compressé." #: ../Doc/library/lzma.rst:281 msgid "Before the end of the stream is reached, this will be ``b\"\"``." -msgstr "" +msgstr "Avant d'atteindre la fin du flux, ce sera ``b\"\"``." #: ../Doc/library/lzma.rst:285 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." #: ../Doc/library/lzma.rst:292 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." msgstr "" +"*data* compressée (un objet :class:`bytes`), renvoyant une donnée compressée " +"comme un objet :class:`bytes`." #: ../Doc/library/lzma.rst:295 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." msgstr "" +"Voir :class:`LZMACompressor` ci-dessus pour une description des arguments " +"*format*, *check*, *preset* et *filters*." #: ../Doc/library/lzma.rst:301 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." msgstr "" +"Décompresse *data* (un objet :class:`bytes` ), et retourne la donnée " +"décompressée sous la forme d'un objet :class:`bytes`." #: ../Doc/library/lzma.rst:304 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." msgstr "" +"Si *data* est le résultat de la concaténation de plusieurs flux compressés " +"et distincts , il les décompresse tous, et retourne les résultats concaténés." #: ../Doc/library/lzma.rst:307 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." msgstr "" +"Voir :class:`LZMADecompressor` ci-dessus pour une description des arguments " +"*format*, *memlimit* et *filters*." #: ../Doc/library/lzma.rst:312 msgid "Miscellaneous" @@ -465,10 +617,14 @@ msgid "" "`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " "a version of :program:`liblzma` that was compiled with a limited feature set." msgstr "" +":const:`CHECK_NONE` et :const:`CHECK_CRC32` sont toujours pris en charge. :" +"const:`CHECK_CRC64` et :const:`CHECK_SHA256` peuvent être indisponibles si " +"vous utilisez une version de :program:`liblzma` compilée avec des " +"possibilités restreintes." #: ../Doc/library/lzma.rst:327 msgid "Specifying custom filter chains" -msgstr "" +msgstr "Préciser des chaînes de filtre personnalisées" #: ../Doc/library/lzma.rst:329 msgid "" @@ -477,24 +633,31 @@ msgid "" "must contain the key ``\"id\"``, and may contain additional keys to specify " "filter-dependent options. Valid filter IDs are as follows:" msgstr "" +"Une chaîne de filtres est une séquence de dictionnaires, où chaque " +"dictionnaire contient l'ID et les options pour chaque filtre. Le moindre " +"dictionnaire contient la clé ``\"id\"`` et peut aussi contenir d'autres clés " +"pour préciser chaque options relative au filtre déclaré. Les ID valides des " +"filtres sont définies comme suit :" #: ../Doc/library/lzma.rst:336 msgid "Compression filters:" -msgstr "" +msgstr "Filtres de compression:" #: ../Doc/library/lzma.rst:335 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" -msgstr "" +msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)" #: ../Doc/library/lzma.rst:336 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" msgstr "" +":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:" +"`FORMAT_RAW`)" #: ../Doc/library/lzma.rst:339 msgid "Delta filter:" -msgstr "" +msgstr "Filtre Delta:" #: ../Doc/library/lzma.rst:339 msgid ":const:`FILTER_DELTA`" @@ -502,7 +665,7 @@ msgstr ":const:`FILTER_DELTA`" #: ../Doc/library/lzma.rst:347 msgid "Branch-Call-Jump (BCJ) filters:" -msgstr "" +msgstr "Filtres Branch-Call-Jump (BCJ):" #: ../Doc/library/lzma.rst:342 msgid ":const:`FILTER_X86`" @@ -534,60 +697,78 @@ msgid "" "filter in the chain must be a compression filter, and any other filters must " "be delta or BCJ filters." msgstr "" +"Une chaîne de filtres peut contenir jusqu'à 4 filtres, et ne peut pas être " +"vide. Le dernier filtre de cette chaîne devra être un filtre de compression, " +"et tous les autres doivent être des filtres delta ou BCJ." #: ../Doc/library/lzma.rst:353 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" msgstr "" +"Les filtres de compression contiennent les options suivantes (définies comme " +"entrées additionnelles dans le dictionnaire qui représente le filtre) :" #: ../Doc/library/lzma.rst:356 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." msgstr "" +"``preset``: Un pré-réglage à exploiter comme une source de valeurs par " +"défaut pour les options qui ne sont pas explicitement définies." #: ../Doc/library/lzma.rst:358 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." msgstr "" +"``dict_size``: La taille du dictionnaire en octets. Comprise entre 4 Ko et " +"1.5 Go (inclus)." #: ../Doc/library/lzma.rst:360 msgid "``lc``: Number of literal context bits." -msgstr "" +msgstr "``lc``: Nombre de bits dans le contexte littéral." #: ../Doc/library/lzma.rst:361 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." msgstr "" +"``lp``: Nombre de bits dans la position littérale. La somme ``lc + lp`` " +"devra être au moins 4." #: ../Doc/library/lzma.rst:363 msgid "``pb``: Number of position bits; must be at most 4." -msgstr "" +msgstr "``pb``: Nombre de bits à cette position ; au moins 4." #: ../Doc/library/lzma.rst:364 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." -msgstr "" +msgstr "``mode``: :const:`MODE_FAST` ou :const:`MODE_NORMAL`." #: ../Doc/library/lzma.rst:365 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." msgstr "" +"``nice_len``: Ce qui devra être pris en compte comme \"longueur appréciable" +"\" pour une recherche. Il devra être 273 ou moins." #: ../Doc/library/lzma.rst:367 msgid "" "``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" "`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." msgstr "" +"``mf``: Quel type d'index de recherche à utiliser -- :const:`MF_HC3`, :const:" +"`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, ou :const:`MF_BT4`." #: ../Doc/library/lzma.rst:369 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." msgstr "" +"``depth``: Profondeur maximum de la recherche, utilisée par l'index de " +"recherche. 0 (défaut) signifie une sélection automatique basée sur des " +"options de filtres différents." #: ../Doc/library/lzma.rst:372 msgid "" @@ -597,6 +778,11 @@ msgid "" "subtracted. The default is 1, i.e. take the differences between adjacent " "bytes." msgstr "" +"Le filtre delta stocke les différences entre octets, induisant davantage " +"d'entrées répétitives pour le compresseur, selon les circonstances. Il " +"support une option, ``dist``. Ce paramètre définit la distance entre les " +"octets à soustraire. Par défaut : 1, soit la différence entre des octets " +"adjacents." #: ../Doc/library/lzma.rst:377 msgid "" @@ -607,6 +793,12 @@ msgid "" "specifies the address that should be mapped to the beginning of the input " "data. The default is 0." msgstr "" +"Les filtres BCJ sont conçus pour être appliqués sur du langage machine. Ils " +"convertissent les branches relatives, les appels et les sauts dans le code à " +"des fins d'adressage strict, dans le but d'augmenter la redondance mise en " +"jeu par le compresseur. Ils ne supportent qu'une seule option : " +"``start_offset``, pour définir l'adresse où sera déclenché le début de la " +"donnée d'entrée. Par défaut : 0." #: ../Doc/library/lzma.rst:385 msgid "Examples" @@ -614,24 +806,25 @@ msgstr "Exemples" #: ../Doc/library/lzma.rst:387 msgid "Reading in a compressed file::" -msgstr "" +msgstr "Lire un fichier compressé::" #: ../Doc/library/lzma.rst:393 msgid "Creating a compressed file::" -msgstr "" +msgstr "Créer un fichier compressé::" #: ../Doc/library/lzma.rst:400 msgid "Compressing data in memory::" -msgstr "" +msgstr "Compresser des données en mémoire ::" #: ../Doc/library/lzma.rst:406 msgid "Incremental compression::" -msgstr "" +msgstr "Compression incrémentale ::" #: ../Doc/library/lzma.rst:417 msgid "Writing compressed data to an already-open file::" -msgstr "" +msgstr "Écrire des données compressées dans un fichier préalablement ouvert ::" #: ../Doc/library/lzma.rst:426 msgid "Creating a compressed file using a custom filter chain::" msgstr "" +"Créer un fichier compressé en utilisant une chaîne de filtre personnalisée ::" diff --git a/library/mailbox.po b/library/mailbox.po index 3fb658d8e..6eda96c21 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -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 "" @@ -1528,7 +1537,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:1134 msgid "Sequence" -msgstr "" +msgstr "Séquence" #: ../Doc/library/mailbox.rst:1136 ../Doc/library/mailbox.rst:1223 msgid "unseen" @@ -1731,16 +1740,20 @@ msgid "" "When a :class:`BabylMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`BabylMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1337 msgid ":class:`MMDFMessage`" -msgstr "" +msgstr ":class:`MMDFMessage`" #: ../Doc/library/mailbox.rst:1342 msgid "" "A message with MMDF-specific behaviors. Parameter *message* has the same " "meaning as with the :class:`Message` constructor." msgstr "" +"Un message avec des comportements spécifiques à *MMDF*. Le paramètre " +"*message* a le même sens que pour le constructeur de :class:`Message`." #: ../Doc/library/mailbox.rst:1345 msgid "" @@ -1749,18 +1762,27 @@ msgid "" "\"From \". Likewise, flags that indicate the state of the message are " "typically stored in :mailheader:`Status` and :mailheader:`X-Status` headers." msgstr "" +"Comme pour le message d'une boîte de courriel *mbox*, les messages *MMDF* " +"sont stockés avec l'adresse de l'expéditeur et la date d'expédition dans la " +"ligne initiale commençant avec « From ». De même, les options indiquant " +"l'état du message sont stockées dans les en-têtes :mailheader:`Status` et :" +"mailheader:`X-Status`." #: ../Doc/library/mailbox.rst:1350 msgid "" "Conventional flags for MMDF messages are identical to those of mbox message " "and are as follows:" msgstr "" +"Les options conventionnelles des messages *MMDF* sont identiques à celles de " +"message *mbox* et sont les suivantes :" #: ../Doc/library/mailbox.rst:1371 msgid "" ":class:`MMDFMessage` instances offer the following methods, which are " "identical to those offered by :class:`mboxMessage`:" msgstr "" +"Les méthodes des instances :class:`MMDFMessage` sont identiques à celles de :" +"class:`mboxMessage` et sont les suivantes :" #: ../Doc/library/mailbox.rst:1420 msgid "" @@ -1769,18 +1791,26 @@ msgid "" "class:`MaildirMessage` instance's delivery date, and the following " "conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MaildirMessage`, la ligne « From » est générée sur la base " +"de la date de remise de l'instance :class:`MaildirMessage` et les " +"conversions suivantes ont lieu :" #: ../Doc/library/mailbox.rst:1439 msgid "" "When an :class:`MMDFMessage` instance is created based upon an :class:" "`MHMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`MHMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1454 msgid "" "When an :class:`MMDFMessage` instance is created based upon a :class:" "`BabylMessage` instance, the following conversions take place:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`BabylMessage`, les conversions suivantes sont faites :" #: ../Doc/library/mailbox.rst:1469 msgid "" @@ -1788,10 +1818,13 @@ msgid "" "`mboxMessage` instance, the \"From \" line is copied and all flags directly " "correspond:" msgstr "" +"Lorsqu'une instance :class:`MMDFMessage` est créée sur la base d'une " +"instance :class:`mboxMessage`, la ligne « From » est copiée et toutes les " +"options ont une correspondance directe :" #: ../Doc/library/mailbox.rst:1474 msgid ":class:`mboxMessage` state" -msgstr "" +msgstr "état de :class:`mboxMessage`" #: ../Doc/library/mailbox.rst:1489 msgid "Exceptions" @@ -1801,10 +1834,13 @@ msgstr "Exceptions" msgid "" "The following exception classes are defined in the :mod:`mailbox` module:" msgstr "" +"Les exceptions de classes suivantes sont définies dans le module :mod:" +"`mailbox` :" #: ../Doc/library/mailbox.rst:1496 msgid "The based class for all other module-specific exceptions." msgstr "" +"Classe de base pour toutes les autres exceptions spécifiques à ce module." #: ../Doc/library/mailbox.rst:1501 msgid "" @@ -1813,12 +1849,18 @@ msgid "" "(and with the *create* parameter set to ``False``), or when opening a folder " "that does not exist." msgstr "" +"Levée lorsqu'une boîte de courriel est attendue mais introuvable, comme " +"quand on instancie une sous-classe :class:`Mailbox` avec un chemin qui " +"n'existe pas (et avec le paramètre *create* fixé à ``False``), ou quand on " +"ouvre un répertoire qui n'existe pas." #: ../Doc/library/mailbox.rst:1508 msgid "" "Raised when a mailbox is not empty but is expected to be, such as when " "deleting a folder that contains messages." msgstr "" +"Levée lorsqu'une boîte de courriel n'est pas vide mais devrait l'être, comme " +"lorsqu'on supprime un répertoire contenant des messages." #: ../Doc/library/mailbox.rst:1514 msgid "" @@ -1827,12 +1869,19 @@ msgid "" "that another program already holds a lock, or when a uniquely-generated file " "name already exists." msgstr "" +"Levée lorsqu'une condition liée à la boîte de courriel est hors de contrôle " +"du programme et l'empêche de se poursuivre, comme lors de l’échec " +"d'acquisition du verrou ou lorsqu'un nom de fichier censé être unique existe " +"déjà." #: ../Doc/library/mailbox.rst:1522 msgid "" "Raised when the data in a file cannot be parsed, such as when an :class:`MH` " "instance attempts to read a corrupted :file:`.mh_sequences` file." msgstr "" +"Levée lorsque la donnée dans le fichier ne peut être analysée, comme lorsque " +"l'instance de :class:`MH` tente de lire un fichier :file:`.mh_sequences` " +"corrompu." #: ../Doc/library/mailbox.rst:1529 msgid "Examples" @@ -1843,12 +1892,18 @@ msgid "" "A simple example of printing the subjects of all messages in a mailbox that " "seem interesting::" msgstr "" +"Un exemple simple d'affichage de l'objet, qui semble pertinent, de tous les " +"messages d'une boîte de courriel ::" #: ../Doc/library/mailbox.rst:1540 msgid "" "To copy all mail from a Babyl mailbox to an MH mailbox, converting all of " "the format-specific information that can be converted::" msgstr "" +"Cet exemple copie tout le courriel d'une boite de courriel au format " +"*Babyl* vers une boite de courriel au format *MH*, convertissant toute " +"l'information qu'il est possible de convertir du premier format vers le " +"second ::" #: ../Doc/library/mailbox.rst:1551 msgid "" @@ -1857,3 +1912,8 @@ msgid "" "other programs, mail loss due to interruption of the program, or premature " "termination due to malformed messages in the mailbox::" msgstr "" +"Cet exemple trie le courriel en provenance de plusieurs listes de diffusion " +"vers différentes boîtes de courriel, tout en évitant une corruption à cause " +"de modifications concurrentielles par d'autres programmes, une perte due à " +"une interruption du programme ou un arrêt prématuré causé par des messages " +"mal structurés ::" diff --git a/library/marshal.po b/library/marshal.po index ca8bbfe85..229f34ac0 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -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." diff --git a/library/math.po b/library/math.po index e8c9df272..4a6332715 100644 --- a/library/math.po +++ b/library/math.po @@ -38,15 +38,16 @@ msgid "" "of the unexpected complex number used as a parameter, so that the programmer " "can determine how and why it was generated in the first place." msgstr "" -"Ces fonctions ne peuvent être utilisées avec les nombres complexes, utilisez " -"les fonctions du même nom du module :mod:`cmath` si vous souhaitez un " -"support des nombres complexes. La distinction entre les fonctions supportant " -"les nombres complexes et celles ne les supportant pas set née du fait que " -"tous les utilisateurs ne désirent pas acquérir le niveau mathématique " -"suffisant pour comprendre les nombres complexes. Recevoir une exception à la " -"place d'un nombre complexe permet de détecter un nombre complexe non désiré " -"en paramètre, ainsi le programmeur peut déterminer comment et pourquoi il a " -"été généré." +"Ces fonctions ne peuvent pas être utilisées avec les nombres complexes ; si " +"vous avez besoin de la prise en charge des nombres complexes, utilisez les " +"fonctions du même nom du module :mod:`cmath`. La séparation entre les " +"fonctions qui gèrent les nombres complexes et les autres vient du constat " +"que tous les utilisateurs ne souhaitent pas acquérir le niveau mathématique " +"nécessaire à la compréhension des nombres complexes. Recevoir une exception " +"plutôt qu'un nombre complexe en retour d'une fonction permet au programmeur " +"de déterminer immédiatement comment et pourquoi ce nombre a été généré, " +"avant que celui-ci ne soit passé involontairement en paramètre d'une autre " +"fonction. " #: ../Doc/library/math.rst:25 msgid "" @@ -66,8 +67,8 @@ msgid "" "*x*. If *x* is not a float, delegates to ``x.__ceil__()``, which should " "return an :class:`~numbers.Integral` value." msgstr "" -"Renvoie la fonction *plafond* de *x*, le plus petit entier plus grand ou " -"égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " +"Renvoie la partie entière par excès de *x*, le plus petit entier supérieur " +"ou égal à *x*. Si *x* est un flottant, délègue à ``x.__ceil()__``, qui doit " "renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:41 @@ -77,8 +78,8 @@ msgid "" "returns *-1.0*." msgstr "" "Renvoie un flottant contenant la magnitude (valeur absolue) de *x* mais avec " -"le signe de *y*. Sur les plate-formes supportant les zéros signés, " -"``copysign(1.0, -0.0)`` renvoie *-1.0*." +"le signe de *y*. Sur les plates-formes prenant en charge les zéros signés, " +"``copysign(1.0, -0.0)`` renvoie ``-1.0``." #: ../Doc/library/math.rst:48 msgid "Return the absolute value of *x*." @@ -98,9 +99,9 @@ msgid "" "*x* is not a float, delegates to ``x.__floor__()``, which should return an :" "class:`~numbers.Integral` value." msgstr "" -"Renvoie le plancher de *x*, le plus grand entier plus petit ou égal à *x*. " -"Si *x* n'est pas un flottant, délègue à ``x.__floor()__``, qui doit renvoyer " -"une valeur :class:`~numbers.Integral`." +"Renvoie la partie entière (par défaut) de *x*, le plus grand entier " +"inférieur ou égal à *x*. Si *x* n'est pas un flottant, délègue à ``x." +"__floor()__``, qui doit renvoyer une valeur :class:`~numbers.Integral`." #: ../Doc/library/math.rst:66 msgid "" @@ -128,8 +129,9 @@ msgstr "" "résultat de l'expression Python ``-1e-100 % 1e100`` est ``1e100-1e-100``, " "qui ne peut pas être représenté exactement par un flottant et donc qui est " "arrondi à ``1e100``. Pour cette raison, la fonction :func:`fmod` est " -"généralement préférée quand des flottants sont manipulés, alors que " -"l'expression Python ``x % y`` est préféré quand des entiers sont manipulés." +"généralement privilégiée quand des flottants sont manipulés, alors que " +"l'expression Python ``x % y`` est privilégiée quand des entiers sont " +"manipulés." #: ../Doc/library/math.rst:81 msgid "" @@ -160,8 +162,8 @@ msgid "" "occasionally double-round an intermediate sum causing it to be off in its " "least significant bit." msgstr "" -"L'exactitude de cet algorithme dépend des garanties arithmétiques de " -"IEEE-754 et des cas typiques où le mode d'arrondi est *half-even*. Sur " +"La précision de cet algorithme dépend des garanties arithmétiques de " +"IEEE-754 et des cas standards où le mode d'arrondi est *half-even*. Sur " "certaines versions non Windows, la bibliothèque C sous-jacente utilise une " "addition par précision étendue et peut occasionnellement effectuer un double-" "arrondi sur une somme intermédiaire causant la prise d'une mauvaise valeur " @@ -183,9 +185,9 @@ msgid "" "*a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest " "positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns ``0``." msgstr "" -"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si soit *a* ou " -"*b* est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand " -"entier positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." +"Renvoie le plus grand diviseur commun des entiers *a* et *b*. Si *a* ou *b* " +"est différent de zéro, la valeur de ``gcd(a, b)`` est le plus grand entier " +"positif qui divise à la fois *a* et *b*. ``gcd(0, 0)`` renvoie ``0``." #: ../Doc/library/math.rst:120 msgid "" @@ -200,8 +202,8 @@ msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." msgstr "" -"Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " -"absolues et relatives données en paramètres." +"Déterminer si deux valeurs sont considérées comme « proches » se fait à " +"l'aide des tolérances absolues et relatives passées en paramètres." #: ../Doc/library/math.rst:126 msgid "" @@ -211,7 +213,7 @@ msgid "" "tolerance is ``1e-09``, which assures that the two values are the same " "within about 9 decimal digits. *rel_tol* must be greater than zero." msgstr "" -"*rel_tol* est la tolérance relative -- c'est la différence maximale permise " +"*rel_tol* est la tolérance relative — c'est la différence maximale permise " "entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " "exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " "tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " @@ -223,7 +225,7 @@ msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." msgstr "" -"*abs_tol* est la tolérance absolue minimale -- utile pour les comparaisons " +"*abs_tol* est la tolérance absolue minimale — utile pour les comparaisons " "proches de zéro. *abs_tol* doit valoir au moins zéro." #: ../Doc/library/math.rst:135 @@ -244,12 +246,12 @@ msgstr "" "Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " "dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " "En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " -"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" +"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérées proches que d'elles-" "mêmes." #: ../Doc/library/math.rst:147 msgid ":pep:`485` -- A function for testing approximate equality" -msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" +msgstr ":pep:`485` — Une fonction pour tester des quasi-égalités" #: ../Doc/library/math.rst:152 msgid "" @@ -257,7 +259,7 @@ msgid "" "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" "Renvoie ``True`` si *n* n'est ni infini, ni NaN, et ``False`` sinon. (Notez " -"que ``0.0`` *est* considéré fini.)" +"que ``0.0`` *est* considéré comme fini.)" #: ../Doc/library/math.rst:160 msgid "" @@ -323,7 +325,7 @@ msgid "" "On platforms using IEEE 754 binary floating-point, the result of this " "operation is always exactly representable: no rounding error is introduced." msgstr "" -"Sur les plateformes utilisant la norme IEEE 754 pour les nombres à virgule " +"Sur les plates-formes utilisant la norme IEEE 754 pour les nombres à virgule " "flottante en binaire, le résultat de cette opération est toujours exactement " "représentable : aucune erreur d'arrondi n'est introduite." @@ -345,10 +347,9 @@ msgid "" "'output parameter' (there is no such thing in Python)." msgstr "" "Notez que les fonctions :func:`frexp` et :func:`modf` ont un système d'appel " -"différent de leur homologue C : elles prennent un simple argument et " -"renvoient une paire de valeurs au lieu de renvoyer leur seconde valeur de " -"retour dans un 'paramètre de sortie' (il n'y a pas de telle possibilité en " -"Python)." +"différent de leur homologue C : elles prennent un seul argument et renvoient " +"une paire de valeurs au lieu de placer la seconde valeur de retour dans un " +"*paramètre de sortie* (cela n'existe pas en Python)." #: ../Doc/library/math.rst:214 msgid "" @@ -360,7 +361,7 @@ msgid "" msgstr "" "Pour les fonctions :func:`ceil`, :func:`floor`, et :func:`modf`, notez que " "*tous* les nombres flottants de magnitude suffisamment grande sont des " -"entiers exacts. Les flottants de Python n'ont typiquement pas plus de 53 " +"entiers exacts. Les flottants de Python n'ont généralement pas plus de 53 " "*bits* de précision (tels que le type C ``double`` de la plate-forme), en " "quel cas tout flottant *x* tel que ``abs(x) >= 2**52`` n'a aucun *bit* " "fractionnel." @@ -375,7 +376,7 @@ msgid "" "natural logarithms. This is usually more accurate than ``math.e ** x`` or " "``pow(math.e, x)``." msgstr "" -"Renvoie *e* élevé à la puissance *x*, où *e* = 2.718281... est la base des " +"Renvoie *e* à la puissance *x*, où *e* = 2.718281… est la base des " "logarithmes naturels. Cela est en général plus précis que ``math.e ** x`` ou " "``pow(math.e, x)``." @@ -418,7 +419,7 @@ msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" -"Renvoie le logarithme en base 2 de *x*. C'est habituellement plus exact que " +"Renvoie le logarithme en base 2 de *x*. C'est en général plus précis que " "``log(x, 2)``." #: ../Doc/library/math.rst:271 @@ -512,7 +513,7 @@ msgstr "" #: ../Doc/library/math.rst:341 msgid "Return the sine of *x* radians." -msgstr "Renvoie le sinus de*x* radians." +msgstr "Renvoie le sinus de *x* radians." #: ../Doc/library/math.rst:346 msgid "Return the tangent of *x* radians." @@ -601,9 +602,9 @@ msgid "" msgstr "" "Renvoie la fonction d'erreur complémentaire en *x*. La `fonction d'erreur " "complémentaire `_ est " -"définie par ``1.0 - erf(x)``. C'est utilisé pour de grandes valeurs de *x* " -"où une soustraction d'un causerait une `perte de précision `_\\." +"définie par ``1.0 - erf(x)``. Elle est utilisée pour les grandes valeurs de " +"*x*, où la soustraction en partant de 1,0 entraînerait une `perte de " +"précision `_\\." #: ../Doc/library/math.rst:431 msgid "" @@ -627,13 +628,11 @@ msgstr "Constantes" #: ../Doc/library/math.rst:450 msgid "The mathematical constant *π* = 3.141592..., to available precision." -msgstr "" -"La constante mathématique *π* = 3.141592..., à la précision disponible." +msgstr "La constante mathématique *π* = 3.141592…, à la précision disponible." #: ../Doc/library/math.rst:455 msgid "The mathematical constant *e* = 2.718281..., to available precision." -msgstr "" -"La constante mathématique *e* = 2.718281..., à la précision disponible." +msgstr "La constante mathématique *e* = 2.718281…, à la précision disponible." #: ../Doc/library/math.rst:460 msgid "" @@ -643,7 +642,7 @@ msgid "" "(still) Wrong `_, and start " "celebrating `Tau day `_ by eating twice as much pie!" msgstr "" -"La constante mathématique *τ* = 6.283185..., à la précision disponible. Tau " +"La constante mathématique *τ* = 6.283185…, à la précision disponible. Tau " "est une constante du cercle égale à 2 \\*π*, le rapport de la circonférence " "d'un cercle à son rayon. Pour en apprendre plus sur Tau, regardez la vidéo " "de Vi Hart, `Pi is (still) Wrong \n" +"PO-Revision-Date: 2019-05-23 21:40+0200\n" +"Last-Translator: Paul Bourhis \n" "Language-Team: FRENCH \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" #: ../Doc/library/os.path.rst:2 msgid ":mod:`os.path` --- Common pathname manipulations" -msgstr "" +msgstr ":mod:`os.path` — manipulation courante des chemins" #: ../Doc/library/os.path.rst:7 msgid "" "**Source code:** :source:`Lib/posixpath.py` (for POSIX), :source:`Lib/ntpath." "py` (for Windows NT), and :source:`Lib/macpath.py` (for Macintosh)" msgstr "" +"**Code source :** :source:`Lib/posixpath.py` (pour POSIX), :source:`Lib/" +"ntpath.py` (pour Windows NT), et :source:`Lib/macpath.py` (pour Macintosh)" #: ../Doc/library/os.path.rst:15 msgid "" @@ -37,6 +40,20 @@ msgid "" "encoding), hence Windows applications should use string objects to access " "all files." msgstr "" +"Ce module implémente certaines fonctions utiles sur le nom des chemins. Pour " +"lire ou écrire des fichiers, voir :func:`open`, et pour accéder au système " +"de fichier, voir le module :mod:`os`. Les paramètres de chemin d’accès " +"peuvent être passés sous forme de chaînes de caractères ou de chaîne " +"d'octets. Les programmes sont encouragés à représenter les noms de fichiers " +"en tant que chaînes de caractères Unicode. Malheureusement, certains noms de " +"fichiers peuvent ne pas être représentés sous forme de chaînes de caractères " +"sous UNIX, ainsi, les programmes qui doivent prendre en charge les noms de " +"fichiers arbitraires sur UNIX doivent utiliser des chaînes d'octets pour " +"représenter leurs chemins d’accès. Inversement, l’utilisation de chaîne " +"d'octets ne peut pas représenter tous les noms de fichiers sous Windows " +"(dans le codage ``mbcs`` standard), par conséquent les applications Windows " +"doivent utiliser des chaînes de caractères Unicode pour accéder à tous les " +"fichiers." #: ../Doc/library/os.path.rst:26 msgid "" @@ -45,6 +62,11 @@ msgid "" "explicitly when an application desires shell-like path expansion. (See also " "the :mod:`glob` module.)" msgstr "" +"Contrairement à une invite de commandes Unix, Python ne fait aucune " +"extension de chemin *automatique*. Des fonctions telles que :func:" +"`expanduser` et :func:`expandvars` peuvent être appelées explicitement " +"lorsqu'une application souhaite une extension de chemin semblable à celui " +"d'une invite de commande (voir aussi le module :mod:`glob`)." #: ../Doc/library/os.path.rst:33 msgid "The :mod:`pathlib` module offers high-level path objects." @@ -58,6 +80,9 @@ msgid "" "their parameters. The result is an object of the same type, if a path or " "file name is returned." msgstr "" +"Toutes ces fonctions n'acceptent que des chaînes d'octets ou des chaînes de " +"caractères en tant que paramètres. Le résultat est un objet du même type si " +"un chemin ou un nom de fichier est renvoyé." #: ../Doc/library/os.path.rst:45 msgid "" @@ -69,18 +94,25 @@ msgid "" "path that is *always* in one of the different formats. They all have the " "same interface:" msgstr "" +"Comme les différents systèmes d'exploitation ont des conventions de noms de " +"chemins différentes, il existe plusieurs versions de ce module dans la " +"bibliothèque standard. Le module :mod:`os.path` est toujours le module de " +"chemin adapté au système d'exploitation sur lequel Python tourne, et donc " +"adapté pour les chemins locaux. Cependant, vous pouvez également importer et " +"utiliser les modules individuels si vous voulez manipuler un chemin qui est " +"*toujours* dans l'un des différents formats. Ils ont tous la même interface :" #: ../Doc/library/os.path.rst:53 msgid ":mod:`posixpath` for UNIX-style paths" -msgstr "" +msgstr ":mod:`posixpath` pour les chemins de type UNIX" #: ../Doc/library/os.path.rst:54 msgid ":mod:`ntpath` for Windows paths" -msgstr "" +msgstr ":mod:`ntpath` pour les chemins Windows" #: ../Doc/library/os.path.rst:55 msgid ":mod:`macpath` for old-style MacOS paths" -msgstr "" +msgstr ":mod:`macpath` pour l'ancienne forme des chemins MacOS" #: ../Doc/library/os.path.rst:60 msgid "" @@ -88,6 +120,9 @@ msgid "" "platforms, this is equivalent to calling the function :func:`normpath` as " "follows: ``normpath(join(os.getcwd(), path))``." msgstr "" +"Renvoie une version absolue et normalisée du chemin d'accès *path*. Sur la " +"plupart des plates-formes, cela équivaut à appeler la fonction :func:" +"`normpath` comme suit : ``normpath(join(os.getcwd(), chemin))```." #: ../Doc/library/os.path.rst:64 ../Doc/library/os.path.rst:77 #: ../Doc/library/os.path.rst:116 ../Doc/library/os.path.rst:125 @@ -113,6 +148,11 @@ msgid "" "program; where :program:`basename` for ``'/foo/bar/'`` returns ``'bar'``, " "the :func:`basename` function returns an empty string (``''``)." msgstr "" +"Renvoie le nom de base du chemin d'accès *path*. C'est le second élément de " +"la paire renvoyée en passant *path* à la fonction :func:`split`. Notez que " +"le résultat de cette fonction est différent de celui du programme Unix :" +"program:`basename` ; là où :program:`basename` pour ``'/foo/bar/'`` renvoie " +"``'bar'``, la fonction :func:`basename` renvoie une chaîne vide (``''``)." #: ../Doc/library/os.path.rst:83 msgid "" diff --git a/library/os.po b/library/os.po index a0f2cac6b..7d159a392 100644 --- a/library/os.po +++ b/library/os.po @@ -246,7 +246,7 @@ msgid "" "``environ['HOME']`` is the pathname of your home directory (on some " "platforms), and is equivalent to ``getenv(\"HOME\")`` in C." msgstr "" -"Un objet :term:`mapping` représentant la variable d'environnement. Par " +"Un objet :term:`mapping` représentant les variables d'environnement. Par " "exemple ``environ['HOME']`` est le chemin vers votre répertoire d’accueil " "(sur certaines plate-formes), et est équivalent à ``getenv(\"HOME\")`` en C." diff --git a/library/pathlib.po b/library/pathlib.po index 173af7772..fe4967d43 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -74,12 +74,12 @@ msgstr "" "Vous voulez être sûr que votre code manipule des chemins sans réellement " "accéder au système d'exploitation. Dans ce cas, instancier une de ces " "classes pures peut être utile puisqu'elle ne possède tout simplement aucune " -"opérations permettant d'accéder au système d'exploitation." +"opération permettant d'accéder au système d'exploitation." #: ../Doc/library/pathlib.rst:39 msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." msgstr "" -":pep:`428`: Le module *pathlib* -- chemins de système de fichiers orientés " +":pep:`428` : Le module *pathlib* -- chemins de système de fichiers orientés " "objet." #: ../Doc/library/pathlib.rst:42 @@ -324,7 +324,7 @@ msgstr "Un tuple donnant accès aux différentes composantes du chemin ::" #: ../Doc/library/pathlib.rst:268 msgid "(note how the drive and local root are regrouped in a single part)" msgstr "" -"(notez comme le lecteur et la racine locale sont regroupée en une seule " +"(notez comme le lecteur et la racine locale sont regroupés en une seule " "partie)" #: ../Doc/library/pathlib.rst:272 @@ -440,7 +440,7 @@ msgid "" "``False`` is always returned." msgstr "" "Avec :class:`PureWindowsPath`, renvoie ``True`` si le chemin est considéré " -"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " +"réservé sous Windows, ``False`` sinon. Avec :class:`PurePosixPath`, " "``False`` est systématiquement renvoyé." #: ../Doc/library/pathlib.rst:476 @@ -492,7 +492,7 @@ msgid "" "Compute a version of this path relative to the path represented by *other*. " "If it's impossible, ValueError is raised::" msgstr "" -"Calcule une version du chemin en relatif au chemin représenté par *other*. " +"Calcule une version du chemin en relatif au chemin représenté par *other*. " "Si c'est impossible, ValueError est levée ::" #: ../Doc/library/pathlib.rst:544 @@ -543,7 +543,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PurePosixPath`, this class " "represents concrete non-Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PurePosixPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PurePosixPath`, cette classe " "représente les chemins concrets de systèmes de fichiers non Windows ::" #: ../Doc/library/pathlib.rst:609 @@ -551,7 +551,7 @@ msgid "" "A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " "represents concrete Windows filesystem paths::" msgstr "" -"Une sous classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " +"Une sous-classe de :class:`Path` et :class:`PureWindowsPath`, cette classe " "représente les chemins concrets de systèmes de fichiers Windows ::" #: ../Doc/library/pathlib.rst:617 @@ -593,8 +593,7 @@ msgid "" "by :func:`os.path.expanduser` with ``~`` construct)::" msgstr "" "Renvoie un nouveau chemin représentant le dossier d’accueil de l'utilisateur " -"(comme retourné par :func:`os.path.expanduser` avec la construction " -"``~`` ) ::" +"(comme renvoyé par :func:`os.path.expanduser` avec la construction ``~`` ) ::" #: ../Doc/library/pathlib.rst:665 msgid "" @@ -607,7 +606,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:679 msgid "Change the file mode and permissions, like :func:`os.chmod`::" msgstr "" -"Change le mode et les permissions du fichiers, comme :func:`os.chmod` ::" +"Change le mode et les permissions du fichier, comme :func:`os.chmod` ::" #: ../Doc/library/pathlib.rst:691 msgid "Whether the path points to an existing file or directory::" @@ -670,7 +669,7 @@ msgid "" "pointing to a directory), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un dossier (ou un lien symbolique " -"pointant vers un dossier), ``False`` si il pointe vers une autre sorte de " +"pointant vers un dossier), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:755 ../Doc/library/pathlib.rst:764 @@ -690,7 +689,7 @@ msgid "" "pointing to a regular file), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un fichier normal (ou un lien " -"symbolique pointe vers un fichier normal), ``False`` si il pointe vers une " +"symbolique pointe vers un fichier normal), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:770 @@ -730,8 +729,8 @@ msgid "" "pointing to a Unix socket), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un connecteur Unix (ou un lien " -"symbolique pointant vers un connecteur Unix), ``False`` si il pointe vers " -"une autre sorte de fichier." +"symbolique pointant vers un connecteur Unix), ``False`` s'il pointe vers une " +"autre sorte de fichier." #: ../Doc/library/pathlib.rst:799 msgid "" @@ -739,7 +738,7 @@ msgid "" "a FIFO), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers une FIFO (ou un lien symbolique " -"pointant vers une FIFO), ``False`` si il pointe vers une autre sorte de " +"pointant vers une FIFO), ``False`` s'il pointe vers une autre sorte de " "fichier." #: ../Doc/library/pathlib.rst:808 @@ -748,7 +747,7 @@ msgid "" "pointing to a block device), ``False`` if it points to another kind of file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique (ou un lien " -"symbolique pointant vers un périphérique), ``False`` si il pointe vers une " +"symbolique pointant vers un périphérique), ``False`` s'il pointe vers une " "autre sorte de fichier." #: ../Doc/library/pathlib.rst:817 @@ -758,8 +757,8 @@ msgid "" "file." msgstr "" "Renvoie ``True`` si le chemin pointe vers un périphérique à caractères (ou " -"un lien symbolique pointant vers un périphérique à caractères), ``False`` si " -"il pointe vers une autre sorte de fichier." +"un lien symbolique pointant vers un périphérique à caractères), ``False`` " +"s'il pointe vers une autre sorte de fichier." #: ../Doc/library/pathlib.rst:826 msgid "" @@ -802,7 +801,7 @@ msgid "" "needed; they are created with the default permissions without taking *mode* " "into account (mimicking the POSIX ``mkdir -p`` command)." msgstr "" -"Si *parents* est vrai, chaque parents de ce chemin est créé si besoin ; il " +"Si *parents* est vrai, chaque parent de ce chemin est créé si besoin ; ils " "sont créés avec les permissions par défaut sans prendre en compte *mode* " "(reproduisant la commande POSIX ``mkdir -p``)." @@ -828,8 +827,8 @@ msgid "" "(same behavior as the POSIX ``mkdir -p`` command), but only if the last path " "component is not an existing non-directory file." msgstr "" -"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " -"ignorée (même comportement que la commande POSIX ``mkdir -p``), mais " +"If *exist_ok* est vrai, les exceptions :exc:`FileExistsError` seront " +"ignorées (même comportement que la commande POSIX ``mkdir -p``), mais " "seulement si le dernier segment de chemin existe et n'est pas un dossier." #: ../Doc/library/pathlib.rst:873 @@ -849,7 +848,7 @@ msgid "" "Return the name of the user owning the file. :exc:`KeyError` is raised if " "the file's uid isn't found in the system database." msgstr "" -"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" +"Renvoie le nom de l'utilisateur auquel appartient le fichier. :exc:" "`KeyError` est levée si l'identifiant utilisateur du fichier n'est pas " "trouvé dans la base de données du système." @@ -869,7 +868,7 @@ msgid "" "meaning as in :func:`open`." msgstr "" "Le fichier est ouvert, puis fermé. Les paramètres optionnels ont la même " -"signification que dans :func:`open`." +"signification que dans :func:`open`." #: ../Doc/library/pathlib.rst:926 msgid "" @@ -952,7 +951,7 @@ msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." msgstr "" -":exc:`OSError` peut être levée si l'un des fichier ne peut être accédé pour " +":exc:`OSError` peut être levée si l'un des fichiers ne peut être accédé pour " "quelque raison." #: ../Doc/library/pathlib.rst:1012 @@ -1005,7 +1004,7 @@ msgstr "" #: ../Doc/library/pathlib.rst:1058 msgid "An existing file of the same name is overwritten." -msgstr "Un fichier existant au même nom est écrasé." +msgstr "Le fichier du même nom, s'il existe, est écrasé." #: ../Doc/library/pathlib.rst:1065 msgid "" diff --git a/library/pdb.po b/library/pdb.po index 5ec8a20af..502b1d369 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -117,7 +117,7 @@ msgid "" "insert ::" msgstr "" "L'usage typique pour forcer le débogueur depuis un programme s'exécutant est " -"d'insérer ::" +"d'insérer ::" #: ../Doc/library/pdb.rst:75 msgid "" diff --git a/library/pickle.po b/library/pickle.po index 98a8f7ac0..9afa57065 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -905,7 +905,7 @@ msgstr "" #: ../Doc/library/pickle.rst:686 msgid "For example ::" -msgstr "Par exemple ::" +msgstr "Par exemple ::" #: ../Doc/library/pickle.rst:693 msgid "" @@ -989,7 +989,7 @@ msgstr "" #: ../Doc/library/pickle.rst:861 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/library/pickle.rst:863 msgid "" diff --git a/library/pickletools.po b/library/pickletools.po index a399ee987..a8213e814 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/pickletools.rst:21 msgid "Command line usage" -msgstr "" +msgstr "Utilisation de la ligne de commande" #: ../Doc/library/pickletools.rst:25 msgid "" diff --git a/library/platform.po b/library/platform.po index 2b6b1b5af..ac46c1e6f 100644 --- a/library/platform.po +++ b/library/platform.po @@ -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,16 +135,22 @@ msgid "" "SunOS will be reported as Solaris. The :func:`system_alias` function is " "used to implement this." msgstr "" +"Si *aliased* est vrai, la fonction utilisera des alias pour certaines " +"plateformes qui utilisent des noms de système qui diffèrent de leurs noms " +"communs. Par exemple, SunOS sera reconnu comme Solaris. La fonction :func:" +"`system_alias` est utilisée pour l'implémentation." #: ../Doc/library/platform.rst:79 msgid "" "Setting *terse* to true causes the function to return only the absolute " "minimum information needed to identify the platform." msgstr "" +"Si *terse* est vrai, la fonction ne renverra que l'information nécessaire à " +"l'identification de la plateforme." #: ../Doc/library/platform.rst:85 msgid "Returns the (real) processor name, e.g. ``'amdk6'``." -msgstr "" +msgstr "Renvoie le (vrai) nom du processeur. Par exemple : ``'amdk6'``." #: ../Doc/library/platform.rst:87 msgid "" @@ -121,58 +158,83 @@ msgid "" "many platforms do not provide this information or simply return the same " "value as for :func:`machine`. NetBSD does this." msgstr "" +"Une chaîne de caractères vide est renvoyée si la valeur ne peut être " +"déterminée. Prenez note que plusieurs plateformes ne fournissent pas cette " +"information ou renvoient la même valeur que la fonction :func:`machine`. " +"NetBSD agit ainsi." #: ../Doc/library/platform.rst:94 msgid "" "Returns a tuple ``(buildno, builddate)`` stating the Python build number and " "date as strings." msgstr "" +"Renvoie une paire ``(buildno, builddate)`` de chaîne de caractères " +"identifiant la version et la date de compilation de Python." #: ../Doc/library/platform.rst:100 msgid "Returns a string identifying the compiler used for compiling Python." msgstr "" +"Renvoie une chaîne de caractères identifiant le compilateur utilisé pour " +"compiler Python." #: ../Doc/library/platform.rst:105 msgid "Returns a string identifying the Python implementation SCM branch." msgstr "" +"Renvoie la chaîne de caractères identifiant la branche du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:110 msgid "" "Returns a string identifying the Python implementation. Possible return " "values are: 'CPython', 'IronPython', 'Jython', 'PyPy'." msgstr "" +"Renvoie une chaîne de caractères identifiant l'implémentation de Python. Des " +"valeurs possibles sont : ``CPython``, ``IronPython``, ``Jython``, ``Pypy``." #: ../Doc/library/platform.rst:116 msgid "Returns a string identifying the Python implementation SCM revision." msgstr "" +"Renvoie la chaîne de caractères identifiant la révision du gestionnaire de " +"versions de l'implémentation Python." #: ../Doc/library/platform.rst:121 msgid "Returns the Python version as string ``'major.minor.patchlevel'``." msgstr "" +"Renvoie la version de Python comme une chaîne de caractères ``'major.minor." +"patchlevel'``." #: ../Doc/library/platform.rst:123 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to 0)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de 0) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:129 msgid "" "Returns the Python version as tuple ``(major, minor, patchlevel)`` of " "strings." msgstr "" +"Renvoie la version de Python comme un triplet de chaînes de caractères " +"``(major, minor, patchlevel)``." #: ../Doc/library/platform.rst:131 msgid "" "Note that unlike the Python ``sys.version``, the returned value will always " "include the patchlevel (it defaults to ``'0'``)." msgstr "" +"Prenez note que la valeur renvoyée inclut toujours le *patchlevel* (valeur " +"par défaut de ``'0'``) à la différence de ``sys.version``." #: ../Doc/library/platform.rst:137 msgid "" "Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string " "is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système, par exemple, ``'2.2.0'`` ou " +"``'NT'``. Une chaîne de caractères vide signifie qu'aucune valeur ne peut " +"être déterminée." #: ../Doc/library/platform.rst:143 msgid "" @@ -186,12 +248,18 @@ msgid "" "used for some systems. It also does some reordering of the information in " "some cases where it would otherwise cause confusion." msgstr "" +"Renvoie ``(system, release, version)`` avec des alias pour les noms communs " +"de certains systèmes. Modifie aussi l'ordre de l'information pour éviter la " +"confusion." #: ../Doc/library/platform.rst:156 msgid "" "Returns the system's release version, e.g. ``'#3 on degas'``. An empty " "string is returned if the value cannot be determined." msgstr "" +"Renvoie la version de déploiement du système. Par exemple, ``'#3 on " +"degas'``. Une chaîne de caractères vide est renvoyée si aucune valeur ne " +"peut être déterminée." #: ../Doc/library/platform.rst:162 msgid "" @@ -199,6 +267,9 @@ msgid "" "containing six attributes: :attr:`system`, :attr:`node`, :attr:`release`, :" "attr:`version`, :attr:`machine`, and :attr:`processor`." msgstr "" +"Interface de *uname* relativement portable. Renvoie un :func:`~collections." +"namedtuple` contenant six attributs : :attr:`system`, :attr:`node`, :attr:" +"`release`, :attr:`version`, :attr:`machine` et :attr:`processor`." #: ../Doc/library/platform.rst:166 msgid "" @@ -207,10 +278,14 @@ msgid "" "the first two attributes; :func:`os.uname` names them :attr:`sysname` and :" "attr:`nodename`." msgstr "" +"Prenez note qu'il y a un attribut supplémentaire (:attr:`processor`) par " +"rapport à la valeur de retour de :func:`os.uname`. De plus, les deux " +"premiers attributs changent de nom ; ils s'appellent :attr:`sysname` et :" +"attr:`nodename` pour la fonction :func:`os.uname`." #: ../Doc/library/platform.rst:171 msgid "Entries which cannot be determined are set to ``''``." -msgstr "" +msgstr "Les entrées qui ne peuvent pas être identifiées ont la valeur ``''``." #: ../Doc/library/platform.rst:173 msgid "Result changed from a tuple to a namedtuple." @@ -218,11 +293,11 @@ msgstr "Le type renvoyé passe d'un *tuple* à un *namedtuple*." #: ../Doc/library/platform.rst:178 msgid "Java Platform" -msgstr "" +msgstr "Plateforme Java" #: ../Doc/library/platform.rst:183 msgid "Version interface for Jython." -msgstr "" +msgstr "Version de l'interface pour Jython." #: ../Doc/library/platform.rst:185 msgid "" @@ -231,10 +306,15 @@ msgid "" "``(os_name, os_version, os_arch)``. Values which cannot be determined are " "set to the defaults given as parameters (which all default to ``''``)." msgstr "" +"Renvoie un *n*-uplet ``(release, vendor, vminfo, osinfo)``. *vminfo* est un " +"triplet de valeur ``(vm_name, vm_release, vm_vendor)`` et *osinfo* est un " +"triplet de valeur ``(os_name, os_version, os_arch)``. Les valeurs " +"indéterminables ont la valeur des paramètres par défaut (valeur de ``''`` " +"par défaut)." #: ../Doc/library/platform.rst:192 msgid "Windows Platform" -msgstr "" +msgstr "Plateforme Windows" #: ../Doc/library/platform.rst:197 msgid "" @@ -242,6 +322,10 @@ msgid "" "tuple ``(release, version, csd, ptype)`` referring to OS release, version " "number, CSD level (service pack) and OS type (multi/single processor)." msgstr "" +"Interroge le registre Windows pour de l'information supplémentaire et " +"renvoie un triplet de ``(release, version, csd, ptype)`` faisant référence " +"au numéro de version du SE, le numéro de version, le niveau de CSD (Service " +"Pack) et le type de SE (monoprocesseur ou multiprocesseur)." #: ../Doc/library/platform.rst:201 msgid "" @@ -251,6 +335,11 @@ msgid "" "also state *'Checked'* which means the OS version uses debugging code, i.e. " "code that checks arguments, ranges, etc." msgstr "" +"Astuce : *ptype* est ``'Uniprocessor Free'`` sur des machines NT ayant qu'un " +"seul processeur et ``'Multiprocessor Free'`` sur des machines ayant " +"plusieurs processeurs. La composante *'Free'* fait référence à l'absence de " +"code de débogage dans le SE. Au contraire, *'Checked'* indique que le SE " +"utilise du code de débogage pour valider les paramètres, etc." #: ../Doc/library/platform.rst:209 msgid "" @@ -278,7 +367,7 @@ msgstr "" #: ../Doc/library/platform.rst:230 msgid "Mac OS Platform" -msgstr "" +msgstr "Plateforme Mac OS" #: ../Doc/library/platform.rst:235 msgid "" @@ -286,16 +375,21 @@ msgid "" "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " "dev_stage, non_release_version)``." msgstr "" +"Renvoie les informations de version de Mac OS avec un triplet de ``(release, " +"versioninfo, machine)``. *versioninfo* est un triplet de ``(version, " +"dev_stage, non_release_version)``." #: ../Doc/library/platform.rst:239 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." msgstr "" +"Les entrées qui ne peuvent pas être identifiées auront la valeur ``''``. Les " +"membres du *n*-uplet sont tous des chaînes de caractères." #: ../Doc/library/platform.rst:244 msgid "Unix Platforms" -msgstr "" +msgstr "Plateformes Unix" #: ../Doc/library/platform.rst:249 msgid "This is another name for :func:`linux_distribution`." @@ -338,6 +432,10 @@ msgid "" "``(lib, version)`` which default to the given parameters in case the lookup " "fails." msgstr "" +"Tente d'identifier la version de la bibliothèque standard C à laquelle le " +"fichier exécutable (par défaut l'interpréteur Python) est lié. Renvoie une " +"paire de chaînes de caractères ``(lib, version)``. Les valeurs passées en " +"paramètre seront retournées si la recherche échoue." #: ../Doc/library/platform.rst:279 msgid "" @@ -345,7 +443,11 @@ msgid "" "versions add symbols to the executable is probably only usable for " "executables compiled using :program:`gcc`." msgstr "" +"Prenez note que cette fonction a une connaissance profonde des méthodes " +"utilisées par les versions de la bibliothèque standard C pour ajouter des " +"symboles au fichier exécutable. Elle n'est probablement utilisable qu'avec " +"des exécutables compilés avec :program:`gcc`." #: ../Doc/library/platform.rst:283 msgid "The file is read and scanned in chunks of *chunksize* bytes." -msgstr "" +msgstr "Le fichier est lu en blocs de *chunksize* octets." diff --git a/library/posix.po b/library/posix.po index f209a2eb4..52fe8823d 100644 --- a/library/posix.po +++ b/library/posix.po @@ -99,7 +99,7 @@ msgstr "" msgid "On large-file-capable Linux systems, this might work::" msgstr "" "Sur les systèmes Linux capable de supporter les fichiers volumineux, cela " -"pourrait fonctionner:" +"pourrait fonctionner ::" #: ../Doc/library/posix.rst:65 msgid "Notable Module Contents" diff --git a/library/pty.po b/library/pty.po index 89336291b..99229e739 100644 --- a/library/pty.po +++ b/library/pty.po @@ -72,7 +72,6 @@ msgstr "" "slave)``, pour le maître et pour l'esclave respectivement." #: ../Doc/library/pty.rst:44 -#, fuzzy msgid "" "Spawn a process, and connect its controlling terminal with the current " "process's standard io. This is often used to baffle programs which insist on " @@ -81,7 +80,7 @@ msgid "" "will return." msgstr "" "Crée un nouveau processus et connecte son terminal aux entrées/sorties " -"standard du processus courant. C'est typiquement utilisé pour duper les " +"standard du processus courant. C'est typiquement utilisé pour duper les " "programmes insistant sur le fait de lire depuis leur terminal." #: ../Doc/library/pty.rst:50 @@ -91,6 +90,10 @@ msgid "" "order to force spawn to return before the child process exits an :exc:" "`OSError` should be thrown." msgstr "" +"Les fonctions `master_read` et `stdin_read` reçoivent un descripteur de " +"fichier qu'elles doivent lire, et elles doivent toujours renvoyer une chaîne " +"d'octets. Afin de forcer le *spawn* à faire un renvoi avant que le processus " +"enfant ne se termine, une exception :exc:`OSError` doit être levée." #: ../Doc/library/pty.rst:55 msgid "" @@ -100,6 +103,11 @@ msgid "" "child process, and *stdin_read* is passed file descriptor 0, to read from " "the parent process's standard input." msgstr "" +"L'implémentation par défaut pour les deux fonctions lit et renvoie jusqu'à " +"1024 octets à chaque appel de la fonction. La fonction de rappel " +"`master_read` reçoit le descripteur de fichier du pseudo-terminal maître " +"pour lire la sortie du processus enfant, et `stdin_read` reçoit le " +"descripteur de fichier 0, pour lire l'entrée standard du processus parent." #: ../Doc/library/pty.rst:61 msgid "" @@ -110,6 +118,13 @@ msgid "" "quit without any input, *spawn* will then loop forever. If *master_read* " "signals EOF the same behavior results (on linux at least)." msgstr "" +"Le renvoi d'une chaîne d'octets vide à partir de l'un ou l'autre des rappels " +"est interprété comme une condition de fin de fichier (EOF), et ce rappel ne " +"sera pas appelé après cela. Si *stdin_read* signale EOF, le terminal de " +"contrôle ne peut plus communiquer avec le processus parent OU le processus " +"enfant. À moins que le processus enfant ne quitte sans aucune entrée, " +"*spawn* sera lancé dans une boucle infinie. Si `master_read` indique la fin " +"de fichier, on aura le même comportement (sur Linux au moins)." #: ../Doc/library/pty.rst:68 msgid "" @@ -118,6 +133,10 @@ msgid "" "This is a bug, documented in `issue 26228 `_." msgstr "" +"Si les deux fonctions de rappel indiquent la fin de fichier (*EOF*), alors " +"*spawn* ne fera probablement jamais de renvoi, à moins que *select* ne lance " +"une erreur sur votre plateforme lors du passage de trois listes vides. Il " +"s'agit d'un bogue, renseigné dans ``_." #: ../Doc/library/pty.rst:73 msgid "" diff --git a/library/py_compile.po b/library/py_compile.po index b6a479c50..6c0d0af20 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -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,14 @@ msgid "" "a side-effect of import using file renaming to place the final byte-compiled " "file into place to prevent concurrent file writing issues." msgstr "" +"Si le chemin de destination, explicité par *cfile* ou choisi " +"automatiquement, est un lien symbolique, ou n'est pas un véritable fichier, " +"une exception de type :exc:`FileExistsError` est levée. Ceci, dans le but de " +"vous avertir que le système d'importation changera ces chemins en fichiers " +"s'il est autorisé à y écrire des fichiers de code intermédiaire. En effet, " +"les importations passent par un renommage final du fichier de code " +"intermédiaire vers sa destination, afin d'éviter les problèmes liés à " +"l'écriture simultanée d'un même fichier par plusieurs processus." #: ../Doc/library/py_compile.rst:52 msgid "" @@ -72,6 +87,10 @@ msgid "" "func:`compile` function. The default of ``-1`` selects the optimization " "level of the current interpreter." msgstr "" +"*optimize* règle le niveau d'optimisation. Ce paramètre est passé " +"directement à la fonction native :func:`compile`. Avec la valeur par défaut " +"de ``-1``, le code intermédiaire hérite du niveau d'optimisation de " +"l'interpréteur courant." #: ../Doc/library/py_compile.rst:56 msgid "" @@ -81,6 +100,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:62 msgid "" @@ -88,6 +112,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:67 msgid "" @@ -97,6 +125,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:74 msgid "" @@ -105,6 +139,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:80 msgid "" @@ -112,6 +150,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:88 msgid "" @@ -121,6 +162,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:98 msgid "" @@ -128,6 +175,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:104 msgid "" @@ -135,6 +185,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:110 msgid "" @@ -142,12 +195,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:114 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:120 msgid "" @@ -158,10 +216,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:127 msgid "Added support for ``'-'``." -msgstr "" +msgstr "prise en charge de ``'-'``." #: ../Doc/library/py_compile.rst:130 msgid "" @@ -169,11 +233,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:137 msgid "Module :mod:`compileall`" -msgstr "" +msgstr "Module :mod:`compileall`" #: ../Doc/library/py_compile.rst:138 msgid "Utilities to compile all Python source files in a directory tree." msgstr "" +"Utilitaires pour compiler des fichiers source Python dans une arborescence" diff --git a/library/pydoc.po b/library/pydoc.po index 9be0c0827..78175be6d 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -64,7 +64,7 @@ msgstr "" "l’interpréteur Python qui utilise :mod:`pydoc` pour générer sa documentation " "sous forme textuelle dans la console. Cette même documentation peut aussi " "être consultée à l’extérieur de l’interpréteur Python en lançant :program:" -"`pydoc` dans le terminal du système d’exploitation. Par exemple en lançant ::" +"`pydoc` dans le terminal du système d’exploitation. Par exemple en lançant ::" #: ../Doc/library/pydoc.rst:38 msgid "" diff --git a/library/random.po b/library/random.po index 4ad8e38df..909e6f2a2 100644 --- a/library/random.po +++ b/library/random.po @@ -110,12 +110,18 @@ msgid "" "uses the system function :func:`os.urandom` to generate random numbers from " "sources provided by the operating system." msgstr "" +"Le module :mod:`random` fournit également la classe :class:`SystemRandom` " +"qui utilise la fonction système :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation." #: ../Doc/library/random.rst:48 msgid "" "The pseudo-random generators of this module should not be used for security " "purposes. For security or cryptographic uses, see the :mod:`secrets` module." msgstr "" +"Les générateurs pseudo-aléatoires de ce module ne doivent pas être utilisés " +"à des fins de sécurité. Pour des utilisations de sécurité ou " +"cryptographiques, voir le module :mod:`secrets`." #: ../Doc/library/random.rst:54 msgid "" @@ -123,6 +129,9 @@ msgid "" "equidistributed uniform pseudorandom number generator\", ACM Transactions on " "Modeling and Computer Simulation Vol. 8, No. 1, January pp.3--30 1998." msgstr "" +"*M. Matsumoto and T. Nishimura, \"Mersenne Twister: A 623-dimensionally " +"equidistributed uniform pseudorandom number generator\", ACM Transactions on " +"Modeling and Computer Simulation Vol. 8, No. 1,* Janvier pp.3--30 1998." #: ../Doc/library/random.rst:59 msgid "" @@ -130,14 +139,17 @@ msgid "" "recipes/576707/>`_ for a compatible alternative random number generator with " "a long period and comparatively simple update operations." msgstr "" +"`Complementary-Multiply-with-Carry recipe `_ pour un autre générateur de nombres aléatoires avec une " +"longue période et des opérations de mise à jour relativement simples." #: ../Doc/library/random.rst:66 msgid "Bookkeeping functions" -msgstr "" +msgstr "Fonctions de gestion d'état" #: ../Doc/library/random.rst:70 msgid "Initialize the random number generator." -msgstr "" +msgstr "Initialise le générateur de nombres aléatoires." #: ../Doc/library/random.rst:72 msgid "" @@ -146,10 +158,14 @@ msgid "" "instead of the system time (see the :func:`os.urandom` function for details " "on availability)." msgstr "" +"Si *a* est omis ou ``None``, l'heure système actuelle est utilisée. Si des " +"sources aléatoires sont fournies par le système d'exploitation, elles sont " +"utilisées à la place de l'heure système (voir la fonction :func:`os.urandom` " +"pour les détails sur la disponibilité)." #: ../Doc/library/random.rst:77 msgid "If *a* is an int, it is used directly." -msgstr "" +msgstr "Si *a* est un entier, il est utilisé directement." #: ../Doc/library/random.rst:79 msgid "" @@ -157,6 +173,9 @@ msgid "" "`bytearray` object gets converted to an :class:`int` and all of its bits are " "used." msgstr "" +"Avec la version 2 (par défaut), un objet :class:`str`, :class:`bytes` ou :" +"class:`bytearray` est converti en :class:`int` et tous ses bits sont " +"utilisés." #: ../Doc/library/random.rst:82 msgid "" @@ -164,17 +183,24 @@ msgid "" "versions of Python), the algorithm for :class:`str` and :class:`bytes` " "generates a narrower range of seeds." msgstr "" +"Avec la version 1 (fournie pour reproduire des séquences aléatoires " +"produites par d'anciennes versions de Python), l'algorithme pour :class:" +"`str` et :class:`bytes` génère une gamme plus étroite de graines." #: ../Doc/library/random.rst:86 msgid "" "Moved to the version 2 scheme which uses all of the bits in a string seed." msgstr "" +"Passée à la version 2 du schéma qui utilise tous les bits d'une graine de " +"chaîne de caractères." #: ../Doc/library/random.rst:91 msgid "" "Return an object capturing the current internal state of the generator. " "This object can be passed to :func:`setstate` to restore the state." msgstr "" +"Renvoie un objet capturant l'état interne actuel du générateur. Cet objet " +"peut être passé à :func:`setstate` pour restaurer cet état." #: ../Doc/library/random.rst:97 msgid "" @@ -182,6 +208,9 @@ msgid "" "and :func:`setstate` restores the internal state of the generator to what it " "was at the time :func:`getstate` was called." msgstr "" +"Il convient que *state* ait été obtenu à partir d'un appel précédent à :func:" +"`getstate`, et :func:`setstate` restaure l'état interne du générateur à ce " +"qu'il était au moment où :func:`getstate` a été appelé." #: ../Doc/library/random.rst:104 msgid "" @@ -190,10 +219,15 @@ msgid "" "as an optional part of the API. When available, :meth:`getrandbits` enables :" "meth:`randrange` to handle arbitrarily large ranges." msgstr "" +"Renvoie un entier Python avec *k* bits aléatoires. Cette méthode est fournie " +"avec le générateur MersenneTwister. Quelques autres générateurs peuvent " +"également la fournir en option comme partie de l'API. Lorsqu'elle est " +"disponible, :meth:`getrandbits` permet à :meth:`randrange` de gérer des " +"gammes arbitrairement larges." #: ../Doc/library/random.rst:111 msgid "Functions for integers" -msgstr "" +msgstr "Fonctions pour les entiers" #: ../Doc/library/random.rst:116 msgid "" @@ -201,6 +235,9 @@ msgid "" "is equivalent to ``choice(range(start, stop, step))``, but doesn't actually " "build a range object." msgstr "" +"Renvoie un élément sélectionné aléatoirement à partir de ``range(start, " +"stop, step)``. C'est équivalent à ``choice(range(start, stop, step))``, " +"mais ne construit pas réellement un objet range." #: ../Doc/library/random.rst:120 msgid "" @@ -208,6 +245,9 @@ msgid "" "arguments should not be used because the function may use them in unexpected " "ways." msgstr "" +"Le motif d'argument positionnel correspond à celui de :func:`range`. " +"N'utilisez pas d'arguments nommés parce que la fonction peut les utiliser de " +"manière inattendue." #: ../Doc/library/random.rst:123 msgid "" @@ -215,28 +255,38 @@ msgid "" "values. Formerly it used a style like ``int(random()*n)`` which could " "produce slightly uneven distributions." msgstr "" +":meth:`randrange` est plus sophistiquée dans la production de valeurs " +"uniformément distribuées. Auparavant, elle utilisait un style comme " +"``int(random()*n)`` qui pouvait produire des distributions légèrement " +"inégales." #: ../Doc/library/random.rst:130 msgid "" "Return a random integer *N* such that ``a <= N <= b``. Alias for " "``randrange(a, b+1)``." msgstr "" +"Renvoie un entier aléatoire *N* tel que ``a <= N <= b``. Alias pour " +"``randrange(a, b+1)``." #: ../Doc/library/random.rst:135 msgid "Functions for sequences" -msgstr "" +msgstr "Fonctions pour les séquences" #: ../Doc/library/random.rst:139 msgid "" "Return a random element from the non-empty sequence *seq*. If *seq* is " "empty, raises :exc:`IndexError`." msgstr "" +"Renvoie un élément aléatoire de la séquence non vide *seq*. Si *seq* est " +"vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:144 msgid "" "Return a *k* sized list of elements chosen from the *population* with " "replacement. If the *population* is empty, raises :exc:`IndexError`." msgstr "" +"Renvoie une liste de taille *k* d'éléments choisis dans la *population* avec " +"remise. Si la *population* est vide, lève :exc:`IndexError`." #: ../Doc/library/random.rst:147 msgid "" @@ -248,6 +298,14 @@ msgid "" "50]``. Internally, the relative weights are converted to cumulative weights " "before making selections, so supplying the cumulative weights saves work." msgstr "" +"Si une séquence de *poids* est spécifiée, les tirages sont effectués en " +"fonction des poids relatifs. Alternativement, si une séquence *cum_weights* " +"est donnée, les tirages sont faits en fonction des poids cumulés (peut-être " +"calculés en utilisant :func:`itertools.accumulate`). Par exemple, les poids " +"relatifs ``[10, 5, 30, 5]`` sont équivalents aux poids cumulatifs ``[10, 15, " +"45, 50]``. En interne, les poids relatifs sont convertis en poids " +"cumulatifs avant d'effectuer les tirages, ce qui vous permet d'économiser du " +"travail en fournissant des pondérations cumulatives." #: ../Doc/library/random.rst:156 msgid "" @@ -256,6 +314,10 @@ msgid "" "same length as the *population* sequence. It is a :exc:`TypeError` to " "specify both *weights* and *cum_weights*." msgstr "" +"Si ni *weights* ni *cum_weights* ne sont spécifiés, les tirages sont " +"effectués avec une probabilité uniforme. Si une séquence de poids est " +"fournie, elle doit être de la même longueur que la séquence *population*. " +"Spécifier à la fois *weights* et *cum_weights* lève une :exc:`TypeError`." #: ../Doc/library/random.rst:161 msgid "" @@ -273,22 +335,35 @@ msgid "" "`choice` defaults to integer arithmetic with repeated selections to avoid " "small biases from round-off error." msgstr "" +"Pour une graine donnée, la fonction :func:`choices` avec pondération " +"uniforme produit généralement une séquence différente des appels répétés à :" +"func:`choice`. L'algorithme utilisé par :func:`choices` utilise " +"l'arithmétique à virgule flottante pour la cohérence interne et la vitesse. " +"L'algorithme utilisé par :func:`choice` utilise par défaut l'arithmétique " +"entière avec des tirages répétés pour éviter les petits biais dus aux " +"erreurs d'arrondi." #: ../Doc/library/random.rst:177 msgid "Shuffle the sequence *x* in place." msgstr "" +"Mélange la séquence *x* sans créer de nouvelle instance (« sur place »)." #: ../Doc/library/random.rst:179 msgid "" "The optional argument *random* is a 0-argument function returning a random " "float in [0.0, 1.0); by default, this is the function :func:`.random`." msgstr "" +"L'argument optionnel *random* est une fonction sans argument renvoyant un " +"nombre aléatoire à virgule flottante dans [0.0, 1.0); par défaut, c'est la " +"fonction :func:`.random`." #: ../Doc/library/random.rst:182 msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." msgstr "" +"Pour mélanger une séquence immuable et renvoyer une nouvelle liste mélangée, " +"utilisez ``sample(x, k=len(x))`` à la place." #: ../Doc/library/random.rst:185 msgid "" @@ -298,12 +373,20 @@ msgid "" "generated. For example, a sequence of length 2080 is the largest that can " "fit within the period of the Mersenne Twister random number generator." msgstr "" +"Notez que même pour les petits ``len(x)``, le nombre total de permutations " +"de *x* peut rapidement devenir plus grand que la période de la plupart des " +"générateurs de nombres aléatoires. Cela implique que la plupart des " +"permutations d'une longue séquence ne peuvent jamais être générées. Par " +"exemple, une séquence de longueur 2080 est la plus grande qui puisse tenir " +"dans la période du générateur de nombres aléatoires Mersenne Twister." #: ../Doc/library/random.rst:194 msgid "" "Return a *k* length list of unique elements chosen from the population " "sequence or set. Used for random sampling without replacement." msgstr "" +"Renvoie une liste de *k* éléments uniques choisis dans la séquence ou " +"l'ensemble de la population. Utilisé pour un tirage aléatoire sans remise." #: ../Doc/library/random.rst:197 msgid "" @@ -313,6 +396,12 @@ msgid "" "winners (the sample) to be partitioned into grand prize and second place " "winners (the subslices)." msgstr "" +"Renvoie une nouvelle liste contenant des éléments de la population tout en " +"laissant la population originale inchangée. La liste résultante est classée " +"par ordre de sélection de sorte que toutes les sous-tranches soient " +"également des échantillons aléatoires valides. Cela permet aux gagnants du " +"tirage (l'échantillon) d'être divisés en gagnants du grand prix et en " +"gagnants de la deuxième place (les sous-tranches)." #: ../Doc/library/random.rst:203 msgid "" @@ -320,6 +409,9 @@ msgid "" "population contains repeats, then each occurrence is a possible selection in " "the sample." msgstr "" +"Les membres de la population n'ont pas besoin d'être :term:" +"`hachables` ou uniques. Si la population contient des répétitions, " +"alors chaque occurrence est un tirage possible dans l'échantillon." #: ../Doc/library/random.rst:206 msgid "" @@ -327,16 +419,22 @@ msgid "" "an argument. This is especially fast and space efficient for sampling from " "a large population: ``sample(range(10000000), k=60)``." msgstr "" +"Pour choisir un échantillon parmi un intervalle d'entiers, utilisez un " +"objet :func:`range` comme argument. Ceci est particulièrement rapide et " +"économe en mémoire pour un tirage dans une grande population : " +"``échantillon(range(10000000), k=60)``." #: ../Doc/library/random.rst:210 msgid "" "If the sample size is larger than the population size, a :exc:`ValueError` " "is raised." msgstr "" +"Si la taille de l'échantillon est supérieure à la taille de la population, " +"une :exc:`ValueError` est levée." #: ../Doc/library/random.rst:214 msgid "Real-valued distributions" -msgstr "" +msgstr "Distributions pour les nombre réels" #: ../Doc/library/random.rst:216 msgid "" @@ -345,22 +443,33 @@ msgid "" "distribution's equation, as used in common mathematical practice; most of " "these equations can be found in any statistics text." msgstr "" +"Les fonctions suivantes génèrent des distributions spécifiques en nombre " +"réels. Les paramètres de fonction sont nommés d'après les variables " +"correspondantes de l'équation de la distribution, telles qu'elles sont " +"utilisées dans la pratique mathématique courante ; la plupart de ces " +"équations peuvent être trouvées dans tout document traitant de statistiques." #: ../Doc/library/random.rst:224 msgid "Return the next random floating point number in the range [0.0, 1.0)." msgstr "" +"Renvoie le nombre aléatoire à virgule flottante suivant dans la plage [0.0, " +"1.0)." #: ../Doc/library/random.rst:229 msgid "" "Return a random floating point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." msgstr "" +"Renvoie un nombre aléatoire à virgule flottante *N* tel que ``a <= N <= b`` " +"pour ``a <= b`` et ``b <= N <= a`` pour ``b < a``." #: ../Doc/library/random.rst:232 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the equation ``a + (b-a) * random()``." msgstr "" +"La valeur finale ``b`` peut ou non être incluse dans la plage selon " +"l'arrondi à virgule flottante dans l'équation ``a + (b-a) * random()``." #: ../Doc/library/random.rst:238 msgid "" @@ -369,12 +478,18 @@ msgid "" "default to zero and one. The *mode* argument defaults to the midpoint " "between the bounds, giving a symmetric distribution." msgstr "" +"Renvoie un nombre aléatoire en virgule flottante *N* tel que ``low <= N <= " +"high`` et avec le *mode* spécifié entre ces bornes. Les limites *low* et " +"*high* par défaut sont zéro et un. L'argument *mode* est par défaut le " +"point médian entre les bornes, ce qui donne une distribution symétrique." #: ../Doc/library/random.rst:246 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." msgstr "" +"Distribution bêta. Les conditions sur les paramètres sont ``alpha > 0`` et " +"``beta > 0``. Les valeurs renvoyées varient entre 0 et 1." #: ../Doc/library/random.rst:252 msgid "" @@ -384,16 +499,23 @@ msgid "" "if *lambd* is positive, and from negative infinity to 0 if *lambd* is " "negative." msgstr "" +"Distribution exponentielle. *lambd* est 1,0 divisé par la moyenne désirée. " +"Ce ne doit pas être zéro. (Le paramètre aurait dû s'appeler \"lambda\", " +"mais c'est un mot réservé en Python.) Les valeurs renvoyées vont de 0 à " +"plus l'infini positif si *lambd* est positif, et de moins l'infini à 0 si " +"*lambd* est négatif." #: ../Doc/library/random.rst:261 msgid "" "Gamma distribution. (*Not* the gamma function!) Conditions on the " "parameters are ``alpha > 0`` and ``beta > 0``." msgstr "" +"Distribution gamma. (*Ce n'est pas* la fonction gamma !) Les conditions sur " +"les paramètres sont ``alpha > 0`` et ``beta > 0``." #: ../Doc/library/random.rst:264 msgid "The probability distribution function is::" -msgstr "" +msgstr "La fonction de distribution de probabilité est ::" #: ../Doc/library/random.rst:273 msgid "" @@ -401,6 +523,9 @@ msgid "" "deviation. This is slightly faster than the :func:`normalvariate` function " "defined below." msgstr "" +"Distribution gaussienne. *mu* est la moyenne et *sigma* est la écart type. " +"C'est légèrement plus rapide que la fonction :func:`normalvariate` définie " +"ci-dessous." #: ../Doc/library/random.rst:280 msgid "" @@ -409,12 +534,17 @@ msgid "" "deviation *sigma*. *mu* can have any value, and *sigma* must be greater " "than zero." msgstr "" +"Logarithme de la distribution normale. Si vous prenez le logarithme naturel " +"de cette distribution, vous obtiendrez une distribution normale avec *mu* " +"moyen et écart-type *sigma*. *mu* peut avoir n'importe quelle valeur et " +"*sigma* doit être supérieur à zéro." #: ../Doc/library/random.rst:288 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" +"Distribution normale. *mu* est la moyenne et *sigma* est l'écart type." #: ../Doc/library/random.rst:293 msgid "" @@ -423,29 +553,34 @@ msgid "" "to zero. If *kappa* is equal to zero, this distribution reduces to a " "uniform random angle over the range 0 to 2\\*\\ *pi*." msgstr "" +"*mu* est l'angle moyen, exprimé en radians entre 0 et 2\\*\\ *pi*, et " +"*kappa* est le paramètre de concentration, qui doit être supérieur ou égal à " +"zéro. Si *kappa* est égal à zéro, cette distribution se réduit à un angle " +"aléatoire uniforme sur la plage de 0 à 2\\*\\ *pi*." #: ../Doc/library/random.rst:301 msgid "Pareto distribution. *alpha* is the shape parameter." -msgstr "" +msgstr "Distribution de Pareto. *alpha* est le paramètre de forme." #: ../Doc/library/random.rst:306 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." msgstr "" +"Distribution de Weibull. *alpha* est le paramètre de l'échelle et *beta* " +"est le paramètre de forme." #: ../Doc/library/random.rst:311 msgid "Alternative Generator" -msgstr "" +msgstr "Générateur alternatif" #: ../Doc/library/random.rst:315 -#, fuzzy msgid "" "Class that implements the default pseudo-random number generator used by " "the :mod:`random` module." msgstr "" -"Ce module implémente des générateurs de nombres pseudo-aléatoires pour " -"différentes distributions." +"Classe qui implémente le générateur de nombres pseudo-aléatoires par défaut " +"utilisé par le module :mod:`random`." #: ../Doc/library/random.rst:320 msgid "" @@ -456,10 +591,17 @@ msgid "" "ignored. The :meth:`getstate` and :meth:`setstate` methods raise :exc:" "`NotImplementedError` if called." msgstr "" +"Classe qui utilise la fonction :func:`os.urandom` pour générer des nombres " +"aléatoires à partir de sources fournies par le système d'exploitation. Non " +"disponible sur tous les systèmes. Ne repose pas sur un état purement " +"logiciel et les séquences ne sont pas reproductibles. Par conséquent, la " +"méthode :meth:`seed` n'a aucun effet et est ignorée. Les méthodes :meth:" +"`getstate` et :meth:`setstate` lèvent :exc:`NotImplementedError` si vous les " +"appelez." #: ../Doc/library/random.rst:329 msgid "Notes on Reproducibility" -msgstr "" +msgstr "Remarques sur la reproductibilité" #: ../Doc/library/random.rst:331 msgid "" @@ -468,36 +610,48 @@ msgid "" "should be reproducible from run to run as long as multiple threads are not " "running." msgstr "" +"Il est parfois utile de pouvoir reproduire les séquences données par un " +"générateur de nombres pseudo-aléatoires. En réutilisant la même graine, la " +"même séquence devrait être reproductible d'une exécution à l'autre tant que " +"plusieurs processus ne sont pas en cours." #: ../Doc/library/random.rst:335 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" msgstr "" +"La plupart des algorithmes et des fonctions de génération de graine du " +"module aléatoire sont susceptibles d'être modifiés d'une version à l'autre " +"de Python, mais deux aspects sont garantis de ne pas changer ::" #: ../Doc/library/random.rst:338 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." msgstr "" +"Si une nouvelle méthode de génération de graine est ajoutée, une fonction " +"rétro-compatible sera offerte." #: ../Doc/library/random.rst:341 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." msgstr "" +"La méthode :meth:`~Random.random` du générateur continuera à produire la " +"même séquence lorsque la fonction de génération de graine compatible recevra " +"la même semence." #: ../Doc/library/random.rst:347 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et recettes" #: ../Doc/library/random.rst:349 msgid "Basic examples::" -msgstr "Utilisation basique ::" +msgstr "Exemples de base ::" #: ../Doc/library/random.rst:377 msgid "Simulations::" -msgstr "" +msgstr "Simulations : ::" #: ../Doc/library/random.rst:406 msgid "" @@ -505,6 +659,10 @@ msgid "" "Bootstrapping_(statistics)>`_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample of size five::" msgstr "" +"Exemple de `*bootstrapping* statistique `_ utilisant le ré-échantillonnage avec remise pour " +"estimer un intervalle de confiance pour la moyenne d'un échantillon de " +"taille cinq : ::" #: ../Doc/library/random.rst:420 msgid "" @@ -513,11 +671,18 @@ msgid "" "significance or `p-value `_ of an " "observed difference between the effects of a drug versus a placebo::" msgstr "" +"Exemple d'un `*resampling permutation test* `_ pour déterminer la " +"signification statistique ou `valeur p `_ d'une différence observée entre les effets d'un médicament et " +"ceux d'un placebo ::" #: ../Doc/library/random.rst:447 msgid "" "Simulation of arrival times and service deliveries in a single server queue::" msgstr "" +"Simulation des heures d'arrivée et des livraisons de services dans une seule " +"file d'attente de serveurs ::" #: ../Doc/library/random.rst:478 msgid "" @@ -526,6 +691,11 @@ msgid "" "profile/295/>`_ on statistical analysis using just a few fundamental " "concepts including simulation, sampling, shuffling, and cross-validation." msgstr "" +"`Statistics for Hackers `_ un " +"tutoriel vidéo par `Jake Vanderplas `_ sur l'analyse statistique en utilisant seulement quelques " +"concepts fondamentaux dont la simulation, l'échantillonnage, le brassage et " +"la validation croisée." #: ../Doc/library/random.rst:484 msgid "" @@ -535,6 +705,11 @@ msgid "" "distributions provided by this module (gauss, uniform, sample, betavariate, " "choice, triangular, and randrange)." msgstr "" +"`Economics Simulation `_ simulation d'un marché par `Peter Norvig `_ qui montre l'utilisation efficace de plusieurs des outils et " +"distributions fournis par ce module (*gauss*, *uniform*, *sample*, " +"*betavariate*, *choice*, *triangular*, et *randrange*)." #: ../Doc/library/random.rst:491 msgid "" @@ -544,3 +719,8 @@ msgid "" "theory, how to write simulations, and how to perform data analysis using " "Python." msgstr "" +"`A Concrete Introduction to Probability (using Python) `_ un tutoriel par " +"`Peter Norvig `_ couvrant les bases de la " +"théorie des probabilités, comment écrire des simulations, et comment " +"effectuer des analyses de données avec Python." diff --git a/library/re.po b/library/re.po index 4af67c4e8..2049bcb58 100644 --- a/library/re.po +++ b/library/re.po @@ -1222,11 +1222,11 @@ msgstr "" #: ../Doc/library/re.rst:614 msgid "The sequence ::" -msgstr "La séquence ::" +msgstr "La séquence ::" #: ../Doc/library/re.rst:619 msgid "is equivalent to ::" -msgstr "est équivalente à ::" +msgstr "est équivalente à ::" #: ../Doc/library/re.rst:623 msgid "" @@ -1409,7 +1409,7 @@ msgid "" "decimal number are functionally equal::" msgstr "" "Cela signifie que les deux expressions rationnelles suivantes qui valident " -"un nombre décimal sont fonctionnellement égales : ::" +"un nombre décimal sont fonctionnellement égales ::" #: ../Doc/library/re.rst:738 msgid "Corresponds to the inline flag ``(?x)``." @@ -1482,7 +1482,7 @@ msgstr "" "capture sont utilisées dans *pattern*, alors les textes des groupes du motif " "sont aussi renvoyés comme éléments de la liste résultante. Si *maxsplit* est " "différent de zéro, il ne pourra y avoir plus de *maxsplit* séparations, et " -"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. ::" +"le reste de la chaîne sera renvoyé comme le dernier élément de la liste. ::" #: ../Doc/library/re.rst:791 msgid "" @@ -1683,7 +1683,7 @@ msgid "" msgstr "" "Échappe tous les caractères spéciaux de *pattern*. Cela est utile si vous " "voulez valider une quelconque chaîne littérale qui pourrait contenir des " -"métacaractères d'expressions rationnelles. Par exemple : ::" +"métacaractères d'expressions rationnelles. Par exemple ::" #: ../Doc/library/re.rst:939 msgid "" @@ -1929,7 +1929,7 @@ msgstr "" "Les objets de correspondance ont toujours une valeur booléenne ``True``. " "Puisque :meth:`~Pattern.match` et :meth:`~Pattern.search` renvoient ``None`` " "quand il n'y a pas de correspondance, vous pouvez tester s'il y a eu " -"correspondance avec une simple instruction ``if`` : ::" +"correspondance avec une simple instruction ``if`` ::" #: ../Doc/library/re.rst:1135 msgid "Match objects support the following methods and attributes:" @@ -2060,7 +2060,7 @@ msgstr "" "la correspondance complète). Renvoie ``-1`` si *group* existe mais ne figure " "pas dans la correspondance. Pour un objet de correspondance *m*, et un " "groupe *g* qui y figure, la sous-chaîne correspondant au groupe *g* " -"(équivalente à ``m.group(g)``) est : ::" +"(équivalente à ``m.group(g)``) est ::" #: ../Doc/library/re.rst:1262 msgid "" @@ -2306,15 +2306,15 @@ msgstr "``[-+]?(0[xX])?[\\dA-Fa-f]+``" #: ../Doc/library/re.rst:1423 msgid "To extract the filename and numbers from a string like ::" msgstr "" -"Pour extraire le nom de fichier et les nombres depuis une chaîne comme : ::" +"Pour extraire le nom de fichier et les nombres depuis une chaîne comme ::" #: ../Doc/library/re.rst:1427 msgid "you would use a :c:func:`scanf` format like ::" -msgstr "vous utiliseriez un format :c:func:`scanf` comme : ::" +msgstr "vous utiliseriez un format :c:func:`scanf` comme ::" #: ../Doc/library/re.rst:1431 msgid "The equivalent regular expression would be ::" -msgstr "L'expression rationnelle équivalente serait : ::" +msgstr "L'expression rationnelle équivalente serait ::" #: ../Doc/library/re.rst:1439 msgid "search() vs. match()" @@ -2338,7 +2338,7 @@ msgid "" "to restrict the match at the beginning of the string::" msgstr "" "Les expressions rationnelles commençant par ``'^'`` peuvent être utilisées " -"avec :func:`search` pour restreindre la recherche au début de la chaîne : ::" +"avec :func:`search` pour restreindre la recherche au début de la chaîne ::" #: ../Doc/library/re.rst:1462 msgid "" @@ -2419,7 +2419,7 @@ msgstr "" ":func:`sub` remplace toutes les occurrences d'un motif par une chaîne ou le " "résultat d'une fonction. Cet exemple le montre, en utilisant :func:`sub` " "avec une fonction qui mélange aléatoirement les caractères de chaque mot " -"dans une phrase (à l'exception des premiers et derniers caractères) : ::" +"dans une phrase (à l'exception des premiers et derniers caractères) ::" #: ../Doc/library/re.rst:1550 msgid "Finding all Adverbs" @@ -2508,11 +2508,11 @@ msgid "" msgstr "" "Les catégories de texte sont spécifiées par des expressions rationnelles. " "La technique est de les combiner dans une unique expression rationnelle " -"maîtresse, et de boucler sur les correspondances successives : ::" +"maîtresse, et de boucler sur les correspondances successives ::" #: ../Doc/library/re.rst:1661 msgid "The tokenizer produces the following output::" -msgstr "L'analyseur produit la sortie suivante : ::" +msgstr "L'analyseur produit la sortie suivante ::" #: ../Doc/library/re.rst:1684 msgid "" diff --git a/library/readline.po b/library/readline.po index 4c09d3f45..b1486beee 100644 --- a/library/readline.po +++ b/library/readline.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2019-04-11 18:12+0200\n" +"PO-Revision-Date: 2019-08-16 23:19+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \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.1\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/readline.rst:2 msgid ":mod:`readline` --- GNU readline interface" @@ -38,7 +38,6 @@ msgstr "" "l'invite de commande fournie par la fonction native :func:`input`." #: ../Doc/library/readline.rst:20 -#, fuzzy msgid "" "Readline keybindings may be configured via an initialization file, typically " "``.inputrc`` in your home directory. See `Readline Init File `_ dans le manuel GNU pour *readline* pour des " "information à propos du format et de la construction autorisée de ce " "fichier, ainsi que les possibilités de la bibliothèque *readline* en général." @@ -86,7 +85,8 @@ msgstr "" "Si vous utilisez l'émulation *editline*/``libedit`` sur MacOS, le fichier " "d'initialisation situé dans votre répertoire d’accueil est appelé ``." "editrc``. Par exemple, le contenu suivant dans ``~/.editrc`` active " -"l'association de touches *vi* et la complétion avec la touche de tabulation." +"l'association de touches *vi* et la complétion avec la touche de " +"tabulation ::" #: ../Doc/library/readline.rst:49 msgid "Init file" @@ -447,7 +447,7 @@ msgstr "" "sauvegarder automatiquement un fichier d'historique nommé :file:`." "python_history` depuis le répertoire d’accueil de l’utilisateur. Le code ci-" "dessous doit normalement être exécuté automatiquement durant une session " -"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. ::" +"interactive depuis le fichier de l'utilisateur :envvar:`PYTHONSTARTUP`. ::" #: ../Doc/library/readline.rst:310 msgid "" @@ -463,7 +463,7 @@ msgid "" "interactive sessions, by only appending the new history. ::" msgstr "" "L'exemple suivant atteint le même objectif mais gère des sessions " -"interactives concurrentes, en ajoutant seulement le nouvel historique. ::" +"interactives concurrentes, en ajoutant seulement le nouvel historique. ::" #: ../Doc/library/readline.rst:334 msgid "" @@ -471,4 +471,4 @@ msgid "" "support history save/restore. ::" msgstr "" "L'exemple suivant étend la classe :class:`code.InteractiveConsole` pour " -"gérer la sauvegarde/restauration de l'historique. ::" +"gérer la sauvegarde/restauration de l'historique. ::" diff --git a/library/resource.po b/library/resource.po index d55499fab..404b14c3d 100644 --- a/library/resource.po +++ b/library/resource.po @@ -314,7 +314,7 @@ msgstr "Index" #: ../Doc/library/resource.rst:279 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/resource.rst:279 msgid "Resource" diff --git a/library/secrets.po b/library/secrets.po index 062ca3459..4e6e3a0e8 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -17,10 +17,12 @@ msgstr "" #: ../Doc/library/secrets.rst:2 msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" msgstr "" +":mod:`secrets` — Générer des nombres aléatoires de façon sécurisée pour la " +"gestion des secrets" #: ../Doc/library/secrets.rst:16 msgid "**Source code:** :source:`Lib/secrets.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/secrets.rst:20 msgid "" @@ -28,6 +30,10 @@ msgid "" "random numbers suitable for managing data such as passwords, account " "authentication, security tokens, and related secrets." msgstr "" +"Le module :mod:`secrets` permet de générer des nombres aléatoires forts au " +"sens de la cryptographie, adaptés à la gestion des mots de passe, à " +"l'authentification des comptes, à la gestion des jetons de sécurité et des " +"secrets associés." #: ../Doc/library/secrets.rst:24 msgid "" @@ -35,10 +41,13 @@ msgid "" "pseudo-random number generator in the :mod:`random` module, which is " "designed for modelling and simulation, not security or cryptography." msgstr "" +"Il faut préférer :mod:`secrets` par rapport au générateur pseudo-aléatoire " +"du module :mod:`random`, ce dernier étant conçu pour la modélisation et la " +"simulation, et non pour la sécurité ou la cryptographie." #: ../Doc/library/secrets.rst:30 msgid ":pep:`506`" -msgstr "" +msgstr ":pep:`506`" #: ../Doc/library/secrets.rst:34 msgid "Random numbers" @@ -49,6 +58,8 @@ msgid "" "The :mod:`secrets` module provides access to the most secure source of " "randomness that your operating system provides." msgstr "" +"Le module :mod:`secrets` fournit un accès à la source d'aléa la plus sûre " +"disponible sur votre système d'exploitation." #: ../Doc/library/secrets.rst:41 msgid "" @@ -56,22 +67,25 @@ msgid "" "provided by the operating system. See :class:`random.SystemRandom` for " "additional details." msgstr "" +"Classe permettant de générer des nombres aléatoires à partir des sources " +"d'aléa les plus sûres fournies par le système d'exploitation. Se référer à :" +"class:`random.SystemRandom` pour plus de détails." #: ../Doc/library/secrets.rst:47 msgid "Return a randomly-chosen element from a non-empty sequence." -msgstr "" +msgstr "Renvoie un élément choisi aléatoirement dans une séquence non-vide." #: ../Doc/library/secrets.rst:51 msgid "Return a random int in the range [0, *n*)." -msgstr "" +msgstr "Renvoie un entier aléatoire dans l'intervalle [0, *n*)." #: ../Doc/library/secrets.rst:55 msgid "Return an int with *k* random bits." -msgstr "" +msgstr "Renvoie un entier de *k* bits aléatoires." #: ../Doc/library/secrets.rst:59 msgid "Generating tokens" -msgstr "" +msgstr "Génération de jetons" #: ../Doc/library/secrets.rst:61 msgid "" @@ -79,12 +93,17 @@ msgid "" "suitable for applications such as password resets, hard-to-guess URLs, and " "similar." msgstr "" +"Le module :mod:`secrets` fournit des fonctions pour la génération sécurisée " +"de jetons adaptés à la réinitialisation de mots de passe, à la production " +"d'URLs difficiles à deviner, etc." #: ../Doc/library/secrets.rst:67 msgid "" "Return a random byte string containing *nbytes* number of bytes. If *nbytes* " "is ``None`` or not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne d'octets aléatoire contenant *nbytes* octets. Si *nbytes* " +"est ``None`` ou omis, une valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:79 msgid "" @@ -92,6 +111,10 @@ msgid "" "bytes, each byte converted to two hex digits. If *nbytes* is ``None`` or " "not supplied, a reasonable default is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire en hexadécimal. La chaîne " +"comporte *nbytes* octets aléatoires, chaque octet étant écrit sous la forme " +"de deux chiffres hexadécimaux. Si *nbytes* est ``None`` ou omis, une valeur " +"par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:90 msgid "" @@ -100,10 +123,14 @@ msgid "" "characters. If *nbytes* is ``None`` or not supplied, a reasonable default " "is used." msgstr "" +"Renvoie une chaîne de caractères aléatoire adaptée au format URL, contenant " +"*nbytes* octets aléatoires. Le texte est encodé en base64, chaque octet " +"produisant en moyenne 1,3 caractères. Si *nbytes* est ``None`` ou omis, une " +"valeur par défaut raisonnable est utilisée." #: ../Doc/library/secrets.rst:102 msgid "How many bytes should tokens use?" -msgstr "" +msgstr "Combien d'octets mon jeton doit-il comporter ?" #: ../Doc/library/secrets.rst:104 msgid "" @@ -115,6 +142,13 @@ msgid "" "is sufficient for the typical use-case expected for the :mod:`secrets` " "module." msgstr "" +"Afin de se prémunir des `attaques par force brute `_, les jetons doivent être suffisamment " +"aléatoires. Malheureusement, l'augmentation de la puissance de calcul des " +"ordinateurs leur permet de réaliser plus de tentatives dans le même laps de " +"temps. De ce fait, le nombre de bits recommandé pour l'aléa augmente aussi. " +"En 2015, une longueur de 32 octets (256 bits) aléatoires est généralement " +"considérée suffisante pour les usages typiques du module :mod:`secrets`." #: ../Doc/library/secrets.rst:112 msgid "" @@ -123,22 +157,31 @@ msgid "" "argument to the various ``token_*`` functions. That argument is taken as " "the number of bytes of randomness to use." msgstr "" +"Si vous souhaitez gérer la longueur des jetons par vous-même, vous pouvez " +"spécifier la quantité d'aléa à introduire dans les jetons en passant un " +"argument :class:`int` aux différentes fonctions ``token_*``. Cet argument " +"indique alors le nombre d'octets aléatoires utilisés pour la création du " +"jeton." #: ../Doc/library/secrets.rst:117 msgid "" "Otherwise, if no argument is provided, or if the argument is ``None``, the " "``token_*`` functions will use a reasonable default instead." msgstr "" +"Sinon, si aucun argument n'est passé ou si celui-ci est ``None``, les " +"fonctions ``token_*`` utilisent une valeur par défaut raisonnable à la place." #: ../Doc/library/secrets.rst:122 msgid "" "That default is subject to change at any time, including during maintenance " "releases." msgstr "" +"Cette valeur par défaut est susceptible de changer à n'importe quel moment, " +"y compris lors des mises à jour de maintenance." #: ../Doc/library/secrets.rst:127 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/secrets.rst:131 msgid "" @@ -147,20 +190,26 @@ msgid "" "lesson-in-timing-attacks/>`_. See :func:`hmac.compare_digest` for additional " "details." msgstr "" +"Renvoie ``True`` si les chaînes *a* et *b* sont égales et ``False`` sinon, " +"d'une manière permettant de réduire le risque d'`attaque temporelle `_. Se référer à :func:`hmac." +"compare_digest` pour plus de détails." #: ../Doc/library/secrets.rst:138 msgid "Recipes and best practices" -msgstr "" +msgstr "Recettes et bonnes pratiques" #: ../Doc/library/secrets.rst:140 msgid "" "This section shows recipes and best practices for using :mod:`secrets` to " "manage a basic level of security." msgstr "" +"Cette section expose les recettes et les bonnes pratiques d'utilisation de :" +"mod:`secrets` pour gérer un niveau minimal de sécurité." #: ../Doc/library/secrets.rst:143 msgid "Generate an eight-character alphanumeric password:" -msgstr "" +msgstr "Générer un mot de passe à huit caractères alphanumériques :" #: ../Doc/library/secrets.rst:154 msgid "" @@ -169,19 +218,30 @@ msgid "" "They should be salted and hashed using a cryptographically-strong one-way " "(irreversible) hash function." msgstr "" +"Les applications ne doivent jamais `stocker des mots de passe dans un format " +"permettant leur récupération `_, que ce soit en texte brut ou chiffré. Il convient que les mots de " +"passe soient salés et transformés de façon irréversible par une fonction de " +"hachage cryptographique." #: ../Doc/library/secrets.rst:160 msgid "" "Generate a ten-character alphanumeric password with at least one lowercase " "character, at least one uppercase character, and at least three digits:" msgstr "" +"Générer un mot de passe alphanumérique à dix caractères contenant au moins " +"un caractère en minuscule, au moins un caractère en majuscule et au moins " +"trois chiffres :" #: ../Doc/library/secrets.rst:176 msgid "Generate an `XKCD-style passphrase `_:" msgstr "" +"Générer une `phrase de passe dans le style xkcd `_ :" #: ../Doc/library/secrets.rst:187 msgid "" "Generate a hard-to-guess temporary URL containing a security token suitable " "for password recovery applications:" msgstr "" +"Générer une URL temporaire difficile à deviner contenant un jeton de " +"sécurité adapté à réinitialisation d'un mot de passe :" diff --git a/library/shelve.po b/library/shelve.po index 4aba61c88..a0e75c444 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -99,7 +99,7 @@ msgid "" msgstr "" "Ne pas se fier à la fermeture automatique de *shelf* ; appelez toujours :" "meth:`~Shelf.close` explicitement quand vous n'en avez plus besoin, ou " -"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" +"utilisez :func:`shelve.open` comme un gestionnaire de contexte ::" #: ../Doc/library/shelve.rst:54 msgid "" @@ -305,7 +305,7 @@ msgid "" "object)::" msgstr "" "Pour résumer l'interface (``key`` est une chaîne de caractère, ``data`` est " -"un objet arbitraire) ::" +"un objet arbitraire) ::" #: ../Doc/library/shelve.rst:199 msgid "Module :mod:`dbm`" diff --git a/library/smtplib.po b/library/smtplib.po index f04fa0af2..b2106e3cc 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -66,7 +66,7 @@ msgstr "" #: ../Doc/library/smtplib.rst:58 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/smtplib.rst:61 ../Doc/library/smtplib.rst:90 msgid "source_address argument was added." diff --git a/library/socket.po b/library/socket.po index b8a82bb52..5b976c082 100644 --- a/library/socket.po +++ b/library/socket.po @@ -15,11 +15,11 @@ msgstr "" #: ../Doc/library/socket.rst:2 msgid ":mod:`socket` --- Low-level networking interface" -msgstr "" +msgstr ":mod:`socket` — Gestion réseau de bas niveau" #: ../Doc/library/socket.rst:7 msgid "**Source code:** :source:`Lib/socket.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/secrets.py`" #: ../Doc/library/socket.rst:11 msgid "" @@ -750,7 +750,7 @@ msgstr "" #: ../Doc/library/socket.rst:619 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/socket.rst:621 msgid "The :mod:`socket` module also offers various network-related services:" diff --git a/library/ssl.po b/library/ssl.po index 3038fa436..1197e98ce 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ssl.rst:2 msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" -msgstr "" +msgstr ":mod:`ssl` — Emballage TLS/SSL pour les objets connecteurs" #: ../Doc/library/ssl.rst:10 msgid "**Source code:** :source:`Lib/ssl.py`" @@ -32,6 +32,13 @@ msgid "" "X, and probably additional platforms, as long as OpenSSL is installed on " "that platform." msgstr "" +"Ce module fournit un accès aux fonctions de chiffrement et " +"d'authentification entre pairs : « *Transport Layer Security* » (souvent " +"appelé « *Secure Sockets Layer* ») pour les connecteurs réseau, côté client " +"et côté serveur. Ce module utilise la bibliothèque OpenSSL. Il est " +"disponible sur tous les systèmes Unix modernes, Windows, Mac OS X et " +"probablement sur d'autres plates-formes, à condition qu'OpenSSL soit " +"installé sur cette plate-forme." #: ../Doc/library/ssl.rst:26 msgid "" @@ -40,6 +47,11 @@ msgid "" "cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with " "openssl version 1.0.1." msgstr "" +"Certains comportements peuvent dépendre de la plate-forme, car des appels " +"sont passés aux API de connexions du système d'exploitation. La version " +"installée de OpenSSL peut également entraîner des variations de " +"comportement. Par exemple, TLSv1.1 et TLSv1.2 sont livrés avec la version " +"1.0.1 de OpenSSL." #: ../Doc/library/ssl.rst:32 msgid "" @@ -47,6 +59,9 @@ msgid "" "lead to a false sense of security, as the default settings of the ssl module " "are not necessarily appropriate for your application." msgstr "" +"N’utilisez pas ce module sans lire :ref:`ssl-security`. Cela pourrait créer " +"un faux sentiment de sécurité, car les paramètres par défaut du module *ssl* " +"ne sont pas nécessairement appropriés pour votre application." #: ../Doc/library/ssl.rst:37 msgid "" @@ -54,6 +69,10 @@ msgid "" "more general information about TLS, SSL, and certificates, the reader is " "referred to the documents in the \"See Also\" section at the bottom." msgstr "" +"Cette section documente les objets et les fonctions du module ``ssl``. Pour " +"des informations plus générales sur TLS, SSL et les certificats, le lecteur " +"est prié de se référer aux documents de la section « Voir Aussi » au bas de " +"cette page." #: ../Doc/library/ssl.rst:41 msgid "" @@ -64,6 +83,13 @@ msgid "" "certificate of the other side of the connection, and :meth:`cipher`,which " "retrieves the cipher being used for the secure connection." msgstr "" +"Ce module fournit une classe :class:`ssl.SSLSocket`, dérivée du type :class:" +"`socket.socket`, ainsi qu'une enveloppe (*wrapper* en anglais) qui mime un " +"connecteur qui chiffre et déchiffre les données passant sur le connecteur " +"utilisant SSL. Il prend en charge des méthodes supplémentaires telles que :" +"meth:`getpeercert` qui récupère le certificat de l'autre coté de la " +"connexion et :meth:`cipher`, qui récupère le chiffrement utilisé pour la " +"connexion." #: ../Doc/library/ssl.rst:48 msgid "" @@ -71,24 +97,31 @@ msgid "" "manage settings and certificates, which can then be inherited by SSL sockets " "created through the :meth:`SSLContext.wrap_socket` method." msgstr "" +"Pour les applications plus sophistiquées, la classe :class:`ssl.SSLContext` " +"facilite la gestion des paramètres et des certificats, qui peuvent ensuite " +"être hérités par les connecteurs SSL créés via la méthode :meth:`SSLContext." +"wrap_socket`." #: ../Doc/library/ssl.rst:52 msgid "Updated to support linking with OpenSSL 1.1.0" -msgstr "" +msgstr "Mise à jour pour prendre en charge la liaison avec OpenSSL 1.1.0" #: ../Doc/library/ssl.rst:57 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the ssl module will require at least OpenSSL 1.0.2 or 1.1.0." msgstr "" +"OpenSSL 0.9.8, 1.0.0 et 1.0.1 sont obsolètes et ne sont plus prises en " +"charge. Dans l'avenir, le module *ssl* nécessitera au minimum OpenSSL 1.0.2 " +"ou 1.1.0." #: ../Doc/library/ssl.rst:63 msgid "Functions, Constants, and Exceptions" -msgstr "" +msgstr "Fonctions, constantes et exceptions" #: ../Doc/library/ssl.rst:67 msgid "Socket creation" -msgstr "" +msgstr "Création de connecteurs" #: ../Doc/library/ssl.rst:69 msgid "" @@ -99,28 +132,39 @@ msgid "" "`wrap_socket` function is deprecated since it is both inefficient and has no " "support for server name indication (SNI) and hostname matching." msgstr "" +"Depuis Python 3.2 et 2.7.9, il est recommandé d'utiliser :meth:`SSLContext." +"wrap_socket` d'une instance :class:`SSLContext` pour encapsuler des " +"connecteurs en tant qu'objets :class:`SSLSocket`. Les fonctions auxiliaires :" +"func:`create_default_context` renvoient un nouveau contexte avec des " +"paramètres par défaut sécurisés. L'ancienne fonction :func:`wrap_socket` est " +"obsolète car elle est à la fois inefficace et ne prend pas en charge " +"l'indication de nom de serveur (SNI) et la vérification du nom de l'hôte." #: ../Doc/library/ssl.rst:77 msgid "Client socket example with default context and IPv4/IPv6 dual stack::" msgstr "" +"Exemple de connecteur client avec contexte par défaut et double pile IPv4/" +"IPv6 ::" #: ../Doc/library/ssl.rst:90 msgid "Client socket example with custom context and IPv4::" -msgstr "" +msgstr "Exemple de connecteur client avec contexte personnalisé et IPv4 ::" #: ../Doc/library/ssl.rst:102 msgid "Server socket example listening on localhost IPv4::" -msgstr "" +msgstr "Exemple de connecteur serveur à l'écoute sur IPv4 *localhost* ::" #: ../Doc/library/ssl.rst:116 msgid "Context creation" -msgstr "" +msgstr "Création de contexte" #: ../Doc/library/ssl.rst:118 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." msgstr "" +"Une fonction utilitaire permettant de créer facilement des objets :class:" +"`SSLContext` pour des usages classiques." #: ../Doc/library/ssl.rst:123 msgid "" @@ -129,6 +173,11 @@ msgid "" "represent a higher security level than when calling the :class:`SSLContext` " "constructor directly." msgstr "" +"Renvoie un nouvel objet :class:`SSLContext`. Le paramètre *purpose* permet " +"de choisir parmi un ensemble de paramètres par défaut en fonction de l'usage " +"souhaité. Les paramètres sont choisis par le module :mod:`ssl` et " +"représentent généralement un niveau de sécurité supérieur à celui utilisé " +"lorsque vous appelez directement le constructeur :class:`SSLContext`." #: ../Doc/library/ssl.rst:128 msgid "" @@ -137,6 +186,11 @@ msgid "" "If all three are :const:`None`, this function can choose to trust the " "system's default CA certificates instead." msgstr "" +"*cafile*, *capath*, *cadata* représentent des certificats d'autorité de " +"certification facultatifs approuvés pour la vérification de certificats, " +"comme dans :meth:`SSLContext.load_verify_locations`. Si les trois sont à :" +"const:`None`, cette fonction peut choisir de faire confiance aux certificats " +"d'autorité de certification par défaut du système." #: ../Doc/library/ssl.rst:134 msgid "" @@ -148,6 +202,15 @@ msgid "" "*cadata* is given) or uses :meth:`SSLContext.load_default_certs` to load " "default CA certificates." msgstr "" +"Les paramètres sont : :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2` et :data:" +"`OP_NO_SSLv3` avec des algorithmes de chiffrement de grande robustesse, " +"n'utilisant pas RC4 et n'utilisant pas les suites cryptographiques sans " +"authentification. Passer :data:`~Purpose.SERVER_AUTH` en tant que *purpose* " +"définit :data:`~SSLContext.verify_mode` sur :data:`CERT_REQUIRED` et charge " +"les certificats de l'autorité de certification (lorsqu'au moins un des " +"paramètres *cafile*, *capath* ou *cadata* est renseigné) ou utilise :meth:" +"`SSLContext.load_default_certs` pour charger les certificats des autorités " +"de certification par défaut." #: ../Doc/library/ssl.rst:143 msgid "" @@ -155,12 +218,18 @@ msgid "" "restrictive values anytime without prior deprecation. The values represent " "a fair balance between compatibility and security." msgstr "" +"Le protocole, les options, l'algorithme de chiffrement et d'autres " +"paramètres peuvent changer pour des valeurs plus restrictives à tout moment " +"sans avertissement préalable. Les valeurs représentent un juste équilibre " +"entre compatibilité et sécurité." #: ../Doc/library/ssl.rst:147 msgid "" "If your application needs specific settings, you should create a :class:" "`SSLContext` and apply the settings yourself." msgstr "" +"Si votre application nécessite des paramètres spécifiques, vous devez créer " +"une classe :class:`SSLContext` et appliquer les paramètres vous-même." #: ../Doc/library/ssl.rst:151 msgid "" @@ -172,18 +241,32 @@ msgid "" "org/wiki/POODLE>`_. If you still wish to continue to use this function but " "still allow SSL 3.0 connections you can re-enable them using::" msgstr "" +"Si vous constatez que, lorsque certains clients ou serveurs plus anciens " +"tentent de se connecter avec une classe :class:`SSLContext` créée par cette " +"fonction, une erreur indiquant « *Protocol or cipher suite " +"mismatch* » (« Non concordance de protocole ou d'algorithme de " +"chiffrement ») est détectée, il se peut qu'ils ne prennent en charge que SSL " +"3.0 que cette fonction exclut en utilisant :data:`OP_NO_SSLv3`. SSL3.0 est " +"notoirement considéré comme `totalement déficient `_. Si vous souhaitez toujours continuer à utiliser cette " +"fonction tout en autorisant les connexions SSL 3.0, vous pouvez les " +"réactiver à l'aide de ::" #: ../Doc/library/ssl.rst:167 msgid "RC4 was dropped from the default cipher string." msgstr "" +"RC4 a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:171 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" +"*ChaCha20*/*Poly1305* a été ajouté à la liste des algorithmes de chiffrement " +"par défaut." #: ../Doc/library/ssl.rst:173 msgid "3DES was dropped from the default cipher string." msgstr "" +"*3DES* a été supprimé de la liste des algorithmes de chiffrement par défaut." #: ../Doc/library/ssl.rst:177 msgid "Exceptions" @@ -198,10 +281,16 @@ msgid "" "The error code and message of :exc:`SSLError` instances are provided by the " "OpenSSL library." msgstr "" +"Levée pour signaler une erreur de l'implémentation SSL sous-jacente " +"(actuellement fournie par la bibliothèque OpenSSL). Cela signifie qu'un " +"problème est apparu dans la couche d'authentification et de chiffrement de " +"niveau supérieur qui s'appuie sur la connexion réseau sous-jacente. Cette " +"erreur est un sous-type de :exc:`OSError`. Le code d'erreur et le message " +"des instances de :exc:`SSLError` sont fournis par la bibliothèque OpenSSL." #: ../Doc/library/ssl.rst:188 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." -msgstr "" +msgstr ":exc:`SSLError` était un sous-type de :exc:`socket.error`." #: ../Doc/library/ssl.rst:193 msgid "" @@ -209,6 +298,9 @@ msgid "" "occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " "values depends on the OpenSSL version." msgstr "" +"Une chaîne de caractères mnémonique désignant le sous-module OpenSSL dans " +"lequel l'erreur s'est produite, telle que ``SSL``, ``PEM`` ou ``X509``. " +"L'étendue des valeurs possibles dépend de la version d'OpenSSL." #: ../Doc/library/ssl.rst:201 msgid "" @@ -230,6 +322,10 @@ msgid "" "nonblocking>` when trying to read or write data, but more data needs to be " "received on the underlying TCP transport before the request can be fulfilled." msgstr "" +"Sous-classe de :exc:`SSLError` levée par un connecteur :ref:`SSL non " +"bloquant ` lors d'une tentative de lecture ou d'écriture de " +"données, alors que davantage de données doivent être reçues sur la couche " +"TCP sous-jacente avant que la demande puisse être satisfaite." #: ../Doc/library/ssl.rst:226 msgid "" diff --git a/library/stat.po b/library/stat.po index 71e6b21e7..a398fdbd6 100644 --- a/library/stat.po +++ b/library/stat.po @@ -169,7 +169,7 @@ msgstr "" #: ../Doc/library/stat.rst:189 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/stat.rst:194 msgid "" diff --git a/library/statistics.po b/library/statistics.po index 965f18445..aa95477fd 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/statistics.rst:2 msgid ":mod:`statistics` --- Mathematical statistics functions" -msgstr "" +msgstr ":mod:`statistics` — Fonctions mathématiques pour les statistiques" #: ../Doc/library/statistics.rst:12 msgid "**Source code:** :source:`Lib/statistics.py`" @@ -41,65 +41,68 @@ msgstr "" #: ../Doc/library/statistics.rst:35 msgid "Averages and measures of central location" -msgstr "" +msgstr "Moyennes et mesures de la tendance centrale" #: ../Doc/library/statistics.rst:37 msgid "" "These functions calculate an average or typical value from a population or " "sample." msgstr "" +"Ces fonctions calculent une moyenne ou une valeur typique à partir d'une " +"population ou d'un échantillon." #: ../Doc/library/statistics.rst:41 msgid ":func:`mean`" -msgstr "" +msgstr ":func:`mean`" #: ../Doc/library/statistics.rst:41 msgid "Arithmetic mean (\"average\") of data." -msgstr "" +msgstr "Moyenne arithmétique des données." #: ../Doc/library/statistics.rst:42 msgid ":func:`harmonic_mean`" -msgstr "" +msgstr ":func:`harmonic_mean`" #: ../Doc/library/statistics.rst:42 msgid "Harmonic mean of data." -msgstr "" +msgstr "Moyenne harmonique des données." #: ../Doc/library/statistics.rst:43 msgid ":func:`median`" -msgstr "" +msgstr ":func:`median`" #: ../Doc/library/statistics.rst:43 msgid "Median (middle value) of data." -msgstr "" +msgstr "Médiane (valeur centrale) des données." #: ../Doc/library/statistics.rst:44 msgid ":func:`median_low`" -msgstr "" +msgstr ":func:`median_low`" #: ../Doc/library/statistics.rst:44 msgid "Low median of data." -msgstr "" +msgstr "Médiane basse des données." #: ../Doc/library/statistics.rst:45 msgid ":func:`median_high`" -msgstr "" +msgstr ":func:`median_high`" #: ../Doc/library/statistics.rst:45 msgid "High median of data." -msgstr "" +msgstr "Médiane haute des données." #: ../Doc/library/statistics.rst:46 msgid ":func:`median_grouped`" -msgstr "" +msgstr ":func:`median_grouped`" #: ../Doc/library/statistics.rst:46 msgid "Median, or 50th percentile, of grouped data." msgstr "" +"Médiane de données groupées, calculée comme le 50\\ :sup:`e` percentile." #: ../Doc/library/statistics.rst:47 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/statistics.rst:47 msgid "Mode (most common value) of discrete data." @@ -107,55 +110,60 @@ msgstr "" #: ../Doc/library/statistics.rst:51 msgid "Measures of spread" -msgstr "" +msgstr "Mesures de la dispersion" #: ../Doc/library/statistics.rst:53 msgid "" "These functions calculate a measure of how much the population or sample " "tends to deviate from the typical or average values." msgstr "" +"Ces fonctions mesurent la tendance de la population ou d'un échantillon à " +"dévier des valeurs typiques ou des valeurs moyennes." #: ../Doc/library/statistics.rst:57 msgid ":func:`pstdev`" -msgstr "" +msgstr ":func:`pstdev`" #: ../Doc/library/statistics.rst:57 msgid "Population standard deviation of data." -msgstr "" +msgstr "Écart-type de la population." #: ../Doc/library/statistics.rst:58 msgid ":func:`pvariance`" -msgstr "" +msgstr ":func:`pvariance`" #: ../Doc/library/statistics.rst:58 msgid "Population variance of data." -msgstr "" +msgstr "Variance de la population." #: ../Doc/library/statistics.rst:59 msgid ":func:`stdev`" -msgstr "" +msgstr ":func:`stdev`" #: ../Doc/library/statistics.rst:59 msgid "Sample standard deviation of data." -msgstr "" +msgstr "Écart-type d'un échantillon." #: ../Doc/library/statistics.rst:60 msgid ":func:`variance`" -msgstr "" +msgstr ":func:`variance`" #: ../Doc/library/statistics.rst:60 msgid "Sample variance of data." -msgstr "" +msgstr "Variance d'un échantillon." #: ../Doc/library/statistics.rst:65 msgid "Function details" -msgstr "" +msgstr "Détails des fonctions" #: ../Doc/library/statistics.rst:67 msgid "" "Note: The functions do not require the data given to them to be sorted. " "However, for reading convenience, most of the examples show sorted sequences." msgstr "" +"Note : les fonctions ne requièrent pas que les données soient ordonnées. " +"Toutefois, pour en faciliter la lecture, les exemples utiliseront des " +"séquences croissantes." #: ../Doc/library/statistics.rst:72 msgid "" @@ -170,14 +178,19 @@ msgid "" "many different mathematical averages. It is a measure of the central " "location of the data." msgstr "" +"La moyenne arithmétique est la somme des valeurs divisée par le nombre " +"d'observations. Il s'agit de la valeur couramment désignée comme la " +"« moyenne » bien qu'il existe de multiples façons de définir " +"mathématiquement la moyenne. C'est une mesure de la tendance centrale des " +"données." #: ../Doc/library/statistics.rst:79 msgid "If *data* is empty, :exc:`StatisticsError` will be raised." -msgstr "" +msgstr "Une erreur :exc:`StatisticsError` est levée si *data* est vide." #: ../Doc/library/statistics.rst:81 msgid "Some examples of use:" -msgstr "" +msgstr "Exemples d'utilisation :" #: ../Doc/library/statistics.rst:100 msgid "" @@ -224,6 +237,9 @@ msgid "" "companies, with P/E (price/earning) ratios of 2.5, 3 and 10. What is the " "average P/E ratio for the investor's portfolio?" msgstr "" +"Supposons qu'un investisseur achète autant de parts dans trois compagnies " +"chacune de ratio cours sur bénéfices (*P/E*) 2,5, 3 et 10. Quel est le ratio " +"cours sur bénéfices moyen du portefeuille de l'investisseur ?" #: ../Doc/library/statistics.rst:137 msgid "" @@ -236,6 +252,8 @@ msgid "" ":exc:`StatisticsError` is raised if *data* is empty, or any element is less " "than zero." msgstr "" +"Une erreur :exc:`StatisticsError` est levée si *data* est vide ou si l'un de " +"ses éléments est inférieur à zéro." #: ../Doc/library/statistics.rst:148 msgid "" @@ -256,12 +274,16 @@ msgid "" "When the number of data points is even, the median is interpolated by taking " "the average of the two middle values:" msgstr "" +"Lorsque le nombre d'observations est pair, la médiane est interpolée en " +"calculant la moyenne des deux valeurs du milieu :" #: ../Doc/library/statistics.rst:169 msgid "" "This is suited for when your data is discrete, and you don't mind that the " "median may not be an actual data point." msgstr "" +"Cette approche est adaptée à des données discrètes à condition que vous " +"acceptiez que la médiane ne fasse pas nécessairement partie des observations." #: ../Doc/library/statistics.rst:172 msgid "" @@ -286,12 +308,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the smaller " "of the two middle values is returned." msgstr "" +"La médiane basse est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus petite des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:195 msgid "" "Use the low median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane basse lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:201 msgid "" @@ -305,12 +333,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the larger of " "the two middle values is returned." msgstr "" +"La médiane haute est toujours une valeur représentée dans les données. " +"Lorsque le nombre d'observations est impair, la valeur du milieu est " +"renvoyée. Sinon, la plus grande des deux valeurs du milieu est renvoyée." #: ../Doc/library/statistics.rst:215 msgid "" "Use the high median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utilisez la médiane haute lorsque vos données sont discrètes et que vous " +"préférez que la médiane soit une valeur représentée dans vos observations " +"plutôt que le résultat d'une interpolation." #: ../Doc/library/statistics.rst:221 msgid "" @@ -327,30 +361,45 @@ msgid "" "etc. With the data given, the middle value falls somewhere in the class " "3.5--4.5, and interpolation is used to estimate it:" msgstr "" +"Dans l'exemple ci-dessous, les valeurs sont arrondies de sorte que chaque " +"valeur représente le milieu d'un groupe. Par exemple 1 est le milieu du " +"groupe 0,5 - 1, 2 est le milieu du groupe 1,5 - 2,5, 3 est le milieu de 2,5 -" +" 3,5, etc. Compte-tenu des valeurs ci-dessous, la valeur centrale se situe " +"quelque part dans le groupe 3,5 - 4,5 et est estimée par interpolation :" #: ../Doc/library/statistics.rst:241 msgid "" "Optional argument *interval* represents the class interval, and defaults to " "1. Changing the class interval naturally will change the interpolation:" msgstr "" +"L'argument optionnel *interval* représente la largeur de l'intervalle des " +"groupes (par défaut, 1). Changer l'intervalle des groupes change bien sûr " +"l'interpolation :" #: ../Doc/library/statistics.rst:251 msgid "" "This function does not check whether the data points are at least *interval* " "apart." msgstr "" +"Cette fonction ne vérifie pas que les valeurs sont bien séparées d'au moins " +"une fois *interval*." #: ../Doc/library/statistics.rst:256 msgid "" "Under some circumstances, :func:`median_grouped` may coerce data points to " "floats. This behaviour is likely to change in the future." msgstr "" +"Sous certaines conditions, :func:`median_grouped` peut convertir les valeurs " +"en nombres à virgule flottante. Ce comportement est susceptible de changer " +"dans le futur." #: ../Doc/library/statistics.rst:261 msgid "" "\"Statistics for the Behavioral Sciences\", Frederick J Gravetter and Larry " "B Wallnau (8th Edition)." msgstr "" +"*Statistics for the Behavioral Sciences*, Frederick J Gravetter et Larry B " +"Wallnau (8\\ :sup:`e` édition, ouvrage en anglais)." #: ../Doc/library/statistics.rst:264 msgid "" @@ -359,6 +408,10 @@ msgid "" "spreadsheet, including `this discussion `_." msgstr "" +"La fonction `SSMEDIAN `_ du tableur Gnome Gnumeric ainsi que " +"`cette discussion `_." #: ../Doc/library/statistics.rst:272 msgid "" @@ -390,6 +443,9 @@ msgid "" "Return the population standard deviation (the square root of the population " "variance). See :func:`pvariance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de la population (racine carrée de la variance de la " +"population). Voir :func:`pvariance` pour les arguments et d'autres " +"précisions." #: ../Doc/library/statistics.rst:309 msgid "" @@ -413,10 +469,13 @@ msgid "" "estimate the variance from a sample, the :func:`variance` function is " "usually a better choice." msgstr "" +"Utilisez cette fonction pour calculer la variance sur une population " +"complète. Pour estimer la variance à partir d'un échantillon, utilisez " +"plutôt :func:`variance` à la place." #: ../Doc/library/statistics.rst:323 msgid "Raises :exc:`StatisticsError` if *data* is empty." -msgstr "" +msgstr "Lève une erreur :exc:`StatisticsError` si *data* est vide." #: ../Doc/library/statistics.rst:325 ../Doc/library/statistics.rst:399 msgid "Examples:" @@ -427,6 +486,9 @@ msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *mu* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *mu* lors de l'appel de fonction pour éviter de la " +"calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:342 msgid "" @@ -437,7 +499,7 @@ msgstr "" #: ../Doc/library/statistics.rst:346 msgid "Decimals and Fractions are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:360 msgid "" @@ -445,6 +507,10 @@ msgid "" "σ². When called on a sample instead, this is the biased sample variance s², " "also known as variance with N degrees of freedom." msgstr "" +"Cette fonction renvoie la variance de la population σ² lorsqu'elle est " +"appliquée sur la population entière. Si elle est appliquée seulement sur un " +"échantillon, le résultat est alors la variance de l'échantillon s² ou " +"variance à N degrés de liberté." #: ../Doc/library/statistics.rst:364 msgid "" @@ -460,6 +526,8 @@ msgid "" "Return the sample standard deviation (the square root of the sample " "variance). See :func:`variance` for arguments and other details." msgstr "" +"Renvoie l'écart-type de l'échantillon (racine carrée de la variance de " +"l'échantillon). Voir :func:`variance` pour les arguments et plus de détails." #: ../Doc/library/statistics.rst:384 msgid "" @@ -469,6 +537,11 @@ msgid "" "that the data is spread out; a small variance indicates it is clustered " "closely around the mean." msgstr "" +"Renvoie la variance de l'échantillon *data*, un itérable d'au moins deux " +"valeurs réelles. La variance, ou moment de second ordre, est une mesure de " +"la variabilité (ou dispersion) des données. Une variance élevée indique que " +"les données sont très dispersées ; une variance faible indique que les " +"valeurs sont resserrées autour de la moyenne." #: ../Doc/library/statistics.rst:390 msgid "" @@ -476,22 +549,33 @@ msgid "" "*data*. If it is missing or ``None`` (the default), the mean is " "automatically calculated." msgstr "" +"Si le second argument optionnel *xbar* est spécifié, celui-ci doit " +"correspondre à la moyenne de *data*. S'il n'est pas spécifié ou ``None`` " +"(par défaut), la moyenne est automatiquement calculée." #: ../Doc/library/statistics.rst:394 msgid "" "Use this function when your data is a sample from a population. To calculate " "the variance from the entire population, see :func:`pvariance`." msgstr "" +"Utilisez cette fonction lorsque vos données forment un échantillon d'une " +"population plus grande. Pour calculer la variance d'une population complète, " +"utilisez :func:`pvariance`." #: ../Doc/library/statistics.rst:397 msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." msgstr "" +"Lève une erreur :exc:`StatisticsError` si *data* contient moins de deux " +"éléments." #: ../Doc/library/statistics.rst:407 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *xbar* to avoid recalculation:" msgstr "" +"Si vous connaissez la moyenne de vos données, il est possible de la passer " +"comme argument optionnel *xbar* lors de l'appel de fonction pour éviter de " +"la calculer une nouvelle fois :" #: ../Doc/library/statistics.rst:416 msgid "" @@ -499,10 +583,13 @@ msgid "" "mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " "impossible results." msgstr "" +"Cette fonction ne vérifie pas que la valeur passée dans l'argument *xbar* " +"correspond bien à la moyenne. Utiliser des valeurs arbitraires pour *xbar* " +"produit des résultats impossibles ou incorrects." #: ../Doc/library/statistics.rst:420 msgid "Decimal and Fraction values are supported:" -msgstr "" +msgstr "La fonction gère les nombres décimaux et les fractions :" #: ../Doc/library/statistics.rst:434 msgid "" @@ -511,6 +598,11 @@ msgid "" "representative (e.g. independent and identically distributed), the result " "should be an unbiased estimate of the true population variance." msgstr "" +"Cela correspond à la variance s² de l'échantillon avec correction de Bessel " +"(ou variance à N-1 degrés de liberté). En supposant que les observations " +"sont représentatives de la population (c'est-à-dire indépendantes et " +"identiquement distribuées), alors le résultat est une estimation non biaisée " +"de la variance." #: ../Doc/library/statistics.rst:439 msgid "" @@ -518,6 +610,9 @@ msgid "" "func:`pvariance` function as the *mu* parameter to get the variance of a " "sample." msgstr "" +"Si vous connaissez d'avance la vraie moyenne μ de la population, vous " +"devriez la passer à :func:`pvariance` comme paramètre *mu* pour obtenir la " +"variance de l'échantillon." #: ../Doc/library/statistics.rst:444 msgid "Exceptions" @@ -525,8 +620,9 @@ msgstr "Exceptions" #: ../Doc/library/statistics.rst:446 msgid "A single exception is defined:" -msgstr "" +msgstr "Une seule exception est définie :" #: ../Doc/library/statistics.rst:450 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" +"Sous-classe de :exc:`ValueError` pour les exceptions liées aux statistiques." diff --git a/library/stdtypes.po b/library/stdtypes.po index a103bebca..9cc173468 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -83,19 +83,19 @@ msgid "" msgstr "" "Par défaut, tout objet est considéré vrai à moins que sa classe définisse " "soit une méthode :meth:`__bool__` renvoyant ``False`` soit une méthode :meth:" -"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici " -"la majorité des objets natifs considérés comme étant faux :" +"`__len__` renvoyant zéro lorsqu'elle est appelée avec l'objet. [1]_ Voici la " +"majorité des objets natifs considérés comme étant faux :" #: ../Doc/library/stdtypes.rst:55 msgid "constants defined to be false: ``None`` and ``False``." -msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." +msgstr "les constantes définies comme étant fausses : ``None`` et ``False``." #: ../Doc/library/stdtypes.rst:57 msgid "" "zero of any numeric type: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" msgstr "" -"zéro de tout type numérique: ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " +"zéro de tout type numérique : ``0``, ``0.0``, ``0j``, ``Decimal(0)``, " "``Fraction(0, 1)``" #: ../Doc/library/stdtypes.rst:60 @@ -103,7 +103,7 @@ msgid "" "empty sequences and collections: ``''``, ``()``, ``[]``, ``{}``, ``set()``, " "``range(0)``" msgstr "" -"les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " +"les chaînes et collections vides : ``''``, ``()``, ``[]``, ``{}``, " "``set()``, ``range(0)``" #: ../Doc/library/stdtypes.rst:69 @@ -115,7 +115,7 @@ msgid "" msgstr "" "Les opérations et fonctions natives dont le résultat est booléen donnent " "toujours ``0`` ou ``False`` pour faux et ``1`` ou ``True`` pour vrai, sauf " -"indication contraire. (Exception importante : les opérations booléennes " +"indication contraire. (Exception importante : les opérations booléennes " "``or`` et ``and`` renvoient toujours l'une de leurs opérandes.)" #: ../Doc/library/stdtypes.rst:78 @@ -125,7 +125,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:82 msgid "These are the Boolean operations, ordered by ascending priority:" -msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" +msgstr "Ce sont les opérations booléennes, classées par priorité ascendante :" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:143 #: ../Doc/library/stdtypes.rst:275 ../Doc/library/stdtypes.rst:364 @@ -206,7 +206,7 @@ msgid "" "This is a short-circuit operator, so it only evaluates the second argument " "if the first one is false." msgstr "" -"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " +"Ceci est un opérateur court-circuit : il n'évalue le deuxième argument que " "si le premier est faux." #: ../Doc/library/stdtypes.rst:109 @@ -240,14 +240,14 @@ msgid "" msgstr "" "Il y a huit opérations de comparaison en Python. Elles ont toutes la même " "priorité (qui est supérieure à celle des opérations booléennes). Les " -"comparaisons peuvent être enchaînées arbitrairement; par exemple, ``x < y <= " -"z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué qu'une " -"seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand ``x < " -"y`` est faux)." +"comparaisons peuvent être enchaînées arbitrairement ; par exemple, ``x < y " +"<= z`` est équivalent à ``x < y and y <= z``, sauf que *y* n'est évalué " +"qu'une seule fois (mais dans les deux cas *z* n'est pas évalué du tout quand " +"``x < y`` est faux)." #: ../Doc/library/stdtypes.rst:140 msgid "This table summarizes the comparison operations:" -msgstr "Ce tableau résume les opérations de comparaison :" +msgstr "Ce tableau résume les opérations de comparaison :" #: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2176 #: ../Doc/library/stdtypes.rst:2199 ../Doc/library/stdtypes.rst:3308 @@ -4120,8 +4120,8 @@ msgstr "" "Pour les utilisateurs de Python 2.x : Dans la série 2.x de Python, une " "variété de conversions implicites entre les chaînes 8-bit (la chose la plus " "proche d'un type natif de données binaires offert par Python 2) et des " -"chaînes Unicode étaient permises. C'était solution de contournement, pour " -"garder la rétro-compatibilité, par rapport au fait que Python ne prenait " +"chaînes Unicode étaient permises. C'était une solution de contournement, " +"pour garder la rétro-compatibilité, considérant que Python ne prenait " "initialement en charge que le texte 8 bits, le texte Unicode est un ajout " "ultérieur. En Python 3.x, ces conversions implicites ont disparues, les " "conversions entre les données binaires et texte Unicode doivent être " @@ -4275,7 +4275,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:2495 msgid "and::" -msgstr "et  ::" +msgstr "et ::" #: ../Doc/library/stdtypes.rst:2500 msgid "" @@ -5111,7 +5111,7 @@ msgid "" "copying." msgstr "" "Les :class:`memoryview` permettent a du code Python d'accéder sans copie aux " -"données internes d'un objet pendant en charge le :ref:`buffer protocol " +"données internes d'un objet prenant en charge le :ref:`buffer protocol " "`." #: ../Doc/library/stdtypes.rst:3439 @@ -5121,7 +5121,7 @@ msgid "" "class:`bytes` and :class:`bytearray`." msgstr "" "Crée une :class:`memoryview` faisant référence à *obj*. *obj* doit supporter " -"le *buffer protocol*. Les objets natifs pendant en charge le *buffer " +"le *buffer protocol*. Les objets natifs prenant en charge le *buffer " "protocol* sont :class:`bytes` et :class:`bytearray`." #: ../Doc/library/stdtypes.rst:3443 @@ -6291,7 +6291,7 @@ msgid "" "`open` to be used as the context expression in a :keyword:`with` statement." msgstr "" "Un exemple de gestionnaire de contexte se renvoyant lui-même est :term:`file " -"object`. Les *file objects* se renvoient eux-même depuis __enter__() et " +"object`. Les *file objects* se renvoient eux-même depuis ``__enter__()`` et " "autorisent :func:`open` à être utilisé comme contexte à une instruction :" "keyword:`with`." diff --git a/library/string.po b/library/string.po index 3c56c65b9..689d9b50d 100644 --- a/library/string.po +++ b/library/string.po @@ -54,7 +54,7 @@ msgid "" "The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " "locale-dependent and will not change." msgstr "" -"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz``. Cette valeur de " +"Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz'``. Cette valeur de " "dépend pas de l'environnement linguistique et ne changera pas." #: ../Doc/library/string.rst:37 @@ -719,7 +719,7 @@ msgstr "" #: ../Doc/library/string.rst:416 msgid "Added the ``'_'`` option (see also :pep:`515`)." -msgstr "Ajout de l'option ``'_'`` (voir aussi :pep`515`)." +msgstr "Ajout de l'option ``'_'`` (voir aussi :pep:`515`)." #: ../Doc/library/string.rst:419 msgid "" @@ -789,7 +789,7 @@ msgstr "" #: ../Doc/library/string.rst:444 ../Doc/library/string.rst:471 #: ../Doc/library/string.rst:532 msgid "None" -msgstr "*None*" +msgstr "``None``" #: ../Doc/library/string.rst:444 msgid "The same as ``'s'``." diff --git a/library/struct.po b/library/struct.po index 3c95b676c..8f87d939f 100644 --- a/library/struct.po +++ b/library/struct.po @@ -18,10 +18,12 @@ msgstr "" #: ../Doc/library/struct.rst:2 msgid ":mod:`struct` --- Interpret bytes as packed binary data" msgstr "" +":mod:`struct` — manipulation de données agrégées sous forme binaire comme " +"une séquence d'octets" #: ../Doc/library/struct.rst:7 msgid "**Source code:** :source:`Lib/struct.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/struct.py`" #: ../Doc/library/struct.rst:15 msgid "" @@ -32,6 +34,13 @@ msgid "" "the layout of the C structs and the intended conversion to/from Python " "values." msgstr "" +"Ce module effectue des conversions entre des valeurs Python et des " +"structures C représentées sous la forme de :class:`bytes` (séquences " +"d'octets) Python. Cela permet, entre autres, de manipuler des données " +"agrégées sous forme binaire dans des fichiers ou à travers des connecteurs " +"réseau. Il utilise :ref:`les chaînes de spécification de format ` comme description de l'agencement des structures afin de " +"réaliser les conversions depuis et vers les valeurs Python." #: ../Doc/library/struct.rst:23 msgid "" @@ -43,6 +52,15 @@ msgid "" "or omit implicit pad bytes, use ``standard`` size and alignment instead of " "``native`` size and alignment: see :ref:`struct-alignment` for details." msgstr "" +"par défaut, le résultat de l'agrégation d'une structure C donnée comprend " +"des octets de bourrage afin de maintenir un alignement correct des types C " +"sous-jacents ; de la même manière, l'alignement est pris en compte lors de " +"la dissociation. Ce comportement a été choisi de manière à ce que les octets " +"d'une structure agrégée reproduisent exactement l'agencement en mémoire de " +"la structure C équivalente. Pour gérer des formats de données indépendants " +"de la plateforme ou omettre les octets implicites de bourrage, utilisez la " +"taille et l'alignement ``standard`` en lieu et place de la taille et " +"l'alignement ``native`` (voir :ref:`struct-alignment` pour les détails)." #: ../Doc/library/struct.rst:31 msgid "" @@ -54,20 +72,30 @@ msgid "" "implement the buffer protocol, so that they can be read/filled without " "additional copying from a :class:`bytes` object." msgstr "" +"Plusieurs fonctions de :mod:`struct` (et méthodes de :class:`Struct`) " +"prennent un argument *buffer*. Cet argument fait référence à des objets qui " +"implémentent :ref:`le protocole tampon ` et qui proposent un " +"tampon soit en lecture seule, soit en lecture-écriture. Les types les plus " +"courants qui utilisent cette fonctionnalité sont :class:`bytes` et :class:" +"`bytearray`, mais beaucoup d'autres types qui peuvent être considérés comme " +"des tableaux d'octets implémentent le protocole tampon ; ils peuvent ainsi " +"être lus ou remplis depuis un objet :class:`bytes` sans faire de copie." #: ../Doc/library/struct.rst:40 msgid "Functions and Exceptions" -msgstr "" +msgstr "Fonctions et exceptions" #: ../Doc/library/struct.rst:42 msgid "The module defines the following exception and functions:" -msgstr "" +msgstr "Le module définit les exceptions et fonctions suivantes :" #: ../Doc/library/struct.rst:47 msgid "" "Exception raised on various occasions; argument is a string describing what " "is wrong." msgstr "" +"Exception levée à plusieurs occasions ; l'argument est une chaîne qui décrit " +"ce qui ne va pas." #: ../Doc/library/struct.rst:53 msgid "" @@ -75,6 +103,9 @@ msgid "" "to the format string *format*. The arguments must match the values required " "by the format exactly." msgstr "" +"Renvoie un objet *bytes* contenant les valeurs *v1*, *v2*… agrégées " +"conformément à la chaîne de format *format*. Les arguments doivent " +"correspondre exactement aux valeurs requises par le format." #: ../Doc/library/struct.rst:60 msgid "" @@ -82,6 +113,9 @@ msgid "" "write the packed bytes into the writable buffer *buffer* starting at " "position *offset*. Note that *offset* is a required argument." msgstr "" +"Agrège les valeurs *v1*, *v2*… conformément à la chaîne de format *format* " +"et écrit les octets agrégés dans le tampon *buffer*, en commençant à la " +"position *offset*. Notez que *offset* est un argument obligatoire." #: ../Doc/library/struct.rst:67 msgid "" @@ -90,6 +124,11 @@ msgid "" "contains exactly one item. The buffer's size in bytes must match the size " "required by the format, as reflected by :func:`calcsize`." msgstr "" +"Dissocie depuis le tampon *buffer* (en supposant que celui-ci a été agrégé " +"avec ``pack(format, …)``) à l'aide de la chaîne de format *format*. Le " +"résultat est un n-uplet, qui peut éventuellement ne contenir qu'un seul " +"élément. La taille de *buffer* en octets doit correspondre à la taille " +"requise par le format, telle que calculée par :func:`calcsize`." #: ../Doc/library/struct.rst:75 msgid "" @@ -107,20 +146,28 @@ msgid "" "buffer's size in bytes must be a multiple of the size required by the " "format, as reflected by :func:`calcsize`." msgstr "" +"Dissocie de manière itérative les éléments du tampon *buffer* conformément à " +"la chaîne de format *format*. Cette fonction renvoie un itérateur qui lit " +"des morceaux de taille fixe dans le tampon jusqu'à ce que tout le contenu " +"ait été consommé. La taille du tampon en octets doit être un multiple de la " +"taille requise par le format, telle que calculée par :func:`calcsize`." #: ../Doc/library/struct.rst:89 msgid "Each iteration yields a tuple as specified by the format string." msgstr "" +"Chaque itération produit un n-uplet tel que spécifié par la chaîne de format." #: ../Doc/library/struct.rst:96 msgid "" "Return the size of the struct (and hence of the bytes object produced by " "``pack(format, ...)``) corresponding to the format string *format*." msgstr "" +"Renvoie la taille de la structure (et donc celle de l'objet *bytes* produit " +"par ``pack(format, ...)``) correspondant à la chaîne de format *format*." #: ../Doc/library/struct.rst:103 msgid "Format Strings" -msgstr "" +msgstr "Chaînes de spécification du format" #: ../Doc/library/struct.rst:105 msgid "" @@ -130,10 +177,16 @@ msgid "" "addition, there are special characters for controlling the :ref:`struct-" "alignment`." msgstr "" +"Les chaînes de spécification du format servent à définir l'agencement lors " +"de l'agrégation et la dissociation des données. Elles sont construites à " +"partir de :ref:`caractères de format `, qui spécifient le " +"type de donnée à agréger-dissocier. De plus, il existe des caractères " +"spéciaux pour contrôler :ref:`le boutisme, la taille et l'alignement `." #: ../Doc/library/struct.rst:114 msgid "Byte Order, Size, and Alignment" -msgstr "" +msgstr "Boutisme, taille et alignement" #: ../Doc/library/struct.rst:116 msgid "" @@ -141,6 +194,9 @@ msgid "" "order, and properly aligned by skipping pad bytes if necessary (according to " "the rules used by the C compiler)." msgstr "" +"Par défaut, les types C sont représentés dans le format et le boutisme " +"natifs de la machine ; ils sont alignés correctement en sautant des octets " +"si nécessaire (en fonction des règles utilisées par le compilateur C)." #: ../Doc/library/struct.rst:127 msgid "" @@ -148,6 +204,9 @@ msgid "" "indicate the byte order, size and alignment of the packed data, according to " "the following table:" msgstr "" +"Cependant, le premier caractère de la chaîne de format peut être utilisé " +"pour indiquer le boutisme, la taille et l'alignement des données agrégées, " +"conformément à la table suivante :" #: ../Doc/library/struct.rst:132 msgid "Character" @@ -155,15 +214,15 @@ msgstr "Caractère" #: ../Doc/library/struct.rst:132 msgid "Byte order" -msgstr "" +msgstr "Boutisme" #: ../Doc/library/struct.rst:132 msgid "Size" -msgstr "" +msgstr "Taille" #: ../Doc/library/struct.rst:132 msgid "Alignment" -msgstr "" +msgstr "Alignement" #: ../Doc/library/struct.rst:134 msgid "``@``" @@ -171,7 +230,7 @@ msgstr "``@``" #: ../Doc/library/struct.rst:134 ../Doc/library/struct.rst:136 msgid "native" -msgstr "" +msgstr "natif" #: ../Doc/library/struct.rst:136 msgid "``=``" @@ -180,12 +239,12 @@ msgstr "``=``" #: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 #: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "standard" -msgstr "" +msgstr "standard" #: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 #: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "none" -msgstr "" +msgstr "aucun" #: ../Doc/library/struct.rst:138 msgid "``<``" @@ -193,7 +252,7 @@ msgstr "``<``" #: ../Doc/library/struct.rst:138 msgid "little-endian" -msgstr "" +msgstr "petit-boutiste" #: ../Doc/library/struct.rst:140 msgid "``>``" @@ -201,7 +260,7 @@ msgstr "``>``" #: ../Doc/library/struct.rst:140 msgid "big-endian" -msgstr "" +msgstr "gros-boutiste" #: ../Doc/library/struct.rst:142 msgid "``!``" @@ -209,11 +268,13 @@ msgstr "``!``" #: ../Doc/library/struct.rst:142 msgid "network (= big-endian)" -msgstr "" +msgstr "réseau (= gros-boutiste)" #: ../Doc/library/struct.rst:145 msgid "If the first character is not one of these, ``'@'`` is assumed." msgstr "" +"Si le premier caractère n'est pas dans cette liste, le module se comporte " +"comme si ``'@'`` avait été indiqué." #: ../Doc/library/struct.rst:147 msgid "" @@ -223,36 +284,54 @@ msgid "" "switchable endianness (bi-endian). Use ``sys.byteorder`` to check the " "endianness of your system." msgstr "" +"Le boutisme natif est gros-boutiste ou petit-boutiste, en fonction de la " +"machine sur laquelle s'exécute le programme. Par exemple, les Intel x86 et " +"les AMD64 (x86-64) sont petit-boutistes ; les Motorola 68000 et les *PowerPC " +"G5* sont gros-boutistes ; les ARM et les Intel Itanium peuvent changer de " +"boutisme. Utilisez ``sys.byteorder`` pour vérifier le boutisme de votre " +"système." #: ../Doc/library/struct.rst:153 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." msgstr "" +"La taille et l'alignement natifs sont déterminés en utilisant l'expression " +"``sizeof`` du compilateur C. Leur valeur est toujours combinée au boutisme " +"natif." #: ../Doc/library/struct.rst:156 msgid "" "Standard size depends only on the format character; see the table in the :" "ref:`format-characters` section." msgstr "" +"La taille standard dépend seulement du caractère du format ; référez-vous au " +"tableau dans la section :ref:`format-characters`." #: ../Doc/library/struct.rst:159 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." msgstr "" +"Notez la différence entre ``'@'`` et ``'='`` : les deux utilisent le " +"boutisme natif mais la taille et l'alignement du dernier sont standards." #: ../Doc/library/struct.rst:162 msgid "" "The form ``'!'`` is available for those poor souls who claim they can't " "remember whether network byte order is big-endian or little-endian." msgstr "" +"La forme ``'!'`` existe pour les têtes en l'air qui prétendent ne pas se " +"rappeler si le boutisme réseau est gros-boutiste ou petit-boutiste." #: ../Doc/library/struct.rst:165 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." msgstr "" +"Il n'y a pas de moyen de spécifier le boutisme contraire au boutisme natif " +"(c'est-à-dire forcer la permutation des octets) ; utilisez le bon caractère " +"entre ``'<'`` et ``'>'``." #: ../Doc/library/struct.rst:168 ../Doc/library/struct.rst:247 msgid "Notes:" @@ -263,12 +342,17 @@ msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." msgstr "" +"Le bourrage (*padding* en anglais) n'est automatiquement ajouté qu'entre les " +"membres successifs de la structure. Il n'y a pas de bourrage au début ou à " +"la fin de la structure agrégée." #: ../Doc/library/struct.rst:173 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." msgstr "" +"Il n'y a pas d'ajout de bourrage lorsque vous utilisez une taille et un " +"alignement non-natifs, par exemple avec `<`, `'>', `=` ou `!`." #: ../Doc/library/struct.rst:176 msgid "" @@ -276,10 +360,13 @@ msgid "" "type, end the format with the code for that type with a repeat count of " "zero. See :ref:`struct-examples`." msgstr "" +"Pour aligner la fin d'une structure à l'alignement requis par un type " +"particulier, terminez le format avec le code du type voulu et une valeur de " +"répétition à zéro. Référez-vous à :ref:`struct-examples`." #: ../Doc/library/struct.rst:184 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" #: ../Doc/library/struct.rst:186 msgid "" @@ -290,6 +377,13 @@ msgid "" "``'!'`` or ``'='``. When using native size, the size of the packed value is " "platform-dependent." msgstr "" +"Les caractères de format possèdent les significations suivantes ; la " +"conversion entre les valeurs C et Python doit être évidente compte tenu des " +"types concernés. La colonne « taille standard » fait référence à la taille " +"en octets de la valeur agrégée avec l'utilisation de la taille standard " +"(c'est-à-dire lorsque la chaîne de format commence par l'un des caractères " +"suivants : ``'<'``, ``'>'``, ``'!'`` ou ``'='``). Si vous utilisez la taille " +"native, la taille de la valeur agrégée dépend de la plateforme." #: ../Doc/library/struct.rst:194 msgid "Format" @@ -305,7 +399,7 @@ msgstr "Type Python" #: ../Doc/library/struct.rst:194 msgid "Standard size" -msgstr "" +msgstr "Taille standard" #: ../Doc/library/struct.rst:194 msgid "Notes" @@ -317,11 +411,11 @@ msgstr "``x``" #: ../Doc/library/struct.rst:196 msgid "pad byte" -msgstr "" +msgstr "octet de bourrage" #: ../Doc/library/struct.rst:196 msgid "no value" -msgstr "" +msgstr "pas de valeur" #: ../Doc/library/struct.rst:198 msgid "``c``" @@ -333,7 +427,7 @@ msgstr ":c:type:`char`" #: ../Doc/library/struct.rst:198 msgid "bytes of length 1" -msgstr "" +msgstr "*bytes* (suite d'octets) de taille 1" #: ../Doc/library/struct.rst:198 ../Doc/library/struct.rst:200 #: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:204 @@ -356,7 +450,7 @@ msgstr ":c:type:`signed char`" #: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 #: ../Doc/library/struct.rst:237 msgid "integer" -msgstr "" +msgstr "*int* (entier)" #: ../Doc/library/struct.rst:200 msgid "\\(1),\\(3)" @@ -387,7 +481,7 @@ msgstr ":c:type:`_Bool`" #: ../Doc/library/struct.rst:204 msgid "bool" -msgstr "bool" +msgstr "*bool* (booléen)" #: ../Doc/library/struct.rst:204 msgid "\\(1)" @@ -499,7 +593,7 @@ msgstr ":c:type:`size_t`" #: ../Doc/library/struct.rst:227 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/library/struct.rst:227 msgid "\\(7)" @@ -508,7 +602,7 @@ msgstr "\\(7)" #: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 #: ../Doc/library/struct.rst:231 msgid "float" -msgstr "*float*" +msgstr "*float* (nombre à virgule flottante)" #: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 #: ../Doc/library/struct.rst:231 @@ -541,7 +635,7 @@ msgstr ":c:type:`char[]`" #: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 msgid "bytes" -msgstr "bytes" +msgstr "*bytes* (séquence d'octets)" #: ../Doc/library/struct.rst:235 msgid "``p``" @@ -561,11 +655,11 @@ msgstr "\\(6)" #: ../Doc/library/struct.rst:240 msgid "Added support for the ``'n'`` and ``'N'`` formats." -msgstr "" +msgstr "ajouté la gestion des formats ``'n'`` et ``'N'``." #: ../Doc/library/struct.rst:243 msgid "Added support for the ``'e'`` format." -msgstr "" +msgstr "ajouté la gestion du format ``'e'``." #: ../Doc/library/struct.rst:252 msgid "" @@ -573,6 +667,9 @@ msgid "" "by C99. If this type is not available, it is simulated using a :c:type:" "`char`. In standard mode, it is always represented by one byte." msgstr "" +"Le code de conversion ``'?'`` correspond au type :c:type:`_Bool` de C99. Si " +"ce type n'est pas disponible, il est simulé en utilisant un :c:type:`char`. " +"Dans le mode standard, il est toujours représenté par un octet." #: ../Doc/library/struct.rst:257 msgid "" @@ -587,10 +684,14 @@ msgid "" "codes, if the non-integer has a :meth:`__index__` method then that method is " "called to convert the argument to an integer before packing." msgstr "" +"Lorsque vous essayez d'agréger un non-entier en utilisant un code de " +"conversion pour un entier, si ce non-entier possède une méthode :meth:" +"`__index__` alors cette méthode est appelée pour convertir l'argument en " +"entier avant l'agrégation." #: ../Doc/library/struct.rst:266 msgid "Use of the :meth:`__index__` method for non-integers is new in 3.2." -msgstr "" +msgstr "utilisation de la méthode :meth:`__index__` pour les non-entiers. " #: ../Doc/library/struct.rst:270 msgid "" @@ -599,6 +700,10 @@ msgid "" "the standard size, you can use whichever of the other integer formats fits " "your application." msgstr "" +"Les codes de conversion ``'n'`` et ``'N'`` ne sont disponibles que pour la " +"taille native (choisie par défaut ou à l'aide du caractère de boutisme " +"``'@'``). Pour la taille standard, vous pouvez utiliser n'importe quel " +"format d'entier qui convient à votre application." #: ../Doc/library/struct.rst:276 msgid "" @@ -607,6 +712,10 @@ msgid "" "``'f'``, ``'d'`` or ``'e'`` respectively), regardless of the floating-point " "format used by the platform." msgstr "" +"Pour les codes de conversion ``'f'``, ``'d'`` et ``'e'``, la représentation " +"agrégée utilise respectivement le format IEEE 754 *binaire32*, *binaire64* " +"ou *binaire16* (pour ``'f'``, ``'d'`` ou ``'e'`` respectivement), quel que " +"soit le format des nombres à virgule flottante de la plateforme." #: ../Doc/library/struct.rst:282 msgid "" @@ -616,6 +725,11 @@ msgid "" "on the host system. The struct module does not interpret this as native " "ordering, so the ``'P'`` format is not available." msgstr "" +"Le caractère de format ``'P'`` n'est disponible que pour le boutisme natif " +"(choisi par défaut ou à l'aide du caractère ``'@'`` de boutisme). Le " +"caractère de boutisme ``'='`` choisit d'utiliser un petit ou un gros en " +"fonction du système hôte. Le module *struct* ne l'interprète pas comme un " +"boutisme natif, donc le format ``'P'`` n'est pas disponible." #: ../Doc/library/struct.rst:289 msgid "" @@ -628,18 +742,34 @@ msgid "" "operations. See the Wikipedia page on the `half-precision floating-point " "format `_ for more information." msgstr "" +"Le type IEEE 754 *binaire16* « demie-précision » a été introduit en 2008 par " +"la révision du `standard IEEE 754 `_. Il comprend un bit " +"de signe, un exposant sur 5 bits et une précision de 11 bits (dont 10 bits " +"sont explicitement stockés) ; il peut représenter les nombres entre environ " +"``6.1e-05`` et ``6.5e+04`` avec une précision maximale. Ce type est rarement " +"pris en charge par les compilateurs C : sur une machine courante, un " +"*unsigned short* (entier court non signé) peut être utilisé pour le stockage " +"mais pas pour les opérations mathématiques. Lisez la page Wikipédia (NdT : " +"non traduite en français) `half-precision floating-point format `_ pour davantage d'informations." #: ../Doc/library/struct.rst:299 msgid "" "A format character may be preceded by an integral repeat count. For " "example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." msgstr "" +"Un caractère de format peut être précédé par un entier indiquant le nombre " +"de répétitions. Par exemple, la chaîne de format ``'4h'`` a exactement la " +"même signification que ``'hhhh'``." #: ../Doc/library/struct.rst:302 msgid "" "Whitespace characters between formats are ignored; a count and its format " "must not contain whitespace though." msgstr "" +"Les caractères d'espacement entre les indications de format sont ignorés ; " +"cependant, le nombre de répétitions et le format associé ne doivent pas être " +"séparés par des caractères d'espacement." #: ../Doc/library/struct.rst:305 msgid "" @@ -652,6 +782,15 @@ msgid "" "number of bytes. As a special case, ``'0s'`` means a single, empty string " "(while ``'0c'`` means 0 characters)." msgstr "" +"Pour le caractère de format ``'s'``, un nombre en tête est interprété comme " +"la longueur du *bytes* et non comme le nombre de répétitions comme pour les " +"autres caractères de format ; par exemple, ``'10s'`` signifie une seule " +"chaîne de 10 octets alors que ``'10c'`` signifie 10 caractères. Si aucun " +"nombre n'est indiqué, la valeur par défaut est 1. Pour l'agrégation, la " +"chaîne est tronquée ou bourrée avec des octets nuls pour atteindre la taille " +"souhaitée. Pour la dissociation, l'objet *bytes* résultant possède le nombre " +"exact d'octets spécifiés. Un cas particulier est ``'0s'`` qui signifie une " +"chaîne (et une seule) vide (alors que ``'0c'`` signifie zéro caractère)." #: ../Doc/library/struct.rst:314 msgid "" @@ -660,12 +799,19 @@ msgid "" "``'Q'``), if ``x`` is outside the valid range for that format then :exc:" "`struct.error` is raised." msgstr "" +"Lors de l'agrégation d'une valeur ``x`` en utilisant l'un des formats pour " +"les entiers (``'b'``, ``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, " +"``'L'``, ``'q'``, ``'Q'``), si ``x`` est en dehors de l'intervalle du format " +"spécifié, une :exc:`struct.error` est levée." #: ../Doc/library/struct.rst:319 msgid "" "In 3.0, some of the integer formats wrapped out-of-range values and raised :" "exc:`DeprecationWarning` instead of :exc:`struct.error`." msgstr "" +"auparavant, certains formats d'entiers absorbaient les valeurs en dehors des " +"intervalles valides et levaient une :exc:`DeprecationWarning` au lieu d'une :" +"exc:`struct.error`." #: ../Doc/library/struct.rst:323 msgid "" @@ -680,6 +826,17 @@ msgid "" "consumes ``count`` bytes, but that the string returned can never contain " "more than 255 bytes." msgstr "" +"Le caractère de format ``'p'`` sert à encoder une « chaîne Pascal », c'est-à-" +"dire une courte chaîne de longueur variable, stockée dans un *nombre défini " +"d'octets* dont la valeur est définie par la répétition. Le premier octet " +"stocké est la longueur de la chaîne (dans la limite maximum de 255). Les " +"octets composant la chaîne suivent. Si la chaîne passée à :func:`pack` est " +"trop longue (supérieure à la valeur de la répétition moins 1), seuls les " +"``count-1`` premiers octets de la chaîne sont stockés. Si la chaîne est plus " +"courte que ``count-1``, des octets de bourrage nuls sont insérés de manière " +"à avoir exactement *count* octets au final. Notez que pour :func:`unpack`, " +"le caractère de format ``'p'`` consomme ``count`` octets mais que la chaîne " +"renvoyée ne peut pas excéder 255 octets." #: ../Doc/library/struct.rst:336 msgid "" @@ -688,6 +845,11 @@ msgid "" "used. Either 0 or 1 in the native or standard bool representation will be " "packed, and any non-zero value will be ``True`` when unpacking." msgstr "" +"Pour le caractère de format ``'?'``, la valeur renvoyée est :const:`True` " +"ou :const:`False`. Lors de l'agrégation, la valeur de vérité de l'objet " +"argument est utilisée. La valeur agrégée est 0 ou 1 dans la représentation " +"native ou standard et, lors de la dissociation, n'importe quelle valeur " +"différente de zéro est renvoyée ``True``." #: ../Doc/library/struct.rst:346 msgid "Examples" @@ -698,42 +860,53 @@ msgid "" "All examples assume a native byte order, size, and alignment with a big-" "endian machine." msgstr "" +"tous les exemples présentés supposent que l'on utilise le boutisme, la " +"taille et l'alignement natifs sur une machine gros-boutiste." #: ../Doc/library/struct.rst:352 msgid "A basic example of packing/unpacking three integers::" -msgstr "" +msgstr "Un exemple de base d'agrégation et dissociation de trois entiers ::" #: ../Doc/library/struct.rst:362 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" msgstr "" +"Les champs dissociés peuvent être nommés en leur assignant des variables ou " +"en encapsulant le résultat dans un n-uplet nommé ::" #: ../Doc/library/struct.rst:373 msgid "" "The ordering of format characters may have an impact on size since the " "padding needed to satisfy alignment requirements is different::" msgstr "" +"L'ordre des caractères de format peut avoir un impact sur la taille puisque " +"le bourrage nécessaire pour réaliser l'alignement est différent ::" #: ../Doc/library/struct.rst:385 msgid "" "The following format ``'llh0l'`` specifies two pad bytes at the end, " "assuming longs are aligned on 4-byte boundaries::" msgstr "" +"Le format suivant ``'llh0l'`` spécifie deux octets de bourrage à la fin, " +"considérant que les entiers longs sont alignés sur des espacements de 4 " +"octets ::" #: ../Doc/library/struct.rst:391 msgid "" "This only works when native size and alignment are in effect; standard size " "and alignment does not enforce any alignment." msgstr "" +"Ceci ne fonctionne que quand la taille et l'alignement natifs sont " +"utilisés ; la taille et l'alignement standards ne forcent aucun alignement." #: ../Doc/library/struct.rst:398 msgid "Module :mod:`array`" -msgstr "" +msgstr "Module :mod:`array`" #: ../Doc/library/struct.rst:398 msgid "Packed binary storage of homogeneous data." -msgstr "" +msgstr "Stockage agrégé binaire de données homogènes." #: ../Doc/library/struct.rst:400 msgid "Module :mod:`xdrlib`" @@ -741,7 +914,7 @@ msgstr "Module :mod:`xdrlib`" #: ../Doc/library/struct.rst:401 msgid "Packing and unpacking of XDR data." -msgstr "" +msgstr "Agrégation et dissociation de données XDR." #: ../Doc/library/struct.rst:407 msgid "Classes" @@ -749,7 +922,7 @@ msgstr "Classes" #: ../Doc/library/struct.rst:409 msgid "The :mod:`struct` module also defines the following type:" -msgstr "" +msgstr "Le module :mod:`struct` définit aussi le type suivant :" #: ../Doc/library/struct.rst:414 msgid "" @@ -758,6 +931,11 @@ msgid "" "methods is more efficient than calling the :mod:`struct` functions with the " "same format since the format string only needs to be compiled once." msgstr "" +"Renvoie un nouvel objet Struct qui écrit et lit des données binaires " +"conformément à la chaîne de format *format*. Créer une fois pour toutes un " +"objet Struct puis appeler ses méthodes est plus efficace que d'appeler les " +"fonctions de :mod:`struct` avec le même format puisque la chaîne de format " +"n'est compilée qu'une seule fois." #: ../Doc/library/struct.rst:421 msgid "" @@ -766,26 +944,36 @@ msgid "" "only a few format strings needn't worry about reusing a single :class:" "`Struct` instance." msgstr "" +"les versions compilées des dernières chaînes de format passées à :class:" +"`Struct` et aux fonctions de niveau module sont mises en cache, de manière à " +"ce que les programmes qui n'utilisent que quelques chaînes de format n'aient " +"pas à se préoccuper de n'utiliser qu'une seule instance de :class:`Struct`." #: ../Doc/library/struct.rst:426 msgid "Compiled Struct objects support the following methods and attributes:" msgstr "" +"Les objets ``Struct`` compilés gèrent les méthodes et attributs suivants :" #: ../Doc/library/struct.rst:430 msgid "" "Identical to the :func:`pack` function, using the compiled format. " "(``len(result)`` will equal :attr:`size`.)" msgstr "" +"Identique à la fonction :func:`pack`, en utilisant le format compilé " +"(``len(result)`` vaut :attr:`size`)." #: ../Doc/library/struct.rst:436 msgid "Identical to the :func:`pack_into` function, using the compiled format." msgstr "" +"Identique à la fonction :func:`pack_into`, en utilisant le format compilé." #: ../Doc/library/struct.rst:441 msgid "" "Identical to the :func:`unpack` function, using the compiled format. The " "buffer's size in bytes must equal :attr:`size`." msgstr "" +"Identique à la fonction :func:`unpack`, en utilisant le format compilé. La " +"taille du tampon *buffer* en octets doit valoir :attr:`size`." #: ../Doc/library/struct.rst:447 msgid "" @@ -798,17 +986,23 @@ msgid "" "Identical to the :func:`iter_unpack` function, using the compiled format. " "The buffer's size in bytes must be a multiple of :attr:`size`." msgstr "" +"Identique à la fonction :func:`iter_unpack`, en utilisant le format compilé. " +"La taille du tampon *buffer* en octets doit être un multiple de :attr:`size`." #: ../Doc/library/struct.rst:461 msgid "The format string used to construct this Struct object." -msgstr "" +msgstr "La chaîne de format utilisée pour construire l'objet `Struct`." #: ../Doc/library/struct.rst:463 msgid "The format string type is now :class:`str` instead of :class:`bytes`." msgstr "" +"la chaîne de format est maintenant de type :class:`str` au lieu de :class:" +"`bytes`." #: ../Doc/library/struct.rst:468 msgid "" "The calculated size of the struct (and hence of the bytes object produced by " "the :meth:`pack` method) corresponding to :attr:`format`." msgstr "" +"La taille calculée de la structure agrégée (et donc de l'objet `bytes` " +"produit par la méthode :meth:`pack`) correspondante à :attr:`format`." diff --git a/library/subprocess.po b/library/subprocess.po index 8f120a1ed..6099ed808 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -32,7 +32,7 @@ msgstr "" "Le module :mod:`subprocess` vous permet de lancer de nouveaux processus, les " "connecter à des tubes d'entrée/sortie/erreur, et d'obtenir leurs codes de " "retour. Ce module a l'intention de remplacer plusieurs anciens modules et " -"fonctions : ::" +"fonctions ::" #: ../Doc/library/subprocess.rst:21 msgid "" @@ -135,7 +135,7 @@ msgstr "" "L'argument *input* est passé à :meth:`Popen.communicate` et donc à l'entrée " "standard (*stdin*) du sous-processus. Si l'argument est utilisé, il doit " "contenir une séquence de *bytes*, ou une chaîne de caractères si *encoding* " -"ou *errors* son spécifiés, ou si *text* est vrai. Quand cet argument est " +"ou *errors* sont spécifiés, ou si *text* est vrai. Quand cet argument est " "utilisé, l'objet interne :class:`Popen` est automatiquement créé avec " "``stdin=PIPE``, et l'argument *stdin* ne doit donc pas être utilisé." @@ -361,7 +361,7 @@ msgid "" "most typical use cases, many of these arguments can be safely left at their " "default values. The arguments that are most commonly needed are:" msgstr "" -"Pour gérer un large ensemble de cas, la constructeur de :class:`Popen` (et " +"Pour gérer un large ensemble de cas, le constructeur de :class:`Popen` (et " "les fonctions de convenance) acceptent de nombreux arguments optionnels. " "Pour les cas d'utilisation les plus typiques, beaucoup de ces arguments " "peuvent sans problème être laissés à leurs valeurs par défaut. Les arguments " @@ -379,7 +379,7 @@ msgstr "" "*args* est requis pour tous les appels et doit être une chaîne de caractères " "ou une séquence d'arguments du programme. Il est généralement préférable de " "fournir une séquence d'arguments, puisque cela permet au module de s'occuper " -"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " +"des potentiels échappements ou guillemets autour des arguments (p. ex. pour " "permettre des espaces dans des noms de fichiers). Si l'argument est passé " "comme une simple chaîne, soit *shell* doit valoir :const:`True` (voir ci-" "dessous) soit la chaîne doit simplement contenir le nom du programme à " @@ -575,7 +575,7 @@ msgid "" "for *args*, especially in complex cases::" msgstr "" ":meth:`shlex.split` peut être utilisée pour déterminer le découpage correct " -"de *args*, spécifiquement dans les cas complexes : ::" +"de *args*, spécifiquement dans les cas complexes ::" #: ../Doc/library/subprocess.rst:374 msgid "" @@ -634,7 +634,7 @@ msgstr "" "Si *args* est une séquence, le premier élément spécifie la commande, et les " "éléments supplémentaires seront traités comme des arguments additionnels à " "passer au *shell* lui-même. Pour ainsi dire, :class:`Popen` réalise " -"l'équivalent de : ::" +"l'équivalent de ::" #: ../Doc/library/subprocess.rst:399 msgid "" @@ -674,7 +674,7 @@ msgid "" "e., in a text mode)" msgstr "" ":const:`1` indique une mise en cache par ligne (utilisable seulement si " -"``universal_newlines=True``, c'est à dire en mode texte) ;" +"``universal_newlines=True``, c'est-à-dire en mode texte) ;" #: ../Doc/library/subprocess.rst:417 msgid "any other positive value means use a buffer of approximately that size" @@ -926,8 +926,8 @@ msgstr "" "fichiers *stdin*, *stdout* et *stderr* sont ouverts en mode texte, avec " "l'encodage et la valeur d'*errors* spécifiés, comme décrit ci-dessus dans :" "ref:`frequently-used-arguments`. L'argument *universal_newlines*, équivalent " -"à *text*, est fourni pour la rétrocompatibilité . Autrement, ils sont " -"ouverts comme des flux binaires." +"à *text*, est fourni pour la rétrocompatibilité. Autrement, ils sont ouverts " +"comme des flux binaires." #: ../Doc/library/subprocess.rst:535 msgid "*encoding* and *errors* were added." @@ -1004,7 +1004,7 @@ msgid "" msgstr "" "Les objets *Popen* sont gérés comme gestionnaires de contexte avec " "l'instruction :keyword:`with` : à la sortie, les descripteurs de fichiers " -"standards sont fermés, et le processus est attendu : ::" +"standards sont fermés, et le processus est attendu ::" #: ../Doc/library/subprocess.rst:565 msgid "Added context manager support." @@ -1230,7 +1230,7 @@ msgid "" msgstr "" "Le processus enfant n'est pas tué si le *timeout* expire, donc afin de " "nettoyer proprement le tout, une application polie devrait tuer le processus " -"fils et terminer la communication : ::" +"fils et terminer la communication ::" #: ../Doc/library/subprocess.rst:688 msgid "" @@ -1399,7 +1399,7 @@ msgid "" "are used when the process creates a window. ::" msgstr "" "Un champ de bits déterminant si certains attributs :class:`STARTUPINFO` sont " -"utilisés quand le processus crée une fenêtre : ::" +"utilisés quand le processus crée une fenêtre ::" #: ../Doc/library/subprocess.rst:809 msgid "" @@ -1589,7 +1589,7 @@ msgid "" "will have an above average priority." msgstr "" "Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " -"aura une priorité au dessus de la moyenne." +"aura une priorité au-dessus de la moyenne." #: ../Doc/library/subprocess.rst:924 msgid "" @@ -1597,7 +1597,7 @@ msgid "" "will have a below average priority." msgstr "" "Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un processus " -"aura une priorité au dessous de la moyenne." +"aura une priorité au-dessous de la moyenne." #: ../Doc/library/subprocess.rst:931 msgid "" @@ -1666,7 +1666,7 @@ msgid "" "multithreaded shell applications that run with hard errors disabled." msgstr "" "Paramètre ``creationflags`` de :class:`Popen` pour spécifier qu'un nouveau " -"processus n'hérite pas du mode de gestion des erreur du processus appelant. " +"processus n'hérite pas du mode de gestion des erreurs du processus appelant. " "À la place, le nouveau processus acquiert le mode d'erreur par défaut. Cette " "fonctionnalité est particulièrement utile pour les applications *shell* avec " "de multiples fils d'exécution qui s'exécutent avec les erreurs irréversibles " @@ -1816,7 +1816,7 @@ msgid "" "STDOUT``::" msgstr "" "Pour capturer aussi la sortie d'erreur dans le résultat, utilisez " -"``stderr=subprocess.STDOUT`` : ::" +"``stderr=subprocess.STDOUT`` ::" #: ../Doc/library/subprocess.rst:1100 msgid "Support for the *input* keyword argument was added." @@ -1877,7 +1877,7 @@ msgstr "Remplacement des *backquotes* des *shells /bin/sh*" #: ../Doc/library/subprocess.rst:1139 ../Doc/library/subprocess.rst:1150 #: ../Doc/library/subprocess.rst:1167 msgid "becomes::" -msgstr "devient : ::" +msgstr "devient ::" #: ../Doc/library/subprocess.rst:1144 msgid "Replacing shell pipeline" @@ -1914,7 +1914,7 @@ msgstr "" #: ../Doc/library/subprocess.rst:1185 msgid "A more realistic example would look like this::" -msgstr "Un exemple plus réaliste ressemblerait à cela : ::" +msgstr "Un exemple plus réaliste ressemblerait à cela ::" #: ../Doc/library/subprocess.rst:1198 msgid "Replacing the :func:`os.spawn ` family" @@ -1922,19 +1922,19 @@ msgstr "Remplacer les fonctions de la famille :func:`os.spawn `" #: ../Doc/library/subprocess.rst:1200 msgid "P_NOWAIT example::" -msgstr "Exemple avec *P_NOWAIT* : ::" +msgstr "Exemple avec *P_NOWAIT* ::" #: ../Doc/library/subprocess.rst:1206 msgid "P_WAIT example::" -msgstr "Exemple avec *P_WAIT* : ::" +msgstr "Exemple avec *P_WAIT* ::" #: ../Doc/library/subprocess.rst:1212 msgid "Vector example::" -msgstr "Exemple avec un tableau : ::" +msgstr "Exemple avec un tableau ::" #: ../Doc/library/subprocess.rst:1218 msgid "Environment example::" -msgstr "Exemple en passant un environnement : ::" +msgstr "Exemple en passant un environnement ::" #: ../Doc/library/subprocess.rst:1227 msgid "Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" @@ -1942,7 +1942,7 @@ msgstr "Remplacer :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" #: ../Doc/library/subprocess.rst:1257 msgid "Return code handling translates as follows::" -msgstr "La gestion du code de retour se traduit comme suit : ::" +msgstr "La gestion du code de retour se traduit comme suit ::" #: ../Doc/library/subprocess.rst:1273 msgid "Replacing functions from the :mod:`popen2` module" @@ -2027,7 +2027,7 @@ msgid "" msgstr "" "Si la sortie se termine par un caractère de fin de ligne, ce dernier est " "supprimé. Le code de statut de la commande peut être interprété comme le " -"code de retour de *subprocess*. Par exemple : ::" +"code de retour de *subprocess*. Par exemple ::" #: ../Doc/library/subprocess.rst:1340 ../Doc/library/subprocess.rst:1360 msgid ":ref:`Availability `: POSIX & Windows." @@ -2060,7 +2060,7 @@ msgid "" msgstr "" "Comme :func:`getstatusoutput`, à l'exception que le code de statut est " "ignoré et que la valeur de retour est une chaîne contenant la sortie de la " -"commande. Exemple : ::" +"commande. Exemple ::" #: ../Doc/library/subprocess.rst:1361 msgid "Windows support added" diff --git a/library/sunau.po b/library/sunau.po index d0ce9df67..b41726f2c 100644 --- a/library/sunau.po +++ b/library/sunau.po @@ -37,7 +37,7 @@ msgstr "" #: ../Doc/library/sunau.rst:21 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/sunau.rst:21 msgid "Contents" diff --git a/library/sys.po b/library/sys.po index 81650a4ff..e314e5a8c 100644 --- a/library/sys.po +++ b/library/sys.po @@ -34,8 +34,8 @@ msgid "" "On POSIX systems where Python was built with the standard ``configure`` " "script, this contains the ABI flags as specified by :pep:`3149`." msgstr "" -"Les *ABI flags* tels que définis par la :pep:`3149`, sur des systèmes POSIX " -"où Python a été compilé normalement avec le script ``configure``." +"Contient, sur les systèmes POSIX où Python a été compilé avec le script " +"``configure``, les *ABI flags* tels que définis par la :pep:`3149`." #: ../Doc/library/sys.rst:24 msgid "" @@ -48,10 +48,10 @@ msgid "" msgstr "" "La liste des arguments de la ligne de commande passés à un script Python. " "``argv[0]`` est le nom du script (chemin complet, ou non, en fonction du " -"système d'exploitation). Si la commande a été exécutée avec l'option :" -"option:`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si " -"aucun nom de script n'a été donné à l'interpréteur Python, ``argv[0]`` sera " -"une chaîne vide." +"système d'exploitation). Si la commande a été exécutée avec l'option :option:" +"`-c` de l'interpréteur, ``argv[0]`` vaut la chaîne ``'-c'``. Si aucun nom de " +"script n'a été donné à l'interpréteur Python, ``argv[0]`` sera une chaîne " +"vide." #: ../Doc/library/sys.rst:30 msgid "" @@ -105,7 +105,7 @@ msgid "" msgstr "" "Défini au démarrage de Python, avant que ``site.py`` ne soit évalué, à la " "même valeur que :data:`prefix`. Hors d'un :ref:`environnement virtuel `, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " +"def>`, les valeurs restent les mêmes ; si ``site.py`` détecte qu'un " "environnement virtuel est utilisé, les valeurs de :data:`prefix` et :data:" "`exec_prefix` sont modifiées pour pointer vers l'environnement virtuel, " "alors que :data:`base_prefix` et :data:`base_exec_prefix` pointent toujours " @@ -307,10 +307,10 @@ msgid "" msgstr "" "Si *value* n'est pas ``None``, cette fonction écrit ``repr(value)`` sur " "``sys.stdout``, et sauvegarde *value* dans ``builtins._``. Si " -"``repr(value)`` n'est pas encodable avec ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``sys.stdout.errors`` (qui est probablement " -"``'strict'``), elle sera encodée par ``sys.stdout.encoding`` avec le " -"gestionnaire d'erreur ``'backslashreplace'``." +"``repr(value)`` ne peut pas être encodé avec ``sys.stdout.encoding`` en " +"utilisant le gestionnaire d'erreur ``sys.stdout.errors`` (qui est " +"probablement ``'strict'``), elle sera encodée avec ``sys.stdout.encoding`` " +"en utilisant le gestionnaire d'erreur ``'backslashreplace'``." #: ../Doc/library/sys.rst:183 msgid "" @@ -903,7 +903,7 @@ msgid "" "digits, this isn't always true::" msgstr "" "Cependant, pour les chaînes avec plus de :attr:`sys.float_info.dig` chiffres " -"significatifs, ce n'est pas toujours vrai : ::" +"significatifs, ce n'est pas toujours vrai ::" #: ../Doc/library/sys.rst:438 msgid "" @@ -1434,7 +1434,7 @@ msgstr "" "Le numéro de version codé sous forme d'un seul nombre entier. Ce numéro " "augmente avec chaque version, y compris pour les versions hors production. " "Par exemple, pour vérifier que l'interpréteur Python est au moins la version " -"1.5, utilisez : ::" +"1.5, utilisez ::" #: ../Doc/library/sys.rst:765 msgid "" @@ -1611,7 +1611,7 @@ msgid "" "Interned strings are not immortal; you must keep a reference to the return " "value of :func:`intern` around to benefit from it." msgstr "" -"Les chaînes internées ne sont pas immortelles; vous devez garder une " +"Les chaînes internées ne sont pas immortelles ; vous devez garder une " "référence à la valeur renvoyée par :func:`intern` pour en bénéficier." #: ../Doc/library/sys.rst:861 @@ -1855,11 +1855,11 @@ msgstr "" #: ../Doc/library/sys.rst:1004 msgid "For other systems, the values are:" -msgstr "Pour les autres systèmes, les valeurs sont:" +msgstr "Pour les autres systèmes, les valeurs sont :" #: ../Doc/library/sys.rst:1007 msgid "System" -msgstr "Système" +msgstr "Le système une station de travail." #: ../Doc/library/sys.rst:1007 msgid "``platform`` value" @@ -2000,7 +2000,7 @@ msgid "" "thread switching and asynchronous tasks has been rewritten. Use :func:" "`setswitchinterval` instead." msgstr "" -"Cette fonction n'a plus aucun effet : La logique interne de commutation de " +"Cette fonction n'a plus aucun effet : La logique interne de commutation de " "fils d'exécution et de gestion des tâches asynchrones ayant été réécrite. " "Utilisez :func:`setswitchinterval` à la place." @@ -2058,10 +2058,11 @@ msgid "" "``'return'``, ``'c_call'``, ``'c_return'``, or ``'c_exception'``. *arg* " "depends on the event type." msgstr "" -"Les fonctions de traçage doivent avoir trois arguments: *frame*, *event*, et " -"*arg*. *frame* est la *stack frame* actuelle. *event* est une chaîne de " -"caractères pouvant valoir : ``'call'``, ``'return'``, ``'c_call'``, " -"``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de l'évènement." +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'return'``, " +"``'c_call'``, ``'c_return'`` ou ``'c_exception'``. *arg* dépend du type de " +"l'évènement." #: ../Doc/library/sys.rst:1113 ../Doc/library/sys.rst:1193 msgid "The events have the following meaning:" @@ -2199,9 +2200,9 @@ msgid "" "``'line'``, ``'return'``, ``'exception'`` or ``'opcode'``. *arg* depends on " "the event type." msgstr "" -"Les fonctions de traçage doivent avoir trois arguments: *frame*, *event*, et " -"*arg*. *frame* est la *stack frame* actuelle. *event* est une chaîne de " -"caractères pouvant valoir : ``'call'``, ``'line'``, ``'return'``, " +"Les fonctions de traçage doivent avoir trois arguments : *frame*, " +"*event*, et *arg*. *frame* est la *stack frame* actuelle. *event* est une " +"chaîne de caractères pouvant valoir : ``'call'``, ``'line'``, ``'return'``, " "``'exception'`` ou ``'opcode'``. *arg* dépend du type de l'évènement." #: ../Doc/library/sys.rst:1182 @@ -2303,9 +2304,9 @@ msgid "" "`f_trace_opcodes` to :const:`True` on the frame." msgstr "" "L'interpréteur va exécuter un nouvel *opcode* (voyez :mod:`dis` pour plus de " -"détails). La fonction de traçage locale est appelée ; *arg* vaut ``None``; " +"détails). La fonction de traçage locale est appelée ; *arg* vaut ``None`` ; " "la valeur retournée donne la nouvelle fonction de traçage locale. Le traçage " -"ne se fait pas *opcode* par *opcode* par défaut : cela doit être " +"ne se fait pas *opcode* par *opcode* par défaut : cela doit être " "explicitement requis en mettant :attr:`f_trace_opcodes` à :const:`True` pour " "cette *frame*." @@ -2639,15 +2640,15 @@ msgstr "Nom de l'implémentation des fils d'exécution :" #: ../Doc/library/sys.rst:1431 msgid "``'nt'``: Windows threads" -msgstr "``'nt'``: Fils d'exécution Windows" +msgstr "``'nt'`` : Fils d'exécution Windows" #: ../Doc/library/sys.rst:1432 msgid "``'pthread'``: POSIX threads" -msgstr "``'pthread'``: Fils d'exécution POSIX" +msgstr "``'pthread'`` : Fils d'exécution POSIX" #: ../Doc/library/sys.rst:1433 msgid "``'solaris'``: Solaris threads" -msgstr "``'solaris'``: Fils d'exécution Solaris" +msgstr "``'solaris'`` : Fils d'exécution Solaris" #: ../Doc/library/sys.rst:1435 msgid ":const:`lock`" @@ -2659,12 +2660,12 @@ msgstr "Nom de l'implémentation du système de verrou :" #: ../Doc/library/sys.rst:1437 msgid "``'semaphore'``: a lock uses a semaphore" -msgstr "``'semaphore'``: Verrou utilisant une sémaphore" +msgstr "``'semaphore'`` : Verrou utilisant une sémaphore" #: ../Doc/library/sys.rst:1438 msgid "``'mutex+cond'``: a lock uses a mutex and a condition variable" msgstr "" -"``'mutex+cond'``: Un verrou utilisant un *mutex* et une *condition variable*" +"``'mutex+cond'`` : Un verrou utilisant un *mutex* et une *condition variable*" #: ../Doc/library/sys.rst:1440 msgid "``None`` if this information is unknown" @@ -2730,7 +2731,7 @@ msgid "" "also be accessed by name, so ``sys.version_info[0]`` is equivalent to ``sys." "version_info.major`` and so on." msgstr "" -"Un *tuple* contenant les cinq composants du numéro de version: *major*, " +"Un *tuple* contenant les cinq composants du numéro de version : *major*, " "*minor*, *micro*, *releaselevel* et *serial*. Toutes les valeurs sauf " "*releaselevel* sont des nombres entiers. *releaselevel* peut valoir " "``'alpha'``, ``'beta'``, ``'candidate'``, ou ``'final'``. La valeur de " @@ -2776,7 +2777,7 @@ msgstr "" "Un dictionnaire des différentes options spécifiques à l'implémentation " "passés en ligne de commande via l'option :option:`-X`. Aux noms des options " "correspondent soit leur valeur, si elle est donnée explicitement, soit à :" -"const:`True`. Exemple:" +"const:`True`. Exemple :" #: ../Doc/library/sys.rst:1521 msgid "" @@ -2798,9 +2799,9 @@ msgid "" "standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" "n1256.pdf\\ ." msgstr "" -"ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " -"standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" -"n1256.pdf\\ ." +"*ISO/IEC 9899:1999*. \"Langages de programmation -- C.\" Un texte public " +"de ce standard est disponible à http://www.open-std.org/jtc1/sc22/wg14/www/" +"docs/n1256.pdf\\ ." #~ msgid "" #~ "The character encoding is platform-dependent. Under Windows, if the " diff --git a/library/sysconfig.po b/library/sysconfig.po index d3f13c390..d62568b35 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -264,7 +264,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:162 msgid "Other functions" -msgstr "" +msgstr "Autres fonctions" #: ../Doc/library/sysconfig.rst:166 msgid "" diff --git a/library/tabnanny.po b/library/tabnanny.po index 9d53b960b..de3974635 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -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: Poedit 2.1.1\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.1.1\n" #: ../Doc/library/tabnanny.rst:2 msgid ":mod:`tabnanny` --- Detection of ambiguous indentation" diff --git a/library/tarfile.po b/library/tarfile.po index dd59265dc..8443d6fc1 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/tarfile.rst:2 msgid ":mod:`tarfile` --- Read and write tar archive files" -msgstr "" +msgstr ":mod:`tarfile` — Lecture et écriture de fichiers d'archives **tar**" #: ../Doc/library/tarfile.rst:10 msgid "**Source code:** :source:`Lib/tarfile.py`" @@ -29,20 +29,29 @@ msgid "" "module to read or write :file:`.zip` files, or the higher-level functions " "in :ref:`shutil `." msgstr "" +"Le module :mod:`tarfile` rend possible la lecture et l'écriture des archives " +"*tar*, incluant celles utilisant la compression *gzip*, *bz2* et *lzma*. " +"Utilisez le module :mod:`zipfile` pour lire ou écrire des fichiers :file:" +"`zip`, ou les fonctions de niveau supérieur dans :ref:`shutil `." #: ../Doc/library/tarfile.rst:19 msgid "Some facts and figures:" -msgstr "" +msgstr "Quelques faits et chiffres :" #: ../Doc/library/tarfile.rst:21 msgid "" "reads and writes :mod:`gzip`, :mod:`bz2` and :mod:`lzma` compressed archives " "if the respective modules are available." msgstr "" +"lit et écrit des archives compressées avec :mod:`gzip`, :mod:`bz2` ou :mod:" +"`lzma` si les modules respectifs sont disponibles." #: ../Doc/library/tarfile.rst:24 msgid "read/write support for the POSIX.1-1988 (ustar) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-1988* " +"(*ustar*)." #: ../Doc/library/tarfile.rst:26 msgid "" @@ -50,10 +59,15 @@ msgid "" "*longlink* extensions, read-only support for all variants of the *sparse* " "extension including restoration of sparse files." msgstr "" +"prise en charge de la lecture/écriture pour le format GNU *tar* incluant les " +"extensions *longname* et *longlink*, prise en charge de la lecture seule de " +"toutes les variantes de l'extension *sparse* incluant la restauration des " +"fichiers discontinus." #: ../Doc/library/tarfile.rst:30 msgid "read/write support for the POSIX.1-2001 (pax) format." msgstr "" +"prise en charge de la lecture/écriture pour le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:32 msgid "" @@ -61,10 +75,15 @@ msgid "" "character devices and block devices and is able to acquire and restore file " "information like timestamp, access permissions and owner." msgstr "" +"gère les répertoires, les fichiers normaux, les liens directs (*hard links* " +"en anglais), les liens symboliques, les tubes nommés (*FIFO* en anglais), " +"les périphériques de caractère et les périphériques de bloc et est en mesure " +"d'acquérir et de restaurer les informations du fichier comme l'horodatage, " +"les autorisations d'accès et le propriétaire." #: ../Doc/library/tarfile.rst:36 msgid "Added support for :mod:`lzma` compression." -msgstr "" +msgstr "prise en charge de la compression :mod:`lzma`." #: ../Doc/library/tarfile.rst:42 msgid "" @@ -72,16 +91,22 @@ msgid "" "information on :class:`TarFile` objects and the keyword arguments that are " "allowed, see :ref:`tarfile-objects`." msgstr "" +"Renvoie un objet :class:`TarFile` pour le nom de chemin *name*. Pour plus " +"d'informations sur les objets :class:`TarFile` et les mot-clefs arguments " +"permis, voir :ref:`tarfile-objects`." #: ../Doc/library/tarfile.rst:46 msgid "" "*mode* has to be a string of the form ``'filemode[:compression]'``, it " "defaults to ``'r'``. Here is a full list of mode combinations:" msgstr "" +"Le *mode* doit être une chaîne de caractères de la forme ``'filemode[:" +"compression]'``, par défaut à ``'r'``. Voici une liste complète des " +"combinaisons de mode :" #: ../Doc/library/tarfile.rst:50 msgid "mode" -msgstr "" +msgstr "mode" #: ../Doc/library/tarfile.rst:50 msgid "action" @@ -93,7 +118,7 @@ msgstr "``'r' ou 'r:*'``" #: ../Doc/library/tarfile.rst:52 msgid "Open for reading with transparent compression (recommended)." -msgstr "" +msgstr "Ouvre en lecture avec compression transparente (recommandé)." #: ../Doc/library/tarfile.rst:55 msgid "``'r:'``" @@ -101,7 +126,7 @@ msgstr "``'r:'``" #: ../Doc/library/tarfile.rst:55 msgid "Open for reading exclusively without compression." -msgstr "" +msgstr "Ouvre en lecture, sans compression." #: ../Doc/library/tarfile.rst:58 msgid "``'r:gz'``" @@ -109,7 +134,7 @@ msgstr "``'r:gz'``" #: ../Doc/library/tarfile.rst:58 msgid "Open for reading with gzip compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *gzip*." #: ../Doc/library/tarfile.rst:60 msgid "``'r:bz2'``" @@ -117,7 +142,7 @@ msgstr "``'r:bz2'``" #: ../Doc/library/tarfile.rst:60 msgid "Open for reading with bzip2 compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *bzip2*." #: ../Doc/library/tarfile.rst:62 msgid "``'r:xz'``" @@ -125,7 +150,7 @@ msgstr "``'r:xz'``" #: ../Doc/library/tarfile.rst:62 msgid "Open for reading with lzma compression." -msgstr "" +msgstr "Ouvre en lecture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:64 msgid "``'x'`` or ``'x:'``" @@ -136,6 +161,8 @@ msgid "" "Create a tarfile exclusively without compression. Raise an :exc:" "`FileExistsError` exception if it already exists." msgstr "" +"Crée un fichier *tar* sans compression. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:69 msgid "``'x:gz'``" @@ -146,6 +173,8 @@ msgid "" "Create a tarfile with gzip compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *gzip*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:73 msgid "``'x:bz2'``" @@ -156,6 +185,8 @@ msgid "" "Create a tarfile with bzip2 compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *bzip2*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:77 msgid "``'x:xz'``" @@ -166,6 +197,8 @@ msgid "" "Create a tarfile with lzma compression. Raise an :exc:`FileExistsError` " "exception if it already exists." msgstr "" +"Crée un fichier *tar* avec la compression *lzma*. Lève une exception :exc:" +"`FileExistsError` s'il existe déjà." #: ../Doc/library/tarfile.rst:81 msgid "``'a' or 'a:'``" @@ -176,6 +209,8 @@ msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "" +"Ouvre pour ajouter à la fin, sans compression. Le fichier est créé s'il " +"n'existe pas." #: ../Doc/library/tarfile.rst:84 msgid "``'w' or 'w:'``" @@ -183,7 +218,7 @@ msgstr "``'w' ou 'w:'``" #: ../Doc/library/tarfile.rst:84 msgid "Open for uncompressed writing." -msgstr "" +msgstr "Ouvre en écriture, sans compression." #: ../Doc/library/tarfile.rst:86 msgid "``'w:gz'``" @@ -191,7 +226,7 @@ msgstr "``'w:gz'``" #: ../Doc/library/tarfile.rst:86 msgid "Open for gzip compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *gzip*." #: ../Doc/library/tarfile.rst:88 msgid "``'w:bz2'``" @@ -199,7 +234,7 @@ msgstr "``'w:bz2'``" #: ../Doc/library/tarfile.rst:88 msgid "Open for bzip2 compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec compression *bzip2*." #: ../Doc/library/tarfile.rst:90 msgid "``'w:xz'``" @@ -207,7 +242,7 @@ msgstr "``'w:xz'``" #: ../Doc/library/tarfile.rst:90 msgid "Open for lzma compressed writing." -msgstr "" +msgstr "Ouvre en écriture avec la compression *lzma*." #: ../Doc/library/tarfile.rst:93 msgid "" @@ -216,12 +251,20 @@ msgid "" "`ReadError` is raised. Use *mode* ``'r'`` to avoid this. If a compression " "method is not supported, :exc:`CompressionError` is raised." msgstr "" +"Notez que les combinaisons ``'a:gz'``, ``'a:bz2'`` ou ``'a:xz'`` ne sont pas " +"possible. Si le mode n'est pas adapté pour ouvrir un certain fichier " +"(compressé) pour la lecture, une exception :exc:`ReadError` est levée. " +"Utilisez le mode ``'r'`` pour éviter cela. Si une méthode de compression " +"n'est pas prise en charge, :exc:`CompressionError` est levée." #: ../Doc/library/tarfile.rst:98 msgid "" "If *fileobj* is specified, it is used as an alternative to a :term:`file " "object` opened in binary mode for *name*. It is supposed to be at position 0." msgstr "" +"Si *fileobj* est spécifié, il est utilisé comme une alternative au :term:" +"`file object` ouvert en mode binaire pour *name*. Il est censé être à la " +"position 0." #: ../Doc/library/tarfile.rst:101 msgid "" @@ -229,6 +272,9 @@ msgid "" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" +"Pour les modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, " +"``'x:bz2'``, :func:`tarfile.open` accepte l'argument nommé *compresslevel* " +"(par défaut à ``9``) pour spécifier le niveau de compression du fichier." #: ../Doc/library/tarfile.rst:105 msgid "" @@ -243,14 +289,25 @@ msgid "" "does not allow random access, see :ref:`tar-examples`. The currently " "possible modes:" msgstr "" +"Pour des cas particuliers, il existe un deuxième format pour le *mode* : " +"``'filemode[compression]'``. :func:`tarfile.open` renvoie un objet :class:" +"`TarFile` qui traite ses données comme un flux de blocs. Aucun retour en " +"arrière ne sera effectué lors de la lecture du fichier. S'il est donné, " +"*fileobj* peut être n'importe quel objet qui a une méthode :meth:`read` ou :" +"meth:`write` (selon le *mode*). Le paramètre *bufsize* spécifie la taille du " +"bloc et vaut par défaut ``20 * 512`` octets. Utilisez cette variante en " +"combinaison avec par exemple ``sys.stdin``, une connexion (*socket* en " +"anglais) :term:`file object` ou un dispositif de bande. Cependant, un tel " +"objet :class:`TarFile` est limité en ce qu'il ne permet pas l'accès " +"aléatoire, voir :ref:`tar-examples`. Les modes actuellement possibles :" #: ../Doc/library/tarfile.rst:117 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/tarfile.rst:117 msgid "Action" -msgstr "" +msgstr "Action" #: ../Doc/library/tarfile.rst:119 msgid "``'r|*'``" @@ -259,6 +316,8 @@ msgstr "``'r|*'``" #: ../Doc/library/tarfile.rst:119 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "" +"Ouvre un *flux* des blocs de *tar* en lecture avec une compression " +"transparente." #: ../Doc/library/tarfile.rst:122 msgid "``'r|'``" @@ -266,7 +325,7 @@ msgstr "``'r|'``" #: ../Doc/library/tarfile.rst:122 msgid "Open a *stream* of uncompressed tar blocks for reading." -msgstr "" +msgstr "Ouvre un *flux* de blocs *tar* non compressés en lecture." #: ../Doc/library/tarfile.rst:125 msgid "``'r|gz'``" @@ -274,7 +333,7 @@ msgstr "``'r|gz'``" #: ../Doc/library/tarfile.rst:125 msgid "Open a gzip compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un flux compressé avec *gzip* en lecture." #: ../Doc/library/tarfile.rst:128 msgid "``'r|bz2'``" @@ -282,7 +341,7 @@ msgstr "``'r|bz2'``" #: ../Doc/library/tarfile.rst:128 msgid "Open a bzip2 compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en lecture." #: ../Doc/library/tarfile.rst:131 msgid "``'r|xz'``" @@ -290,7 +349,7 @@ msgstr "``'r|xz'``" #: ../Doc/library/tarfile.rst:131 msgid "Open an lzma compressed *stream* for reading." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en lecture." #: ../Doc/library/tarfile.rst:134 msgid "``'w|'``" @@ -298,7 +357,7 @@ msgstr "``'w|'``" #: ../Doc/library/tarfile.rst:134 msgid "Open an uncompressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* non compressé en écriture." #: ../Doc/library/tarfile.rst:136 msgid "``'w|gz'``" @@ -306,7 +365,7 @@ msgstr "``'w|gz'``" #: ../Doc/library/tarfile.rst:136 msgid "Open a gzip compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *gzip* en écriture." #: ../Doc/library/tarfile.rst:139 msgid "``'w|bz2'``" @@ -314,7 +373,7 @@ msgstr "``'w|bz2'``" #: ../Doc/library/tarfile.rst:139 msgid "Open a bzip2 compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *bzip2* en écriture." #: ../Doc/library/tarfile.rst:142 msgid "``'w|xz'``" @@ -322,7 +381,7 @@ msgstr "``'w|xz'``" #: ../Doc/library/tarfile.rst:142 msgid "Open an lzma compressed *stream* for writing." -msgstr "" +msgstr "Ouvre un *flux* compressé avec *lzma* en écriture." #: ../Doc/library/tarfile.rst:146 ../Doc/library/tarfile.rst:324 msgid "The ``'x'`` (exclusive creation) mode was added." @@ -331,13 +390,16 @@ msgstr "Le mode ``'x'`` (création exclusive) est créé." #: ../Doc/library/tarfile.rst:149 ../Doc/library/tarfile.rst:327 #: ../Doc/library/tarfile.rst:495 msgid "The *name* parameter accepts a :term:`path-like object`." -msgstr "" +msgstr "le paramètre *name* accepte un :term:`path-like object`." #: ../Doc/library/tarfile.rst:155 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." msgstr "" +"Classe pour la lecture et l'écriture d'archives *tar*. N'utilisez pas cette " +"classe directement, préférez :func:`tarfile.open`. Voir :ref:`tarfile-" +"objects`." #: ../Doc/library/tarfile.rst:161 msgid "" @@ -347,49 +409,61 @@ msgstr "" #: ../Doc/library/tarfile.rst:165 msgid "The :mod:`tarfile` module defines the following exceptions:" -msgstr "" +msgstr "Le module :mod:`tarfile` définit les exceptions suivantes :" #: ../Doc/library/tarfile.rst:170 msgid "Base class for all :mod:`tarfile` exceptions." -msgstr "" +msgstr "Classe de base pour toutes les exceptions du module :mod:`tarfile`." #: ../Doc/library/tarfile.rst:175 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." msgstr "" +"Est levée lors de l'ouverture d'une archive *tar*, qui ne peut pas être " +"gérée par le module :mod:`tarfile` ou est invalide." #: ../Doc/library/tarfile.rst:181 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." msgstr "" +"Est levée lorsqu'une méthode de compression n'est pas prise en charge ou " +"lorsque les données ne peuvent pas être décodées correctement." #: ../Doc/library/tarfile.rst:187 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." msgstr "" +"Est levée pour les limitations typiques des objets de type flux :class:" +"`TarFile`." #: ../Doc/library/tarfile.rst:193 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." msgstr "" +"Est levée pour des erreurs *non-fatales* lors de l'utilisation de :meth:" +"`TarFile.extract`, mais uniquement si :attr:`TarFile.errorlevel`\\ `` == 2``." #: ../Doc/library/tarfile.rst:199 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" +"Est levée par :meth:`TarInfo.frombuf` si le tampon qu'il obtient n'est pas " +"valide." #: ../Doc/library/tarfile.rst:202 msgid "The following constants are available at the module level:" -msgstr "" +msgstr "Les constantes suivantes sont disponibles au niveau du module :" #: ../Doc/library/tarfile.rst:206 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." msgstr "" +"L'encodage des caractères par défaut est ``'utf-8'`` sous Windows, sinon la " +"valeur renvoyée par :func:`sys.getfilesystemencoding`." #: ../Doc/library/tarfile.rst:210 msgid "" @@ -397,18 +471,21 @@ msgid "" "`tarfile` module is able to create. See section :ref:`tar-formats` for " "details." msgstr "" +"Chacune des constantes suivantes définit un format d'archive *tar* que le " +"module :mod:`tarfile` est capable de créer. Voir la section :ref:`tar-" +"formats` pour plus de détails." #: ../Doc/library/tarfile.rst:217 msgid "POSIX.1-1988 (ustar) format." -msgstr "" +msgstr "Le format *POSIX.1-1988* (*ustar*)." #: ../Doc/library/tarfile.rst:222 msgid "GNU tar format." -msgstr "" +msgstr "Le format GNU *tar*." #: ../Doc/library/tarfile.rst:227 msgid "POSIX.1-2001 (pax) format." -msgstr "" +msgstr "Le format *POSIX.1-2001* (*pax*)." #: ../Doc/library/tarfile.rst:232 msgid "" @@ -418,35 +495,41 @@ msgstr "" #: ../Doc/library/tarfile.rst:238 msgid "Module :mod:`zipfile`" -msgstr "" +msgstr "Module :mod:`zipfile`" #: ../Doc/library/tarfile.rst:238 msgid "Documentation of the :mod:`zipfile` standard module." -msgstr "" +msgstr "Documentation du module standard :mod:`zipfile`." #: ../Doc/library/tarfile.rst:242 msgid ":ref:`archiving-operations`" -msgstr "" +msgstr ":ref:`archiving-operations`" #: ../Doc/library/tarfile.rst:241 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." msgstr "" +"Documentation des outils d'archivage de haut niveau fournis par le module " +"standard :mod:`shutil`." #: ../Doc/library/tarfile.rst:244 msgid "" "`GNU tar manual, Basic Tar Format `_" msgstr "" +"`Manuel GNU *tar*, format *tar* basique (en anglais) `_" #: ../Doc/library/tarfile.rst:245 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" +"Documentation pour les fichiers d'archive *tar*, y compris les extensions " +"*tar* GNU." #: ../Doc/library/tarfile.rst:251 msgid "TarFile Objects" -msgstr "" +msgstr "Les objets *TarFile*" #: ../Doc/library/tarfile.rst:253 msgid "" @@ -456,6 +539,12 @@ msgid "" "in a tar archive several times. Each archive member is represented by a :" "class:`TarInfo` object, see :ref:`tarinfo-objects` for details." msgstr "" +"L'objet :class:`TarFile` fournit une interface vers une archive *tar*. Une " +"archive *tar* est une séquence de blocs. Un membre d'archive (un fichier " +"stocké) est composé d'un bloc d'en-tête suivi des blocs de données. Il est " +"possible de stocker plusieurs fois un fichier dans une archive *tar*. Chaque " +"membre d'archive est représenté par un objet :class:`TarInfo`, voir :ref:" +"`tarinfo-objects` pour plus de détails." #: ../Doc/library/tarfile.rst:259 msgid "" @@ -465,16 +554,23 @@ msgid "" "for writing will not be finalized; only the internally used file object will " "be closed. See the :ref:`tar-examples` section for a use case." msgstr "" +"Un objet :class:`TarFile` peut être utilisé comme gestionnaire de contexte " +"dans une instruction :keyword:`with`. Il sera automatiquement fermé une fois " +"le bloc terminé. Veuillez noter qu'en cas d'exception, une archive ouverte " +"en écriture ne sera pas finalisée ; seul l'objet fichier utilisé en interne " +"sera fermé. Voir la section :ref:`tar-examples` pour un cas d'utilisation." #: ../Doc/library/tarfile.rst:265 msgid "Added support for the context management protocol." -msgstr "" +msgstr "Ajout de la prise en charge du protocole de gestion de contexte." #: ../Doc/library/tarfile.rst:270 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." msgstr "" +"Tous les arguments suivants sont facultatifs et sont également accessibles " +"en tant qu'instance d'attributs." #: ../Doc/library/tarfile.rst:273 msgid "" @@ -482,6 +578,9 @@ msgid "" "object`. It can be omitted if *fileobj* is given. In this case, the file " "object's :attr:`name` attribute is used if it exists." msgstr "" +"Le *name* est le chemin d'accès de l'archive. *name* peut être un :term:" +"`path-like object`. Il peut être omis si *fileobj* est donné. Dans ce cas, " +"l'attribut :attr:`name` de l'objet fichier est utilisé s'il existe." #: ../Doc/library/tarfile.rst:277 msgid "" @@ -490,6 +589,10 @@ msgid "" "existing one, or ``'x'`` to create a new file only if it does not already " "exist." msgstr "" +"Le *mode* est soit ``'r'`` pour lire à partir d'une archive existante, " +"``'a'`` pour ajouter des données à un fichier existant, ``'w'`` pour créer " +"un nouveau fichier en écrasant un existant , ou ``'x'`` pour créer un " +"nouveau fichier uniquement s'il n'existe pas déjà." #: ../Doc/library/tarfile.rst:281 msgid "" @@ -497,10 +600,13 @@ msgid "" "determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " "from position 0." msgstr "" +"Si *fileobj* est fourni, il est utilisé pour lire ou écrire des données. " +"S'il peut être déterminé, le *mode* est remplacé par le mode de *fileobj*. " +"*fileobj* sera utilisé à partir de la position 0." #: ../Doc/library/tarfile.rst:287 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." -msgstr "" +msgstr "*fileobj* n'est pas fermé, lorsque :class:`TarFile` est fermé." #: ../Doc/library/tarfile.rst:289 msgid "" @@ -514,6 +620,8 @@ msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." msgstr "" +"L'argument *tarinfo* peut être utilisé pour remplacer la classe par défaut :" +"class:`TarInfo` par une autre." #: ../Doc/library/tarfile.rst:296 msgid "" @@ -521,6 +629,10 @@ msgid "" "archive. If it is :const:`True`, add the content of the target files to the " "archive. This has no effect on systems that do not support symbolic links." msgstr "" +"Si *dereference* est :const:`False`, ajoute des liens symboliques et " +"physiques à l'archive. Si c'est :const:`True`, ajoute le contenu des " +"fichiers cibles à l'archive. Cela n'a aucun effet sur les systèmes qui ne " +"prennent pas en charge les liens symboliques." #: ../Doc/library/tarfile.rst:300 msgid "" @@ -529,12 +641,18 @@ msgid "" "get as many members as possible. This is only useful for reading " "concatenated or damaged archives." msgstr "" +"Si *ignore_zeros* est :const:`False`, traite un bloc vide comme la fin de " +"l'archive. Si c'est le cas :const:`True`, saute les blocs vides (et " +"invalides) et essaye d'obtenir autant de membres que possible. Ceci n'est " +"utile que pour lire des archives concaténées ou endommagées." #: ../Doc/library/tarfile.rst:304 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." msgstr "" +"*debug* peut être défini de ``0`` (aucun message de débogage) à ``3`` (tous " +"les messages de débogage). Les messages sont écrits dans ``sys.stderr``." #: ../Doc/library/tarfile.rst:307 msgid "" @@ -544,6 +662,12 @@ msgid "" "`OSError` exceptions. If ``2``, all *non-fatal* errors are raised as :exc:" "`TarError` exceptions as well." msgstr "" +"Si *errorlevel* est ``0``, toutes les erreurs sont ignorées lors de " +"l'utilisation de :meth:`TarFile.extract`. Néanmoins, ils apparaissent comme " +"des messages d'erreur dans la sortie de débogage, lorsque le débogage est " +"activé. Si ``1``, toutes les erreurs *fatales* sont déclenchées comme des " +"exceptions :exc:`OSError` . Si ``2``, toutes les erreurs *non-fatales* sont " +"déclenchées comme des exceptions :exc:`TarError` également." #: ../Doc/library/tarfile.rst:313 msgid "" @@ -552,46 +676,66 @@ msgid "" "to be handled. The default settings will work for most users. See section :" "ref:`tar-unicode` for in-depth information." msgstr "" +"Les arguments *encoding* et *errors* définissent l'encodage de caractères à " +"utiliser pour lire ou écrire l'archive et comment les erreurs de conversion " +"vont être traitées. Les paramètres par défaut fonctionneront pour la plupart " +"des utilisateurs. Voir la section :ref:`tar-unicode` pour des informations " +"détaillées." #: ../Doc/library/tarfile.rst:318 msgid "" "The *pax_headers* argument is an optional dictionary of strings which will " "be added as a pax global header if *format* is :const:`PAX_FORMAT`." msgstr "" +"L'argument *pax_headers* est un dictionnaire facultatif de chaînes de " +"caractères qui sera ajouté en tant qu'en-tête global *pax* si le *format* " +"est :const:`PAX_FORMAT`." #: ../Doc/library/tarfile.rst:321 ../Doc/library/tarfile.rst:548 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" +"Utilise ``'surrogateescape'`` comme valeur par défaut pour l'argument " +"*errors*." #: ../Doc/library/tarfile.rst:333 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." msgstr "" +"Constructeur alternatif. La fonction :func:`tarfile.open` est en fait un " +"raccourci vers cette méthode de classe." #: ../Doc/library/tarfile.rst:339 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." msgstr "" +"Renvoie un objet :class:`TarInfo` pour le membre *name*. Si *name* est " +"introuvable dans l'archive, :exc:`KeyError` est levée." #: ../Doc/library/tarfile.rst:344 msgid "" "If a member occurs more than once in the archive, its last occurrence is " "assumed to be the most up-to-date version." msgstr "" +"Si un membre apparaît plus d'une fois dans l'archive, sa dernière occurrence " +"est supposée être la version la plus récente." #: ../Doc/library/tarfile.rst:350 msgid "" "Return the members of the archive as a list of :class:`TarInfo` objects. The " "list has the same order as the members in the archive." msgstr "" +"Renvoie les membres de l'archive sous la forme d'une liste d'objets :class:" +"`TarInfo`. La liste a le même ordre que les membres de l'archive." #: ../Doc/library/tarfile.rst:356 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." msgstr "" +"Renvoie les membres comme une liste de leurs noms. Il a le même ordre que la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:362 msgid "" @@ -600,10 +744,15 @@ msgid "" "similar to that of :program:`ls -l` is produced. If optional *members* is " "given, it must be a subset of the list returned by :meth:`getmembers`." msgstr "" +"Imprime une table des matières dans ``sys.stdout``. Si *verbose* est :const:" +"`False`, seuls les noms des membres sont imprimés. Si c'est :const:`True`, " +"une sortie similaire à celle de :program:`ls -l` est produite. Si des " +"*membres* facultatifs sont fournis, il doit s'agir d'un sous-ensemble de la " +"liste renvoyée par :meth:`getmembers`." #: ../Doc/library/tarfile.rst:367 msgid "Added the *members* parameter." -msgstr "" +msgstr "Ajout du paramètre *members*." #: ../Doc/library/tarfile.rst:373 msgid "" @@ -611,6 +760,9 @@ msgid "" "class:`TarFile` is opened for reading. Return :const:`None` if there is no " "more available." msgstr "" +"Renvoie le membre suivant de l'archive en tant qu'objet :class:`TarInfo`, " +"lorsque la classe :class:`TarFile` est ouverte en lecture. Renvoie :const:" +"`None` s'il n'y a pas." #: ../Doc/library/tarfile.rst:380 msgid "" @@ -623,6 +775,15 @@ msgid "" "directory's permissions do not allow writing, extracting files to it will " "fail." msgstr "" +"Extrait tous les membres de l'archive vers le répertoire de travail actuel " +"ou le répertoire *chemin*. Si des *membres* facultatifs sont fournis, il " +"doit s'agir d'un sous-ensemble de la liste renvoyée par :meth:`getmembers`. " +"Les informations d'annuaire telles que le propriétaire, l'heure de " +"modification et les autorisations sont définies une fois tous les membres " +"extraits. Cela est fait pour contourner deux problèmes : l'heure de " +"modification d'un répertoire est réinitialisée chaque fois qu'un fichier y " +"est créé. Et, si les autorisations d'un répertoire ne permettent pas " +"l'écriture, l'extraction de fichiers échoue." #: ../Doc/library/tarfile.rst:388 ../Doc/library/tarfile.rst:414 msgid "" @@ -630,6 +791,9 @@ msgid "" "tarfile are used to set the owner/group for the extracted files. Otherwise, " "the named values from the tarfile are used." msgstr "" +"Si *numeric_owner* est :const:`True`, les numéros *uid* et *gid* du fichier " +"*tar* sont utilisés pour définir le propriétaire et le groupe des fichiers " +"extraits. Sinon, les valeurs nommées du fichier *tar* sont utilisées." #: ../Doc/library/tarfile.rst:394 msgid "" @@ -638,10 +802,14 @@ msgid "" "absolute filenames starting with ``\"/\"`` or filenames with two dots ``\".." "\"``." msgstr "" +"Ne jamais extraire des archives de sources non fiables sans inspection " +"préalable. Il est possible que des fichiers soient créés en dehors de " +"*chemin*, par ex: les membres qui ont des noms de fichiers absolus " +"commençant par ``\"/\"`` ou des noms de fichiers avec deux points ``\"..\"``." #: ../Doc/library/tarfile.rst:399 ../Doc/library/tarfile.rst:430 msgid "Added the *numeric_owner* parameter." -msgstr "" +msgstr "Ajout du paramètre *numeric_owner*." #: ../Doc/library/tarfile.rst:402 ../Doc/library/tarfile.rst:433 msgid "The *path* parameter accepts a :term:`path-like object`." @@ -657,20 +825,30 @@ msgid "" "different directory using *path*. *path* may be a :term:`path-like object`. " "File attributes (owner, mtime, mode) are set unless *set_attrs* is false." msgstr "" +"Extrait un membre de l'archive vers le répertoire de travail actuel, en " +"utilisant son nom complet. Les informations de son fichier sont extraites " +"aussi précisément que possible. Le membre peut être un nom de fichier ou un " +"objet :class:`TarInfo`. Vous pouvez spécifier un répertoire différent en " +"utilisant *path*. *path* peut être un :term:`path-like object`. Les " +"attributs de fichier (propriétaire, *mtime*, mode) sont définis sauf si " +"*set_attrs* est faux." #: ../Doc/library/tarfile.rst:420 msgid "" "The :meth:`extract` method does not take care of several extraction issues. " "In most cases you should consider using the :meth:`extractall` method." msgstr "" +"La méthode :meth:`extract` ne prend pas en charge plusieurs problèmes " +"d'extraction. Dans la plupart des cas, vous devriez envisager d'utiliser la " +"méthode :meth:`extractall`." #: ../Doc/library/tarfile.rst:425 msgid "See the warning for :meth:`extractall`." -msgstr "" +msgstr "Voir l'avertissement pour :meth:`extractall`." #: ../Doc/library/tarfile.rst:427 msgid "Added the *set_attrs* parameter." -msgstr "" +msgstr "Ajout du paramètre *set_attrs*." #: ../Doc/library/tarfile.rst:439 msgid "" @@ -679,10 +857,14 @@ msgid "" "link, an :class:`io.BufferedReader` object is returned. Otherwise, :const:" "`None` is returned." msgstr "" +"Extrait un membre de l'archive en tant qu'objet fichier. *member* peut être " +"un nom de fichier ou un objet :class:`TarInfo`. Si *member* est un fichier " +"normal ou un lien, un objet :class:`io.BufferedReader` est renvoyé. Sinon, :" +"const:`None` est renvoyé." #: ../Doc/library/tarfile.rst:444 msgid "Return an :class:`io.BufferedReader` object." -msgstr "" +msgstr "Renvoie un objet :class:`io.BufferedReader`." #: ../Doc/library/tarfile.rst:450 msgid "" @@ -696,14 +878,24 @@ msgid "" "`None` the :class:`TarInfo` object will be excluded from the archive. See :" "ref:`tar-examples` for an example." msgstr "" +"Ajoute le fichier *name* à l'archive. *name* peut être n'importe quel type " +"de fichier (répertoire, *fifo*, lien symbolique, etc.). S'il est donné, " +"*arcname* spécifie un autre nom pour le fichier dans l'archive. Les " +"répertoires sont ajoutés récursivement par défaut. Cela peut être évité en " +"définissant *récursive* sur :const:`False`. La récursivité ajoute des " +"entrées dans l'ordre trié. Si *filter* est donné, il convient que ce soit " +"une fonction qui prend un argument d'objet :class:`TarInfo` et renvoie " +"l'objet changé :class:`TarInfo`. S'il renvoie à la place :const:`None`, " +"l'objet :class:`TarInfo` sera exclu de l'archive. Voir :ref:`tar-examples` " +"pour un exemple." #: ../Doc/library/tarfile.rst:461 msgid "Added the *filter* parameter." -msgstr "" +msgstr "Ajout du paramètre *filter*." #: ../Doc/library/tarfile.rst:464 msgid "Recursion adds entries in sorted order." -msgstr "" +msgstr "La récursivité ajoute les entrées dans un ordre trié." #: ../Doc/library/tarfile.rst:470 msgid "" @@ -712,6 +904,11 @@ msgid "" "read from it and added to the archive. You can create :class:`TarInfo` " "objects directly, or by using :meth:`gettarinfo`." msgstr "" +"Ajoute l'objet :class:`TarInfo` *tarinfo* à l'archive. Si *fileobj* est " +"donné, il convient que ce soit un :term:`fichier binaire`, et les octets " +"``tarinfo.size`` sont lus à partir de celui-ci et ajoutés à l'archive. Vous " +"pouvez créer des objets :class:`TarInfo` directement, ou en utilisant :meth:" +"`gettarinfo`." #: ../Doc/library/tarfile.rst:478 msgid "" @@ -723,6 +920,13 @@ msgid "" "from *fileobj*’s :attr:`~io.FileIO.name` attribute, or the *name* argument. " "The name should be a text string." msgstr "" +"Crée un objet :class:`TarInfo` à partir du résultat de :func:`os.stat` ou " +"équivalent sur un fichier existant. Le fichier est soit nommé par *name*, " +"soit spécifié comme :term:`file object` *fileobj* avec un descripteur de " +"fichier. *name* peut être un :term:`objet` semblable à un chemin. S'il est " +"donné, *arcname* spécifie un autre nom pour le fichier dans l'archive, " +"sinon, le nom est tiré de l'attribut *fileobj* :attr:`~io.FileIO.name`, ou " +"de l'argument *name*. Le nom doit être une chaîne de texte." #: ../Doc/library/tarfile.rst:487 msgid "" @@ -733,20 +937,30 @@ msgid "" "`~gzip.GzipFile`. The :attr:`~TarInfo.name` may also be modified, in which " "case *arcname* could be a dummy string." msgstr "" +"Vous pouvez modifier certains des attributs de :class:`TarInfo` avant de les " +"ajouter en utilisant :meth:`addfile`. Si l'objet fichier n'est pas un objet " +"fichier ordinaire positionné au début du fichier, des attributs tels que :" +"attr:`~TarInfo.size` peuvent nécessiter une modification. C'est le cas pour " +"des objets tels que :class:`~gzip.GzipFile`. Le :attr:`~TarInfo.name` peut " +"également être modifié, auquel cas *arcname* pourrait être une chaîne " +"factice." #: ../Doc/library/tarfile.rst:501 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." msgstr "" +"Ferme le :class:`TarFile`. En mode écriture, deux blocs de finition à zéro " +"sont ajoutés à l'archive." #: ../Doc/library/tarfile.rst:507 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'en-têtes globaux *pax*." #: ../Doc/library/tarfile.rst:514 msgid "TarInfo Objects" -msgstr "" +msgstr "Les objets *TarInfo*" #: ../Doc/library/tarfile.rst:516 msgid "" @@ -755,56 +969,69 @@ msgid "" "permissions, owner etc.), it provides some useful methods to determine its " "type. It does *not* contain the file's data itself." msgstr "" +"Un objet :class:`TarInfo` représente un membre dans un :class:`TarFile`. En " +"plus de stocker tous les attributs requis d'un fichier (comme le type de " +"fichier, la taille, l'heure, les autorisations, le propriétaire, etc.), il " +"fournit quelques méthodes utiles pour déterminer son type. Il ne contient " +"pas les données du fichier lui-même." #: ../Doc/library/tarfile.rst:521 msgid "" ":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" "`getmember`, :meth:`getmembers` and :meth:`gettarinfo`." msgstr "" +"Les objets :class:`TarInfo` sont renvoyés par les méthodes de :class:" +"`TarFile` :meth:`getmember`, :meth:`getmembers` et :meth:`gettarinfo`." #: ../Doc/library/tarfile.rst:527 msgid "Create a :class:`TarInfo` object." -msgstr "" +msgstr "Crée un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:532 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "" +"Crée et renvoie un objet :class:`TarInfo` à partir de la chaîne tampon *buf*." #: ../Doc/library/tarfile.rst:534 msgid "Raises :exc:`HeaderError` if the buffer is invalid." -msgstr "" +msgstr "Lève :exc:`HeaderError` si le tampon n'est pas valide." #: ../Doc/library/tarfile.rst:539 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." msgstr "" +"Lit le membre suivant dans l'objet :class:`TarFile` *tarfile* et le renvoie " +"comme un objet :class:`TarInfo`." #: ../Doc/library/tarfile.rst:545 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." msgstr "" +"Crée un tampon de chaîne de caractères à partir d'un objet :class:`TarInfo`. " +"Pour plus d'informations sur les arguments, voir le constructeur de la " +"classe :class:`TarFile`." #: ../Doc/library/tarfile.rst:552 msgid "A ``TarInfo`` object has the following public data attributes:" -msgstr "" +msgstr "Un objet ``TarInfo`` a les attributs de données publics suivants :" #: ../Doc/library/tarfile.rst:557 msgid "Name of the archive member." -msgstr "" +msgstr "Nom du membre de l'archive." #: ../Doc/library/tarfile.rst:562 msgid "Size in bytes." -msgstr "" +msgstr "La taille en octets." #: ../Doc/library/tarfile.rst:567 msgid "Time of last modification." -msgstr "" +msgstr "L'heure de la dernière modification." #: ../Doc/library/tarfile.rst:572 msgid "Permission bits." -msgstr "" +msgstr "Bits d'autorisation." #: ../Doc/library/tarfile.rst:577 msgid "" @@ -814,74 +1041,88 @@ msgid "" "const:`GNUTYPE_SPARSE`. To determine the type of a :class:`TarInfo` object " "more conveniently, use the ``is*()`` methods below." msgstr "" +"Type de fichier. *type* est généralement l'une des constantes suivantes: :" +"const:`REGTYPE`, :const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :" +"const:`DIRTYPE`, :const:`FIFOTYPE`, :const:`CONTTYPE`, :const:`CHRTYPE`, :" +"const:`BLKTYPE`, :const:`GNUTYPE_SPARSE`. Pour déterminer plus facilement le " +"type d'un objet :class:`TarInfo`, utilisez les méthodes ``is*()`` ci-dessous." #: ../Doc/library/tarfile.rst:586 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." msgstr "" +"Nom du fichier cible, qui n'est présent que dans les objets :class:" +"`TarInfo` de type :const:`LNKTYPE` et :const:`SYMTYPE`." #: ../Doc/library/tarfile.rst:592 msgid "User ID of the user who originally stored this member." -msgstr "" +msgstr "ID de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:597 msgid "Group ID of the user who originally stored this member." -msgstr "" +msgstr "ID de groupe de l'utilisateur qui a initialement stocké ce membre." #: ../Doc/library/tarfile.rst:602 msgid "User name." -msgstr "" +msgstr "Nom d'utilisateur." #: ../Doc/library/tarfile.rst:607 msgid "Group name." -msgstr "" +msgstr "Nom de groupe." #: ../Doc/library/tarfile.rst:612 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" +"Un dictionnaire contenant des paires clé-valeur d'un en-tête étendu *pax* " +"associé." #: ../Doc/library/tarfile.rst:615 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" +"Un objet :class:`TarInfo` fournit également des méthodes de requête " +"pratiques :" #: ../Doc/library/tarfile.rst:620 msgid "Return :const:`True` if the :class:`Tarinfo` object is a regular file." msgstr "" +"Renvoie :const:`True` si l'objet :class:`Tarinfo` est un fichier normal." #: ../Doc/library/tarfile.rst:625 msgid "Same as :meth:`isfile`." -msgstr "" +msgstr "Identique à :meth:`isfile`." #: ../Doc/library/tarfile.rst:630 msgid "Return :const:`True` if it is a directory." -msgstr "" +msgstr "Renvoie :const:`True` si c'est un dossier." #: ../Doc/library/tarfile.rst:635 msgid "Return :const:`True` if it is a symbolic link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien symbolique." #: ../Doc/library/tarfile.rst:640 msgid "Return :const:`True` if it is a hard link." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un lien physique." #: ../Doc/library/tarfile.rst:645 msgid "Return :const:`True` if it is a character device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de caractères." #: ../Doc/library/tarfile.rst:650 msgid "Return :const:`True` if it is a block device." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un périphérique de bloc." #: ../Doc/library/tarfile.rst:655 msgid "Return :const:`True` if it is a FIFO." -msgstr "" +msgstr "Renvoie :const:`True` s'il s'agit d'un tube nommé (*FIFO*)." #: ../Doc/library/tarfile.rst:660 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" +"Renvoie :const:`True` s'il s'agit d'un périphérique de caractères, d'un " +"périphérique de bloc ou d'un tube nommé." #: ../Doc/library/tarfile.rst:667 msgid "Command-Line Interface" @@ -892,12 +1133,16 @@ msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." msgstr "" +"Le module :mod:`tarfile` fournit une interface de ligne de commande simple " +"pour interagir avec les archives *tar*." #: ../Doc/library/tarfile.rst:674 msgid "" "If you want to create a new tar archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" msgstr "" +"Si vous souhaitez créer une nouvelle archive *tar*, spécifiez son nom après " +"l'option :option:`-c`, puis répertorie-le ou les noms de fichiers à inclure :" #: ../Doc/library/tarfile.rst:681 msgid "Passing a directory is also acceptable:" @@ -908,16 +1153,22 @@ msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" msgstr "" +"Si vous souhaitez extraire une archive *tar* dans le répertoire courant, " +"utilisez l'option :option:`-e`:" #: ../Doc/library/tarfile.rst:694 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" msgstr "" +"Vous pouvez également extraire une archive *tar* dans un autre répertoire en " +"passant le nom du répertoire:" #: ../Doc/library/tarfile.rst:701 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" +"Pour une liste des fichiers dans une archive *tar*, utilisez l'option :" +"option:`-l` :" #: ../Doc/library/tarfile.rst:709 msgid "Command-line options" @@ -925,24 +1176,26 @@ msgstr "Options de la ligne de commande" #: ../Doc/library/tarfile.rst:714 msgid "List files in a tarfile." -msgstr "" +msgstr "Liste les fichiers dans une archive *tar*." #: ../Doc/library/tarfile.rst:719 msgid "Create tarfile from source files." -msgstr "" +msgstr "Crée une archive *tar* à partir des fichiers sources." #: ../Doc/library/tarfile.rst:724 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" +"Extrait l'archive *tar* dans le répertoire courant si *output_dir* n'est pas " +"spécifié." #: ../Doc/library/tarfile.rst:729 msgid "Test whether the tarfile is valid or not." -msgstr "" +msgstr "Teste si l'archive *tar* est valide ou non." #: ../Doc/library/tarfile.rst:733 msgid "Verbose output." -msgstr "" +msgstr "Sortie verbeuse." #: ../Doc/library/tarfile.rst:738 msgid "Examples" @@ -951,42 +1204,53 @@ msgstr "Exemples" #: ../Doc/library/tarfile.rst:740 msgid "How to extract an entire tar archive to the current working directory::" msgstr "" +"Comment extraire une archive *tar* dans le dossier de travail courant ::" #: ../Doc/library/tarfile.rst:747 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" msgstr "" +"Comment extraire un sous-ensemble d'une archive *tar* avec :meth:`TarFile." +"extractall` en utilisant une fonction de générateur au lieu d'une liste ::" #: ../Doc/library/tarfile.rst:762 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" +"Comment créer une archive *tar* non compressée à partir d'une liste de noms " +"de fichiers ::" #: ../Doc/library/tarfile.rst:770 msgid "The same example using the :keyword:`with` statement::" -msgstr "" +msgstr "Le même exemple en utilisant l'instruction :keyword:`with` ::" #: ../Doc/library/tarfile.rst:777 msgid "" "How to read a gzip compressed tar archive and display some member " "information::" msgstr "" +"Comment lire une archive *tar* compressée avec *gzip* et afficher des " +"informations des membres ::" #: ../Doc/library/tarfile.rst:791 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" msgstr "" +"Comment créer une archive et réinitialiser les informations de l'utilisateur " +"en utilisant le paramètre *filter* dans :meth:`TarFile.add` ::" #: ../Doc/library/tarfile.rst:807 msgid "Supported tar formats" -msgstr "" +msgstr "Formats *tar* pris en charge" #: ../Doc/library/tarfile.rst:809 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" +"Il existe trois formats *tar* qui peuvent être créés avec le module :mod:" +"`tarfile` :" #: ../Doc/library/tarfile.rst:811 msgid "" @@ -995,6 +1259,10 @@ msgid "" "The maximum file size is 8 GiB. This is an old and limited but widely " "supported format." msgstr "" +"Le format *POSIX.1-1988* *ustar* (:const:`ustar_FORMAT`). Il prend en charge " +"les noms de fichiers jusqu'à une longueur maximale de 256 caractères et les " +"noms de liens jusqu'à 100 caractères. La taille maximale du fichier est de " +"8 Go. Il s'agit d'un format ancien et limité mais largement pris en charge." #: ../Doc/library/tarfile.rst:816 msgid "" @@ -1003,6 +1271,11 @@ msgid "" "standard on GNU/Linux systems. :mod:`tarfile` fully supports the GNU tar " "extensions for long names, sparse file support is read-only." msgstr "" +"Le format GNU *tar* (:const:`GNU_FORMAT`). Il prend en charge les noms de " +"fichiers longs et les noms de liens, les fichiers supérieurs à 8 Go et les " +"fichiers discontinus. C'est la norme de facto des systèmes GNU / Linux. :mod:" +"`tarfile` prend entièrement en charge les extensions GNU *tar* pour les noms " +"longs, la prise en charge des fichiers discontinus est en lecture seule." #: ../Doc/library/tarfile.rst:821 msgid "" @@ -1027,6 +1300,8 @@ msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" +"Il existe d'autres variantes du format *tar* qui peuvent être lues, mais pas " +"créées" #: ../Doc/library/tarfile.rst:835 msgid "" @@ -1036,16 +1311,23 @@ msgid "" "archives have miscalculated header checksums in case of fields with non-" "ASCII characters." msgstr "" +"L'ancien format *V7*. Il s'agit du premier format *tar* d'*Unix Seventh " +"Edition*, ne stockant que des fichiers et répertoires normaux. Les noms ne " +"doivent pas dépasser 100 caractères, il n'y a aucune information de nom " +"d'utilisateur / groupe. Certaines archives ont des sommes de contrôle d'en-" +"tête mal calculées dans le cas de champs avec des caractères non ASCII." #: ../Doc/library/tarfile.rst:840 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." msgstr "" +"Format étendu *SunOS* *tar*. Ce format est une variante du format " +"*POSIX.1-2001* *pax*, mais n'est pas compatible." #: ../Doc/library/tarfile.rst:846 msgid "Unicode issues" -msgstr "" +msgstr "Problèmes *unicode*" #: ../Doc/library/tarfile.rst:848 msgid "" @@ -1061,12 +1343,30 @@ msgid "" "encoding of an archive. The pax format was designed to solve this problem. " "It stores non-ASCII metadata using the universal character encoding *UTF-8*." msgstr "" +"Le format *tar* a été initialement conçu pour effectuer des sauvegardes sur " +"des lecteurs de bande en mettant principalement l'accent sur la préservation " +"des informations du système de fichiers. De nos jours, les archives *tar* " +"sont couramment utilisées pour la distribution de fichiers et l'échange " +"d'archives sur des réseaux. Un problème du format d'origine (qui est la base " +"de tous les autres formats) est qu'il n'existe aucun concept de prise en " +"charge d'encodages de caractères différents. Par exemple, une archive *tar* " +"ordinaire créée sur un système *UTF-8* ne peut pas être lue correctement sur " +"un système *Latin-1* si elle contient des caractères non *ASCII*. Les " +"métadonnées textuelles (comme les noms de fichiers, les noms de liens, les " +"noms d'utilisateurs / de groupes) sembleront endommagées. Malheureusement, " +"il n'y a aucun moyen de détecter automatiquement l'encodage d'une archive. " +"Le format *pax* a été conçu pour résoudre ce problème. Il stocke les " +"métadonnées non ASCII en utilisant l'encodage universel des caractères " +"*UTF-8*." #: ../Doc/library/tarfile.rst:860 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." msgstr "" +"Les détails de la conversion des caractères dans :mod:`tarfile` sont " +"contrôlés par les arguments de mot-clé *encoding* et *errors* de la classe :" +"class:`TarFile`." #: ../Doc/library/tarfile.rst:863 msgid "" @@ -1076,6 +1376,11 @@ msgid "" "written, the metadata must be either decoded or encoded. If *encoding* is " "not set appropriately, this conversion may fail." msgstr "" +"*encoding* définit l'encodage de caractères à utiliser pour les métadonnées " +"de l'archive. La valeur par défaut est :func:`sys.getfilesystemencoding` ou " +"``'ascii'`` comme solution de rechange. Selon que l'archive est lue ou " +"écrite, les métadonnées doivent être décodées ou encodées. Si l'encodage " +"n'est pas défini correctement, cette conversion peut échouer." #: ../Doc/library/tarfile.rst:869 msgid "" @@ -1084,6 +1389,11 @@ msgid "" "default scheme is ``'surrogateescape'`` which Python also uses for its file " "system calls, see :ref:`os-filenames`." msgstr "" +"L'argument *errors* définit le traitement des caractères qui ne peuvent pas " +"être convertis. Les valeurs possibles sont répertoriées dans la section :ref:" +"`error-handlers`. Le schéma par défaut est ``'surrogateescape'`` que Python " +"utilise également pour ses appels de système de fichiers, voir :ref:`os-" +"filenames`." #: ../Doc/library/tarfile.rst:874 msgid "" diff --git a/library/tempfile.po b/library/tempfile.po index d8a9949e9..7ae2ab544 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -546,7 +546,7 @@ msgid "" msgstr "" "Renvoie le chemin absolu d'un fichier qui n'existe pas lorsque l'appel est " "fait. Les arguments *prefix*, *suffix*, et *dir* sont similaires à ceux de :" -"func:`mkstemp` mais les noms de fichiers en _bytes_, ``sufix=None`` et " +"func:`mkstemp` mais les noms de fichiers en *bytes*, ``sufix=None`` et " "``prefix=None`` ne sont pas implémentées." #: ../Doc/library/tempfile.rst:319 diff --git a/library/termios.po b/library/termios.po index c7d22e45c..814acddbb 100644 --- a/library/termios.po +++ b/library/termios.po @@ -157,4 +157,4 @@ msgstr "" "l’afficher. Remarquez la technique qui consiste à séparer un appel à :func:" "`tcgetattr` et une instruction :keyword:`try`… :keyword:`finally` pour " "s’assurer que les anciens attributs tty soient restaurés tels quels quoi " -"qu’il arrive::" +"qu’il arrive ::" diff --git a/library/textwrap.po b/library/textwrap.po index 7d43f90ee..ba0015ef4 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -71,7 +71,7 @@ msgid "" "the wrapped paragraph. :func:`fill` is shorthand for ::" msgstr "" "Formate le paragraphe unique dans *text* et renvoie une seule chaîne dont le " -"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour : :" +"contenu est le paragraphe formaté. :func:`fill` est un raccourci pour ::" #: ../Doc/library/textwrap.rst:40 msgid "" @@ -97,7 +97,7 @@ msgstr "" "blancs sont remplacées par des espaces simples). Si le résultat tient dans " "la *width*, il est renvoyé. Sinon, suffisamment de mots sont supprimés en " "fin de chaîne de manière à ce que les mots restants plus le :attr:" -"`placeholder` tiennent dans :attr:`width`: :" +"`placeholder` tiennent dans :attr:`width` ::" #: ../Doc/library/textwrap.rst:60 msgid "" @@ -139,7 +139,7 @@ msgstr "" #: ../Doc/library/textwrap.rst:80 ../Doc/library/textwrap.rst:101 msgid "For example::" -msgstr "Par exemple ::" +msgstr "Par exemple ::" #: ../Doc/library/textwrap.rst:94 msgid "Add *prefix* to the beginning of selected lines in *text*." @@ -165,7 +165,7 @@ msgid "" msgstr "" "L'argument optionnel *predicate* peut être utilisé pour contrôler quelles " "lignes sont en retrait. Par exemple, il est facile d'ajouter *prefix* aux " -"lignes vides et aux lignes blanches seulement : :" +"lignes vides et aux lignes blanches seulement ::" #: ../Doc/library/textwrap.rst:120 msgid "" @@ -201,7 +201,7 @@ msgid "" msgstr "" "Le constructeur :class:`TextWrapper` accepte un certain nombre d'arguments " "par mots-clés optionnels. Chaque argument par mot-clé correspond à un " -"attribut d'instance, donc par exemple : :" +"attribut d'instance, donc par exemple ::" #: ../Doc/library/textwrap.rst:138 msgid "is the same as ::" @@ -344,7 +344,7 @@ msgstr "" "suivie de l'une des lettres suivantes : ``'.'``, ``'!'``, ou ``'?'``, " "éventuellement suivie d'une des lettres ``'\"'`` ou ``\"'\"``, suivie par " "une espace. Un problème avec cet algorithme est qu'il est incapable de " -"détecter la différence entre \"Dr\" dans : :" +"détecter la différence entre \"Dr\" dans ::" #: ../Doc/library/textwrap.rst:232 msgid "and \"Spot.\" in ::" diff --git a/library/threading.po b/library/threading.po index 00eb03b09..8accec906 100644 --- a/library/threading.po +++ b/library/threading.po @@ -22,7 +22,7 @@ msgstr "" #: ../Doc/library/threading.rst:7 msgid "**Source code:** :source:`Lib/threading.py`" -msgstr "**Code source:** :source:`Lib/threading.py`" +msgstr "**Code source :** :source:`Lib/threading.py`" #: ../Doc/library/threading.rst:11 msgid "" @@ -80,7 +80,7 @@ msgid "" "identifiers may be recycled when a thread exits and another thread is " "created." msgstr "" -"Renvoie l'\"identificateur de fil\" du fil d'exécution courant. C'est un " +"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " "entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " "à être utilisé comme valeur magique opaque, par exemple comme clef de " "dictionnaire de données pour chaque fil. Les identificateurs de fils peuvent " @@ -636,7 +636,7 @@ msgstr "" #: ../Doc/library/threading.rst:341 msgid "Lock Objects" -msgstr "" +msgstr "Verrous" #: ../Doc/library/threading.rst:343 msgid "" @@ -645,6 +645,10 @@ msgid "" "synchronization primitive available, implemented directly by the :mod:" "`_thread` extension module." msgstr "" +"Un verrou primitif n'appartient pas à un fil d'exécution lorsqu'il est " +"verrouillé. En Python, c'est actuellement la méthode de synchronisation la " +"plus bas-niveau qui soit disponible, implémentée directement par le module " +"d'extension :mod:`_thread`." #: ../Doc/library/threading.rst:348 msgid "" @@ -659,6 +663,17 @@ msgid "" "state to unlocked and returns immediately. If an attempt is made to release " "an unlocked lock, a :exc:`RuntimeError` will be raised." msgstr "" +"Un verrou primitif est soit « verrouillé » soit « déverrouillé ». Il est " +"créé dans un état déverrouillé. Il a deux méthodes, :meth:`~Lock.acquire` " +"et :meth:`~Lock.release`. Lorsque l'état est déverrouillé, :meth:`~Lock." +"acquire` verrouille et se termine immédiatement. Lorsque l'état est " +"verrouillé, :meth:`~Lock.acquire` bloque jusqu'à ce qu'un appel à :meth:" +"`~Lock.release` provenant d'un autre fil d'exécution le déverrouille. À ce " +"moment :meth:`~Lock.acquire` le verrouille à nouveau et rend la main. La " +"méthode :meth:`~Lock.release` ne doit être appelée que si le verrou est " +"verrouillé, elle le déverrouille alors et se termine immédiatement. " +"Déverrouiller un verrou qui n'est pas verrouillé provoque une :exc:" +"`RuntimeError`." #: ../Doc/library/threading.rst:359 msgid "Locks also support the :ref:`context management protocol `." diff --git a/library/time.po b/library/time.po index ea48f3464..60046619f 100644 --- a/library/time.po +++ b/library/time.po @@ -1295,7 +1295,7 @@ msgid "" "added for clarity)::" msgstr "" "Le format standard de la variable d’environnement :envvar:`TZ` est (espaces " -"ajoutés pour plus de clarté)::" +"ajoutés pour plus de clarté) ::" #: ../Doc/library/time.rst:663 msgid "Where the components are:" diff --git a/library/timeit.po b/library/timeit.po index 4b5ddf79c..f690146e4 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-20 18:10+0200\n" +"Last-Translator: \n" "Language-Team: FRENCH \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" #: ../Doc/library/timeit.rst:2 msgid ":mod:`timeit` --- Measure execution time of small code snippets" -msgstr "" +msgstr ":mod:`timeit` — Mesurer le temps d'exécution de fragments de code" #: ../Doc/library/timeit.rst:7 msgid "**Source code:** :source:`Lib/timeit.py`" @@ -30,24 +31,35 @@ msgid "" "execution times. See also Tim Peters' introduction to the \"Algorithms\" " "chapter in the *Python Cookbook*, published by O'Reilly." msgstr "" +"Ce module fournit une façon simple de mesurer le temps d'exécution de " +"fragments de code Python. Il expose une :ref:`timeit-command-line-interface` " +"ainsi qu'une :ref:`interface Python `. Ce module permet " +"d'éviter un certain nombre de problèmes classiques liés à la mesure des " +"temps d'exécution. Voir par exemple à ce sujet l'introduction par Tim Peters " +"du chapitre « Algorithmes » dans le livre *Python Cookbook*, aux éditions " +"O'Reilly." #: ../Doc/library/timeit.rst:23 msgid "Basic Examples" -msgstr "" +msgstr "Exemples simples" #: ../Doc/library/timeit.rst:25 msgid "" "The following example shows how the :ref:`timeit-command-line-interface` can " "be used to compare three different expressions:" msgstr "" +"L'exemple suivant illustre l'utilisation de l':ref:`timeit-command-line-" +"interface` afin de comparer trois expressions différentes :" #: ../Doc/library/timeit.rst:37 msgid "This can be achieved from the :ref:`python-interface` with::" -msgstr "" +msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec ::" #: ../Doc/library/timeit.rst:47 msgid "A callable can also be passed from the :ref:`python-interface`::" msgstr "" +"Un objet appelable peut également être passé en argument à l':ref:`python-" +"interface` ::" #: ../Doc/library/timeit.rst:52 msgid "" @@ -55,14 +67,20 @@ msgid "" "repetitions only when the command-line interface is used. In the :ref:" "`timeit-examples` section you can find more advanced examples." msgstr "" +"Notez cependant que :func:`.timeit` détermine automatiquement le nombre de " +"répétitions seulement lorsque l'interface en ligne de commande est utilisée. " +"Vous pouvez trouver des exemples d'usages avancés dans la section :ref:" +"`timeit-examples`." #: ../Doc/library/timeit.rst:60 msgid "Python Interface" -msgstr "" +msgstr "Interface Python" #: ../Doc/library/timeit.rst:62 msgid "The module defines three convenience functions and a public class:" msgstr "" +"Ce module définit une classe publique ainsi que trois fonctions destinées à " +"simplifier son usage :" #: ../Doc/library/timeit.rst:67 msgid "" @@ -71,11 +89,15 @@ msgid "" "executions. The optional *globals* argument specifies a namespace in which " "to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"timeit` à *number* reprises. L'argument optionnel *globals* spécifie un " +"espace de nommage dans lequel exécuter le code." #: ../Doc/library/timeit.rst:72 ../Doc/library/timeit.rst:83 #: ../Doc/library/timeit.rst:120 msgid "The optional *globals* parameter was added." -msgstr "" +msgstr "Le paramètre optionnel *globals* a été ajouté." #: ../Doc/library/timeit.rst:78 msgid "" @@ -84,22 +106,27 @@ msgid "" "count and *number* executions. The optional *globals* argument specifies a " "namespace in which to execute the code." msgstr "" +"Crée une instance d'objet :class:`Timer` à partir de l'instruction donnée, " +"du code *setup* et de la fonction *timer*, puis exécute sa méthode :meth:`." +"repeat` à *number* reprises, *repeat* fois. L'argument optionnel *globals* " +"spécifie un espace de nommage dans lequel exécuter le code." #: ../Doc/library/timeit.rst:86 ../Doc/library/timeit.rst:181 msgid "Default value of *repeat* changed from 3 to 5." -msgstr "" +msgstr "La valeur par défaut de *repeat* est passée de 3 à 5." #: ../Doc/library/timeit.rst:91 msgid "The default timer, which is always :func:`time.perf_counter`." -msgstr "" +msgstr "Le minuteur par défaut, qui est toujours :func:`time.perf_counter`." #: ../Doc/library/timeit.rst:93 msgid ":func:`time.perf_counter` is now the default timer." -msgstr "" +msgstr ":func:`time.perf_counter` est désormais le minuteur par défaut." #: ../Doc/library/timeit.rst:99 msgid "Class for timing execution speed of small code snippets." msgstr "" +"Classe permettant de mesurer le temps d'exécution de fragments de code." #: ../Doc/library/timeit.rst:101 msgid "" @@ -111,6 +138,16 @@ msgid "" "will by default be executed within timeit's namespace; this behavior can be " "controlled by passing a namespace to *globals*." msgstr "" +"Ce constructeur prend en argument une instruction dont le temps d'exécution " +"doit être mesuré, une instruction additionnelle de mise en place et une " +"fonction de chronométrage. Les deux instructions valent ``'pass'`` par " +"défaut; la fonction de chronométrage dépend de la plateforme d'exécution (se " +"référer au *doc string* du module). *stmt* et *setup* peuvent contenir " +"plusieurs instructions séparées par des ``;`` ou des sauts de lignes tant " +"qu'ils ne comportent pas de littéraux sur plusieurs lignes. L'instruction " +"est exécutée dans l'espace de nommage de *timeit* par défaut ; ce " +"comportement peut être modifié en passant un espace de nommage au paramètre " +"*globals*." #: ../Doc/library/timeit.rst:109 msgid "" @@ -118,12 +155,18 @@ msgid "" "timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " "convenience methods to call :meth:`.timeit` multiple times." msgstr "" +"Pour mesurer le temps d'exécution de la première instruction, utilisez la " +"méthode :meth:`.timeit`. Les méthodes :meth:`.repeat` et :meth:`.autorange` " +"sont des méthodes d'agrément permettant d'appeler :meth:`.timeit` à " +"plusieurs reprises." #: ../Doc/library/timeit.rst:113 msgid "" "The execution time of *setup* is excluded from the overall timed execution " "run." msgstr "" +"Le temps d'exécution de *setup* n'est pas pris en compte dans le temps " +"global d'exécution." #: ../Doc/library/timeit.rst:115 msgid "" @@ -132,6 +175,11 @@ msgid "" "will then be executed by :meth:`.timeit`. Note that the timing overhead is " "a little larger in this case because of the extra function calls." msgstr "" +"Les paramètres *stmt* et *setup* peuvent également recevoir des objets " +"appelables sans argument. Ceci transforme alors les appels à ces objets en " +"fonction de chronométrage qui seront exécutées par :meth:`.timeit`. Notez " +"que le surcoût lié à la mesure du temps d'exécution dans ce cas est " +"légèrement supérieur en raisons des appels de fonction supplémentaires." #: ../Doc/library/timeit.rst:125 msgid "" @@ -142,6 +190,13 @@ msgid "" "statement, the setup statement and the timer function to be used are passed " "to the constructor." msgstr "" +"Mesure le temps *number* exécution de l'instruction principale. Ceci exécute " +"l'instruction de mise en place une seule fois puis renvoie un flottant " +"correspondant au temps nécessaire à l'exécution de l'instruction principale " +"à plusieurs reprises, mesuré en secondes. L'argument correspond au nombre " +"d'itérations dans la boucle, par défaut un million. L'instruction " +"principale, l'instruction de mise en place et la fonction de chronométrage " +"utilisée sont passées au constructeur." #: ../Doc/library/timeit.rst:134 msgid "" @@ -152,10 +207,16 @@ msgid "" "so, GC can be re-enabled as the first statement in the *setup* string. For " "example::" msgstr "" +"Par défaut, :meth:`.timeit` désactive temporairement le :term:`ramasse-" +"miettes` pendant le chronométrage. Cette approche a l'avantage de permettre " +"de comparer des mesures indépendantes. L'inconvénient de cette méthode est " +"que le ramasse-miettes peut avoir un impact significatif sur les " +"performances de la fonction étudiée. Dans ce cas, le ramasse-miettes peut " +"être réactivé en première instruction de la chaîne *setup*. Par exemple ::" #: ../Doc/library/timeit.rst:146 msgid "Automatically determine how many times to call :meth:`.timeit`." -msgstr "" +msgstr "Détermine automatiquement combien de fois appeler :meth:`.timeit`." #: ../Doc/library/timeit.rst:148 msgid "" @@ -165,16 +226,25 @@ msgid "" "numbers from the sequence 1, 2, 5, 10, 20, 50, ... until the time taken is " "at least 0.2 second." msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises " +"jusqu'à ce que le temps total écoulé soit supérieur à 0,2 secondes et " +"renvoie le couple (nombre de boucles, temps nécessaire pour exécuter ce " +"nombre de boucles). Elle appelle :meth:`.timeit` avec un nombre d'itérations " +"croissant selon la séquence 1, 2, 5, 10, 20, 50, … jusqu'à ce que le temps " +"d'exécution dépasse 0,2 secondes." #: ../Doc/library/timeit.rst:154 msgid "" "If *callback* is given and is not ``None``, it will be called after each " "trial with two arguments: ``callback(number, time_taken)``." msgstr "" +"Si *callback* est spécifié et n'est pas ``None``, elle est appelée après " +"chaque itération avec deux arguments (numéro de l'itération et temps " +"écoulé) : ``callback(number, time_taken)``." #: ../Doc/library/timeit.rst:162 msgid "Call :meth:`.timeit` a few times." -msgstr "" +msgstr "Appelle :meth:`.timeit` plusieurs fois." #: ../Doc/library/timeit.rst:164 msgid "" @@ -183,6 +253,10 @@ msgid "" "call :meth:`.timeit`. The second argument specifies the *number* argument " "for :meth:`.timeit`." msgstr "" +"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises et " +"renvoie une liste de résultats. Le premier argument spécifie le nombre " +"d'appels à :meth:`.timeit`. Le second argument spécifie l'argument *number* " +"de :meth:`.timeit`." #: ../Doc/library/timeit.rst:171 msgid "" @@ -195,14 +269,25 @@ msgid "" "only number you should be interested in. After that, you should look at the " "entire vector and apply common sense rather than statistics." msgstr "" +"Il est tentant de vouloir calculer la moyenne et l'écart-type des résultats " +"et notifier ces valeurs. Ce n'est cependant pas très utile. En pratique, la " +"valeur la plus basse donne une estimation basse de la vitesse maximale à " +"laquelle votre machine peut exécuter le fragment de code spécifié ; les " +"valeurs hautes de la liste sont typiquement provoquées non pas par une " +"variabilité de la vitesse d'exécution de Python, mais par d'autres processus " +"interférant avec la précision du chronométrage. Le :func:`min` du résultat " +"est probablement la seule valeur à laquelle vous devriez vous intéresser. " +"Pour aller plus loin, vous devriez regarder l'intégralité des résultats et " +"utiliser le bon sens plutôt que les statistiques." #: ../Doc/library/timeit.rst:187 +#, fuzzy msgid "Helper to print a traceback from the timed code." -msgstr "" +msgstr "Outil permettant d'afficher la trace du code chronométré." #: ../Doc/library/timeit.rst:189 msgid "Typical use::" -msgstr "" +msgstr "Usage typique ::" #: ../Doc/library/timeit.rst:197 msgid "" @@ -210,6 +295,9 @@ msgid "" "compiled template will be displayed. The optional *file* argument directs " "where the traceback is sent; it defaults to :data:`sys.stderr`." msgstr "" +"L'avantage par rapport à la trace standard est que les lignes sources du " +"code compilé sont affichées. Le paramètre optionnel *file* définit l'endroit " +"où la trace est envoyée, par défaut :data:`sys.stderr`." #: ../Doc/library/timeit.rst:205 msgid "Command-Line Interface" @@ -219,41 +307,50 @@ msgstr "Interface en ligne de commande" msgid "" "When called as a program from the command line, the following form is used::" msgstr "" +"Lorsque le module est appelé comme un programme en ligne de commande, la " +"syntaxe suivante est utilisée ::" #: ../Doc/library/timeit.rst:211 msgid "Where the following options are understood:" -msgstr "" +msgstr "Les options suivantes sont gérées :" #: ../Doc/library/timeit.rst:217 msgid "how many times to execute 'statement'" -msgstr "" +msgstr "nombre d'exécutions de l'instruction *statement*" #: ../Doc/library/timeit.rst:221 msgid "how many times to repeat the timer (default 5)" -msgstr "" +msgstr "nombre de répétitions du chronomètre (5 par défaut)" #: ../Doc/library/timeit.rst:225 msgid "statement to be executed once initially (default ``pass``)" msgstr "" +"instruction exécutée une seule fois à l'initialisation (``pass`` par défaut)" #: ../Doc/library/timeit.rst:229 msgid "" "measure process time, not wallclock time, using :func:`time.process_time` " "instead of :func:`time.perf_counter`, which is the default" msgstr "" +"mesure le temps au niveau du processus et non au niveau du système, en " +"utilisant :func:`time.process_time` plutôt que :func:`time.perf_counter` qui " +"est utilisée par défaut" #: ../Doc/library/timeit.rst:236 msgid "" "specify a time unit for timer output; can select nsec, usec, msec, or sec" msgstr "" +"spécifie l'unité de temps utilisée pour la sortie du chronomètre (parmi " +"*nsec*, *usec*, *msec* ou *sec*)" #: ../Doc/library/timeit.rst:242 +#, fuzzy msgid "print raw timing results; repeat for more digits precision" -msgstr "" +msgstr "affiche les temps d'exécutions bruts, répéter pour plus de précision" #: ../Doc/library/timeit.rst:246 msgid "print a short usage message and exit" -msgstr "" +msgstr "affiche un court message d'aide puis quitte" #: ../Doc/library/timeit.rst:248 msgid "" @@ -262,12 +359,19 @@ msgid "" "quotes and using leading spaces. Multiple :option:`-s` options are treated " "similarly." msgstr "" +"Une instruction sur plusieurs lignes peut être donnée en entrée en " +"spécifiant chaque ligne comme un argument séparé. Indenter une ligne est " +"possible en encadrant l'argument de guillemets et en le préfixant par des " +"espaces. Plusieurs :option:`-s` sont gérées de la même façon." #: ../Doc/library/timeit.rst:253 msgid "" "If :option:`-n` is not given, a suitable number of loops is calculated by " "trying successive powers of 10 until the total time is at least 0.2 seconds." msgstr "" +"Si :option:`-n` n'est pas donnée, le nombre de boucles adapté est déterminé " +"automatiquement en essayant les puissances de 10 successives jusqu'à ce que " +"le temps total d'exécution dépasse 0,2 secondes." #: ../Doc/library/timeit.rst:256 msgid "" @@ -278,6 +382,13 @@ msgid "" "probably enough in most cases. You can use :func:`time.process_time` to " "measure CPU time." msgstr "" +"Les mesures de :func:`default_timer` peuvent être altérées par d'autres " +"programmes s'exécutant sur la même machine. La meilleure approche lorsqu'un " +"chronométrage exact est nécessaire est de répéter celui-ci à plusieurs " +"reprises et considérer le meilleur temps. L'option :option:`-r` est adaptée " +"à ce fonctionnement, les cinq répétitions par défaut suffisent probablement " +"dans la plupart des cas. Vous pouvez utiliser :func:`time.process_time` pour " +"mesurer le temps processeur." #: ../Doc/library/timeit.rst:264 msgid "" @@ -286,6 +397,11 @@ msgid "" "it. The baseline overhead can be measured by invoking the program without " "arguments, and it might differ between Python versions." msgstr "" +"Il existe un surcoût minimal associé à l'exécution de l'instruction `pass`. " +"Le code présenté ici ne tente pas de le masquer, mais vous devez être " +"conscient de son existence. Ce surcoût minimal peut être mesuré en invoquant " +"le programme sans argument ; il peut différer en fonction des versions de " +"Python." #: ../Doc/library/timeit.rst:273 msgid "Examples" @@ -296,10 +412,14 @@ msgid "" "It is possible to provide a setup statement that is executed only once at " "the beginning:" msgstr "" +"Il est possible de fournir une instruction de mise en place exécutée une " +"seule fois au début du chronométrage :" #: ../Doc/library/timeit.rst:292 msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "" +"La même chose peut être réalisée en utilisant la classe :class:`Timer` et " +"ses méthodes ::" #: ../Doc/library/timeit.rst:302 msgid "" @@ -307,12 +427,19 @@ msgid "" "lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:" "keyword:`except` to test for missing and present object attributes:" msgstr "" +"Les exemples qui suivent montrent comment chronométrer des expressions sur " +"plusieurs lignes. Nous comparons ici le coût d'utilisation de :func:" +"`hasattr` par rapport à :keyword:`try`/:keyword:`except` pour tester la " +"présence ou l'absence d'attributs d'un objet :" #: ../Doc/library/timeit.rst:348 msgid "" "To give the :mod:`timeit` module access to functions you define, you can " "pass a *setup* parameter which contains an import statement::" msgstr "" +"Afin de permettre à :mod:`timeit` d'accéder aux fonctions que vous avez " +"définies, vous pouvez passer au paramètre *setup* une instruction " +"d'importation ::" #: ../Doc/library/timeit.rst:359 msgid "" @@ -320,3 +447,6 @@ msgid "" "will cause the code to be executed within your current global namespace. " "This can be more convenient than individually specifying imports::" msgstr "" +"Une autre possibilité est de passer :func:`globals` au paramètre *globals*, " +"ceci qui exécutera le code dans l'espace de nommage global courant. Cela " +"peut être plus pratique que de spécifier manuellement des importations ::" diff --git a/library/tkinter.po b/library/tkinter.po index b12e3e20a..dfa08aa00 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -6,22 +6,22 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-09-16 11:04+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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 1.8.11\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/tkinter.rst:2 msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" -msgstr "" +msgstr ":mod:`tkinter` — Interface Python pour Tcl/Tk" #: ../Doc/library/tkinter.rst:9 msgid "**Source code:** :source:`Lib/tkinter/__init__.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/tkinter/__init__.py`" #: ../Doc/library/tkinter.rst:13 msgid "" @@ -30,6 +30,10 @@ msgid "" "on most Unix platforms, as well as on Windows systems. (Tk itself is not " "part of Python; it is maintained at ActiveState.)" msgstr "" +"Le paquet :mod:`tkinter` (« interface Tk ») est l'interface Python standard " +"de la boîte à outils d'IUG Tk. Tk et :mod:`tkinter` sont disponibles sur la " +"plupart des plates-formes Unix, ainsi que sur les systèmes Windows (Tk lui-" +"même ne fait pas partie de Python ; il est maintenu par ActiveState)." #: ../Doc/library/tkinter.rst:18 msgid "" @@ -39,129 +43,151 @@ msgid "" "is installed, so you can read the Tcl/Tk documentation specific to that " "version." msgstr "" +"Exécuter ``python -m tkinter`` depuis la ligne de commande ouvre une fenêtre " +"de démonstration d'une interface Tk simple, vous indiquant que :mod:" +"`tkinter` est correctement installé sur votre système et indiquant également " +"quelle version de Tcl/Tk est installée ; vous pouvez donc lire la " +"documentation Tcl/Tk spécifique à cette version." #: ../Doc/library/tkinter.rst:25 msgid "Tkinter documentation:" -msgstr "" +msgstr "Documentation de Tkinter :" #: ../Doc/library/tkinter.rst:29 msgid "`Python Tkinter Resources `_" -msgstr "" +msgstr "`Python Tkinter Resources `_" #: ../Doc/library/tkinter.rst:28 msgid "" "The Python Tkinter Topic Guide provides a great deal of information on using " "Tk from Python and links to other sources of information on Tk." msgstr "" +"Le *Python Tkinter Topic Guide* fournit beaucoup d'informations sur " +"l'utilisation de Tk à partir de Python et des liens vers d'autres sources " +"d'information sur Tk." #: ../Doc/library/tkinter.rst:32 msgid "`TKDocs `_" -msgstr "" +msgstr "`TKDocs `_" #: ../Doc/library/tkinter.rst:32 msgid "" "Extensive tutorial plus friendlier widget pages for some of the widgets." -msgstr "" +msgstr "Tutoriel complet plus convivial pour certains des objets graphiques." #: ../Doc/library/tkinter.rst:35 msgid "" "`Tkinter reference: a GUI for Python `_" msgstr "" +"`Tkinter reference: a GUI for Python `_" #: ../Doc/library/tkinter.rst:35 msgid "On-line reference material." -msgstr "" +msgstr "Documents de référence en ligne." #: ../Doc/library/tkinter.rst:38 msgid "`Tkinter docs from effbot `_" -msgstr "" +msgstr "`Documents Tkinter sur effbot `_" #: ../Doc/library/tkinter.rst:38 msgid "Online reference for tkinter supported by effbot.org." -msgstr "" +msgstr "Référence en ligne pour *tkinter* réalisée par *effbot.org*." #: ../Doc/library/tkinter.rst:41 msgid "`Programming Python `_" -msgstr "" +msgstr "`Programming Python `_" #: ../Doc/library/tkinter.rst:41 msgid "Book by Mark Lutz, has excellent coverage of Tkinter." -msgstr "" +msgstr "Livre de Mark Lutz, qui couvre excellemment bien Tkinter." #: ../Doc/library/tkinter.rst:44 msgid "" "`Modern Tkinter for Busy Python Developers `_" msgstr "" +"`Modern Tkinter for Busy Python Developers `_" #: ../Doc/library/tkinter.rst:44 msgid "" "Book by Mark Rozerman about building attractive and modern graphical user " "interfaces with Python and Tkinter." msgstr "" +"Livre de Mark Rozerman sur la construction d'interfaces graphiques " +"esthétiques et modernes avec Python et Tkinter." #: ../Doc/library/tkinter.rst:47 msgid "" "`Python and Tkinter Programming `_" msgstr "" +"`Python and Tkinter Programming `_" #: ../Doc/library/tkinter.rst:47 msgid "Book by John Grayson (ISBN 1-884777-81-3)." -msgstr "" +msgstr "Livre de John Grayson (ISBN 1-884777-81-3)." #: ../Doc/library/tkinter.rst:49 msgid "Tcl/Tk documentation:" -msgstr "" +msgstr "Documentation de Tcl/Tk :" #: ../Doc/library/tkinter.rst:53 msgid "`Tk commands `_" -msgstr "" +msgstr "`Commandes Tk `_" #: ../Doc/library/tkinter.rst:52 msgid "" "Most commands are available as :mod:`tkinter` or :mod:`tkinter.ttk` classes. " "Change '8.6' to match the version of your Tcl/Tk installation." msgstr "" +"La plupart des commandes sont disponibles sous forme de classes :mod:" +"`tkinter` ou :mod:`tkinter.ttk`. Modifiez '8.6' pour correspondre à votre " +"version installée de Tcl/Tk." #: ../Doc/library/tkinter.rst:56 msgid "`Tcl/Tk recent man pages `_" -msgstr "" +msgstr "`Pages de manuel récentes de Tcl/Tk `_" #: ../Doc/library/tkinter.rst:56 msgid "Recent Tcl/Tk manuals on www.tcl.tk." -msgstr "" +msgstr "Manuels récents de Tcl/Tk sur *www.tcl.tk*." #: ../Doc/library/tkinter.rst:59 msgid "`ActiveState Tcl Home Page `_" -msgstr "" +msgstr "`Page d'accueil Tcl `_ chez ActiveState" #: ../Doc/library/tkinter.rst:59 msgid "The Tk/Tcl development is largely taking place at ActiveState." msgstr "" +"Le développement de Tk/Tcl se déroule en grande partie au sein d'ActiveState." #: ../Doc/library/tkinter.rst:62 msgid "" "`Tcl and the Tk Toolkit `_" msgstr "" +"`Tcl and the Tk Toolkit `_" #: ../Doc/library/tkinter.rst:62 msgid "Book by John Ousterhout, the inventor of Tcl." -msgstr "" +msgstr "Livre de John Ousterhout, l'inventeur de Tcl." #: ../Doc/library/tkinter.rst:64 msgid "`Practical Programming in Tcl and Tk `_" -msgstr "" +msgstr "`Practical Programming in Tcl and Tk `_" #: ../Doc/library/tkinter.rst:65 msgid "Brent Welch's encyclopedic book." -msgstr "" +msgstr "Le livre encyclopédique de Brent Welch." #: ../Doc/library/tkinter.rst:69 msgid "Tkinter Modules" -msgstr "" +msgstr "Modules Tkinter" #: ../Doc/library/tkinter.rst:71 msgid "" @@ -172,6 +198,13 @@ msgid "" "programmers. It is usually a shared library (or DLL), but might in some " "cases be statically linked with the Python interpreter." msgstr "" +"La plupart du temps, :mod:`tkinter` est tout ce dont vous avez vraiment " +"besoin mais un certain nombre de modules supplémentaires sont également " +"disponibles. L'interface Tk est située dans un module binaire nommé :mod:" +"`_tkinter`. Ce module contient l'interface de bas niveau vers Tk et ne doit " +"jamais être utilisé directement par les développeurs. Il s'agit généralement " +"d'une bibliothèque partagée (ou DLL) mais elle peut, dans certains cas, être " +"liée statiquement à l'interpréteur Python." #: ../Doc/library/tkinter.rst:78 msgid "" @@ -180,10 +213,15 @@ msgid "" "Importing :mod:`tkinter` will automatically import :mod:`tkinter.constants`, " "so, usually, to use Tkinter all you need is a simple import statement::" msgstr "" +"En plus du module d'interface Tk, :mod:`tkinter` inclut un certain nombre de " +"modules Python, :mod:`tkinter.constants` étant l'un des plus importants. " +"Importer :mod:`tkinter` charge automatiquement :mod:`tkinter.constants` " +"donc, habituellement, pour utiliser Tkinter, tout ce dont vous avez besoin " +"est une simple commande d'importation ::" #: ../Doc/library/tkinter.rst:85 msgid "Or, more often::" -msgstr "" +msgstr "Ou, plus souvent ::" #: ../Doc/library/tkinter.rst:92 msgid "" @@ -191,6 +229,9 @@ msgid "" "toplevel widget of Tk which usually is the main window of an application. " "Each instance has its own associated Tcl interpreter." msgstr "" +"La classe :class:`Tk` est instanciée sans argument. Cela crée un widget de " +"haut niveau de Tk qui est généralement la fenêtre principale d'une " +"application. Chaque instance a son propre interpréteur Tcl associé." #: ../Doc/library/tkinter.rst:101 msgid "" @@ -203,88 +244,104 @@ msgid "" "window created (and the Tk subsystem initialized) by calling its :meth:" "`loadtk` method." msgstr "" +"La fonction :func:`Tcl` est une fonction fabrique qui crée un objet " +"similaire à celui créé par la classe :class:`Tk`, sauf qu'elle n'initialise " +"pas le sous-système Tk. Ceci est le plus souvent utile lorsque vous pilotez " +"l'interpréteur Tcl dans un environnement où vous ne voulez pas créer des " +"fenêtres de haut niveau supplémentaires, ou alors si c'est impossible (comme " +"les systèmes Unix/Linux sans un serveur X). Un objet créé par :func:`Tcl` " +"peut avoir une fenêtre de haut niveau créée (et le sous-système Tk " +"initialisé) en appelant sa méthode :meth:`loadtk`." #: ../Doc/library/tkinter.rst:110 msgid "Other modules that provide Tk support include:" -msgstr "" +msgstr "Parmi les modules qui savent gérer Tk, nous pouvons citer :" #: ../Doc/library/tkinter.rst:113 msgid ":mod:`tkinter.scrolledtext`" -msgstr "" +msgstr ":mod:`tkinter.scrolledtext`" #: ../Doc/library/tkinter.rst:113 msgid "Text widget with a vertical scroll bar built in." msgstr "" +"Outil d'affichage de texte avec une barre de défilement verticale intégrée." #: ../Doc/library/tkinter.rst:116 msgid ":mod:`tkinter.colorchooser`" -msgstr "" +msgstr ":mod:`tkinter.colorchooser`" #: ../Doc/library/tkinter.rst:116 msgid "Dialog to let the user choose a color." -msgstr "" +msgstr "Boîte de dialogue permettant à l'utilisateur de choisir une couleur." #: ../Doc/library/tkinter.rst:119 msgid ":mod:`tkinter.commondialog`" -msgstr "" +msgstr ":mod:`tkinter.commondialog`" #: ../Doc/library/tkinter.rst:119 msgid "Base class for the dialogs defined in the other modules listed here." msgstr "" +"Classe de base pour les boîtes de dialogue définies dans les autres modules " +"listés ici." #: ../Doc/library/tkinter.rst:122 msgid ":mod:`tkinter.filedialog`" -msgstr "" +msgstr ":mod:`tkinter.filedialog`" #: ../Doc/library/tkinter.rst:122 msgid "Common dialogs to allow the user to specify a file to open or save." msgstr "" +"Boîtes de dialogue standard permettant à l'utilisateur de spécifier un " +"fichier à ouvrir ou à enregistrer." #: ../Doc/library/tkinter.rst:125 msgid ":mod:`tkinter.font`" -msgstr "" +msgstr ":mod:`tkinter.font`" #: ../Doc/library/tkinter.rst:125 msgid "Utilities to help work with fonts." -msgstr "" +msgstr "Utilitaires pour gérer les polices de caractères." #: ../Doc/library/tkinter.rst:128 msgid ":mod:`tkinter.messagebox`" -msgstr "" +msgstr ":mod:`tkinter.messagebox`" #: ../Doc/library/tkinter.rst:128 msgid "Access to standard Tk dialog boxes." -msgstr "" +msgstr "Accès aux boîtes de dialogue Tk standard." #: ../Doc/library/tkinter.rst:131 msgid ":mod:`tkinter.simpledialog`" -msgstr "" +msgstr ":mod:`tkinter.simpledialog`" #: ../Doc/library/tkinter.rst:131 msgid "Basic dialogs and convenience functions." -msgstr "" +msgstr "Boîtes de dialogue simples et fonctions utilitaires." #: ../Doc/library/tkinter.rst:135 msgid ":mod:`tkinter.dnd`" -msgstr "" +msgstr ":mod:`tkinter.dnd`" #: ../Doc/library/tkinter.rst:134 msgid "" "Drag-and-drop support for :mod:`tkinter`. This is experimental and should " "become deprecated when it is replaced with the Tk DND." msgstr "" +"Support du glisser-déposer pour :mod:`tkinter`. Il s'agit d'une méthode " +"expérimentale qui ne sera plus maintenue lorsqu'elle sera remplacée par Tk " +"DND." #: ../Doc/library/tkinter.rst:139 msgid ":mod:`turtle`" -msgstr "" +msgstr ":mod:`turtle`" #: ../Doc/library/tkinter.rst:138 msgid "Turtle graphics in a Tk window." -msgstr "" +msgstr "Tortue graphique dans une fenêtre Tk." #: ../Doc/library/tkinter.rst:142 msgid "Tkinter Life Preserver" -msgstr "" +msgstr "Guide de survie Tkinter" #: ../Doc/library/tkinter.rst:147 msgid "" @@ -292,45 +349,54 @@ msgid "" "Tkinter. Rather, it is intended as a stop gap, providing some introductory " "orientation on the system." msgstr "" +"Cette section n'est pas conçue pour être un tutoriel exhaustif de Tk ou " +"Tkinter. Il s'agit plutôt d'un guide d'introduction au système." #: ../Doc/library/tkinter.rst:151 msgid "Credits:" -msgstr "" +msgstr "Crédits :" #: ../Doc/library/tkinter.rst:153 msgid "Tk was written by John Ousterhout while at Berkeley." -msgstr "" +msgstr "*Tk* a été écrit par John Ousterhout de Berkeley." #: ../Doc/library/tkinter.rst:155 msgid "Tkinter was written by Steen Lumholt and Guido van Rossum." -msgstr "" +msgstr "*Tkinter* a été écrit par Steen Lumholt et Guido van Rossum." #: ../Doc/library/tkinter.rst:157 msgid "" "This Life Preserver was written by Matt Conway at the University of Virginia." msgstr "" +"Ce guide de survie a été écrit par Matt Conway de l'Université de Virginie." #: ../Doc/library/tkinter.rst:159 msgid "" "The HTML rendering, and some liberal editing, was produced from a FrameMaker " "version by Ken Manheimer." msgstr "" +"Le rendu HTML, avec quelques modifications, a été réalisé à partir d'une " +"version FrameMaker par Ken Manheimer." #: ../Doc/library/tkinter.rst:162 msgid "" "Fredrik Lundh elaborated and revised the class interface descriptions, to " "get them current with Tk 4.2." msgstr "" +"Fredrik Lundh a élaboré et mis à jour les descriptions de l'interface des " +"classes, en cohérence avec Tk 4.2." #: ../Doc/library/tkinter.rst:165 msgid "" "Mike Clarkson converted the documentation to LaTeX, and compiled the User " "Interface chapter of the reference manual." msgstr "" +"Mike Clarkson a converti la documentation en LaTeX et a compilé le chapitre " +"*Interface utilisateur* du manuel de référence." #: ../Doc/library/tkinter.rst:170 msgid "How To Use This Section" -msgstr "" +msgstr "Mode d'emploi" #: ../Doc/library/tkinter.rst:172 msgid "" @@ -338,6 +404,9 @@ msgid "" "background material, while the second half can be taken to the keyboard as a " "handy reference." msgstr "" +"Cette section est divisée en deux parties : la première moitié (à peu près) " +"couvre la partie théorique, tandis que la seconde moitié peut être utilisée " +"comme guide pratique." #: ../Doc/library/tkinter.rst:176 msgid "" @@ -350,6 +419,14 @@ msgid "" "best we can do is point you to the best documentation that exists. Here are " "some hints:" msgstr "" +"Lorsque l'on essaie de répondre à des questions sur la manière de faire « " +"ceci ou cela », il est souvent préférable de trouver comment le faire en Tk, " +"puis de le convertir en fonction correspondante :mod:`tkinter`. Les " +"programmeurs Python peuvent souvent deviner la commande Python correcte en " +"consultant la documentation Tk. Cela signifie que pour utiliser Tkinter, " +"vous devez en savoir un peu plus sur Tk. Ce document ne peut pas remplir ce " +"rôle, alors le mieux que nous puissions faire est de vous indiquer la " +"meilleure documentation qui existe. Voici quelques conseils :" #: ../Doc/library/tkinter.rst:184 msgid "" @@ -358,6 +435,11 @@ msgid "" "``man3`` man pages describe the C interface to the Tk library and thus are " "not especially helpful for script writers." msgstr "" +"Les auteurs conseillent fortement d'obtenir une copie des pages de manuel de " +"Tk. En particulier, les pages de manuel dans le répertoire ``manN`` sont les " +"plus utiles. Les pages de manuel ``man3`` décrivent l'interface C de la " +"bibliothèque Tk et ne sont donc pas particulièrement utiles aux développeurs " +"de scripts." #: ../Doc/library/tkinter.rst:189 msgid "" @@ -366,20 +448,26 @@ msgid "" "for the novice. The book is not exhaustive, and for many details it defers " "to the man pages." msgstr "" +"Addison-Wesley a publié un livre intitulé *Tcl and the Tk Toolkit* de John " +"Ousterhout (ISBN 0-201-63337-X) qui est une bonne introduction à Tcl et Tk " +"pour débutants. Le livre n'est pas exhaustif et, pour beaucoup de détails, " +"il renvoie aux pages du manuel." #: ../Doc/library/tkinter.rst:194 msgid "" ":file:`tkinter/__init__.py` is a last resort for most, but can be a good " "place to go when nothing else makes sense." msgstr "" +":file:`tkinter/__init__.py` est souvent un dernier recours, mais peut être " +"un bon endroit où aller quand rien d'autre ne fait sens." #: ../Doc/library/tkinter.rst:199 msgid "A Simple Hello World Program" -msgstr "" +msgstr "Un simple programme *Hello World*" #: ../Doc/library/tkinter.rst:231 msgid "A (Very) Quick Look at Tcl/Tk" -msgstr "" +msgstr "Un (très) rapide aperçu de Tcl/Tk" #: ../Doc/library/tkinter.rst:233 msgid "" @@ -387,6 +475,9 @@ msgid "" "programmers almost always refer to the classes at the very bottom of the " "hierarchy." msgstr "" +"La hiérarchie de classes semble compliquée mais, dans la pratique, les " +"développeurs d'applications se réfèrent presque toujours aux classes situées " +"tout en bas de la hiérarchie." #: ../Doc/library/tkinter.rst:237 msgid "Notes:" @@ -397,6 +488,9 @@ msgid "" "These classes are provided for the purposes of organizing certain functions " "under one namespace. They aren't meant to be instantiated independently." msgstr "" +"Ces classes sont fournies dans le but d'organiser certaines fonctions sous " +"un seul espace de nommage. Elles n'ont pas vocation à être instanciées " +"indépendamment." #: ../Doc/library/tkinter.rst:242 msgid "" @@ -404,6 +498,10 @@ msgid "" "application. Application programmers need not instantiate one explicitly, " "the system creates one whenever any of the other classes are instantiated." msgstr "" +"La classe :class:`Tk` est destinée à être instanciée une seule fois dans une " +"application. Les développeurs d'applications n'ont pas besoin d'en " +"instancier une explicitement, Le système en crée une au besoin quand une des " +"autres classes est instanciée." #: ../Doc/library/tkinter.rst:246 msgid "" @@ -411,6 +509,9 @@ msgid "" "for subclassing to make \"real\" widgets (in C++, this is called an " "'abstract class')." msgstr "" +"La classe :class:`Widget` n'est pas destinée à être instanciée, elle est " +"destinée uniquement au sous-classement pour faire de « vrais » objets " +"graphiques (en C++, on appelle cela une « classe abstraite »)." #: ../Doc/library/tkinter.rst:250 msgid "" @@ -419,6 +520,10 @@ msgid "" "various parts of a Tk command. (See section :ref:`tkinter-basic-mapping` " "for the :mod:`tkinter` equivalents of what's below.)" msgstr "" +"Pour comprendre cette documentation, il y aura des moments où vous aurez " +"besoin de savoir comment lire de courts passages de Tk et comment identifier " +"les différentes parties d'une commande Tk. (Voir la section :ref:`tkinter-" +"basic-mapping` pour les équivalents :mod:`tkinter` de ce qui suit)." #: ../Doc/library/tkinter.rst:255 msgid "" @@ -427,22 +532,30 @@ msgid "" "*options* that help configure it, and the *actions* that make it do useful " "things." msgstr "" +"Les scripts Tk sont des programmes Tcl. Comme tous les programmes Tcl, les " +"scripts Tk ne sont que des listes de commandes séparées par des espaces. Un " +"objet graphique Tk n'est constitué que de sa *classe*, des *options* qui " +"l'aident à se configurer et des *actions* qui lui font faire des choses " +"utiles." #: ../Doc/library/tkinter.rst:259 msgid "To make a widget in Tk, the command is always of the form::" msgstr "" +"Pour créer un objet graphique en Tk, la commande est toujours de la forme ::" #: ../Doc/library/tkinter.rst:264 msgid "*classCommand*" -msgstr "" +msgstr "*classCommand*" #: ../Doc/library/tkinter.rst:264 msgid "denotes which kind of widget to make (a button, a label, a menu...)" msgstr "" +"indique le type d'objet graphique à réaliser (un bouton, une étiquette, un " +"menu…)" #: ../Doc/library/tkinter.rst:273 msgid "*newPathname*" -msgstr "" +msgstr "*newPathname*" #: ../Doc/library/tkinter.rst:269 msgid "" @@ -452,6 +565,13 @@ msgid "" "children are delimited by more periods. For example, ``.myApp.controlPanel." "okButton`` might be the name of a widget." msgstr "" +"est le nouveau nom pour cet objet graphique. Tous les noms dans Tk doivent " +"être uniques. Pour vous aider à respecter cette règle, les objets " +"graphiques dans Tk sont nommés avec des *noms d'accès*, tout comme les " +"fichiers dans le système de fichiers. L'objet graphique de niveau " +"supérieur, la racine (*root* en anglais), s'appelle ``.`` (point) et les " +"enfants sont délimités par plusieurs points. Par exemple, ``.myApp." +"controlPanel.okButton`` pourrait être le nom d'un objet graphique." #: ../Doc/library/tkinter.rst:279 msgid "*options*" @@ -464,6 +584,11 @@ msgid "" "by a '-', like Unix shell command flags, and values are put in quotes if " "they are more than one word." msgstr "" +"configure l'apparence de l'objet graphique et, dans certains cas, son " +"comportement. Les options se présentent sous la forme d'une liste de " +"paramètres et de valeurs. Les paramètres sont précédés d'un « - », comme les " +"paramètres d'une ligne de commande du shell Unix, et les valeurs sont mises " +"entre guillemets si elles font plus d'un mot." #: ../Doc/library/tkinter.rst:281 ../Doc/library/tkinter.rst:543 #: ../Doc/library/tkinter.rst:717 @@ -478,10 +603,15 @@ msgid "" "someOptions), in C++, you would express this as fred." "someAction(someOptions), and in Tk, you say::" msgstr "" +"Une fois créé, le chemin d'accès à l'objet graphique devient une nouvelle " +"commande. Cette nouvelle *commande d'objet graphique* est l'interface du " +"programmeur pour que le nouvel objet graphique effectue une *action*. En C, " +"cela prend la forme ``someAction(fred, someOptions)``, en C++, cela prend la " +"forme `fred.someAction(someOptions)` et, en Tk, vous dites ::" #: ../Doc/library/tkinter.rst:297 msgid "Note that the object name, ``.fred``, starts with a dot." -msgstr "" +msgstr "Notez que le nom de l'objet, ``.fred``, commence par un point." #: ../Doc/library/tkinter.rst:299 msgid "" @@ -490,6 +620,11 @@ msgid "" "greyed out), but does not work if fred is a label (disabling of labels is " "not supported in Tk)." msgstr "" +"Comme vous pouvez vous y attendre, les valeurs autorisées pour *someAction* " +"dépendent de la classe de l'objet graphique : ``.fred disable`` fonctionne " +"si ``fred`` est un bouton (``fred`` devient grisé), mais ne fonctionne pas " +"si ``fred`` est une étiquette (la désactivation des étiquettes n'existe pas " +"dans Tk)." #: ../Doc/library/tkinter.rst:303 msgid "" @@ -498,20 +633,29 @@ msgid "" "``delete`` command, would need arguments to specify what range of text to " "delete." msgstr "" +"Les valeurs possibles de *someOptions* dépendent de l'action. Certaines " +"actions, comme ``disable``, ne nécessitent aucun argument ; d'autres, comme " +"la commande ``delete`` d'une zone de saisie, nécessitent des arguments pour " +"spécifier l'étendue du texte à supprimer." #: ../Doc/library/tkinter.rst:311 msgid "Mapping Basic Tk into Tkinter" -msgstr "" +msgstr "Correspondance entre *Basic Tk* et *Tkinter*" #: ../Doc/library/tkinter.rst:313 msgid "Class commands in Tk correspond to class constructors in Tkinter. ::" msgstr "" +"Les commandes de classes dans Tk correspondent aux constructeurs de classes " +"dans Tkinter. ::" #: ../Doc/library/tkinter.rst:317 msgid "" "The master of an object is implicit in the new name given to it at creation " "time. In Tkinter, masters are specified explicitly. ::" msgstr "" +"Le constructeur d'un objet est implicite dans le nouveau nom qui lui est " +"donné lors de la création. Dans Tkinter, les constructeurs sont spécifiés " +"explicitement. ::" #: ../Doc/library/tkinter.rst:322 msgid "" @@ -521,6 +665,13 @@ msgid "" "indices, in dictionary style, for established instances. See section :ref:" "`tkinter-setting-options` on setting options. ::" msgstr "" +"Les options de configuration dans Tk sont données dans des listes de " +"paramètres séparés par des traits d'union suivies de leurs valeurs. Dans " +"Tkinter, les options sont spécifiées sous forme d'arguments par mots-clés " +"dans le constructeur d'instance, et d'arguments par mots-clés pour " +"configurer les appels ou sous forme d'une entrée, dans le style " +"dictionnaire, d'instance pour les instances établies. Voir la section :ref:" +"`tkinter-setting-options` pour la façon de définir les options. ::" #: ../Doc/library/tkinter.rst:332 msgid "" @@ -530,6 +681,12 @@ msgid "" "widget. The actions (methods) that a given widget can perform are listed " "in :file:`tkinter/__init__.py`. ::" msgstr "" +"Dans Tk, pour effectuer une action sur un objet graphique, utilisez le nom " +"de l'objet graphique comme une commande et faites-le suivre d'un nom " +"d'action, éventuellement avec des arguments (options). Dans Tkinter, vous " +"appelez des méthodes sur l'instance de classe pour invoquer des actions sur " +"l'objet graphique. Les actions (méthodes) qu'un objet graphique donné peut " +"effectuer sont listées dans :file:`tkinter/__init__.py`. ::" #: ../Doc/library/tkinter.rst:340 msgid "" @@ -540,26 +697,34 @@ msgid "" "so inherit all the packing methods. See the :mod:`tkinter.tix` module " "documentation for additional information on the Form geometry manager. ::" msgstr "" +"Pour donner un objet graphique à l'empaqueteur (ce qui gère la disposition à " +"l'écran), appelez ``pack`` avec des arguments optionnels. Dans Tkinter, la " +"classe ``Pack`` contient toutes ces fonctionnalités et les différentes " +"formes de la commande ``pack`` sont implémentées comme méthodes. Tous les " +"objets graphiques de :mod:`tkinter` sont sous-classés depuis l'empaqueteur " +"et donc héritent de toutes les méthodes d'empaquetage. Voir la documentation " +"du module :mod:`tkinter.tix` pour plus d'informations sur le gestionnaire de " +"disposition des formulaires. ::" #: ../Doc/library/tkinter.rst:351 msgid "How Tk and Tkinter are Related" -msgstr "" +msgstr "Relations entre Tk et Tkinter" #: ../Doc/library/tkinter.rst:353 msgid "From the top down:" -msgstr "" +msgstr "De haut en bas :" #: ../Doc/library/tkinter.rst:356 msgid "Your App Here (Python)" -msgstr "" +msgstr "Votre application (Python)" #: ../Doc/library/tkinter.rst:356 msgid "A Python application makes a :mod:`tkinter` call." -msgstr "" +msgstr "Une application Python fait un appel :mod:`tkinter`." #: ../Doc/library/tkinter.rst:363 msgid "tkinter (Python Package)" -msgstr "" +msgstr "*tkinter* (paquet Python)" #: ../Doc/library/tkinter.rst:359 msgid "" @@ -569,20 +734,26 @@ msgid "" "form that makes them look as if they had come from a Tk script instead of a " "Python script." msgstr "" +"Cet appel (par exemple, la création d'un objet graphique de type bouton) est " +"implémenté dans le paquet :mod:`tkinter`, qui est écrit en Python. Cette " +"fonction Python analyse les commandes et les arguments et les convertit en " +"une forme qui les fait ressembler à un script Tk au lieu d'un script Python." #: ../Doc/library/tkinter.rst:367 msgid "_tkinter (C)" -msgstr "" +msgstr "_tkinter (C)" #: ../Doc/library/tkinter.rst:366 msgid "" "These commands and their arguments will be passed to a C function in the :" "mod:`_tkinter` - note the underscore - extension module." msgstr "" +"Ces commandes et leurs arguments sont passés à une fonction C dans le module " +"d'extension :mod:`_tkinter` — notez le tiret bas." #: ../Doc/library/tkinter.rst:374 msgid "Tk Widgets (C and Tcl)" -msgstr "" +msgstr "Objets graphiques Tk (C et Tcl)" #: ../Doc/library/tkinter.rst:370 msgid "" @@ -592,56 +763,74 @@ msgid "" "widgets, and is executed once at the point where the Python :mod:`tkinter` " "package is imported. (The user never sees this stage)." msgstr "" +"Cette fonction C est capable d'effectuer des appels vers d'autres modules C, " +"y compris les fonctions C qui composent la bibliothèque Tk. Tk est " +"implémenté en C et un peu en Tcl. La partie Tcl des objets graphiques Tk est " +"utilisée pour lier certains comportements par défaut aux objets graphiques, " +"et est exécutée une fois au moment où le paquet Python :mod:`tkinter` est " +"importé (cette étape est transparente pour l'utilisateur)." #: ../Doc/library/tkinter.rst:377 msgid "Tk (C)" -msgstr "" +msgstr "Tk (C)" #: ../Doc/library/tkinter.rst:377 msgid "The Tk part of the Tk Widgets implement the final mapping to ..." msgstr "" +"La partie Tk des objets graphiques Tk implémente la correspondance finale " +"avec …" #: ../Doc/library/tkinter.rst:381 msgid "Xlib (C)" -msgstr "" +msgstr "Xlib (C)" #: ../Doc/library/tkinter.rst:380 msgid "the Xlib library to draw graphics on the screen." msgstr "" +"la bibliothèque *Xlib* pour dessiner des éléments graphiques à l'écran." #: ../Doc/library/tkinter.rst:384 msgid "Handy Reference" -msgstr "" +msgstr "Guide pratique" #: ../Doc/library/tkinter.rst:390 msgid "Setting Options" -msgstr "" +msgstr "Définition des options" #: ../Doc/library/tkinter.rst:392 msgid "" "Options control things like the color and border width of a widget. Options " "can be set in three ways:" msgstr "" +"Les options contrôlent des paramètres tels que la couleur et la largeur de " +"la bordure d'un objet graphique. Les options peuvent être réglées de trois " +"façons :" #: ../Doc/library/tkinter.rst:398 msgid "At object creation time, using keyword arguments" -msgstr "" +msgstr "Lors de la création de l'objet, à l'aide d'arguments par mots-clés" #: ../Doc/library/tkinter.rst:404 msgid "After object creation, treating the option name like a dictionary index" msgstr "" +"Après la création de l'objet, en manipulant le nom de l'option comme une " +"entrée de dictionnaire" #: ../Doc/library/tkinter.rst:409 msgid "" "Use the config() method to update multiple attrs subsequent to object " "creation" msgstr "" +"Utilisez la méthode ``config()`` pour mettre à jour plusieurs attributs " +"après la création de l'objet" #: ../Doc/library/tkinter.rst:411 msgid "" "For a complete explanation of a given option and its behavior, see the Tk " "man pages for the widget in question." msgstr "" +"Pour l'explication complète d'une option donnée et de son comportement, voir " +"les pages de manuel Tk de l'objet graphique en question." #: ../Doc/library/tkinter.rst:414 msgid "" @@ -651,6 +840,12 @@ msgid "" "particular widget. The Standard Options are documented on the :manpage:" "`options(3)` man page." msgstr "" +"Notez que les pages de manuel listent « OPTIONS STANDARD » et « OPTIONS " +"SPÉCIFIQUES D'OBJETS GRAPHIQUES » pour chaque objet graphique. La première " +"est une liste d'options communes à de nombreux objets graphiques, la seconde " +"est une liste d'options propres à cet objet graphique particulier. Les " +"options standard sont documentées sur la page de manuel :manpage:" +"`options(3)`." #: ../Doc/library/tkinter.rst:420 msgid "" @@ -659,6 +854,12 @@ msgid "" "given widget responds to a particular option depends on the class of the " "widget; buttons have a ``command`` option, labels do not." msgstr "" +"Aucune distinction n'est faite dans ce document entre les options standard " +"et les options spécifiques à un objet graphique. Certaines options ne " +"s'appliquent pas à certains types d'objets graphiques. La réaction d'un " +"objet graphique donné à une option particulière dépend de la classe de " +"l'objet graphique ; les boutons possèdent une option ``command``, pas les " +"étiquettes." #: ../Doc/library/tkinter.rst:425 msgid "" @@ -668,6 +869,12 @@ msgid "" "The return value of these calls is a dictionary whose key is the name of the " "option as a string (for example, ``'relief'``) and whose values are 5-tuples." msgstr "" +"Les options gérées par un objet graphique donné sont listées dans la page de " +"manuel de cet objet graphique, ou peuvent être interrogées à l'exécution en " +"appelant la méthode :meth:`config` sans argument, ou en appelant la méthode :" +"meth:`keys` sur cet objet graphique. La valeur de retour de ces appels est " +"un dictionnaire dont la clé est le nom de l'option sous forme de chaîne (par " +"exemple, ``'relief'``) et dont les valeurs sont des *5-uplets*." #: ../Doc/library/tkinter.rst:431 msgid "" @@ -677,6 +884,11 @@ msgid "" "tuple passed back will contain the name of the synonym and the \"real\" " "option (such as ``('bg', 'background')``)." msgstr "" +"Certaines options, comme ``bg``, sont des synonymes d'options communes qui " +"ont des noms longs (``bg`` est une abréviation pour ``background`` « arrière-" +"plan »). Passer le nom abrégé d'une option à la méthode ``config()`` renvoie " +"un couple, pas un quintuplet. Le couple renvoyé contient le nom abrégé et le " +"nom *réel* de l'option, par exemple ``('bg','background')``." #: ../Doc/library/tkinter.rst:438 msgid "Index" @@ -696,7 +908,7 @@ msgstr "0" #: ../Doc/library/tkinter.rst:440 msgid "option name" -msgstr "Nom des options" +msgstr "nom des options" #: ../Doc/library/tkinter.rst:440 ../Doc/library/tkinter.rst:442 msgid "``'relief'``" @@ -708,7 +920,7 @@ msgstr "1" #: ../Doc/library/tkinter.rst:442 msgid "option name for database lookup" -msgstr "" +msgstr "nom de l'option pour la recherche dans la base de données" #: ../Doc/library/tkinter.rst:444 msgid "2" @@ -716,7 +928,7 @@ msgstr "2" #: ../Doc/library/tkinter.rst:444 msgid "option class for database lookup" -msgstr "" +msgstr "classe de l'option pour la recherche dans la base de données" #: ../Doc/library/tkinter.rst:444 msgid "``'Relief'``" @@ -728,7 +940,7 @@ msgstr "3" #: ../Doc/library/tkinter.rst:447 msgid "default value" -msgstr "Valeur par défaut" +msgstr "valeur par défaut" #: ../Doc/library/tkinter.rst:447 msgid "``'raised'``" @@ -740,7 +952,7 @@ msgstr "4" #: ../Doc/library/tkinter.rst:449 msgid "current value" -msgstr "" +msgstr "valeur actuelle" #: ../Doc/library/tkinter.rst:449 msgid "``'groove'``" @@ -755,10 +967,12 @@ msgid "" "Of course, the dictionary printed will include all the options available and " "their values. This is meant only as an example." msgstr "" +"Bien sûr, le dictionnaire affiché contient toutes les options disponibles et " +"leurs valeurs. Ceci n'est donné qu'à titre d'exemple." #: ../Doc/library/tkinter.rst:462 msgid "The Packer" -msgstr "" +msgstr "L'empaqueteur" #: ../Doc/library/tkinter.rst:466 msgid "" @@ -770,6 +984,14 @@ msgid "" "*to the left of*, *filling*, etc - and works everything out to determine the " "exact placement coordinates for you." msgstr "" +"L'empaqueteur est l'un des mécanismes de Tk pour la gestion de la " +"disposition des éléments sur l'écran. Les gestionnaires de géométrie sont " +"utilisés pour spécifier le positionnement relatif du positionnement des " +"objets graphiques dans leur conteneur — leur *constructeur* mutuel. " +"Contrairement au plus encombrant *placeur* (qui est utilisé moins souvent, " +"et nous n'en parlons pas ici), l'empaqueteur prend les spécifications " +"qualitatives de relation — *above*, *to the left of*, *filling*, etc — et " +"calcule tout pour déterminer les coordonnées exactes du placement pour vous." #: ../Doc/library/tkinter.rst:474 msgid "" @@ -780,6 +1002,14 @@ msgid "" "you desire. Additionally, the arrangement is dynamically adjusted to " "accommodate incremental changes to the configuration, once it is packed." msgstr "" +"La taille d'un objet graphique *constructeur* est déterminée par la taille " +"des « objets graphiques hérités » à l'intérieur. L'empaqueteur est utilisé " +"pour contrôler l'endroit où les objets graphiques hérités apparaissent à " +"l'intérieur du constructeur dans lequel ils sont empaquetés. Vous pouvez " +"regrouper des objets graphiques dans des cadres, et des cadres dans d'autres " +"cadres, afin d'obtenir le type de mise en page souhaité. De plus, " +"l'arrangement est ajusté dynamiquement pour s'adapter aux changements " +"incrémentiels de la configuration, une fois qu'elle est empaquetées." #: ../Doc/library/tkinter.rst:481 msgid "" @@ -789,6 +1019,12 @@ msgid "" "nothing appears. A widget will appear only after it has had, for example, " "the packer's :meth:`pack` method applied to it." msgstr "" +"Notez que les objets graphiques n'apparaissent pas tant que leur disposition " +"n'a pas été spécifiée avec un gestionnaire de géométrie. C'est une erreur " +"de débutant courante de ne pas tenir compte de la spécification de la " +"géométrie, puis d'être surpris lorsque l'objet graphique est créé mais que " +"rien n'apparaît. Un objet graphique n'apparaît qu'après que, par exemple, " +"la méthode :meth:`pack` de l'empaqueteur lui ait été appliquée." #: ../Doc/library/tkinter.rst:487 msgid "" @@ -796,71 +1032,83 @@ msgid "" "where the widget is to appear within its container, and how it is to behave " "when the main application window is resized. Here are some examples::" msgstr "" +"La méthode `pack()` peut être appelée avec des paires mot-clé-option/valeur " +"qui contrôlent où l'objet graphique doit apparaître dans son conteneur et " +"comment il doit se comporter lorsque la fenêtre principale de l'application " +"est redimensionnée. En voici quelques exemples ::" #: ../Doc/library/tkinter.rst:497 msgid "Packer Options" -msgstr "" +msgstr "Options de l'empaqueteur" #: ../Doc/library/tkinter.rst:499 msgid "" "For more extensive information on the packer and the options that it can " "take, see the man pages and page 183 of John Ousterhout's book." msgstr "" +"Pour de plus amples informations sur l'empaqueteur et les options qu'il peut " +"prendre, voir les pages de manuel et la page 183 du livre de John Ousterhout." #: ../Doc/library/tkinter.rst:503 ../Doc/library/tkinter.rst:619 msgid "anchor" -msgstr "" +msgstr "*anchor*" #: ../Doc/library/tkinter.rst:503 msgid "" "Anchor type. Denotes where the packer is to place each slave in its parcel." msgstr "" +"Type d'ancrage. Indique l'endroit où l'empaqueteur doit placer chaque " +"enfant dans son espace." #: ../Doc/library/tkinter.rst:506 msgid "expand" -msgstr "" +msgstr "*expand*" #: ../Doc/library/tkinter.rst:506 msgid "Boolean, ``0`` or ``1``." -msgstr "" +msgstr "Booléen, ``0`` ou ``1``." #: ../Doc/library/tkinter.rst:509 msgid "fill" -msgstr "" +msgstr "*fill*" #: ../Doc/library/tkinter.rst:509 msgid "Legal values: ``'x'``, ``'y'``, ``'both'``, ``'none'``." -msgstr "" +msgstr "Valeurs acceptées : ``'x'``, ``'y'``, ``'both'``, ``'none'``." #: ../Doc/library/tkinter.rst:512 msgid "ipadx and ipady" -msgstr "" +msgstr "*ipadx* et *ipady*" #: ../Doc/library/tkinter.rst:512 msgid "" "A distance - designating internal padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart interne de chaque côté de l'objet graphique " +"hérité." #: ../Doc/library/tkinter.rst:515 msgid "padx and pady" -msgstr "" +msgstr "*padx* et *pady*" #: ../Doc/library/tkinter.rst:515 msgid "" "A distance - designating external padding on each side of the slave widget." msgstr "" +"Une distance — désignant l'écart externe de chaque côté de l'objet graphique " +"hérité." #: ../Doc/library/tkinter.rst:519 msgid "side" -msgstr "" +msgstr "*side*" #: ../Doc/library/tkinter.rst:518 msgid "Legal values are: ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." -msgstr "" +msgstr "Valeurs acceptées : ``'left'``, ``'right'``, ``'top'``, ``'bottom'``." #: ../Doc/library/tkinter.rst:522 msgid "Coupling Widget Variables" -msgstr "" +msgstr "Association des variables de l'objet graphique" #: ../Doc/library/tkinter.rst:524 msgid "" @@ -871,6 +1119,13 @@ msgid "" "reason, the widget it's connected to will be updated to reflect the new " "value." msgstr "" +"L'assignation d'une valeur à certains objets graphiques (comme les objets " +"graphique de saisie de texte) peut être liée directement aux variables de " +"votre application à l'aide d'options spéciales. Ces options sont " +"``variable``, ``textvariable``, ``onvalue``, ``offvalue`` et ``value``. Ce " +"lien fonctionne dans les deux sens : si la variable change pour une raison " +"ou pour une autre, l'objet graphique auquel elle est connectée est mis à " +"jour pour refléter la nouvelle valeur." #: ../Doc/library/tkinter.rst:530 msgid "" @@ -880,6 +1135,12 @@ msgid "" "which this works are variables that are subclassed from a class called " "Variable, defined in :mod:`tkinter`." msgstr "" +"Malheureusement, dans l'implémentation actuelle de :mod:`tkinter` il n'est " +"pas possible de passer une variable Python arbitraire à un objet graphique " +"via une option ``variable`` ou ``textvariable``. Les seuls types de " +"variables pour lesquels cela fonctionne sont les variables qui sont sous-" +"classées à partir d'une classe appelée `Variable`, définie dans :mod:" +"`tkinter`." #: ../Doc/library/tkinter.rst:536 msgid "" @@ -890,10 +1151,16 @@ msgid "" "this protocol, the widget will always track the value of the variable, with " "no further intervention on your part." msgstr "" +"Il existe de nombreuses sous-classes utiles de `Variable` déjà définies : :" +"class:`StringVar`, :class:`IntVar`, :class:`DoubleVar` et :class:" +"`BooleanVar`. Pour lire la valeur courante d'une telle variable, appelez la " +"méthode :meth:`get` dessus et, pour changer sa valeur, appelez la méthode :" +"meth:`!set`. Si vous suivez ce protocole, l'objet graphique suivra toujours " +"la valeur de la variable, sans autre intervention de votre part." #: ../Doc/library/tkinter.rst:572 msgid "The Window Manager" -msgstr "" +msgstr "Le gestionnaire de fenêtres" #: ../Doc/library/tkinter.rst:576 msgid "" @@ -904,6 +1171,13 @@ msgid "" "Toplevel widgets are subclassed from the :class:`Wm` class, and so can call " "the :class:`Wm` methods directly." msgstr "" +"Dans Tk, il y a une commande pratique, ``wm``, pour interagir avec le " +"gestionnaire de fenêtres. Les options de la commande ``wm`` vous permettent " +"de contrôler les titres, le placement, les icônes en mode *bitmap* et encore " +"d'autres choses du même genre. Dans :mod:`tkinter`, ces commandes ont été " +"implémentées en tant que méthodes sur la classe :class:`Wm`. Les objets " +"graphiques de haut niveau sont sous-classés à partir de la classe :class:" +"`Wm`, ils peuvent donc appeler directement les méthodes de :class:`Wm`." #: ../Doc/library/tkinter.rst:583 msgid "" @@ -915,14 +1189,23 @@ msgid "" "fact that this function is part of the implementation, and not an interface " "to Tk functionality." msgstr "" +"Pour accéder à la fenêtre du plus haut niveau qui contient un objet " +"graphique donné, vous pouvez souvent simplement vous référer au parent de " +"cet objet graphique. Bien sûr, si l'objet graphique a été empaqueté à " +"l'intérieur d'un cadre, le parent ne représentera pas la fenêtre de plus " +"haut niveau. Pour accéder à la fenêtre du plus haut niveau qui contient un " +"objet graphique arbitraire, vous pouvez appeler la méthode :meth:`_root`. " +"Cette méthode commence par un soulignement pour indiquer que cette fonction " +"fait partie de l'implémentation, et non d'une interface avec la " +"fonctionnalité Tk." #: ../Doc/library/tkinter.rst:590 msgid "Here are some examples of typical usage::" -msgstr "" +msgstr "Voici quelques exemples d'utilisation courante ::" #: ../Doc/library/tkinter.rst:613 msgid "Tk Option Data Types" -msgstr "" +msgstr "Types de données des options Tk" #: ../Doc/library/tkinter.rst:618 msgid "" @@ -930,10 +1213,13 @@ msgid "" "\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center" "\"``." msgstr "" +"Les valeurs acceptées sont des points cardinaux : ``« n »``, ``« ne »``, ``« " +"e »``, ``« se »``, ``« s »``, ``« sw »``, ``« w »``, ``« nw »`` et ``« " +"center »``." #: ../Doc/library/tkinter.rst:625 msgid "bitmap" -msgstr "" +msgstr "*bitmap*" #: ../Doc/library/tkinter.rst:622 msgid "" @@ -942,26 +1228,34 @@ msgid "" "``'warning'``. To specify an X bitmap filename, give the full path to the " "file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "" +"Il y a huit bitmaps intégrés nommés : ``« error »``, ``« gray25 »``, ``« " +"gray50 »``, ``« hourglass »``, ``« info »``, ``« questhead »``, ``« question " +"»``, ``« warning »'``. Pour spécifier un nom de fichier bitmap X, indiquez " +"le chemin complet du fichier, précédé de ``@``, comme dans ``\"@/usr/contrib/" +"bitmap/gumby.bit\"``." #: ../Doc/library/tkinter.rst:628 msgid "boolean" -msgstr "" +msgstr "*boolean*" #: ../Doc/library/tkinter.rst:628 msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." msgstr "" +"Vous pouvez lui donner les entiers 0 ou 1 ou les chaînes de caractères ``" +"\"yes\"`` ou ``\"no\"``." #: ../Doc/library/tkinter.rst:635 msgid "callback" -msgstr "" +msgstr "*callback*" #: ../Doc/library/tkinter.rst:631 msgid "This is any Python function that takes no arguments. For example::" msgstr "" +"N'importe quelle fonction Python qui ne prend pas d'argument. Par exemple ::" #: ../Doc/library/tkinter.rst:641 msgid "color" -msgstr "" +msgstr "*color*" #: ../Doc/library/tkinter.rst:638 msgid "" @@ -971,10 +1265,16 @@ msgid "" "where R,G,B here represent any legal hex digit. See page 160 of " "Ousterhout's book for details." msgstr "" +"Les couleurs peuvent être données sous forme de noms de couleurs Xorg dans " +"le fichier *rgb.txt*, ou sous forme de chaînes représentant les valeurs RVB " +"en 4 bits : ``« #RGB »``, 8 bits : ``« #RRVVBB »``, 12 bits``« #RRRVVVBBB " +"»``, ou 16 bits ``« #RRRRVVVVBBBB »``, où R,V,B représente ici tout chiffre " +"hexadécimal valide. Voir page 160 du livre d'Ousterhout pour plus de " +"détails." #: ../Doc/library/tkinter.rst:647 msgid "cursor" -msgstr "" +msgstr "*cursor*" #: ../Doc/library/tkinter.rst:644 msgid "" @@ -983,10 +1283,15 @@ msgid "" "use the string ``\"hand2\"``. You can also specify a bitmap and mask file " "of your own. See page 179 of Ousterhout's book." msgstr "" +"Les noms de curseurs Xorg standard que l'on trouve dans :file:`cursorfont.h` " +"peuvent être utilisés, sans le préfixe ``XC_``. Par exemple pour obtenir un " +"curseur en forme de main (:const:`XC_hand2`), utilisez la chaîne ``« hand2 " +"»``. Vous pouvez également spécifier votre propre bitmap et fichier masque. " +"Voir page 179 du livre d'Ousterhout." #: ../Doc/library/tkinter.rst:654 msgid "distance" -msgstr "" +msgstr "*distance*" #: ../Doc/library/tkinter.rst:650 msgid "" @@ -996,10 +1301,16 @@ msgid "" "``m`` for millimetres, ``p`` for printer's points. For example, 3.5 inches " "is expressed as ``\"3.5i\"``." msgstr "" +"Les distances à l'écran peuvent être spécifiées en pixels ou en distances " +"absolues. Les pixels sont donnés sous forme de nombres et les distances " +"absolues sous forme de chaînes de caractères, le dernier caractère indiquant " +"les unités : ``c`` pour les centimètres, ``i`` pour les pouces (*inches* en " +"anglais), ``m`` pour les millimètres, ``p`` pour les points d'impression. " +"Par exemple, 3,5 pouces est noté ``« 3.5i »``." #: ../Doc/library/tkinter.rst:659 msgid "font" -msgstr "" +msgstr "*font*" #: ../Doc/library/tkinter.rst:657 msgid "" @@ -1007,10 +1318,14 @@ msgid "" "with positive numbers are measured in points; sizes with negative numbers " "are measured in pixels." msgstr "" +"*Tk* utilise un format de nom de police sous forme de liste, tel que " +"``{courier 10 bold}``. Les tailles de polices avec des nombres positifs sont " +"mesurées en points ; les tailles avec des nombres négatifs sont mesurées en " +"pixels." #: ../Doc/library/tkinter.rst:664 msgid "geometry" -msgstr "" +msgstr "*geometry*" #: ../Doc/library/tkinter.rst:662 msgid "" @@ -1018,20 +1333,26 @@ msgid "" "measured in pixels for most widgets (in characters for widgets displaying " "text). For example: ``fred[\"geometry\"] = \"200x100\"``." msgstr "" +"Il s'agit d'une chaîne de caractères de la forme ``largeurxhauteur``, où la " +"largeur et la hauteur sont mesurées en pixels pour la plupart des objets " +"graphiques (en caractères pour les objets graphiques affichant du texte). " +"Par exemple : ``fred[\"geometry\"] = \"200x100\"``." #: ../Doc/library/tkinter.rst:668 msgid "justify" -msgstr "" +msgstr "*justify*" #: ../Doc/library/tkinter.rst:667 msgid "" "Legal values are the strings: ``\"left\"``, ``\"center\"``, ``\"right\"``, " "and ``\"fill\"``." msgstr "" +"Les valeurs acceptées sont les chaînes de caractères : `« left »``, ``« " +"center »``, ``« right »`` et ``« fill »``." #: ../Doc/library/tkinter.rst:673 msgid "region" -msgstr "" +msgstr "*region*" #: ../Doc/library/tkinter.rst:671 msgid "" @@ -1039,10 +1360,14 @@ msgid "" "legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i " "2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgstr "" +"c'est une chaîne de caractères avec quatre éléments séparés par des espaces, " +"chacun d'eux étant une distance valide (voir ci-dessus). Par exemple : ``" +"\"2 3 4 5\"``et ``\" 3i 2i 4.5i 2i\"``et ``\"3c 2c 4c 10.43c\"`` sont toutes " +"des régions valides." #: ../Doc/library/tkinter.rst:677 msgid "relief" -msgstr "" +msgstr "*relief*" #: ../Doc/library/tkinter.rst:676 msgid "" @@ -1050,28 +1375,34 @@ msgid "" "\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, and ``\"ridge" "\"``." msgstr "" +"Détermine le style de bordure d'un objet graphique. Les valeurs valides " +"sont : ``\"raised\"``, ``\"sunken\"``, ``\"flat\"``, ``\"groove\"``, et ``" +"\"ridge\"``." #: ../Doc/library/tkinter.rst:681 msgid "scrollcommand" -msgstr "" +msgstr "*scrollcommand*" #: ../Doc/library/tkinter.rst:680 msgid "" "This is almost always the :meth:`!set` method of some scrollbar widget, but " "can be any widget method that takes a single argument." msgstr "" +"C'est presque toujours la méthode :meth:`!set` d'un objet graphique de " +"défilement, mais peut être n'importe quelle méthode d'objet graphique qui " +"prend un seul argument." #: ../Doc/library/tkinter.rst:685 msgid "wrap:" -msgstr "" +msgstr "*wrap*" #: ../Doc/library/tkinter.rst:684 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." -msgstr "" +msgstr "Doit être l'un d'eux : ``\"none\"``, ``\"char\"``, ou ``\"word\"``." #: ../Doc/library/tkinter.rst:688 msgid "Bindings and Events" -msgstr "" +msgstr "Liaisons et événements" #: ../Doc/library/tkinter.rst:694 msgid "" @@ -1079,24 +1410,31 @@ msgid "" "events and to have a callback function trigger when that event type occurs. " "The form of the bind method is::" msgstr "" +"La méthode `bind` de la commande d'objet graphique vous permet de surveiller " +"certains événements et d'avoir un déclencheur de fonction de rappel lorsque " +"ce type d'événement se produit. La forme de la méthode de liaison est la " +"suivante ::" #: ../Doc/library/tkinter.rst:700 msgid "where:" -msgstr "" +msgstr "où :" #: ../Doc/library/tkinter.rst:704 msgid "sequence" -msgstr "séquence" +msgstr "*sequence*" #: ../Doc/library/tkinter.rst:703 msgid "" "is a string that denotes the target kind of event. (See the bind man page " "and page 201 of John Ousterhout's book for details)." msgstr "" +"est une chaîne de caractères qui indique le type d'événement cible. (Voir " +"la page du manuel de *bind* et la page 201 du livre de John Ousterhout pour " +"plus de détails)." #: ../Doc/library/tkinter.rst:709 msgid "func" -msgstr "func" +msgstr "*func*" #: ../Doc/library/tkinter.rst:707 msgid "" @@ -1104,10 +1442,14 @@ msgid "" "occurs. An Event instance will be passed as the argument. (Functions " "deployed this way are commonly known as *callbacks*.)" msgstr "" +"est une fonction Python, prenant un argument, à invoquer lorsque l'événement " +"se produit. Une instance d’évènement sera passée en argument. (Les fonctions " +"déployées de cette façon sont communément appelées *callbacks* ou « " +"fonctions de rappel » en français)." #: ../Doc/library/tkinter.rst:715 msgid "add" -msgstr "" +msgstr "*add*" #: ../Doc/library/tkinter.rst:712 msgid "" @@ -1116,6 +1458,10 @@ msgid "" "with. Passing a ``'+'`` means that this function is to be added to the list " "of functions bound to this event type." msgstr "" +"est facultative, soit ``''`` ou ``'+'``. L'envoi d'une chaîne de caractères " +"vide indique que cette liaison doit remplacer toute autre liaison à laquelle " +"cet événement est associé. L'envoi de``«+»`` signifie que cette fonction " +"doit être ajoutée à la liste des fonctions liées à ce type d'événement." #: ../Doc/library/tkinter.rst:724 msgid "" @@ -1125,6 +1471,12 @@ msgid "" "how they are denoted in Tk, which can be useful when referring to the Tk man " "pages." msgstr "" +"Remarquez comment on accède au champ *objet graphique* de l'événement dans " +"la fonction de rappel ``turn_red()``. Ce champ contient l'objet graphique " +"qui a capturé l'événement Xorg. Le tableau suivant répertorie les autres " +"champs d'événements auxquels vous pouvez accéder, et comment ils sont nommés " +"dans Tk, ce qui peut être utile lorsque vous vous référez aux pages de " +"manuel Tk." #: ../Doc/library/tkinter.rst:730 msgid "Tk" @@ -1132,7 +1484,7 @@ msgstr "Tk" #: ../Doc/library/tkinter.rst:730 msgid "Tkinter Event Field" -msgstr "" +msgstr "Champ *évènement* de Tkinter" #: ../Doc/library/tkinter.rst:732 msgid "%f" @@ -1156,7 +1508,7 @@ msgstr "%h" #: ../Doc/library/tkinter.rst:734 msgid "height" -msgstr "height" +msgstr "hauteur" #: ../Doc/library/tkinter.rst:734 msgid "%E" @@ -1264,7 +1616,7 @@ msgstr "y_root" #: ../Doc/library/tkinter.rst:751 msgid "The index Parameter" -msgstr "" +msgstr "Le paramètre index" #: ../Doc/library/tkinter.rst:753 msgid "" @@ -1272,10 +1624,16 @@ msgid "" "used to point at a specific place in a Text widget, or to particular " "characters in an Entry widget, or to particular menu items in a Menu widget." msgstr "" +"Un certain nombre d'objets graphiques nécessitent le passage de paramètres « " +"indicés ». Ils sont utilisés pour pointer vers un endroit spécifique dans " +"un objet graphique de type *Texte*, ou vers des caractères particuliers dans " +"un objet graphique de type *Entrée*, ou vers des éléments de menu " +"particuliers dans un objet graphique de type *Menu*." #: ../Doc/library/tkinter.rst:760 msgid "Entry widget indexes (index, view index, etc.)" msgstr "" +"Index des objets graphique de type *Entrée* (``index``, ``view index``, etc.)" #: ../Doc/library/tkinter.rst:758 msgid "" @@ -1283,54 +1641,74 @@ msgid "" "being displayed. You can use these :mod:`tkinter` functions to access these " "special points in text widgets:" msgstr "" +"Les objets graphiques de type *Entrée* ont des options qui se réfèrent à la " +"position des caractères dans le texte affiché. Vous pouvez utiliser ces " +"fonctions :mod:`tkinter` pour accéder à ces points spéciaux dans les objets " +"graphiques texte :" #: ../Doc/library/tkinter.rst:764 msgid "Text widget indexes" -msgstr "" +msgstr "Index des objets graphiques texte" #: ../Doc/library/tkinter.rst:763 msgid "" "The index notation for Text widgets is very rich and is best described in " "the Tk man pages." msgstr "" +"La notation de l'index des objets graphiques de type *Texte* est très riche " +"et mieux décrite dans les pages du manuel Tk." #: ../Doc/library/tkinter.rst:789 msgid "Menu indexes (menu.invoke(), menu.entryconfig(), etc.)" -msgstr "" +msgstr "Index menu (`menu.invoke()`, `menu.entryconfig()`, etc.)" #: ../Doc/library/tkinter.rst:767 msgid "" "Some options and methods for menus manipulate specific menu entries. Anytime " "a menu index is needed for an option or a parameter, you may pass in:" msgstr "" +"Certaines options et méthodes pour manipuler les menus nécessitent des " +"éléments de spécifiques. Chaque fois qu'un index de menu est nécessaire pour " +"une option ou un paramètre, vous pouvez utiliser :" #: ../Doc/library/tkinter.rst:770 msgid "" "an integer which refers to the numeric position of the entry in the widget, " "counted from the top, starting with 0;" msgstr "" +"un entier qui fait référence à la position numérique de l'entrée dans " +"l'objet graphique, comptée à partir du haut, en commençant par 0 ;" #: ../Doc/library/tkinter.rst:773 msgid "" "the string ``\"active\"``, which refers to the menu position that is " "currently under the cursor;" msgstr "" +"la chaîne de caractères ``\"active\"``, qui fait référence à la position du " +"menu qui se trouve actuellement sous le curseur ;" #: ../Doc/library/tkinter.rst:776 msgid "the string ``\"last\"`` which refers to the last menu item;" msgstr "" +"la chaîne de caractères ``\"last\"`` qui fait référence au dernier élément " +"du menu ;" #: ../Doc/library/tkinter.rst:778 msgid "" "An integer preceded by ``@``, as in ``@6``, where the integer is interpreted " "as a y pixel coordinate in the menu's coordinate system;" msgstr "" +"un entier précédé de ``@``, comme dans ``@6``, où l'entier est interprété " +"comme une coordonnée y de pixels dans le système de coordonnées du menu ;" #: ../Doc/library/tkinter.rst:781 msgid "" "the string ``\"none\"``, which indicates no menu entry at all, most often " "used with menu.activate() to deactivate all entries, and finally," msgstr "" +"la chaîne de caractères ``\"none\"``, qui n'indique aucune entrée du menu, " +"le plus souvent utilisée avec ``menu.activate()`` pour désactiver toutes les " +"entrées, et enfin," #: ../Doc/library/tkinter.rst:784 msgid "" @@ -1340,32 +1718,43 @@ msgid "" "items labelled ``last``, ``active``, or ``none`` may be interpreted as the " "above literals, instead." msgstr "" +"une chaîne de texte dont le motif correspond à l'étiquette de l'entrée de " +"menu, telle qu'elle est balayée du haut vers le bas du menu. Notez que ce " +"type d'index est considéré après tous les autres, ce qui signifie que les " +"correspondances pour les éléments de menu étiquetés ``last``, ``active`` ou " +"``none`` peuvent être interprétés comme les littéraux ci-dessus, plutôt." #: ../Doc/library/tkinter.rst:792 msgid "Images" -msgstr "" +msgstr "Images" #: ../Doc/library/tkinter.rst:794 msgid "" "Images of different formats can be created through the corresponding " "subclass of :class:`tkinter.Image`:" msgstr "" +"Des images de différents formats peuvent être créées à travers la sous-" +"classe correspondante de :class:`tkinter.Image` :" #: ../Doc/library/tkinter.rst:797 msgid ":class:`BitmapImage` for images in XBM format." -msgstr "" +msgstr ":class:`BitmapImage` pour les images au format *XBM*." #: ../Doc/library/tkinter.rst:799 msgid "" ":class:`PhotoImage` for images in PGM, PPM, GIF and PNG formats. The latter " "is supported starting with Tk 8.6." msgstr "" +":class:`PhotoImage` pour les images aux formats *PGM*, *PPM*, *GIF* et " +"*PNG*. Ce dernier est géré à partir de Tk 8.6." #: ../Doc/library/tkinter.rst:802 msgid "" "Either type of image is created through either the ``file`` or the ``data`` " "option (other options are available as well)." msgstr "" +"L'un ou l'autre type d'image est créé par l'option ``file`` ou ``data`` " +"(d'autres options sont également disponibles)." #: ../Doc/library/tkinter.rst:805 msgid "" @@ -1375,16 +1764,24 @@ msgid "" "object is deleted, the image data is deleted as well, and Tk will display an " "empty box wherever the image was used." msgstr "" +"L'objet image peut alors être utilisé partout où un objet graphique sait " +"gérer une option ``image`` (par ex. étiquettes, boutons, menus). Dans ces " +"cas, Tk ne conserve pas de référence à l'image. Lorsque la dernière " +"référence Python à l'objet image est supprimée, les données de l'image sont " +"également supprimées, et Tk affiche une boite vide à l'endroit où l'image " +"était utilisée." #: ../Doc/library/tkinter.rst:813 msgid "" "The `Pillow `_ package adds support for formats " "such as BMP, JPEG, TIFF, and WebP, among others." msgstr "" +"Le paquet `Pillow `_ ajoute la prise en charge de " +"formats tels que *BMP*, *JPEG*, *TIFF* et *WebP*, entre autres." #: ../Doc/library/tkinter.rst:819 msgid "File Handlers" -msgstr "" +msgstr "Gestionnaires de fichiers" #: ../Doc/library/tkinter.rst:821 msgid "" @@ -1392,10 +1789,14 @@ msgid "" "called from the Tk mainloop when I/O is possible on a file descriptor. Only " "one handler may be registered per file descriptor. Example code::" msgstr "" +"*Tk* vous permet d'enregistrer et de *désenregistrer* une fonction de rappel " +"qui est appelée depuis la boucle principale de Tk lorsque des entrées-" +"sorties sont possibles sur un descripteur de fichier. Un seul gestionnaire " +"peut être enregistré par descripteur de fichier. Exemple de code ::" #: ../Doc/library/tkinter.rst:832 msgid "This feature is not available on Windows." -msgstr "" +msgstr "Cette fonction n'est pas disponible sous Windows." #: ../Doc/library/tkinter.rst:834 msgid "" @@ -1407,6 +1808,14 @@ msgid "" "work fine; for other files, use raw reads or ``os.read(file.fileno(), " "maxbytecount)``." msgstr "" +"Dans la mesure où vous ne savez pas combien d'octets sont disponibles en " +"lecture, il ne faut pas utiliser les méthodes :class:`~io.BufferedIOBase` " +"ou :class:`~io.TextIOBase` :meth:`~io.BufferedIOBase.read` ou :meth:`~io." +"IOBase.readline`, car elles requièrent d'indiquer le nombre de *bytes* à " +"lire. Pour les connecteurs, les méthodes :meth:`~socket.socket.socket.recv` " +"ou :meth:`~socket.socket.recvfrom` fonctionnent bien ; pour les autres " +"fichiers, utilisez des lectures brutes ou ``os.read(file.fileno(), " +"maxbytecount)``." #: ../Doc/library/tkinter.rst:845 msgid "" @@ -1416,11 +1825,17 @@ msgid "" "ORed combination of any of the three constants below. The callback is called " "as follows::" msgstr "" +"Enregistre la fonction de rappel du gestionnaire de fichiers *func*. " +"L'argument ``file`` peut être soit un objet avec une méthode :meth:`~io." +"IOBase.fileno` (comme un objet fichier ou connecteur), soit un descripteur " +"de fichier de type entier. L'argument ``mask`` est une combinaison *OU* de " +"l'une des trois constantes ci-dessous. La fonction de rappel s'utilise comme " +"suit ::" #: ../Doc/library/tkinter.rst:856 msgid "Unregisters a file handler." -msgstr "" +msgstr "Désenregistre un gestionnaire de fichiers." #: ../Doc/library/tkinter.rst:863 msgid "Constants used in the *mask* arguments." -msgstr "" +msgstr "Constantes utilisées dans les arguments ``mask``." diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index b4ff8d759..7b36224f1 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -180,7 +180,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:121 msgid "cursor" -msgstr "" +msgstr "*cursor*" #: ../Doc/library/tkinter.ttk.rst:121 msgid "" @@ -541,7 +541,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:325 msgid "justify" -msgstr "" +msgstr "*justify*" #: ../Doc/library/tkinter.ttk.rst:325 msgid "" @@ -699,7 +699,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:430 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/library/tkinter.ttk.rst:430 msgid "" @@ -1028,7 +1028,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\"." @@ -1359,7 +1359,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:895 msgid "font" -msgstr "" +msgstr "*font*" #: ../Doc/library/tkinter.ttk.rst:895 msgid "Specifies the font to use when drawing text." @@ -1663,7 +1663,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1083 msgid "region" -msgstr "" +msgstr "*region*" #: ../Doc/library/tkinter.ttk.rst:1083 msgid "meaning" @@ -1687,7 +1687,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:1089 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/tkinter.ttk.rst:1089 msgid "The tree area." diff --git a/library/tokenize.po b/library/tokenize.po index 8732705a6..b5bf3f956 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -297,7 +297,7 @@ msgid "" "objects::" msgstr "" "Exemple d'un script qui transforme les littéraux de type *float* en type " -"*Decimal* ::" +"*Decimal* ::" #: ../Doc/library/tokenize.rst:210 msgid "Example of tokenizing from the command line. The script::" diff --git a/library/turtle.po b/library/turtle.po index c8f13de78..1074040b5 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -286,7 +286,7 @@ msgstr ":func:`speed`" #: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:623 msgid "Tell Turtle's state" -msgstr "" +msgstr "Connaître l'état de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`position` | :func:`pos`" @@ -314,7 +314,7 @@ msgstr ":func:`distance`" #: ../Doc/library/turtle.rst:132 msgid "Setting and measurement" -msgstr "" +msgstr "Paramétrage et mesure" #: ../Doc/library/turtle.rst:0 msgid ":func:`degrees`" @@ -326,11 +326,11 @@ msgstr ":func:`radians`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:765 msgid "Pen control" -msgstr "" +msgstr "Réglage des pinceaux" #: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:768 msgid "Drawing state" -msgstr "" +msgstr "État des pinceaux" #: ../Doc/library/turtle.rst:0 msgid ":func:`pendown` | :func:`pd` | :func:`down`" @@ -354,7 +354,7 @@ msgstr ":func:`isdown`" #: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:857 msgid "Color control" -msgstr "" +msgstr "Réglage des couleurs" #: ../Doc/library/turtle.rst:0 msgid ":func:`color`" @@ -370,7 +370,7 @@ msgstr ":func:`fillcolor`" #: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:986 msgid "Filling" -msgstr "" +msgstr "Remplissage" #: ../Doc/library/turtle.rst:0 msgid ":func:`filling`" @@ -386,7 +386,7 @@ msgstr ":func:`end_fill`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1025 msgid "More drawing control" -msgstr "" +msgstr "Plus des réglages pour le dessin" #: ../Doc/library/turtle.rst:0 msgid ":func:`reset`" @@ -402,11 +402,11 @@ msgstr ":func:`write`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1070 msgid "Turtle state" -msgstr "" +msgstr "État de la tortue" #: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1073 msgid "Visibility" -msgstr "" +msgstr "Visibilité" #: ../Doc/library/turtle.rst:0 msgid ":func:`showturtle` | :func:`st`" @@ -422,7 +422,7 @@ msgstr ":func:`isvisible`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1110 msgid "Appearance" -msgstr "" +msgstr "Apparence" #: ../Doc/library/turtle.rst:0 msgid ":func:`shape`" @@ -462,7 +462,7 @@ msgstr ":func:`get_shapepoly`" #: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1306 msgid "Using events" -msgstr "" +msgstr "Utilisation des événements" #: ../Doc/library/turtle.rst:0 ../Doc/library/turtle.rst:2342 msgid ":func:`onclick`" @@ -478,7 +478,7 @@ msgstr ":func:`ondrag`" #: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1376 msgid "Special Turtle methods" -msgstr "" +msgstr "Méthodes spéciales de la tortue" #: ../Doc/library/turtle.rst:0 msgid ":func:`begin_poly`" @@ -514,11 +514,11 @@ msgstr ":func:`undobufferentries`" #: ../Doc/library/turtle.rst:191 msgid "Methods of TurtleScreen/Screen" -msgstr "" +msgstr "Méthodes de *TurtleScreen*/*Screen*" #: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1521 msgid "Window control" -msgstr "" +msgstr "Réglage de la fenêtre" #: ../Doc/library/turtle.rst:0 msgid ":func:`bgcolor`" @@ -546,7 +546,7 @@ msgstr ":func:`setworldcoordinates`" #: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1635 msgid "Animation control" -msgstr "" +msgstr "Réglage de l'animation" #: ../Doc/library/turtle.rst:0 msgid ":func:`delay`" @@ -562,7 +562,7 @@ msgstr ":func:`update`" #: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1686 msgid "Using screen events" -msgstr "" +msgstr "Utilisation des événements concernant l'écran" #: ../Doc/library/turtle.rst:0 msgid ":func:`listen`" @@ -590,11 +590,11 @@ msgstr ":func:`mainloop` | :func:`done`" #: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1827 msgid "Settings and special methods" -msgstr "" +msgstr "Paramétrages et méthodes spéciales" #: ../Doc/library/turtle.rst:0 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/turtle.rst:0 msgid ":func:`colormode`" @@ -626,7 +626,7 @@ msgstr ":func:`window_width`" #: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1791 msgid "Input methods" -msgstr "" +msgstr "Méthodes de saisie" #: ../Doc/library/turtle.rst:0 msgid ":func:`textinput`" @@ -638,7 +638,7 @@ msgstr ":func:`numinput`" #: ../Doc/library/turtle.rst:233 msgid "Methods specific to Screen" -msgstr "" +msgstr "Méthodes spécifiques de *Screen*" #: ../Doc/library/turtle.rst:0 msgid ":func:`bye`" @@ -658,41 +658,47 @@ msgstr ":func:`title`" #: ../Doc/library/turtle.rst:236 msgid "Methods of RawTurtle/Turtle and corresponding functions" -msgstr "" +msgstr "Méthodes de *RawTurtle*/*Turtle* et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:238 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." msgstr "" +"La plupart des exemples de cette section se réfèrent à une instance de " +"*Turtle* appelée ``turtle``." #: ../Doc/library/turtle.rst:0 msgid "Parameters" -msgstr "" +msgstr "Paramètres" #: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:290 #: ../Doc/library/turtle.rst:313 ../Doc/library/turtle.rst:369 #: ../Doc/library/turtle.rst:390 ../Doc/library/turtle.rst:411 msgid "a number (integer or float)" -msgstr "" +msgstr "un nombre (entier ou flottant)" #: ../Doc/library/turtle.rst:249 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" +"Avance la tortue de la *distance* spécifiée, dans la direction où elle se " +"dirige." #: ../Doc/library/turtle.rst:268 ../Doc/library/turtle.rst:458 #: ../Doc/library/turtle.rst:721 ../Doc/library/turtle.rst:1205 #: ../Doc/library/turtle.rst:1223 msgid "a number" -msgstr "" +msgstr "un nombre" #: ../Doc/library/turtle.rst:270 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" +"Déplace la tortue de *distance* vers l'arrière (dans le sens opposé à celui " +"vers lequel elle pointe). Ne change pas le cap de la tortue." #: ../Doc/library/turtle.rst:292 msgid "" @@ -700,6 +706,10 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à droite de *angle* unités (les unités sont par défaut des " +"degrés, mais peuvent être définies via les fonctions :func:`degrees` et :" +"func:`radians`). L'orientation de l'angle dépend du mode de la tortue, voir :" +"func:`mode`." #: ../Doc/library/turtle.rst:315 msgid "" @@ -707,96 +717,112 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Tourne la tortue à gauche d'une valeur de *angle* unités (les unités sont " +"par défaut des degrés, mais peuvent être définies via les fonctions :func:" +"`degrees` et :func:`radians`). L'orientation de l'angle dépend du mode de la " +"tortue, voir :func:`mode`." #: ../Doc/library/turtle.rst:337 msgid "a number or a pair/vector of numbers" -msgstr "" +msgstr "un nombre ou une paire / un vecteur de nombres" #: ../Doc/library/turtle.rst:338 msgid "a number or ``None``" -msgstr "" +msgstr "un nombre ou ``None``" #: ../Doc/library/turtle.rst:340 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." msgstr "" +"Si *y* est ``None``, *x* doit être une paire de coordonnées, ou bien une " +"instance de :class:`Vec2D` (par exemple, tel que renvoyé par :func:`pos`)." #: ../Doc/library/turtle.rst:343 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" +"Déplace la tortue vers une position absolue. Si le pinceau est en bas, trace " +"une ligne. Ne change pas l'orientation de la tortue." #: ../Doc/library/turtle.rst:371 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" +"Définit la première coordonnée de la tortue à *x*, en laissant la deuxième " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:392 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" +"Définit la deuxième coordonnée de la tortue à *y*, en laissant la première " +"coordonnée inchangée." #: ../Doc/library/turtle.rst:413 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" +"Règle l'orientation de la tortue à la valeur `to_angle`. Voici quelques " +"orientations courantes en degrés :" #: ../Doc/library/turtle.rst:417 msgid "standard mode" -msgstr "" +msgstr "mode standard" #: ../Doc/library/turtle.rst:417 msgid "logo mode" -msgstr "" +msgstr "mode logo" #: ../Doc/library/turtle.rst:419 msgid "0 - east" -msgstr "" +msgstr "0 – Est" #: ../Doc/library/turtle.rst:419 msgid "0 - north" -msgstr "" +msgstr "0 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - north" -msgstr "" +msgstr "90 – Nord" #: ../Doc/library/turtle.rst:420 msgid "90 - east" -msgstr "" +msgstr "90 – Est" #: ../Doc/library/turtle.rst:421 msgid "180 - west" -msgstr "" +msgstr "180 – Ouest" #: ../Doc/library/turtle.rst:421 msgid "180 - south" -msgstr "" +msgstr "180 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - south" -msgstr "" +msgstr "270 – Sud" #: ../Doc/library/turtle.rst:422 msgid "270 - west" -msgstr "" +msgstr "270 – Ouest" #: ../Doc/library/turtle.rst:434 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" +"Déplace la tortue à l'origine — coordonnées (0,0) — et l'oriente à son cap " +"initial (qui dépend du mode, voir :func:`mode`)." #: ../Doc/library/turtle.rst:459 msgid "a number (or ``None``)" -msgstr "" +msgstr "un nombre (ou ``None``)" #: ../Doc/library/turtle.rst:460 ../Doc/library/turtle.rst:550 msgid "an integer (or ``None``)" -msgstr "" +msgstr "un entier (ou ``None``)" #: ../Doc/library/turtle.rst:462 msgid "" @@ -808,6 +834,15 @@ msgid "" "otherwise in clockwise direction. Finally the direction of the turtle is " "changed by the amount of *extent*." msgstr "" +"Dessine un cercle de rayon `radius`. Le centre se trouve à une distance de " +"`radius` à gauche de la tortue ; l'angle `extent` détermine quelle partie du " +"cercle est dessinée. Si `extent` n'est pas fourni, dessine le cercle en " +"entier. Si `extent` ne correspond pas à un cercle entier, la position " +"actuelle du stylo est donnée par l'un des points d'extrémité de l'arc de " +"cercle. Si la valeur de `radius` est positive, dessine l'arc de cercle dans " +"le sens inverse des aiguilles d'une montre, sinon le dessine dans le sens " +"des aiguilles d'une montre. Enfin, la direction de la tortue peut être " +"modifiée en réglant la valeur de `extent`." #: ../Doc/library/turtle.rst:470 msgid "" @@ -815,20 +850,27 @@ msgid "" "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" +"Comme le cercle est approximé par un polygone régulier inscrit, `steps` " +"détermine le nombre de pas à utiliser. Si cette valeur n'est pas donnée, " +"elle sera calculée automatiquement. Elle peut être utilisée pour dessiner " +"des polygones réguliers." #: ../Doc/library/turtle.rst:495 msgid "an integer >= 1 (if given)" -msgstr "" +msgstr "un entier supérieur ou égal à 1 (si fourni)" #: ../Doc/library/turtle.rst:496 msgid "a colorstring or a numeric color tuple" -msgstr "" +msgstr "une chaîne qui désigne une couleur ou un n-uplet de couleur numérique" #: ../Doc/library/turtle.rst:498 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." msgstr "" +"Dessine un point circulaire de diamètre `size`, de la couleur `color`. Si le " +"paramètre `size` n'est pas indiqué, utilise la valeur maximum de la taille " +"du pinceau plus 4 et de la taille du pinceau multiplié par 2." #: ../Doc/library/turtle.rst:515 msgid "" @@ -836,14 +878,19 @@ msgid "" "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" +"Tamponne une copie de la forme de la tortue sur le canevas à la position " +"actuelle de la tortue. Renvoie un *stamp_id* pour ce tampon, qui peut être " +"utilisé pour le supprimer en appelant ``clearstamp(stamp_id)``." #: ../Doc/library/turtle.rst:529 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" +"un entier, doit être la valeur renvoyée par l'appel précédent de :func:" +"`stamp`" #: ../Doc/library/turtle.rst:532 msgid "Delete stamp with given *stampid*." -msgstr "" +msgstr "Supprime le tampon dont le *stampid* est donné." #: ../Doc/library/turtle.rst:552 msgid "" @@ -851,73 +898,94 @@ msgid "" "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " "*n* stamps." msgstr "" +"Supprime tous, les *n* premiers ou les *n* derniers tampons de la tortue. Si " +"*n* est ``None``, supprime tous les tampons, si *n* > 0, supprime les *n* " +"premiers tampons et si n < 0, supprime les *n* derniers tampons." #: ../Doc/library/turtle.rst:575 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" +"Annule la ou les dernières (si répété) actions de la tortue. Le nombre " +"d'annulations disponible est déterminé par la taille de la mémoire tampon " +"d'annulations." #: ../Doc/library/turtle.rst:589 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "" +"un nombre entier compris dans l’intervalle entre 0 et 10 inclus, ou une " +"chaîne de vitesse (voir ci-dessous)" #: ../Doc/library/turtle.rst:591 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" +"Règle la vitesse de la tortue à une valeur entière comprise entre 0 et 10 " +"inclus. Si aucun argument n'est donné, renvoie la vitesse actuelle." #: ../Doc/library/turtle.rst:594 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" msgstr "" +"Si l'entrée est un nombre supérieur à 10 ou inférieur à 0,5, la vitesse est " +"fixée à 0. Les chaînes de vitesse sont mises en correspondance avec les " +"valeurs de vitesse comme suit :" #: ../Doc/library/turtle.rst:597 msgid "\"fastest\": 0" -msgstr "" +msgstr "« le plus rapide » : 0" #: ../Doc/library/turtle.rst:598 msgid "\"fast\": 10" -msgstr "" +msgstr "« rapide » : 10" #: ../Doc/library/turtle.rst:599 msgid "\"normal\": 6" -msgstr "" +msgstr "« vitesse normale » : 6" #: ../Doc/library/turtle.rst:600 msgid "\"slow\": 3" -msgstr "" +msgstr "« lent » : 3" #: ../Doc/library/turtle.rst:601 msgid "\"slowest\": 1" -msgstr "" +msgstr "« le plus lent » : 1" #: ../Doc/library/turtle.rst:603 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" +"Les vitesses de 1 à 10 permettent une animation de plus en plus rapide du " +"trait du dessin et de la rotation des tortues." #: ../Doc/library/turtle.rst:606 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." msgstr "" +"Attention : *speed* = 0 signifie qu'il n'y a *aucune* animation. *forward*/" +"*back* font sauter la tortue et, de même, *left*/*right* font tourner la " +"tortue instantanément." #: ../Doc/library/turtle.rst:628 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" +"Renvoie la position actuelle de la tortue (x,y) (en tant qu'un vecteur :" +"class:`Vec2d`)." #: ../Doc/library/turtle.rst:638 ../Doc/library/turtle.rst:697 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "" +"un nombre, ou une paire / un vecteur de nombres, ou une instance de tortue" #: ../Doc/library/turtle.rst:639 ../Doc/library/turtle.rst:698 msgid "a number if *x* is a number, else ``None``" -msgstr "" +msgstr "un nombre si `x` est un nombre, sinon ``None``" #: ../Doc/library/turtle.rst:641 msgid "" @@ -929,51 +997,59 @@ msgstr "" #: ../Doc/library/turtle.rst:654 msgid "Return the turtle's x coordinate." -msgstr "" +msgstr "Renvoie la coordonnée x de la tortue." #: ../Doc/library/turtle.rst:669 msgid "Return the turtle's y coordinate." -msgstr "" +msgstr "Renvoie la coordonnée y de la tortue." #: ../Doc/library/turtle.rst:684 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" +"Renvoie le cap de la tortue (la valeur dépend du mode de la tortue, voir :" +"func:`mode`)." #: ../Doc/library/turtle.rst:700 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" +"Renvoie la distance entre la tortue et (x,y), le vecteur donné ou l'autre " +"tortue donnée. La valeur est exprimée en unités de pas de tortue." #: ../Doc/library/turtle.rst:717 msgid "Settings for measurement" -msgstr "" +msgstr "Paramètres de mesure" #: ../Doc/library/turtle.rst:723 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" +"Définit les unités de mesure des angles, c.-à-d. fixe le nombre de " +"« degrés » pour un cercle complet. La valeur par défaut est de 360 degrés." #: ../Doc/library/turtle.rst:745 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" +"Règle l'unité de mesure des angles sur radians. Équivalent à " +"``degrees(2*math.pi)``." #: ../Doc/library/turtle.rst:774 msgid "Pull the pen down -- drawing when moving." -msgstr "" +msgstr "Baisse la pointe du stylo — dessine quand il se déplace." #: ../Doc/library/turtle.rst:781 msgid "Pull the pen up -- no drawing when moving." -msgstr "" +msgstr "Lève la pointe du stylo — pas de dessin quand il se déplace." #: ../Doc/library/turtle.rst:787 msgid "a positive number" -msgstr "" +msgstr "un nombre positif" #: ../Doc/library/turtle.rst:789 msgid "" @@ -981,60 +1057,72 @@ msgid "" "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " "line thickness. If no argument is given, the current pensize is returned." msgstr "" +"Règle l'épaisseur de la ligne à *width* ou la renvoie. Si *resizemode* est " +"défini à \"auto\" et que *turtleshape* (la forme de la tortue) est un " +"polygone, le polygone est dessiné avec cette épaisseur. Si aucun argument " +"n'est passé, la taille actuelle du stylo (*pensize*) est renvoyée." #: ../Doc/library/turtle.rst:802 msgid "a dictionary with some or all of the below listed keys" -msgstr "" +msgstr "un dictionnaire avec certaines ou toutes les clés énumérées ci-dessous" #: ../Doc/library/turtle.rst:803 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" +"un ou plusieurs arguments par mots-clés avec les clés suivantes comme mots-" +"clés" #: ../Doc/library/turtle.rst:805 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" +"Renvoie ou définit les attributs du pinceau dans un `\"pen-dictionary\"` " +"avec les paires clés / valeurs suivantes :" #: ../Doc/library/turtle.rst:808 msgid "\"shown\": True/False" -msgstr "" +msgstr "`\"shown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:809 msgid "\"pendown\": True/False" -msgstr "" +msgstr "`\"pendown\"` : ``True`` / ``False``" #: ../Doc/library/turtle.rst:810 msgid "\"pencolor\": color-string or color-tuple" msgstr "" +"`\"pencolor\"` : chaîne de caractères ou n-uplet désignant la couleur du " +"pinceau" #: ../Doc/library/turtle.rst:811 msgid "\"fillcolor\": color-string or color-tuple" msgstr "" +"`\"fillcolor\"` : chaîne de caractères ou n-uplet pour la couleur de " +"remplissage" #: ../Doc/library/turtle.rst:812 msgid "\"pensize\": positive number" -msgstr "" +msgstr "`\"pensize\"` : nombre positif" #: ../Doc/library/turtle.rst:813 msgid "\"speed\": number in range 0..10" -msgstr "" +msgstr "`\"speed\"` : nombre compris dans intervalle 0 et 10" #: ../Doc/library/turtle.rst:814 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -msgstr "" +msgstr "`\"resizemode\"` : `\"auto\"`, `\"user\"` ou `\"noresize\"`" #: ../Doc/library/turtle.rst:815 msgid "\"stretchfactor\": (positive number, positive number)" -msgstr "" +msgstr "`\"stretchfactor\"` : (nombre positif, nombre positif)" #: ../Doc/library/turtle.rst:816 msgid "\"outline\": positive number" -msgstr "" +msgstr "`\"outline\"` : nombre positif" #: ../Doc/library/turtle.rst:817 msgid "\"tilt\": number" -msgstr "" +msgstr "`\"tilt\"` : nombre" #: ../Doc/library/turtle.rst:819 msgid "" @@ -1043,18 +1131,24 @@ msgid "" "can be provided as keyword-arguments. This can be used to set several pen " "attributes in one statement." msgstr "" +"Ce dictionnaire peut être utilisé comme argument pour un appel ultérieur à :" +"func:`pen` pour restaurer l'ancien état du stylo. En outre, un ou plus de " +"ces attributs peuvent est passés en tant qu'arguments nommés. Cela peut être " +"utilisé pour définir plusieurs attributs du stylo en une instruction." #: ../Doc/library/turtle.rst:844 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "" +"Renvoie ``True`` si la pointe du stylo est en bas et ``False`` si elle est " +"en haut." #: ../Doc/library/turtle.rst:861 msgid "Return or set the pencolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du pinceau" #: ../Doc/library/turtle.rst:863 ../Doc/library/turtle.rst:911 msgid "Four input formats are allowed:" -msgstr "" +msgstr "Quatre formats d'entrée sont autorisés :" #: ../Doc/library/turtle.rst:868 msgid "``pencolor()``" @@ -1065,6 +1159,9 @@ msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." msgstr "" +"Renvoie la couleur du stylo actuelle en tant que chaine de spécification de " +"couleurs ou en tant qu'un *n*-uplet (voir l'exemple). Peut être utilisée " +"comme entrée à un autre appel de *color*/*pencolor*/*fillcolor*." #: ../Doc/library/turtle.rst:872 msgid "``pencolor(colorstring)``" @@ -1075,6 +1172,9 @@ msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur du pinceau à `colorstring`, qui est une chaîne de " +"spécification de couleur *Tk*, telle que ``\"red\"``, ``\"yellow\"``, ou ``" +"\"#33cc8c\"``." #: ../Doc/library/turtle.rst:877 msgid "``pencolor((r, g, b))``" @@ -1086,6 +1186,9 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par le *n*-uplet de " +"*r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0.." +"colormode``, où *colormode* est vaut 1.0 ou 255 (voir :func:`colormode`)." #: ../Doc/library/turtle.rst:884 msgid "``pencolor(r, g, b)``" @@ -1096,16 +1199,20 @@ msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du stylo à la couleur RGB représentée par *r*, *g* et " +"*b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle ``0..colormode``." #: ../Doc/library/turtle.rst:883 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" +"Si la forme de la tortue est un polygone, le contour de ce polygone est " +"dessiné avec la nouvelle couleur du pinceau." #: ../Doc/library/turtle.rst:909 msgid "Return or set the fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur de remplissage" #: ../Doc/library/turtle.rst:916 msgid "``fillcolor()``" @@ -1117,6 +1224,10 @@ msgid "" "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor call." msgstr "" +"Renvoie la couleur de remplissage actuelle (*fillcolor*) en tant que chaine " +"de spécification, possiblement en format *n*-uplet (voir l'exemple). Peut " +"être utilisée en entrée pour un autre appel de *color*/*pencolor*/" +"*fillcolor*." #: ../Doc/library/turtle.rst:920 msgid "``fillcolor(colorstring)``" @@ -1127,6 +1238,9 @@ msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Définit la couleur de remplissage (*fillcolor*) à *colorstring*, qui est une " +"chaine de spécification de couleur *Tk* comme par exemple ``\"red\"``, ``" +"\"yellow\"`` ou ``\"#33cc8c\"``." #: ../Doc/library/turtle.rst:925 msgid "``fillcolor((r, g, b))``" @@ -1138,6 +1252,10 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Définit la couleur du remplissage (*fillcolor*) à la couleur RGB représentée " +"par le *n*-uplet *r*, *g*, *b*. Chacun des *r*, *g* et *b* doit être dans " +"l'intervalle ``0..colormode`` où *colormode* vaut 1.0 ou 255 (voir :func:" +"`colormode`)." #: ../Doc/library/turtle.rst:932 msgid "``fillcolor(r, g, b)``" @@ -1148,21 +1266,28 @@ msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Définit la couleur du remplissage(*fillcolor*) à la couleur RGB représentée " +"par *r*, *g* et *b*. Chacun des *r*, *g* et *b* doit être dans l'intervalle " +"``0..colormode``." #: ../Doc/library/turtle.rst:931 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" +"Si la forme de la tortue est un polygone, l'intérieur de ce polygone sera " +"dessiné avec la nouvelle couleur de remplissage." #: ../Doc/library/turtle.rst:951 msgid "Return or set pencolor and fillcolor." -msgstr "" +msgstr "Renvoie ou règle la couleur du pinceau et la couleur de remplissage." #: ../Doc/library/turtle.rst:953 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" +"Plusieurs formats d'entrée sont autorisés. Ils peuvent avoir de zéro jusqu'à " +"trois arguments, employés comme suit :" #: ../Doc/library/turtle.rst:959 msgid "``color()``" @@ -1174,55 +1299,69 @@ msgid "" "specification strings or tuples as returned by :func:`pencolor` and :func:" "`fillcolor`." msgstr "" +"Renvoie la couleur du stylo actuelle et la couleur de remplissage actuelle " +"sous forme de paire, soit de chaines de spécification de couleur, soit de " +"*n*-uplets comme renvoyés par :func:`pencolor` et :func:`fillcolor`." #: ../Doc/library/turtle.rst:963 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -msgstr "" +msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" #: ../Doc/library/turtle.rst:962 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" +"Les formats d'entrée sont comme dans :func:`pencolor`. Définit à la fois la " +"couleur de remplissage et la couleur du stylo à la valeur passée." #: ../Doc/library/turtle.rst:970 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" #: ../Doc/library/turtle.rst:966 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" +"Équivalent à ``pencolor(colorstring1)`` et ``fillcolor(colorstring2)`` et de " +"manière analogue si un autre format d'entrée est utilisé." #: ../Doc/library/turtle.rst:969 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" +"Si la forme de la tortue est un polygone, le contour et l'intérieur de ce " +"polygone sont dessinés avec les nouvelles couleurs." #: ../Doc/library/turtle.rst:982 msgid "See also: Screen method :func:`colormode`." -msgstr "" +msgstr "Voir aussi : la méthode :func:`colormode` de *Screen*." #: ../Doc/library/turtle.rst:995 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "" +"Renvoie l'état de remplissage (``True`` signifie en train de faire un " +"remplissage, ``False`` sinon)." #: ../Doc/library/turtle.rst:1009 msgid "To be called just before drawing a shape to be filled." -msgstr "" +msgstr "À appeler juste avant de dessiner une forme à remplir." #: ../Doc/library/turtle.rst:1014 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." -msgstr "" +msgstr "Remplit la forme dessinée après le dernier appel à :func:`begin_fill`." #: ../Doc/library/turtle.rst:1029 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" +"Supprime les dessins de la tortue de l'écran, recentre la tortue et assigne " +"les variables aux valeurs par défaut." #: ../Doc/library/turtle.rst:1049 msgid "" @@ -1230,22 +1369,27 @@ msgid "" "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" +"Supprime les dessins de la tortue de l'écran. Ne déplace pas la tortue. " +"L'état et la position de la tortue ainsi que les dessins des autres tortues " +"ne sont pas affectés." #: ../Doc/library/turtle.rst:1055 msgid "object to be written to the TurtleScreen" -msgstr "" +msgstr "objet à écrire sur le *TurtleScreen*" #: ../Doc/library/turtle.rst:1056 msgid "True/False" -msgstr "" +msgstr "``True`` / ``False``" #: ../Doc/library/turtle.rst:1057 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "" +"l'une des chaînes de caractères suivantes : `\"left\"`, `\"center\"` ou `" +"\"right\"`" #: ../Doc/library/turtle.rst:1058 msgid "a triple (fontname, fontsize, fonttype)" -msgstr "" +msgstr "triplet (nom de police, taille de police, type de police)" #: ../Doc/library/turtle.rst:1060 msgid "" @@ -1261,18 +1405,21 @@ msgid "" "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" +"Rend la tortue invisible. C'est recommandé lorsque vous êtes en train de " +"faire un dessin complexe, vous observerez alors une accélération notable." #: ../Doc/library/turtle.rst:1090 msgid "Make the turtle visible." -msgstr "" +msgstr "Rend la tortue visible." #: ../Doc/library/turtle.rst:1099 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "" +"Renvoie ``True`` si la tortue est visible, et ``False`` si elle est cachée." #: ../Doc/library/turtle.rst:1114 msgid "a string which is a valid shapename" -msgstr "" +msgstr "une chaîne de caractères qui correspond à un nom de forme valide" #: ../Doc/library/turtle.rst:1116 msgid "" @@ -1282,10 +1429,16 @@ msgid "" "\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn " "about how to deal with shapes see Screen method :func:`register_shape`." msgstr "" +"La tortue prend la forme *name* donnée, ou, si *name* n'est pas donné, " +"renvoie le nom de la forme actuelle. Le nom *name* donné doit exister dans " +"le dictionnaire de formes de *TurtleScreen*. Initialement, il y a les " +"polygones suivants : \"*arrow*\", \"*turtle*\", \"*circle*\", \"*square*\", " +"\"*triangle*\", \"*classic*\". Pour en apprendre plus sur comment gérer les " +"formes, voir la méthode de *Screen* :func:`register_shape`." #: ../Doc/library/turtle.rst:1133 msgid "one of the strings \"auto\", \"user\", \"noresize\"" -msgstr "" +msgstr "l'une des chaînes suivantes : `\"auto\"`, `\"user\"`, `\"noresize\"`" #: ../Doc/library/turtle.rst:1135 msgid "" @@ -1293,22 +1446,31 @@ msgid "" "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" +"Définit *resizemode* à l'une des valeurs suivantes : \"*auto*\", \"*user*\", " +"\"*noresize*\". Si \"*rmode*\" n'est pas donné, renvoie le *resizemode* " +"actuel. Les différents *resizemode* ont les effets suivants :" #: ../Doc/library/turtle.rst:1139 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" +"*\"auto\"* : adapte l'apparence de la tortue en fonction de la largeur du " +"pinceau (*value of pensize* en anglais)." #: ../Doc/library/turtle.rst:1140 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" +"*\"user\"* : adapte l'apparence de la tortue en fonction des valeurs du " +"paramètre d'étirement et de la largeur des contours, déterminés par :func:" +"`shapesize`." #: ../Doc/library/turtle.rst:1143 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "" +"*\"noresize\"* : il n'y a pas de modification de l'apparence de la tortue." #: ../Doc/library/turtle.rst:1145 msgid "" @@ -1318,7 +1480,7 @@ msgstr "" #: ../Doc/library/turtle.rst:1159 ../Doc/library/turtle.rst:1160 #: ../Doc/library/turtle.rst:1161 msgid "positive number" -msgstr "" +msgstr "nombre positif" #: ../Doc/library/turtle.rst:1163 msgid "" @@ -1329,11 +1491,18 @@ msgid "" "*stretch_len* is stretchfactor in direction of its orientation, *outline* " "determines the width of the shapes's outline." msgstr "" +"Renvoie ou définit les attributs x/y-stretchfactors* et/ou contour du stylo. " +"Définit *resizemode* à \"user\". Si et seulement si *resizemode* est à \"user" +"\", la tortue sera affichée étirée en fonction de ses facteurs d'étirements " +"(*stretchfactors*) : *stretch_wid* est le facteur d'étirement " +"perpendiculaire à son orientation, *stretch_len* est le facteur d'étirement " +"en direction de son orientation, *outlline* détermine la largeur de la " +"bordure de la forme." #: ../Doc/library/turtle.rst:1185 ../Doc/library/turtle.rst:1810 #: ../Doc/library/turtle.rst:1811 ../Doc/library/turtle.rst:1812 msgid "number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1187 msgid "" @@ -1343,12 +1512,21 @@ msgid "" "given: return the current shearfactor, i. e. the tangent of the shear angle, " "by which lines parallel to the heading of the turtle are sheared." msgstr "" +"Définit ou renvoie le paramétrage de cisaillement actuel. Déforme la tortue " +"en fonction du paramètre *shear* donné, qui est la tangente de l'angle de " +"cisaillement. Ne change pas le sens de déplacement de la tortue. Si le " +"paramètre *shear* n'est pas indiqué, renvoie la valeur actuelle du " +"cisaillement, c.-à-d. la valeur de la tangente de l'angle de cisaillement, " +"celui par rapport auquel les lignes parallèles à la direction de la tortue " +"sont cisaillées." #: ../Doc/library/turtle.rst:1207 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" +"Tourne la forme de la tortue de *angle* depuis son angle d'inclinaison " +"actuel, mais *ne change pas* le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1225 msgid "" @@ -1356,12 +1534,15 @@ msgid "" "regardless of its current tilt-angle. *Do not* change the turtle's heading " "(direction of movement)." msgstr "" +"Tourne la forme de la tortue pour pointer dans la direction spécifiée par " +"*angle*, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement)." #: ../Doc/library/turtle.rst:1244 ../Doc/library/turtle.rst:1266 #: ../Doc/library/turtle.rst:1267 ../Doc/library/turtle.rst:1268 #: ../Doc/library/turtle.rst:1269 msgid "a number (optional)" -msgstr "" +msgstr "un nombre (facultatif)" #: ../Doc/library/turtle.rst:1246 msgid "" @@ -1372,10 +1553,18 @@ msgid "" "angle between the orientation of the turtleshape and the heading of the " "turtle (its direction of movement)." msgstr "" +"Définit ou renvoie l'angle d'inclinaison actuel. Si l'angle est donné, la " +"forme de la tortue est tournée pour pointer dans direction spécifiée par " +"l'angle, indépendamment de son angle d'inclinaison actuel. *Ne change pas* " +"le cap de la tortue (direction du mouvement). Si l'angle n'est pas donné, " +"renvoie l'angle d'inclinaison actuel (L'angle entre l'orientation de la " +"forme de la tortue et le cap de la tortue (sa direction de mouvement))." #: ../Doc/library/turtle.rst:1271 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" +"Définit ou renvoie la matrice de transformation actuelle de la forme de la " +"tortue." #: ../Doc/library/turtle.rst:1273 msgid "" @@ -1392,6 +1581,9 @@ msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." msgstr "" +"Renvoie la forme actuelle du polygone en *n*-uplet de paires de coordonnées. " +"Vous pouvez l'utiliser afin de définir une nouvelle forme ou en tant que " +"composant pour une forme plus complexe." #: ../Doc/library/turtle.rst:1310 ../Doc/library/turtle.rst:1331 #: ../Doc/library/turtle.rst:1355 ../Doc/library/turtle.rst:1736 @@ -1399,11 +1591,13 @@ msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" +"une fonction à deux arguments qui sera appelée avec les coordonnées du point " +"cliqué sur le canevas" #: ../Doc/library/turtle.rst:1312 ../Doc/library/turtle.rst:1333 #: ../Doc/library/turtle.rst:1357 ../Doc/library/turtle.rst:1738 msgid "number of the mouse-button, defaults to 1 (left mouse button)" -msgstr "" +msgstr "numéro du bouton de la souris, par défaut 1 (bouton de gauche)" #: ../Doc/library/turtle.rst:1313 ../Doc/library/turtle.rst:1334 #: ../Doc/library/turtle.rst:1358 ../Doc/library/turtle.rst:1739 @@ -1411,6 +1605,8 @@ msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" +"``True`` ou ``False`` — si``True``, un nouveau lien est ajouté, sinon il " +"remplace un ancien lien" #: ../Doc/library/turtle.rst:1316 msgid "" @@ -1418,68 +1614,93 @@ msgid "" "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" +"Crée un lien vers *fun* pour les événements de clics de la souris sur cette " +"tortue. Si *fun* est ``None``, les liens existants sont supprimés. Exemple " +"pour la tortue anonyme, c'est-à-dire la manière procédurale :" #: ../Doc/library/turtle.rst:1337 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de relâchement d'un clic de la " +"souris sur cette tortue. Si *fun* est ``None``, les liens existants sont " +"supprimés." #: ../Doc/library/turtle.rst:1361 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de mouvement de la souris sur " +"cette tortue. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1364 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" +"Remarque : toutes les séquences d'événements de mouvement de la souris sur " +"une tortue sont précédées par un événement de clic de la souris sur cette " +"tortue." #: ../Doc/library/turtle.rst:1371 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" +"Par la suite, un cliquer-glisser sur la tortue la fait se déplacer au " +"travers de l'écran, produisant ainsi des dessins « à la main » (si le stylo " +"est posé)." #: ../Doc/library/turtle.rst:1380 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" +"Démarre l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue est le premier sommet du polygone." #: ../Doc/library/turtle.rst:1386 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." msgstr "" +"Arrête l'enregistrement des sommets d'un polygone. La position actuelle de " +"la tortue sera le dernier sommet du polygone. Il sera connecté au premier " +"sommet." #: ../Doc/library/turtle.rst:1392 msgid "Return the last recorded polygon." -msgstr "" +msgstr "Renvoie le dernier polygone sauvegardé." #: ../Doc/library/turtle.rst:1410 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" +"Crée et renvoie un clone de la tortue avec les mêmes position, cap et " +"propriétés." #: ../Doc/library/turtle.rst:1422 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" +"Renvoie l'objet *Turtle* lui-même. Sa seule utilisation : comme fonction " +"pour renvoyer la \"tortue anonyme\" :" #: ../Doc/library/turtle.rst:1435 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" +"Renvoie l'objet :class:`TurtleScreen` sur lequel la tortue dessine. Les " +"méthodes de TurtleScreen peuvent être appelées pour cet objet." #: ../Doc/library/turtle.rst:1448 msgid "an integer or ``None``" -msgstr "" +msgstr "un entier ou ``None``" #: ../Doc/library/turtle.rst:1450 msgid "" @@ -1491,11 +1712,11 @@ msgstr "" #: ../Doc/library/turtle.rst:1462 msgid "Return number of entries in the undobuffer." -msgstr "" +msgstr "Renvoie le nombre d'entrées dans la mémoire d'annulation." #: ../Doc/library/turtle.rst:1474 msgid "Compound shapes" -msgstr "" +msgstr "Formes composées" #: ../Doc/library/turtle.rst:1476 msgid "" @@ -1503,16 +1724,21 @@ msgid "" "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" +"Pour utiliser des formes de tortues combinées, qui sont composées de " +"polygones de différentes couleurs, vous devez utiliser la classe utilitaire :" +"class:`Shape` explicitement comme décrit ci-dessous :" #: ../Doc/library/turtle.rst:1480 msgid "Create an empty Shape object of type \"compound\"." -msgstr "" +msgstr "Créez un objet Shape vide de type \"compound\"." #: ../Doc/library/turtle.rst:1481 msgid "" "Add as many components to this object as desired, using the :meth:" "`addcomponent` method." msgstr "" +"Ajoutez autant de composants que désirés à cet objet, en utilisant la " +"méthode :meth:`addcomponent`." #: ../Doc/library/turtle.rst:1484 msgid "For example:" @@ -1521,6 +1747,8 @@ msgstr "Par exemple :" #: ../Doc/library/turtle.rst:1494 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "" +"Maintenant ajoutez la *Shape* à la liste des formes de *Screen* et utilisez " +"la :" #: ../Doc/library/turtle.rst:1504 msgid "" @@ -1528,30 +1756,42 @@ msgid "" "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" +"La classe :class:`Shape` est utilisée en interne par la méthode :func:" +"`register_shape` de différentes façons. Le développeur n'interagit avec la " +"classe Shape *que* lorsqu'il utilise des formes composées comme montré ci-" +"dessus !" #: ../Doc/library/turtle.rst:1510 msgid "Methods of TurtleScreen/Screen and corresponding functions" -msgstr "" +msgstr "Méthodes de TurtleScreen/Screen et leurs fonctions correspondantes" #: ../Doc/library/turtle.rst:1512 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" +"La plupart des exemples dans cette section font référence à une instance de " +"TurtleScreen appelée ``screen``." #: ../Doc/library/turtle.rst:1525 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" msgstr "" +"chaîne spécifiant une couleur ou trois nombres dans l'intervalle *0.." +"colormode* ou *n*-uplet de ces trois nombres" #: ../Doc/library/turtle.rst:1529 msgid "Set or return background color of the TurtleScreen." msgstr "" +"Définit ou renvoie la couleur de fond de l'écran de la tortue " +"(*TurtleScreen* en anglais)." #: ../Doc/library/turtle.rst:1543 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" msgstr "" +"une chaîne de caractères, le nom d'un fichier *gif*, ou ``\"nopic\"``, ou " +"``None``" #: ../Doc/library/turtle.rst:1545 msgid "" @@ -1560,6 +1800,10 @@ msgid "" "*picname* is ``\"nopic\"``, delete background image, if present. If " "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" +"Défini l'image de fond ou renvoie l'image de fond actuelle. Si *picname* est " +"un nom de fichier, cette image et mis en image de fond. Si *picname* est ``" +"\"nopic\"``, l'image de fond sera supprimée si présente. SI *picname* est " +"``None``, le nom du fichier de l'image de fond actuelle est renvoyé. ::" #: ../Doc/library/turtle.rst:1560 msgid "" @@ -1567,6 +1811,9 @@ msgid "" "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" +"Supprime tous les dessins et toutes les tortues du TurtleScreen. " +"Réinitialise le TurtleScreen maintenant vide à son état initial : fond " +"blanc, pas d'image de fond, pas d'événement liés, et traçage activé." #: ../Doc/library/turtle.rst:1565 msgid "" @@ -1574,10 +1821,13 @@ msgid "" "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``clearscreen``. La fonction globale ``clear`` est une " +"fonction différente dérivée de la méthode Turtle ``clear``." #: ../Doc/library/turtle.rst:1573 msgid "Reset all Turtles on the Screen to their initial state." -msgstr "" +msgstr "Remet toutes les tortues à l'écran dans leur état initial." #: ../Doc/library/turtle.rst:1576 msgid "" @@ -1585,18 +1835,25 @@ msgid "" "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" +"Cette méthode TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom ``resetscreen``. La fonction globale ``reset`` est une " +"fonction différente dérivée de la méthode Turtle ``reset``." #: ../Doc/library/turtle.rst:1583 msgid "positive integer, new width of canvas in pixels" msgstr "" +"nombre entier positif, nouvelle largeur du canevas (zone sur laquelle se " +"déplace la tortue), en pixels" #: ../Doc/library/turtle.rst:1584 msgid "positive integer, new height of canvas in pixels" -msgstr "" +msgstr "nombre entier positif, nouvelle hauteur du canevas, en pixels" #: ../Doc/library/turtle.rst:1585 msgid "colorstring or color-tuple, new background color" msgstr "" +"chaîne de caractères indiquant la couleur ou n-uplet de couleurs, nouvelle " +"couleur de fond" #: ../Doc/library/turtle.rst:1587 msgid "" @@ -1606,26 +1863,32 @@ msgid "" "this method, one can make visible those parts of a drawing which were " "outside the canvas before." msgstr "" +"Si aucun arguments ne sont passés, renvoie l'actuel *(canvaswidth, " +"canvasheight)*. Sinon, redimensionne le canevas sur lequel les tortues " +"dessinent. Ne modifiez pas la fenêtre de dessin. Pour observer les parties " +"cachées du canevas, utilisez les barres de défilement. Avec cette méthode, " +"on peut rendre visible les parties d'un dessin qui étaient en dehors du " +"canevas précédemment." #: ../Doc/library/turtle.rst:1599 msgid "e.g. to search for an erroneously escaped turtle ;-)" -msgstr "" +msgstr "par exemple, chercher une tortue échappée de manière erronée" #: ../Doc/library/turtle.rst:1604 msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, coordonnée x du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1605 msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin inférieur gauche du canevas" #: ../Doc/library/turtle.rst:1606 msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée x du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1607 msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un nombre, la coordonnée y du coin supérieur droit du canevas" #: ../Doc/library/turtle.rst:1609 msgid "" @@ -1633,16 +1896,22 @@ msgid "" "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" +"Configure un système de coordonnées défini par l'utilisateur et bascule vers " +"le mode \"world\" si nécessaire. Cela effectuera un ``screen.reset()``. Si " +"le mode \"world\" est déjà actif, tous les dessins sont re-déssinés par " +"rapport aux nouveaux coordonnées." #: ../Doc/library/turtle.rst:1613 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" +"**ATTENTION** : dans les systèmes de coordonnées définis par l'utilisateur, " +"les angles peuvent apparaître déformés." #: ../Doc/library/turtle.rst:1639 msgid "positive integer" -msgstr "" +msgstr "entier positif" #: ../Doc/library/turtle.rst:1641 msgid "" @@ -1650,14 +1919,17 @@ msgid "" "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" +"Défini ou renvoie le délai (*delay*) de dessin en millisecondes. (Cet " +"approximativement le temps passé entre deux mises à jour du canevas.) Plus " +"le délai est long, plus l'animation sera lente." #: ../Doc/library/turtle.rst:1645 msgid "Optional argument:" -msgstr "" +msgstr "Argument facultatif :" #: ../Doc/library/turtle.rst:1658 ../Doc/library/turtle.rst:1659 msgid "nonnegative integer" -msgstr "" +msgstr "entier non-négatif" #: ../Doc/library/turtle.rst:1661 msgid "" @@ -1667,14 +1939,22 @@ msgid "" "arguments, returns the currently stored value of n. Second argument sets " "delay value (see :func:`delay`)." msgstr "" +"Active/désactive les animations des tortues et défini le délai pour mettre à " +"jour les dessins.Si *n* est passé, seulement les n-ièmes mises à jours " +"régulières de l'écran seront vraiment effectuées. (Peut être utilisé pour " +"accélérer le dessin de graphiques complexes.) Lorsqu'appelé sans arguments, " +"renvoie la valeur actuelle de *n*. Le deuxième argument défini la valeur du " +"délai (voir :func:`delay`)." #: ../Doc/library/turtle.rst:1680 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" +"Effectue une mise à jour de *TurtleScreen*. À utiliser lorsque le traceur " +"est désactivé." #: ../Doc/library/turtle.rst:1682 msgid "See also the RawTurtle/Turtle method :func:`speed`." -msgstr "" +msgstr "Voir aussi la méthode :func:`speed` de *RawTurtle*/*Turtle*." #: ../Doc/library/turtle.rst:1690 msgid "" @@ -1682,14 +1962,19 @@ msgid "" "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" +"Donne le focus à *TurtleScreen* (afin de collecter les événements clés). Des " +"arguments factices sont fournis afin de pouvoir passer :func:`listen` à la " +"méthode *onclick*." #: ../Doc/library/turtle.rst:1697 ../Doc/library/turtle.rst:1716 msgid "a function with no arguments or ``None``" -msgstr "" +msgstr "une fonction sans arguments ou ``None``" #: ../Doc/library/turtle.rst:1698 ../Doc/library/turtle.rst:1717 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" +"une chaîne : clé (par exemple \"*a*\") ou clé symbole (Par exemple \"*space*" +"\")" #: ../Doc/library/turtle.rst:1700 msgid "" @@ -1697,6 +1982,10 @@ msgid "" "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un relâchement d'une touche. Si *fun* est " +"``None``, les événements liés sont supprimés. Remarque : Pour pouvoir " +"enregistrer les événements lié au touches, TurtleScreen doit avoir le " +"*focus* (fenêtre en premier plan). (Voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1719 msgid "" @@ -1704,12 +1993,18 @@ msgid "" "event if no key is given. Remark: in order to be able to register key-" "events, TurtleScreen must have focus. (See method :func:`listen`.)" msgstr "" +"Lie *fun* à l'événement d'un pressement de touche si *key* (touche) est " +"donné, ou n'importe quelle touche si aucune touche n'est passée. Remarque : " +"Pour pouvoir enregistrer des événements liés au touches, TurtleScreen doit " +"être en premier plan. (voir la méthode :func:`listen`.)" #: ../Doc/library/turtle.rst:1742 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Crée un lien vers *fun* pour les événements de clique de la souris sur cet " +"écran. Si *fun* est ``None``, les liens existants sont supprimés." #: ../Doc/library/turtle.rst:1745 msgid "" @@ -1723,18 +2018,21 @@ msgid "" "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" +"Cette méthode de TurtleScreen est disponible en tant que fonction globale " +"seulement sous le nom de ``onscreenclick``. La fonction globale ``onclick`` " +"est une autre fonction dérivée de la méthode Turtle ``onclick``." #: ../Doc/library/turtle.rst:1762 msgid "a function with no arguments" -msgstr "" +msgstr "une fonction sans arguments" #: ../Doc/library/turtle.rst:1763 msgid "a number >= 0" -msgstr "" +msgstr "un nombre supérieur ou égal à 0" #: ../Doc/library/turtle.rst:1765 msgid "Install a timer that calls *fun* after *t* milliseconds." -msgstr "" +msgstr "Installe un minuteur qui appelle *fun* après *t* millisecondes." #: ../Doc/library/turtle.rst:1782 msgid "" @@ -1743,6 +2041,11 @@ msgid "" "run from within IDLE in -n mode (No subprocess) - for interactive use of " "turtle graphics. ::" msgstr "" +"Démarre la boucle d'événements - appelle la boucle principale de Tkinter. " +"Doit être la dernière opération dan un programme graphique *turtle*. **Ne " +"dois pas** être utilisé si un script est lancé depuis IDLE avec le mode `-n` " +"(pas de sous processus) - pour une utilisation interactive des graphiques " +"*turtle* ::" #: ../Doc/library/turtle.rst:1795 ../Doc/library/turtle.rst:1796 #: ../Doc/library/turtle.rst:1808 ../Doc/library/turtle.rst:1809 @@ -1756,6 +2059,10 @@ msgid "" "input. Return the string input. If the dialog is canceled, return " "``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer une chaine de caractères. Le " +"paramètre *title* est le titre de la fenêtre, *prompt* est le texte " +"expliquant quelle information écrire. Renvoie l'entrée utilisateur sous " +"forme de chaîne. Si le dialogue est annulé, renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1814 msgid "" @@ -1767,16 +2074,27 @@ msgid "" "open for correction. Return the number input. If the dialog is canceled, " "return ``None``. ::" msgstr "" +"Fait apparaitre une fenêtre pour entrer un nombre. Le paramètre *title* est " +"le titre de la fenêtre, *prompt* est le texte expliquant quelle information " +"numérique écrire. *default* : Valeur par défaut, *minval* : valeur minimale " +"d'entrée, *maxval* : Valeur maximale d'entrée. Le nombre entré doit être " +"dans la gamme *minval..maxval* si ces valeurs sont données. Sinon, un indice " +"apparait et le dialogue reste ouvert pour corriger le nombre. Renvoie " +"l'entrée utilisateur sous forme de nombre. Si le dialogue est annulé, " +"renvoie ``None``. ::" #: ../Doc/library/turtle.rst:1831 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "" +"l'une des chaînes de caractères : `\"standard\"`, `\"logo\"` ou `\"world\"`" #: ../Doc/library/turtle.rst:1833 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" +"Règle le mode de la tortue (\"*standard*\", \"*logo*\" ou \"*world*\") et la " +"réinitialise. Si le mode n'est pas donné, le mode actuel est renvoyé." #: ../Doc/library/turtle.rst:1836 msgid "" @@ -1785,116 +2103,138 @@ msgid "" "\"world coordinates\". **Attention**: in this mode angles appear distorted " "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" +"Le mode \"*standard*\" est compatible avec l'ancien :mod:`turtle`. Le mode " +"\"*logo*\" est compatible avec la plupart des graphiques *turtle* Logo. Le " +"mode \"*world*\" utilise des \"coordonnées monde\" (*world coordinates*) " +"définis par l'utilisateur. **Attention** : Dans ce mode, les angles " +"apparaissent déformés si le ratio unitaire de ``x/y`` n'est pas 1." #: ../Doc/library/turtle.rst:1842 msgid "Mode" -msgstr "" +msgstr "Mode" #: ../Doc/library/turtle.rst:1842 msgid "Initial turtle heading" -msgstr "" +msgstr "Orientation initiale de la tortue" #: ../Doc/library/turtle.rst:1842 msgid "positive angles" -msgstr "" +msgstr "angles positifs" #: ../Doc/library/turtle.rst:1844 msgid "\"standard\"" -msgstr "" +msgstr "\"standard\"" #: ../Doc/library/turtle.rst:1844 msgid "to the right (east)" -msgstr "" +msgstr "vers la droite (vers l'Est)" #: ../Doc/library/turtle.rst:1844 msgid "counterclockwise" -msgstr "" +msgstr "dans le sens inverse des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1845 msgid "\"logo\"" -msgstr "" +msgstr "\"logo\"" #: ../Doc/library/turtle.rst:1845 msgid "upward (north)" -msgstr "" +msgstr "vers le haut (vers le Nord)" #: ../Doc/library/turtle.rst:1845 msgid "clockwise" -msgstr "" +msgstr "dans le sens des aiguilles d'une montre" #: ../Doc/library/turtle.rst:1857 msgid "one of the values 1.0 or 255" -msgstr "" +msgstr "l'une des valeurs suivantes : 1.0 ou 255" #: ../Doc/library/turtle.rst:1859 msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " "values of color triples have to be in the range 0..\\ *cmode*." msgstr "" +"Renvoie le mode de couleur (*colormode*) ou le défini à 1.0 ou 255. Les " +"valeurs *r*, *g* et *b* doivent aussi être dans la gamme `0..*cmode*`." #: ../Doc/library/turtle.rst:1879 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" +"Renvoie le canevas de ce TurtleScreen. Utile pour les initiés qui savent " +"quoi faire avec un canevas Tkinter." #: ../Doc/library/turtle.rst:1891 msgid "Return a list of names of all currently available turtle shapes." msgstr "" +"Renvoie une liste de noms de toutes les formes actuellement disponibles pour " +"les tortues." #: ../Doc/library/turtle.rst:1902 msgid "There are three different ways to call this function:" -msgstr "" +msgstr "Il existe trois façons différentes d’appeler cette fonction :" #: ../Doc/library/turtle.rst:1904 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" msgstr "" +"*name* est le nom d'un fichier *gif* et *shape* est ``None`` : Installe la " +"forme d'image correspondante. ::" #: ../Doc/library/turtle.rst:1910 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" +"Les formes d'images *ne tournent pas* lorsque la tortue tourne, donc elles " +"n'indiquent pas le cap de la tortue !" #: ../Doc/library/turtle.rst:1913 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un *n*-uplet " +"de paires de coordonnées : Installe le polygone correspondant." #: ../Doc/library/turtle.rst:1920 msgid "" "*name* is an arbitrary string and shape is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" +"*name* est une chaîne de caractères arbitraire et *shape* est un objet :" +"class:`Shape` (composé) : Installe la forme composée correspondante." #: ../Doc/library/turtle.rst:1923 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" +"Ajoute une forme de tortue a la liste des formes du TurtleScreen. Seulement " +"les formes enregistrées de cette façon peuvent être utilisée avec la " +"commande ``shape(shapename)``." #: ../Doc/library/turtle.rst:1929 msgid "Return the list of turtles on the screen." -msgstr "" +msgstr "Renvoie la liste des tortues présentes sur l'écran." #: ../Doc/library/turtle.rst:1939 msgid "Return the height of the turtle window. ::" -msgstr "" +msgstr "Renvoie la hauteur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1947 msgid "Return the width of the turtle window. ::" -msgstr "" +msgstr "Renvoie la largeur de la fenêtre de la tortue. ::" #: ../Doc/library/turtle.rst:1956 msgid "Methods specific to Screen, not inherited from TurtleScreen" -msgstr "" +msgstr "Méthodes spécifiques à Screen, non héritées de TurtleScreen" #: ../Doc/library/turtle.rst:1960 msgid "Shut the turtlegraphics window." -msgstr "" +msgstr "Éteins la fenêtre *turtlegraphics*." #: ../Doc/library/turtle.rst:1965 msgid "Bind bye() method to mouse clicks on the Screen." @@ -1908,6 +2248,12 @@ msgid "" "file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " "client script." msgstr "" +"Si la valeur de \"*using_IDLE*\" dans le dictionnaire de configuration est " +"``False`` (valeur par défaut), démarre aussi la boucle principale. " +"Remarque : Si IDLE est lancé avec l'option ``-n`` (Pas de sous processus), " +"Cette valeur devrait être définie à ``True`` dans :file:`turtle.cfg`. Dans " +"ce cas, la boucle principale d'IDLE est active aussi pour le script du " +"client." #: ../Doc/library/turtle.rst:1977 msgid "" @@ -1915,97 +2261,133 @@ msgid "" "are stored in the configuration dictionary and can be changed via a :file:" "`turtle.cfg` file." msgstr "" +"Définit la taille et la position de la fenêtre principale. Les valeurs par " +"défaut des arguments sont stockées dans le dictionnaire de configuration et " +"peuvent être modifiées via un fichier :file:`turtle.cfg`." #: ../Doc/library/turtle.rst:1981 msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" +"s'il s'agit d'un nombre entier, une taille en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est de 50 % " +"de l'écran" #: ../Doc/library/turtle.rst:1983 msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" +"s'il s'agit d'un nombre entier, la hauteur en pixels, s'il s'agit d'un " +"nombre flottant, une fraction de l'écran ; la valeur par défaut est 75 % de " +"l'écran" #: ../Doc/library/turtle.rst:1985 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" msgstr "" +"s'il s'agit d'un nombre positif, position de départ en pixels à partir du " +"bord gauche de l'écran, s'il s'agit d'un nombre négatif, position de départ " +"en pixels à partir du bord droit, si c'est ``None``, centre la fenêtre " +"horizontalement" #: ../Doc/library/turtle.rst:1988 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" msgstr "" +"si positif, la position de départ en pixels depuis le haut de l'écran. Si " +"négatif, depuis de bas de l'écran. Si ``None``, Le centre de la fenêtre " +"verticalement" #: ../Doc/library/turtle.rst:2002 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" +"chaîne de caractères affichée dans la barre de titre de la fenêtre graphique " +"de la tortue" #: ../Doc/library/turtle.rst:2005 msgid "Set title of turtle window to *titlestring*." -msgstr "" +msgstr "Défini le titre de la fenêtre de la tortue à *titlestring*." #: ../Doc/library/turtle.rst:2013 msgid "Public classes" -msgstr "" +msgstr "Classes publiques" #: ../Doc/library/turtle.rst:2019 msgid "" "a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" +"un :class:`tkinter.Canvas`, un :class:`ScrolledCanvas` ou un :class:" +"`TurtleScreen`" #: ../Doc/library/turtle.rst:2022 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" +"Crée une tortue. Cette tortue à toutes les méthodes décrites ci-dessus comme " +"\"Méthode de Turtle/RawTurtle\"." #: ../Doc/library/turtle.rst:2028 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." msgstr "" +"Sous-classe de RawTurtle, à la même interface mais dessine sur un objet :" +"class:`screen` par défaut créé automatiquement lorsque nécessaire pour la " +"première fois." #: ../Doc/library/turtle.rst:2034 msgid "a :class:`tkinter.Canvas`" -msgstr "" +msgstr "un :class:`tkinter.Canvas`" #: ../Doc/library/turtle.rst:2036 msgid "" "Provides screen oriented methods like :func:`setbg` etc. that are described " "above." msgstr "" +"Fournis les méthodes liées à l'écran comme :func:`setbg`, etc. qui sont " +"décrites ci-dessus." #: ../Doc/library/turtle.rst:2041 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" +"Sous-classess de TurtleScreen, avec :ref:`quatre nouvelles méthodes " +"`." #: ../Doc/library/turtle.rst:2046 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" +"certain modules Tkinter pour contenir le ScrolledCanvas, c'est à dire, un " +"canevas Tkinter avec des barres de défilement ajoutées" #: ../Doc/library/turtle.rst:2049 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" +"Utilisé par la classe Screen, qui fournit donc automatiquement un " +"ScrolledCanvas comme terrain de jeu pour les tortues." #: ../Doc/library/turtle.rst:2054 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" +"l'une des chaînes suivantes : `\"polygon\"`, `\"image\"` ou `\"compound\"`" #: ../Doc/library/turtle.rst:2056 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" +"Formes de modélisation de la structure des données. La paire ``(type_, " +"data)`` doit suivre cette spécification :" #: ../Doc/library/turtle.rst:2061 msgid "*type_*" @@ -2017,41 +2399,45 @@ msgstr "*data*" #: ../Doc/library/turtle.rst:2063 msgid "\"polygon\"" -msgstr "" +msgstr "\"polygon\"" #: ../Doc/library/turtle.rst:2063 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" +"un polygone n-uplet, c'est-à-dire un n-uplet constitué de paires (chaque " +"paire définissant des coordonnées)" #: ../Doc/library/turtle.rst:2064 msgid "\"image\"" -msgstr "" +msgstr "\"image\"" #: ../Doc/library/turtle.rst:2064 msgid "an image (in this form only used internally!)" -msgstr "" +msgstr "une image (utilisée uniquement en interne sous ce format !)" #: ../Doc/library/turtle.rst:2065 msgid "\"compound\"" -msgstr "" +msgstr "\"compound\"" #: ../Doc/library/turtle.rst:2065 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" +"``None`` (une forme composée doit être construite en utilisant la méthode :" +"meth:`addcomponent`)" #: ../Doc/library/turtle.rst:2071 msgid "a polygon, i.e. a tuple of pairs of numbers" -msgstr "" +msgstr "un polygone, c.-à-d. un n-uplet de paires de nombres" #: ../Doc/library/turtle.rst:2072 msgid "a color the *poly* will be filled with" -msgstr "" +msgstr "une couleur de remplissage pour *poly*" #: ../Doc/library/turtle.rst:2073 msgid "a color for the poly's outline (if given)" -msgstr "" +msgstr "une couleur pour le contour du polygone (si elle est donnée)" #: ../Doc/library/turtle.rst:2075 msgid "Example:" @@ -2059,7 +2445,7 @@ msgstr "Exemple :" #: ../Doc/library/turtle.rst:2084 msgid "See :ref:`compoundshapes`." -msgstr "" +msgstr "Voir :ref:`compoundshapes`." #: ../Doc/library/turtle.rst:2089 msgid "" @@ -2067,42 +2453,46 @@ msgid "" "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" +"Une classe de vecteur bidimensionnel, utilisée en tant que classe auxiliaire " +"pour implémenter les graphiques *turtle*. Peut être utile pour les " +"programmes graphiques faits avec *turtle*. Dérivé des *n*-uplets, donc un " +"vecteur est un *n*-uplet !" #: ../Doc/library/turtle.rst:2093 msgid "Provides (for *a*, *b* vectors, *k* number):" -msgstr "" +msgstr "Permet (pour les vecteurs *a*, *b* et le nombre *k*) :" #: ../Doc/library/turtle.rst:2095 msgid "``a + b`` vector addition" -msgstr "" +msgstr "``a + b`` addition de vecteurs" #: ../Doc/library/turtle.rst:2096 msgid "``a - b`` vector subtraction" -msgstr "" +msgstr "``a - b`` soustraction de deux vecteurs" #: ../Doc/library/turtle.rst:2097 msgid "``a * b`` inner product" -msgstr "" +msgstr "``a * b`` produit scalaire" #: ../Doc/library/turtle.rst:2098 msgid "``k * a`` and ``a * k`` multiplication with scalar" -msgstr "" +msgstr "``k * a`` et ``a * k`` multiplication avec un scalaire" #: ../Doc/library/turtle.rst:2099 msgid "``abs(a)`` absolute value of a" -msgstr "" +msgstr "``abs(a)`` valeur absolue de a" #: ../Doc/library/turtle.rst:2100 msgid "``a.rotate(angle)`` rotation" -msgstr "" +msgstr "``a.rotate(angle)`` rotation" #: ../Doc/library/turtle.rst:2104 msgid "Help and configuration" -msgstr "" +msgstr "Aide et configuration" #: ../Doc/library/turtle.rst:2107 msgid "How to use help" -msgstr "" +msgstr "Utilisation de l'aide" #: ../Doc/library/turtle.rst:2109 msgid "" @@ -2110,32 +2500,44 @@ msgid "" "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" +"Les méthodes publiques des classes *Screen* et *Turtle* sont largement " +"documentées dans les *docstrings*. Elles peuvent donc être utilisées comme " +"aide en ligne via les fonctions d'aide de Python :" #: ../Doc/library/turtle.rst:2113 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" +"Lors de l'utilisation d'IDLE, des info-bulles apparaissent avec la signature " +"et les premières lignes de *docstring* de la fonction/méthode appelée." #: ../Doc/library/turtle.rst:2116 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "" +"L'appel de :func:`help` sur les méthodes ou fonctions affichera les " +"*docstrings* ::" #: ../Doc/library/turtle.rst:2147 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" +"Les *docstrings* des fonctions qui sont dérivées des méthodes ont une forme " +"modifiée ::" #: ../Doc/library/turtle.rst:2181 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" +"Ces chaînes de documents modifiées sont créées automatiquement avec les " +"définitions de fonctions qui sont dérivées des méthodes au moment de " +"l'importation." #: ../Doc/library/turtle.rst:2186 msgid "Translation of docstrings into different languages" -msgstr "" +msgstr "Traduction de chaînes de documents en différentes langues" #: ../Doc/library/turtle.rst:2188 msgid "" @@ -2143,10 +2545,13 @@ msgid "" "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" +"Il est utile de créer un dictionnaire dont les clés sont les noms des " +"méthodes et les valeurs sont les *docstrings* de méthodes publiques des " +"classes Screen et Turtle." #: ../Doc/library/turtle.rst:2194 msgid "a string, used as filename" -msgstr "" +msgstr "une chaîne de caractères, utilisée en tant que nom de fichier" #: ../Doc/library/turtle.rst:2196 msgid "" @@ -2156,6 +2561,11 @@ msgid "" "Python script :file:`{filename}.py`. It is intended to serve as a template " "for translation of the docstrings into different languages." msgstr "" +"Crée et écrit un dictionnaire de *docstrings* dans un script Python avec le " +"nom donné. Cette fonction doit être appelée explicitement (elle n'est pas " +"utilisée par les classes graphiques de *turtle*). Ce dictionnaire de " +"*doctrings* sera écrit dans le script Python :file:`{filename}.py`. Il sert " +"de modèle pour la traduction des *docstrings* dans différentes langues." #: ../Doc/library/turtle.rst:2202 msgid "" @@ -2163,6 +2573,10 @@ msgid "" "native language, you have to translate the docstrings and save the resulting " "file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" +"Si vous (ou vos étudiants) veulent utiliser :mod:`turtle` avec de l'aide en " +"ligne dans votre langue natale, vous devez traduire les *docstrings* et " +"sauvegarder les fichiers résultants en, par exemple, :file:" +"`turtle_docstringdict_german.py`." #: ../Doc/library/turtle.rst:2206 msgid "" @@ -2170,22 +2584,31 @@ msgid "" "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" +"Si vous avez une entrée appropriée dans votre fichier :file:`turtle.cfg`, ce " +"dictionnaire est lu au moment de l'importation et remplace la *docstrings* " +"originale en anglais par cette entrée." #: ../Doc/library/turtle.rst:2209 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" +"Au moment de l'écriture de cette documentation, il n'existe seulement que " +"des *docstrings* en Allemand et Italien. (Merci de faire vos demandes à " +"glingl@aon.at.)" #: ../Doc/library/turtle.rst:2215 msgid "How to configure Screen and Turtles" -msgstr "" +msgstr "Comment configurer *Screen* et *Turtle*" #: ../Doc/library/turtle.rst:2217 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." msgstr "" +"La configuration par défaut imite l'apparence et le comportement de l'ancien " +"module *turtle* pour pouvoir maintenir la meilleure compatibilité avec celui-" +"ci." #: ../Doc/library/turtle.rst:2220 msgid "" @@ -2195,33 +2618,44 @@ msgid "" "be read at import time and modify the configuration according to its " "settings." msgstr "" +"Si vous voulez utiliser une configuration différente qui reflète mieux les " +"fonctionnalités de ce module ou qui correspond mieux à vos besoins, par " +"exemple pour un cours, vous pouvez préparer un ficher de configuration " +"``turtle.cfg`` qui sera lu au moment de l'importation et qui modifiera la " +"configuration en utilisant les paramètres du fichier." #: ../Doc/library/turtle.rst:2225 msgid "" "The built in configuration would correspond to the following turtle.cfg::" -msgstr "" +msgstr "La configuration native correspondrait au *turtle.cfg* suivant ::" #: ../Doc/library/turtle.rst:2248 msgid "Short explanation of selected entries:" -msgstr "" +msgstr "Brève explication des entrées sélectionnées :" #: ../Doc/library/turtle.rst:2250 msgid "" "The first four lines correspond to the arguments of the :meth:`Screen.setup` " "method." msgstr "" +"Les quatre premières lignes correspondent aux arguments de la méthode :meth:" +"`Screen.setup`." #: ../Doc/library/turtle.rst:2252 msgid "" "Line 5 and 6 correspond to the arguments of the method :meth:`Screen." "screensize`." msgstr "" +"Les lignes 5 et 6 correspondent aux arguments de la méthode :meth:`Screen." +"screensize`." #: ../Doc/library/turtle.rst:2254 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" +"*shape* peut être n'importe quelle forme native, par exemple *arrow*, " +"*turtle* etc. Pour plus d'informations, essayez ``help(shape)``." #: ../Doc/library/turtle.rst:2256 msgid "" @@ -2229,12 +2663,18 @@ msgid "" "to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " "in the cfg-file)." msgstr "" +"Si vous ne voulez utiliser aucune couleur de remplissage (c'est-à-dire " +"rendre la tortue transparente), vous devez écrire ``fillcolor = \"\"`` (mais " +"toutes les chaînes non vides ne doivent pas avoir de guillemets dans le " +"fichier *cfg*)." #: ../Doc/library/turtle.rst:2259 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" +"Si vous voulez refléter l'état de la tortue, vous devez utiliser " +"``resizemode = auto``." #: ../Doc/library/turtle.rst:2261 msgid "" @@ -2242,6 +2682,10 @@ msgid "" "`turtle_docstringdict_italian.py` will be loaded at import time (if present " "on the import path, e.g. in the same directory as :mod:`turtle`." msgstr "" +"Si vous définissez par exemple ``language = italian``, le dictionnaire de " +"*docstrings* :file:`turtle.docstringdict_italian.py` sera chargé au moment " +"de l'importation (si présent dans les chemins d'importations, par exemple " +"dans le même dossier que :mod:`turtle`)." #: ../Doc/library/turtle.rst:2264 msgid "" @@ -2250,6 +2694,10 @@ msgid "" "docstrings to function-docstrings will delete these names from the " "docstrings." msgstr "" +"Les entrées *exampleturtle* et *examplescreen* définissent les noms de ces " +"objets tels qu'ils apparaissent dans les *docstrings*. La transformation des " +"méthodes-*docstrings* vers fonction-*docstrings* supprimera ces noms des " +"*docstrings*." #: ../Doc/library/turtle.rst:2268 msgid "" @@ -2257,6 +2705,9 @@ msgid "" "n switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" +"*using_IDLE* : définissez ceci à ``True`` si vous travaillez régulièrement " +"avec IDLE et son option ``-n`` (pas de sous processus). Cela évitera " +"l'entrée de :func:`exitonclick` dans la boucle principale." #: ../Doc/library/turtle.rst:2272 msgid "" @@ -2264,6 +2715,9 @@ msgid "" "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" +"Il peut y avoir un :file:turtle.cfg` dans le dossier où se situe :mod:" +"`turtle` et un autre dans le dossier de travail courant. Ce dernier prendra " +"le dessus." #: ../Doc/library/turtle.rst:2276 msgid "" @@ -2271,31 +2725,42 @@ msgid "" "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" +"Le dossier :file:`Lib/turtledemo` contient un fichier :file:`turtle.cfg`. " +"Vous pouvez le prendre comme exemple et voir ses effets lorsque vous lancez " +"les démos (il est préférable de ne pas le faire depuis la visionneuse de " +"démos)." #: ../Doc/library/turtle.rst:2282 msgid ":mod:`turtledemo` --- Demo scripts" -msgstr "" +msgstr ":mod:`turtledemo` — Scripts de démonstration" #: ../Doc/library/turtle.rst:2287 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" msgstr "" +"Le paquet :mod:`turtledemo` inclut un ensemble de scripts de démonstration. " +"Ces scripts peuvent être lancés et observés en utilisant la visionneuse de " +"démos comme suit ::" #: ../Doc/library/turtle.rst:2292 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" +"Alternativement, vous pouvez lancer les scripts de démo individuellement. " +"Par exemple ::" #: ../Doc/library/turtle.rst:2296 msgid "The :mod:`turtledemo` package directory contains:" -msgstr "" +msgstr "Le paquet :mod:`turtledemo` contient :" #: ../Doc/library/turtle.rst:2298 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." msgstr "" +"Une visionneuse :file:`__main__.py` qui peut être utilisée pour lire le code " +"source de ces scripts et pour les faire tourner en même temps." #: ../Doc/library/turtle.rst:2300 msgid "" @@ -2303,16 +2768,21 @@ msgid "" "module. Examples can be accessed via the Examples menu. They can also be " "run standalone." msgstr "" +"Plusieurs script présentent les différentes fonctionnalités du module :mod:" +"`turtle`. Les exemples peuvent être consultés via le menu *Examples*. Ils " +"peuvent aussi être lancés de manière autonome." #: ../Doc/library/turtle.rst:2303 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" +"Un fichier exemple :file:`turtle.cfg` montrant comment rédiger de tels " +"fichiers." #: ../Doc/library/turtle.rst:2306 msgid "The demo scripts are:" -msgstr "" +msgstr "Les scripts de démonstration sont :" #: ../Doc/library/turtle.rst:2311 msgid "Name" @@ -2324,226 +2794,236 @@ msgstr "Description" #: ../Doc/library/turtle.rst:2311 msgid "Features" -msgstr "" +msgstr "Caractéristiques" #: ../Doc/library/turtle.rst:2313 msgid "bytedesign" -msgstr "" +msgstr "*bytedesign*" #: ../Doc/library/turtle.rst:2313 msgid "complex classical turtle graphics pattern" -msgstr "" +msgstr "motif complexe de la tortue graphique classique" #: ../Doc/library/turtle.rst:2313 msgid ":func:`tracer`, delay, :func:`update`" -msgstr "" +msgstr ":func:`tracer`, temps mort, :func:`update`" #: ../Doc/library/turtle.rst:2316 msgid "chaos" -msgstr "" +msgstr "chaos" #: ../Doc/library/turtle.rst:2316 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" +"graphiques dynamiques de Verhulst, cela démontre que les calculs de " +"l'ordinateur peuvent générer des résultats qui vont parfois à l'encontre du " +"bon sens" #: ../Doc/library/turtle.rst:2316 msgid "world coordinates" -msgstr "" +msgstr "*world coordinates*" #: ../Doc/library/turtle.rst:2322 msgid "clock" -msgstr "" +msgstr "*clock*" #: ../Doc/library/turtle.rst:2322 msgid "analog clock showing time of your computer" -msgstr "" +msgstr "horloge analogique indiquant l'heure de votre ordinateur" #: ../Doc/library/turtle.rst:2322 msgid "turtles as clock's hands, ontimer" -msgstr "" +msgstr "tortues sous forme des aiguilles d'horloge, sur minuterie" #: ../Doc/library/turtle.rst:2325 msgid "colormixer" -msgstr "" +msgstr "*colormixer* (mélangeur de couleurs)" #: ../Doc/library/turtle.rst:2325 msgid "experiment with r, g, b" -msgstr "" +msgstr "des expériences en rouge, vert, bleu" #: ../Doc/library/turtle.rst:2327 msgid "forest" -msgstr "" +msgstr "*forest* (forêt)" #: ../Doc/library/turtle.rst:2327 msgid "3 breadth-first trees" -msgstr "" +msgstr "3 arbres tracés par un parcours en largeur" #: ../Doc/library/turtle.rst:2327 msgid "randomization" -msgstr "" +msgstr "*randomization* (répartition aléatoire)" #: ../Doc/library/turtle.rst:2329 msgid "fractalcurves" -msgstr "" +msgstr "*fractalcurves*" #: ../Doc/library/turtle.rst:2329 msgid "Hilbert & Koch curves" -msgstr "" +msgstr "Courbes de Hilbert et de Koch" #: ../Doc/library/turtle.rst:2329 msgid "recursion" -msgstr "" +msgstr "récursivité" #: ../Doc/library/turtle.rst:2331 msgid "lindenmayer" -msgstr "" +msgstr "*lindenmayer*" #: ../Doc/library/turtle.rst:2331 msgid "ethnomathematics (indian kolams)" -msgstr "" +msgstr "ethnomathématiques (kolams indiens)" #: ../Doc/library/turtle.rst:2331 msgid "L-System" -msgstr "" +msgstr "*L-Système*" #: ../Doc/library/turtle.rst:2334 msgid "minimal_hanoi" -msgstr "" +msgstr "*minimal_hanoi*" #: ../Doc/library/turtle.rst:2334 msgid "Towers of Hanoi" -msgstr "" +msgstr "Tours de Hanoï" #: ../Doc/library/turtle.rst:2334 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" msgstr "" +"Des tortues rectangulaires à la place des disques (*shape*, *shapesize*)" #: ../Doc/library/turtle.rst:2338 msgid "nim" -msgstr "" +msgstr "*nim*" #: ../Doc/library/turtle.rst:2338 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" +"jouez au classique jeu de *nim* avec trois piles de bâtons contre " +"l'ordinateur." #: ../Doc/library/turtle.rst:2338 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "" +"tortues en tant que bâtons de *nim*, géré par des événements (clavier et " +"souris)" #: ../Doc/library/turtle.rst:2342 msgid "paint" -msgstr "" +msgstr "*paint* (peinture)" #: ../Doc/library/turtle.rst:2342 msgid "super minimalistic drawing program" -msgstr "" +msgstr "programme de dessin extra minimaliste" #: ../Doc/library/turtle.rst:2345 msgid "peace" -msgstr "" +msgstr "*peace* (paix)" #: ../Doc/library/turtle.rst:2345 msgid "elementary" -msgstr "" +msgstr "basique" #: ../Doc/library/turtle.rst:2345 msgid "turtle: appearance and animation" -msgstr "" +msgstr "tortue : apparence et animation" #: ../Doc/library/turtle.rst:2348 msgid "penrose" -msgstr "" +msgstr "*penrose*" #: ../Doc/library/turtle.rst:2348 msgid "aperiodic tiling with kites and darts" -msgstr "" +msgstr "tuiles apériodiques avec cerfs-volants et fléchettes" #: ../Doc/library/turtle.rst:2351 msgid "planet_and_moon" -msgstr "" +msgstr "*planet_and_moon* (planète et lune)" #: ../Doc/library/turtle.rst:2351 msgid "simulation of gravitational system" -msgstr "" +msgstr "simulation d'un système gravitationnel" #: ../Doc/library/turtle.rst:2351 msgid "compound shapes, :class:`Vec2D`" -msgstr "" +msgstr "formes composées, :class:`Vec2D`" #: ../Doc/library/turtle.rst:2354 msgid "round_dance" -msgstr "" +msgstr "*round_dance*" #: ../Doc/library/turtle.rst:2354 msgid "dancing turtles rotating pairwise in opposite direction" -msgstr "" +msgstr "tortues dansantes tournant par paires en sens inverse" #: ../Doc/library/turtle.rst:2354 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" msgstr "" +"formes composées, clones de la forme (*shapesize*), rotation, " +"*get_shapepoly*, *update*" #: ../Doc/library/turtle.rst:2358 msgid "sorting_animate" -msgstr "" +msgstr "*sorting_animate*" #: ../Doc/library/turtle.rst:2358 msgid "visual demonstration of different sorting methods" -msgstr "" +msgstr "démonstration visuelle des différentes méthodes de classement" #: ../Doc/library/turtle.rst:2358 msgid "simple alignment, randomization" -msgstr "" +msgstr "alignement simple, répartition aléatoire" #: ../Doc/library/turtle.rst:2361 msgid "tree" -msgstr "" +msgstr "*tree* (arbre)" #: ../Doc/library/turtle.rst:2361 msgid "a (graphical) breadth first tree (using generators)" -msgstr "" +msgstr "un arbre (tracé) par un parcours en largeur (à l’aide de générateurs)" #: ../Doc/library/turtle.rst:2364 msgid "two_canvases" -msgstr "" +msgstr "*two_canvases* (deux toiles)" #: ../Doc/library/turtle.rst:2364 msgid "simple design" -msgstr "" +msgstr "design simple" #: ../Doc/library/turtle.rst:2364 msgid "turtles on two canvases" -msgstr "" +msgstr "tortues sur deux canevas" #: ../Doc/library/turtle.rst:2367 msgid "wikipedia" -msgstr "" +msgstr "*wikipedia*" #: ../Doc/library/turtle.rst:2367 msgid "a pattern from the wikipedia article on turtle graphics" -msgstr "" +msgstr "un motif issu de l'article de *wikipedia* sur la tortue graphique" #: ../Doc/library/turtle.rst:2367 msgid ":func:`clone`, :func:`undo`" -msgstr "" +msgstr ":func:`clone`, :func:`undo`" #: ../Doc/library/turtle.rst:2370 msgid "yinyang" -msgstr "" +msgstr "*yinyang*" #: ../Doc/library/turtle.rst:2370 msgid "another elementary example" -msgstr "" +msgstr "un autre exemple élémentaire" #: ../Doc/library/turtle.rst:2373 msgid "Have fun!" -msgstr "" +msgstr "Amusez-vous !" #: ../Doc/library/turtle.rst:2377 msgid "Changes since Python 2.6" -msgstr "" +msgstr "Modifications depuis Python 2.6" #: ../Doc/library/turtle.rst:2379 msgid "" @@ -2554,6 +3034,12 @@ msgid "" "2.6 these methods were merely duplications of the corresponding :class:" "`TurtleScreen`/:class:`Screen`-methods.)" msgstr "" +"Les méthodes :meth:`Turtle.tracer`, :meth:`Turtle.window_width` et :meth:" +"`Turtle.window_height` ont été supprimées. Seule :class:`Screen` définit " +"maintenant des méthodes avec ces noms et fonctionnalités. Les fonction " +"dérivées de ces méthodes restent disponibles. (En réalité, déjà en Python " +"2.6 ces méthodes n'étaient que de simples duplicatas des méthodes " +"correspondantes des classes :class:`TurtleScreen`/:class:`Screen`)" #: ../Doc/library/turtle.rst:2387 msgid "" @@ -2561,6 +3047,9 @@ msgid "" "`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" "process must be completed with an ``end_fill()`` call." msgstr "" +"La méthode :meth:`Turtle.fill` à été supprimée. Le fonctionnement de :meth:" +"`begin_fill` et :meth:`end_fill` a légèrement changé : chaque opération de " +"remplissage doit maintenant se terminer par un appel à ``end_fill()``." #: ../Doc/library/turtle.rst:2392 msgid "" @@ -2568,10 +3057,13 @@ msgid "" "``True`` if a filling process is under way, ``False`` otherwise. This " "behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." msgstr "" +"La méthode :meth:`Turtle.filling` a été ajoutée. Elle renvoie le booléen " +"``True`` si une opération de remplissage est en cours,``False`` sinon. Ce " +"comportement correspond à un appel à ``fill()`` sans argument en Python 2.6." #: ../Doc/library/turtle.rst:2398 msgid "Changes since Python 3.0" -msgstr "" +msgstr "Modifications depuis Python 3.0" #: ../Doc/library/turtle.rst:2400 msgid "" @@ -2581,6 +3073,12 @@ msgid "" "`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " "get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." msgstr "" +"Les méthodes :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` et :" +"meth:`Turtle.get_shapepoly` on été ajoutées. Ainsi, la gamme complète des " +"transformations linéaires habituelles est maintenant disponible pour " +"modifier les formes de la tortue. La méthode :meth:`Turtle.tiltangle` a été " +"améliorée : Elle peut maintenant récupérer ou définir l'angle " +"d'inclinaison. :meth:`Turtle.settiltangle` est désormais obsolète." #: ../Doc/library/turtle.rst:2407 msgid "" @@ -2588,6 +3086,10 @@ msgid "" "`Screen.onkey` which in fact binds actions to the keyrelease event. " "Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." msgstr "" +"La méthode :meth:`Screen.onkeypress` a été ajoutée en complément à :meth:" +"`Screen.onkey` qui lie des actions à des relâchements de touches. En " +"conséquence, ce dernier s'est vu doté d'un alias : :meth:`Screen." +"onkeyrelease`." #: ../Doc/library/turtle.rst:2411 msgid "" @@ -2595,6 +3097,9 @@ msgid "" "with Screen and Turtle objects one must not additionally import :func:" "`mainloop` anymore." msgstr "" +"La méthode :meth:`Screen.mainloop` à été ajoutée. Ainsi, lorsque vous " +"travaillez uniquement avec des objets Screen et Turtle, vous n'avez plus " +"besoin d'importer :func:`mainloop`." #: ../Doc/library/turtle.rst:2415 msgid "" @@ -2602,9 +3107,14 @@ msgid "" "numinput`. These popup input dialogs and return strings and numbers " "respectively." msgstr "" +"Deux méthodes d'entrées ont été ajoutées : :meth:`Screen.textinput` et :meth:" +"`Screen.numinput`. Ces dialogues d'entrées renvoient des chaînes de " +"caractères et des nombres respectivement." #: ../Doc/library/turtle.rst:2419 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." msgstr "" +"Deux exemples de scripts :file:`tdemo_nim.py` et :file:`tdemo_round_dance." +"py` ont été ajoutés au répertoire :file:`Lib/turtledemo`." diff --git a/library/types.po b/library/types.po index 748e3e28e..2ea986027 100644 --- a/library/types.po +++ b/library/types.po @@ -104,7 +104,7 @@ msgstr "" #: ../Doc/library/types.rst:69 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` -- Méta-classes dans Python 3000" +msgstr ":pep:`3115` — Méta-classes dans Python 3000" #: ../Doc/library/types.rst:70 msgid "Introduced the ``__prepare__`` namespace hook" @@ -129,7 +129,7 @@ msgstr "" #: ../Doc/library/types.rst:87 msgid ":pep:`560` - Core support for typing module and generic types" msgstr "" -":pep:`560` -- Gestion de base pour les types modules et les types génériques" +":pep:`560` — Gestion de base pour les types modules et les types génériques" #: ../Doc/library/types.rst:91 msgid "Standard Interpreter Types" diff --git a/library/typing.po b/library/typing.po index 8457b7484..3735711ca 100644 --- a/library/typing.po +++ b/library/typing.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/typing.rst:2 msgid ":mod:`typing` --- Support for type hints" -msgstr "" +msgstr ":mod:`typing` — Prise en charge des annotations de type" #: ../Doc/library/typing.rst:9 msgid "**Source code:** :source:`Lib/typing.py`" @@ -43,6 +43,8 @@ msgstr "" msgid "" "The function below takes and returns a string and is annotated as follows::" msgstr "" +"La fonction ci-dessous prend et renvoie une chaîne de caractères, et est " +"annotée comme suit ::" #: ../Doc/library/typing.rst:32 msgid "" @@ -50,10 +52,13 @@ msgid "" "type :class:`str` and the return type :class:`str`. Subtypes are accepted as " "arguments." msgstr "" +"La fonction ``greeting`` s'attend à ce que l'argument ``name`` soit de type :" +"class:`str` et le type de retour :class:`str`. Les sous-types sont acceptés " +"comme arguments." #: ../Doc/library/typing.rst:37 msgid "Type aliases" -msgstr "" +msgstr "Alias de type" #: ../Doc/library/typing.rst:39 msgid "" @@ -66,26 +71,34 @@ msgid "" "Type aliases are useful for simplifying complex type signatures. For " "example::" msgstr "" +"Les alias de type sont utiles pour simplifier les signatures complexes. Par " +"exemple ::" #: ../Doc/library/typing.rst:69 msgid "" "Note that ``None`` as a type hint is a special case and is replaced by " "``type(None)``." msgstr "" +"Notez que ``None`` comme indication de type est un cas particulier et est " +"remplacé par ``type(None)``." #: ../Doc/library/typing.rst:75 msgid "NewType" -msgstr "" +msgstr "*NewType*" #: ../Doc/library/typing.rst:77 msgid "Use the :func:`NewType` helper function to create distinct types::" msgstr "" +"Aidez-vous de la fonction :func:`NewType` pour créer des types distincts ::" #: ../Doc/library/typing.rst:84 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. This is useful in helping catch logical errors::" msgstr "" +"Le vérificateur de type statique traite le nouveau type comme s'il " +"s'agissait d'une sous-classe du type original. C'est utile pour aider à " +"détecter les erreurs logiques ::" #: ../Doc/library/typing.rst:96 msgid "" @@ -94,6 +107,11 @@ msgid "" "pass in a ``UserId`` wherever an ``int`` might be expected, but will prevent " "you from accidentally creating a ``UserId`` in an invalid way::" msgstr "" +"Vous pouvez toujours effectuer toutes les opérations applicables à un entier " +"(type ``int``) sur une variable de type ``UserId``, mais le résultat sera " +"toujours de type ``int``. Ceci vous permet de passer un ``UserId`` partout " +"où un ``int`` est attendu, mais vous empêche de créer accidentellement un " +"``UserId`` d'une manière invalide ::" #: ../Doc/library/typing.rst:104 msgid "" @@ -109,26 +127,33 @@ msgid "" "More precisely, the expression ``some_value is Derived(some_value)`` is " "always true at runtime." msgstr "" +"Plus précisément, l'expression ``some_value is Derived(some_value)`` est " +"toujours vraie au moment de l'exécution." #: ../Doc/library/typing.rst:113 msgid "" "This also means that it is not possible to create a subtype of ``Derived`` " "since it is an identity function at runtime, not an actual type::" msgstr "" +"Cela signifie également qu'il n'est pas possible de créer un sous-type de " +"``Derived`` puisqu'il s'agit d'une fonction d'identité au moment de " +"l'exécution, pas d'un type réel ::" #: ../Doc/library/typing.rst:123 msgid "" "However, it is possible to create a :func:`NewType` based on a 'derived' " "``NewType``::" msgstr "" +"Cependant, il est possible de créer un :func:`NewType` basé sur un " +"``NewType`` « dérivé » ::" #: ../Doc/library/typing.rst:131 msgid "and typechecking for ``ProUserId`` will work as expected." -msgstr "" +msgstr "et la vérification de type pour ``ProUserId`` fonctionne comme prévu." #: ../Doc/library/typing.rst:133 msgid "See :pep:`484` for more details." -msgstr "" +msgstr "Voir la :pep:`484` pour plus de détails." #: ../Doc/library/typing.rst:137 msgid "" @@ -137,6 +162,11 @@ msgid "" "treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. " "This is useful when you want to simplify complex type signatures." msgstr "" +"Rappelons que l'utilisation d'un alias de type déclare que deux types sont " +"*équivalents* l'un à l'autre. Écrire ``Alias = Original`` fait que le " +"vérificateur de type statique traite ``Alias`` comme étant *exactement " +"équivalent* à ``Original`` dans tous les cas. C'est utile lorsque vous " +"voulez simplifier des signatures complexes." #: ../Doc/library/typing.rst:142 msgid "" @@ -147,16 +177,26 @@ msgid "" "``Derived`` is expected. This is useful when you want to prevent logic " "errors with minimal runtime cost." msgstr "" +"En revanche, ``NewType`` déclare qu'un type est un *sous-type* d'un autre. " +"Écrire ``Derived = NewType('Derived', Original)`` fait en sorte que le " +"vérificateur de type statique traite ``Derived`` comme une *sous-classe* de " +"``Original``, ce qui signifie qu'une valeur de type ``Original`` ne peut " +"être utilisée dans les endroits où une valeur de type ``Derived`` est " +"prévue. C'est utile lorsque vous voulez éviter les erreurs logiques avec un " +"coût d'exécution minimal." #: ../Doc/library/typing.rst:152 msgid "Callable" -msgstr "" +msgstr "Appelable" #: ../Doc/library/typing.rst:154 msgid "" "Frameworks expecting callback functions of specific signatures might be type " "hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." msgstr "" +"Les cadriciels (*frameworks* en anglais) qui attendent des fonctions de " +"rappel ayant des signatures spécifiques peuvent être typés en utilisant " +"``Callable[[Arg1Type, Arg2Type], ReturnType]``." #: ../Doc/library/typing.rst:157 msgid "For example::" @@ -168,10 +208,13 @@ msgid "" "the call signature by substituting a literal ellipsis for the list of " "arguments in the type hint: ``Callable[..., ReturnType]``." msgstr "" +"Il est possible de déclarer le type de retour d'un appelable sans spécifier " +"la signature de l'appel en indiquant des points de suspension à la liste des " +"arguments dans l'indice de type : ``Callable[..., ReturnType]``." #: ../Doc/library/typing.rst:175 msgid "Generics" -msgstr "" +msgstr "Génériques" #: ../Doc/library/typing.rst:177 msgid "" @@ -179,20 +222,29 @@ msgid "" "inferred in a generic way, abstract base classes have been extended to " "support subscription to denote expected types for container elements." msgstr "" +"Comme les informations de type sur les objets conservés dans des conteneurs " +"ne peuvent pas être déduites statiquement de manière générique, les classes " +"de base abstraites ont été étendues pour prendre en charge la sélection " +"(*subscription* en anglais) et indiquer les types attendus pour les éléments " +"de conteneur." #: ../Doc/library/typing.rst:188 msgid "" "Generics can be parameterized by using a new factory available in typing " "called :class:`TypeVar`." msgstr "" +"Les génériques peuvent être paramétrés en utilisant une nouvelle fabrique " +"(au sens des patrons de conception) disponible en tapant :class:`TypeVar`." #: ../Doc/library/typing.rst:202 msgid "User-defined generic types" -msgstr "" +msgstr "Types génériques définis par l'utilisateur" #: ../Doc/library/typing.rst:204 msgid "A user-defined class can be defined as a generic class." msgstr "" +"Une classe définie par l'utilisateur peut être définie comme une classe " +"générique." #: ../Doc/library/typing.rst:230 msgid "" @@ -200,6 +252,9 @@ msgid "" "single type parameter ``T`` . This also makes ``T`` valid as a type within " "the class body." msgstr "" +"``Generic[T]`` en tant que classe de base définit que la classe " +"``LoggedVar`` prend un paramètre de type unique ``T``. Ceci rend également " +"``T`` valide en tant que type dans le corps de la classe." #: ../Doc/library/typing.rst:234 msgid "" @@ -212,25 +267,31 @@ msgid "" "A generic type can have any number of type variables, and type variables may " "be constrained::" msgstr "" +"Un type générique peut avoir un nombre quelconque de variables de type et " +"vous pouvez fixer des contraintes sur les variables de type ::" #: ../Doc/library/typing.rst:255 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" msgstr "" +"Chaque argument de variable de type :class:`Generic` doit être distinct. " +"Ceci n'est donc pas valable ::" #: ../Doc/library/typing.rst:266 msgid "You can use multiple inheritance with :class:`Generic`::" -msgstr "" +msgstr "Vous pouvez utiliser l'héritage multiple avec :class:`Generic` ::" #: ../Doc/library/typing.rst:275 msgid "" "When inheriting from generic classes, some type variables could be fixed::" msgstr "" +"Lors de l'héritage de classes génériques, certaines variables de type " +"peuvent être corrigées ::" #: ../Doc/library/typing.rst:284 msgid "In this case ``MyDict`` has a single parameter, ``T``." -msgstr "" +msgstr "Dans ce cas, ``MyDict`` a un seul paramètre, ``T``." #: ../Doc/library/typing.rst:286 msgid "" @@ -238,10 +299,16 @@ msgid "" "for each position. In the following example, ``MyIterable`` is not generic " "but implicitly inherits from ``Iterable[Any]``::" msgstr "" +"L'utilisation d'une classe générique sans spécifier de paramètres de type " +"suppose :data:`Any` pour chaque position. Dans l'exemple suivant, " +"``MyIterable`` n'est pas générique mais hérite implicitement de " +"``Iterable[Any]`` ::" #: ../Doc/library/typing.rst:294 msgid "User defined generic type aliases are also supported. Examples::" msgstr "" +"Les alias de type générique définis par l'utilisateur sont également pris en " +"charge. Exemples ::" #: ../Doc/library/typing.rst:310 msgid "" @@ -255,7 +322,7 @@ msgstr "" #: ../Doc/library/typing.rst:319 msgid "The :data:`Any` type" -msgstr "" +msgstr "Le type :data:`Any`" #: ../Doc/library/typing.rst:321 msgid "" @@ -263,6 +330,9 @@ msgid "" "every type as being compatible with :data:`Any` and :data:`Any` as being " "compatible with every type." msgstr "" +"Un type particulier est :data:`Any`. Un vérificateur de type statique traite " +"chaque type comme étant compatible avec :data:`Any` et :data:`Any` comme " +"étant compatible avec chaque type." #: ../Doc/library/typing.rst:325 msgid "" @@ -278,18 +348,27 @@ msgid "" "declared to be of type :class:`str` and receives an :class:`int` value at " "runtime!" msgstr "" +"Notez qu'aucun contrôle de typage n'est effectué lors de l'affectation d'une " +"valeur de type :data:`Any` à un type plus précis. Par exemple, le " +"vérificateur de type statique ne signale pas d'erreur lors de l'affectation " +"de ``a`` à ``s`` même si ``s`` était déclaré être de type :class:`str` et " +"reçoit une valeur :class:`int` au moment de son exécution !" #: ../Doc/library/typing.rst:349 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" msgstr "" +"De plus, toutes les fonctions sans type de retour ni type de paramètre sont " +"considérées comme utilisant :data:`Any` implicitement par défaut ::" #: ../Doc/library/typing.rst:362 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." msgstr "" +"Ce comportement permet à :data:`Any` d'être utilisé comme succédané lorsque " +"vous avez besoin de mélanger du code typé dynamiquement et statiquement." #: ../Doc/library/typing.rst:365 msgid "" @@ -298,6 +377,10 @@ msgid "" "unlike :data:`Any`, the reverse is not true: :class:`object` is *not* a " "subtype of every other type." msgstr "" +"Comparons le comportement de :data:`Any` avec celui de :class:`object`. De " +"la même manière que pour :data:`Any`, chaque type est un sous-type de :class:" +"`object`. Cependant, contrairement à :data:`Any`, l'inverse n'est pas " +"vrai : :class:`object` n'est *pas* un sous-type de chaque autre type." #: ../Doc/library/typing.rst:370 msgid "" @@ -306,12 +389,19 @@ msgid "" "it as a return value) of a more specialized type is a type error. For " "example::" msgstr "" +"Cela signifie que lorsque le type d'une valeur est :class:`object`, un " +"vérificateur de type rejette presque toutes les opérations sur celle-ci, et " +"l'affecter à une variable (ou l'utiliser comme une valeur de retour) d'un " +"type plus spécialisé est une erreur de typage. Par exemple ::" #: ../Doc/library/typing.rst:392 msgid "" "Use :class:`object` to indicate that a value could be any type in a typesafe " "manner. Use :data:`Any` to indicate that a value is dynamically typed." msgstr "" +"Utilisez :class:`object` pour indiquer qu'une valeur peut être de n'importe " +"quel type de manière sûre. Utiliser :data:`Any` pour indiquer qu'une valeur " +"est typée dynamiquement." #: ../Doc/library/typing.rst:396 msgid "Classes, functions, and decorators" @@ -323,7 +413,7 @@ msgstr "" #: ../Doc/library/typing.rst:402 msgid "Type variable." -msgstr "" +msgstr "Variables de type." #: ../Doc/library/typing.rst:404 ../Doc/library/typing.rst:833 msgid "Usage::" @@ -336,6 +426,11 @@ msgid "" "function definitions. See class Generic for more information on generic " "types. Generic functions work as follows::" msgstr "" +"Les variables de type existent principalement dans l'intérêt des contrôleurs " +"de type statiques. Elles servent de paramètres pour les types génériques " +"ainsi que pour les définitions de fonctions génériques. Voir la classe " +"``Generic`` pour plus d'informations sur les types génériques. Les fonctions " +"génériques fonctionnent comme suit ::" #: ../Doc/library/typing.rst:422 msgid "" @@ -344,12 +439,19 @@ msgid "" "arguments are instances of some subclass of :class:`str`, the return type is " "still plain :class:`str`." msgstr "" +"La signature de ce dernier exemple est essentiellement la surcharge de " +"``(str, str) -> str`` et ``(bytes, bytes) -> bytes``. Notez également que si " +"les arguments sont des instances d'une sous-classe de la classe :class:" +"`str`, le type de retour est toujours la classe :class:`str`." #: ../Doc/library/typing.rst:427 msgid "" "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In general, :" "func:`isinstance` and :func:`issubclass` should not be used with types." msgstr "" +"Au moment de l'exécution, ``isinstance(x, T)`` va lever :exc:`TypeError`. En " +"général, :func:`isinstance` et :func:`issubclass` ne devraient pas être " +"utilisés avec les types." #: ../Doc/library/typing.rst:430 msgid "" @@ -360,10 +462,17 @@ msgid "" "an actual type substituted (explicitly or implicitly) for the type variable " "must be a subclass of the boundary type, see :pep:`484`." msgstr "" +"Les variables de type peuvent être marquées covariantes ou contravariantes " +"en passant ``covariant=True`` ou ``contravariant=True``. Voir la :pep:`484` " +"pour plus de détails. Par défaut, les variables de type sont invariantes. " +"Sinon, une variable de type peut spécifier une limite supérieure en " +"utilisant ``bound=``. Cela signifie qu'un type réel substitué " +"(explicitement ou implicitement) à la variable type doit être une sous-" +"classe du type frontière (*boundary* en anglais), voir la :pep:`484`." #: ../Doc/library/typing.rst:440 msgid "Abstract base class for generic types." -msgstr "" +msgstr "Classe de base abstraite pour les types génériques." #: ../Doc/library/typing.rst:442 msgid "" @@ -371,10 +480,13 @@ msgid "" "this class with one or more type variables. For example, a generic mapping " "type might be defined as::" msgstr "" +"Un type générique est généralement déclaré en héritant d'une instanciation " +"de cette classe avec une ou plusieurs variables de type. Par exemple, un " +"type de correspondance générique peut être défini comme suit ::" #: ../Doc/library/typing.rst:451 msgid "This class can then be used as follows::" -msgstr "" +msgstr "Cette classe peut alors être utilisée comme suit ::" #: ../Doc/library/typing.rst:464 msgid "" @@ -383,10 +495,14 @@ msgid "" "classes themselves -- specifically, it will accept the *class object* of " "``C``. For example::" msgstr "" +"Une variable annotée de ``C`` peut accepter une valeur de type ``C``. En " +"revanche, une variable annotée avec ``Type[C]`` peut accepter des valeurs " +"qui sont elles-mêmes des classes — plus précisément, elle accepte l'objet " +"*class* de ``C``. Par exemple ::" #: ../Doc/library/typing.rst:473 msgid "Note that ``Type[C]`` is covariant::" -msgstr "" +msgstr "Notez que ``Type[C]`` est covariant ::" #: ../Doc/library/typing.rst:485 msgid "" @@ -397,104 +513,123 @@ msgid "" "the indicated base class. How the type checker is required to handle this " "particular case may change in future revisions of :pep:`484`." msgstr "" +"Le fait que ``Type[C]`` soit covariant implique que toutes les sous-classes " +"de ``C`` doivent implémenter la même signature de constructeur et les " +"signatures de méthode de classe que ``C``. Le vérificateur de type doit " +"signaler les manquements à cette règle. Il doit également autoriser les " +"appels du constructeur dans les sous-classes qui correspondent aux appels du " +"constructeur dans la classe de base indiquée. La façon dont le vérificateur " +"de type est tenu de traiter ce cas particulier peut changer dans les futures " +"révisions de :pep:`484`." #: ../Doc/library/typing.rst:493 msgid "" "The only legal parameters for :class:`Type` are classes, :data:`Any`, :ref:" "`type variables `, and unions of any of these types. For example::" msgstr "" +"Les seuls paramètres légitimes pour :class:`Type` sont les classes, :data:" +"`Any`, :ref:`type variables `, et les unions de ces types. Par " +"exemple ::" #: ../Doc/library/typing.rst:499 msgid "" "``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to " "``type``, which is the root of Python's metaclass hierarchy." msgstr "" +"``Type[Any]`` est équivalent à ``Type`` qui à son tour est équivalent à " +"``type``, qui est la racine de la hiérarchie des métaclasses de Python." #: ../Doc/library/typing.rst:506 msgid "A generic version of :class:`collections.abc.Iterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterable`." #: ../Doc/library/typing.rst:510 msgid "A generic version of :class:`collections.abc.Iterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Iterator`." #: ../Doc/library/typing.rst:514 msgid "A generic version of :class:`collections.abc.Reversible`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Reversible`." #: ../Doc/library/typing.rst:518 msgid "An ABC with one abstract method ``__int__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__int__``." #: ../Doc/library/typing.rst:522 msgid "An ABC with one abstract method ``__float__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__float__``." #: ../Doc/library/typing.rst:526 msgid "An ABC with one abstract method ``__complex__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__complex__``." #: ../Doc/library/typing.rst:530 msgid "An ABC with one abstract method ``__bytes__``." -msgstr "" +msgstr "Une ABC avec une méthode abstraite ``__bytes__``." #: ../Doc/library/typing.rst:534 msgid "" "An ABC with one abstract method ``__abs__`` that is covariant in its return " "type." msgstr "" +"Une ABC avec une méthode abstraite ``__abs__`` qui est covariante dans son " +"type de retour." #: ../Doc/library/typing.rst:539 msgid "" "An ABC with one abstract method ``__round__`` that is covariant in its " "return type." msgstr "" +"Une ABC avec une méthode abstraite ``__round__`` qui est covariante dans son " +"type de retour." #: ../Doc/library/typing.rst:544 msgid "A generic version of :class:`collections.abc.Container`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Container`." #: ../Doc/library/typing.rst:548 msgid "An alias to :class:`collections.abc.Hashable`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Hashable`" #: ../Doc/library/typing.rst:552 msgid "An alias to :class:`collections.abc.Sized`" -msgstr "" +msgstr "Un alias pour :class:`collections.abc.Sized`" #: ../Doc/library/typing.rst:556 msgid "A generic version of :class:`collections.abc.Collection`" -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Collection`" #: ../Doc/library/typing.rst:562 msgid "A generic version of :class:`collections.abc.Set`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Set`." #: ../Doc/library/typing.rst:566 msgid "A generic version of :class:`collections.abc.MutableSet`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSet`." #: ../Doc/library/typing.rst:570 msgid "" "A generic version of :class:`collections.abc.Mapping`. This type can be used " "as follows::" msgstr "" +"Une version générique de :class:`collections.abc.Mapping`. Ce type peut être " +"utilisé comme suit ::" #: ../Doc/library/typing.rst:578 msgid "A generic version of :class:`collections.abc.MutableMapping`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableMapping`." #: ../Doc/library/typing.rst:582 msgid "A generic version of :class:`collections.abc.Sequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Sequence`." #: ../Doc/library/typing.rst:586 msgid "A generic version of :class:`collections.abc.MutableSequence`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MutableSequence`." #: ../Doc/library/typing.rst:590 msgid "A generic version of :class:`collections.abc.ByteString`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ByteString`." #: ../Doc/library/typing.rst:592 msgid "" @@ -507,10 +642,12 @@ msgid "" "As a shorthand for this type, :class:`bytes` can be used to annotate " "arguments of any of the types mentioned above." msgstr "" +"Comme abréviation pour ce type, :class:`bytes` peut être utilisé pour " +"annoter des arguments de n'importe quel type mentionné ci-dessus." #: ../Doc/library/typing.rst:600 msgid "A generic version of :class:`collections.deque`." -msgstr "" +msgstr "Une version générique de :class:`collections.deque`." #: ../Doc/library/typing.rst:607 msgid "" @@ -518,10 +655,13 @@ msgid "" "annotate arguments it is preferred to use an abstract collection type such " "as :class:`Sequence` or :class:`Iterable`." msgstr "" +"Version générique de :class:`list`. Utile pour annoter les types de retour. " +"Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Sequence` ou :class:`Iterable`." #: ../Doc/library/typing.rst:612 msgid "This type may be used as follows::" -msgstr "" +msgstr "Ce type peut être utilisé comme suit ::" #: ../Doc/library/typing.rst:624 msgid "" @@ -529,30 +669,33 @@ msgid "" "return types. To annotate arguments it is preferred to use an abstract " "collection type such as :class:`AbstractSet`." msgstr "" +"Une version générique de :class:`builtins.set `. Utile pour annoter les " +"types de retour. Pour annoter les arguments, il est préférable d'utiliser un " +"type de collection abstraite tel que :class:`AbstractSet`." #: ../Doc/library/typing.rst:630 msgid "A generic version of :class:`builtins.frozenset `." -msgstr "" +msgstr "Une version générique de :class:`builtins.frozenset `." #: ../Doc/library/typing.rst:634 msgid "A generic version of :class:`collections.abc.MappingView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.MappingView`." #: ../Doc/library/typing.rst:638 msgid "A generic version of :class:`collections.abc.KeysView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.KeysView`." #: ../Doc/library/typing.rst:642 msgid "A generic version of :class:`collections.abc.ItemsView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ItemsView`." #: ../Doc/library/typing.rst:646 msgid "A generic version of :class:`collections.abc.ValuesView`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.ValuesView`." #: ../Doc/library/typing.rst:650 msgid "A generic version of :class:`collections.abc.Awaitable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.Awaitable`." #: ../Doc/library/typing.rst:656 msgid "" @@ -560,22 +703,26 @@ msgid "" "order of type variables correspond to those of :class:`Generator`, for " "example::" msgstr "" +"Une version générique de :class:`collections.abc.Coroutine`. La variance et " +"l'ordre des variables de type correspondent à ceux de la classe :class:" +"`Generator`, par exemple ::" #: ../Doc/library/typing.rst:671 msgid "A generic version of :class:`collections.abc.AsyncIterable`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterable`." #: ../Doc/library/typing.rst:677 msgid "A generic version of :class:`collections.abc.AsyncIterator`." -msgstr "" +msgstr "Une version générique de :class:`collections.abc.AsyncIterator`." #: ../Doc/library/typing.rst:683 msgid "A generic version of :class:`contextlib.AbstractContextManager`." -msgstr "" +msgstr "Une version générique de :class:`contextlib.AbstractContextManager`." #: ../Doc/library/typing.rst:690 msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." msgstr "" +"Une version générique de :class:`contextlib.AbstractAsyncContextManager`." #: ../Doc/library/typing.rst:697 msgid "" @@ -583,32 +730,37 @@ msgid "" "annotate arguments it is preferred to use an abstract collection type such " "as :class:`Mapping`." msgstr "" +"Une version générique de :class:`dict`. Utile pour annoter les types de " +"retour. Pour annoter les arguments, il est préférable d'utiliser un type de " +"collection abstraite tel que :class:`Mapping`." #: ../Doc/library/typing.rst:701 msgid "This type can be used as follows::" -msgstr "" +msgstr "Ce type peut être utilisé comme suit ::" #: ../Doc/library/typing.rst:708 msgid "A generic version of :class:`collections.defaultdict`." -msgstr "" +msgstr "Une version générique de :class:`collections.defaultdict`." #: ../Doc/library/typing.rst:714 msgid "A generic version of :class:`collections.OrderedDict`." -msgstr "" +msgstr "Une version générique de :class:`collections.OrderedDict`." #: ../Doc/library/typing.rst:720 msgid "A generic version of :class:`collections.Counter`." -msgstr "" +msgstr "Une version générique de :class:`collections.Counter`." #: ../Doc/library/typing.rst:727 msgid "A generic version of :class:`collections.ChainMap`." -msgstr "" +msgstr "Une version générique de :class:`collections.ChainMap`." #: ../Doc/library/typing.rst:734 msgid "" "A generator can be annotated by the generic type ``Generator[YieldType, " "SendType, ReturnType]``. For example::" msgstr "" +"Un générateur peut être annoté par le type générique ``Generator[YieldType, " +"SendType, ReturnType]``. Par exemple ::" #: ../Doc/library/typing.rst:743 msgid "" @@ -616,24 +768,33 @@ msgid "" "of :class:`Generator` behaves contravariantly, not covariantly or " "invariantly." msgstr "" +"Notez que contrairement à beaucoup d'autres génériques dans le module " +"*typing*, le ``SendType`` de :class:`Generator` se comporte de manière " +"contravariante, pas de manière covariante ou invariante." #: ../Doc/library/typing.rst:747 msgid "" "If your generator will only yield values, set the ``SendType`` and " "``ReturnType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez les paramètres " +"``SendType`` et ``ReturnType`` sur ``None`` ::" #: ../Doc/library/typing.rst:755 msgid "" "Alternatively, annotate your generator as having a return type of either " "``Iterable[YieldType]`` or ``Iterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``Iterable[YieldType]`` ou ``Iterator[YieldType]`` ::" #: ../Doc/library/typing.rst:765 msgid "" "An async generator can be annotated by the generic type " "``AsyncGenerator[YieldType, SendType]``. For example::" msgstr "" +"Un générateur asynchrone peut être annoté par le type générique " +"``AsyncGenerator[YieldType, SendType]``. Par exemple ::" #: ../Doc/library/typing.rst:774 msgid "" @@ -641,17 +802,25 @@ msgid "" "is no ``ReturnType`` type parameter. As with :class:`Generator`, the " "``SendType`` behaves contravariantly." msgstr "" +"Contrairement aux générateurs normaux, les générateurs asynchrones ne " +"peuvent pas renvoyer une valeur, il n'y a donc pas de paramètre de type " +"``ReturnType``. Comme avec :class:`Generator`, le ``SendType`` se comporte " +"de manière contravariante." #: ../Doc/library/typing.rst:778 msgid "" "If your generator will only yield values, set the ``SendType`` to ``None``::" msgstr "" +"Si votre générateur ne donne que des valeurs, réglez le paramètre " +"``SendType`` sur ``None`` ::" #: ../Doc/library/typing.rst:786 msgid "" "Alternatively, annotate your generator as having a return type of either " "``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" msgstr "" +"Alternativement, annotez votre générateur comme ayant un type de retour soit " +"``AsyncIterable[YieldType]`` ou ``AsyncIterator[YieldType]`` ::" #: ../Doc/library/typing.rst:798 msgid "" @@ -659,12 +828,17 @@ msgid "" "compatible path for Python 2 code: in Python 2, ``Text`` is an alias for " "``unicode``." msgstr "" +"``Text`` est un alias pour ``str``. Il est fourni pour obtenir une " +"compatibilité ascendante du code Python 2 : en Python 2, ``Text`` est un " +"alias pour ``unicode``." #: ../Doc/library/typing.rst:802 msgid "" "Use ``Text`` to indicate that a value must contain a unicode string in a " "manner that is compatible with both Python 2 and Python 3::" msgstr "" +"Utilisez ``Text`` pour indiquer qu'une valeur doit contenir une chaîne " +"Unicode d'une manière compatible avec Python 2 et Python 3 ::" #: ../Doc/library/typing.rst:814 msgid "" @@ -683,7 +857,7 @@ msgstr "" #: ../Doc/library/typing.rst:831 msgid "Typed version of :func:`collections.namedtuple`." -msgstr "" +msgstr "Version typée de :func:`collections.namedtuple`." #: ../Doc/library/typing.rst:839 msgid "This is equivalent to::" @@ -693,11 +867,15 @@ msgstr "C’est équivalent à ::" msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" +"Pour assigner une valeur par défaut à un champ, vous pouvez lui donner dans " +"le corps de classe ::" #: ../Doc/library/typing.rst:852 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" +"Les champs avec une valeur par défaut doivent venir après tous les champs " +"sans valeur par défaut." #: ../Doc/library/typing.rst:854 msgid "" @@ -710,18 +888,23 @@ msgstr "" #: ../Doc/library/typing.rst:859 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" +"Les sous-classes de ``NamedTuple`` peuvent aussi avoir des *docstrings* et " +"des méthodes ::" #: ../Doc/library/typing.rst:869 msgid "Backward-compatible usage::" -msgstr "" +msgstr "Utilisation rétrocompatible ::" #: ../Doc/library/typing.rst:873 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" +"Ajout de la gestion de la syntaxe d'annotation variable de la :pep:`526`." #: ../Doc/library/typing.rst:876 msgid "Added support for default values, methods, and docstrings." msgstr "" +"Ajout de la prise en charge des valeurs par défaut, des méthodes et des " +"chaînes de caractères *docstrings*." #: ../Doc/library/typing.rst:881 msgid "" @@ -730,6 +913,12 @@ msgid "" "into ``List[ForwardRef(\"SomeClass\")]``. This class should not be " "instantiated by a user, but may be used by introspection tools." msgstr "" +"Une classe utilisée pour le typage interne de la représentation des " +"références directes des chaînes de caractères. Par exemple, " +"``Liste[\"SomeClass\"]`` est implicitement transformé en " +"``Liste[ForwardRef(\"SomeClass\")]``. Cette classe ne doit pas être " +"instanciée par un utilisateur, mais peut être utilisée par des outils " +"d'introspection." #: ../Doc/library/typing.rst:888 msgid "" @@ -740,7 +929,7 @@ msgstr "" #: ../Doc/library/typing.rst:899 msgid "Cast a value to a type." -msgstr "" +msgstr "Convertit une valeur en un type." #: ../Doc/library/typing.rst:901 msgid "" @@ -748,12 +937,18 @@ msgid "" "return value has the designated type, but at runtime we intentionally don't " "check anything (we want this to be as fast as possible)." msgstr "" +"Ceci renvoie la valeur inchangée. Pour le vérificateur de type, cela " +"signifie que la valeur de retour a le type désigné mais, à l'exécution, " +"intentionnellement, rien n'est vérifié (afin que cela soit aussi rapide que " +"possible)." #: ../Doc/library/typing.rst:908 msgid "" "Return a dictionary containing type hints for a function, method, module or " "class object." msgstr "" +"renvoie un dictionnaire contenant des indications de type pour une fonction, " +"une méthode, un module ou un objet de classe." #: ../Doc/library/typing.rst:911 msgid "" @@ -764,6 +959,13 @@ msgid "" "``None`` is set. For a class ``C``, return a dictionary constructed by " "merging all the ``__annotations__`` along ``C.__mro__`` in reverse order." msgstr "" +"C'est souvent équivalent à ``obj.__annotations__``. De plus, les références " +"directes encodées sous forme de chaîne littérales sont traitées en les " +"évaluant dans les espaces de nommage ``globals`` et ``locals``. Si " +"nécessaire, ``Optional[t]`` est ajouté pour les annotations de fonction et " +"de méthode si une valeur par défaut égale à ``None`` est définie. Pour une " +"classe ``C``, renvoie un dictionnaire construit en fusionnant toutes les " +"``__annotations__`` en parcourant ``C.__mro__`` en ordre inverse." #: ../Doc/library/typing.rst:921 msgid "" @@ -779,14 +981,29 @@ msgid "" "gives a more precise type than can be expressed using a union or a type " "variable::" msgstr "" +"Le décorateur ``@overload``` permet de décrire des fonctions et des méthodes " +"qui acceptent plusieurs combinaisons différentes de types d'arguments. Une " +"série de définitions décorées avec ``overload`` doit être suivie d'une seule " +"définition non décorée de ``overload`` (pour la même fonction/méthode). Les " +"définitions décorées de ``@overload`` ne sont destinées qu'au vérificateur " +"de type, puisqu'elles sont écrasées par la définition non décorée de " +"``@overload`` ; cette dernière, en revanche, est utilisée à l'exécution mais " +"qu'il convient que le vérificateur de type l'ignore. Lors de l'exécution, " +"l'appel direct d'une fonction décorée avec ``@overload`` lèvera :exc:" +"`NotImplementedError`. Un exemple de surcharge qui donne un type plus précis " +"que celui qui peut être exprimé à l'aide d'une variable union ou type ::" #: ../Doc/library/typing.rst:945 msgid "See :pep:`484` for details and comparison with other typing semantics." msgstr "" +"Voir la :pep:`484` pour plus de détails et la comparaison avec d'autres " +"sémantiques de typage." #: ../Doc/library/typing.rst:949 msgid "Decorator to indicate that annotations are not type hints." msgstr "" +"Décorateur pour indiquer que les annotations ne sont pas des indications de " +"type." #: ../Doc/library/typing.rst:951 msgid "" @@ -794,24 +1011,33 @@ msgid "" "recursively to all methods defined in that class (but not to methods defined " "in its superclasses or subclasses)." msgstr "" +"Cela fonctionne en tant que classe ou fonction :term:`décoratrice " +"`. Avec une classe, elle s'applique récursivement à toutes les " +"méthodes définies dans cette classe (mais pas aux méthodes définies dans ses " +"superclasses ou sous-classes)." #: ../Doc/library/typing.rst:955 msgid "This mutates the function(s) in place." -msgstr "" +msgstr "Cela fait muter la ou les fonctions en place." #: ../Doc/library/typing.rst:959 msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" +"Décorateur pour donner à un autre décorateur l'effet :func:`no_type_check`." #: ../Doc/library/typing.rst:961 msgid "" "This wraps the decorator with something that wraps the decorated function " "in :func:`no_type_check`." msgstr "" +"Ceci enveloppe le décorateur avec quelque chose qui enveloppe la fonction " +"décorée dans :func:`no_type_check`." #: ../Doc/library/typing.rst:966 msgid "Decorator to mark a class or function to be unavailable at runtime." msgstr "" +"Décorateur pour marquer une classe ou une fonction comme étant indisponible " +"au moment de l'exécution." #: ../Doc/library/typing.rst:968 msgid "" @@ -819,80 +1045,91 @@ msgid "" "mark classes that are defined in type stub files if an implementation " "returns an instance of a private class::" msgstr "" +"Ce décorateur n'est pas disponible à l'exécution. Il est principalement " +"destiné à marquer les classes qui sont définies dans des fichiers séparés " +"d'annotations de type (*type stub file*, en anglais) si une implémentation " +"renvoie une instance d'une classe privée ::" #: ../Doc/library/typing.rst:979 msgid "" "Note that returning instances of private classes is not recommended. It is " "usually preferable to make such classes public." msgstr "" +"Notez qu'il n'est pas recommandé de renvoyer les instances des classes " +"privées. Il est généralement préférable de rendre ces classes publiques." #: ../Doc/library/typing.rst:984 msgid "Special type indicating an unconstrained type." -msgstr "" +msgstr "Type spécial indiquant un type non contraint." #: ../Doc/library/typing.rst:986 msgid "Every type is compatible with :data:`Any`." -msgstr "" +msgstr "Chaque type est compatible avec :data:`Any`." #: ../Doc/library/typing.rst:987 msgid ":data:`Any` is compatible with every type." -msgstr "" +msgstr ":data:`Any` est compatible avec tous les types." #: ../Doc/library/typing.rst:991 msgid "Special type indicating that a function never returns. For example::" -msgstr "" +msgstr "Type spécial indiquant qu'une fonction ne renvoie rien. Par exemple ::" #: ../Doc/library/typing.rst:1004 msgid "Union type; ``Union[X, Y]`` means either X or Y." -msgstr "" +msgstr "Type « union » ; ``Union[X, Y]`` signifie X ou Y." #: ../Doc/library/typing.rst:1006 msgid "To define a union, use e.g. ``Union[int, str]``. Details:" msgstr "" +"Pour définir une union, utilisez par exemple ``Union[int, str]``. Détail :" #: ../Doc/library/typing.rst:1008 msgid "The arguments must be types and there must be at least one." msgstr "" +"Les arguments doivent être des types et il doit y en avoir au moins un." #: ../Doc/library/typing.rst:1010 msgid "Unions of unions are flattened, e.g.::" -msgstr "" +msgstr "Les unions d'unions sont aplanies, par exemple ::" #: ../Doc/library/typing.rst:1014 msgid "Unions of a single argument vanish, e.g.::" -msgstr "" +msgstr "Les unions d'un seul argument disparaissent, par exemple ::" #: ../Doc/library/typing.rst:1018 msgid "Redundant arguments are skipped, e.g.::" -msgstr "" +msgstr "Les arguments redondants sont ignorés, par exemple ::" #: ../Doc/library/typing.rst:1022 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" +"Lors de la comparaison d'unions, l'ordre des arguments est ignoré, par " +"exemple ::" #: ../Doc/library/typing.rst:1026 msgid "You cannot subclass or instantiate a union." -msgstr "" +msgstr "Vous ne pouvez pas sous-classer ou instancier une union." #: ../Doc/library/typing.rst:1028 msgid "You cannot write ``Union[X][Y]``." -msgstr "" +msgstr "Vous ne pouvez pas écrire ``Union[X][Y]``." #: ../Doc/library/typing.rst:1030 msgid "You can use ``Optional[X]`` as a shorthand for ``Union[X, None]``." msgstr "" +"Vous pouvez utiliser l'abréviation ``Optional[X]`` pour ``Union[X, None]``." #: ../Doc/library/typing.rst:1032 msgid "Don't remove explicit subclasses from unions at runtime." -msgstr "" +msgstr "Ne supprime pas les sous-classes explicites des unions à l'exécution." #: ../Doc/library/typing.rst:1037 msgid "Optional type." -msgstr "" +msgstr "Type « optionnel »." #: ../Doc/library/typing.rst:1039 msgid "``Optional[X]`` is equivalent to ``Union[X, None]``." -msgstr "" +msgstr "``Optional[X]`` équivaut à ``Union[X, None]``." #: ../Doc/library/typing.rst:1041 msgid "" @@ -901,6 +1138,10 @@ msgid "" "the ``Optional`` qualifier on its type annotation just because it is " "optional. For example::" msgstr "" +"Notez que ce n'est pas le même concept qu'un argument optionnel, qui est un " +"argument qui possède une valeur par défaut. Un argument optionnel (qui a une " +"valeur par défaut) ne nécessite pas, à ce titre, le qualificatif " +"``Optional`` sur son annotation de type. Par exemple ::" #: ../Doc/library/typing.rst:1049 msgid "" @@ -908,6 +1149,9 @@ msgid "" "``Optional`` is appropriate, whether the argument is optional or not. For " "example::" msgstr "" +"Par contre, si une valeur explicite de ``None`` est permise, l'utilisation " +"de ``Optional`` est appropriée, que l'argument soit facultatif ou non. Par " +"exemple ::" #: ../Doc/library/typing.rst:1058 msgid "" @@ -921,6 +1165,9 @@ msgid "" "variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an int, a " "float and a string." msgstr "" +"Exemple : ``Tuple[T1, T2]`` est une paire correspondant aux variables de " +"type ``T1`` et ``T2``. ``Tuple[int, float, str]`` est un triplet composé " +"d'un entier, d'un flottant et d'une chaîne de caractères." #: ../Doc/library/typing.rst:1065 msgid "" @@ -928,10 +1175,15 @@ msgid "" "ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to " "``Tuple[Any, ...]``, and in turn to :class:`tuple`." msgstr "" +"Pour spécifier un n-uplet de longueur variable et de type homogène, utilisez " +"une ellipse, par exemple ``Tuple[int, ....]``. Un n-uplet :data:`Tuple` est " +"équivalent à ``Tuple[Any, ....]`` et, à son tour, à :class:`tuple`." #: ../Doc/library/typing.rst:1071 msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." msgstr "" +"Type Appelable. ``Callable[[int], str]`` est une fonction de type ``(int) -> " +"str``." #: ../Doc/library/typing.rst:1073 msgid "" @@ -939,6 +1191,10 @@ msgid "" "argument list and the return type. The argument list must be a list of " "types or an ellipsis; the return type must be a single type." msgstr "" +"La syntaxe de sélection (*subscription* en anglais) doit toujours être " +"utilisée avec exactement deux valeurs : la liste d'arguments et le type de " +"retour. La liste d'arguments doit être une liste de types ou une ellipse ; " +"il doit y avoir un seul type de retour." #: ../Doc/library/typing.rst:1078 msgid "" @@ -949,10 +1205,18 @@ msgid "" "equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc." "Callable`." msgstr "" +"Il n'y a pas de syntaxe pour indiquer les arguments optionnels ou les " +"arguments par mots-clés ; de tels types de fonctions sont rarement utilisés " +"comme types de rappel. ``Callable[..., ReturnType]`` (ellipse) peut être " +"utilisé pour annoter le type d'un appelable, prenant un nombre quelconque " +"d'arguments et renvoyant ``ReturnType``. Un simple :data:`Callable` est " +"équivalent à ``Callable[..., Any]`` et, à son tour, à :class:`collections." +"abc.Callable`." #: ../Doc/library/typing.rst:1088 msgid "Special type construct to mark class variables." msgstr "" +"Construction de type particulière pour indiquer les variables de classe." #: ../Doc/library/typing.rst:1090 msgid "" @@ -960,10 +1224,14 @@ msgid "" "indicates that a given attribute is intended to be used as a class variable " "and should not be set on instances of that class. Usage::" msgstr "" +"Telle qu'introduite dans la :pep:`526`, une annotation de variable " +"enveloppée dans ClassVar indique qu'un attribut donné est destiné à être " +"utilisé comme une variable de classe et ne doit pas être défini sur des " +"instances de cette classe. Utilisation ::" #: ../Doc/library/typing.rst:1098 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." -msgstr "" +msgstr ":data:`ClassVar` n'accepte que les types et ne peut plus être dérivé." #: ../Doc/library/typing.rst:1100 msgid "" @@ -972,24 +1240,36 @@ msgid "" "runtime behavior, but it can be used by third-party type checkers. For " "example, a type checker might flag the following code as an error::" msgstr "" +":data:`ClassVar` n'est pas une classe en soi, et ne devrait pas être " +"utilisée avec :func:`isinstance` ou :func:`issubclass`. :data:`ClassVar` ne " +"modifie pas le comportement d'exécution Python, mais il peut être utilisé " +"par des vérificateurs tiers. Par exemple, un vérificateur de type peut " +"marquer le code suivant comme une erreur ::" #: ../Doc/library/typing.rst:1114 msgid "" "``AnyStr`` is a type variable defined as ``AnyStr = TypeVar('AnyStr', str, " "bytes)``." msgstr "" +"``AnyStr`` est une variable de type définie comme ``AnyStr = " +"TypeVar('AnyStr', str, bytes)``." #: ../Doc/library/typing.rst:1117 msgid "" "It is meant to be used for functions that may accept any kind of string " "without allowing different kinds of strings to mix. For example::" msgstr "" +"Cela est destiné à être utilisé pour des fonctions qui peuvent accepter " +"n'importe quel type de chaîne de caractères sans permettre à différents " +"types de chaînes de caractères de se mélanger. Par exemple ::" #: ../Doc/library/typing.rst:1129 msgid "" "A special constant that is assumed to be ``True`` by 3rd party static type " "checkers. It is ``False`` at runtime. Usage::" msgstr "" +"Constante spéciale qui vaut ``True`` pour les vérificateurs de type " +"statiques tiers et ``False`` à l'exécution. Utilisation ::" #: ../Doc/library/typing.rst:1138 msgid "" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 9dc5927df..182ebc438 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -20,35 +20,40 @@ msgstr "" #: ../Doc/library/unittest.mock-examples.rst:13 msgid "Using Mock" -msgstr "" +msgstr "Utilisation de Mock ou l'art de singer" #: ../Doc/library/unittest.mock-examples.rst:16 msgid "Mock Patching Methods" -msgstr "" +msgstr "Simulation des méthodes" #: ../Doc/library/unittest.mock-examples.rst:18 msgid "Common uses for :class:`Mock` objects include:" -msgstr "" +msgstr "Usages courant de :class:`Mock` :" #: ../Doc/library/unittest.mock-examples.rst:20 msgid "Patching methods" -msgstr "" +msgstr "Substitution des méthodes" #: ../Doc/library/unittest.mock-examples.rst:21 msgid "Recording method calls on objects" -msgstr "" +msgstr "Enregistrement des appels faits sur les objets" #: ../Doc/library/unittest.mock-examples.rst:23 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" +"On peut remplacer une méthode sur un objet pour contrôler qu'elle est bien " +"appelée avec le nombre correct d'arguments :" #: ../Doc/library/unittest.mock-examples.rst:31 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" +"Une fois notre objet simulacre appelé (via ``real.method`` dans notre " +"exemple), il fournit des méthodes et attributs permettant de valider comment " +"il a été appelé." #: ../Doc/library/unittest.mock-examples.rst:36 msgid "" @@ -56,6 +61,10 @@ msgid "" "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" +"Dans la majeure partie des exemples donnés ici, les classes :class:`Mock` " +"et :class:`MagicMock` sont interchangeables. Étant donné que ``MagicMock`` " +"est la classe la plus puissante des deux, cela fait sens de l'utiliser par " +"défaut." #: ../Doc/library/unittest.mock-examples.rst:40 msgid "" @@ -64,16 +73,22 @@ msgid "" "or :meth:`~Mock.assert_called_once_with` method to check that it was called " "with the correct arguments." msgstr "" +"Une fois l'objet Mock appelé, son attribut :attr:`~Mock.called` est défini à " +"``True``. Qui plus est, nous pouvons utiliser les méthodes :meth:`~Mock." +"assert_called_with` ou :meth:`~Mock.assert_called_once_with` pour contrôler " +"qu'il a été appelé avec les bons arguments." #: ../Doc/library/unittest.mock-examples.rst:45 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" +"Cet exemple teste que l'appel de la méthode ``ProductionClass().method`` " +"implique bien celui de la méthode ``something`` :" #: ../Doc/library/unittest.mock-examples.rst:62 msgid "Mock for Method Calls on an Object" -msgstr "" +msgstr "S'assurer de la bonne utilisation d'un objet" #: ../Doc/library/unittest.mock-examples.rst:64 msgid "" @@ -82,18 +97,27 @@ msgid "" "method (or some part of the system under test) and then check that it is " "used in the correct way." msgstr "" +"Dans l'exemple précédent, nous avons directement remplacé une méthode par un " +"objet (afin de valider que l'appel était correct). Une autre façon de faire " +"est de passer un objet Mock en argument d'une méthode (ou de tout autre " +"partie du code à tester) et ensuite de contrôler que notre objet a été " +"utilisé de la façon attendue." #: ../Doc/library/unittest.mock-examples.rst:69 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" +"Ci-dessous, ``ProductionClass`` dispose d'une méthode ``closer``. Si on " +"l'appelle avec un objet, alors elle appelle la méthode ``close`` dessus." #: ../Doc/library/unittest.mock-examples.rst:77 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" +"Ainsi, pour tester cette classe, nous devons lui passer un objet ayant une " +"méthode ``close``, puis vérifier qu'elle a bien été appelée." #: ../Doc/library/unittest.mock-examples.rst:85 msgid "" @@ -102,10 +126,15 @@ msgid "" "accessing it in the test will create it, but :meth:`~Mock." "assert_called_with` will raise a failure exception." msgstr "" +"En fait, nous n'avons pas à nous soucier de fournir la méthode ``close`` " +"dans notre objet « simulé ». Le simple fait d'accéder à la méthode ``close`` " +"l'a crée. Si par contre la méthode ``close`` n'a pas été appelée alors, bien " +"que le test la créée en y accédant, :meth:`~Mock.assert_called_with` lèvera " +"une exception." #: ../Doc/library/unittest.mock-examples.rst:92 msgid "Mocking Classes" -msgstr "" +msgstr "Simulation des classes" #: ../Doc/library/unittest.mock-examples.rst:94 msgid "" @@ -114,6 +143,11 @@ msgid "" "Instances are created by *calling the class*. This means you access the " "\"mock instance\" by looking at the return value of the mocked class." msgstr "" +"Un cas d'utilisation courant consiste à émuler les classes instanciées par " +"le code que nous testons. Quand on *patch* une classe, alors cette classe " +"est remplacée par un objet *mock*. Les instances de la classe étant créées " +"en *appelant la classe*, on accède à « l'instance *mock* » via la valeur de " +"retour de la classe émulée." #: ../Doc/library/unittest.mock-examples.rst:99 msgid "" diff --git a/library/unittest.po b/library/unittest.po index 13955eb89..272e502b8 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2019-04-11 20:22+0200\n" +"PO-Revision-Date: 2019-08-16 23:24+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \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.1\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/library/unittest.rst:2 msgid ":mod:`unittest` --- Unit testing framework" @@ -218,7 +218,7 @@ msgstr "" #: ../Doc/library/unittest.rst:88 msgid "Here is a short script to test three string methods::" -msgstr "Voici un court script pour tester trois méthodes de *string* ::" +msgstr "Voici un court script pour tester trois méthodes de *string* ::" #: ../Doc/library/unittest.rst:112 msgid "" @@ -304,7 +304,7 @@ msgid "" msgstr "" "Le module *unittest* est utilisable depuis la ligne de commande pour " "exécuter des tests à partir de modules, de classes ou même de méthodes de " -"test individuelles  ::" +"test individuelles ::" #: ../Doc/library/unittest.rst:167 msgid "" @@ -318,7 +318,7 @@ msgstr "" msgid "Test modules can be specified by file path as well::" msgstr "" "Les modules de test peuvent également être spécifiés par un chemin de " -"fichier  ::" +"fichier ::" #: ../Doc/library/unittest.rst:174 msgid "" @@ -330,9 +330,9 @@ msgid "" msgstr "" "Cette fonctionnalité permet d'utiliser la complétion de l'interpréteur de " "commandes système (*le shell*) pour spécifier le module de test. Le chemin " -"est converti en nom de module en supprimant le '.py' et en convertissant les " -"séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test qui " -"n'est pas importable en tant que module, exécutez directement le fichier." +"est converti en nom de module en supprimant le ``.py`` et en convertissant " +"les séparateurs de chemin en '.'. Si vous voulez exécuter un fichier test " +"qui n'est pas importable en tant que module, exécutez directement le fichier." #: ../Doc/library/unittest.rst:180 msgid "" @@ -340,20 +340,20 @@ msgid "" "flag::" msgstr "" "Pour obtenir plus de détails lors de l'exécution utilisez l'option `-v` " -"(plus de verbosité) ::" +"(plus de verbosité) ::" #: ../Doc/library/unittest.rst:184 msgid "" "When executed without arguments :ref:`unittest-test-discovery` is started::" msgstr "" "Quand la commande est exécutée sans arguments :ref:`unittest-test-discovery` " -"est lancée ::" +"est lancée ::" #: ../Doc/library/unittest.rst:188 msgid "For a list of all the command-line options::" msgstr "" "Pour afficher la liste de toutes les options de la commande utilisez " -"l'option `-h` ::" +"l'option `-h` ::" #: ../Doc/library/unittest.rst:192 msgid "" @@ -494,8 +494,7 @@ msgid "" "be used from the command line. The basic command-line usage is::" msgstr "" "La découverte de tests est implémentée dans :meth:`TestLoader.discover`, " -"mais peut également être utilisée depuis la ligne de commande. Par exemple " -" ::" +"mais peut également être utilisée depuis la ligne de commande. Par exemple ::" #: ../Doc/library/unittest.rst:277 msgid "" @@ -535,7 +534,7 @@ msgid "" msgstr "" "Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées " "en arguments positionnels dans cet ordre. Les deux lignes de commande " -"suivantes sont équivalentes  ::" +"suivantes sont équivalentes ::" #: ../Doc/library/unittest.rst:308 msgid "" @@ -635,7 +634,7 @@ msgid "" msgstr "" "La sous-classe :class:`TestCase` la plus simple va tout simplement " "implémenter une méthode de test (c'est-à-dire une méthode dont le nom " -"commence par ``test``) afin d'exécuter un code de test spécifique  ::" +"commence par ``test``) afin d'exécuter un code de test spécifique ::" #: ../Doc/library/unittest.rst:362 msgid "" @@ -661,7 +660,7 @@ msgstr "" "Les tests peuvent être nombreux et leur mise en place peut être répétitive. " "Heureusement, on peut factoriser le code de mise en place en implémentant " "une méthode appelée :meth:`~TestCase.setUp`, que le système de test appelle " -"automatiquement pour chaque test exécuté  ::" +"automatiquement pour chaque test exécuté ::" #: ../Doc/library/unittest.rst:389 msgid "" @@ -688,7 +687,7 @@ msgid "" "after the test method has been run::" msgstr "" "De même, on peut fournir une méthode :meth:`~TestCase.tearDown` qui nettoie " -"après l'exécution de la méthode de test  ::" +"après l'exécution de la méthode de test ::" #: ../Doc/library/unittest.rst:409 msgid "" @@ -735,7 +734,7 @@ msgid "" "can do it yourself::" msgstr "" "Cependant, si vous voulez personnaliser la construction de votre suite de " -"tests, vous pouvez le faire vous-même  ::" +"tests, vous pouvez le faire vous-même ::" #: ../Doc/library/unittest.rst:438 msgid "" @@ -821,7 +820,7 @@ msgstr "" #: ../Doc/library/unittest.rst:473 msgid "Given the following test function::" -msgstr "Étant donnée la fonction de test suivante  ::" +msgstr "Étant donnée la fonction de test suivante ::" #: ../Doc/library/unittest.rst:480 msgid "" @@ -829,7 +828,7 @@ msgid "" "set-up and tear-down methods::" msgstr "" "on peut créer une instance de scénario de test équivalente, avec des " -"méthodes optionnelles de mise en place et de démantèlement  ::" +"méthodes optionnelles de mise en place et de démantèlement ::" #: ../Doc/library/unittest.rst:489 msgid "" @@ -875,29 +874,29 @@ msgstr "" "`TestResult`." #: ../Doc/library/unittest.rst:512 -#, fuzzy msgid "" "Skipping a test is simply a matter of using the :func:`skip` :term:" "`decorator` or one of its conditional variants, calling :meth:`TestCase." "skipTest` within a :meth:`~TestCase.setUp` or test method, or raising :exc:" "`SkipTest` directly." msgstr "" -"Ignorer un test consiste à utiliser le :term:`décorateur ` :func:" -"`skip` ou une de ses variantes conditionnelles." +"Ignorer un test consiste à soit utiliser le :term:`décorateur ` :" +"func:`skip` ou une de ses variantes conditionnelles, soit appeler :meth:" +"`TestCase.skipTest` à l'intérieur d'une méthode :meth:`~TestCase.setUp` ou " +"de test, soit lever :exc:`SkipTest` directement." #: ../Doc/library/unittest.rst:516 msgid "Basic skipping looks like this::" -msgstr "Un exemple de tests à ignorer  ::" +msgstr "Un exemple de tests à ignorer ::" #: ../Doc/library/unittest.rst:541 msgid "This is the output of running the example above in verbose mode::" msgstr "" -"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux " -" ::" +"Ceci est le résultat de l'exécution de l'exemple ci-dessus en mode verbeux ::" #: ../Doc/library/unittest.rst:553 msgid "Classes can be skipped just like methods::" -msgstr "Les classes peuvent être ignorées tout comme les méthodes  ::" +msgstr "Les classes peuvent être ignorées tout comme les méthodes ::" #: ../Doc/library/unittest.rst:560 msgid "" @@ -910,7 +909,7 @@ msgstr "" #: ../Doc/library/unittest.rst:563 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "" -"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure`  ::" +"Les erreurs prévisibles utilisent le décorateur :func:`expectedFailure` ::" #: ../Doc/library/unittest.rst:570 msgid "" @@ -921,16 +920,15 @@ msgstr "" "Il est facile de faire ses propres décorateurs en créant un décorateur qui " "appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce " "décorateur ignore le test à moins que l'objet passé ne possède un certain " -"attribut  ::" +"attribut ::" #: ../Doc/library/unittest.rst:579 -#, fuzzy msgid "" "The following decorators and exception implement test skipping and expected " "failures:" msgstr "" -"Les décorateurs suivants implémentent le système d'omission des tests et les " -"erreurs prévisibles  ::" +"Les décorateurs et exceptions suivants implémentent le système d'omission " +"des tests et les erreurs prévisibles  ::" #: ../Doc/library/unittest.rst:583 msgid "" @@ -997,11 +995,11 @@ msgstr "" #: ../Doc/library/unittest.rst:622 msgid "For example, the following test::" -msgstr "Par exemple, le test suivant  ::" +msgstr "Par exemple, le test suivant ::" #: ../Doc/library/unittest.rst:634 msgid "will produce the following output::" -msgstr "produit le résultat suivant  ::" +msgstr "produit le résultat suivant ::" #: ../Doc/library/unittest.rst:660 msgid "" @@ -1011,7 +1009,7 @@ msgid "" msgstr "" "Sans l'utilisation d'un sous-test, l'exécution se termine après le premier " "échec, et l'erreur est moins facile à diagnostiquer car la valeur de ``i`` " -"ne s'affiche pas  ::" +"ne s'affiche pas ::" #: ../Doc/library/unittest.rst:676 msgid "Classes and functions" @@ -1124,7 +1122,7 @@ msgid "" msgstr "" "Méthode de classe appelée avant l'exécution des tests dans la classe en " "question. ``setUpClass`` est appelée avec la classe comme seul argument et " -"doit être décorée comme une :func:`classmethod`  ::" +"doit être décorée comme une :func:`classmethod` ::" #: ../Doc/library/unittest.rst:743 ../Doc/library/unittest.rst:758 msgid "See `Class and Module Fixtures`_ for more details." @@ -1138,7 +1136,7 @@ msgid "" msgstr "" "Méthode de classe appelée après l'exécution des tests de la classe en " "question. ``tearDownClass`` est appelée avec la classe comme seul argument " -"et doit être décorée comme une :meth:`classmethod`  ::" +"et doit être décorée comme une :meth:`classmethod` ::" #: ../Doc/library/unittest.rst:765 msgid "" @@ -1545,7 +1543,7 @@ msgid "" msgstr "" "Si seuls les arguments *exception* et éventuellement *msg* sont donnés, " "renvoie un gestionnaire de contexte pour que le code sous test puisse être " -"écrit en ligne plutôt que comme une fonction  ::" +"écrit en ligne plutôt que comme une fonction ::" #: ../Doc/library/unittest.rst:971 msgid "" @@ -1563,7 +1561,7 @@ msgid "" msgstr "" "Le gestionnaire de contexte enregistre l'exception capturée dans son " "attribut :attr:`exception`. Ceci est particulièrement utile si l'intention " -"est d'effectuer des contrôles supplémentaires sur l'exception levée  ::" +"est d'effectuer des contrôles supplémentaires sur l'exception levée ::" #: ../Doc/library/unittest.rst:984 msgid "Added the ability to use :meth:`assertRaises` as a context manager." @@ -1593,11 +1591,11 @@ msgstr "" "représentation de la chaîne de caractères de l'exception levée. *regex* " "peut être un objet d'expression rationnelle ou une chaîne contenant une " "expression rationnelle appropriée pour être utilisée par :func:`re.search`. " -"Exemples  ::" +"Exemples ::" #: ../Doc/library/unittest.rst:1005 ../Doc/library/unittest.rst:1073 msgid "or::" -msgstr "ou  ::" +msgstr "ou ::" #: ../Doc/library/unittest.rst:1010 msgid "Added under the name ``assertRaisesRegexp``." @@ -1630,7 +1628,7 @@ msgid "" msgstr "" "Si seuls les arguments * warning* et éventuellement *msg* sont donnés, " "renvoie un gestionnaire de contexte pour que le code testé puisse être écrit " -"en ligne plutôt que comme une fonction  ::" +"en ligne plutôt que comme une fonction ::" #: ../Doc/library/unittest.rst:1037 msgid "" @@ -1651,7 +1649,7 @@ msgstr "" "attribut :attr:`warning`, et la ligne source qui a déclenché les " "avertissements dans les attributs :attr:`filename` et :attr:`lineno`. Cette " "fonction peut être utile si l'intention est d'effectuer des contrôles " -"supplémentaires sur l'avertissement capturé  ::" +"supplémentaires sur l'avertissement capturé ::" #: ../Doc/library/unittest.rst:1052 msgid "" @@ -1671,7 +1669,7 @@ msgstr "" "Comme :meth:`assertWarns` mais vérifie aussi qu'une *regex* corresponde au " "message de l'avertissement. *regex* peut être un objet d'expression " "régulière ou une chaîne contenant une expression régulière appropriée pour " -"être utilisée par :func:`re.search`. Exemple  ::" +"être utilisée par :func:`re.search`. Exemple ::" #: ../Doc/library/unittest.rst:1085 msgid "" @@ -1865,7 +1863,7 @@ msgid "" "the method name. If not, the test will fail::" msgstr "" "Vérifie que *first* est respectivement >, >=, >=, < ou <= à *second* selon " -"le nom de la méthode. Sinon, le test échouera  ::" +"le nom de la méthode. Sinon, le test échouera ::" #: ../Doc/library/unittest.rst:1197 msgid "" @@ -3413,7 +3411,7 @@ msgstr "" "``_makeResult()`` instancie la classe ou l'appelable passé dans le " "constructeur ``TextTestRunner`` comme argument ``resultclass``. Il vaut par " "défaut :class:`TextTestResult` si aucune ``resultclass`` n'est fournie. La " -"classe de résultat est instanciée avec les arguments suivants  ::" +"classe de résultat est instanciée avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2061 msgid "" @@ -3437,8 +3435,8 @@ msgstr "" "Un programme en ligne de commande qui charge un ensemble de tests à partir " "du *module* et les exécute. L'utilisation principale est de rendre les " "modules de test facilement exécutables. L'utilisation la plus simple pour " -"cette fonction est d'inclure la ligne suivante à la fin d'un script de test " -" ::" +"cette fonction est d'inclure la ligne suivante à la fin d'un script de " +"test ::" #: ../Doc/library/unittest.rst:2080 msgid "" @@ -3446,7 +3444,7 @@ msgid "" "argument::" msgstr "" "Vous pouvez exécuter des tests avec des informations plus détaillées en " -"utilisant l'option de verbosité  ::" +"utilisant l'option de verbosité ::" #: ../Doc/library/unittest.rst:2086 msgid "" @@ -3497,7 +3495,7 @@ msgid "" msgstr "" "Les ``main`` sont utilisés à partir de l'interpréteur interactif en passant " "dans l'argument ``exit=False``. Ceci affiche le résultat sur la sortie " -"standard sans appeler :func:`sys.exit`  ::" +"standard sans appeler :func:`sys.exit` ::" #: ../Doc/library/unittest.rst:2109 msgid "" @@ -3571,7 +3569,7 @@ msgid "" "`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" "Si un module de test définit ``load_tests`` il est appelé par :meth:" -"`TestLoader.loadTestsFromModule` avec les arguments suivants  ::" +"`TestLoader.loadTestsFromModule` avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2146 msgid "" @@ -3606,7 +3604,7 @@ msgid "" "class:`TestCase` classes may look like::" msgstr "" "Une fonction typique de ``load_tests`` qui charge les tests d'un ensemble " -"spécifique de classes :class:`TestCase` peut ressembler à  ::" +"spécifique de classes :class:`TestCase` peut ressembler à ::" #: ../Doc/library/unittest.rst:2169 msgid "" @@ -3623,7 +3621,7 @@ msgstr "" "`__init__.py` la fonction ``load_tests``. Si cette fonction n'existe pas, la " "découverte se poursuit dans le paquet comme si c'était juste un autre " "répertoire. Sinon, la découverte des tests du paquet est effectuée par " -"``load_tests`` qui est appelé avec les arguments suivants  ::" +"``load_tests`` qui est appelé avec les arguments suivants ::" #: ../Doc/library/unittest.rst:2178 msgid "" @@ -3631,7 +3629,7 @@ msgid "" "package. (``standard_tests`` will only contain tests collected from :file:" "`__init__.py`.)" msgstr "" -"Doit retourner une classe :class:`TestSuite` représentant tous les tests du " +"Doit renvoyer une classe :class:`TestSuite` représentant tous les tests du " "paquet. (``standard_tests`` ne contient que les tests collectés dans le " "fichier :file:`__init__.py`)." @@ -3643,7 +3641,7 @@ msgid "" msgstr "" "Comme le motif est passé à ``load_tests``, le paquet est libre de continuer " "(et potentiellement de modifier) la découverte des tests. Une fonction « ne " -"rien faire » ``load_tests`` pour un paquet de test ressemblerait à  ::" +"rien faire » ``load_tests`` pour un paquet de test ressemblerait à ::" #: ../Doc/library/unittest.rst:2193 msgid "" @@ -3751,7 +3749,7 @@ msgstr "" #: ../Doc/library/unittest.rst:2239 msgid "These must be implemented as class methods::" -msgstr "Elles doivent être implémentées en tant que méthodes de classe  ::" +msgstr "Elles doivent être implémentées en tant que méthodes de classe ::" #: ../Doc/library/unittest.rst:2252 msgid "" @@ -3786,7 +3784,7 @@ msgstr "" #: ../Doc/library/unittest.rst:2266 msgid "These should be implemented as functions::" -msgstr "Elles doivent être implémentées en tant que fonctions  ::" +msgstr "Elles doivent être implémentées en tant que fonctions ::" #: ../Doc/library/unittest.rst:2274 msgid "" @@ -3904,7 +3902,7 @@ msgstr "" "Lorsqu'elle est appelée sans arguments, cette fonction supprime le " "gestionnaire *contrôle-c* s'il a été installé. Cette fonction peut également " "être utilisée comme décorateur de test pour supprimer temporairement le " -"gestionnaire pendant l'exécution du test  ::" +"gestionnaire pendant l'exécution du test ::" #~ msgid "" #~ "Top level directory of project (defaults to start directory)Répertoire de " diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 5b38e6eb1..efea4df10 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" -msgstr ":mod:`urllib.robotparser` — Analyseur de fichiers *robots.txt*" +msgstr ":mod:`urllib.robotparser` — Analyseur de fichiers *robots.txt*" #: ../Doc/library/urllib.robotparser.rst:10 msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" @@ -116,4 +116,4 @@ msgid "" "class::" msgstr "" "L'exemple suivant présente une utilisation basique de la classe :class:" -"`RobotFileParser` : ::" +"`RobotFileParser` ::" diff --git a/library/uuid.po b/library/uuid.po index 911085b3c..ea30802e5 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -16,11 +16,11 @@ msgstr "" #: ../Doc/library/uuid.rst:2 msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" -msgstr "" +msgstr ":mod:`uuid` — Objets UUID d'après la :rfc:`4122`" #: ../Doc/library/uuid.rst:9 msgid "**Source code:** :source:`Lib/uuid.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/uuid.py`" #: ../Doc/library/uuid.rst:13 msgid "" @@ -29,6 +29,10 @@ msgid "" "`uuid5` for generating version 1, 3, 4, and 5 UUIDs as specified in :rfc:" "`4122`." msgstr "" +"Ce module exporte des objets :class:`UUID` immuables (de la classe :class:" +"`UUID`) et les fonctions :func:`uuid1`, :func:`uuid3`, :func:`uuid4`, :func:" +"`uuid5` permettant de générer des UUID de version 1, 3, 4 et 5 tels que " +"définis dans la :rfc:`4122`." #: ../Doc/library/uuid.rst:17 msgid "" @@ -37,6 +41,10 @@ msgid "" "creates a UUID containing the computer's network address. :func:`uuid4` " "creates a random UUID." msgstr "" +"Utilisez :func:`uuid1` ou :func:`uuid4` si votre but est de produire un " +"identifiant unique. Notez que :func:`uuid1` peut dévoiler des informations " +"personnelles car l'UUID produit contient l'adresse réseau de l'ordinateur. " +"En revanche, :func:`uuid4` génère un UUID aléatoire." #: ../Doc/library/uuid.rst:22 msgid "" @@ -46,20 +54,31 @@ msgid "" "UUID. All instances of :class:`UUID` have an :attr:`is_safe` attribute " "which relays any information about the UUID's safety, using this enumeration:" msgstr "" +"En fonction du système d'exploitation, les UUID :func:`uuid1` peuvent ne pas " +"être « sûrs ». Un UUID est considéré sûr s'il est généré avec des techniques " +"de synchronisation qui garantissent que deux processus ne peuvent obtenir le " +"même UUID. Toutes les instances de :class:`UUID` possèdent un attribut :attr:" +"`is_safe` qui indique le niveau de sûreté de l'UUID selon l'énumération " +"suivante :" #: ../Doc/library/uuid.rst:34 msgid "The UUID was generated by the platform in a multiprocessing-safe way." msgstr "" +"L'UUID a été généré par la plateforme en utilisant une méthode sûre dans un " +"contexte de parallélisme par processus." #: ../Doc/library/uuid.rst:38 msgid "The UUID was not generated in a multiprocessing-safe way." msgstr "" +"L'UUID n'a pas été généré par une méthode sûre dans un contexte de " +"parallélisme par processus." #: ../Doc/library/uuid.rst:42 msgid "" "The platform does not provide information on whether the UUID was generated " "safely or not." msgstr "" +"La plateforme ne précise pas si l'UUID a été généré de façon sûre ou non." #: ../Doc/library/uuid.rst:47 msgid "" @@ -72,6 +91,15 @@ msgid "" "string of hex digits is given, curly braces, hyphens, and a URN prefix are " "all optional. For example, these expressions all yield the same UUID::" msgstr "" +"Produit un UUID à partir soit d'une chaîne de 32 chiffres hexadécimaux, soit " +"une chaîne de 16 octets gros-boutiste (argument *bytes*), soit une chaîne de " +"16 octets petit-boutiste (argument *bytes_le*), soit un n-uplet de six " +"entiers (32-bit *time_low*, 16-bit *time_mid*, 16-bit *time_hi_version*, 8-" +"bit *clock_seq_hi_variant*, 8-bit *clock_seq_low*, 48-bit *node*) (argument " +"*fields*), soit un unique entier sur 128 bits (argument *int*). Lorsque la " +"fonction reçoit une chaîne de chiffres hexadécimaux, les accolades, les " +"tirets et le préfixe URN sont facultatifs. Par exemple, toutes les " +"expressions ci-dessous génèrent le même UUID ::" #: ../Doc/library/uuid.rst:66 msgid "" @@ -80,6 +108,11 @@ msgid "" "its variant and version number set according to :rfc:`4122`, overriding bits " "in the given *hex*, *bytes*, *bytes_le*, *fields*, or *int*." msgstr "" +"Un seul des arguments *hex*, *bytes*, *bytes_le*, *fields* ou *int* doit " +"être spécifié. L'argument *version* est optionnel : s'il est spécifié, " +"l'UUID généré aura pour numéro de version et de variante la valeur indiquée " +"dans la :rfc:`4122`, remplaçant les bits idoines de *hex*, *bytes*, " +"*bytes_le*, *fields* ou *int*." #: ../Doc/library/uuid.rst:71 msgid "" @@ -87,6 +120,9 @@ msgid "" "int` attributes. Comparison with a non-UUID object raises a :exc:" "`TypeError`." msgstr "" +"La comparaison de deux objets UUID se fait en comparant leurs attributs :" +"attr:`UUID.int`. La comparaison avec un objet autre qu'un UUID lève une " +"exception :exc:`TypeError`." #: ../Doc/library/uuid.rst:75 msgid "" @@ -94,32 +130,43 @@ msgid "" "``12345678-1234-5678-1234-567812345678`` where the 32 hexadecimal digits " "represent the UUID." msgstr "" +"``str(uuid)`` renvoie une chaîne de caractères de la forme " +"``12345678-1234-5678-1234-567812345678`` représentant l'UUID par une chaîne " +"de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:79 msgid ":class:`UUID` instances have these read-only attributes:" msgstr "" +"Les instances de :class:`UUID` possèdent les attributs suivants en lecture " +"seule :" #: ../Doc/library/uuid.rst:83 msgid "" "The UUID as a 16-byte string (containing the six integer fields in big-" "endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (contenant les six champs " +"entiers dans l'ordre gros-boutiste)." #: ../Doc/library/uuid.rst:89 msgid "" "The UUID as a 16-byte string (with *time_low*, *time_mid*, and " "*time_hi_version* in little-endian byte order)." msgstr "" +"L'UUID représenté comme une chaîne de 16 octets (avec *time_low*, *time_mid* " +"et *time_hi_version* dans l'ordre petit-boutiste)." #: ../Doc/library/uuid.rst:95 msgid "" "A tuple of the six integer fields of the UUID, which are also available as " "six individual attributes and two derived attributes:" msgstr "" +"Un n-uplet contenant les six champs entiers de l'UUID, également accessibles " +"en tant que six attributs individuels et deux attributs dérivés :" #: ../Doc/library/uuid.rst:99 msgid "Field" -msgstr "" +msgstr "Champ" #: ../Doc/library/uuid.rst:99 msgid "Meaning" @@ -131,7 +178,7 @@ msgstr ":attr:`time_low`" #: ../Doc/library/uuid.rst:101 msgid "the first 32 bits of the UUID" -msgstr "" +msgstr "les 32 premiers bits de l'UUID" #: ../Doc/library/uuid.rst:103 msgid ":attr:`time_mid`" @@ -139,7 +186,7 @@ msgstr ":attr:`time_mid`" #: ../Doc/library/uuid.rst:103 ../Doc/library/uuid.rst:105 msgid "the next 16 bits of the UUID" -msgstr "" +msgstr "les 16 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:105 msgid ":attr:`time_hi_version`" @@ -151,7 +198,7 @@ msgstr ":attr:`clock_seq_hi_variant`" #: ../Doc/library/uuid.rst:107 ../Doc/library/uuid.rst:109 msgid "the next 8 bits of the UUID" -msgstr "" +msgstr "les 8 bits suivants de l'UUID" #: ../Doc/library/uuid.rst:109 msgid ":attr:`clock_seq_low`" @@ -163,7 +210,7 @@ msgstr ":attr:`node`" #: ../Doc/library/uuid.rst:111 msgid "the last 48 bits of the UUID" -msgstr "" +msgstr "les derniers 48 bits de l'UUID" #: ../Doc/library/uuid.rst:113 msgid ":attr:`time`" @@ -171,7 +218,7 @@ msgstr ":attr:`time`" #: ../Doc/library/uuid.rst:113 msgid "the 60-bit timestamp" -msgstr "" +msgstr "l'horodatage sur 60 bits" #: ../Doc/library/uuid.rst:115 msgid ":attr:`clock_seq`" @@ -179,19 +226,22 @@ msgstr ":attr:`clock_seq`" #: ../Doc/library/uuid.rst:115 msgid "the 14-bit sequence number" -msgstr "" +msgstr "le numéro de séquence sur 14 bits" #: ../Doc/library/uuid.rst:121 msgid "The UUID as a 32-character hexadecimal string." msgstr "" +"Représentation de l'UUID sous forme d'une chaîne de 32 chiffres hexadécimaux." #: ../Doc/library/uuid.rst:126 msgid "The UUID as a 128-bit integer." -msgstr "" +msgstr "Représentation de l'UUId sous forme d'un entier de 128 bits." #: ../Doc/library/uuid.rst:131 msgid "The UUID as a URN as specified in :rfc:`4122`." msgstr "" +"Représentation de l'UUID sous forme d'URN tel que spécifié dans la :rfc:" +"`4122`." #: ../Doc/library/uuid.rst:136 msgid "" @@ -199,22 +249,30 @@ msgid "" "will be one of the constants :const:`RESERVED_NCS`, :const:`RFC_4122`, :" "const:`RESERVED_MICROSOFT`, or :const:`RESERVED_FUTURE`." msgstr "" +"Variante de l'UUID. Celle-ci détermine l'agencement interne de l'UUID. Les " +"valeurs possibles sont les constantes suivantes : :const:`RESERVED_NCS`, :" +"const:`RFC_4122`, :const:`RESERVED_MICROSOFT` ou :const:`RESERVED_FUTURE`." #: ../Doc/library/uuid.rst:143 msgid "" "The UUID version number (1 through 5, meaningful only when the variant is :" "const:`RFC_4122`)." msgstr "" +"Numéro de version de l'UUID (de 1 à 5). Cette valeur n'a de sens que dans le " +"cas de la variante :const:`RFC_4122`." #: ../Doc/library/uuid.rst:148 msgid "" "An enumeration of :class:`SafeUUID` which indicates whether the platform " "generated the UUID in a multiprocessing-safe way." msgstr "" +"Valeur de l'énumération :class:`SafeUUID` indiquant si la plateforme a " +"généré l'UUID d'une façon sûre dans un contexte de parallélisme par " +"processus." #: ../Doc/library/uuid.rst:153 msgid "The :mod:`uuid` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`uu` définit les fonctions suivantes :" #: ../Doc/library/uuid.rst:158 msgid "" @@ -228,6 +286,17 @@ msgid "" "least significant bit of the first octet is *unset*) will be preferred over " "locally administered MAC addresses, but with no other ordering guarantees." msgstr "" +"Renvoie l'adresse réseau matérielle sous forme d'un entier positif sur 48 " +"bits. Cette fonction peut faire appel à un programme externe relativement " +"lent lors de sa première exécution. Si toutes les tentatives d'obtenir " +"l'adresse matérielle échouent, un nombre aléatoire sur 48 bit avec le bit de " +"*multicast* (bit de poids faible du premier octet) à 1 est généré, comme " +"recommandé par la :rfc:`4122`. Ici, « adresse matérielle » correspond à " +"l'adresse MAC d'une interface réseau. Sur une machine avec plusieurs " +"interfaces réseau, les adresses MAC de type UUA (*universally administered " +"address*, pour lesquelles le second bit de poids faible est à zéro) sont " +"prioritaires par rapport aux autres adresses MAC. Aucune autre garantie " +"n'est donnée sur l'ordre dans lequel les interfaces sont choisies." #: ../Doc/library/uuid.rst:168 msgid "" @@ -235,6 +304,8 @@ msgid "" "administered MAC addresses, since the former are guaranteed to be globally " "unique, while the latter are not." msgstr "" +"Les adresses MAC de type UUA sont préférées par rapport aux adresses locales " +"car ces dernières ne sont pas nécessairement uniques." #: ../Doc/library/uuid.rst:178 msgid "" @@ -243,80 +314,103 @@ msgid "" "If *clock_seq* is given, it is used as the sequence number; otherwise a " "random 14-bit sequence number is chosen." msgstr "" +"Génère un UUID à partir d'un identifiant hôte, d'un numéro de séquence et de " +"l'heure actuelle. Si *node* n'est pas spécifié, la fonction :func:`getnode` " +"est appelée pour obtenir l'adresse matérielle. *clock_seq* est utilisé comme " +"numéro de séquence s'il est spécifié, sinon un numéro aléatoire sur 14 bits " +"est utilisé à la place." #: ../Doc/library/uuid.rst:188 msgid "" "Generate a UUID based on the MD5 hash of a namespace identifier (which is a " "UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte MD5 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:196 msgid "Generate a random UUID." -msgstr "" +msgstr "Génère un UUID aléatoire." #: ../Doc/library/uuid.rst:203 msgid "" "Generate a UUID based on the SHA-1 hash of a namespace identifier (which is " "a UUID) and a name (which is a string)." msgstr "" +"Génère un UUID à partir de l'empreinte SHA-1 de l'identifiant d'un espace de " +"nom (un UUID) et d'un nom (une chaîne de caractères)." #: ../Doc/library/uuid.rst:208 msgid "" "The :mod:`uuid` module defines the following namespace identifiers for use " "with :func:`uuid3` or :func:`uuid5`." msgstr "" +"Le module :mod:`uuid` définit les identifiants d'espaces de noms suivants " +"(pour :func:`uuid3` et :func:`uuid5`)." #: ../Doc/library/uuid.rst:214 msgid "" "When this namespace is specified, the *name* string is a fully-qualified " "domain name." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un nom de " +"domaine pleinement qualifié (souvent indiqué en anglais par *FQDN*)." #: ../Doc/library/uuid.rst:220 msgid "When this namespace is specified, the *name* string is a URL." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être une URL." #: ../Doc/library/uuid.rst:225 msgid "When this namespace is specified, the *name* string is an ISO OID." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"OID ISO." #: ../Doc/library/uuid.rst:230 msgid "" "When this namespace is specified, the *name* string is an X.500 DN in DER or " "a text output format." msgstr "" +"Lorsque cet espace de nom est spécifié, la chaîne *name* doit être un " +"DN X.500 au format texte ou DER." #: ../Doc/library/uuid.rst:233 msgid "" "The :mod:`uuid` module defines the following constants for the possible " "values of the :attr:`variant` attribute:" msgstr "" +"Le module :mod:`uuid` définit les constantes suivantes correspondant aux " +"valeurs autorisées pour l'attribut :attr:`variant` :" #: ../Doc/library/uuid.rst:239 msgid "Reserved for NCS compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité NCS." #: ../Doc/library/uuid.rst:244 msgid "Specifies the UUID layout given in :rfc:`4122`." -msgstr "" +msgstr "Utilise l'agencement des UUID de la :rfc:`4122`." #: ../Doc/library/uuid.rst:249 msgid "Reserved for Microsoft compatibility." -msgstr "" +msgstr "Réservé pour la compatibilité Microsoft." #: ../Doc/library/uuid.rst:254 msgid "Reserved for future definition." -msgstr "" +msgstr "Réservé pour un usage futur." #: ../Doc/library/uuid.rst:260 msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" -msgstr "" +msgstr ":rfc:`4122` – *A Universally Unique IDentifier (UUID) URN Namespace*" #: ../Doc/library/uuid.rst:260 msgid "" "This specification defines a Uniform Resource Name namespace for UUIDs, the " "internal format of UUIDs, and methods of generating UUIDs." msgstr "" +"Cette spécification (en anglais) définit un espace de noms *Uniform Resource " +"Name* pour les UUID, leur format interne et les méthodes permettant de les " +"générer." #: ../Doc/library/uuid.rst:267 msgid "Example" @@ -325,3 +419,4 @@ msgstr "Exemple" #: ../Doc/library/uuid.rst:269 msgid "Here are some examples of typical usage of the :mod:`uuid` module::" msgstr "" +"Voici quelques exemples classiques d'utilisation du module :mod:`uuid` ::" diff --git a/library/wsgiref.po b/library/wsgiref.po index 5581968f2..2f011ed7d 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:2 msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" -msgstr "" +msgstr ":mod:`wsgiref` — Outils et implémentation de référence de WSGI" #: ../Doc/library/wsgiref.rst:12 msgid "" @@ -25,6 +25,10 @@ msgid "" "interface makes it easy to use an application that supports WSGI with a " "number of different web servers." msgstr "" +"WSGI (*Web Server Gateway Interface*) est une interface standard entre le " +"serveur web et une application web écrite en Python. Avoir une interface " +"standardisée permet de faciliter l'usage de ces applications avec un certain " +"nombre de serveurs web différents." #: ../Doc/library/wsgiref.rst:17 msgid "" @@ -33,6 +37,10 @@ msgid "" "every detail of WSGI just to install a WSGI application or to write a web " "application using an existing framework." msgstr "" +"Seules les personnes programmant des serveurs web et des cadriciels ont " +"besoin de connaître les détails d'implémentation et les cas particuliers de " +"l'architecture de WSGI. En tant qu'utilisateur WSGI vous avez uniquement " +"besoin d'installer WSGI ou d'utiliser un cadriciel existant." #: ../Doc/library/wsgiref.rst:22 msgid "" @@ -43,16 +51,26 @@ msgid "" "WSGI applications, and a validation tool that checks WSGI servers and " "applications for conformance to the WSGI specification (:pep:`3333`)." msgstr "" +":mod:`wsgiref` est une implémentation de référence de la spécification WSGI " +"qui peut être utilisée pour ajouter la prise en charge de WSGI par un " +"serveur web ou par un cadriciel. Elle fournit des outils pour manipuler les " +"variables d'environnement WSGI, les en-têtes de réponse, les classes de base " +"pour implémenter des serveurs WSGI, un serveur de démonstration " +"d'application WSGI et un outil de validation qui vérifie que les serveurs et " +"les applications WSGI sont conformes à la spécification WSGI (:pep:`3333`)." #: ../Doc/library/wsgiref.rst:29 msgid "" "See `wsgi.readthedocs.io `_ for more " "information about WSGI, and links to tutorials and other resources." msgstr "" +"Voir `wsgi.readthedocs.io `_ pour plus " +"d'informations à propos de WSGI ainsi que des liens vers des tutoriels et " +"d'autres ressources." #: ../Doc/library/wsgiref.rst:36 msgid ":mod:`wsgiref.util` -- WSGI environment utilities" -msgstr "" +msgstr ":mod:`wsgiref.util` — outils pour les environnements WSGI" #: ../Doc/library/wsgiref.rst:42 msgid "" @@ -62,6 +80,12 @@ msgid "" "*environ* parameter expect a WSGI-compliant dictionary to be supplied; " "please see :pep:`3333` for a detailed specification." msgstr "" +"Ce module fournit un certain nombre de fonctions pour manipuler des " +"environnements WSGI. Un environnement WSGI est un dictionnaire contenant les " +"variables de la requête HTTP comme décrit dans la :pep:`3333`. Toutes les " +"fonctions ayant comme argument *environ* s'attendent à ce qu'un dictionnaire " +"compatible WSGI soit fourni ; voir la :pep:`3333` pour la spécification " +"détaillée." #: ../Doc/library/wsgiref.rst:51 msgid "" @@ -69,6 +93,9 @@ msgid "" "\", by checking for a ``HTTPS`` environment variable in the *environ* " "dictionary. The return value is a string." msgstr "" +"Tente de déterminer s'il faut assigner \"http\" ou \"https\" à ``wsgi." +"url_sheme``, en vérifiant si une variable d'environnement ``HTTPS`` est dans " +"le dictionnaire *environ*. La valeur renvoyée est une chaîne de caractères." #: ../Doc/library/wsgiref.rst:55 msgid "" @@ -134,6 +161,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:105 msgid "Update *environ* with trivial defaults for testing purposes." msgstr "" +"Met à jour *environ* avec des valeurs par défaut pour des cas de tests." #: ../Doc/library/wsgiref.rst:107 msgid "" @@ -143,6 +171,11 @@ msgid "" "*`` variables. It only supplies default values, and does not replace any " "existing settings for these variables." msgstr "" +"Cette fonction ajoute des paramètres requis pour WSGI, en particulier " +"``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " +"``SCRIPT_NAME``, ``PATH_INFO`` et toutes les autres variables WSGI définies " +"dans la :pep:`3333`. Elle ne fournit que des valeurs par défaut sans toucher " +"aux valeurs déjà définies de ces variables." #: ../Doc/library/wsgiref.rst:113 msgid "" @@ -150,11 +183,15 @@ msgid "" "and applications to set up dummy environments. It should NOT be used by " "actual WSGI servers or applications, since the data is fake!" msgstr "" +"Cette fonction a pour but de faciliter les tests unitaires des serveurs et " +"des applications WSGI dans des environnements factices. Elle ne devrait pas " +"être utilisée dans une application ou un serveur WSGI, étant donné que les " +"données sont factices !" #: ../Doc/library/wsgiref.rst:117 ../Doc/library/wsgiref.rst:164 #: ../Doc/library/wsgiref.rst:284 ../Doc/library/wsgiref.rst:416 msgid "Example usage::" -msgstr "" +msgstr "Exemple d'utilisation ::" #: ../Doc/library/wsgiref.rst:141 msgid "" @@ -252,7 +289,7 @@ msgstr "" #: ../Doc/library/wsgiref.rst:229 msgid "Return a list of all the values for the named header." -msgstr "" +msgstr "Renvoie une liste de toutes les valeurs pour l'en-tête *name*." #: ../Doc/library/wsgiref.rst:231 msgid "" @@ -282,11 +319,11 @@ msgstr "" #: ../Doc/library/wsgiref.rst:252 msgid "The above will add a header that looks like this::" -msgstr "" +msgstr "Le code ci-dessus ajoute un en-tête qui ressemble à ceci ::" #: ../Doc/library/wsgiref.rst:257 msgid "*headers* parameter is optional." -msgstr "" +msgstr "Le paramètre *headers* est optionnel." #: ../Doc/library/wsgiref.rst:262 msgid ":mod:`wsgiref.simple_server` -- a simple WSGI HTTP server" diff --git a/library/xml.po b/library/xml.po index 2983c973b..72ef2eb3a 100644 --- a/library/xml.po +++ b/library/xml.po @@ -250,8 +250,8 @@ msgstr "" "il s'agit également d'un abus d'extension d'entités. Au lieu d'utiliser des " "entités imbriquées, cette attaque répète encore et encore une seule entité " "de plusieurs milliers de caractères. Cette attaque n'est pas aussi efficace " -"que la version exponentielle mais contourne les contre-mesure de l'analyseur " -"qui interdit les entités imbriquées de multiples fois." +"que la version exponentielle mais contourne les contre-mesures de " +"l'analyseur qui interdit les entités imbriquées de multiples fois." #: ../Doc/library/xml.rst:97 msgid "" diff --git a/library/zipapp.po b/library/zipapp.po index cb657bcd1..30a9dae21 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-08-06 09:57+0200\n" +"Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \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" #: ../Doc/library/zipapp.rst:2 msgid ":mod:`zipapp` --- Manage executable Python zip archives" -msgstr "" +msgstr ":mod:`zipapp` — Gestion des archives zip exécutables Python" #: ../Doc/library/zipapp.rst:9 msgid "**Source code:** :source:`Lib/zipapp.py`" @@ -29,10 +30,15 @@ msgid "" "`. The module provides both a :ref:`zipapp-" "command-line-interface` and a :ref:`zipapp-python-api`." msgstr "" +"Ce module fournit des outils pour gérer la création de fichiers zip " +"contenant du code Python, qui peuvent être :ref:`exécutés directement par " +"l'interpréteur Python `. Le module fournit à la " +"fois une interface de ligne de commande :ref:`zipapp-command-line-interface` " +"et une interface :ref:`zipapp-python-api`." #: ../Doc/library/zipapp.rst:23 msgid "Basic Example" -msgstr "" +msgstr "Exemple de base" #: ../Doc/library/zipapp.rst:25 msgid "" @@ -41,6 +47,11 @@ msgid "" "code. When run, the archive will execute the ``main`` function from the " "module ``myapp`` in the archive." msgstr "" +"L'exemple suivant montre comment l'interface de ligne de commande :ref:" +"`zipapp-command-line-interface` peut être utilisée pour créer une archive " +"exécutable depuis un répertoire contenant du code Python. Lors de " +"l'exécution, l'archive exécutera la fonction ``main`` du module ``myapp`` " +"dans l'archive." #: ../Doc/library/zipapp.rst:40 msgid "Command-Line Interface" @@ -50,6 +61,8 @@ msgstr "Interface en ligne de commande" msgid "" "When called as a program from the command line, the following form is used:" msgstr "" +"Lorsqu'il est appelé en tant que programme à partir de la ligne de commande, " +"la syntaxe suivante est utilisée :" #: ../Doc/library/zipapp.rst:48 msgid "" @@ -58,10 +71,14 @@ msgid "" "copied to the target archive (or the contents of its shebang line will be " "displayed if the --info option is specified)." msgstr "" +"Si *source* est un répertoire, une archive est créée à partir du contenu de " +"*source*. Si *source* est un fichier, ce doit être une archive et il est " +"copié dans l'archive cible (ou le contenu de sa ligne `shebang` est affiché " +"si l'option ``--info`` est indiquée)." #: ../Doc/library/zipapp.rst:53 msgid "The following options are understood:" -msgstr "" +msgstr "Les options suivantes sont disponibles :" #: ../Doc/library/zipapp.rst:59 msgid "" @@ -70,12 +87,20 @@ msgid "" "extension ``.pyz`` added. If an explicit filename is given, it is used as " "is (so a ``.pyz`` extension should be included if required)." msgstr "" +"Écrit la sortie dans un fichier nommé *output*. Si cette option n'est pas " +"spécifiée, le nom du fichier de sortie sera le même que celui de l'entrée " +"*source*, avec l'extension ``.pyz``. Si un nom de fichier explicite est " +"donné, il est utilisé tel quel (une extension ``.pyz`` doit donc être " +"incluse si nécessaire)." #: ../Doc/library/zipapp.rst:64 msgid "" "An output filename must be specified if the *source* is an archive (and in " "that case, *output* must not be the same as *source*)." msgstr "" +"Un nom de fichier de sortie doit être spécifié si la *source* est une " +"archive (et, dans ce cas, la *sortie* ne doit pas être la même que la " +"*source*)." #: ../Doc/library/zipapp.rst:69 msgid "" @@ -83,6 +108,10 @@ msgid "" "run. Also, on POSIX, make the archive executable. The default is to write " "no ``#!`` line, and not make the file executable." msgstr "" +"Ajoute une ligne ``#!`` à l'archive en spécifiant *interpreter* comme " +"commande à exécuter. Aussi, sur un système POSIX, cela rend l'archive " +"exécutable. Le comportement par défaut est de ne pas écrire la ligne ``#!`` " +"et de ne pas rendre le fichier exécutable." #: ../Doc/library/zipapp.rst:75 msgid "" @@ -91,20 +120,28 @@ msgid "" "a package/module in the archive, and \"fn\" is a callable in the given " "module. The ``__main__.py`` file will execute that callable." msgstr "" +"Écrit un fichier ``__main__.py`` dans l'archive qui exécute *mainfn*. " +"L'argument *mainfn* est de la forme « *pkg.mod:fn* », où « *pkg.mod* » est " +"un paquet/module dans l'archive, et « *fn* » est un appelable dans le module " +"donné. Le fichier ``__main__.py`` réalise cet appel." #: ../Doc/library/zipapp.rst:80 msgid ":option:`--main` cannot be specified when copying an archive." msgstr "" +":option:`--main` ne peut pas être spécifié lors de la copie d'une archive." #: ../Doc/library/zipapp.rst:84 msgid "" "Compress files with the deflate method, reducing the size of the output " "file. By default, files are stored uncompressed in the archive." msgstr "" +"Compresse les fichiers avec la méthode *deflate*, réduisant ainsi la taille " +"du fichier de sortie. Par défaut, les fichiers sont stockés non compressés " +"dans l'archive." #: ../Doc/library/zipapp.rst:87 msgid ":option:`--compress` has no effect when copying an archive." -msgstr "" +msgstr ":option:`--compress` n'a aucun effet lors de la copie d'une archive." #: ../Doc/library/zipapp.rst:93 msgid "" @@ -112,10 +149,13 @@ msgid "" "In this case, any other options are ignored and SOURCE must be an archive, " "not a directory." msgstr "" +"Affiche l'interpréteur intégré dans l'archive, à des fins de diagnostic. " +"Dans ce cas, toutes les autres options sont ignorées et SOURCE doit être une " +"archive et non un répertoire." #: ../Doc/library/zipapp.rst:99 msgid "Print a short usage message and exit." -msgstr "" +msgstr "Affiche un court message d'aide et quitte." #: ../Doc/library/zipapp.rst:105 msgid "Python API" @@ -123,13 +163,15 @@ msgstr "API Python" #: ../Doc/library/zipapp.rst:107 msgid "The module defines two convenience functions:" -msgstr "" +msgstr "Ce module définit deux fonctions utilitaires :" #: ../Doc/library/zipapp.rst:112 msgid "" "Create an application archive from *source*. The source can be any of the " "following:" msgstr "" +"Crée une archive d'application à partir de *source*. La source peut être de " +"natures suivantes :" #: ../Doc/library/zipapp.rst:115 msgid "" @@ -137,6 +179,9 @@ msgid "" "directory, in which case a new application archive will be created from the " "content of that directory." msgstr "" +"Le nom d'un répertoire, ou un :term:`path-like object` se référant à un " +"répertoire ; dans ce cas, une nouvelle archive d'application sera créée à " +"partir du contenu de ce répertoire." #: ../Doc/library/zipapp.rst:118 msgid "" @@ -145,6 +190,11 @@ msgid "" "target (modifying it to reflect the value given for the *interpreter* " "argument). The file name should include the ``.pyz`` extension, if required." msgstr "" +"Le nom d'un fichier d'archive d'application existant, ou un :term:`path-like " +"object` se référant à un tel fichier ; dans ce cas, le fichier est copié sur " +"la cible (en le modifiant pour refléter la valeur donnée à l'argument " +"*interpreter*). Le nom du fichier doit inclure l'extension ``.pyz``, si " +"nécessaire." #: ../Doc/library/zipapp.rst:122 msgid "" @@ -152,23 +202,30 @@ msgid "" "should be an application archive, and the file object is assumed to be " "positioned at the start of the archive." msgstr "" +"Un objet fichier ouvert pour la lecture en mode binaire. Le contenu du " +"fichier doit être une archive d'application et Python suppose que l'objet " +"fichier est positionné au début de l'archive." #: ../Doc/library/zipapp.rst:126 msgid "" "The *target* argument determines where the resulting archive will be written:" -msgstr "" +msgstr "L'argument *target* détermine où l'archive résultante sera écrite :" #: ../Doc/library/zipapp.rst:129 msgid "" "If it is the name of a file, or a :term:`path-like object`, the archive will " "be written to that file." msgstr "" +"S'il s'agit d'un nom de fichier, ou d'un :term:`path-like object`, l'archive " +"sera écrite dans ce fichier." #: ../Doc/library/zipapp.rst:131 msgid "" "If it is an open file object, the archive will be written to that file " "object, which must be open for writing in bytes mode." msgstr "" +"S'il s'agit d'un objet fichier ouvert, l'archive sera écrite dans cet objet " +"fichier, qui doit être ouvert pour l'écriture en mode octets." #: ../Doc/library/zipapp.rst:133 msgid "" @@ -176,6 +233,9 @@ msgid "" "the target will be a file with the same name as the source, with a ``.pyz`` " "extension added." msgstr "" +"Si la cible est omise (ou ``None``), la source doit être un répertoire et la " +"cible sera un fichier portant le même nom que la source, avec une extension " +"``.pyz`` ajoutée." #: ../Doc/library/zipapp.rst:137 msgid "" @@ -187,6 +247,13 @@ msgid "" "is specified, and the target is a filename, the executable bit of the target " "file will be set." msgstr "" +"L'argument *interpreter* spécifie le nom de l'interpréteur Python avec " +"lequel l'archive sera exécutée. Il est écrit dans une ligne *shebang* au " +"début de l'archive. Sur un système POSIX, cela est interprété par le " +"système d'exploitation et, sur Windows, il sera géré par le lanceur Python. " +"L'omission de l'*interpreter* n'entraîne pas l'écriture d'une ligne " +"*shebang*. Si un interpréteur est spécifié et que la cible est un nom de " +"fichier, le bit exécutable du fichier cible sera mis à 1." #: ../Doc/library/zipapp.rst:145 msgid "" @@ -199,6 +266,14 @@ msgid "" "a directory and does not contain a ``__main__.py`` file, as otherwise the " "resulting archive would not be executable." msgstr "" +"L'argument *main* spécifie le nom d'un appelable, utilisé comme programme " +"principal pour l'archive. Il ne peut être spécifié que si la source est un " +"répertoire et si la source ne contient pas déjà un fichier ``__main__.py``. " +"L'argument *main* doit prendre la forme ``pkg.module:callable`` et l'archive " +"sera exécutée en important ``pkg.module`` et en exécutant l'appelable donné " +"sans argument. Omettre *main* est une erreur si la source est un répertoire " +"et ne contient pas un fichier ``__main__.py`` car, dans ce cas, l'archive " +"résultante ne serait pas exécutable." #: ../Doc/library/zipapp.rst:155 msgid "" @@ -206,6 +281,10 @@ msgid "" "a Path object representing the path to the file being added (relative to the " "source directory). It should return ``True`` if the file is to be added." msgstr "" +"L'argument optionnel *filter* spécifie une fonction de rappel à laquelle on " +"passe un objet *Path* représentant le chemin du fichier à ajouter (par " +"rapport au répertoire source). Elle doit renvoyer ``True`` si le fichier " +"doit effectivement être ajouté." #: ../Doc/library/zipapp.rst:160 msgid "" @@ -214,12 +293,20 @@ msgid "" "method; otherwise, files are stored uncompressed. This argument has no " "effect when copying an existing archive." msgstr "" +"L'argument optionnel *compressed* détermine si les fichiers doivent être " +"compressés. S'il vaut ``True``, les fichiers de l'archive sont compressés " +"avec l'algorithme *deflate* ; sinon, les fichiers sont stockés non " +"compressés. Cet argument n'a aucun effet lors de la copie d'une archive " +"existante." #: ../Doc/library/zipapp.rst:165 msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" +"Si un objet fichier est spécifié pour *source* ou *target*, il est de la " +"responsabilité de l'appelant de le fermer après avoir appelé " +"``create_archive``." #: ../Doc/library/zipapp.rst:168 msgid "" @@ -228,10 +315,15 @@ msgid "" "directory, if the target is a file object it will be passed to the ``zipfile." "ZipFile`` class, and must supply the methods needed by that class." msgstr "" +"Lors de la copie d'une archive existante, les objets fichier fournis n'ont " +"besoin que des méthodes ``read`` et ``readline`` ou ``write``. Lors de la " +"création d'une archive à partir d'un répertoire, si la cible est un objet " +"fichier, elle sera passée à la classe ``zipfile.ZipFile`` et devra fournir " +"les méthodes nécessaires à cette classe." #: ../Doc/library/zipapp.rst:174 msgid "Added the *filter* and *compressed* arguments." -msgstr "" +msgstr "Ajout des arguments *filter* et *compressed*." #: ../Doc/library/zipapp.rst:179 msgid "" @@ -240,6 +332,10 @@ msgid "" "argument can be a filename or a file-like object open for reading in bytes " "mode. It is assumed to be at the start of the archive." msgstr "" +"Renvoie l'interpréteur spécifié dans la ligne ``#!`` au début de l'archive. " +"S'il n'y a pas de ligne ``#!``, renvoie :const:`None`. L'argument *archive* " +"peut être un nom de fichier ou un objet de type fichier ouvert à la lecture " +"en mode binaire. Python suppose qu'il est au début de l'archive." #: ../Doc/library/zipapp.rst:188 msgid "Examples" @@ -247,23 +343,29 @@ msgstr "Exemples" #: ../Doc/library/zipapp.rst:190 msgid "Pack up a directory into an archive, and run it." -msgstr "" +msgstr "Regroupe le contenu d'un répertoire dans une archive, puis l'exécute." #: ../Doc/library/zipapp.rst:198 msgid "The same can be done using the :func:`create_archive` function::" msgstr "" +"La même chose peut être faite en utilisant la fonction :func:" +"`create_archive` ::" #: ../Doc/library/zipapp.rst:203 msgid "" "To make the application directly executable on POSIX, specify an interpreter " "to use." msgstr "" +"Pour rendre l'application directement exécutable sur un système POSIX, " +"spécifiez un interpréteur à utiliser." #: ../Doc/library/zipapp.rst:212 msgid "" "To replace the shebang line on an existing archive, create a modified " "archive using the :func:`create_archive` function::" msgstr "" +"Pour remplacer la ligne *shebang* sur une archive existante, créez une " +"archive modifiée en utilisant la fonction :func:`create_archive` ::" #: ../Doc/library/zipapp.rst:218 msgid "" @@ -274,10 +376,17 @@ msgid "" "but production code should do so. Also, this method will only work if the " "archive fits in memory::" msgstr "" +"Pour mettre à jour le fichier sans créer de copie locale, effectuez le " +"remplacement en mémoire à l'aide d'un objet :class:`BytesIO`, puis écrasez " +"la source par la suite. Notez qu'il y a un risque lors de l'écrasement d'un " +"fichier local qu'une erreur entraîne la perte du fichier original. Ce code " +"ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures " +"nécessaires en production. De plus, cette méthode ne fonctionnera que si " +"l'archive tient en mémoire ::" #: ../Doc/library/zipapp.rst:236 msgid "Specifying the Interpreter" -msgstr "" +msgstr "Spécification de l'interprète" #: ../Doc/library/zipapp.rst:238 msgid "" @@ -286,6 +395,11 @@ msgid "" "Python launcher for Windows supports most common forms of POSIX ``#!`` line, " "but there are other issues to consider:" msgstr "" +"Notez que si vous spécifiez un interpréteur et que vous distribuez ensuite " +"votre archive d'application, vous devez vous assurer que l'interpréteur " +"utilisé est portable. Le lanceur Python pour Windows gère la plupart des " +"formes courantes de la ligne POSIX ``#!``, mais il y a d'autres problèmes à " +"considérer :" #: ../Doc/library/zipapp.rst:243 msgid "" @@ -294,6 +408,10 @@ msgid "" "may have either Python 2 or Python 3 as their default, and write your code " "to work under both versions." msgstr "" +"Si vous utilisez ``/usr/bin/env python`` (ou d'autres formes de la commande " +"*python*, comme ``/usr/bin/python``), vous devez considérer que vos " +"utilisateurs peuvent avoir Python 2 ou Python 3 par défaut, et écrire votre " +"code pour fonctionner dans les deux versions." #: ../Doc/library/zipapp.rst:247 msgid "" @@ -301,6 +419,10 @@ msgid "" "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" +"Si vous utilisez une version explicite, par exemple ``/usr/bin/env python3`` " +"votre application ne fonctionnera pas pour les utilisateurs qui n'ont pas " +"cette version. (C'est peut-être ce que vous voulez si vous n'avez pas rendu " +"votre code compatible Python 2)." #: ../Doc/library/zipapp.rst:250 msgid "" @@ -308,16 +430,22 @@ msgid "" "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" +"Il n'y a aucun moyen de dire « python X.Y ou supérieur » donc faites " +"attention si vous utilisez une version exacte comme ``/usr/bin/env " +"python3.4`` car vous devrez changer votre ligne *shebang* pour les " +"utilisateurs de Python 3.5, par exemple." #: ../Doc/library/zipapp.rst:254 msgid "" "Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " "python3\", depending on whether your code is written for Python 2 or 3." msgstr "" +"Normalement, vous devriez utiliser un ``/usr/bin/env python2`` ou ``/usr/bin/" +"env python3``, selon que votre code soit écrit pour Python 2 ou 3." #: ../Doc/library/zipapp.rst:259 msgid "Creating Standalone Applications with zipapp" -msgstr "" +msgstr "Création d'applications autonomes avec *zipapp*" #: ../Doc/library/zipapp.rst:261 msgid "" @@ -327,10 +455,15 @@ msgid "" "this is to bundle all of the application's dependencies into the archive, " "along with the application code." msgstr "" +"En utilisant le module :mod:`zipapp`, il est possible de créer des " +"programmes Python qui peuvent être distribués à des utilisateurs finaux dont " +"le seul pré-requis est d'avoir la bonne version de Python installée sur leur " +"ordinateur. Pour y arriver, la clé est de regrouper toutes les dépendances " +"de l'application dans l'archive avec le code source de l'application." #: ../Doc/library/zipapp.rst:267 msgid "The steps to create a standalone archive are as follows:" -msgstr "" +msgstr "Les étapes pour créer une archive autonome sont les suivantes :" #: ../Doc/library/zipapp.rst:269 msgid "" @@ -338,12 +471,17 @@ msgid "" "directory containing a ``__main__.py`` file, and any supporting application " "code." msgstr "" +"Créez votre application dans un répertoire comme d'habitude, de manière à " +"avoir un répertoire ``myapp`` contenant un fichier ``__main__.py`` et tout " +"le code de l'application correspondante." #: ../Doc/library/zipapp.rst:273 msgid "" "Install all of your application's dependencies into the ``myapp`` directory, " "using pip:" msgstr "" +"Installez toutes les dépendances de votre application dans le répertoire " +"``myapp`` en utilisant *pip* :" #: ../Doc/library/zipapp.rst:280 msgid "" @@ -351,6 +489,9 @@ msgid "" "file - if not, you can just list the dependencies manually on the pip " "command line)." msgstr "" +"(ceci suppose que vous ayez vos dépendances de projet dans un fichier " +"``requirements.txt`` — sinon vous pouvez simplement lister les dépendances " +"manuellement sur la ligne de commande *pip*)." #: ../Doc/library/zipapp.rst:284 msgid "" @@ -359,10 +500,14 @@ msgid "" "as you won't be making any further use of pip they aren't required - " "although it won't do any harm if you leave them." msgstr "" +"Si nécessaire, supprimez les répertoires ``.dist-info`` créés par *pip* dans " +"le répertoire ``myapp``. Ceux-ci contiennent des métadonnées pour *pip* afin " +"de gérer les paquets et, comme vous n'utiliserez plus *pip*, ils ne sont " +"pas nécessaires (c'est sans conséquence si vous les laissez)." #: ../Doc/library/zipapp.rst:289 msgid "Package the application using:" -msgstr "" +msgstr "Regroupez le tout à l'aide de :" #: ../Doc/library/zipapp.rst:295 msgid "" @@ -370,6 +515,10 @@ msgid "" "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" "interpreter` for details. It can be shipped to users as a single file." msgstr "" +"Cela produira un exécutable autonome qui peut être exécuté sur n'importe " +"quelle machine avec l'interpréteur approprié disponible. Voir :ref:`zipapp-" +"specifying-the-interpreter` pour plus de détails. Il peut être envoyé aux " +"utilisateurs sous la forme d'un seul fichier." #: ../Doc/library/zipapp.rst:299 msgid "" @@ -379,10 +528,15 @@ msgid "" "fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " "extensions when installed." msgstr "" +"Sous Unix, le fichier ``myapp.pyz`` est exécutable tel quel. Vous pouvez " +"renommer le fichier pour supprimer l'extension ``.pyz`` si vous préférez un " +"nom de commande « simple ». Sous Windows, le fichier ``myapp.pyz[w]`` est " +"exécutable en vertu du fait que l'interpréteur Python est associé aux " +"extensions de fichier ``.pyz`` et ``.pyzw`` une fois installé." #: ../Doc/library/zipapp.rst:307 msgid "Making a Windows executable" -msgstr "" +msgstr "Création d'un exécutable Windows" #: ../Doc/library/zipapp.rst:309 msgid "" @@ -392,6 +546,11 @@ msgid "" "run(['myapp'])`` won't find your application - you need to explicitly " "specify the extension)." msgstr "" +"Sous Windows, l'association de Python à l'extension ``.pyz`` est facultative " +"et, de plus, il y a certains mécanismes qui ne reconnaissent pas les " +"extensions enregistrées de manière « transparente » (l'exemple le plus " +"simple est que ``subprocess.run(['myapp'])`` ne trouvera pas votre " +"application — vous devez explicitement spécifier l'extension)." #: ../Doc/library/zipapp.rst:315 msgid "" @@ -403,16 +562,25 @@ msgid "" "onto the end of it, you end up with a single-file executable that runs your " "application." msgstr "" +"Sous Windows, il est donc souvent préférable de créer un exécutable à partir " +"du *zipapp*. C'est relativement facile bien que cela nécessite un " +"compilateur C. L'astuce repose sur le fait que les fichiers zip peuvent " +"avoir des données arbitraires au début et les fichiers *exe* de Windows " +"peuvent avoir des données arbitraires à la fin. Ainsi, en créant un lanceur " +"approprié et en rajoutant le fichier ``.pyz`` à sa fin, vous obtenez un " +"fichier unique qui exécute votre application." #: ../Doc/library/zipapp.rst:322 msgid "A suitable launcher can be as simple as the following::" -msgstr "" +msgstr "Un lanceur approprié peut être aussi simple que ce qui suit ::" #: ../Doc/library/zipapp.rst:347 msgid "" "If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " "executable, and without it, a console executable." msgstr "" +"Si vous définissez le symbole du préprocesseur ``WINDOWS`` cela va générer " +"un exécutable IUG, et sans lui, un exécutable console." #: ../Doc/library/zipapp.rst:350 msgid "" @@ -420,6 +588,9 @@ msgid "" "line tools, or you can take advantage of the fact that distutils knows how " "to compile Python source::" msgstr "" +"Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils " +"standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* " +"sait comment compiler les sources Python ::" #: ../Doc/library/zipapp.rst:377 msgid "" @@ -427,6 +598,10 @@ msgid "" "with any version of Python 3.x. All it needs is for Python (``python3." "dll``) to be on the user's ``PATH``." msgstr "" +"Le lanceur résultant utilise le « Limited ABI » donc il fonctionnera sans " +"changement avec n'importe quelle version de Python 3.x. Tout ce dont il a " +"besoin est que Python (``python3.dll``) soit sur le ``PATH`` de " +"l'utilisateur." #: ../Doc/library/zipapp.rst:381 msgid "" @@ -435,10 +610,14 @@ msgid "" "distribution. This will run on any PC with the appropriate architecture (32 " "bit or 64 bit)." msgstr "" +"Pour une distribution entièrement autonome vous pouvez distribuer le lanceur " +"avec votre application en fin de fichier, empaqueté avec la distribution " +"*embedded* Python. Ceci fonctionnera sur n'importe quel ordinateur avec " +"l'architecture appropriée (32 bits ou 64 bits)." #: ../Doc/library/zipapp.rst:387 msgid "Caveats" -msgstr "" +msgstr "Mises en garde" #: ../Doc/library/zipapp.rst:389 msgid "" @@ -446,6 +625,10 @@ msgid "" "a single file. In most, if not all, cases they can be addressed without " "needing major changes to your application." msgstr "" +"Il y a certaines limites à l'empaquetage de votre application dans un seul " +"fichier. Dans la plupart des cas, si ce n'est tous, elles peuvent être " +"traitées sans qu'il soit nécessaire d'apporter de modifications majeures à " +"votre application." #: ../Doc/library/zipapp.rst:393 msgid "" @@ -460,6 +643,18 @@ msgid "" "(and potentially pick the correct version to add to ``sys.path`` at runtime, " "based on the user's machine)." msgstr "" +"Si votre application dépend d'un paquet qui inclut une extension C, ce " +"paquet ne peut pas être exécuté à partir d'un fichier zip (c'est une " +"limitation du système d'exploitation, car le code exécutable doit être " +"présent dans le système de fichiers pour que le lanceur de l'OS puisse le " +"charger). Dans ce cas, vous pouvez exclure cette dépendance du fichier zip " +"et, soit demander à vos utilisateurs de l'installer, soit la fournir avec " +"votre fichier zip et ajouter du code à votre fichier ``__main__.py`` pour " +"inclure le répertoire contenant le module décompressé dans ``sys.path``. " +"Dans ce cas, vous devrez vous assurer d'envoyer les binaires appropriés pour " +"votre ou vos architecture(s) cible(s) (et éventuellement choisir la bonne " +"version à ajouter à ``sys.path`` au moment de l'exécution, basée sur la " +"machine de l'utilisateur)." #: ../Doc/library/zipapp.rst:403 msgid "" @@ -468,6 +663,10 @@ msgid "" "the default behaviour of the installer) or you should bundle your " "application with the embedded distribution." msgstr "" +"Si vous livrez un exécutable Windows comme décrit ci-dessus, vous devez vous " +"assurer que vos utilisateurs ont ``python3.dll`` sur leur PATH (ce qui n'est " +"pas le comportement par défaut de l'installateur) ou vous devez inclure la " +"distribution intégrée dans votre application." #: ../Doc/library/zipapp.rst:408 msgid "" @@ -479,10 +678,17 @@ msgid "" "`multiprocessing.set_executable` to let the module know where to find the " "standard Python interpreter." msgstr "" +"Le lanceur suggéré ci-dessus utilise l'API d'intégration Python. Cela " +"signifie que dans votre application ``sys.executable`` sera votre " +"application et *pas* un interpréteur Python classique. Votre code et ses " +"dépendances doivent être préparés à cette possibilité. Par exemple, si " +"votre application utilise le module :mod:`multiprocessing`, elle devra " +"appeler :func:`multiprocessing.set_executable` pour que le module sache où " +"trouver l'interpréteur Python standard." #: ../Doc/library/zipapp.rst:418 msgid "The Python Zip Application Archive Format" -msgstr "" +msgstr "Le format d'archive d'application Zip Python" #: ../Doc/library/zipapp.rst:420 msgid "" @@ -494,6 +700,13 @@ msgid "" "be placed on :data:`sys.path` and thus further modules can be imported from " "the zip file." msgstr "" +"Python est capable d'exécuter des fichiers zip qui contiennent un fichier " +"``__main__.py`` depuis la version 2.6. Pour être exécutée par Python, une " +"archive d'application doit simplement être un fichier zip standard contenant " +"un fichier ``__main__.py`` qui sera exécuté comme point d'entrée de " +"l'application. Comme d'habitude pour tout script Python, le parent du " +"script (dans ce cas le fichier zip) sera placé sur :data:`sys.path` et ainsi " +"d'autres modules pourront être importés depuis le fichier zip." #: ../Doc/library/zipapp.rst:427 msgid "" @@ -501,10 +714,14 @@ msgid "" "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" +"Le format de fichier zip permet d'ajouter des données arbitraires à un " +"fichier zip. Le format de l'application zip utilise cette possibilité pour " +"préfixer une ligne *shebang* POSIX standard dans le fichier (``#!/path/to/" +"interpreter``)." #: ../Doc/library/zipapp.rst:431 msgid "Formally, the Python zip application format is therefore:" -msgstr "" +msgstr "Formellement, le format d'application zip de Python est donc :" #: ../Doc/library/zipapp.rst:433 msgid "" @@ -515,6 +732,12 @@ msgid "" "encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on " "POSIX." msgstr "" +"Une ligne *shebang* facultative, contenant les caractères ``b'#!`` suivis " +"d'un nom d’interpréteur, puis un caractère fin de ligne (``b'\\n'``). Le " +"nom de l'interpréteur peut être n'importe quoi acceptable pour le traitement " +"*shebang* de l'OS, ou le lanceur Python sous Windows. L'interpréteur doit " +"être encodé en UTF-8 sous Windows, et en :func:`sys.getfilesystemencoding()` " +"sur POSIX." #: ../Doc/library/zipapp.rst:438 msgid "" @@ -523,12 +746,20 @@ msgid "" "in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The " "zipfile data can be compressed or uncompressed." msgstr "" +"Des données *zipfile* standards, telles que générées par le module :mod:" +"`zipfile`. Le contenu du fichier zip *doit* inclure un fichier appelé " +"``__main__.py`` (qui doit se trouver à la racine du fichier zip — c'est-à-" +"dire qu'il ne peut se trouver dans un sous-répertoire). Les données du " +"fichier zip peuvent être compressées ou non." #: ../Doc/library/zipapp.rst:443 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" +"Si une archive d'application a une ligne *shebang*, elle peut avoir le bit " +"exécutable activé sur les systèmes POSIX, pour lui permettre d'être exécutée " +"directement." #: ../Doc/library/zipapp.rst:446 msgid "" @@ -536,3 +767,7 @@ msgid "" "application archives - the module is a convenience, but archives in the " "above format created by any means are acceptable to Python." msgstr "" +"Vous pouvez créer des archives d'applications sans utiliser les outils de ce " +"module — le module existe pour faciliter les choses, mais les archives, " +"créées par n'importe quel moyen tout en respectant le format ci-dessus, sont " +"valides pour Python." diff --git a/library/zipfile.po b/library/zipfile.po index 73780f592..51ca08399 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -384,7 +384,7 @@ msgid "" "keyword:`with` statement::" msgstr "" ":meth:`~ZipFile.open` est aussi un gestionnaire de contexte et gère ainsi la " -"déclaration :keyword:`with` : ::" +"déclaration :keyword:`with` ::" #: ../Doc/library/zipfile.rst:246 msgid "" @@ -828,13 +828,13 @@ msgstr "" "c'est un répertoire son contenu est ignoré. Par exemple, si nos fichiers de " "test sont tous soit dans des répertoires ``test`` ou commencent par " "``test_``, nous pouvons utiliser une fonction *filterfunc* pour les " -"exclure : ::" +"exclure ::" #: ../Doc/library/zipfile.rst:507 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" "La méthode :meth:`writepy` crée des archives avec des noms de fichier comme " -"suit : ::" +"suit ::" #: ../Doc/library/zipfile.rst:516 msgid "The *filterfunc* parameter." diff --git a/library/zipimport.po b/library/zipimport.po index 734849811..9bc695c8c 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -7,12 +7,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" "PO-Revision-Date: 2019-07-18 20:03+0200\n" +"Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" "X-Generator: Poedit 2.2.3\n" #: ../Doc/library/zipimport.rst:2 diff --git a/library/zlib.po b/library/zlib.po index c8d763694..efcc38084 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -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: Poedit 2.0.5\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.5\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" @@ -33,7 +33,7 @@ msgstr "" "de ce module permettent la compression et la décompression via la " "bibliothèque *zlib*. La bibliothèque *zlib* a sa propre page web sur http://" "www.zlib.net. Il existe des incompatibilités connues entre le module Python " -"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " +"et les versions de la bibliothèque *zlib* plus anciennes que la 1.1.3 ; " "1.1.3 contient des failles de sécurité et nous recommandons d'utiliser " "plutôt la version 1.14 ou plus récente." @@ -44,8 +44,8 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" -"les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " -"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " +"Les fonctions *zlib* recèlent de nombreuses options et il est nécessaire de " +"suivre un ordre précis. Cette documentation n'a pas pour but de couvrir la " "globalité des possibilités. Aussi, veuillez consulter le manuel *zlib* en " "ligne sur http://www.zlib.net/manual.html pour compléter davantage son " "utilisation." @@ -79,10 +79,10 @@ msgstr "" "Calcule une somme de contrôle Adler-32 de *data* (une somme de contrôle " "Adler-32 est aussi fiable qu'un CRC32 mais peut être calculée bien plus " "rapidement). Le résultat produit est un entier non signé de 32-bit. Si " -"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " -"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " +"*value* est défini, il devient la valeur initiale de la somme de contrôle ; " +"sinon une valeur par défaut de 1 est utilisée. Définir *value* permet de " "calculer une somme de contrôle continue pendant la concaténation de " -"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " +"plusieurs entrées. Cet algorithme n'a aucune garantie cryptographique " "puissante, et ne doit pas être utilisé ni pour l'authentification, ni pour " "des signatures numériques. Conçu comme un algorithme de somme de contrôle, " "il n'est pas adapté pour une utilisation sous forme de clé de hachage " @@ -93,7 +93,7 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``adler32(data) & 0xffffffff``." msgstr "" -"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " +"Renvoie une valeur non-signée. Pour produire la même valeur avec toutes les " "versions de Python sur différentes plateformes, utilisez ``adler32(data) & " "0xffffffff``." @@ -111,7 +111,7 @@ msgstr "" "Compresse les octets contenus dans *data*, renvoie un objet *bytes* " "contenant les données compressées. *level* permet d'ajuster le niveau de " "compression, ce doit être un nombre entier compris entre ``0`` et ``9`` ou " -"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " +"``-1`` ; ``1`` étant plus rapide et procède à une compression légère, ``9`` " "est plus lent mais compresse plus fortement. ``0`` n'effectue aucune " "compression. La valeur par défaut est ``-1`` (*Z_DEFAULT_COMPRESSION*). " "*Z_DEFAULT_COMPRESSION* donne une valeur par défaut proposant un équilibre " @@ -176,9 +176,9 @@ msgid "" "specific header and trailer." msgstr "" "De +9 à +15 : le logarithme binaire de la taille du tampon, par conséquent " -"compris entre 512 et 32768. Des valeurs plus grandes produisent de " -"meilleures compressions au dépens d'une utilisation mémoire plus grande. Le " -"résultat final inclus des en-tête et des blocs spécifiques à *zlib*." +"compris entre 512 et 32 768. Des valeurs plus grandes produisent de " +"meilleures compressions aux dépens d'une utilisation mémoire plus grande. Le " +"résultat final inclus des en-têtes et des blocs spécifiques à *zlib*." #: ../Doc/library/zlib.rst:89 msgid "" @@ -195,7 +195,7 @@ msgid "" "checksum in the output." msgstr "" "De +25 à +31 = 16 + (9 à 15) : utilise les 4 bits de poids faible comme " -"logarithme binaire de la taille du tampon, tout en incluant une entête :" +"logarithme binaire de la taille du tampon, tout en incluant un entête :" "program:`gzip` et une somme de contrôle finale." #: ../Doc/library/zlib.rst:97 @@ -248,9 +248,9 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" "Calcule la somme de contrôle CRC (*Cyclic Redundancy Check* en anglais) de " -"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " +"l'argument *data*. Il renvoie un entier non signé de 32 bits. Si l'argument " "*value* est présent, il permet de définir la valeur de départ de la somme de " -"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " +"contrôle. Sinon, la valeur par défaut est 0. L'argument *value* permet de " "calculer la somme de contrôle glissante d'une concaténation de données. " "L'algorithme n'est pas fort d'un point de vue cryptographique, et ne doit " "pas être utilisé pour l'authentification ou des signatures numériques. Cet " @@ -274,10 +274,10 @@ msgid "" "initial size of the output buffer. Raises the :exc:`error` exception if any " "error occurs." msgstr "" -"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " +"Décompresse les octets de *data*, renvoyant un objet *bytes* contenant les " "données décompressées. Le paramètre *wbits* dépend du format des données " "compressées, et est abordé plus loin. Si l'argument *bufsize* est défini, il " -"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " +"est utilisé comme taille initiale du tampon de sortie. En cas d'erreur, " "l'exception :exc:`error` est levée." #: ../Doc/library/zlib.rst:145 @@ -380,8 +380,8 @@ msgid "" "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" "Le paramètre *wbits* contrôle la taille du tampon, et détermine quel format " -"d'en-tête et de bloc sont prévus. Il a la même signification que `décrit " -"pour decompress() <#decompress-wbits>`__." +"d'en-tête et de bloc sont prévus. Il a la même signification que décrit pour " +"`decompress() <#decompress-wbits>`__." #: ../Doc/library/zlib.rst:190 msgid "" @@ -420,8 +420,8 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" "Compresse *data* et renvoie au moins une partie des données compressées sous " -"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " -"appels précédant à :meth:`compress`. Certaines entrées peuvent être " +"forme d'objet *bytes*. Ces données doivent être concaténées à la suite des " +"appels précédant à :meth:`compress`. Certaines entrées peuvent être " "conservées dans des tampons internes pour un traitement ultérieur." #: ../Doc/library/zlib.rst:217 @@ -442,7 +442,7 @@ msgstr "" "L'argument *mode* accepte l'une des constantes suivantes : :const:" "`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" "`Z_FULL_FLUSH`, :const:`Z_BLOCK` (*zlib* 1.2.3.4), et :const:`Z_FINISH`, par " -"défaut :const:`Z_FINISH`. Sauf :Const:`Z_FINISH`, toutes les constantes " +"défaut :const:`Z_FINISH`. Sauf :const:`Z_FINISH`, toutes les constantes " "permettent de compresser d'autres chaînes d'octets, tandis que :const:" "`Z_FINISH` finalise le flux compressé et bloque toute autre tentative de " "compression. Suite à l'appel de la méthode :meth:`flush` avec l'argument " @@ -454,7 +454,7 @@ msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " +"Renvoie une copie de l'objet \"compresseur\". Utile pour compresser " "efficacement un ensemble de données qui partagent un préfixe initial commun." #: ../Doc/library/zlib.rst:234 @@ -549,7 +549,7 @@ msgstr "" "Toutes les entrées en attente sont traitées, et un objet *bytes* est " "renvoyé, contenant le reste des données à décompresser. Après l'appel à :" "meth:`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. Il ne " -"reste qu'a détruire l'objet." +"reste qu'à détruire l'objet." #: ../Doc/library/zlib.rst:291 msgid "" diff --git a/license.po b/license.po index 757607286..b8e341c73 100644 --- a/license.po +++ b/license.po @@ -57,7 +57,7 @@ msgid "" "is a sponsoring member of the PSF." msgstr "" "En mai 2000, Guido et l'équipe de développement centrale de Python sont " -"parti vers BeOpen.com pour former l'équipe BeOpen PythonLabs. En octobre de " +"partis vers BeOpen.com pour former l'équipe BeOpen PythonLabs. En octobre de " "la même année, l'équipe de PythonLabs est partie vers Digital Creations " "(désormais Zope Corporation; voir http://www.zope.com/). En 2001, la Python " "Software Foundation (PSF, voir http://www.python.org/psf/) voit le jour. Il " @@ -207,7 +207,7 @@ msgstr "2.1.3" #: ../Doc/license.rst:57 msgid "2.2 and above" -msgstr "2.2 et supérieur" +msgstr "2.2 et ultérieure" #: ../Doc/license.rst:57 msgid "2001-now" @@ -224,9 +224,9 @@ msgstr "" "Compatible GPL ne signifie pas que nous distribuons Python sous licence GPL. " "Toutes les licences Python, excepté la licence GPL, vous permettent la " "distribution d'une version modifiée sans rendre open source ces changements. " -"La licence \"compatible GPL\" rend possible la diffusion de Python avec un " -"autre logiciel qui est lui, diffusé sous la licence GPL; les licences \"non " -"compatible GPL\" ne le peuvent pas." +"La licence « compatible GPL » rend possible la diffusion de Python avec un " +"autre logiciel qui est lui, diffusé sous la licence GPL ; les licences « non-" +"compatibles GPL » ne le peuvent pas." #: ../Doc/license.rst:68 msgid "" @@ -262,7 +262,7 @@ msgstr "LICENCE D'UTILISATION CWI POUR PYTHON 0.9.0 à 1.2" #: ../Doc/license.rst:262 msgid "Licenses and Acknowledgements for Incorporated Software" -msgstr "Licences et Remerciements pour les logiciels inclus" +msgstr "Licences et remerciements pour les logiciels tiers" #: ../Doc/license.rst:264 msgid "" @@ -376,7 +376,7 @@ msgid "" "The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " "Dan Bernstein's SipHash24 algorithm. It contains the following note::" msgstr "" -"Le fichier :file:`Python/pyhash.c` contiens une implémentation par Marek " +"Le fichier :file:`Python/pyhash.c` contient une implémentation par Marek " "Majkowski de l'algorithme *SipHash24* de Dan Bernstein. Il contient la note " "suivante ::" @@ -393,10 +393,10 @@ msgid "" "following copyright and licensing notice::" msgstr "" "Le fichier :file:`Python/dtoa.c`, qui fournit les fonctions ``dtoa`` et " -"``strtod`` pour la conversions de *doubles* C vers et depuis les chaînes, et " -"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " +"``strtod`` pour la conversion de *doubles* C vers et depuis les chaînes, est " +"tiré d'un fichier du même nom par David M. Gay, actuellement disponible sur " "http://www.netlib.org/fp/. Le fichier original, tel que récupéré le 16 mars " -"2009, contiens la licence suivante ::" +"2009, contient la licence suivante ::" #: ../Doc/license.rst:620 msgid "OpenSSL" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index 403b877c6..02f04a0d7 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -26,7 +26,7 @@ msgid "" "compound statements span multiple lines, although in simple incarnations a " "whole compound statement may be contained in one line." msgstr "" -"Les instructions composées contiennent d'autres (groupes d’) instructions ; " +"Les instructions composées contiennent d'autres (groupes d’) instructions ; " "elles affectent ou contrôlent l'exécution de ces autres instructions d'une " "manière ou d'une autre. En général, une instruction composée couvre " "plusieurs lignes bien que, dans sa forme la plus simple, une instruction " @@ -46,7 +46,7 @@ msgstr "" "`try` spécifie des gestionnaires d'exception et du code de nettoyage pour un " "groupe d'instructions, tandis que l'instruction :keyword:`with` permet " "l'exécution de code d'initialisation et de finalisation autour d'un bloc de " -"code. Les définitions de fonctions et de classes sont également, au sens " +"code. Les définitions de fonctions et de classes sont également, au sens " "syntaxique, des instructions composées." #: ../Doc/reference/compound_stmts.rst:26 @@ -63,19 +63,19 @@ msgid "" "clear to which :keyword:`if` clause a following :keyword:`else` clause would " "belong::" msgstr "" -"Une instruction composée comporte une ou plusieurs \"clauses\". Une clause " -"se compose d'un en-tête et d'une \"suite\". Les en-têtes des clauses d'une " +"Une instruction composée comporte une ou plusieurs « clauses ». Une clause " +"se compose d'un en-tête et d'une « suite ». Les en-têtes des clauses d'une " "instruction composée particulière sont toutes placées au même niveau " "d'indentation. Chaque en-tête de clause commence par un mot-clé spécifique " -"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " -"d'instructions contrôlées par une clause ; une suite se compose, après les " +"et se termine par le caractère deux-points (`:`) ; une suite est un groupe " +"d'instructions contrôlées par une clause ; une suite se compose, après les " "deux points de l'en-tête, soit d'une ou plusieurs instructions simples " "séparées par des points-virgules si elles sont sur la même ligne que l'en-" "tête, soit d'une ou plusieurs instructions en retrait sur les lignes " "suivantes. Seule cette dernière forme d'une suite peut contenir des " "instructions composées ; ce qui suit n'est pas licite, principalement parce " "qu'il ne serait pas clair de savoir à quelle clause :keyword:`if` se " -"rapporterait une clause :keyword:`else` placée en fin de ligne :" +"rapporterait une clause :keyword:`else` placée en fin de ligne ::" #: ../Doc/reference/compound_stmts.rst:39 msgid "" @@ -85,7 +85,7 @@ msgid "" msgstr "" "Notez également que le point-virgule se lie plus étroitement que le deux-" "points dans ce contexte, de sorte que dans l'exemple suivant, soit tous les " -"appels :func:`print` sont exécutés, soit aucun ne l'est :" +"appels :func:`print` sont exécutés, soit aucun ne l'est ::" #: ../Doc/reference/compound_stmts.rst:45 msgid "Summarizing:" @@ -161,7 +161,7 @@ msgid "" "loop terminates." msgstr "" "Python évalue l'expression de manière répétée et, tant qu'elle est vraie, " -"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " +"exécute la première suite ; si l'expression est fausse (ce qui peut arriver " "même lors du premier test), la suite de la clause :keyword:`!else`, si elle " "existe, est exécutée et la boucle se termine." @@ -208,7 +208,7 @@ msgstr "" "exécutée une fois pour chaque élément fourni par l'itérateur, dans l'ordre " "renvoyé par l'itérateur. Chaque élément est assigné, à tour de rôle, à la " "liste cible (*target_list* dans la grammaire ci-dessus) en utilisant les " -"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " +"règles des assignations (voir :ref:`assignment`), et ensuite la suite est " "exécutée. Lorsque les éléments sont épuisés (ce qui est immédiat lorsque la " "séquence est vide ou si un itérateur lève une exception :exc:" "`StopIteration`), la suite de la clause :keyword:`!else`, si elle existe, " @@ -250,7 +250,7 @@ msgstr "" "terminée mais, si la séquence est vide, ils n'auront pas du tout été " "assignés par la boucle. Petite astuce : la fonction native :func:`range` " "renvoie un itérateur sur des entiers approprié pour émuler la boucle " -"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " +"classique en Pascal sur des entiers ``for i := a to b do`` ; par exemple, " "``list(range(3))`` renvoie la liste ``[0, 1, 2]``." #: ../Doc/reference/compound_stmts.rst:203 @@ -268,17 +268,17 @@ msgid "" "using a slice of the whole sequence, e.g., ::" msgstr "" "Il y a une subtilité lorsque la séquence est modifiée par la boucle (cela ne " -"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " +"peut se produire que pour les séquences mutables, c'est-à-dire les listes). " "Un compteur interne est utilisé pour savoir quel est l'élément suivant, et " -"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " +"ce compteur est incrémenté à chaque itération. Lorsqu'il a atteint la " "longueur de la séquence, la boucle se termine. Cela signifie que si la suite " "supprime l'élément courant (ou un élément précédent) de la séquence, " "l'élément suivant est sauté (puisqu'il reçoit l'indice de l'élément courant " -"qui a déjà été traité). De même, si la suite insère un élément avant " +"qui a déjà été traité). De même, si la suite insère un élément avant " "l'élément courant, l'élément courant est traité une deuxième fois à la " "prochaine itération. Ceci peut conduire à de méchants bugs, que vous pouvez " "éviter en effectuant une copie temporaire d'une tranche ou de la séquence " -"complète, par exemple ::" +"complète, par exemple ::" #: ../Doc/reference/compound_stmts.rst:224 msgid "The :keyword:`!try` statement" @@ -290,7 +290,7 @@ msgid "" "code for a group of statements:" msgstr "" "L'instruction :keyword:`try` spécifie les gestionnaires d'exception ou le " -"code de nettoyage pour un groupe d'instructions :" +"code de nettoyage pour un groupe d'instructions :" #: ../Doc/reference/compound_stmts.rst:247 msgid "" @@ -313,9 +313,9 @@ msgstr "" "d'exception. Cette recherche inspecte les clauses ``except``, l'une après " "l'autre, jusqu'à trouver une correspondance. Une clause ``except`` vide " "(c'est-à-dire sans expression), si elle est présente, doit être la " -"dernière ; elle correspond à toute exception. Pour une clause ``except`` " +"dernière ; elle correspond à toute exception. Pour une clause ``except`` " "avec une expression, cette expression est évaluée et la clause correspond si " -"l'objet résultant est \"compatible\" avec l'exception. Un objet est réputé " +"l'objet résultant est « compatible » avec l'exception. Un objet est réputé " "compatible avec une exception s'il est la classe ou une classe de base de " "l'objet exception ou si c'est un tuple contenant un élément qui est " "compatible avec l'exception." @@ -357,7 +357,7 @@ msgstr "" "Lorsqu'une clause d'exception correspond, l'exception est assignée à la " "cible spécifiée après le mot-clé :keyword:`!as` dans cette clause " "``except``, si cette cible existe, et la suite de clause ``except`` est " -"exécutée. Toutes les clauses ``except`` doivent avoir un bloc exécutable. " +"exécutée. Toutes les clauses ``except`` doivent avoir un bloc exécutable. " "Lorsque la fin de ce bloc est atteinte, l'exécution continue normalement " "après l'ensemble de l'instruction ``try`` (cela signifie que si deux " "gestionnaires imbriqués existent pour la même exception, et que l'exception " @@ -370,11 +370,11 @@ msgid "" "the end of the except clause. This is as if ::" msgstr "" "Lorsqu'une exception a été assignée en utilisant ``as cible``, elle est " -"effacée à la fin de la clause ``except``. C'est comme si ::" +"effacée à la fin de la clause ``except``. C'est comme si ::" #: ../Doc/reference/compound_stmts.rst:282 msgid "was translated to ::" -msgstr "avait été traduit en ::" +msgstr "avait été traduit en ::" #: ../Doc/reference/compound_stmts.rst:290 msgid "" @@ -481,9 +481,9 @@ msgid "" "always be the last one executed::" msgstr "" "La valeur de retour d'une fonction est déterminée par la dernière " -"instruction :keyword:`return` exécutée. Puisque la clause :keyword:" -"`finally` s'exécute toujours, une instruction :keyword:`!return` exécutée " -"dans le :keyword:`!finally` sera toujours la dernière clause exécutée ::" +"instruction :keyword:`return` exécutée. Puisque la clause :keyword:`finally` " +"s'exécute toujours, une instruction :keyword:`!return` exécutée dans le :" +"keyword:`!finally` sera toujours la dernière clause exécutée ::" #: ../Doc/reference/compound_stmts.rst:369 msgid "" @@ -510,16 +510,16 @@ msgstr "" "L'instruction :keyword:`with` est utilisée pour encapsuler l'exécution d'un " "bloc avec des méthodes définies par un gestionnaire de contexte (voir la " "section :ref:`context-managers`). Cela permet d'utiliser de manière simple " -"le patron de conception classique :keyword:`try`....\\ :keyword:`except`..." -"\\ \\ :keyword:`finally`." +"le patron de conception classique :keyword:`try`…\\ :keyword:`except`…\\ :" +"keyword:`finally`." #: ../Doc/reference/compound_stmts.rst:396 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" msgstr "" -"L'exécution de l'instruction :keyword:`with` avec un seul \"élément" -"\" (*item* dans la grammaire) se déroule comme suit :" +"L'exécution de l'instruction :keyword:`with` avec un seul " +"« élément » (*item* dans la grammaire) se déroule comme suit :" #: ../Doc/reference/compound_stmts.rst:398 msgid "" @@ -573,8 +573,8 @@ msgid "" "arguments to :meth:`__exit__`. Otherwise, three :const:`None` arguments are " "supplied." msgstr "" -"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si " -"une exception a causé la sortie de la suite, son type, sa valeur et sa pile " +"La méthode :meth:`__exit__` du gestionnaire de contexte est invoquée. Si une " +"exception a causé la sortie de la suite, son type, sa valeur et sa pile " "d'appels sont passés en arguments à :meth:`__exit__`. Sinon, trois " "arguments :const:`None` sont fournis." @@ -587,7 +587,7 @@ msgid "" msgstr "" "Si l'on est sorti de la suite en raison d'une exception et que la valeur de " "retour de la méthode :meth:`__exit__` était fausse, l'exception est levée à " -"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " +"nouveau. Si la valeur de retour était vraie, l'exception est supprimée et " "l'exécution continue avec l'instruction qui suit l'instruction :keyword:" "`with`." @@ -612,7 +612,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:438 #: ../Doc/reference/compound_stmts.rst:653 msgid "is equivalent to ::" -msgstr "est équivalente à ::" +msgstr "est équivalente à ::" #: ../Doc/reference/compound_stmts.rst:444 msgid "Support for multiple context expressions." @@ -620,7 +620,7 @@ msgstr "Prise en charge de multiples expressions de contexte." #: ../Doc/reference/compound_stmts.rst:450 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` — L'instruction « *with* »" #: ../Doc/reference/compound_stmts.rst:450 msgid "" @@ -653,7 +653,7 @@ msgstr "" "Une définition de fonction est une instruction qui est exécutée. Son " "exécution lie le nom de la fonction, dans l'espace de nommage local courant, " "à un objet fonction (un objet qui encapsule le code exécutable de la " -"fonction). Cet objet fonction contient une référence à l'espace des noms " +"fonction). Cet objet fonction contient une référence à l'espace des noms " "globaux courant comme espace des noms globaux à utiliser lorsque la fonction " "est appelée." @@ -662,7 +662,7 @@ msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" msgstr "" -"La définition de la fonction n'exécute pas le corps de la fonction ; elle " +"La définition de la fonction n'exécute pas le corps de la fonction ; elle " "n'est exécutée que lorsque la fonction est appelée. [#]_" #: ../Doc/reference/compound_stmts.rst:506 @@ -676,18 +676,18 @@ msgid "" "example, the following code ::" msgstr "" "Une définition de fonction peut être encapsulée dans une ou plusieurs " -"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " +"expressions :term:`decorator` ; les décorateurs sont évalués lorsque la " "fonction est définie, dans la portée qui contient la définition de " -"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " -"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " +"fonction ; le résultat doit être un appelable, qui est invoqué avec l'objet " +"fonction comme seul argument ; la valeur renvoyée est liée au nom de la " "fonction en lieu et place de l'objet fonction. Lorsqu'il y a plusieurs " "décorateurs, ils sont appliqués par imbrication ; par exemple, le code " -"suivant ::" +"suivant ::" #: ../Doc/reference/compound_stmts.rst:517 #: ../Doc/reference/compound_stmts.rst:683 msgid "is roughly equivalent to ::" -msgstr "est à peu près équivalent à ::" +msgstr "est à peu près équivalent à ::" #: ../Doc/reference/compound_stmts.rst:522 msgid "" @@ -707,12 +707,12 @@ msgid "" "syntactic restriction that is not expressed by the grammar." msgstr "" "Lorsqu'un ou plusieurs :term:`paramètres ` sont de la forme " -"*parameter* ``=`` *expression*, on dit que la fonction a des \"valeurs de " -"paramètres par défaut\". Pour un paramètre avec une valeur par défaut, l’:" +"*parameter* ``=`` *expression*, on dit que la fonction a des « valeurs de " +"paramètres par défaut ». Pour un paramètre avec une valeur par défaut, l’:" "term:`argument` correspondant peut être omis lors de l'appel, la valeur par " "défaut du paramètre est alors utilisée. Si un paramètre a une valeur par " "défaut, tous les paramètres suivants jusqu'à \"``*``\" doivent aussi avoir " -"une valeur par défaut --- ceci est une restriction syntaxique qui n'est pas " +"une valeur par défaut — ceci est une restriction syntaxique qui n'est pas " "exprimée dans la grammaire." #: ../Doc/reference/compound_stmts.rst:537 @@ -730,7 +730,7 @@ msgstr "" "**Les valeurs par défaut des paramètres sont évaluées de la gauche vers la " "droite quand la définition de la fonction est exécutée**. Cela signifie que " "l'expression est évaluée une fois, lorsque la fonction est définie, et que " -"c'est la même valeur \"pré-calculée\" qui est utilisée à chaque appel. C'est " +"c'est la même valeur « pré-calculée » qui est utilisée à chaque appel. C'est " "particulièrement important à comprendre lorsqu'un paramètre par défaut est " "un objet mutable, tel qu'une liste ou un dictionnaire : si la fonction " "modifie l'objet (par exemple en ajoutant un élément à une liste), la valeur " @@ -755,7 +755,7 @@ msgstr "" "section :ref:`calls`. Un appel de fonction assigne toujours des valeurs à " "tous les paramètres mentionnés dans la liste des paramètres, soit à partir " "d'arguments positionnels, d'arguments par mots-clés ou de valeurs par " -"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " +"défaut. S'il y a un paramètre de la forme \"``*identifier``\", il est " "initialisé à un tuple recevant les paramètres positionnels en surplus, la " "valeur par défaut étant le tuple vide. S'il y a un paramètre de la forme " "\"``**identifier``\", il est initialisé à un nouveau tableau associatif " @@ -781,10 +781,10 @@ msgid "" "different order than they appear in the source code." msgstr "" "Les paramètres peuvent avoir une :term:`annotation ` " -"sous la forme \"``: expression``\" après le nom du paramètre. Tout " -"paramètre peut avoir une annotation, même ceux de la forme ``*identifier`` " -"ou ``**identifier``. Les fonctions peuvent avoir une annotation pour la " -"valeur de retour, sous la forme \"``-> expression``\" après la liste des " +"sous la forme \"``: expression``\" après le nom du paramètre. Tout paramètre " +"peut avoir une annotation, même ceux de la forme ``*identifier`` ou " +"``**identifier``. Les fonctions peuvent avoir une annotation pour la valeur " +"de retour, sous la forme \"``-> expression``\" après la liste des " "paramètres. Ces annotations peuvent prendre la forme de toute expression " "Python valide. Leur présence ne change pas la sémantique de la fonction. Les " "valeurs des annotations sont accessibles comme valeurs d'un dictionnaire " @@ -834,7 +834,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:605 msgid ":pep:`3107` - Function Annotations" -msgstr ":pep:`3107` -- Annotations de fonctions" +msgstr ":pep:`3107` — Annotations de fonctions" #: ../Doc/reference/compound_stmts.rst:605 msgid "The original specification for function annotations." @@ -842,7 +842,7 @@ msgstr "La spécification originale pour les annotations de fonctions." #: ../Doc/reference/compound_stmts.rst:608 msgid ":pep:`484` - Type Hints" -msgstr ":pep:`484` -- Indications de types" +msgstr ":pep:`484` — Indications de types" #: ../Doc/reference/compound_stmts.rst:608 msgid "Definition of a standard meaning for annotations: type hints." @@ -852,7 +852,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:612 msgid ":pep:`526` - Syntax for Variable Annotations" -msgstr ":pep:`526` -- Syntaxe pour les annotations de variables" +msgstr ":pep:`526` — Syntaxe pour les annotations de variables" #: ../Doc/reference/compound_stmts.rst:611 msgid "" @@ -864,7 +864,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:615 msgid ":pep:`563` - Postponed Evaluation of Annotations" -msgstr ":pep:`563` -- Évaluation différée des annotations" +msgstr ":pep:`563` — Évaluation différée des annotations" #: ../Doc/reference/compound_stmts.rst:615 msgid "" @@ -897,9 +897,9 @@ msgstr "" "d'héritage (*inheritance* entre crochets dans la grammaire ci-dessus) donne " "habituellement une liste de classes de base (voir :ref:`metaclasses` pour " "des utilisations plus avancées). Donc chaque élément de la liste doit " -"pouvoir être évalué comme un objet classe qui autorise les sous-classes. " -"Les classes sans liste d'héritage héritent, par défaut, de la classe de " -"base :class:`object` ; d'où ::" +"pouvoir être évalué comme un objet classe qui autorise les sous-classes. Les " +"classes sans liste d'héritage héritent, par défaut, de la classe de base :" +"class:`object` ; d'où ::" #: ../Doc/reference/compound_stmts.rst:658 msgid "" @@ -945,8 +945,8 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:677 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" -"Les classes peuvent aussi être décorées : comme pour les décorateurs de " -"fonctions ::" +"Les classes peuvent aussi être décorées : comme pour les décorateurs de " +"fonctions, ::" #: ../Doc/reference/compound_stmts.rst:688 msgid "" @@ -972,9 +972,9 @@ msgstr "" "**Note pour les programmeurs :** les variables définies dans la définition " "de classe sont des attributs de classe ; elles sont partagées par les " "instances. Les attributs d'instance peuvent être définis dans une méthode en " -"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " +"utilisant ``self.name = value``. Les attributs de classe et d'instance sont " "accessibles par la notation \"``self.name``\", et un attribut d'instance " -"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " +"masque un attribut de classe de même nom lorsqu'on y accède de cette façon. " "Les attributs de classe peuvent être utilisés comme valeurs par défaut pour " "les attributs d'instances, mais l'utilisation de valeurs mutables peut " "conduire à des résultats inattendus. Les :ref:`descripteurs ` " @@ -983,7 +983,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:706 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr ":pep:`3115` -- Métaclasses dans Python 3000" +msgstr ":pep:`3115` — Métaclasses dans Python 3000" #: ../Doc/reference/compound_stmts.rst:704 msgid "" @@ -996,7 +996,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:709 msgid ":pep:`3129` - Class Decorators" -msgstr ":pep:`3129` -- Décorateurs de classes" +msgstr ":pep:`3129` — Décorateurs de classes" #: ../Doc/reference/compound_stmts.rst:709 msgid "" @@ -1080,7 +1080,7 @@ msgstr "Le code suivant ::" #: ../Doc/reference/compound_stmts.rst:776 #: ../Doc/reference/compound_stmts.rst:814 msgid "Is semantically equivalent to::" -msgstr "Est sémantiquement équivalent à ::" +msgstr "est sémantiquement équivalent à ::" #: ../Doc/reference/compound_stmts.rst:791 msgid "See also :meth:`__aiter__` and :meth:`__anext__` for details." @@ -1123,7 +1123,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:837 msgid ":pep:`492` - Coroutines with async and await syntax" -msgstr ":pep:`492` -- Coroutines avec les syntaxes *async* et *await*" +msgstr ":pep:`492` — Coroutines avec les syntaxes *async* et *await*" #: ../Doc/reference/compound_stmts.rst:837 msgid "" diff --git a/reference/datamodel.po b/reference/datamodel.po index 84ac351ab..1b7502bf0 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -33,7 +33,7 @@ msgstr "" "En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " "les données d'un programme Python sont représentées par des objets ou par " "des relations entre les objets (dans un certain sens, et en conformité avec " -"le modèle de Von Neumann \"d'ordinateur à programme enregistré\", le code " +"le modèle de Von Neumann d'« ordinateur à programme enregistré », le code " "est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 @@ -63,7 +63,7 @@ msgid "" "unchangeable. [#]_" msgstr "" "Le type de l'objet détermine les opérations que l'on peut appliquer à " -"l'objet (par exemple, \"a-t-il une longueur ?\") et définit aussi les " +"l'objet (par exemple, « a-t-il une longueur ? ») et définit aussi les " "valeurs possibles pour les objets de ce type. La fonction :func:`type` " "renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " "le :dfn:`type` d'un objet ne peut pas être modifié [#]_." @@ -154,7 +154,7 @@ msgid "" "`finally`' statement and the ':keyword:`with`' statement provide convenient " "ways to do this." msgstr "" -"Certains objets font référence à des ressources \"externes\" telles que des " +"Certains objets font référence à des ressources « externes » telles que des " "fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " "moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " "qu'il supprime tous les objets, ces objets fournissent également un moyen " @@ -236,7 +236,7 @@ msgid "" "future." msgstr "" "Quelques descriptions des types ci-dessous contiennent un paragraphe listant " -"des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " +"des « attributs spéciaux ». Ces attributs donnent accès à l'implémentation " "et n'ont, en général, pas vocation à être utilisés. Leur définition peut " "changer dans le futur." @@ -373,7 +373,7 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" -"Ils représentent les valeurs \"faux\" et \"vrai\". Deux objets, ``False`` et " +"Ils représentent les valeurs *faux* et *vrai*. Deux objets, ``False`` et " "``True``, sont les seuls objets booléens. Le type booléen est un sous-type " "du type entier et les valeurs booléennes se comportent comme les valeurs 0 " "(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " @@ -468,7 +468,7 @@ msgid "" "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" -"Quelques séquences gèrent le \"découpage étendu\" (*extended slicing* en " +"Quelques séquences gèrent le « découpage étendu » (*extended slicing* en " "anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " "éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " "*i* ``<=`` *x* ``<`` *j*." @@ -530,7 +530,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:318 msgid "Tuples" -msgstr "Tuples" +msgstr "n-uplets (ou tuples)" #: ../Doc/reference/datamodel.rst:313 msgid "" @@ -544,7 +544,7 @@ msgstr "" "Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " "deux ou plus éléments sont formés par une liste d'expressions dont les " "éléments sont séparés par des virgules. Un tuple composé d'un seul élément " -"(un \"singleton\") est formé en suffixant une expression avec une virgule " +"(un « singleton ») est formé en suffixant une expression avec une virgule " "(une expression en tant que telle ne crée pas un tuple car les parenthèses " "doivent rester disponibles pour grouper les expressions). Un tuple vide peut " "être formé à l'aide d'une paire de parenthèses vide." @@ -938,7 +938,7 @@ msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" -"La plupart des attributs étiquetés \"Accessible en écriture\" vérifient le " +"La plupart des attributs étiquetés « Accessible en écriture » vérifient le " "type de la valeur qu'on leur assigne." #: ../Doc/reference/datamodel.rst:532 @@ -1226,9 +1226,9 @@ msgid "" msgstr "" "Ce sont des fonctions natives déguisées, contenant un objet passé à une " "fonction C en tant qu'argument supplémentaire implicite. Un exemple de " -"méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " -"Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` est défini " -"à l'objet *une_liste*." +"méthode native est ``une_liste.append()`` (``une_liste`` étant un objet " +"liste). Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` " +"est défini à l'objet *une_liste*." #: ../Doc/reference/datamodel.rst:689 msgid "Classes" @@ -1464,7 +1464,7 @@ msgstr "" "l'utilisateur, il est transformé en objet méthode d'instance dont " "l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " "méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " -"\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " +"« Classes ». Lisez la section :ref:`descriptors` pour une autre façon de " "récupérer les attributs d'une classe, où la récupération *via* ses instances " "peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " "de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " @@ -1696,7 +1696,7 @@ msgstr "" "``None``, c'est une fonction appelée à différentes occasions durant " "l'exécution du code (elle est utilisée par le débogueur). Normalement, un " "événement est déclenché pour chaque ligne de code source — ce comportement " -"peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." +"peut être désactivé en définissant :attr:`f_trace_lines` à :const:`False`." #: ../Doc/reference/datamodel.rst:984 msgid "" @@ -1720,8 +1720,8 @@ msgid "" msgstr "" ":attr:`f_lineno` est le numéro de la ligne courante du cadre — écrire dedans " "depuis une fonction trace fait sauter à la ligne demandée (seulement pour le " -"cadre le plus bas). Un débogueur peut implémenter une commande \"sauter vers" -"\" (aussi appelée \"Définir la prochaine instruction\" ou *Set Next " +"cadre le plus bas). Un débogueur peut implémenter une commande « sauter " +"vers » (aussi appelée « Définir la prochaine instruction » ou *Set Next " "Statement* en anglais) en écrivant dans ``f_lineno``." #: ../Doc/reference/datamodel.rst:994 @@ -1829,9 +1829,9 @@ msgid "" "Traceback objects can now be explicitly instantiated from Python code, and " "the ``tb_next`` attribute of existing instances can be updated." msgstr "" -"Les objets traces peuvent maintenant être explicitement instanciés depuis le " -"code Python et l'attribut ``tb_next`` des instances existantes peut être mis " -"à jour." +"Les objets de traces d'appels peuvent maintenant être explicitement " +"instanciés depuis le code Python et l'attribut ``tb_next`` des instances " +"existantes peut être mis à jour." #: ../Doc/reference/datamodel.rst:1092 msgid "Slice objects" @@ -1918,7 +1918,7 @@ msgstr "" "autre objet afin de modifier la façon dont cet objet est récupéré depuis les " "classes et instances de classes. Le comportement des objets méthodes de " "classes dans le cas d'une telle récupération est décrit plus haut, dans " -"\"méthodes définies par l'utilisateur\". Les objets méthodes de classes sont " +"« méthodes définies par l'utilisateur ». Les objets méthodes de classes sont " "créés par le constructeur natif :func:`classmethod`." #: ../Doc/reference/datamodel.rst:1115 @@ -2183,13 +2183,13 @@ msgid "" "an \"informal\" string representation of instances of that class is required." msgstr "" "Appelée par la fonction native :func:`repr` pour calculer la représentation " -"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour que " +"« officielle » en chaîne de caractères d'un objet. Tout est fait pour que " "celle-ci ressemble à une expression Python valide pouvant être utilisée pour " "recréer un objet avec la même valeur (dans un environnement donné). Si ce " "n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " "est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " "une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" -"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"`__repr__` est aussi utilisée quand une représentation « informelle » en " "chaîne de caractères est demandée pour une instance de cette classe." #: ../Doc/reference/datamodel.rst:1274 @@ -2209,9 +2209,9 @@ msgid "" "` object." msgstr "" "Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" -"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" -"\" ou joliment mise en forme de représentation de l'objet. La valeur " -"renvoyée doit être un objet :ref:`string `." +"`format` et :func:`print` pour calculer une chaîne de caractères " +"« informelle » ou joliment mise en forme de représentation de l'objet. La " +"valeur renvoyée doit être un objet :ref:`string `." #: ../Doc/reference/datamodel.rst:1290 msgid "" @@ -2252,7 +2252,7 @@ msgid "" msgstr "" "Appelée par la fonction native :func:`format` et, par extension, lors de " "l'évaluation de :ref:`formatted string literals ` et la méthode :" -"meth:`str.format`. Elle produit une chaîne de caractères \"formatée\" " +"meth:`str.format`. Elle produit une chaîne de caractères « formatée » " "représentant un objet. L'argument ``format_spec`` est une chaîne de " "caractères contenant la description des options de formatage voulues. " "L'interprétation de l'argument ``format_spec`` est laissée au type " @@ -2276,8 +2276,8 @@ msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" -"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si " -"vous lui passez une chaîne non vide." +"La méthode ``__format__`` de ``object`` lui-même lève une :exc:`TypeError` " +"si vous lui passez une chaîne non vide." #: ../Doc/reference/datamodel.rst:1333 msgid "" @@ -2295,7 +2295,7 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" -"Ce sont les méthodes dites de \"comparaisons riches\". La correspondance " +"Ce sont les méthodes dites de « comparaisons riches ». La correspondance " "entre les symboles opérateurs et les noms de méthodes est la suivante : " "``xy`` appelle " @@ -2683,7 +2683,7 @@ msgid "" "with the attribute name and the result is returned." msgstr "" "Les noms spéciaux ``__getattr__`` et ``__dir__`` peuvent aussi être " -"personnalisés pour accéder aux attributs du module. La fonction " +"personnalisés pour accéder aux attributs du module. La fonction " "``__getattr__`` au niveau du module doit accepter un argument qui est un nom " "d'attribut et doit renvoyer la valeur calculée ou lever une :exc:" "`AttributeError`. Si un attribut n'est pas trouvé dans l'objet module en " @@ -2736,7 +2736,7 @@ msgstr "attributs ``__getattr__`` et ``__dir__`` du module." #: ../Doc/reference/datamodel.rst:1601 msgid ":pep:`562` - Module __getattr__ and __dir__" -msgstr ":pep:`562` — ``__getattr__`` et ``__dir__`` pour un module" +msgstr ":pep:`562` — ``__getattr__`` et ``__dir__`` pour un module" #: ../Doc/reference/datamodel.rst:1602 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." @@ -2760,7 +2760,7 @@ msgstr "" "classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " "figurer dans le dictionnaire de la classe propriétaire ou dans le " "dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " -"\"l'attribut\" fait référence à l'attribut dont le nom est une clé du :attr:" +"« l'attribut » fait référence à l'attribut dont le nom est une clé du :attr:" "`~object.__dict__` de la classe propriétaire." #: ../Doc/reference/datamodel.rst:1620 @@ -2832,7 +2832,7 @@ msgid "" "of those methods are defined for an object, it is said to be a descriptor." msgstr "" "En général, un descripteur est un attribut d'objet dont le comportement est " -"\"lié\" (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"« lié » (*binding dehavior* en anglais), c'est-à-dire que les accès aux " "attributs ont été surchargés par des méthodes conformes au protocole des " "descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " "l'une de ces méthodes est définie pour un objet, il est réputé être un " @@ -3239,7 +3239,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1864 msgid "MRO entries are resolved;" -msgstr "Les entrées MRO sont résolues" +msgstr "Les entrées MRO sont résolues ;" #: ../Doc/reference/datamodel.rst:1865 msgid "the appropriate metaclass is determined;" @@ -3296,7 +3296,7 @@ msgstr "" msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" -"si aucune classe et aucune méta-classe n'est donnée, alors :func:`type` est " +"si aucune classe et aucune métaclasse n'est donnée, alors :func:`type` est " "utilisée ;" #: ../Doc/reference/datamodel.rst:1893 @@ -3559,8 +3559,8 @@ msgid "" "other ABCs." msgstr "" "En particulier, la méta-classe :class:`abc.ABCMeta` implémente ces méthodes " -"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " -"Base Classes* en anglais) en tant que \"classes de base virtuelles\" pour " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que « classes de base virtuelles » pour " "toute classe ou type (y compris les types natifs)." #: ../Doc/reference/datamodel.rst:2025 @@ -3570,7 +3570,7 @@ msgid "" "class)``." msgstr "" "Renvoie ``True`` si *instance* doit être considérée comme une instance " -"(directe ou indirecte) de *class*. Si elle est définie, est elle appelée " +"(directe ou indirecte) de *class*. Si elle est définie, elle est appelée " "pour implémenter ``isinstance(instance, class)``." #: ../Doc/reference/datamodel.rst:2032 @@ -3658,7 +3658,7 @@ msgid "" "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" -"Appelée quand l'instance est \"appelée\" en tant que fonction ; si la " +"Appelée quand l'instance est « appelée » en tant que fonction ; si la " "méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." "__call__(arg1, arg2, ...)``." @@ -3777,11 +3777,11 @@ msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " -"Un appel comme ::" +"Un appel comme ::" #: ../Doc/reference/datamodel.rst:2159 msgid "is translated to ::" -msgstr "est traduit en ::" +msgstr "est traduit en ::" #: ../Doc/reference/datamodel.rst:2163 msgid "and so forth. Missing slice items are always filled in with ``None``." @@ -3974,7 +3974,7 @@ msgstr "" "évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " "possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " "méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" -"`__floordiv__` et :meth:`__mod__`; elle ne doit pas être reliée à :meth:" +"`__floordiv__` et :meth:`__mod__` ; elle ne doit pas être reliée à :meth:" "`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " "accepter un troisième argument optionnel si la version ternaire de la " "fonction native :func:`pow` est autorisée." @@ -4047,7 +4047,7 @@ msgstr "" "Ces méthodes sont appelées pour implémenter les assignations arithmétiques " "augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " "``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " -"essayer d'effectuer l'opération \"sur place\" (c'est-à-dire de modifier " +"essayer d'effectuer l'opération « sur place » (c'est-à-dire de modifier " "*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " "*self*). Si une méthode spécifique n'est pas définie, l'assignation " "augmentée se replie vers la méthode normale correspondante. Par exemple, si " @@ -4247,7 +4247,7 @@ msgid "" "the instance when looking up special methods::" msgstr "" "Essayer d'invoquer une méthode non liée d'une classe de cette manière est " -"parfois appelé \"confusion de méta-classe\" et se contourne en shuntant " +"parfois appelé « confusion de méta-classe » et se contourne en shuntant " "l'instance lors de la recherche des méthodes spéciales ::" #: ../Doc/reference/datamodel.rst:2511 @@ -4424,7 +4424,7 @@ msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." msgstr "" -"Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " +"Un *itérateur asynchrone* peut appeler du code asynchrone dans sa méthode " "``__anext__``." #: ../Doc/reference/datamodel.rst:2638 diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 4ea5d544e..e8356ab1a 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -275,7 +275,7 @@ msgstr "" "L'espace de nommage de la définition de classe devient le dictionnaire des " "attributs de la classe. La portée des noms définis dans un bloc de classe " "est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " -"méthodes -- y compris les compréhensions et les expressions générateurs " +"méthodes — y compris les compréhensions et les expressions générateurs " "puisque celles-ci sont implémentées en utilisant une portée de fonction. " "Ainsi, les instructions suivantes échouent ::" @@ -290,7 +290,7 @@ msgid "" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" -"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit " +"L'utilisateur ne doit pas toucher à ``__builtins__`` ; c'est et cela doit " "rester réservé aux besoins de l'implémentation. Les utilisateurs qui " "souhaitent surcharger des valeurs dans l'espace de nommage natif doivent :" "keyword:`importer ` le module :mod:`builtins` et modifier ses " @@ -378,11 +378,10 @@ msgstr "" "L'interpréteur Python lève une exception quand il détecte une erreur à " "l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " "lever explicitement une exception avec l'instruction :keyword:`raise`. Les " -"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:" -"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle " -"instruction peut être utilisée pour spécifier un code de nettoyage qui ne " -"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou " -"pas)." +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:`try` " +"… :keyword:`except`. La clause :keyword:`finally` d'une telle instruction " +"peut être utilisée pour spécifier un code de nettoyage qui ne gère pas " +"l'exception mais qui est exécuté quoi qu'il arrive (exception ou pas)." #: ../Doc/reference/executionmodel.rst:237 msgid "" @@ -393,7 +392,7 @@ msgid "" msgstr "" "Python utilise le modèle par *terminaison* de gestion des erreurs : un " "gestionnaire d'exception peut trouver ce qui est arrivé et continuer " -"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de " +"l'exécution à un niveau plus élevé, mais il ne peut pas réparer l'origine de " "l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " "dans le code en question par le haut)." diff --git a/reference/expressions.po b/reference/expressions.po index 3be37e730..36b270103 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -54,7 +54,7 @@ msgid "" "operator implementation for built-in types works as follows:" msgstr "" "Quand la description d'un opérateur arithmétique ci-dessous utilise la " -"phrase \"les arguments numériques sont convertis vers un type commun\", cela " +"phrase « les arguments numériques sont convertis vers un type commun », cela " "signifie que l'implémentation de l'opérateur fonctionne de la manière " "suivante pour les types natifs :" @@ -150,8 +150,8 @@ msgstr "" "` de cette classe. Les noms privés sont transformés en une " "forme plus longue avant que le code ne soit généré pour eux. La " "transformation insère le nom de la classe, avec les soulignés enlevés et un " -"seul souligné inséré devant le nom. Par exemple, l'identificateur " -"``__spam`` apparaissant dans une classe nommée ``Ham`` est transformé en " +"seul souligné inséré devant le nom. Par exemple, l'identificateur ``__spam`` " +"apparaissant dans une classe nommée ``Ham`` est transformé en " "``_Ham__spam``. Cette transformation est indépendante du contexte syntaxique " "dans lequel l'identificateur est utilisé. Si le nom transformé est " "extrêmement long (plus de 255 caractères), l'implémentation peut le " @@ -237,7 +237,7 @@ msgid "" msgstr "" "Notez que les *tuples* ne sont pas créés par les parenthèses mais par " "l'utilisation de la virgule. L'exception est le tuple vide, pour lequel les " -"parenthèses *sont requises* (autoriser que \"rien\" ne soit pas parenthésé " +"parenthèses *sont requises* (autoriser que « rien » ne soit pas parenthésé " "dans les expressions aurait généré des ambigüités et aurait permis à " "certaines coquilles de passer inaperçu)." @@ -251,7 +251,7 @@ msgid "" "syntax called \"displays\", each of them in two flavors:" msgstr "" "Pour construire une liste, un ensemble ou un dictionnaire, Python fournit " -"des syntaxes spéciales dites \"agencements\" (*displays* en anglais), chaque " +"des syntaxes spéciales dites « agencements » (*displays* en anglais), chaque " "agencement comportant deux variantes :" #: ../Doc/reference/expressions.rst:169 @@ -300,7 +300,7 @@ msgstr "" "Cependant, à part l'expression de l'itérable dans la clause :keyword:`!for` " "la plus à gauche, la compréhension est exécutée dans une portée séparée, " "implicitement imbriquée. Ceci assure que les noms assignés dans la liste " -"cible ne \"fuient\" pas en dehors de cette portée." +"cible ne « fuient » pas en dehors de cette portée." #: ../Doc/reference/expressions.rst:198 msgid "" @@ -408,7 +408,7 @@ msgid "" msgstr "" "Un agencement d'ensemble (type *set*) est délimité par des accolades et se " "distingue de l'agencement d'un dictionnaire par le fait qu'il n'y a pas de " -"\"deux points\" ``:`` pour séparer les clés et les valeurs :" +"« deux points » ``:`` pour séparer les clés et les valeurs :" #: ../Doc/reference/expressions.rst:275 msgid "" @@ -517,12 +517,12 @@ msgstr "" #: ../Doc/reference/expressions.rst:345 msgid "Generator expressions" -msgstr "Générateurs (expressions)" +msgstr "Expressions génératrices" #: ../Doc/reference/expressions.rst:352 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" -"Une expression générateur est une notation concise pour un générateur, " +"Une expression génératrice est une notation concise pour un générateur, " "entourée de parenthèses :" #: ../Doc/reference/expressions.rst:357 @@ -531,8 +531,8 @@ msgid "" "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" -"Une expression générateur produit un nouvel objet générateur. Sa syntaxe est " -"la même que celle des compréhensions, sauf qu'elle est entourée de " +"Une expression génératrice produit un nouvel objet générateur. Sa syntaxe " +"est la même que celle des compréhensions, sauf qu'elle est entourée de " "parenthèses au lieu de crochets ou d'accolades." #: ../Doc/reference/expressions.rst:361 @@ -548,7 +548,7 @@ msgid "" "depend on the values obtained from the leftmost iterable. For example: " "``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" -"Les variables utilisées dans une expression générateur sont évaluées " +"Les variables utilisées dans une expression génératrice sont évaluées " "paresseusement, au moment où la méthode :meth:`~generator.__next__` de " "l'objet générateur est appelée (de la même manière que pour les générateurs " "classiques). Cependant, l'expression de l'itérable dans la clause :keyword:`!" @@ -590,15 +590,15 @@ msgid "" "asynchronous generator object, which is an asynchronous iterator (see :ref:" "`async-iterators`)." msgstr "" -"Si une expression générateur contient une ou des expressions :keyword:`!" -"async for` ou :keyword:`await`, elle est appelée :dfn:`expression générateur " -"asynchrone `. Une expression générateur " -"asynchrone produit un nouvel objet générateur asynchrone qui est un " -"itérateur asynchrone (voir :ref:`async-iterators`)." +"Si une expression génératrice contient une ou des expressions :keyword:`!" +"async for` ou :keyword:`await`, elle est appelée :dfn:`expression " +"génératrice asynchrone `. Une expression " +"génératrice asynchrone produit un nouvel objet générateur asynchrone qui est " +"un itérateur asynchrone (voir :ref:`async-iterators`)." #: ../Doc/reference/expressions.rst:387 msgid "Asynchronous generator expressions were introduced." -msgstr "les expressions générateurs asynchrones ont été introduites." +msgstr "les expressions génératrices asynchrones ont été introduites." #: ../Doc/reference/expressions.rst:390 msgid "" @@ -606,9 +606,9 @@ msgid "" "in :keyword:`async def` coroutines. Starting with 3.7, any function can use " "asynchronous generator expressions." msgstr "" -"Avant Python 3.7, les expressions générateurs asynchrones ne pouvaient " +"Avant Python 3.7, les expressions génératrices asynchrones ne pouvaient " "apparaître que dans les coroutines :keyword:`async def`. À partir de la " -"version 3.7, toute fonction peut utiliser des expressions générateurs " +"version 3.7, toute fonction peut utiliser des expressions génératrices " "asynchrones." #: ../Doc/reference/expressions.rst:402 @@ -625,12 +625,12 @@ msgid "" "asynchronous generator. For example::" msgstr "" "Une expression ``yield`` est utilisée pour définir une fonction :term:" -"`générateur` ou une fonction :term:`générateur asynchrone` et ne peut donc " -"être utilisée que dans le corps de la définition d'une fonction. " -"L'utilisation d'une expression ``yield`` dans le corps d'une fonction " -"entraîne que cette fonction devient un générateur et son utilisation dans le " -"corps d'une fonction :keyword:`async def` entraine que cette fonction " -"coroutine devient un générateur asynchrone. Par exemple ::" +"`générateur` ou une fonction :term:`génératrice asynchrone ` et ne peut donc être utilisée que dans le corps de la définition " +"d'une fonction. L'utilisation d'une expression ``yield`` dans le corps d'une " +"fonction entraîne que cette fonction devient un générateur et son " +"utilisation dans le corps d'une fonction :keyword:`async def` entraine que " +"cette fonction coroutine devient un générateur asynchrone. Par exemple ::" #: ../Doc/reference/expressions.rst:427 msgid "" @@ -661,7 +661,7 @@ msgid "" "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" -"Les fonctions générateurs sont décrites plus loin alors que les fonctions " +"Les fonctions génératrices sont décrites plus loin alors que les fonctions " "générateurs asynchrones sont décrites séparément dans la section :ref:" "`asynchronous-generator-functions`." @@ -684,9 +684,9 @@ msgid "" "`~generator.send` is used, then the result will be the value passed in to " "that method." msgstr "" -"Lorsqu'une fonction générateur est appelée, elle renvoie un itérateur que " +"Lorsqu'une fonction génératrice est appelée, elle renvoie un itérateur que " "l'on appelle générateur. Ce générateur contrôle l'exécution de la fonction " -"générateur. L'exécution commence lorsque l'une des méthodes du générateur " +"génératrice. L'exécution commence lorsque l'une des méthodes du générateur " "est appelée. À ce moment, l'exécution se déroule jusqu'à la première " "expression ``yield``, où elle se suspend, renvoyant la valeur de :token:" "`expression_list` à l'appelant du générateur. Cette suspension conserve tous " @@ -710,10 +710,10 @@ msgid "" "function cannot control where the execution should continue after it yields; " "the control is always transferred to the generator's caller." msgstr "" -"Tout ceci rend les fonctions générateurs très similaires aux coroutines : " +"Tout ceci rend les fonctions génératrices très similaires aux coroutines : " "elles produisent plusieurs objets *via* des expressions ``yield``, elles " "possèdent plus qu'un seul point d'entrée et leur exécution peut être " -"suspendue. La seule différence est qu'une fonction générateur ne peut pas " +"suspendue. La seule différence est qu'une fonction génératrice ne peut pas " "contrôler où l'exécution doit se poursuivre après une instruction " "``yield`` ; ce contrôle est toujours du ressort de l'appelant au générateur." @@ -783,7 +783,7 @@ msgstr "" #: ../Doc/reference/expressions.rst:499 msgid ":pep:`255` - Simple Generators" -msgstr ":pep:`255`: Générateurs simples" +msgstr ":pep:`255` : Générateurs simples" #: ../Doc/reference/expressions.rst:499 msgid "" @@ -888,7 +888,7 @@ msgid "" "called with :const:`None` as the argument, because there is no yield " "expression that could receive the value." msgstr "" -"Reprend l'exécution et \"envoie\" une valeur à la fonction générateur. " +"Reprend l'exécution et « envoie » une valeur à la fonction générateur. " "L'argument *value* devient le résultat de l'expression ``yield`` courante. " "La méthode :meth:`send` renvoie la valeur suivante produite par le " "générateur ou lève :exc:`StopIteration` si le générateur termine sans " @@ -908,9 +908,9 @@ msgstr "" "Lève une exception de type ``type`` à l'endroit où le générateur est en " "pause et renvoie la valeur suivante produite par la fonction générateur. Si " "le générateur termine sans produire de nouvelle valeur, une exception :exc:" -"`StopIteration` est levée. Si la fonction générateur ne gère pas l'exception " -"passée ou lève une autre exception, alors cette exception est propagée vers " -"l'appelant." +"`StopIteration` est levée. Si la fonction génératrice ne gère pas " +"l'exception passée ou lève une autre exception, alors cette exception est " +"propagée vers l'appelant." #: ../Doc/reference/expressions.rst:567 msgid "" @@ -922,8 +922,8 @@ msgid "" "is propagated to the caller. :meth:`close` does nothing if the generator " "has already exited due to an exception or normal exit." msgstr "" -"Lève une :exc:`GeneratorExit` à l'endroit où la fonction générateur a été " -"mise en pause. Si la fonction générateur termine, est déjà fermée ou lève :" +"Lève une :exc:`GeneratorExit` à l'endroit où la fonction génératrice a été " +"mise en pause. Si la fonction génératrice termine, est déjà fermée ou lève :" "exc:`GeneratorExit` (parce qu'elle ne gère pas l'exception), *close* revient " "vers l'appelant. Si le générateur produit une valeur, une :exc:" "`RuntimeError` est levée. Si le générateur lève une autre exception, elle " @@ -940,7 +940,7 @@ msgid "" "generator functions::" msgstr "" "Voici un exemple simple qui montre le comportement des générateurs et des " -"fonctions générateurs ::" +"fonctions génératrices ::" #: ../Doc/reference/expressions.rst:607 msgid "" @@ -948,11 +948,11 @@ msgid "" "Python.\"" msgstr "" "Pour des exemples d'utilisation de ``yield from``, lisez la :ref:`pep-380` " -"dans \"Les nouveautés de Python\"." +"dans « Les nouveautés de Python »." #: ../Doc/reference/expressions.rst:613 msgid "Asynchronous generator functions" -msgstr "Fonctions générateurs asynchrones" +msgstr "Fonctions génératrices asynchrones" #: ../Doc/reference/expressions.rst:615 msgid "" @@ -973,9 +973,9 @@ msgid "" "coroutine function analogously to how a generator object would be used in a :" "keyword:`for` statement." msgstr "" -"Quand une fonction générateur asynchrone est appelée, elle renvoie un " +"Quand une fonction génératrice asynchrone est appelée, elle renvoie un " "itérateur asynchrone, autrement appelé objet générateur asynchrone. Cet " -"objet contrôle l'exécution de la fonction générateur. Un objet générateur " +"objet contrôle l'exécution de la fonction génératrice. Un objet générateur " "asynchrone est typiquement utilisé dans une instruction :keyword:`async for` " "à l'intérieur d'une fonction coroutine de la même manière qu'un objet " "générateur serait utilisé dans une instruction :keyword:`for`." @@ -1027,7 +1027,7 @@ msgid "" "the resulting coroutine object, thus allowing any pending :keyword:`!" "finally` clauses to execute." msgstr "" -"Dans une fonction générateur asynchrone, les expressions ``yield`` sont " +"Dans une fonction génératrice asynchrone, les expressions ``yield`` sont " "autorisées n'importe où dans une construction :keyword:`try`. Cependant, si " "l'exécution d'un générateur asynchrone n'a pas repris avant que le " "générateur ne soit finalisé (parce que son compteur de référence a atteint " @@ -1066,7 +1066,7 @@ msgid "" "asynchronous generator function." msgstr "" "L'expression ``yield from `` produit une erreur de syntaxe quand elle " -"est utilisée dans une fonction générateur asynchrone." +"est utilisée dans une fonction génératrice asynchrone." #: ../Doc/reference/expressions.rst:669 msgid "Asynchronous generator-iterator methods" @@ -1079,7 +1079,7 @@ msgid "" msgstr "" "Cette sous-section décrit les méthodes des générateurs-itérateurs " "asynchrones. Elles sont utilisées pour contrôler l’exécution des fonctions " -"générateurs." +"génératrices." #: ../Doc/reference/expressions.rst:679 msgid "" @@ -1129,7 +1129,7 @@ msgid "" msgstr "" "Renvoie un *awaitable* qui, lorsqu'il a la main, reprend l'exécution du " "générateur asynchrone. Comme pour la méthode :meth:`~generator.send()` d'un " -"générateur, elle \"envoie\" une valeur *value* à la fonction générateur " +"générateur, elle « envoie » une valeur *value* à la fonction générateur " "asynchrone et cet argument devient le résultat de l'expression ``yield`` " "courante. Le *awaitable* renvoyé par la méthode :meth:`asend` renvoie la " "valeur suivante produite par le générateur comme valeur de l'exception :exc:" @@ -1151,10 +1151,10 @@ msgid "" msgstr "" "Renvoie un *awaitable* qui lève une exception du type ``type`` à l'endroit " "où le générateur asynchrone a été mis en pause et renvoie la valeur suivante " -"produite par la fonction générateur comme valeur de l'exception :exc:" +"produite par la fonction génératrice comme valeur de l'exception :exc:" "`StopIteration` qui a été levée. Si le générateur asynchrone termine sans " "produire de nouvelle valeur, une exception :exc:`StopAsyncIteration` est " -"levée par le *awaitable*. Si la fonction générateur ne traite pas " +"levée par le *awaitable*. Si la fonction génératrice ne traite pas " "l'exception reçue ou lève une autre exception alors, quand le *awaitable* " "est lancé, cette exception est propagée vers l'appelant du *awaitable*." @@ -1174,8 +1174,8 @@ msgid "" "will return an awaitable that does nothing." msgstr "" "Renvoie un *awaitable* qui, quand il s'exécute, lève une exception :exc:" -"`GeneratorExit` dans la fonction générateur asynchrone à l'endroit où le " -"générateur était en pause. Si la fonction générateur asynchrone termine " +"`GeneratorExit` dans la fonction génératrice asynchrone à l'endroit où le " +"générateur était en pause. Si la fonction génératrice asynchrone termine " "normalement, est déjà fermée ou lève :exc:`GeneratorExit` (parce qu'elle ne " "gère pas l'exception), alors le *awaitable* renvoyé lève une exception :exc:" "`StopIteration`. Tout nouveau *awaitable* produit par un appel postérieur au " @@ -1221,7 +1221,7 @@ msgid "" msgstr "" "La primaire doit s'évaluer à un objet d'un type qui gère les références aux " "attributs, ce qui est le cas de la plupart des objets. Cet objet doit alors " -"produire l'attribut dont le nom est \"identifier\". Cette production peut " +"produire l'attribut dont le nom est « identifier ». Cette production peut " "être personnalisée en surchargeant la méthode :meth:`__getattr__`. Si " "l'attribut n'est pas disponible, une exception :exc:`AttributeError` est " "levée. Sinon, le type et la valeur de l'objet produit sont déterminés par " @@ -1465,7 +1465,7 @@ msgid "" "`PyArg_ParseTuple` to parse their arguments." msgstr "" "Une implémentation peut fournir des fonctions natives dont les paramètres " -"positionnels n'ont pas de nom, même s'ils sont \"nommés\" pour les besoins " +"positionnels n'ont pas de nom, même s'ils sont « nommés » pour les besoins " "de la documentation. Ils ne peuvent donc pas être spécifiés par mot-clé. En " "CPython, les fonctions implémentées en C qui utilisent :c:func:" "`PyArg_ParseTuple` pour analyser leurs arguments en font partie." @@ -1862,7 +1862,7 @@ msgid "" msgstr "" "En plus de calculer le modulo sur les nombres, l'opérateur ``%`` est aussi " "surchargé par les objets chaînes de caractères pour effectuer le formatage " -"de chaîne \"à l'ancienne\". La syntaxe pour le formatage de chaînes est " +"de chaîne « à l'ancienne ». La syntaxe pour le formatage de chaînes est " "décrit dans la référence de la bibliothèque Python, dans la section :ref:" "`old-string-formatting`." @@ -2099,8 +2099,8 @@ msgid "" msgstr "" "Le comportement du test d'égalité par défaut, à savoir que les instances " "avec des identités différentes ne sont jamais égales, peut être en " -"contradiction avec les types qui définissent la \"valeur\" d'un objet et se " -"basent sur cette \"valeur\" pour l'égalité. De tels types doivent " +"contradiction avec les types qui définissent la « valeur » d'un objet et se " +"basent sur cette « valeur » pour l'égalité. De tels types doivent " "personnaliser leurs tests de comparaison et, en fait, c'est ce qu'ont fait " "un certain nombre de types natifs." @@ -2587,7 +2587,7 @@ msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" -"Les expressions conditionnelles (parfois appelées \"opérateur ternaire\") " +"Les expressions conditionnelles (parfois appelées « opérateur ternaire ») " "sont les moins prioritaires de toutes les opérations Python." #: ../Doc/reference/expressions.rst:1676 @@ -2937,11 +2937,11 @@ msgid "" msgstr "" "Le standard Unicode distingue les :dfn:`points codes` (*code points* en " "anglais, par exemple *U+0041*) et les :dfn:`caractères abstraits` (*abstract " -"characters* en anglais, par exemple \"LATIN CAPITAL LETTER A\"). Bien que la " +"characters* en anglais, par exemple « LATIN CAPITAL LETTER A »). Bien que la " "plupart des caractères abstraits de l'Unicode ne sont représentés que par un " "seul point code, il y a un certain nombre de caractères abstraits qui " "peuvent être représentés par une séquence de plus qu'un point code. Par " -"exemple, le caractère abstrait \"LATIN CAPITAL LETTER C WITH CEDILLA\" peut " +"exemple, le caractère abstrait « LATIN CAPITAL LETTER C WITH CEDILLA » peut " "être représenté comme un unique :dfn:`caractère précomposé` au point code *U" "+00C7*, ou en tant que séquence d'un :dfn:`caractère de base` à la position " "*U+0043* (LATIN CAPITAL LETTER C) du code, suivi par un :dfn:`caractère " diff --git a/reference/import.po b/reference/import.po index 3052918d3..6f5d013c1 100644 --- a/reference/import.po +++ b/reference/import.po @@ -189,7 +189,7 @@ msgstr "" "Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom " "du paquet parent par des points (`.`), à l'instar de la syntaxe standard " "d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :" -"mod:`sys` et un paquet nommé :mod:`email`, qui a son tour possède un sous-" +"mod:`sys` et un paquet nommé :mod:`email`, qui à son tour possède un sous-" "paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:" "`email.mime.text`." @@ -693,7 +693,7 @@ msgid "" "effect, must remain in the cache. This contrasts with reloading where even " "the failing module is left in :data:`sys.modules`." msgstr "" -"Si le chargement échoue, le module en cause -- et seulement ce module -- est " +"Si le chargement échoue, le module en cause (et seulement ce module) est " "enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys." "modules` et tout module qui a été chargé avec succès par effet de bord doit " "rester dans le cache. C'est différent dans le cas d'un rechargement où même " @@ -844,7 +844,7 @@ msgstr "" "La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités " "de chargement décrites ci-dessus en plus de l'exécution du module. Toutes " "les contraintes s'appliquent aussi, avec quelques précisions " -"supplémentaires :" +"supplémentaires :" #: ../Doc/reference/import.rst:449 msgid "" @@ -884,7 +884,7 @@ msgid "" "A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." msgstr "" -"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " +"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` " "est définie mais ``create_module()`` ne l'est pas." #: ../Doc/reference/import.rst:468 @@ -1098,7 +1098,7 @@ msgid "" msgstr "" "Si le module est un paquet (classique ou espace de nommage), l'attribut " "``__path__`` de l'objet module doit être défini. La valeur doit être un " -"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " "contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " "lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " "``__path__`` :ref:`plus loin ci-dessous `." @@ -1180,7 +1180,7 @@ msgid "" "data:`sys.path_hooks` (described below) are consulted when traversing a " "package's ``__path__``." msgstr "" -"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " "être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " "``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " "donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." @@ -1198,7 +1198,7 @@ msgstr "" "``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" "espaces de nommage avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, " "les paquets-espaces de nommage n'ont plus besoin d'avoir des fichiers " -"``__init__.py`` qui ne font que de la manipulation de ``__path__`` ; le " +"``__init__.py`` qui ne font que de la manipulation de ``__path__`` ; le " "mécanisme d'importation définit automatiquement ``__path__`` correctement " "pour un paquet-espace de nommage." @@ -1236,7 +1236,7 @@ msgstr "" #: ../Doc/reference/import.rst:653 msgid "Here are the exact rules used:" -msgstr "Les règles exactes utilisées sont :" +msgstr "Les règles exactes utilisées sont :" #: ../Doc/reference/import.rst:655 msgid "" @@ -1362,9 +1362,9 @@ msgstr "" "Comme indiqué précédemment, Python est livré par défaut avec plusieurs " "chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " "path ` (:class:`~importlib.machinery.PathFinder`), " -"recherche dans le :term:`chemin des importations ` qui " -"contient une liste :term:`d'entrées dans path `. Chaque entrée " -"désigne un emplacement où rechercher des modules." +"recherche dans le :term:`chemin des importations ` qui contient " +"une liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"emplacement où rechercher des modules." #: ../Doc/reference/import.rst:717 msgid "" @@ -1419,9 +1419,9 @@ msgstr "" "Le chercheur dans *path* fournit aussi des points d'entrées (ou *hooks*) et " "des protocoles de manière à pouvoir étendre et personnaliser les types de " "chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " -"dans des URL réseau, vous pouvez écrire une fonction \"point d'entrée\" qui " +"dans des URL réseau, vous pouvez écrire une fonction « point d'entrée » qui " "implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " -"point d'entrée (qui doit être un *callable*) doit renvoyer un :term:" +"point d'entrée (qui doit être un appelable) doit renvoyer un :term:" "`chercheur d'entrée dans path ` qui gère le protocole " "décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " "la toile." @@ -1516,10 +1516,10 @@ msgid "" "determined by the individual :term:`path entry finders `." msgstr "" ":data:`sys.path` contient une liste de chaînes de caractères indiquant des " -"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " "partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " "autres valeurs par défaut qui dépendent de l'installation et de " -"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " "du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" "\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " "bases de données où Python doit rechercher des modules. :data:`sys.path` ne " @@ -1651,8 +1651,8 @@ msgid "" "machinery.PathFinder.find_spec` will be the actual current working directory " "and not the empty string." msgstr "" -"Le répertoire de travail courant -- noté sous la forme d'une chaîne de " -"caractères vide -- est géré d'une manière légèrement différente des autres " +"Le répertoire de travail courant — noté sous la forme d'une chaîne de " +"caractères vide — est géré d'une manière légèrement différente des autres " "entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " "s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." "path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " @@ -1720,10 +1720,10 @@ msgid "" "path entry finder, the legacy methods are ignored." msgstr "" "Les vieux chercheurs d'entrée dans *path* peuvent implémenter une des deux " -"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont " -"toujours prises en compte dans le cadre de la compatibilité descendante. " -"Cependant, si ``find_spec()`` est implémentée par le chercheur d'entrée dans " -"*path*, les méthodes historiques sont ignorées." +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont toujours " +"prises en compte dans le cadre de la compatibilité descendante. Cependant, " +"si ``find_spec()`` est implémentée par le chercheur d'entrée dans *path*, " +"les méthodes historiques sont ignorées." #: ../Doc/reference/import.rst:874 msgid "" @@ -1884,7 +1884,7 @@ msgstr "" #: ../Doc/reference/import.rst:966 msgid "Special considerations for __main__" -msgstr "Cas particulier de __main__" +msgstr "Cas particulier de ``__main__``" #: ../Doc/reference/import.rst:968 msgid "" @@ -1906,7 +1906,7 @@ msgstr "" #: ../Doc/reference/import.rst:979 msgid "__main__.__spec__" -msgstr "__main__.__spec__" +msgstr "``__main__.__spec__``" #: ../Doc/reference/import.rst:981 msgid "" @@ -2056,8 +2056,8 @@ msgid "" "an alternative to :meth:`find_module`." msgstr "" "La :pep:`420` a introduit les :term:`paquets-espaces de nommage ` pour Python 3.3. :pep:`420` a aussi introduit le protocole :meth:" -"`recherche du chargeur ` comme une alternative à :meth:" +"package>` pour Python 3.3. La :pep:`420` a aussi introduit le protocole :" +"meth:`recherche du chargeur ` comme une alternative à :meth:" "`find_module`." #: ../Doc/reference/import.rst:1044 diff --git a/reference/index.po b/reference/index.po index 7f9ce508f..3f6b27e3e 100644 --- a/reference/index.po +++ b/reference/index.po @@ -29,8 +29,8 @@ msgid "" "picture of how to write a Python extension module, and the :ref:`c-api-" "index` describes the interfaces available to C/C++ programmers in detail." msgstr "" -"Cette documentation décrit la syntaxe et la \"sémantique interne\" du " -"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " +"Cette documentation décrit la syntaxe et la « sémantique interne » du " +"langage. Elle peut être laconique, mais essaye d'être exhaustive et exacte. " "La sémantique des objets natifs secondaires, des fonctions, et des modules " "est documentée dans :ref:`library-index`. Pour une présentation informelle " "du langage, voyez plutôt :ref:`tutorial-index`. Pour les développeurs C ou C+" diff --git a/reference/introduction.po b/reference/introduction.po index d11248e71..dc0191232 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -42,7 +42,7 @@ msgid "" "volunteer your time --- or invent a cloning machine :-)." msgstr "" "Nous essayons d'être le plus précis possible et nous utilisons le français " -"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " +"(NdT : ou l’anglais pour les parties qui ne sont pas encore traduites) " "plutôt que des spécifications formelles, sauf pour la syntaxe et l’analyse " "lexicale. Nous espérons ainsi rendre ce document plus compréhensible pour un " "grand nombre de lecteurs, même si cela laisse un peu de place à l’ambiguïté. " @@ -51,7 +51,7 @@ msgstr "" "hypothèses et, finalement, vous aurez certainement implémenté un langage " "sensiblement différent. D’un autre côté, si vous utilisez Python et que vous " "vous demandez quelles règles s’appliquent pour telle partie du langage, vous " -"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " +"devriez trouver une réponse satisfaisante ici. Si vous souhaitez voir une " "définition plus formelle du langage, nous acceptons toutes les bonnes " "volontés (ou bien inventez une machine pour nous cloner ☺)." @@ -230,7 +230,7 @@ msgid "" msgstr "" "La première ligne indique qu'un ``name`` est un ``lc_letter`` suivi d'une " "suite de zéro ou plus ``lc_letter``\\s ou tiret bas. Un ``lc_letter`` est, à " -"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " +"son tour, l'un des caractères ``'a'`` à ``'z'`` (cette règle est " "effectivement respectée pour les noms définis dans les règles lexicales et " "grammaticales de ce document)." @@ -273,11 +273,11 @@ msgid "" "'control character' if needed." msgstr "" "Dans les définitions lexicales (comme dans l'exemple ci-dessus), deux autres " -"conventions sont utilisées : deux caractères littéraux séparés par des " +"conventions sont utilisées : deux caractères littéraux séparés par des " "points de suspension signifient le choix d'un seul caractère dans la plage " "donnée (en incluant les bornes) de caractères ASCII. Une phrase entre les " "signes inférieur et supérieur (``<...>``) donne une description informelle " -"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " +"du symbole défini ; par exemple, pour décrire la notion de \"caractère de " "contrôle\" si nécessaire." #: ../Doc/reference/introduction.rst:126 @@ -291,9 +291,9 @@ msgid "" "definitions." msgstr "" "Même si la notation utilisée est presque la même, il existe une grande " -"différence entre la signification des définitions lexicales et syntaxiques : " +"différence entre la signification des définitions lexicales et syntaxiques : " "une définition lexicale opère sur les caractères individuels de l'entrée, " "tandis qu'une définition syntaxique opère sur le flux de lexèmes générés par " "l'analyse lexicale. Toutes les notations sous la forme BNF dans le chapitre " -"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " +"suivant (« Analyse lexicale ») sont des définitions lexicales ; les " "notations dans les chapitres suivants sont des définitions syntaxiques." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 4d4937432..b61534bb3 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -37,7 +37,7 @@ msgid "" "`3120` for details. If the source file cannot be decoded, a :exc:" "`SyntaxError` is raised." msgstr "" -"Python lit le texte du programme comme des suites de caractères Unicode ; " +"Python lit le texte du programme comme des suites de caractères Unicode ; " "l'encodage du fichier source peut être spécifié par une déclaration " "d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " "Si le fichier source ne peut pas être décodé, une exception :exc:" @@ -87,7 +87,7 @@ msgstr "" "Une ligne physique est une suite de caractères terminée par une séquence de " "fin de ligne. Dans les fichiers sources et les chaînes de caractères, " "n'importe quelle séquence de fin de ligne des plateformes standards peut " -"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " +"être utilisée ; Unix utilise le caractère ASCII LF (pour *linefeed*, saut de " "ligne en français), Windows utilise la séquence CR LF (*carriage return* " "suivi de *linefeed*) et Macintosh utilisait le caractère ASCII CR. Toutes " "ces séquences peuvent être utilisées, quelle que soit la plateforme. La fin " @@ -137,15 +137,15 @@ msgid "" msgstr "" "Si un commentaire placé sur la première ou deuxième ligne du script Python " "correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " -"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " "de cette expression désigne l'encodage du fichier source. Cette déclaration " "d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " "ligne, la première ligne doit aussi être une ligne composée uniquement d'un " -"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" #: ../Doc/reference/lexical_analysis.rst:93 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "qui est reconnue aussi par GNU Emacs et ::" +msgstr "qui est reconnue aussi par GNU Emacs et ::" #: ../Doc/reference/lexical_analysis.rst:97 msgid "which is recognized by Bram Moolenaar's VIM." @@ -353,7 +353,7 @@ msgid "" "generated. At the end of the file, a DEDENT token is generated for each " "number remaining on the stack that is larger than zero." msgstr "" -"Avant que la première ligne du fichier ne soit lue, un \"zéro\" est posé sur " +"Avant que la première ligne du fichier ne soit lue, un « zéro » est posé sur " "la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " "strictement croissants de bas en haut. Au début de chaque ligne logique, le " "niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " @@ -399,7 +399,7 @@ msgid "" "is one token, but a b is two tokens)." msgstr "" "Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " -"caractères \"blancs\" espace, tabulation et saut de page peuvent être " +"caractères « blancs » espace, tabulation et saut de page peuvent être " "utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " "nécessaire entre deux lexèmes que si leur concaténation pourrait être " "interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " @@ -444,7 +444,7 @@ msgid "" "for further details." msgstr "" "La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " -"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" "pep:`3131` pour plus de détails." #: ../Doc/reference/lexical_analysis.rst:288 @@ -468,8 +468,8 @@ msgid "" msgstr "" "Python 3.0 introduit des caractères supplémentaires en dehors de " "l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " -"classification utilise la version de la \"base de données des caractères " -"Unicode\" telle qu'incluse dans le module :mod:`unicodedata`." +"classification utilise la version de la « base de données des caractères " +"Unicode » telle qu'incluse dans le module :mod:`unicodedata`." #: ../Doc/reference/lexical_analysis.rst:297 msgid "Identifiers are unlimited in length. Case is significant." @@ -483,48 +483,48 @@ msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" #: ../Doc/reference/lexical_analysis.rst:308 msgid "*Lu* - uppercase letters" -msgstr "*Lu* -- lettre majuscules" +msgstr "*Lu* — lettres majuscules" #: ../Doc/reference/lexical_analysis.rst:309 msgid "*Ll* - lowercase letters" -msgstr "*Ll* -- lettres minuscules" +msgstr "*Ll* — lettres minuscules" #: ../Doc/reference/lexical_analysis.rst:310 msgid "*Lt* - titlecase letters" msgstr "" -"*Lt* -- lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" +"*Lt* — lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" #: ../Doc/reference/lexical_analysis.rst:311 msgid "*Lm* - modifier letters" -msgstr "*Lm* -- lettres modificatives avec chasse" +msgstr "*Lm* — lettres modificatives avec chasse" #: ../Doc/reference/lexical_analysis.rst:312 msgid "*Lo* - other letters" -msgstr "*Lo* -- autres lettres" +msgstr "*Lo* — autres lettres" #: ../Doc/reference/lexical_analysis.rst:313 msgid "*Nl* - letter numbers" -msgstr "*Nl* -- nombres lettres (par exemple, les nombres romains)" +msgstr "*Nl* — nombres lettres (par exemple, les nombres romains)" #: ../Doc/reference/lexical_analysis.rst:314 msgid "*Mn* - nonspacing marks" msgstr "" -"*Mn* -- symboles que l'on combine avec d'autres (accents ou autres) sans " +"*Mn* — symboles que l'on combine avec d'autres (accents ou autres) sans " "générer d'espace (*nonspacing marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:315 msgid "*Mc* - spacing combining marks" msgstr "" -"*Mc* -- symboles que l'on combine avec d'autres en générant une espace " +"*Mc* — symboles que l'on combine avec d'autres en générant une espace " "(*spacing combining marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:316 msgid "*Nd* - decimal numbers" -msgstr "*Nd* -- chiffres (arabes et autres)" +msgstr "*Nd* — chiffres (arabes et autres)" #: ../Doc/reference/lexical_analysis.rst:317 msgid "*Pc* - connector punctuations" -msgstr "*Pc* -- connecteurs (tirets et autres lignes)" +msgstr "*Pc* — connecteurs (tirets et autres lignes)" #: ../Doc/reference/lexical_analysis.rst:318 msgid "" @@ -538,7 +538,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:321 msgid "*Other_ID_Continue* - likewise" -msgstr "*Other_ID_Continue* -- pareillement" +msgstr "*Other_ID_Continue* — pareillement" #: ../Doc/reference/lexical_analysis.rst:323 msgid "" @@ -584,7 +584,7 @@ msgid "" "underscore characters:" msgstr "" "Certaines classes d'identifiants (outre les mots-clés) ont une signification " -"particulière. Ces classes se reconnaissent par des caractères de " +"particulière. Ces classes se reconnaissent par des caractères de " "soulignement en tête et en queue d'identifiant :" #: ../Doc/reference/lexical_analysis.rst:376 @@ -599,9 +599,9 @@ msgid "" "interactive mode, ``_`` has no special meaning and is not defined. See " "section :ref:`import`." msgstr "" -"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " "Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " -"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " "vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " "particulière et n'est pas défini. Voir la section :ref:`import`." @@ -648,11 +648,11 @@ msgid "" "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" -"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " "utilisés dans le contexte d'une définition de classe, sont réécrits sous une " -"forme modifiée pour éviter les conflits de noms entre les attributs \"privés" -"\" des classes de base et les classes dérivées. Voir la section :ref:`atom-" -"identifiers`." +"forme modifiée pour éviter les conflits de noms entre les attributs " +"« privés » des classes de base et les classes dérivées. Voir la section :ref:" +"`atom-identifiers`." #: ../Doc/reference/lexical_analysis.rst:396 msgid "Literals" @@ -683,10 +683,10 @@ msgid "" "is given in the source file; see section :ref:`encodings`." msgstr "" "Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " -"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " "reste du littéral. Le jeu de caractères source est défini par la déclaration " "d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " -"dans le fichier source ; voir la section :ref:`encodings`." +"dans le fichier source ; voir la section :ref:`encodings`." #: ../Doc/reference/lexical_analysis.rst:448 msgid "" @@ -698,9 +698,9 @@ msgid "" "newline, backslash itself, or the quote character." msgstr "" "Description en français : les deux types de littéraux peuvent être encadrés " -"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils " -"peuvent aussi être encadrés par une paire de trois guillemets simples ou une " -"paire de trois guillemets doubles (on appelle alors généralement ces chaînes " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils peuvent " +"aussi être encadrés par une paire de trois guillemets simples ou une paire " +"de trois guillemets doubles (on appelle alors généralement ces chaînes " "*entre triples guillemets*). La barre oblique inversée peut être utilisée " "pour échapper des caractères qui auraient sinon une signification spéciale, " "tels que le retour à la ligne, la barre oblique inversée elle-même ou le " @@ -777,7 +777,7 @@ msgstr "" "Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " "peuvent ne pas être échappés (et sont donc pris en compte), mais trois " "guillemets non échappés à la suite terminent le littéral (on entend par " -"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " "``'`` ou ``\"``)." #: ../Doc/reference/lexical_analysis.rst:512 @@ -789,7 +789,7 @@ msgstr "" "À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " "d'échappement dans les littéraux de chaînes et suites d'octets sont " "interprétées comme elles le seraient par le C Standard. Les séquences " -"d'échappement reconnues sont :" +"d'échappement reconnues sont :" #: ../Doc/reference/lexical_analysis.rst:517 #: ../Doc/reference/lexical_analysis.rst:550 @@ -828,7 +828,7 @@ msgstr "``\\'``" #: ../Doc/reference/lexical_analysis.rst:523 msgid "Single quote (``'``)" -msgstr "guillemet simple (``'``)" +msgstr "guillemet simple (``'``)" #: ../Doc/reference/lexical_analysis.rst:525 msgid "``\\\"``" @@ -1139,8 +1139,8 @@ msgstr "" "remplacées par la simple accolade correspondante. Une simple accolade " "ouvrante ``'{'`` marque le début du champ à remplacer, qui commence par une " "expression Python. Après l'expression, il peut y avoir un champ de " -"conversion, introduit par un point d'exclamation ``'!'``. La spécification " -"de format peut aussi être ajouté, introduite par le caractère deux-points " +"conversion, introduit par un point d'exclamation ``'!'``. Une spécification " +"de format peut aussi être ajoutée, introduite par le caractère deux-points " "``':'``. Le champ à remplacer se termine par une accolade fermante ``'}'``." #: ../Doc/reference/lexical_analysis.rst:678 @@ -1230,8 +1230,8 @@ msgstr "" msgid "" "Backslashes are not allowed in format expressions and will raise an error::" msgstr "" -"La barre oblique inversée n'est pas autorisée dans les expressions des " -"champs à remplacer et son utilisation génère une erreur ::" +"La barre oblique inversée (ou antislash) n'est pas autorisée dans les " +"expressions des champs à remplacer et son utilisation génère une erreur ::" #: ../Doc/reference/lexical_analysis.rst:736 msgid "" @@ -1306,7 +1306,7 @@ msgid "" "They can be used to group digits for enhanced readability. One underscore " "can occur between digits, and after base specifiers like ``0x``." msgstr "" -"Les soulignés sont ignorés pour déterminer la valeur numérique du littéral. " +"Les tirets bas sont ignorés pour déterminer la valeur numérique du littéral. " "Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " "lecture. Un souligné peut être placé entre des chiffres ou après la " "spécification de la base telle que ``0x``." @@ -1329,7 +1329,7 @@ msgstr "Quelques exemples d'entiers littéraux ::" #: ../Doc/reference/lexical_analysis.rst:818 #: ../Doc/reference/lexical_analysis.rst:850 msgid "Underscores are now allowed for grouping purposes in literals." -msgstr "Les soulignés ne sont pas autorisés pour grouper les littéraux." +msgstr "Les tirets bas ne sont pas autorisés pour grouper les littéraux." #: ../Doc/reference/lexical_analysis.rst:829 msgid "Floating point literals" @@ -1420,7 +1420,7 @@ msgid "" "other tokens or are otherwise significant to the lexical analyzer:" msgstr "" "Les caractères ASCII suivants ont une signification spéciale en tant que " -"partie d'autres lexèmes ou ont une signification particulière pour " +"partie d'autres lexèmes ou ont une signification particulière pour " "l'analyseur lexical :" #: ../Doc/reference/lexical_analysis.rst:920 diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 04de8b6ea..dc55bf4bd 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -43,7 +43,7 @@ msgid "" msgstr "" "Les expressions sont utilisées (généralement de manière interactive) comme " "instructions pour calculer et écrire des valeurs, appeler une procédure (une " -"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " +"fonction dont le résultat renvoyé n'a pas d'importance ; en Python, les " "procédures renvoient la valeur ``None``). D'autres utilisations des " "expressions sont autorisées et parfois utiles. La syntaxe pour une " "expression en tant qu'instruction est :" @@ -181,15 +181,15 @@ msgid "" "current local namespace." msgstr "" "si le nom n'apparaît pas dans une instruction :keyword:`global` ou :keyword:" -"`nonlocal` (respectivement) du bloc de code courant : le nom est lié à " -"l'objet dans l'espace courant des noms locaux." +"`nonlocal` (respectivement) du bloc de code courant, le nom est lié à " +"l'objet dans l'espace courant des noms locaux ;" #: ../Doc/reference/simple_stmts.rst:151 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." msgstr "" -"Sinon : le nom est lié à l'objet dans l'espace des noms globaux ou dans un " +"sinon le nom est lié à l'objet dans l'espace des noms globaux ou dans un " "espace de nommage plus large déterminé par :keyword:`nonlocal`, " "respectivement." @@ -302,7 +302,7 @@ msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." msgstr "" -"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " +"Pour les objets allogènes, la méthode :meth:`__setitem__` est appelée avec " "les arguments appropriés." #: ../Doc/reference/simple_stmts.rst:223 @@ -329,8 +329,8 @@ msgstr "" "résultantes sont coupées pour être dans l'intervalle zéro -- longueur de la " "séquence, inclus. Finalement, Python demande à l'objet séquence de remplacer " "la tranche avec les éléments de la séquence à assigner. La longueur de la " -"tranche peut être différent de la longueur de la séquence à assigner, ce qui " -"modifie alors la longueur de la séquence cible, si celle-ci le permet." +"tranche peut être différente de la longueur de la séquence à assigner, ce " +"qui modifie alors la longueur de la séquence cible, si celle-ci le permet." #: ../Doc/reference/simple_stmts.rst:237 msgid "" @@ -351,7 +351,7 @@ msgid "" "instance, the following program prints ``[0, 2]``::" msgstr "" "Bien que la définition de l'assignation implique que le passage entre le " -"côté gauche et le côté droit soient \"simultanés\" (par exemple, ``a, b = b, " +"côté gauche et le côté droit soient « simultanés » (par exemple, ``a, b = b, " "a`` permute les deux variables), le passage *à l'intérieur* des collections " "de variables que l'on assigne intervient de la gauche vers la droite, ce qui " "peut entraîner quelques confusions. Par exemple, le programme suivant " @@ -564,13 +564,13 @@ msgstr "" #: ../Doc/reference/simple_stmts.rst:386 msgid "The simple form, ``assert expression``, is equivalent to ::" -msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" +msgstr "La forme la plus simple, ``assert expression``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:391 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" -"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" +"La forme étendue, ``assert expression1, expression2``, est équivalente à ::" #: ../Doc/reference/simple_stmts.rst:400 msgid "" @@ -598,7 +598,7 @@ msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." msgstr "" -"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " +"Assigner vers :const:`__debug__` est illégal. La valeur de cette variable " "native est déterminée au moment où l'interpréteur démarre." #: ../Doc/reference/simple_stmts.rst:416 @@ -647,7 +647,7 @@ msgstr "" "La suppression d'un nom détruit le lien entre ce nom dans l'espace des noms " "locaux, ou l'espace des noms globaux si ce nom apparaît dans une " "instruction :keyword:`global` dans le même bloc de code. Si le nom n'est pas " -"lié, une exception :exc:`NameError` est levée." +"lié, une exception :exc:`NameError` est levée." #: ../Doc/reference/simple_stmts.rst:464 msgid "" @@ -748,11 +748,11 @@ msgstr "" "`expression yield `. L'instruction *yield* peut être utilisée " "pour omettre les parenthèses qui seraient autrement requises dans " "l'instruction équivalente d'expression *yield*. Par exemple, les " -"instructions *yield* ::" +"instructions *yield* ::" #: ../Doc/reference/simple_stmts.rst:534 msgid "are equivalent to the yield expression statements ::" -msgstr "sont équivalentes aux instructions expressions *yield* ::" +msgstr "sont équivalentes aux instructions expressions *yield* ::" #: ../Doc/reference/simple_stmts.rst:539 msgid "" @@ -798,7 +798,7 @@ msgid "" "`BaseException`. If it is a class, the exception instance will be obtained " "when needed by instantiating the class with no arguments." msgstr "" -"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " +"Sinon, :keyword:`raise` évalue la première expression en tant qu'objet " "exception. Ce doit être une sous-classe ou une instance de :class:" "`BaseException`. Si c'est une classe, l'instance de l'exception est obtenue " "en instanciant la classe sans argument (au moment voulu)." @@ -820,7 +820,7 @@ msgid "" "exception instance, with its traceback set to its argument), like so::" msgstr "" "Normalement, un objet *trace d'appels* est créé automatiquement quand une " -"exception est levée et il lui est rattaché comme attribut :attr:" +"exception est levée et il lui est rattaché comme attribut :attr:" "`__traceback__`, en lecture-écriture. Vous pouvez créer une exception et " "définir votre propre trace d'appels d'un seul coup en utilisant la méthode " "des exceptions :meth:`with_traceback` (qui renvoie la même instance " @@ -835,7 +835,7 @@ msgid "" "be printed::" msgstr "" "La clause ``from`` est utilisée pour chaîner les exceptions : si vous la " -"fournissez, la seconde \"expression\" doit être une autre classe ou instance " +"fournissez, la seconde « expression » doit être une autre classe ou instance " "d'exception, qui est rattachée à l'exception levée en tant qu'attribut :attr:" "`__cause__` (en lecture-écriture). Si l'exception levée n'est pas gérée, les " "deux exceptions sont affichées ::" @@ -996,7 +996,7 @@ msgid "" "module, which includes execution of the module's code." msgstr "" "Les détails de la première étape, de recherche et de chargement des modules " -"sont décrits largement dans la section relative au :ref:`système " +"sont décrits largement dans la section relative au :ref:`système " "d'importation `, qui décrit également les différents types de " "paquets et modules qui peuvent être importés, de même que les points " "d'entrée pouvant être utilisés pour personnaliser le système d'importation. " @@ -1231,7 +1231,7 @@ msgid "" "``annotations``." msgstr "" "La seule fonctionnalité dans Python 3.7 qui nécessite l'utilisation de " -"l'instruction `future` est ``annotations``. " +"l'instruction `future` est ``annotations``." #: ../Doc/reference/simple_stmts.rst:875 msgid "" @@ -1285,7 +1285,7 @@ msgid "" msgstr "" "La sémantique à l'exécution est la même que pour toute autre instruction " "d'importation : il existe un module standard :mod:`__future__`, décrit plus " -"loin, qui est importé comme les autres au moment ou l'instruction *future* " +"loin, qui est importé comme les autres au moment où l'instruction *future* " "est exécutée." #: ../Doc/reference/simple_stmts.rst:897 @@ -1320,8 +1320,7 @@ msgstr "" "`compile` dans un module :mod:`M` comportant une instruction *future* " "utilise, par défaut, la nouvelle syntaxe ou sémantique associée à " "l'instruction *future*. Ceci peut être contrôle par des arguments optionnels " -"à :func:`compile` --- voir la documentation de cette fonction pour les " -"détails." +"à :func:`compile` — voir la documentation de cette fonction pour les détails." #: ../Doc/reference/simple_stmts.rst:913 msgid "" @@ -1333,18 +1332,18 @@ msgid "" msgstr "" "Une instruction *future* entrée à l'invite de l'interpréteur interactif est " "effective pour le reste de la session de l'interpréteur. Si l'interpréteur " -"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " +"est démarré avec l'option :option:`-i`, qu'un nom de script est passé pour " "être exécuté et que ce script contient une instruction *future*, elle est " "effective pour la session interactive qui démarre après l'exécution du " "script." #: ../Doc/reference/simple_stmts.rst:921 msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` -- retour vers le __future__" +msgstr ":pep:`236` — retour vers le ``__future__``" #: ../Doc/reference/simple_stmts.rst:922 msgid "The original proposal for the __future__ mechanism." -msgstr "La proposition originale pour le mécanisme de __future__." +msgstr "La proposition originale pour le mécanisme de ``__future__``." #: ../Doc/reference/simple_stmts.rst:928 msgid "The :keyword:`!global` statement" @@ -1382,8 +1381,8 @@ msgid "" msgstr "" "Les noms listés dans l'instruction :keyword:`global` ne doivent pas être " "définis en tant que paramètre formel, cible d'une boucle :keyword:`for`, " -"dans une définition de :keyword:`class`, de fonction, d'instruction :" -"keyword:`import` ou une annotation de variable." +"dans une définition de :keyword:`class`, de fonction, d'instruction :keyword:" +"`import` ou une annotation de variable." #: ../Doc/reference/simple_stmts.rst:954 msgid "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index 1ea4ade89..e3ac130aa 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -72,10 +72,10 @@ msgid "" "identical to that of a complete program; each statement is executed in the " "namespace of :mod:`__main__`." msgstr "" -"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " +"L'interpréteur peut également être invoqué en mode interactif ; dans ce cas, " "il ne lit et n'exécute pas un programme complet mais lit et exécute une " "seule instruction (éventuellement composée) à la fois. L'environnement " -"initial est identique à celui d'un programme complet ; chaque instruction " +"initial est identique à celui d'un programme complet ; chaque instruction " "est exécutée dans l'espace de nommage de :mod:`__main__`." #: ../Doc/reference/toplevel_components.rst:55 @@ -86,11 +86,11 @@ msgid "" "is a tty device, the interpreter enters interactive mode; otherwise, it " "executes the file as a complete program." msgstr "" -"Un programme complet peut être transmis à l'interpréteur sous trois formes : " +"Un programme complet peut être transmis à l'interpréteur sous trois formes : " "avec l'option :option:`-c` *chaîne* en ligne de commande, avec un fichier " -"passé comme premier argument de ligne de commande ou comme entrée standard. " +"passé comme premier argument de ligne de commande ou comme entrée standard. " "Si le fichier ou l'entrée standard est un périphérique tty, l'interpréteur " -"entre en mode interactif ; sinon, il exécute le fichier comme un programme " +"entre en mode interactif ; sinon, il exécute le fichier comme un programme " "complet." #: ../Doc/reference/toplevel_components.rst:65 @@ -101,21 +101,21 @@ msgstr "Fichier d'entrée" msgid "All input read from non-interactive files has the same form:" msgstr "" "Toutes les entrées lues à partir de fichiers non interactifs sont de la même " -"forme :" +"forme :" #: ../Doc/reference/toplevel_components.rst:72 msgid "This syntax is used in the following situations:" -msgstr "Cette syntaxe est utilisée dans les situations suivantes :" +msgstr "Cette syntaxe est utilisée dans les situations suivantes :" #: ../Doc/reference/toplevel_components.rst:74 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" "lors de l'analyse d'un programme Python complet (à partir d'un fichier ou " -"d'une chaîne de caractères) ;" +"d'une chaîne de caractères) ;" #: ../Doc/reference/toplevel_components.rst:76 msgid "when parsing a module;" -msgstr "lors de l'analyse d'un module ;" +msgstr "lors de l'analyse d'un module ;" #: ../Doc/reference/toplevel_components.rst:78 msgid "when parsing a string passed to the :func:`exec` function;" @@ -130,7 +130,7 @@ msgstr "Entrée interactive" #: ../Doc/reference/toplevel_components.rst:86 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" -"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" +"L'entrée en mode interactif est analysée à l'aide de la grammaire suivante :" #: ../Doc/reference/toplevel_components.rst:91 msgid "" @@ -139,7 +139,7 @@ msgid "" "input." msgstr "" "Notez qu'une instruction composée (de niveau supérieur) doit être suivie " -"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " +"d'une ligne blanche en mode interactif ; c'est nécessaire pour aider " "l'analyseur à détecter la fin de l'entrée." #: ../Doc/reference/toplevel_components.rst:98 @@ -153,4 +153,4 @@ msgid "" msgstr "" ":func:`eval` est utilisée pour évaluer les expressions entrées. Elle ignore " "les espaces en tête. L'argument de :func:`eval`, de type chaîne de " -"caractères, doit être de la forme suivante :" +"caractères, doit être de la forme suivante :" diff --git a/sphinx.po b/sphinx.po index 3429c55cb..5a7d0b9b7 100644 --- a/sphinx.po +++ b/sphinx.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-19 22:32+0200\n" -"PO-Revision-Date: 2019-06-19 21:56+0200\n" +"PO-Revision-Date: 2019-08-16 22:54+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "Cette page" #: ../Doc/tools/templates/customsourcelink.html:5 msgid "Report a Bug" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/customsourcelink.html:8 msgid "Show Source" @@ -186,7 +186,7 @@ msgstr "Méta informations :" #: ../Doc/tools/templates/indexcontent.html:59 msgid "Reporting bugs" -msgstr "Signalement de bug" +msgstr "Signalement de bogue" #: ../Doc/tools/templates/indexcontent.html:60 msgid "About the documentation" @@ -266,11 +266,13 @@ msgid "" "This document is for an old version of Python that is no longer supported.\n" " You should upgrade, and read the " msgstr "" +"Ce document est relatif à une vieille version de Python qui n'est plus " +"soutenue.\n" +" Mettez à jour votre version et lisez " #: ../Doc/tools/templates/layout.html:8 -#, fuzzy msgid " Python documentation for the current stable release" -msgstr "Bienvenue sur la documentation de Python %(release)s." +msgstr "Bienvenue sur la documentation de la version stable actuelle de Python" #: ../Doc/tools/templates/layout.html:21 msgid "Documentation " @@ -282,7 +284,7 @@ msgstr "Recherche rapide" #: ../Doc/tools/templates/layout.html:33 msgid "Go" -msgstr "Go" +msgstr "C'est parti" #: ../Doc/tools/templates/layout.html:129 msgid "The Python Software Foundation is a non-profit corporation." @@ -298,7 +300,7 @@ msgstr "Dernière mise-à-jour le %(last_updated)s." #: ../Doc/tools/templates/layout.html:133 msgid "Found a bug?" -msgstr "Vous avez trouvé un bug ?" +msgstr "Vous avez trouvé un bogue ?" #: ../Doc/tools/templates/layout.html:135 msgid "" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 4a9197120..0e1cd4fa4 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -74,7 +74,7 @@ msgid "" "like shell scripts, by putting the line ::" msgstr "" "Sur les systèmes Unix, un script Python peut être rendu directement " -"exécutable, comme un script *shell*, en ajoutant la ligne ::" +"exécutable, comme un script *shell*, en ajoutant la ligne ::" #: ../Doc/tutorial/appendix.rst:45 msgid "" @@ -109,7 +109,7 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Sur les systèmes Windows il n'y a pas de \"mode exécutable\". L'installateur " "Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " "de telle sorte qu'un double clic sur un fichier Python le lance comme un " "script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " @@ -162,9 +162,9 @@ msgid "" msgstr "" "Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " "vous pouvez le programmer dans le fichier de démarrage global, par exemple " -"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." +"avec le code suivant : ``if os.path.isfile('.pythonrc.py'): exec(open('." "pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " -"depuis un script, vous devez le faire explicitement dans le script : ::" +"depuis un script, vous devez le faire explicitement dans le script ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" @@ -179,8 +179,8 @@ msgid "" msgstr "" "Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" "`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " -"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " -"Démarrez Python et exécutez ce code : ::" +"trouver l'emplacement de votre dossier « site-packages » utilisateur. " +"Démarrez Python et exécutez ce code ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -212,4 +212,4 @@ msgstr "Notes" #: ../Doc/tutorial/appendix.rst:124 msgid "A problem with the GNU Readline package may prevent this." -msgstr "Un problème avec GNU Readline peut l'en empêcher." +msgstr "Un problème avec GNU *Readline* peut l'en empêcher." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index d89ae93c0..9b66c2d93 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -28,8 +28,8 @@ msgid "" "custom database, or a specialized GUI application, or a simple game." msgstr "" "Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " -"automatiser certaines tâches : par exemple, effectuer une recherche et un " -"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " +"automatiser certaines tâches : par exemple, effectuer une recherche et un " +"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " "réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " "être créer une petite base de données, une application graphique ou un " "simple jeu." @@ -86,15 +86,15 @@ msgid "" "in Python as in those languages." msgstr "" "Python reste facile à utiliser, mais c'est un vrai langage de " -"programmation : il offre une bien meilleure structure et prise en charge des " +"programmation : il offre une bien meilleure structure et prise en charge des " "grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " "Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " "tant que *langage de très haut niveau*, il possède nativement des types de " "données très évolués tels que les tableaux de taille variable ou les " "dictionnaires. Grâce à ses types de données plus universels, Python est " -"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être Awk " -"ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au moins " -"aussi facilement en Python que dans ces langages." +"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être " +"*Awk* ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au " +"moins aussi facilement en Python que dans ces langages." #: ../Doc/tutorial/appetite.rst:37 msgid "" @@ -170,7 +170,7 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" -"Python est *extensible* : si vous savez écrire un programme en C, une " +"Python est *extensible* : si vous savez écrire un programme en C, une " "nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " "afin de l'étendre, que ce soit pour effectuer des opérations critiques à " "vitesse maximale ou pour lier des programmes en Python à des bibliothèques " @@ -186,10 +186,10 @@ msgid "" "Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" -"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " -"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " +"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " +"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " "sketchs des Monty Python dans la documentation n'est pas seulement permis, " -"c'est encouragé !" +"c'est encouragé !" #: ../Doc/tutorial/appetite.rst:74 msgid "" diff --git a/tutorial/classes.po b/tutorial/classes.po index 4de2334ce..c56359133 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -120,7 +120,7 @@ msgid "" msgstr "" "Les objets possèdent une existence propre et plusieurs noms peuvent être " "utilisés (dans divers contextes) pour faire référence à un même objet. Ce " -"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " +"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " "pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " "travaille avec des types de base immuables (nombres, chaînes, tuples). " "Cependant, les alias peuvent produire des effets surprenants sur la " @@ -129,7 +129,7 @@ msgstr "" "utilisation est bénéfique au programme car les alias se comportent, d'un " "certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " "n'a aucun coût car c'est simplement un pointeur qui est transmis par " -"l'implémentation ; et si une fonction modifie un objet passé en argument, le " +"l'implémentation ; et si une fonction modifie un objet passé en argument, le " "code à l'origine de l'appel voit le changement. Ceci élimine le besoin " "d'avoir deux mécanismes de transmission d'arguments comme en Pascal." @@ -174,12 +174,12 @@ msgstr "" "forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " "pour les performances) et peut changer dans le futur. Comme exemples " "d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :" -"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " -"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " +"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " +"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " "manière, l'ensemble des attributs d'un objet forme lui-même un espace de " "nommage. L'important à retenir concernant les espaces de nommage est qu'il " "n'y a absolument aucun lien entre les noms de différents espaces de " -"nommage ; par exemple, deux modules différents peuvent définir une fonction " +"nommage ; par exemple, deux modules différents peuvent définir une fonction " "``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules " "doivent préfixer le nom de la fonction avec celui du module." @@ -251,7 +251,7 @@ msgid "" msgstr "" "L'espace des noms locaux d'une fonction est créé lors de son appel, puis " "effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " -"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " +"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " "passe réellement). Bien sûr, des invocations récursives ont chacune leur " "propre espace de nommage." @@ -262,7 +262,7 @@ msgid "" "reference to a name attempts to find the name in the namespace." msgstr "" "La *portée* est la zone textuelle d'un programme Python où un espace de " -"nommage est directement accessible. « Directement accessible » signifie ici " +"nommage est directement accessible. « Directement accessible » signifie ici " "qu'une référence non qualifiée à un nom est cherchée dans l'espace de " "nommage." @@ -281,7 +281,7 @@ msgstr "" msgid "the innermost scope, which is searched first, contains the local names" msgstr "" "la portée la plus au centre, celle qui est consultée en premier, contient " -"les noms locaux ;" +"les noms locaux ;" #: ../Doc/tutorial/classes.rst:121 msgid "" @@ -352,8 +352,8 @@ msgstr "" "la fonction. En revanche, la recherche réelle des noms est faite " "dynamiquement au moment de l'exécution. Cependant la définition du langage " "est en train d'évoluer vers une résolution statique des noms au moment de la " -"« compilation », donc ne vous basez pas sur une résolution dynamique (en " -"réalité, les variables locales sont déjà déterminées de manière statique) !" +"« compilation », donc ne vous basez pas sur une résolution dynamique (en " +"réalité, les variables locales sont déjà déterminées de manière statique) !" #: ../Doc/tutorial/classes.rst:146 msgid "" @@ -386,7 +386,7 @@ msgid "" msgstr "" "L'instruction :keyword:`global` peut être utilisée pour indiquer que " "certaines variables existent dans la portée globale et doivent être reliées " -"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " +"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " "existent dans une portée supérieure et doivent être reliées en local." #: ../Doc/tutorial/classes.rst:162 @@ -598,7 +598,7 @@ msgid "" msgstr "" "Bien sûr, la méthode :meth:`__init__` peut avoir des arguments pour une plus " "grande flexibilité. Dans ce cas, les arguments donnés à l'opérateur " -"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" +"d'instanciation de classe sont transmis à :meth:`__init__`. Par exemple ::" #: ../Doc/tutorial/classes.rst:322 msgid "Instance Objects" @@ -660,7 +660,7 @@ msgid "" "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" "Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " -"définition, tous les attributs d'une classe qui sont des objets fonction " +"définition, tous les attributs d'une classe qui sont des objets fonctions " "définissent les méthodes correspondantes de ses instances. Donc, dans notre " "exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " "est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " @@ -684,8 +684,8 @@ msgid "" msgstr "" "Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " -"méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " -"coté et être appelé plus tard. Par exemple ::" +"méthode directement : ``x.f`` est un objet méthode, il peut être gardé de " +"côté et être appelé plus tard. Par exemple ::" #: ../Doc/tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." @@ -705,7 +705,7 @@ msgstr "" "alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " "un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " "exception lorsqu'une fonction qui requiert un argument est appelée sans -- " -"même si l'argument n'est pas utilisé..." +"même si l'argument n'est pas utilisé…" #: ../Doc/tutorial/classes.rst:382 msgid "" @@ -720,7 +720,7 @@ msgstr "" "En fait, vous avez peut-être deviné la réponse : la particularité des " "méthodes est que l'objet est passé comme premier argument de la fonction. " "Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass." -"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " +"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " "équivalent à appeler la fonction correspondante avec une liste d'arguments " "créée en ajoutant l'instance de l'objet de la méthode avant le premier " "argument." @@ -738,7 +738,7 @@ msgid "" "called with this new argument list." msgstr "" "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " -"d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " +"d'œil à l'implémentation vous aidera peut-être. Lorsque un attribut d'une " "instance est référencé et que ce n'est pas un attribut 'données', sa classe " "est recherchée. Si le nom correspond à un attribut valide et que c'est un " "objet fonction, un objet méthode est créé en générant un objet abstrait qui " @@ -771,11 +771,10 @@ msgid "" "by all *Dog* instances::" msgstr "" "Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" -"`muable ` (telles que les listes, dictionnaires, etc...) peuvent " -"avoir des effets surprenants. Par exemple, la liste *tricks* dans le code " -"suivant ne devrait pas être utilisée en tant que variable de classe car, " -"dans ce cas, une seule liste est partagée par toutes les instances de " -"*Dog* ::" +"`muable ` (telles que les listes, dictionnaires, etc.) peuvent avoir " +"des effets surprenants. Par exemple, la liste *tricks* dans le code suivant " +"ne devrait pas être utilisée en tant que variable de classe car, dans ce " +"cas, une seule liste est partagée par toutes les instances de *Dog* ::" #: ../Doc/tutorial/classes.rst:450 msgid "Correct design of the class should use an instance variable instead::" @@ -820,9 +819,9 @@ msgstr "" "des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " "les classes ne sont pas utilisables pour implémenter des types de données " "purement abstraits. En fait, il n'est pas possible en Python d'imposer de " -"masquer des données --- tout est basé sur des conventions (d'un autre coté, " +"masquer des données — tout est basé sur des conventions (d'un autre côté, " "l'implémentation de Python, écrite en C, peut complètement masquer les " -"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " +"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " "ceci peut être utilisé par des extensions de Python écrites en C)." #: ../Doc/tutorial/classes.rst:493 @@ -849,7 +848,7 @@ msgid "" "variables when glancing through a method." msgstr "" "Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " -"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " +"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " "en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " "variables locales et variables d'instances quand on regarde le code d'une " "méthode." @@ -1026,7 +1025,7 @@ msgstr "" #: ../Doc/tutorial/classes.rst:608 msgid "Python has two built-in functions that work with inheritance:" -msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" +msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" #: ../Doc/tutorial/classes.rst:610 msgid "" @@ -1078,7 +1077,7 @@ msgstr "" "de gauche à droite, sans chercher deux fois dans la même classe si elle " "apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " "trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " -"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " +"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " "est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " "et ainsi de suite." @@ -1200,7 +1199,7 @@ msgid "" "private. This can even be useful in special circumstances, such as in the " "debugger." msgstr "" -"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " +"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " "reste possible d'accéder ou de modifier une variable considérée comme " "privée. Ceci peut même être utile dans certaines circonstances, comme au " "sein du débogueur." @@ -1215,7 +1214,7 @@ msgid "" "referencing ``__dict__`` directly." msgstr "" "Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " -"pas le nom de la classe appelante comme étant la classe courante ; le même " +"pas le nom de la classe appelante comme étant la classe courante ; le même " "effet s'applique à la directive ``global`` dont l'effet est, de la même " "façon, restreint au code compilé dans le même ensemble de byte-code. Les " "mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " @@ -1322,10 +1321,10 @@ msgid "" "data values and which statement was last executed). An example shows that " "generators can be trivially easy to create::" msgstr "" -"Les :term:`générateur`\\s sont des outils simples et puissants pour créer " -"des itérateurs. Ils sont écrits comme des fonctions classiques mais " -"utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer des " -"données. À chaque fois qu'il est appelé par :func:`next`, le générateur " +"Les :term:`générateurs ` sont des outils simples et puissants " +"pour créer des itérateurs. Ils sont écrits comme des fonctions classiques " +"mais utilisent l'instruction :keyword:`yield` lorsqu'ils veulent renvoyer " +"des données. À chaque fois qu'il est appelé par :func:`next`, le générateur " "reprend son exécution là où il s'était arrêté (en conservant tout son " "contexte d'exécution). Un exemple montre très bien combien les générateurs " "sont simples à créer ::" @@ -1395,7 +1394,7 @@ msgstr "Exemples ::" #: ../Doc/tutorial/classes.rst:917 msgid "Footnotes" -msgstr "Notes" +msgstr "Notes de bas de page" #: ../Doc/tutorial/classes.rst:918 msgid "" @@ -1408,7 +1407,7 @@ msgid "" msgstr "" "Il existe une exception : les modules disposent d'un attribut secret en " "lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " -"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" +"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" "`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si " "vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces " "de nommage. Il est donc réservé à des choses comme les débogueurs post-" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 823a2a77b..8c46e2f33 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -74,8 +74,8 @@ msgstr "" "l'utilisateur la possibilité de définir le pas d'itération et la condition " "de fin (comme en C), l'instruction :keyword:`!for` en Python itère sur les " "éléments d'une séquence (qui peut être une liste, une chaîne de " -"caractères...), dans l'ordre dans lequel ils apparaissent dans la séquence. " -"Par exemple ::" +"caractères…), dans l'ordre dans lequel ils apparaissent dans la séquence. " +"Par exemple :" #: ../Doc/tutorial/controlflow.rst:69 msgid "" @@ -118,10 +118,10 @@ msgid "" "a different increment (even negative; sometimes this is called the 'step')::" msgstr "" "Le dernier élément fourni en paramètre ne fait jamais partie de la liste " -"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " -"vont de 0 à 9. Il est possible de spécifier une valeur de début et/ou une " -"valeur d'incrément différente(s) (y compris négative pour cette dernière, " -"que l'on appelle également parfois le 'pas') ::" +"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " +"vont de 0 à 9. Il est possible de spécifier une valeur de début et une " +"valeur d'incrément différentes (y compris négative pour cette dernière, que " +"l'on appelle également parfois le 'pas') ::" #: ../Doc/tutorial/controlflow.rst:116 msgid "" @@ -309,13 +309,13 @@ msgid "" "write, so make a habit of it." msgstr "" "La première instruction d'une fonction peut, de façon facultative, être une " -"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " +"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " "chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " "la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " "qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " -"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " -"bonne pratique que de documenter le code que vous écrivez !" +"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " +"bonne pratique que de documenter le code que vous écrivez." #: ../Doc/tutorial/controlflow.rst:277 msgid "" @@ -333,7 +333,7 @@ msgstr "" "*L'exécution* d'une fonction introduit une nouvelle table de symboles " "utilisée par les variables locales de la fonction. Plus précisément, toutes " "les affectations de variables effectuées au sein d'une fonction stockent la " -"valeur dans la table de symboles locale ; en revanche, les références de " +"valeur dans la table de symboles locale ; en revanche, les références de " "variables sont recherchées dans la table de symboles locale, puis dans la " "table de symboles locale des fonctions englobantes, puis dans la table de " "symboles globale et finalement dans la table de noms des primitives. Par " @@ -353,7 +353,7 @@ msgid "" msgstr "" "Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " "table de symboles locale de la fonction appelée au moment où elle est " -"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " +"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " "la *valeur* étant toujours une *référence* à un objet et non la valeur de " "l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " "nouvelle table de symboles locale est créée pour cet appel." @@ -368,9 +368,10 @@ msgid "" msgstr "" "Une définition de fonction introduit le nom de la fonction dans la table de " "symboles courante. La valeur du nom de la fonction est un type qui est " -"reconnu par l'interpréteur comme une fonction utilisateur. Cette valeur peut " -"être affectée à un autre nom qui pourra alors être utilisé également comme " -"une fonction. Ceci fournit un mécanisme de renommage général ::" +"reconnu par l'interpréteur comme une fonction définie par l'utilisateur. " +"Cette valeur peut être affectée à un autre nom qui pourra alors être utilisé " +"également comme une fonction. Ceci fournit un mécanisme de renommage " +"général ::" #: ../Doc/tutorial/controlflow.rst:306 msgid "" @@ -403,7 +404,7 @@ msgstr "" msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de " -"Python :" +"Python :" #: ../Doc/tutorial/controlflow.rst:335 msgid "" @@ -437,7 +438,7 @@ msgstr "" "même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " "types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" "classes`). La méthode :meth:`append` donnée dans cet exemple est définie " -"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " +"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " "cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle " "est plus efficace." @@ -469,13 +470,13 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:381 msgid "This function can be called in several ways:" -msgstr "Cette fonction peut être appelée de plusieurs façons :" +msgstr "Cette fonction peut être appelée de plusieurs façons :" #: ../Doc/tutorial/controlflow.rst:383 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" -"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " +"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " "want to quit?')``" #: ../Doc/tutorial/controlflow.rst:385 @@ -483,7 +484,7 @@ msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " +"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " "overwrite the file?', 2)``" #: ../Doc/tutorial/controlflow.rst:387 @@ -491,7 +492,7 @@ msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" msgstr "" -"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " +"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " "'Come on, only yes or no!')``" #: ../Doc/tutorial/controlflow.rst:390 @@ -508,11 +509,11 @@ msgid "" "*defining* scope, so that ::" msgstr "" "Les valeurs par défaut sont évaluées lors de la définition de la fonction " -"dans la portée de *définition*, de telle sorte que ::" +"dans la portée de *définition*, de telle sorte que ::" #: ../Doc/tutorial/controlflow.rst:404 msgid "will print ``5``." -msgstr "Affiche ``5``." +msgstr "affiche ``5``." #: ../Doc/tutorial/controlflow.rst:406 msgid "" @@ -529,7 +530,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:419 msgid "This will print ::" -msgstr "Ceci affiche ::" +msgstr "Ceci affiche ::" #: ../Doc/tutorial/controlflow.rst:425 msgid "" @@ -636,7 +637,7 @@ msgstr "" "fonction peut être appelée avec un nombre arbitraire d'arguments. Ces " "arguments sont intégrés dans un tuple (voir :ref:`tut-tuples`). Avant le " "nombre variable d'arguments, zéro arguments normaux ou plus peuvent " -"apparaître ::" +"apparaître ::" #: ../Doc/tutorial/controlflow.rst:542 msgid "" @@ -648,7 +649,7 @@ msgid "" msgstr "" "Normalement, ces arguments ``variadiques`` sont les derniers paramètres, " "parce qu'ils agrègent toutes les valeurs suivantes. Tout paramètre placé " -"après le paramètre ``*arg`` ne pourra être utilisé que par son nom." +"après le paramètre ``*arg`` ne pourra être utilisé que par son nom. ::" #: ../Doc/tutorial/controlflow.rst:559 msgid "Unpacking Argument Lists" @@ -694,7 +695,7 @@ msgid "" "scope::" msgstr "" "Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " -"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " +"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " "a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " "fonction est attendu. Elles sont syntaxiquement restreintes à une seule " "expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " @@ -765,7 +766,7 @@ msgstr "" "L'analyseur de code Python ne supprime pas l'indentation des chaînes de " "caractères littérales multi-lignes, donc les outils qui utilisent la " "documentation doivent si besoin faire cette opération eux-mêmes. La " -"convention suivante s'applique : la première ligne non vide *après* la " +"convention suivante s'applique : la première ligne non vide *après* la " "première détermine la profondeur d'indentation de l'ensemble de la chaîne de " "documentation (on ne peut pas utiliser la première ligne qui est " "généralement accolée aux guillemets d'ouverture de la chaîne de caractères " @@ -792,8 +793,7 @@ msgid "" msgstr "" ":ref:`Les annotations de fonction ` sont des métadonnées " "optionnelles décrivant les types utilisés par une fonction définie par " -"l'utilisateur (voir les PEPs :pep:`3107` et la :pep:`484` pour plus " -"d'informations)." +"l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)." #: ../Doc/tutorial/controlflow.rst:687 msgid "" @@ -808,16 +808,16 @@ msgid "" msgstr "" "Les :term:`annotations ` sont stockées dans l'attribut :" "attr:`__annotations__` de la fonction, sous forme d'un dictionnaire, et " -"n'ont aucun autre effet. Les annotations sur les paramètres sont définis par " -"deux points (:) après le nom du paramètre suivi d'une expression donnant la " -"valeur de l'annotation. Les annotations de retour sont définies par ``->`` " -"suivi d'une expression, entre la liste des paramètres et les deux points de " -"fin de l'instruction :keyword:`def`. L'exemple suivant a un paramètre " -"positionnel, un paramètre nommé et une valeur de retour annotée ::" +"n'ont aucun autre effet. Les annotations sur les paramètres sont définies " +"par deux points (`:`) après le nom du paramètre suivi d'une expression " +"donnant la valeur de l'annotation. Les annotations de retour sont définies " +"par ``->`` suivi d'une expression, entre la liste des paramètres et les deux " +"points de fin de l'instruction :keyword:`def`. L'exemple suivant a un " +"paramètre positionnel, un paramètre nommé et la valeur de retour annotés ::" #: ../Doc/tutorial/controlflow.rst:709 msgid "Intermezzo: Coding Style" -msgstr "Aparté : le style de codage" +msgstr "Aparté : le style de codage" #: ../Doc/tutorial/controlflow.rst:714 msgid "" @@ -830,7 +830,7 @@ msgstr "" "Maintenant que vous êtes prêt à écrire des programmes plus longs et plus " "complexes, il est temps de parler du *style de codage*. La plupart des " "langages peuvent être écrits (ou plutôt *formatés*) selon différents " -"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " +"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " "votre code plus facile aux autres est toujours une bonne idée et adopter un " "bon style de codage peut énormément vous y aider." @@ -842,9 +842,9 @@ msgid "" "points extracted for you:" msgstr "" "En Python, la plupart des projets adhèrent au style défini dans la :pep:" -"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " +"`8` ; elle met en avant un style de codage très lisible et agréable à l’œil. " "Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " -"que possible ; voici ses principaux points notables :" +"que possible ; voici ses principaux points notables :" #: ../Doc/tutorial/controlflow.rst:725 msgid "Use 4-space indentation, and no tabs." @@ -887,7 +887,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:739 msgid "When possible, put comments on a line of their own." msgstr "" -"Lorsque c'est possible, placez les commentaires sur leur propres lignes." +"Lorsque c'est possible, placez les commentaires sur leurs propres lignes." #: ../Doc/tutorial/controlflow.rst:741 msgid "Use docstrings." @@ -899,7 +899,7 @@ msgid "" "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" "Utilisez des espaces autour des opérateurs et après les virgules, mais pas " -"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." +"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." #: ../Doc/tutorial/controlflow.rst:746 msgid "" @@ -947,7 +947,7 @@ msgstr "" "En fait, *appels par référence d'objets* serait sans doute une description " "plus juste dans la mesure où, si un objet muable est passé en argument, " "l'appelant verra toutes les modifications qui lui auront été apportées par " -"l'appelé (insertion d'éléments dans une liste...)." +"l'appelé (insertion d'éléments dans une liste…)." #~ msgid "" #~ "Note that the list of keyword argument names is created by sorting the " diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 241c00470..3ae70c371 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -37,7 +37,7 @@ msgid "" "list objects:" msgstr "" "Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " -"des objets de type liste :" +"des objets de type liste :" #: ../Doc/tutorial/datastructures.rst:22 msgid "" @@ -50,7 +50,7 @@ msgid "" "Extend the list by appending all the items from the iterable. Equivalent to " "``a[len(a):] = iterable``." msgstr "" -"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " +"Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " "``a[len(a):] = iterable``." #: ../Doc/tutorial/datastructures.rst:35 @@ -86,7 +86,7 @@ msgstr "" "valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " "renvoie le dernier élément de la liste (les crochets autour du *i* dans la " "signature de la méthode indiquent que ce paramètre est facultatif et non que " -"vous devez placer des crochets dans votre code ! Vous retrouverez cette " +"vous devez placer des crochets dans votre code ! Vous retrouverez cette " "notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." #: ../Doc/tutorial/datastructures.rst:60 @@ -111,7 +111,7 @@ msgid "" msgstr "" "Les arguments optionnels *start* et *end* sont interprétés de la même " "manière que dans la notation des tranches et sont utilisés pour limiter la " -"recherche à une sous-séquence particulière. L'index renvoyé est calculé " +"recherche à une sous-séquence particulière. L'indice renvoyé est calculé " "relativement au début de la séquence complète et non relativement à *start*." #: ../Doc/tutorial/datastructures.rst:78 @@ -147,7 +147,7 @@ msgid "" msgstr "" "Vous avez probablement remarqué que les méthodes telles que ``insert``, " "``remove`` ou ``sort``, qui ne font que modifier la liste, n'affichent pas " -"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " +"de valeur de retour (elles renvoient ``None``) [1]_. C'est un principe " "respecté par toutes les structures de données variables en Python." #: ../Doc/tutorial/datastructures.rst:132 @@ -163,8 +163,8 @@ msgid "" "For example::" msgstr "" "Les méthodes des listes rendent très facile leur utilisation comme des " -"piles, où le dernier élément ajouté est le premier récupéré (\"dernier " -"entré, premier sorti\" ou LIFO pour *last-in, first-out* en anglais). Pour " +"piles, où le dernier élément ajouté est le premier récupéré (« dernier " +"entré, premier sorti » ou LIFO pour *last-in, first-out* en anglais). Pour " "ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " "récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " "indicateur de position. Par exemple ::" @@ -182,8 +182,8 @@ msgid "" "(because all of the other elements have to be shifted by one)." msgstr "" "Il est également possible d'utiliser une liste comme une file, où le premier " -"élément ajouté est le premier récupéré (\"premier entré, premier sorti\" ou " -"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " +"élément ajouté est le premier récupéré (« premier entré, premier sorti » ou " +"FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " "efficaces pour réaliser ce type de traitement. Alors que les ajouts et " "suppressions en fin de liste sont rapides, les opérations d'insertions ou de " "retraits en début de liste sont lentes (car tous les autres éléments doivent " @@ -212,7 +212,7 @@ msgstr "" "Les compréhensions de listes fournissent un moyen de construire des listes " "de manière très concise. Une application classique est la construction de " "nouvelles listes où chaque élément est le résultat d'une opération appliquée " -"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " +"à chaque élément d'une autre séquence ; ou de créer une sous-séquence des " "éléments satisfaisant une condition spécifique." #: ../Doc/tutorial/datastructures.rst:197 @@ -271,7 +271,7 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"Si l'expression est un tuple (c'est-à-dire ``(x, y)`` dans cet exemple), " +"Si l'expression est un n-uplet (c'est-à-dire ``(x, y)`` dans cet exemple), " "elle doit être entourée par des parenthèses ::" #: ../Doc/tutorial/datastructures.rst:273 @@ -348,7 +348,7 @@ msgid "" "earlier by assignment of an empty list to the slice). For example::" msgstr "" "Il existe un moyen de retirer un élément d'une liste à partir de sa position " -"au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " +"au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " "méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:`!" "del` peut également être utilisée pour supprimer des tranches d'une liste ou " "la vider complètement (ce que nous avions fait auparavant en affectant une " @@ -381,18 +381,19 @@ msgid "" "the *tuple*." msgstr "" "Nous avons vu que les listes et les chaînes de caractères ont beaucoup de " -"propriétés en commun, comme l'indexation et les opérations sur des tranches. " +"propriétés en commun, comme l'indiçage et les opérations sur des tranches. " "Ce sont deux exemples de *séquences* (voir :ref:`typesseq`). Comme Python " "est un langage en constante évolution, d'autres types de séquences y seront " -"peut-être ajoutés. Il existe également un autre type standard de séquence : " -"le *tuple*." +"peut-être ajoutés. Il existe également un autre type standard de séquence : " +"le *tuple* (ou n-uplet, dénomination que nous utiliserons dans la suite de " +"cette documentation)." #: ../Doc/tutorial/datastructures.rst:372 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" -"Un tuple consiste en différentes valeurs séparées par des virgules, comme " -"par exemple ::" +"Un n-uplet consiste en différentes valeurs séparées par des virgules, par " +"exemple ::" #: ../Doc/tutorial/datastructures.rst:394 msgid "" @@ -403,12 +404,12 @@ msgid "" "the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" -"Comme vous pouvez le voir, les tuples sont toujours affichés entre " -"parenthèses, de façon à ce que des tuples imbriqués soient interprétés " -"correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " -"celles-ci sont souvent nécessaires (notamment lorsqu'un tuple fait partie " +"Comme vous pouvez le voir, les n-uplets sont toujours affichés entre " +"parenthèses, de façon à ce que des n-uplets imbriqués soient interprétés " +"correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " +"celles-ci sont souvent nécessaires (notamment lorsqu'un n-uplet fait partie " "d'une expression plus longue). Il n'est pas possible d'affecter de valeur à " -"un élément d'un tuple ; par contre, il est possible de créer des tuples " +"un élément d'un n-uplet ; par contre, il est possible de créer des n-uplets " "contenant des objets muables, comme des listes." #: ../Doc/tutorial/datastructures.rst:401 @@ -421,14 +422,14 @@ msgid "" "`mutable`, and their elements are usually homogeneous and are accessed by " "iterating over the list." msgstr "" -"Si les tuples peuvent sembler similaires aux listes, ils sont souvent " -"utilisés dans des cas différents et pour des raisons différentes. Les tuples " -"sont :term:`immuable`\\s et contiennent souvent des séquences hétérogènes " -"d'éléments qui sont accédés par \"déballage\" (voir plus loin) ou indexation " -"(ou même par attributs dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`muable ` et " -"contiennent des éléments homogènes qui sont accédés par itération sur la " -"liste." +"Si les n-uplets peuvent sembler similaires aux listes, ils sont souvent " +"utilisés dans des cas différents et pour des raisons différentes. Les n-" +"uplets sont :term:`immuable`\\s et contiennent souvent des séquences " +"hétérogènes d'éléments qui sont accédés par « dissociation » (*unpacking* en " +"anglais, voir plus loin) ou par indice (ou même par attributs dans le cas " +"des :func:`namedtuples `). Les listes sont souvent :" +"term:`muable `\\s et contiennent des éléments généralement homogènes " +"qui sont accédés par itération sur la liste." #: ../Doc/tutorial/datastructures.rst:409 msgid "" @@ -438,10 +439,10 @@ msgid "" "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" -"Un problème spécifique est la construction de tuples ne contenant aucun ou " -"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " -"accommoder. Les tuples vides sont construits par une paire de parenthèses " -"vides ; un tuple avec un seul élément est construit en faisant suivre la " +"Un problème spécifique est la construction de n-uplets ne contenant aucun ou " +"un seul élément : la syntaxe a quelques tournures spécifiques pour s'en " +"accommoder. Les n-uplets vides sont construits par une paire de parenthèses " +"vides ; un n-uplet avec un seul élément est construit en faisant suivre la " "valeur par une virgule (il n'est pas suffisant de placer cette valeur entre " "parenthèses). Pas très joli, mais efficace. Par exemple ::" @@ -451,9 +452,10 @@ msgid "" "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" -"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un *emballage " -"de tuple* : les valeurs ``12345``, ``54321`` et ``hello !`` sont emballées " -"ensemble dans un tuple. L'opération inverse est aussi possible ::" +"L'instruction ``t = 12345, 54321, 'hello !'`` est un exemple d'un " +"*d'agrégation de n-uplet* (*tuple packing* en anglais) : les valeurs " +"``12345``, ``54321`` et ``hello !`` sont agrégées ensemble dans un n-uplet. " +"L'opération inverse est aussi possible ::" #: ../Doc/tutorial/datastructures.rst:430 msgid "" @@ -463,12 +465,12 @@ msgid "" "in the sequence. Note that multiple assignment is really just a combination " "of tuple packing and sequence unpacking." msgstr "" -"Ceci est appelé, de façon plus ou moins appropriée, un *déballage de " +"Ceci est appelé, de façon plus ou moins appropriée, un *dissociation de " "séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " -"séquence placée à droite de l'expression. Ce déballage requiert autant de " -"variables dans la partie gauche qu'il y a d'éléments dans la séquence. Notez " -"également que cette affectation multiple est juste une combinaison entre un " -"emballage de tuple et un déballage de séquence." +"séquence placée à droite de l'expression. Cette dissociation requiert autant " +"de variables dans la partie gauche qu'il y a d'éléments dans la séquence. " +"Notez également que cette affectation multiple est juste une combinaison " +"entre une agrégation de n-uplet et une dissociation de séquence." #: ../Doc/tutorial/datastructures.rst:440 msgid "Sets" @@ -497,8 +499,8 @@ msgid "" "section." msgstr "" "Des accolades ou la fonction :func:`set` peuvent être utilisés pour créer " -"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne " -"fonctionne pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." +"des ensembles. Notez que pour créer un ensemble vide, ``{}`` ne fonctionne " +"pas, cela crée un dictionnaire vide. Utilisez plutôt ``set()``." #: ../Doc/tutorial/datastructures.rst:451 msgid "Here is a brief demonstration::" @@ -531,15 +533,15 @@ msgid "" msgstr "" "Un autre type de donnée très utile, natif dans Python, est le *dictionnaire* " "(voir :ref:`typesmapping`). Ces dictionnaires sont parfois présents dans " -"d'autres langages sous le nom de \"mémoires associatives\" ou de \"tableaux " -"associatifs\". À la différence des séquences, qui sont indexées par des " +"d'autres langages sous le nom de « mémoires associatives » ou de « tableaux " +"associatifs ». À la différence des séquences, qui sont indexées par des " "nombres, les dictionnaires sont indexés par des *clés*, qui peuvent être de " -"n'importe quel type immuable ; les chaînes de caractères et les nombres " -"peuvent toujours être des clés. Des tuples peuvent être utilisés comme clés " -"s'ils ne contiennent que des chaînes, des nombres ou des tuples ; si un " -"tuple contient un objet muable, de façon directe ou indirecte, il ne peut " -"pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes comme " -"clés, car les listes peuvent être modifiées en place en utilisant des " +"n'importe quel type immuable ; les chaînes de caractères et les nombres " +"peuvent toujours être des clés. Des n-uplets peuvent être utilisés comme " +"clés s'ils ne contiennent que des chaînes, des nombres ou des n-uplets ; si " +"un n-uplet contient un objet muable, de façon directe ou indirecte, il ne " +"peut pas être utilisé comme une clé. Vous ne pouvez pas utiliser des listes " +"comme clés, car les listes peuvent être modifiées en place en utilisant des " "affectations par position, par tranches ou via des méthodes comme :meth:" "`append` ou :meth:`extend`." @@ -553,10 +555,10 @@ msgid "" msgstr "" "Le plus simple est de considérer les dictionnaires comme des ensembles de " "paires *clé: valeur*, les clés devant être uniques (au sein d'un " -"dictionnaire). Une paire d'accolades crée un dictionnaire vide : ``{}``. " +"dictionnaire). Une paire d'accolades crée un dictionnaire vide : ``{}``. " "Placer une liste de paires clé:valeur séparées par des virgules à " "l'intérieur des accolades ajoute les valeurs correspondantes au " -"dictionnaire ; c'est également de cette façon que les dictionnaires sont " +"dictionnaire ; c'est également de cette façon que les dictionnaires sont " "affichés." #: ../Doc/tutorial/datastructures.rst:506 @@ -596,7 +598,7 @@ msgid "" "key-value pairs::" msgstr "" "Le constructeur :func:`dict` fabrique un dictionnaire directement à partir " -"d'une liste de paires clé-valeur stockées sous la forme de tuples ::" +"d'une liste de paires clé-valeur stockées sous la forme de n-uplets ::" #: ../Doc/tutorial/datastructures.rst:544 msgid "" @@ -625,7 +627,7 @@ msgid "" msgstr "" "Lorsque vous faites une boucle sur un dictionnaire, les clés et leurs " "valeurs peuvent être récupérées en même temps en utilisant la méthode :meth:" -"`items` ::" +"`items` ::" #: ../Doc/tutorial/datastructures.rst:572 msgid "" @@ -634,7 +636,7 @@ msgid "" msgstr "" "Lorsque vous itérez sur une séquence, la position et la valeur " "correspondante peuvent être récupérées en même temps en utilisant la " -"fonction :func:`enumerate`. ::" +"fonction :func:`enumerate`. ::" #: ../Doc/tutorial/datastructures.rst:582 msgid "" @@ -642,7 +644,7 @@ msgid "" "paired with the :func:`zip` function. ::" msgstr "" "Pour faire des boucles sur deux séquences ou plus en même temps, les " -"éléments peuvent être associés par la fonction :func:`zip` ::" +"éléments peuvent être associés par la fonction :func:`zip` ::" #: ../Doc/tutorial/datastructures.rst:594 msgid "" @@ -651,7 +653,7 @@ msgid "" msgstr "" "Pour faire une boucle en sens inverse sur une séquence, commencez par " "spécifier la séquence dans son ordre normal, puis appliquez la fonction :" -"func:`reversed` ::" +"func:`reversed` ::" #: ../Doc/tutorial/datastructures.rst:606 msgid "" @@ -693,7 +695,7 @@ msgid "" msgstr "" "Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur est " "présente ou non dans une séquence. Les opérateurs ``is`` et ``is not`` " -"testent si deux objets sont vraiment le même objet ; ceci n'est important " +"testent si deux objets sont vraiment le même objet ; ceci n'est important " "que pour des objets muables comme des listes. Tous les opérateurs de " "comparaison ont la même priorité, qui est plus faible que celle des " "opérateurs numériques." @@ -704,7 +706,7 @@ msgid "" "is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" "Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste " -"si ``a`` est inférieur ou égal à ``b`` et si, de plus, ``b`` égale ``c``." +"si ``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``." #: ../Doc/tutorial/datastructures.rst:649 msgid "" @@ -718,7 +720,7 @@ msgstr "" "Les comparaisons peuvent être combinées en utilisant les opérateurs booléens " "``and`` et ``or``, le résultat d'une comparaison (ou de toute expression " "booléenne) pouvant être inversé avec ``not``. Ces opérateurs ont une " -"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " +"priorité inférieure à celle des opérateurs de comparaison ; entre eux, " "``not`` a la priorité la plus élevée et ``or`` la plus faible, de telle " "sorte que ``A and not B or C`` est équivalent à ``(A and (not B)) or C``. " "Comme toujours, des parenthèses peuvent être utilisées pour exprimer " @@ -734,7 +736,7 @@ msgid "" "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " -"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " +"circuit court* : leurs arguments sont évalués de la gauche vers la droite et " "l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " "``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " "l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " @@ -805,7 +807,7 @@ msgid "" msgstr "" "Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " "les objets ont des méthodes de comparaison appropriées. Par exemple, les " -"types numériques sont comparées via leur valeur numérique, donc 0 égale 0,0, " +"types numériques sont comparés via leur valeur numérique, donc 0 égale 0,0, " "etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " "l'interpréteur lève une exception :exc:`TypeError`." @@ -819,7 +821,7 @@ msgid "" "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" "D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " -"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." +"méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``." #~ msgid "" #~ "Calling ``d.keys()`` will return a :dfn:`dictionary view` object. It " diff --git a/tutorial/errors.po b/tutorial/errors.po index a87c78de0..dea012df4 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Jusqu'ici, les messages d'erreurs ont seulement été mentionnés. Mais si vous " "avez essayé les exemples vous avez certainement vu plus que cela. En fait, " -"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " +"il y a au moins deux types d'erreurs à distinguer : les *erreurs de syntaxe* " "et les *exceptions*." #: ../Doc/tutorial/errors.rst:15 @@ -52,7 +52,7 @@ msgid "" "colon (``':'``) is missing before it. File name and line number are printed " "so you know where to look in case the input came from a script." msgstr "" -"L'analyseur indique la ligne incriminée et affiche une petite 'flèche' " +"L'analyseur indique la ligne incriminée et affiche une petite « flèche » " "pointant vers le premier endroit de la ligne où l'erreur a été détectée. " "L'erreur est causée (ou, au moins, a été détectée comme telle) par le " "symbole placé *avant* la flèche. Dans cet exemple la flèche est sur la " @@ -75,7 +75,7 @@ msgid "" msgstr "" "Même si une instruction ou une expression est syntaxiquement correcte, elle " "peut générer une erreur lors de son exécution. Les erreurs détectées durant " -"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " +"l'exécution sont appelées des *exceptions* et ne sont pas toujours fatales : " "nous apprendrons bientôt comment les traiter dans vos programmes. La plupart " "des exceptions toutefois ne sont pas prises en charge par les programmes, ce " "qui génère des messages d'erreurs comme celui-ci ::" @@ -93,13 +93,13 @@ msgid "" msgstr "" "La dernière ligne du message d'erreur indique ce qui s'est passé. Les " "exceptions peuvent être de différents types et ce type est indiqué dans le " -"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" +"message : les types indiqués dans l'exemple sont :exc:`ZeroDivisionError`, :" "exc:`NameError` et :exc:`TypeError`. Le texte affiché comme type de " "l'exception est le nom de l'exception native qui a été déclenchée. Ceci est " "vrai pour toutes les exceptions natives mais n'est pas une obligation pour " "les exceptions définies par l'utilisateur (même si c'est une convention bien " "pratique). Les noms des exceptions standards sont des identifiants natifs " -"(pas des mots réservés)." +"(pas des mots-clef réservés)." #: ../Doc/tutorial/errors.rst:66 msgid "" @@ -116,11 +116,10 @@ msgid "" "a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"La partie précédente dans le message d'erreur indique le contexte dans " -"lequel s'est produite l'exception, sous la forme d'une trace de pile " -"d'exécution. En général, celle-ci contient les lignes du code source ; " -"toutefois, les lignes lues à partir de l'entrée standard ne sont pas " -"affichées." +"La partie précédente du message d'erreur indique le contexte dans lequel " +"s'est produite l'exception, sous la forme d'une trace de pile d'exécution. " +"En général, celle-ci contient les lignes du code source ; toutefois, les " +"lignes lues à partir de l'entrée standard ne sont pas affichées." #: ../Doc/tutorial/errors.rst:74 msgid "" @@ -148,7 +147,7 @@ msgstr "" "l'utilisateur d'interrompre le programme (en utilisant :kbd:`Control-C` ou " "un autre raccourci que le système accepte) ; notez qu'une interruption " "générée par l'utilisateur est signalée en levant l'exception :exc:" -"`KeyboardInterrupt`." +"`KeyboardInterrupt`. ::" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." @@ -160,7 +159,7 @@ msgid "" "keyword:`except` keywords) is executed." msgstr "" "premièrement, la *clause try* (instruction(s) placée(s) entre les mots-clés :" -"keyword:`try` et :keyword:`except`) est exécutée ;" +"keyword:`try` et :keyword:`except`) est exécutée." #: ../Doc/tutorial/errors.rst:101 msgid "" @@ -168,7 +167,7 @@ msgid "" "keyword:`try` statement is finished." msgstr "" "si aucune exception n'intervient, la clause ``except`` est sautée et " -"l'exécution de l'instruction :keyword:`try` est terminée ;" +"l'exécution de l'instruction :keyword:`try` est terminée." #: ../Doc/tutorial/errors.rst:104 msgid "" @@ -181,7 +180,7 @@ msgstr "" "reste de cette clause est sauté. Si le type d'exception levée correspond à " "un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " "correspondante est exécutée, puis l'exécution continue après l'instruction :" -"keyword:`try` ;" +"keyword:`try`." #: ../Doc/tutorial/errors.rst:109 msgid "" @@ -231,8 +230,8 @@ msgid "" "would have printed B, B, B --- the first matching except clause is triggered." msgstr "" "Notez que si les clauses ``except`` avaient été inversées (avec ``except B`` " -"en premier), il aurait affiché B, B, B --- la première clause ``except`` " -"correspondante étant déclenchée." +"en premier), il aurait affiché B, B, B — la première clause ``except`` qui " +"correspond est déclenchée." #: ../Doc/tutorial/errors.rst:150 msgid "" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 6e1c88ed1..15a0bdeee 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" -msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" #: ../Doc/tutorial/floatingpoint.rst:14 msgid "" @@ -24,14 +24,14 @@ msgid "" "(binary) fractions. For example, the decimal fraction ::" msgstr "" "Les nombres à virgule flottante sont représentés, au niveau matériel, en " -"fractions de nombres binaires (base 2). Par exemple, la fraction décimale ::" +"fractions de nombres binaires (base 2). Par exemple, la fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:19 msgid "" "has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" msgstr "" "a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " -"binaire ::" +"binaire ::" #: ../Doc/tutorial/floatingpoint.rst:23 msgid "" @@ -61,7 +61,7 @@ msgid "" "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" "Le problème est plus simple à aborder en base 10. Prenons par exemple, la " -"fraction 1/3. Vous pouvez l'approximer en une fraction décimale : ::" +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale ::" #: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 msgid "or, better, ::" @@ -85,7 +85,7 @@ msgid "" msgstr "" "De la même manière, peu importe combien de décimales en base 2 vous " "utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " -"fraction binaire. En base 2, 1/10 est le nombre périodique suivant ::" +"fraction binaire. En base 2, 1/10 est le nombre périodique suivant ::" #: ../Doc/tutorial/floatingpoint.rst:55 msgid "" @@ -115,7 +115,7 @@ msgstr "" "il est facile d'oublier que la valeur stockée est une approximation de la " "fraction décimale d'origine. Python n'affiche qu'une approximation décimale " "de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " -"décimale de l'approximation binaire stockée pour 0,1, il afficherait ::" +"décimale de l'approximation binaire stockée pour 0,1, il afficherait ::" #: ../Doc/tutorial/floatingpoint.rst:71 msgid "" @@ -124,7 +124,7 @@ msgid "" msgstr "" "C'est bien plus de décimales que ce qu'attendent la plupart des " "utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " -"lisibilité ::" +"lisibilité ::" #: ../Doc/tutorial/floatingpoint.rst:77 msgid "" @@ -196,7 +196,7 @@ msgid "" "simply rounding the *display* of the true machine value." msgstr "" "Il est important de comprendre que tout cela n'est, au sens propre, qu'une " -"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " "réellement dans la machine à *l'affichage*." #: ../Doc/tutorial/floatingpoint.rst:114 @@ -253,7 +253,7 @@ msgid "" "error." msgstr "" "Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " -"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " "erreurs, en Python, dans les opérations de nombres à virgule flottante sont " "dues au matériel sous-jacent et, sur la plupart des machines, sont de " "l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " @@ -342,7 +342,7 @@ msgid "" "value exactly::" msgstr "" "Cette représentation hexadécimale petit être utilisée pour reconstruire, " -"sans approximation, le *float* : ::" +"sans approximation, le *float* ::" #: ../Doc/tutorial/floatingpoint.rst:191 msgid "" @@ -407,19 +407,19 @@ msgid "" "strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " "*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" msgstr "" -"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " "binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " "suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " -"virgule flottante et la plupart des plateformes utilisent un \"IEEE-754 " -"double précision\" pour représenter les *floats* de Python. Les \"IEEE-754 " -"double précision\" utilisent 53 bits de précision donc, à la lecture, " +"virgule flottante et la plupart des plateformes utilisent un « IEEE-754 " +"double précision » pour représenter les *floats* de Python. Les « IEEE-754 " +"double précision » utilisent 53 bits de précision donc, à la lecture, " "l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " "possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " -"bits. Pour réécrire ::" +"bits. Pour réécrire ::" #: ../Doc/tutorial/floatingpoint.rst:229 msgid "as ::" -msgstr "en ::" +msgstr "en ::" #: ../Doc/tutorial/floatingpoint.rst:233 msgid "" @@ -427,7 +427,7 @@ msgid "" "2**53``), the best value for *N* is 56::" msgstr "" "en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " -"2**53``), la meilleure valeur possible pour *N* est 56 : ::" +"2**53``), la meilleure valeur possible pour *N* est 56 ::" #: ../Doc/tutorial/floatingpoint.rst:239 msgid "" @@ -436,7 +436,7 @@ msgid "" msgstr "" "Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " "pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " -"arrondi : ::" +"arrondi ::" #: ../Doc/tutorial/floatingpoint.rst:246 msgid "" @@ -444,15 +444,15 @@ msgid "" "obtained by rounding up::" msgstr "" "Puisque la retenue est plus grande que la moitié de 10, la meilleure " -"approximation est obtenue en arrondissant par le haut : ::" +"approximation est obtenue en arrondissant par le haut ::" #: ../Doc/tutorial/floatingpoint.rst:252 msgid "" "Therefore the best possible approximation to 1/10 in 754 double precision " "is::" msgstr "" -"Par conséquent la meilleure approximation possible pour 1/10 en \"IEEE-754 " -"double précision\" est celle au-dessus de 2\\*\\*56, soit ::" +"Par conséquent la meilleure approximation possible pour 1/10 en « IEEE-754 " +"double précision » est celle au-dessus de 2\\*\\*56, soit ::" #: ../Doc/tutorial/floatingpoint.rst:256 msgid "" @@ -469,7 +469,7 @@ msgstr "" "Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " "réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " "haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " -"cas il ne vaut *exactement* 1/10 !" +"cas il ne vaut *exactement* 1/10 !" #: ../Doc/tutorial/floatingpoint.rst:264 msgid "" @@ -478,7 +478,7 @@ msgid "" msgstr "" "Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " "exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " -"virgule flottante double précision de l'\"IEEE-754\" : ::" +"virgule flottante double précision de l'« IEEE-754 » ::" #: ../Doc/tutorial/floatingpoint.rst:270 msgid "" @@ -486,7 +486,7 @@ msgid "" "decimal digits::" msgstr "" "Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " -"valeurs de ses 55 décimales de poids fort : ::" +"valeurs de ses 55 décimales de poids fort ::" #: ../Doc/tutorial/floatingpoint.rst:276 msgid "" @@ -499,7 +499,7 @@ msgstr "" "0,1000000000000000055511151231257827021181583404541015625. Au lieu " "d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " "versions de Python) arrondissent le résultat à la 17\\ :sup:`e` décimale " -"significative : ::" +"significative ::" #: ../Doc/tutorial/floatingpoint.rst:284 msgid "" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 4961c67f5..60b7bf01f 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -174,7 +174,7 @@ msgid "" "number of characters wide. This is useful for making columns line up. ::" msgstr "" "Donner un entier après le ``':'`` indique la largeur minimale de ce champ en " -"nombre de caractères. C'est utile pour faire de jolis tableaux ::" +"nombre de caractères. C'est utile pour faire de jolis tableaux ::" #: ../Doc/tutorial/inputoutput.rst:126 msgid "" @@ -184,7 +184,7 @@ msgid "" msgstr "" "D’autres modificateurs peuvent être utilisés pour convertir la valeur avant " "son formatage. ``'!a'`` applique :func:`ascii`, ``'!s'`` applique :func:" -"`str`, et ``'!r'`` applique :func:`repr`::" +"`str`, et ``'!r'`` applique :func:`repr` ::" #: ../Doc/tutorial/inputoutput.rst:136 msgid "" @@ -221,7 +221,7 @@ msgid "" "are referred to by using the name of the argument. ::" msgstr "" "Si des arguments nommés sont utilisés dans la méthode :meth:`str.format`, " -"leurs valeurs sont utilisées en se basant sur le nom des arguments ::" +"leurs valeurs sont utilisées en se basant sur le nom des arguments ::" #: ../Doc/tutorial/inputoutput.rst:166 msgid "Positional and keyword arguments can be arbitrarily combined::" @@ -238,7 +238,7 @@ msgstr "" "Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas " "découper, il est possible de référencer les variables à formater par leur " "nom plutôt que par leur position. Utilisez simplement un dictionnaire et la " -"notation entre crochets ``'[]'`` pour accéder aux clés ::" +"notation entre crochets ``'[]'`` pour accéder aux clés ::" #: ../Doc/tutorial/inputoutput.rst:182 msgid "" @@ -263,7 +263,7 @@ msgid "" msgstr "" "A titre d’exemple, les lignes suivantes produisent un ensemble de colonnes " "alignées de façon ordonnée donnant les entiers, leurs carrés et leurs " -"cubes: ::" +"cubes ::" #: ../Doc/tutorial/inputoutput.rst:209 msgid "" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 98691778d..8cec2a8fb 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -51,7 +51,7 @@ msgid "" msgstr "" "La complétion de noms de variables et de modules est :ref:`automatiquement " "activée ` au démarrage de l'interpréteur. Ainsi, la " -"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " "s'effectue dans les noms d'instructions Python, les noms des variables " "locales et les noms de modules disponibles. Pour les expressions pointées " "telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " @@ -82,7 +82,7 @@ msgstr "" "(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " "complétion devrait utiliser la table de symboles de l'interpréteur. Une " "commande pour vérifier (ou même suggérer) les correspondances de " -"parenthèses, de guillemets..., serait également utile." +"parenthèses, de guillemets, etc., serait également utile." #: ../Doc/tutorial/interactive.rst:45 msgid "" @@ -93,7 +93,7 @@ msgid "" "interactive environment is bpython_." msgstr "" "Une alternative améliorée de l'interpréteur interactif est développée depuis " -"maintenant quelques temps : IPython_. Il fournit la complétion, " +"maintenant quelques temps : IPython_. Il fournit la complétion, " "l'exploration d'objets et une gestion avancée de l'historique. Il peut " "également être personnalisé en profondeur et embarqué dans d'autres " "applications. Un autre environnement interactif amélioré similaire est " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 44b6ee0f0..e6b9b8d2c 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -29,11 +29,11 @@ msgid "" "type a blank line; this is used to end a multi-line command." msgstr "" "Dans les exemples qui suivent, les entrées et sorties se distinguent par la " -"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " +"présence ou l'absence d'invite (:term:`>>>` et :term:`...`) : pour " "reproduire les exemples, vous devez taper tout ce qui est après l'invite, au " -"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " +"moment où celle-ci apparaît ; les lignes qui n'affichent pas d'invite sont " "les sorties de l'interpréteur. Notez qu'une invite secondaire affichée seule " -"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " +"sur une ligne dans un exemple indique que vous devez entrer une ligne vide ; " "ceci est utilisé pour terminer une commande multi-lignes." #: ../Doc/tutorial/introduction.rst:16 @@ -84,10 +84,10 @@ msgid "" "languages (for example, Pascal or C); parentheses (``()``) can be used for " "grouping. For example::" msgstr "" -"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " +"L'interpréteur agit comme une simple calculatrice : vous pouvez lui entrer " "une expression et il vous affiche la valeur. La syntaxe des expressions est " -"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " -"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " +"simple : les opérateurs ``+``, ``-``, ``*`` et ``/`` fonctionnent comme dans " +"la plupart des langages (par exemple, Pascal ou C) ; les parenthèses peuvent " "être utilisées pour faire des regroupements. Par exemple ::" #: ../Doc/tutorial/introduction.rst:61 @@ -96,7 +96,7 @@ msgid "" "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" "`float`. We will see more about numeric types later in the tutorial." msgstr "" -"Les nombre entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " +"Les nombres entiers (comme ``2``, ``4``, ``20``) sont de type :class:`int`, " "alors que les décimaux (comme ``5.0``, ``1.6``) sont de type :class:`float`. " "Vous trouvez plus de détails sur les types numériques plus loin dans ce " "tutoriel." @@ -141,9 +141,9 @@ msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" msgstr "" -"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " +"Les nombres à virgule flottante sont tout à fait admis (NdT : Python utilise " "le point *.* comme séparateur entre la partie entière et la partie décimale " -"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " +"des nombres, c'est la convention anglo-saxonne) ; les opérateurs avec des " "opérandes de types différents convertissent l'opérande de type entier en " "type virgule flottante ::" @@ -238,7 +238,7 @@ msgid "" "end of the line. The following example::" msgstr "" "Les chaînes de caractères peuvent s'étendre sur plusieurs lignes. Utilisez " -"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" +"alors des triples guillemets, simples ou doubles : ``'''...'''`` ou ``" "\"\"\"...\"\"\"``. Les retours à la ligne sont automatiquement inclus, mais " "on peut l'empêcher en ajoutant ``\\`` à la fin de la ligne. L'exemple " "suivant ::" @@ -249,7 +249,7 @@ msgid "" "included):" msgstr "" "produit l'affichage suivant (notez que le premier retour à la ligne n'est " -"pas inclus) :" +"pas inclus) :" #: ../Doc/tutorial/introduction.rst:204 msgid "" @@ -264,7 +264,7 @@ msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" -"Plusieurs chaînes de caractères, écrites littéralement (c'est à dire entre " +"Plusieurs chaînes de caractères, écrites littéralement (c'est-à-dire entre " "guillemets), côte à côte, sont automatiquement concaténées. ::" #: ../Doc/tutorial/introduction.rst:217 @@ -336,9 +336,9 @@ msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " +"Les valeurs par défaut des indices de tranches ont une utilité ; le premier " "indice vaut zéro par défaut (i.e. lorsqu'il est omis), le deuxième " -"correspond par défaut à la taille de la chaîne de caractères ::" +"correspond par défaut à la taille de la chaîne de caractères ::" #: ../Doc/tutorial/introduction.rst:290 msgid "" @@ -359,8 +359,8 @@ msgid "" "from *i* to *j* consists of all characters between the edges labeled *i* and " "*j*, respectively." msgstr "" -"La première ligne de nombres donne la position des indices 0...6 dans la " -"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " +"La première ligne de nombres donne la position des indices 0…6 dans la " +"chaîne ; la deuxième ligne donne l'indice négatif correspondant. La tranche " "de *i* à *j* est constituée de tous les caractères situés entre les bords " "libellés *i* et *j*, respectivement." @@ -392,8 +392,8 @@ msgid "" "assigning to an indexed position in the string results in an error::" msgstr "" "Les chaînes de caractères, en Python, ne peuvent pas être modifiées. On dit " -"qu'elles sont :term:`immuable`\\s. Affecter une nouvelle valeur à un indice " -"dans une chaîne produit une erreur ::" +"qu'elles sont :term:`immuables `. Affecter une nouvelle valeur à " +"un indice dans une chaîne produit une erreur ::" #: ../Doc/tutorial/introduction.rst:337 msgid "If you need a different string, you should create a new one::" @@ -414,7 +414,7 @@ msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"Les chaînes de caractères sont des exemples de *types séquences* ; elles " +"Les chaînes de caractères sont des exemples de *types séquences* ; elles " "acceptent donc les opérations classiques prises en charge par ces types." #: ../Doc/tutorial/introduction.rst:359 @@ -470,8 +470,8 @@ msgid "" "items of different types, but usually the items all have the same type. ::" msgstr "" "Python connaît différents types de données *combinés*, utilisés pour " -"regrouper plusieurs valeurs. La plus souple est la *liste*, qui peut être " -"écrite comme une suite, placée entre crochets, de valeurs (éléments) séparés " +"regrouper plusieurs valeurs. Le plus souple est la *liste*, qui peut être " +"écrit comme une suite, placée entre crochets, de valeurs (éléments) séparées " "par des virgules. Les éléments d'une liste ne sont pas obligatoirement tous " "du même type, bien qu'à l'usage ce soit souvent le cas. ::" @@ -502,8 +502,8 @@ msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" -"Mais à la différence des chaînes qui sont :term:`immuable`\\s, les listes " -"sont :term:`muables `\\s : il est possible de modifier leur " +"Mais à la différence des chaînes qui sont :term:`immuables `, les " +"listes sont :term:`muables ` : il est possible de modifier leur " "contenu ::" #: ../Doc/tutorial/introduction.rst:417 @@ -563,7 +563,7 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" -"La première ligne contient une *affectation multiple* : les variables ``a`` " +"La première ligne contient une *affectation multiple* : les variables ``a`` " "et ``b`` se voient affecter simultanément leurs nouvelles valeurs 0 et 1. " "Cette méthode est encore utilisée à la dernière ligne, pour démontrer que " "les expressions sur la partie droite de l'affectation sont toutes évaluées " @@ -581,13 +581,13 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" -"La boucle :keyword:`while` s'exécute tant que la condition (ici : ``a < " +"La boucle :keyword:`while` s'exécute tant que la condition (ici : ``a < " "10``) reste vraie. En Python, comme en C, tout entier différent de zéro est " "vrai et zéro est faux. La condition peut aussi être une chaîne de " -"caractères, une liste, ou en fait toute séquence ; une séquence avec une " +"caractères, une liste, ou en fait toute séquence ; une séquence avec une " "valeur non nulle est vraie, une séquence vide est fausse. Le test utilisé " "dans l'exemple est une simple comparaison. Les opérateurs de comparaison " -"standards sont écrits comme en C : ``<`` (inférieur), ``>`` (supérieur), " +"standards sont écrits comme en C : ``<`` (inférieur), ``>`` (supérieur), " "``==`` (égal), ``<=`` (inférieur ou égal), ``>=`` (supérieur ou égal) et ``!" "=`` (non égal)." @@ -602,11 +602,11 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" -"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " +"Le *corps* de la boucle est *indenté* : l'indentation est la méthode " "utilisée par Python pour regrouper des instructions. En mode interactif, " "vous devez saisir une tabulation ou des espaces pour chaque ligne indentée. " "En pratique, vous aurez intérêt à utiliser un éditeur de texte pour les " -"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " +"saisies plus compliquées ; tous les éditeurs de texte dignes de ce nom " "disposent d'une fonction d'auto-indentation. Lorsqu'une expression composée " "est saisie en mode interactif, elle doit être suivie d'une ligne vide pour " "indiquer qu'elle est terminée (car l'analyseur ne peut pas deviner que vous " @@ -622,7 +622,7 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" -"La fonction :func:`print` écrit les valeur des paramètres qui lui sont " +"La fonction :func:`print` écrit les valeurs des paramètres qui lui sont " "fournis. Ce n'est pas la même chose que d'écrire l'expression que vous " "voulez afficher (comme nous l'avons fait dans l'exemple de la calculatrice), " "en raison de la manière qu'a ``print`` de gérer les paramètres multiples, " @@ -650,7 +650,7 @@ msgid "" msgstr "" "Puisque ``**`` est prioritaire sur ``-``, ``-3 ** 2`` est interprété ``-(3 " "** 2)`` et vaut donc ``-9``. Pour éviter cela et obtenir ``9``, utilisez des " -"parenthèses : ``(-3) ** 2``." +"parenthèses : ``(-3) ** 2``." #: ../Doc/tutorial/introduction.rst:542 msgid "" diff --git a/tutorial/modules.po b/tutorial/modules.po index 0728a4493..2e99e1dcb 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -124,7 +124,7 @@ msgstr "" "sans se soucier de collisions de noms avec des variables globales définies " "par l'utilisateur du module. Cependant, si vous savez ce que vous faites, " "vous pouvez modifier une variable globale d'un module avec la même notation " -"que pour accéder aux fonctions : ``nommodule.nomelement``." +"que pour accéder aux fonctions : ``nommodule.nomelement``." #: ../Doc/tutorial/modules.rst:85 msgid "" @@ -216,9 +216,9 @@ msgid "" msgstr "" "pour des raisons de performance, chaque module n'est importé qu'une fois par " "session. Si vous changez le code d'un module vous devez donc redémarrer " -"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " +"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " "seul module que vous voulez tester en mode interactif, vous pouvez le ré-" -"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " "``import importlib; importlib.reload(nommodule)``." #: ../Doc/tutorial/modules.rst:146 @@ -227,7 +227,7 @@ msgstr "Exécuter des modules comme des scripts" #: ../Doc/tutorial/modules.rst:148 msgid "When you run a Python module with ::" -msgstr "Lorsque vous exécutez un module Python avec ::" +msgstr "Lorsque vous exécutez un module Python avec ::" #: ../Doc/tutorial/modules.rst:152 msgid "" @@ -286,7 +286,7 @@ msgid "" "file is specified)." msgstr "" "le dossier contenant le script courant (ou le dossier courant si aucun " -"script n'est donné) ;" +"script n'est donné) ;" #: ../Doc/tutorial/modules.rst:192 msgid "" @@ -294,7 +294,7 @@ msgid "" "shell variable :envvar:`PATH`)." msgstr "" ":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " -"la variable shell :envvar:`PATH`) ;" +"la variable shell :envvar:`PATH`) ;" #: ../Doc/tutorial/modules.rst:194 msgid "The installation-dependent default." @@ -372,16 +372,16 @@ msgid "" "distribution, the compiled module must be in the source directory, and there " "must not be a source module." msgstr "" -"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " +"Il existe deux situations où Python ne vérifie pas le cache : le premier cas " "est lorsque le module est donné par la ligne de commande (cas où le module " -"est toujours recompilé, sans même cacher sa version compilée) ; le second " +"est toujours recompilé, sans même cacher sa version compilée) ; le second " "cas est lorsque le module n'a pas de source. Pour gérer un module sans " "source (où seule la version compilée est fournie), le module compilé doit se " "trouver dans le dossier source et sa source ne doit pas être présente." #: ../Doc/tutorial/modules.rst:234 msgid "Some tips for experts:" -msgstr "Astuces pour les experts :" +msgstr "Astuces pour les experts :" #: ../Doc/tutorial/modules.rst:236 msgid "" @@ -400,7 +400,7 @@ msgstr "" "besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous " "savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-" "`` et sont généralement plus petits. Les versions futures de Python " -"pourraient changer les effets de l'optimisation ;" +"pourraient changer les effets de l'optimisation ;" #: ../Doc/tutorial/modules.rst:244 msgid "" @@ -409,7 +409,7 @@ msgid "" "pyc`` files is the speed with which they are loaded." msgstr "" "un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " -"il est juste chargé plus vite ;" +"il est juste chargé plus vite ;" #: ../Doc/tutorial/modules.rst:248 msgid "" @@ -417,7 +417,7 @@ msgid "" "directory." msgstr "" "le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " -"modules d'un dossier ;" +"modules d'un dossier ;" #: ../Doc/tutorial/modules.rst:251 msgid "" @@ -502,7 +502,7 @@ msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis ::" msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" -"Notez qu'elle liste tous les types de noms : les variables, fonctions, " +"Notez qu'elle liste tous les types de noms : les variables, fonctions, " "modules, etc." #: ../Doc/tutorial/modules.rst:339 @@ -559,11 +559,11 @@ msgstr "" "file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un " "nombre croissant de modules pour gérer la conversion entre tous ces formats. " "Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces " -"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " +"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo " "artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire " "une myriade de modules permettant d'effectuer ces opérations. Voici une " "structure possible pour votre paquet (exprimée sous la forme d'une " -"arborescence de fichiers :" +"arborescence de fichiers :" #: ../Doc/tutorial/modules.rst:425 msgid "" @@ -675,7 +675,7 @@ msgid "" "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" -"Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " +"Qu'arrive-t-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " "Idéalement, on pourrait espérer que Python aille chercher tous les sous-" "modules du paquet sur le système de fichiers et qu'ils seraient tous " "importés. Cela pourrait être long et importer certains sous-modules pourrait " @@ -766,7 +766,7 @@ msgid "" "packages." msgstr "" "Rappelez-vous que rien ne vous empêche d'utiliser ``from paquet import " -"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " +"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins " "que le module qui fait les importations ait besoin de sous-modules ayant le " "même nom mais provenant de paquets différents." diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index e1c53df60..35e8780c9 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -43,7 +43,7 @@ msgid "" "interactive aids for working with large modules like :mod:`os`::" msgstr "" "Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " -"vous travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` ::" #: ../Doc/tutorial/stdlib.rst:38 msgid "" @@ -145,7 +145,7 @@ msgid "" "for floating point math::" msgstr "" "Le module :mod:`math` donne accès aux fonctions sur les nombres à virgule " -"flottante (*float* en anglais) de la bibliothèque C : ::" +"flottante (*float* en anglais) de la bibliothèque C ::" #: ../Doc/tutorial/stdlib.rst:131 msgid "The :mod:`random` module provides tools for making random selections::" @@ -158,7 +158,7 @@ msgid "" "mean, median, variance, etc.) of numeric data::" msgstr "" "Le module :mod:`statistics` permet de calculer des valeurs statistiques " -"basiques (moyenne, médiane, variance, ...) : ::" +"basiques (moyenne, médiane, variance…) ::" #: ../Doc/tutorial/stdlib.rst:155 msgid "" @@ -186,7 +186,8 @@ msgstr "" #: ../Doc/tutorial/stdlib.rst:186 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -"Notez que le deuxième exemple a besoin d'un serveur mail tournant localement." +"(Notez que le deuxième exemple a besoin d'un serveur mail tournant " +"localement.)" #: ../Doc/tutorial/stdlib.rst:192 msgid "Dates and Times" @@ -205,7 +206,7 @@ msgstr "" "dates et d'heures soit possible, la priorité de l'implémentation est mise " "sur l'extraction efficace des attributs pour le formatage et la " "manipulation. Le module gère aussi les objets dépendant des fuseaux " -"horaires ::" +"horaires ::" #: ../Doc/tutorial/stdlib.rst:218 msgid "Data Compression" @@ -244,7 +245,7 @@ msgstr "" "Par exemple, pour échanger deux variables, il peut être tentant d'utiliser " "l'empaquetage et le dépaquetage de tuples plutôt que la méthode " "traditionnelle. Le module :mod:`timeit` montre rapidement le léger gain de " -"performance obtenu : ::" +"performance obtenu ::" #: ../Doc/tutorial/stdlib.rst:256 msgid "" @@ -266,7 +267,7 @@ msgid "" "function as it is developed and to run those tests frequently during the " "development process." msgstr "" -"Une approche possible pour développer des application de très bonne qualité " +"Une approche possible pour développer des applications de très bonne qualité " "est d'écrire des tests pour chaque fonction au fur et à mesure de son " "développement, puis d'exécuter ces tests fréquemment lors du processus de " "développement." diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 2df126258..97c87860a 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -74,7 +74,7 @@ msgstr "" #: ../Doc/tutorial/stdlib2.rst:72 msgid "Templating" -msgstr "Gabarits (Templates)" +msgstr "Gabarits (*templates* en anglais)" #: ../Doc/tutorial/stdlib2.rst:74 msgid "" @@ -83,7 +83,7 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" -"Le module :mod:`string` contient une classe polyvalente : :class:`~string." +"Le module :mod:`string` contient une classe polyvalente : :class:`~string." "Template`. Elle permet d'écrire des gabarits (*templates* en anglais) avec " "une syntaxe simple, dans le but d'être utilisable par des non-développeurs. " "Ainsi, vos utilisateurs peuvent personnaliser leur application sans la " @@ -138,7 +138,7 @@ msgid "" msgstr "" "Une autre utilisation des gabarits consiste à séparer la logique métier des " "détails spécifiques à chaque format de sortie. Il est ainsi possible de " -"générer des gabarits spécifiques pour les fichiers XML, texte, HTML ..." +"générer des gabarits spécifiques pour les fichiers XML, texte, HTML…" #: ../Doc/tutorial/stdlib2.rst:133 msgid "Working with Binary Data Record Layouts" @@ -155,7 +155,7 @@ msgid "" msgstr "" "Le module :mod:`struct` expose les fonctions :func:`~struct.pack` et :func:" "`~struct.unpack` permettant de travailler avec des données binaires. " -"L'exemple suivant montre comment parcourir une entête de fichier ZIP sans " +"L'exemple suivant montre comment parcourir un entête de fichier ZIP sans " "recourir au module :mod:`zipfile`. Les marqueurs ``\"H\"`` et ``\"I\"`` " "représentent des nombres entiers non signés, stockés respectivement sur deux " "et quatre octets. Le ``\"<\"`` indique qu'ils ont une taille standard et " @@ -239,7 +239,7 @@ msgstr "" #: ../Doc/tutorial/stdlib2.rst:225 msgid "This produces the following output:" -msgstr "Cela produit l'affichage suivant :" +msgstr "Cela produit l'affichage suivant :" #: ../Doc/tutorial/stdlib2.rst:233 msgid "" @@ -254,7 +254,7 @@ msgstr "" "autres sont envoyés vers la sortie standard. Il est aussi possible d'envoyer " "les messages par courriel, datagrammes, en utilisant des connecteurs réseau " "ou vers un serveur HTTP. Des nouveaux filtres permettent d'utiliser des " -"sorties différentes en fonction de la priorité du message : :const:`~logging." +"sorties différentes en fonction de la priorité du message : :const:`~logging." "DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:`~logging." "ERROR` et :const:`~logging.CRITICAL`." @@ -379,10 +379,10 @@ msgid "" "decimal floating point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" -"Le module :mod:`decimal` expose la classe :class:`~decimal.Decimal` : elle " +"Le module :mod:`decimal` exporte la classe :class:`~decimal.Decimal` : elle " "est spécialisée dans le calcul de nombres décimaux représentés en virgule " "flottante. Par rapport à la classe native :class:`float`, elle est " -"particulièrement utile pour :" +"particulièrement utile pour :" #: ../Doc/tutorial/stdlib2.rst:361 msgid "" @@ -420,7 +420,7 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" -"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " +"Par exemple, calculer 5 % de taxe sur une facture de 70 centimes donne un " "résultat différent en nombre à virgule flottante binaire et décimale. La " "différence devient significative lorsqu'on arrondit le résultat au centime " "près ::" diff --git a/tutorial/venv.po b/tutorial/venv.po index 70429e769..ae5ee54e6 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -90,7 +90,7 @@ msgid "" "system, you can select a specific Python version by running ``python3`` or " "whichever version you want." msgstr "" -"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" +"Le module utilisé pour créer et gérer des environnements virtuels s'appelle :" "mod:`venv`. :mod:`venv` installe en général la version de Python la plus " "récente dont vous disposez. Si plusieurs versions de Python sont sur votre " "système, vous pouvez choisir une version particulière en exécutant ``python3." @@ -104,7 +104,7 @@ msgid "" msgstr "" "Pour créer un environnement virtuel, décidez d'un dossier où vous voulez le " "placer et exécutez le module :mod:`venv` comme un script avec le chemin du " -"dossier : ::" +"dossier ::" #: ../Doc/tutorial/venv.rst:49 msgid "" @@ -147,9 +147,9 @@ msgid "" msgstr "" "Activer l'environnement virtuel change le prompt de votre ligne de commande " "pour afficher le nom de l'environnement virtuel que vous utilisez. Cela " -"modifie aussi l'environnement afin, lorsque vous tapez``python``, d'exécuter " -"la version spécifique de Python installée dans l'environnement. Par " -"exemple : ::" +"modifie aussi l'environnement afin, lorsque vous tapez ``python``, " +"d'exécuter la version spécifique de Python installée dans l'environnement. " +"Par exemple ::" #: ../Doc/tutorial/venv.rst:87 msgid "Managing Packages with pip" @@ -175,7 +175,7 @@ msgid "" "\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete " "documentation for ``pip``.)" msgstr "" -"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " +"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, " "``freeze``, etc. Consultez le guide :ref:`installing-index` pour une " "documentation exhaustive sur ``pip``." @@ -184,8 +184,7 @@ msgid "" "You can install the latest version of a package by specifying a package's " "name:" msgstr "" -"Vous pouvez installer la dernière version d'un paquet en indiquant son " -"nom : ::" +"Vous pouvez installer la dernière version d'un paquet en indiquant son nom ::" #: ../Doc/tutorial/venv.rst:120 msgid "" @@ -193,7 +192,7 @@ msgid "" "name followed by ``==`` and the version number:" msgstr "" "Vous pouvez installer une version spécifique d'un paquet en donnant le nom " -"du paquet suivi de ``==`` et du numéro de version souhaitée : ::" +"du paquet suivi de ``==`` et du numéro de version souhaitée ::" #: ../Doc/tutorial/venv.rst:131 msgid "" @@ -205,7 +204,7 @@ msgstr "" "Si vous relancez cette commande, ``pip`` remarque que la version demandée " "est déjà installée et ne fait rien. Vous pouvez fournir un numéro de version " "différent pour récupérer cette version ou lancer ``pip install --upgrade`` " -"pour mettre à jour le paquet à la dernière version : ::" +"pour mettre à jour le paquet à la dernière version ::" #: ../Doc/tutorial/venv.rst:146 msgid "" @@ -224,8 +223,7 @@ msgid "" "``pip list`` will display all of the packages installed in the virtual " "environment:" msgstr "" -"``pip list`` liste tous les paquets installés dans l'environnement " -"virtuel : ::" +"``pip list`` liste tous les paquets installés dans l'environnement virtuel ::" #: ../Doc/tutorial/venv.rst:178 msgid "" @@ -235,7 +233,7 @@ msgid "" msgstr "" "``pip freeze`` produit une liste similaire des paquets installés mais " "l'affichage adopte un format que ``pip install`` peut lire. La convention " -"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" +"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :" #: ../Doc/tutorial/venv.rst:190 msgid "" @@ -246,7 +244,7 @@ msgstr "" "Le fichier ``requirements.txt`` peut alors être ajouté dans un système de " "gestion de versions comme faisant partie de votre application. Les " "utilisateurs peuvent alors installer tous les paquets nécessaires à " -"l'application avec ``install -r`` :" +"l'application avec ``install -r`` :" #: ../Doc/tutorial/venv.rst:207 msgid "" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 8d39ec5c0..a056d0736 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "La lecture de ce tutoriel a probablement renforcé votre intérêt pour Python " "et vous devez être impatient de l'utiliser pour résoudre des vrais " -"problèmes. Où aller pour en apprendre plus ?" +"problèmes. Où aller pour en apprendre plus ?" #: ../Doc/tutorial/whatnow.rst:11 msgid "" @@ -39,7 +39,7 @@ msgstr "" #: ../Doc/tutorial/whatnow.rst:14 msgid ":ref:`library-index`:" -msgstr ":ref:`library-index`:" +msgstr ":ref:`library-index` :" #: ../Doc/tutorial/whatnow.rst:16 msgid "" @@ -125,7 +125,7 @@ msgid "" "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" -"https://code.activestate.com/recipes/langs/python/: \"The Python Cookbook\" " +"https://code.activestate.com/recipes/langs/python/ : \"The Python Cookbook\" " "est un recueil assez imposant d'exemples de code, de modules et de scripts. " "Les contributions les plus remarquables y sont regroupées dans le livre " "\"Python Cookbook\" (O'Reilly & Associates, ISBN 0-596-00797-3)." @@ -164,7 +164,7 @@ msgid "" msgstr "" "Pour poser des questions ou remonter des problèmes liés à Python, vous " "pouvez écrire sur le forum :newsgroup:`comp.lang.python` ou les envoyer à la " -"liste de diffusion à python-list@python.org. Le forum et la liste de " +"liste de diffusion . Le forum et la liste de " "diffusion sont liées, un message publié sur l'un sera automatiquement " "transféré sur l'autre. Des centaines de messages y sont publiés chaque jour, " "posant (ou répondant à) des questions, suggérant de nouvelles " @@ -192,6 +192,6 @@ msgid "" "\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " "but whatever cheese he asks for, the clerk says it's missing." msgstr "" -"“Cheese Shop” est un sketch de Monty Python : un client entre dans une " +"« Cheese Shop » est un sketch de Monty Python : un client entre dans une " "fromagerie, mais peu importe le fromage que demande le client, le vendeur " "dit qu’il n’en a pas." diff --git a/using/cmdline.po b/using/cmdline.po index 0b89879e6..b16856cae 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -195,8 +195,8 @@ msgid "" "still be used for precompiled modules, even if the original source file is " "not available." msgstr "" -"cette option ne peut pas être utilisée avec les modules intégrés et les " -"modules d'extension écrits en C, étant donné qu'il ne possèdent pas de " +"Cette option ne peut pas être utilisée avec les modules natifs et les " +"modules d'extension écrits en C, étant donné qu'ils ne possèdent pas de " "fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " "les modules pré-compilés, même si le fichier source original n'est pas " "disponible." @@ -348,7 +348,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:194 msgid "The ``-VV`` option." -msgstr "option ``-VV``." +msgstr "L'option ``-VV``." #: ../Doc/using/cmdline.rst:200 msgid "Miscellaneous options" @@ -550,7 +550,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:326 ../Doc/using/cmdline.rst:634 #: ../Doc/using/cmdline.rst:646 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." +msgstr ":pep:`370` — Répertoire site-packages propre à l'utilisateur" #: ../Doc/using/cmdline.rst:331 msgid "" @@ -1466,7 +1466,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:838 ../Doc/using/cmdline.rst:899 msgid ":ref:`Availability `: \\*nix." -msgstr ":ref:`Disponibilité ` : systèmes de type UNIX" +msgstr ":ref:`Disponibilité ` : systèmes de type UNIX." #: ../Doc/using/cmdline.rst:839 msgid "See :pep:`538` for more details." diff --git a/using/mac.po b/using/mac.po index c3ba4c238..f36571290 100644 --- a/using/mac.po +++ b/using/mac.po @@ -303,7 +303,6 @@ msgstr "" "graphique sur le Mac avec Python." #: ../Doc/using/mac.rst:142 -#, fuzzy msgid "" "*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which " "is the foundation of most modern Mac development. Information on PyObjC is " @@ -311,7 +310,7 @@ msgid "" msgstr "" "*PyObjC* est un **binding** Python vers le **framework** Objective-C/Cocoa " "d'Apple, qui est la base de la plupart des développements modernes sur Mac. " -"Des informations sur PyObjC sont disponible à https://pythonhosted.org/" +"Des informations sur PyObjC sont disponible à https://pypi.org/project/" "pyobjc/." #: ../Doc/using/mac.rst:146 diff --git a/using/unix.po b/using/unix.po index 26b5c460e..2097ebac1 100644 --- a/using/unix.po +++ b/using/unix.po @@ -246,7 +246,7 @@ msgid "" "is usually ::" msgstr "" "et mettre un *shebang* approprié en haut du script. Un bon choix est " -"généralement ::" +"généralement ::" #: ../Doc/using/unix.rst:132 msgid "" diff --git a/using/windows.po b/using/windows.po index c001912a5..268ec5a4d 100644 --- a/using/windows.po +++ b/using/windows.po @@ -6,15 +6,15 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-06-03 22:10+0200\n" -"PO-Revision-Date: 2019-06-01 23:40+0200\n" +"PO-Revision-Date: 2019-08-16 23:27+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr_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.1\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.2.1\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/using/windows.rst:7 @@ -226,7 +226,9 @@ msgstr "" #: ../Doc/using/windows.rst:92 msgid "The standard library can be pre-compiled to bytecode" -msgstr "La bibliothèque standard peut être pré-compilée en *bytecode*" +msgstr "" +"La bibliothèque standard peut être pré-compilée en code intermédiaire " +"(*bytecode* en anglais)" #: ../Doc/using/windows.rst:93 msgid "" @@ -2277,11 +2279,12 @@ msgstr "" "inclut les services pour :" #: ../Doc/using/windows.rst:1046 -#, fuzzy msgid "" "`Component Object Model `_ (COM)" -msgstr "`Component Object Model `_ (COM)" +msgstr "" +"`Component Object Model `_ (COM)" #: ../Doc/using/windows.rst:1049 msgid "Win32 API calls" @@ -2430,11 +2433,8 @@ msgstr "" "and without Microsoft Visual C++*\" par Sébastien Sauvage, 2003" #: ../Doc/using/windows.rst:1114 -#, fuzzy msgid "`MingW -- Python extensions `_" -msgstr "" -"`MingW -- Python extensions `_" +msgstr "`MingW -- Python extensions `_" #: ../Doc/using/windows.rst:1118 msgid "Other Platforms" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 83745621f..5aaf5fcfc 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -125,6 +125,14 @@ msgid "" "available from Python's project page, located at https://sourceforge.net/" "projects/python/." msgstr "" +"Le changement le plus important dans Python 2.0 ne concerne peut-être pas le " +"code, mais le développement de Python : en mai 2000, les développeurs Python " +"ont commencé à utiliser les outils mis à disposition par SourceForge pour " +"stocker le code source, suivre les rapports de bogues et gérer la file " +"d’attente des soumissions de correctifs. Pour signaler des bogues ou " +"soumettre des correctifs pour Python 2.0, utilisez les outils de suivi des " +"bogues et de gestion des correctifs disponibles sur la page du projet " +"Python, à l’adresse https://sourceforge.net/projects/python/." #: ../Doc/whatsnew/2.0.rst:66 msgid "" @@ -145,6 +153,25 @@ msgid "" "access, probably that task would have been viewed as \"nice, but not worth " "the time and effort needed\" and it would never have gotten done." msgstr "" +"Le plus important des services maintenant hébergé chez SourceForge est " +"l’arborescence CVS Python, le référentiel sous contrôle de version contenant " +"le code source de Python. Auparavant, environ 7 personnes avaient un accès " +"en écriture à l’arborescence CVS et tous les correctifs devaient être " +"inspectés et archivés par l’une des personnes figurant sur cette liste " +"restreinte. Évidemment, ce n’était pas très évolutif. En déplaçant " +"l’arborescence CVS vers SourceForge, il est devenu possible d’accorder un " +"accès en écriture à davantage de personnes ; en septembre 2000, 27 personnes " +"pouvaient enregistrer les modifications, soit quatre fois plus. Cela rend " +"possible des modifications à grande échelle qui ne seraient pas tentées si " +"elles devaient être filtrées par le petit groupe de développeurs principaux. " +"Par exemple, un jour, Peter Schneider-Kamp a eu l’idée de supprimer la " +"compatibilité K&R C et de convertir le code source C de Python en ANSI C. " +"Après avoir obtenu l’approbation de la liste de diffusion *python-dev*, il " +"s’est lancé dans une série d’archives qui ont duré environ une semaine, " +"d’autres développeurs l'ont rejoint et le travail a été fait. S’il n’y avait " +"eut que 5 personnes ayant un accès en écriture, cette tâche aurait " +"probablement été considérée comme « agréable, mais ne valant pas le temps ni " +"les efforts nécessaires » et cela ne se serait jamais fait." #: ../Doc/whatsnew/2.0.rst:83 msgid "" @@ -160,6 +187,19 @@ msgid "" "notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " "wrote an HTML screen-scraper that sends more useful messages." msgstr "" +"Le passage à l’utilisation des services de SourceForge a entraîné une " +"augmentation remarquable du rythme de développement. Les correctifs sont " +"maintenant soumis, commentés, révisés par des personnes autres que l’auteur " +"d’origine et échangés entre les personnes jusqu’à ce que le correctif soit " +"jugé utile. Les bogues sont suivis dans un emplacement central et peuvent " +"être attribués à une personne spécifique pour être corrigés. , et nous " +"pouvons compter le nombre de bogues ouverts pour mesurer les progrès. Cela " +"n’a pas coûté cher: les développeurs ont désormais plus de courrier " +"électronique à traiter, davantage de listes de diffusion à suivre et des " +"outils spéciaux ont dû être créés pour le nouvel environnement. Par exemple, " +"SourceForge envoie des messages électroniques de correctif et de " +"notification de bogues par défaut qui ne sont d’aucune utilité, Ka-Ping Yee " +"a donc créé un *scraper* HTML qui envoie des messages plus utiles." #: ../Doc/whatsnew/2.0.rst:95 msgid "" @@ -175,6 +215,19 @@ msgid "" "can still ignore the result of a vote, and approve or reject a change even " "if the community disagrees with him." msgstr "" +"La facilité d’ajout de code a provoqué quelques problèmes de croissance " +"initiaux, tels que le code a été archivé avant qu’il ne soit prêt ou sans " +"l’accord clair du groupe de développeurs. Le processus d’approbation qui a " +"émergé est quelque peu similaire à celui utilisé par le groupe Apache. Les " +"développeurs peuvent voter *+1*, *+0*, *-0* ou *-1* sur un patch; *+1* et " +"*-1* indiquent une acceptation ou un rejet, tandis que *+0* et *-0* " +"signifient que le développeur est généralement indifférent au changement, " +"bien qu’il présente une légère inclinaison positive ou négative. Le " +"changement le plus important par rapport au modèle Apache est que le vote " +"est essentiellement consultatif, permettant à Guido van Rossum, détenteur du " +"statut de « dictateur bienveillant à vie », de connaître l’opinion générale. " +"Il peut toujours ignorer le résultat d’un vote et approuver ou rejeter un " +"changement même si la communauté n’est pas d’accord avec lui." #: ../Doc/whatsnew/2.0.rst:106 msgid "" @@ -197,6 +250,11 @@ msgid "" "for Python. The PEP should provide a concise technical specification of the " "feature and a rationale for the feature." msgstr "" +"PEP signifie *Python Enhancement Proposition*. Une PEP est un document de " +"conception fournissant des informations à la communauté Python ou décrivant " +"une nouvelle fonctionnalité de Python. La PEP devrait fournir une " +"spécification technique concise de la fonctionnalité et une justification de " +"celle-ci." #: ../Doc/whatsnew/2.0.rst:125 msgid "" @@ -205,6 +263,11 @@ msgid "" "decisions that have gone into Python. The PEP author is responsible for " "building consensus within the community and documenting dissenting opinions." msgstr "" +"Nous souhaitons que les PEP soient les principaux mécanismes permettant de " +"proposer de nouvelles fonctionnalités, de recueillir les commentaires de la " +"communauté sur un problème et de documenter les décisions de conception " +"prises dans Python. L’auteur du PPE est chargé de créer un consensus au sein " +"de la communauté et de documenter les opinions divergentes." #: ../Doc/whatsnew/2.0.rst:130 msgid "" @@ -227,6 +290,10 @@ msgid "" "instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " "characters can be supported." msgstr "" +"La plus grande nouveauté de Python 2.0 est un nouveau type de données " +"fondamental: les chaînes Unicode. Unicode utilise des nombres à 16 bits pour " +"représenter des caractères au lieu du nombre à 8 bits utilisé par ASCII, ce " +"qui signifie que 65 536 caractères distincts peuvent être pris en charge." #: ../Doc/whatsnew/2.0.rst:148 msgid "" @@ -237,6 +304,13 @@ msgid "" "was written up as :pep:`100`, \"Python Unicode Integration\". This article " "will simply cover the most significant points about the Unicode interfaces." msgstr "" +"La dernière interface de prise en charge Unicode a été mise au point après " +"de nombreuses discussions souvent houleuses sur la liste de diffusion " +"*python-dev*, et principalement implémentée par Marc-André Lemburg, basée " +"sur une implémentation de type chaîne Unicode de Fredrik Lundh. Une " +"explication détaillée de l’interface a été écrite ainsi :pep:" +"`100`, \"Intégration Python Unicode\". Cet article couvrira simplement les " +"points les plus significatifs sur les interfaces Unicode." #: ../Doc/whatsnew/2.0.rst:155 msgid "" @@ -246,6 +320,13 @@ msgid "" "The existing ``\\xHHHH`` escape sequence can also be used, and octal escapes " "can be used for characters up to U+01FF, which is represented by ``\\777``." msgstr "" +"Dans le code source Python, les chaînes Unicode sont écrites sous la forme " +"``u\"string\"``. Les caractères Unicode arbitraires peuvent être écrits en " +"utilisant une nouvelle séquence d'échappement, ``\\uHHHH``, où *HHHH* est un " +"nombre hexadécimal à 4 chiffres de 0000 à FFFF. La séquence d'échappement ``" +"\\xHHHH`` peut également être utilisée, et les échappements octaux peuvent " +"être utilisés pour les caractères allant jusqu'à U+01FF, représenté par ``" +"\\777``." #: ../Doc/whatsnew/2.0.rst:161 msgid "" @@ -260,12 +341,27 @@ msgid "" "installation by calling the ``sys.setdefaultencoding(encoding)`` function in " "a customized version of :file:`site.py`." msgstr "" +"Les chaînes Unicode, tout comme les chaînes ordinaires, sont un type de " +"séquence immuable. Ils peuvent être indexés et tranchés, mais pas modifiés " +"en place. Les chaînes Unicode ont une méthode ``encoder([encoding])`` qui " +"renvoie une chaîne de 8 bits dans l’encodage souhaité. Les codages sont " +"nommés par des chaînes, telles que ``’ascii’``, ``’utf-8’``, " +"``’iso-8859-1’``, ou autre chose. Une API de codec est définie pour " +"l’implémentation et l’enregistrement de nouveaux codages disponibles dans " +"tout un programme Python. Si aucun codage n’est spécifié, le codage par " +"défaut est généralement du code ASCII 7-bits, bien qu’il puisse être modifié " +"pour votre installation Python en appelant la fonction ``sys." +"setdefaultencoding (encoding)`` dans une version personnalisée de :file:" +"`site.py`." #: ../Doc/whatsnew/2.0.rst:172 msgid "" "Combining 8-bit and Unicode strings always coerces to Unicode, using the " "default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." msgstr "" +"La combinaison de chaînes 8 bits et Unicode est toujours forcée en Unicode, " +"à l’aide du codage ASCII par défaut; le résultat de ``’a’ + u’bc’`` est " +"``u’abc’``." #: ../Doc/whatsnew/2.0.rst:175 msgid "" @@ -301,6 +397,14 @@ msgid "" "errors to be silently ignored and ``'replace'`` uses U+FFFD, the official " "replacement character, in case of any problems." msgstr "" +"``unicode(string [, encoding] [, errors] )`` crée une chaîne Unicode à " +"partir d’une chaîne de 8 bits. ``encoding`` est une chaîne nommant le codage " +"à utiliser. Le paramètre ``errors`` spécifie le traitement des caractères " +"non valides pour l’ encodage en cours; en passant ``’strict’`` comme valeur, " +"une exception est générée pour toute erreur de codage, alors que " +"``’ignore’`` fait en sorte que les erreurs soient ignorées en silence et que " +"``’replace’`` utilise U+FFFD, caractère de remplacement officiel, en cas de " +"problème." #: ../Doc/whatsnew/2.0.rst:192 msgid "" @@ -310,6 +414,12 @@ msgid "" "built-ins; if you find a built-in function that accepts strings but doesn't " "accept Unicode strings at all, please report it as a bug.)" msgstr "" +"L’instruction ``exec`` et divers éléments intégrés tels que ``eval()``, " +"``getattr()`` et ``setattr()`` accepteront également les chaînes Unicode " +"ainsi que les chaînes ordinaires. (Il est possible que le processus de " +"résolution de ce problème ait échappé à certaines fonctions intégrées ; si " +"vous trouvez une fonction intégrée qui accepte les chaînes mais n’accepte " +"pas les chaînes Unicode, signalez-la comme un bogue.)" #: ../Doc/whatsnew/2.0.rst:198 msgid "" @@ -319,6 +429,12 @@ msgid "" "it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " "meaning that U+0660 is an Arabic number." msgstr "" +"Un nouveau module, :mod:`unicodedata`, fournit une interface aux propriétés " +"de caractère Unicode. Par exemple, ``unicodedata.category(u'A')`` renvoie la " +"chaîne de 2 caractères « Lu », le « L » désignant une lettre et « u » " +"signifiant qu’il s’agit d’une majuscule. ``unicodedata." +"bidirectional(u'\\u0660')`` renvoie « AN », ce qui signifie que U+0660 est " +"un nombre arabe." #: ../Doc/whatsnew/2.0.rst:204 msgid "" @@ -327,6 +443,11 @@ msgid "" "most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" "element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" +"Le module :mod:`codecs` contient des fonctions pour rechercher les codages " +"existants et en enregistrer de nouveaux. À moins que vous ne souhaitiez " +"implémenter un nouvel encodage, vous utiliserez le plus souvent la fonction " +"``codecs.lookup(encoding)``, qui renvoie un n-uplet à 4 éléments : " +"``(encode_func, decode_func, stream_reader, stream_writer)``." #: ../Doc/whatsnew/2.0.rst:209 msgid "" @@ -336,6 +457,11 @@ msgid "" "encoding, and *length* tells you how much of the Unicode string was " "converted." msgstr "" +"*encode_func* est une fonction qui prend une chaîne Unicode, et renvoie un n-" +"uplet de longueur 2 ``(string, length)``. *string* est une chaîne de " +"caractères à 8 bits contenant une partie (ou la totalité) de la chaîne " +"Unicode convertie en codage donné, et *length* vous indique le nombre de " +"caractères de la chaîne qui ont été convertis." #: ../Doc/whatsnew/2.0.rst:214 msgid "" @@ -344,6 +470,11 @@ msgid "" "Unicode string *ustring* and the integer *length* telling how much of the 8-" "bit string was consumed." msgstr "" +"*decode_func* est l’opposé de *encode_func*, en prenant une chaîne de " +"caractères à 8 bits et le retour d’un n-uplet de longueur 2 ``(ustring, " +"longueur)``, composé de la chaîne Unicode résultante *ustring* et l’entier " +"*length* indiquant combien de caractères de la chaîne de caractères à 8 bits " +"ont été consommés." #: ../Doc/whatsnew/2.0.rst:219 msgid "" @@ -352,6 +483,11 @@ msgid "" "meth:`readline`, and :meth:`readlines` methods. These methods will all " "translate from the given encoding and return Unicode strings." msgstr "" +"*stream_reader* est une classe qui prend en charge le décodage de l’entrée " +"d’un flux. *stream_reader(file_obj)* renvoie un objet qui prend en charge " +"les méthodes :meth:`read`, :meth:`readline` et :meth:`readlines`. Ces " +"méthodes se traduisent toutes à partir de l’encodage donné et retourneront " +"une chaînes de caractère Unicode." #: ../Doc/whatsnew/2.0.rst:224 msgid "" @@ -360,6 +496,11 @@ msgid "" "`write` and :meth:`writelines` methods. These methods expect Unicode " "strings, translating them to the given encoding on output." msgstr "" +"De même, *stream_writer* est une classe qui prend en charge le codage de " +"sortie d’un flux. *stream_writer(file_obj)* renvoie un objet qui prend en " +"charge les méthodes :meth:`write` et :meth:`writelines`. Ces méthodes " +"prennent en entrée des chaînes Unicode, qu'elles renvoient, traduites à " +"l'encodage donné, sur la sortie." #: ../Doc/whatsnew/2.0.rst:229 msgid "" @@ -391,6 +532,12 @@ msgid "" "future version of Python may drop support for 8-bit strings and provide only " "Unicode strings." msgstr "" +"Une option de ligne de commande ``-U`` a été ajoutée, ce qui fait que le " +"compilateur Python interprète toutes les chaînes de caractères comme des " +"chaînes de caractères Unicode. Ceci est destiné à être utilisé dans les " +"tests et rendre votre code Python compatible avec les versions futures, car " +"une version future de Python peut abandonner la prise en charge des chaînes " +"de caractères 8-bits et fournir uniquement des chaînes de caractères Unicode." #: ../Doc/whatsnew/2.0.rst:262 msgid "List Comprehensions" @@ -405,6 +552,13 @@ msgid "" "might want to pull out all the strings containing a given substring, or " "strip off trailing whitespace from each line." msgstr "" +"Les listes sont un type de données crucial dans Python, et de nombreux " +"programmes manipulent une liste à un moment donné. Deux opérations communes " +"sur les listes sont de boucler sur elles, soit de choisir les éléments qui " +"répondent à un certain critère, ou d’appliquer une certaine fonction à " +"chaque élément. Par exemple, à partir d’une liste de chaînes de caractères, " +"vous pouvez retirer toutes les chaînes contenant une sous-chaîne donnée, ou " +"enlever les espaces de chaque ligne." #: ../Doc/whatsnew/2.0.rst:271 msgid "" @@ -417,6 +571,15 @@ msgid "" "paragraph, finding all the strings in the list containing a given " "substring. You could write the following to do it::" msgstr "" +"Les fonctions existantes :func:`map` et :func:`filter` peuvent être " +"utilisées à cette fin, mais elles nécessitent une fonction en leurs " +"arguments. C’est très bien s’il y a une fonction intégrée existante qui " +"peut être passé directement, mais s’il n’y a pas, vous devez créer une " +"petite fonction pour faire le travail requis, et les règles de portée de " +"Python rendent le résultat laid si la petite fonction a besoin " +"d’informations supplémentaires. Prenons le premier exemple du paragraphe " +"précédent, en trouvant toutes les chaînes de la liste contenant une sous-" +"chaîne donnée. Vous pouvez écrire ce qui suit pour le faire::" #: ../Doc/whatsnew/2.0.rst:286 msgid "" @@ -424,6 +587,10 @@ msgid "" "anonymous function created by the :keyword:`lambda` expression knows what " "substring is being searched for. List comprehensions make this cleaner::" msgstr "" +"En raison des règles de portée de Python, un argument par défaut est utilisé " +"de sorte que la fonction anonyme créée par l’expression :keyword:`lambda` " +"sait quelle sous-chaîne est recherchée. Les listes en compréhension rendent " +"ceci plus propre :" #: ../Doc/whatsnew/2.0.rst:292 msgid "List comprehensions have the form::" @@ -439,6 +606,13 @@ msgid "" "keyword:`!if` clause is optional; if present, *expression* is only evaluated " "and added to the result if *condition* is true." msgstr "" +"Le :keyword:`!for`…\\ :keyword:`!in` clauses contiennent les séquences à " +"itérer. Les séquences n’ont pas à être de la même longueur, parce qu’elles " +"ne sont *pas* itérées en parallèle, mais de gauche à droite; cela est " +"expliqué plus clairement dans les paragraphes suivants. Les éléments de la " +"liste générée seront les valeurs successives de l’expression. La clause " +"finale :keyword:`!if` clause est facultative ; si présent, l’*expression* " +"n’est évaluée et ajoutée au résultat que si la *condition* est vraie." #: ../Doc/whatsnew/2.0.rst:307 msgid "" @@ -455,6 +629,10 @@ msgid "" "all the sequences. If you have two lists of length 3, the output list is 9 " "elements long::" msgstr "" +"Cela signifie que lorsqu’il y a plusieurs :keyword:`!for`…\\ :keyword:`!in` " +"clauses, la liste résultante sera égale au produit des longueurs de toutes " +"les séquences. Si vous avez deux listes de longueur 3, la liste de sortie " +"est de longueur 9::" #: ../Doc/whatsnew/2.0.rst:330 msgid "" @@ -462,6 +640,10 @@ msgid "" "creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" +"Afin de ne pas introduire une ambiguïté dans la grammaire de Python, " +"*expression* doit être encadrée par des parenthèses si elle produit un n-" +"uplet. La première compréhension de liste ci-dessous n'est pas valide " +"syntaxiquement, tandis que la seconde l'est ::" #: ../Doc/whatsnew/2.0.rst:339 msgid "" @@ -471,10 +653,16 @@ msgid "" "comprehension patch, which was then discussed for a seemingly endless time " "on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" +"Le concept des liste en compréhension provient à l’origine du langage de " +"programmation fonctionnelle Haskell (https://www.haskell.org). Greg Ewing a " +"plaidé le plus efficacement pour les ajouter à Python et a écrit le patch de " +"compréhension de liste initiale, qui a ensuite été discuté pendant un temps " +"apparemment sans fin sur la liste de diffusion *python-dev* et maintenu à " +"jour par Skip Montanaro." #: ../Doc/whatsnew/2.0.rst:349 msgid "Augmented Assignment" -msgstr "" +msgstr "Opérateurs d’affectation augmentées" #: ../Doc/whatsnew/2.0.rst:351 msgid "" @@ -484,6 +672,11 @@ msgid "" "value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " "= a + 2``." msgstr "" +"Les opérateurs d’affectation soudées, une autre fonctionnalité demandée " +"depuis longtemps, ont été ajoutés à Python 2.0. Les opérateurs " +"d’affectations augmentées comprennent ``+=``, ``-=``, ``*=`` et ainsi de " +"suite. Par exemple, l’instruction ``a += 2`` incrémente la valeur de la " +"variable ``a`` par 2, équivalente à l’opération ``a = a + 2`` ." #: ../Doc/whatsnew/2.0.rst:356 msgid "" @@ -494,6 +687,13 @@ msgid "" "following :class:`Number` class stores a number and supports using += to " "create a new instance with an incremented value." msgstr "" +"La liste complète des opérateurs d’affectations pris en charge est ``+=``, " +"``-=``, ``*=``, ``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, et " +"``<<=``. Les classes Python peuvent remplacer les opérateurs d’affectations " +"augmentées en définissant des méthodes nommées :meth:`__iadd__`, :meth:" +"`__isub__`, etc. Par exemple, la classe :class:`Number` stocke un nombre et " +"prend en charge l’utilisation de += en créant une nouvelle instance avec une " +"valeur incrémentée." #: ../Doc/whatsnew/2.0.rst:377 msgid "" @@ -502,6 +702,10 @@ msgid "" "value; this return value is bound as the new value of the variable on the " "left-hand side." msgstr "" +"La méthode spéciale :meth:`__iadd__` est appelée avec la valeur de " +"l’incrément, et doit renvoyer une nouvelle instance avec une valeur " +"correctement modifiée ; cette valeur de rendement est liée comme la nouvelle " +"valeur de la variable sur le côté gauche." #: ../Doc/whatsnew/2.0.rst:381 msgid "" diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 4e71196e4..a1d829797 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -327,7 +327,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:331 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Import Modules from Zip Archives" #: ../Doc/whatsnew/2.3.rst:329 msgid "" @@ -786,7 +786,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` — Nouveaux crochets d'importation" #: ../Doc/whatsnew/2.3.rst:761 msgid "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index 90449a2e7..4f85cd2d8 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -595,6 +595,9 @@ msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"Ces changements cumulés transforment les générateurs de producteurs " +"unidirectionnels d'information vers un statut hybride à la fois producteur " +"et consommateur." #: ../Doc/whatsnew/2.5.rst:518 msgid "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index ced585f85..b90566310 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -882,7 +882,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:817 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/whatsnew/2.6.rst:817 msgid "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 7cee509a3..3b4361a8f 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -1956,7 +1956,7 @@ msgstr "" #: ../Doc/whatsnew/2.7.rst:1752 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" #: ../Doc/whatsnew/2.7.rst:1763 msgid "" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index b2018ef98..9feb8223c 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -1258,7 +1258,7 @@ msgstr "" #: ../Doc/whatsnew/3.0.rst:884 msgid "Performance" -msgstr "" +msgstr "Performances" #: ../Doc/whatsnew/3.0.rst:886 msgid "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 5f4cd34d5..9547dc3bd 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -2729,7 +2729,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`)." diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index 2b0f4c3ae..713f2f41d 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -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 "" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index 9fdfab206..9801125ab 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -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:" diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index bd1069fb7..4c1a0be9c 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -40,7 +40,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:" diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index 50cf517a9..b00037c70 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -20,7 +20,7 @@ msgstr "" #: ../Doc/whatsnew/3.7.rst:0 msgid "Editor" -msgstr "" +msgstr "Rédacteur" #: ../Doc/whatsnew/3.7.rst:5 msgid "Elvis Pranskevichus "