From c204eb0a051e7d756170311f8b6cc0e48dd9a696 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 18 Jan 2024 22:34:42 +0000 Subject: [PATCH] poursuite de la traduction de email (#178) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/178 Reviewed-by: Julien Palard Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- library/email.generator.po | 180 ++++++++++++++++++++++++++++++++-- library/email.parser.po | 194 +++++++++++++++++++++++++++++++++++-- 2 files changed, 354 insertions(+), 20 deletions(-) diff --git a/library/email.generator.po b/library/email.generator.po index 0d87ce25..c0c3266f 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -6,22 +6,22 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2024-01-18 22:28+0100\n" +"Last-Translator: Christophe Nanteuil \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 3.2.2\n" #: library/email.generator.rst:2 msgid ":mod:`email.generator`: Generating MIME documents" -msgstr "" +msgstr ":mod:`email.generator` : génération de documents MIME" #: library/email.generator.rst:7 -#, fuzzy msgid "**Source code:** :source:`Lib/email/generator.py`" -msgstr "**Code source :** :source:`Lib/email/iterators.py`" +msgstr "**Code source :** :source:`Lib/email/igenerator.py`" #: library/email.generator.rst:11 msgid "" @@ -32,6 +32,12 @@ msgid "" "console. Taking a message object structure and producing a serialized " "representation is the job of the generator classes." msgstr "" +"L'une des tâches les plus courantes consiste à générer la version plate " +"(sérialisée) du message électronique représenté par une structure d'objet " +"message. Vous devez le faire si vous voulez envoyer votre message via :meth:" +"`smtplib.SMTP.sendmail` ou le module :mod:`nntplib`, ou afficher le message " +"sur la console. Prendre une structure d'objet message et produire une " +"représentation sérialisée est le travail des classes génératrices." #: library/email.generator.rst:18 msgid "" @@ -49,6 +55,20 @@ msgid "" "changes to the :class:`~email.message.EmailMessage` object as defaults are " "filled in.)" msgstr "" +"Comme avec le module :mod:`email.parser`, vous n'êtes pas limité aux " +"fonctionnalités du générateur fourni ; vous pourriez en écrire un à partir " +"de zéro vous-même. Cependant, le générateur fourni sait comment générer la " +"plupart des e-mails d'une manière conforme aux normes, est conçu pour gérer " +"correctement les e-mails MIME et non MIME, et pour que les opérations (sur " +"des suites d'octets) d'analyse et de génération soient inverses, en " +"supposant que la même :mod:`~email.policy` est utilisée pour les deux. " +"Autrement dit, l'analyse du flux d'octets sérialisé via la classe :class:" +"`~email.parser.BytesParser` puis la régénération du flux d'octets sérialisé " +"à l'aide de :class:`BytesGenerator` devrait produire une sortie identique à " +"l'entrée [#]_ (d'un autre côté, l'utilisation du générateur sur un :class:" +"`~email.message.EmailMessage` construit par programme peut entraîner des " +"modifications de l'objet :class:`~email.message.EmailMessage` car les " +"valeurs par défaut sont renseignées)." #: library/email.generator.rst:32 msgid "" @@ -59,6 +79,13 @@ msgid "" "Content Transfer Encoding techniques for encoding email messages for " "transport over channels that are not \"8 bit clean\"." msgstr "" +"La classe :class:`Generator` peut être utilisée pour aplatir un message dans " +"une représentation sérialisée textuelle (par opposition à binaire), mais " +"comme Unicode ne peut pas représenter directement des données binaires, le " +"message est nécessairement transformé en quelque chose qui ne contient que " +"des caractères ASCII, en utilisant les techniques standard de codage de " +"transfert de contenu RFC pour le codage des messages électroniques pour le " +"transport sur des canaux qui ne sont pas « complétement 8 bits »." #: library/email.generator.rst:39 msgid "" @@ -66,6 +93,9 @@ msgid "" "`Generator` disables header folding for message parts of type ``multipart/" "signed`` and all subparts." msgstr "" +"Pour s'adapter au traitement reproductible des messages signés SMIME :class:" +"`Generator` ne raccourcit pas les en-têtes pour les parties de message de " +"type ``multipart/signed`` et toutes les sous-parties." #: library/email.generator.rst:47 msgid "" @@ -74,6 +104,11 @@ msgid "" "to the :meth:`write` method, to the :term:`file-like object` *outfp*. " "*outfp* must support a ``write`` method that accepts binary data." msgstr "" +"Renvoie un objet :class:`BytesGenerator` qui écrit tout message fourni à la " +"méthode :meth:`flatten`, ou tout texte encodé par *surrogateescape* fourni à " +"la méthode :meth:`write`, dans le :term:`objet simili-fichier ` *outfp*. *outfp* doit disposer d'une méthode ``write`` qui accepte " +"les données binaires." #: library/email.generator.rst:153 msgid "" @@ -87,6 +122,15 @@ msgid "" "`WHY THE CONTENT-LENGTH FORMAT IS BAD `_)." msgstr "" +"Si l'option *mangle_from_* est ``True``, place un caractère ``>`` devant " +"toute ligne du corps commençant par la chaîne exacte ``\"From \"``, c'est-à-" +"dire une ligne commençant par ``From`` suivi par une espace. *mangle_from_* " +"prend par défaut la valeur du paramètre :attr:`~email.policy.Policy." +"mangle_from_` de la *policy* (qui est ``True`` pour la politique :data:" +"`~email.policy.compat32` et ``False`` pour tous les autres). *mangle_from_* " +"est destiné à être utilisé lorsque les messages sont stockés au format Unix " +"*mbox* (voir :mod:`mailbox` et `WHY THE CONTENT-LENGTH FORMAT IS BAD " +"`_)." #: library/email.generator.rst:163 msgid "" @@ -95,6 +139,10 @@ msgid "" "*manheaderlen* is ``None`` (the default), wrap headers and other message " "lines according to the *policy* settings." msgstr "" +"Si *maxheaderlen* n'est pas ``None``, raccourcit toutes les lignes d'en-tête " +"qui sont plus longues que *maxheaderlen*, ou si ``0``, ne raccourcit aucun " +"en-tête. Si *manheaderlen* est ``None`` (valeur par défaut), formate les en-" +"têtes et autres lignes de message en fonction des paramètres de *policy*." #: library/email.generator.rst:168 msgid "" @@ -104,16 +152,26 @@ msgid "" "object passed to ``flatten`` to control the message generation. See :mod:" "`email.policy` for details on what *policy* controls." msgstr "" +"Si *policy* est spécifiée, utilise cette politique pour contrôler la " +"génération des messages. Si *policy* est ``None`` (par défaut), utilise la " +"politique associée à l'objet :class:`~email.message.Message` ou :class:" +"`~email.message.EmailMessage` passée à ``flatten`` pour contrôler la " +"génération des messages. Voir :mod:`email.policy` pour plus de détails sur " +"ce que *policy* contrôle." +# suit un : #: library/email.generator.rst:174 msgid "Added the *policy* keyword." -msgstr "" +msgstr "ajout du mot-clé *policy*." +# suit un : #: library/email.generator.rst:176 msgid "" "The default behavior of the *mangle_from_* and *maxheaderlen* parameters is " "to follow the policy." msgstr "" +"le comportement par défaut des paramètres *mangle_from_* et *maxheaderlen* " +"est de suivre la politique." #: library/email.generator.rst:83 msgid "" @@ -121,6 +179,9 @@ msgid "" "*msg* to the output file specified when the :class:`BytesGenerator` instance " "was created." msgstr "" +"Affiche la représentation textuelle de la structure de l'objet message dont " +"la racine est *msg* dans le fichier de sortie spécifié lors de la création " +"de l'instance :class:`BytesGenerator`." #: library/email.generator.rst:87 msgid "" @@ -137,6 +198,19 @@ msgid "" "bytes in headers using the MIME ``unknown-8bit`` character set, thus " "rendering them RFC-compliant." msgstr "" +"Si l'option :attr:`~email.policy.Policy.cte_type` de :mod:`~email.policy` " +"est ``8bit`` (valeur par défaut), copie tous les en-têtes du message analysé " +"d'origine qui n'ont pas été modifiés en sortie avec tous les octets dont le " +"bit de poids fort identique à l'original, et conserve le :mailheader:" +"`Content-Transfer-Encoding` non-ASCII de toutes les parties du corps qui en " +"ont. Si ``cte_type`` est ``7bit``, convertit les octets avec le bit de poids " +"fort défini selon les besoins en utilisant un :mailheader:`Content-Transfer-" +"Encoding` compatible ASCII. Autrement dit, transforme les parties non ASCII :" +"mailheader:`Content-Transfer-Encoding` (:mailheader:`Content-Transfer-" +"Encoding: 8bit`) en un :mailheader:`Content-Transfer-Encoding` compatible " +"ASCII, et encode les octets non ASCII non valides de la RFC dans les en-" +"têtes utilisant le jeu de caractères MIME ``unknown-8bit``, les rendant " +"ainsi conformes à la RFC." #: library/email.generator.rst:104 library/email.generator.rst:197 msgid "" @@ -146,6 +220,12 @@ msgid "" "header, craft a standard one. The default is ``False``. Note that for " "subparts, no envelope header is ever printed." msgstr "" +"Si *unixfrom* est ``True``, affiche le délimiteur d'en-tête d'enveloppe " +"utilisé par le format de boîte aux lettres Unix (voir :mod:`mailbox`) avant " +"le premier des en-têtes :rfc:`5322` de l'objet message racine. Si l'objet " +"racine n'a pas d'en-tête d'enveloppe, en crée un standard. La valeur par " +"défaut est ``False``. Notez que pour les sous-parties, aucun en-tête " +"d'enveloppe n'est jamais imprimé." #: library/email.generator.rst:110 library/email.generator.rst:203 msgid "" @@ -153,12 +233,17 @@ msgid "" "the lines of the flattened message. If *linesep* is ``None`` (the default), " "use the value specified in the *policy*." msgstr "" +"Si *linesep* n'est pas ``None``, l'utilise comme caractère de séparation " +"entre toutes les lignes du message aplati. Si *linesep* est ``None`` (valeur " +"par défaut), utilise la valeur spécifiée dans la *policy*." #: library/email.generator.rst:119 msgid "" "Return an independent clone of this :class:`BytesGenerator` instance with " "the exact same option settings, and *fp* as the new *outfp*." msgstr "" +"Renvoie un clone indépendant de cette instance :class:`BytesGenerator` avec " +"exactement les mêmes paramètres d'option, et *fp* comme nouveau *outfp*." #: library/email.generator.rst:125 msgid "" @@ -166,6 +251,9 @@ msgid "" "handler, and pass it to the *write* method of the *outfp* passed to the :" "class:`BytesGenerator`'s constructor." msgstr "" +"Encode *s* en utilisant le codec ``ASCII`` et le gestionnaire d'erreurs " +"``surrogateescape``, et le passe à la méthode *write* du *outfp* passé au " +"constructeur de :class:`BytesGenerator`." #: library/email.generator.rst:130 msgid "" @@ -175,6 +263,11 @@ msgid "" "of a serialized binary representation of a message object. For more detail, " "see :mod:`email.message`." msgstr "" +"Par commodité, :class:`~email.message.EmailMessage` fournit les méthodes :" +"meth:`~email.message.EmailMessage.as_bytes` et ``bytes(aMessage)`` (alias :" +"meth:`~email.message .EmailMessage.__bytes__`), qui simplifient la " +"génération d'une représentation binaire sérialisée d'un objet message. Pour " +"plus de détails, voir :mod:`email.message`." #: library/email.generator.rst:137 msgid "" @@ -186,6 +279,14 @@ msgid "" "not \"8 bit clean\". In other words, most applications will want to be " "using :class:`BytesGenerator`, and not :class:`Generator`." msgstr "" +"Comme les chaînes ne peuvent pas représenter des données binaires, la " +"classe :class:`Generator` doit convertir toutes les données binaires de tout " +"message qu'elle aplatit en un format compatible ASCII, en les convertissant " +"en un :mailheader:`Content-Transfer_Encoding` compatible ASCII. En utilisant " +"la terminologie des RFC des e-mails, vous pouvez considérer cela comme un :" +"class:`Generator` sérialisant vers un flux d'entrées-sorties qui n'est pas " +"« complètement 8 bits ». En d'autres termes, la plupart des applications " +"voudront utiliser :class:`BytesGenerator` et pas :class:`Generator`." #: library/email.generator.rst:148 msgid "" @@ -194,6 +295,11 @@ msgid "" "method, to the :term:`file-like object` *outfp*. *outfp* must support a " "``write`` method that accepts string data." msgstr "" +"Renvoie un objet :class:`Generator` qui écrit tout message fourni à la " +"méthode :meth:`flatten`, ou tout texte fourni à la méthode :meth:`write`, " +"dans l':term:`objet simili-fichier ` *outfp*. *outfp* doit " +"prendre en charge une méthode ``write`` qui accepte les données de type " +"chaîne." #: library/email.generator.rst:182 msgid "" @@ -201,6 +307,9 @@ msgid "" "*msg* to the output file specified when the :class:`Generator` instance was " "created." msgstr "" +"Affiche la représentation textuelle de la structure de l'objet message dont " +"la racine est *msg* dans le fichier de sortie spécifié lors de la création " +"de l'instance :class:`Generator`." #: library/email.generator.rst:186 msgid "" @@ -214,18 +323,33 @@ msgid "" "Encoding`, and encode RFC-invalid non-ASCII bytes in headers using the MIME " "``unknown-8bit`` character set, thus rendering them RFC-compliant." msgstr "" +"Si l'option :mod:`~email.policy` :attr:`~email.policy.Policy.cte_type` est " +"``8bit``, génère le message comme si l'option était définie sur ``7bit`` " +"(c'est nécessaire car les chaînes ne peuvent pas représenter des octets non " +"ASCII). Convertit tous les octets avec le bit de poids fort défini selon les " +"besoins à l'aide d'un :mailheader:`Content-Transfer-Encoding` compatible " +"ASCII. Autrement dit, transforme les parties non ASCII :mailheader:`Content-" +"Transfer-Encoding` (:mailheader:`Content-Transfer-Encoding: 8bit`) en un :" +"mailheader:`Content-Transfer-Encoding` compatible ASCII, et encode les " +"octets non ASCII non valides RFC dans les en-têtes utilisant le jeu de " +"caractères MIME ``unknown-8bit``, les rendant ainsi conformes à la RFC." +# suit un : #: library/email.generator.rst:209 msgid "" "Added support for re-encoding ``8bit`` message bodies, and the *linesep* " "argument." msgstr "" +"ajout de la prise en charge du ré-encodage des corps de message ``8bit`` et " +"de l'argument *linesep*." #: library/email.generator.rst:216 msgid "" "Return an independent clone of this :class:`Generator` instance with the " "exact same options, and *fp* as the new *outfp*." msgstr "" +"Renvoie un clone indépendant de cette instance :class:`Generator` avec " +"exactement les mêmes options, et avec *fp* comme nouveau *outfp*." #: library/email.generator.rst:222 msgid "" @@ -233,6 +357,10 @@ msgid "" "`Generator`'s constructor. This provides just enough file-like API for :" "class:`Generator` instances to be used in the :func:`print` function." msgstr "" +"Écrit *s* dans la méthode *write* de *outfp* passé au constructeur de :class:" +"`Generator`. Cela fournit une API ressemblant suffisamment au type fichier " +"pour les instances de :class:`Generator` utilisées dans la fonction :func:" +"`print`." #: library/email.generator.rst:228 msgid "" @@ -242,6 +370,11 @@ msgid "" "of a formatted string representation of a message object. For more detail, " "see :mod:`email.message`." msgstr "" +"Par commodité, :class:`~email.message.EmailMessage` fournit les méthodes :" +"meth:`~email.message.EmailMessage.as_string` et ``str(aMessage)`` (alias :" +"meth:`~email.message .EmailMessage.__str__`), qui simplifient la génération " +"d'une représentation sous forme de chaîne formatée d'un objet message. Pour " +"plus de détails, voir :mod:`email.message`." #: library/email.generator.rst:235 msgid "" @@ -251,6 +384,11 @@ msgid "" "represented in the output stream by a string derived from a template filled " "in with information about the part." msgstr "" +"Le module :mod:`email.generator` fournit également une classe dérivée, :" +"class:`DecodedGenerator`, qui ressemble à la classe de base :class:" +"`Generator`, sauf que les parties non-\\ :mimetype:`text` ne sont pas " +"sérialisées, mais sont plutôt représentées dans le flux de sortie par une " +"chaîne dérivée d'un modèle rempli d'informations sur la partie concernée." #: library/email.generator.rst:244 msgid "" @@ -261,54 +399,68 @@ msgid "" "*fmt* using information from the part and print the resulting filled-in " "string." msgstr "" +"Agit comme :class:`Generator`, sauf que pour toute sous-partie du message " +"transmise à :meth:`Generator.flatten`, si la sous-partie est de type " +"principal :mimetype:`text`, affiche la charge utile décodée de la sous-" +"partie, et si le type principal n'est pas :mimetype:`text`, au lieu de " +"l'afficher, remplit la chaîne *fmt* en utilisant les informations de la " +"partie et affiche la chaîne remplie résultante." #: library/email.generator.rst:251 msgid "" "To fill in *fmt*, execute ``fmt % part_info``, where ``part_info`` is a " "dictionary composed of the following keys and values:" msgstr "" +"Pour remplir *fmt*, exécute ``fmt % part_info``, où ``part_info`` est un " +"dictionnaire composé des clés et valeurs suivantes :" #: library/email.generator.rst:254 msgid "``type`` -- Full MIME type of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``type`` – Type MIME complet de la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:256 msgid "``maintype`` -- Main MIME type of the non-\\ :mimetype:`text` part" msgstr "" +"``maintype`` – Type MIME principal de la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:258 msgid "``subtype`` -- Sub-MIME type of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``subtype`` – Sous-type MIME de la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:260 msgid "``filename`` -- Filename of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``filename`` – Nom de fichier de la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:262 msgid "" "``description`` -- Description associated with the non-\\ :mimetype:`text` " "part" msgstr "" +"``description`` – Description associée à la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:264 msgid "" "``encoding`` -- Content transfer encoding of the non-\\ :mimetype:`text` part" msgstr "" +"``encoding`` – Encodage du contenu de la partie non-\\ :mimetype:`text`" #: library/email.generator.rst:266 msgid "If *fmt* is ``None``, use the following default *fmt*:" -msgstr "" +msgstr "Si *fmt* est ``None``, utilise le *fmt* par défaut suivant :" #: library/email.generator.rst:268 msgid "" "\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" msgstr "" +"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" #: library/email.generator.rst:270 msgid "" "Optional *_mangle_from_* and *maxheaderlen* are as with the :class:" "`Generator` base class." msgstr "" +"*_mangle_from_* et *maxheaderlen* sont optionnels et fonctionnent comme avec " +"la classe mère :class:`Generator`." #: library/email.generator.rst:275 msgid "Footnotes" @@ -325,3 +477,11 @@ msgid "" "parsing error recovery. It is a goal to fix these latter edge cases when " "possible." msgstr "" +"Cette déclaration suppose que vous utilisez le paramètre approprié pour " +"``unixfrom`` et qu'il n'y a pas de paramètres :mod:`policy` entraînant des " +"ajustements automatiques (par exemple, :attr:`~email.policy.Policy." +"refold_source` doit être ``none``, ce qui n'est *pas* la valeur par défaut). " +"Ce n'est pas non plus vrai à 100 %, car si le message n'est pas conforme aux " +"normes RFC, des informations sur le texte original sont parfois perdues lors " +"de la récupération d'erreur d'analyse. L'objectif est de résoudre ces " +"derniers cas extrêmes lorsque c'est possible." diff --git a/library/email.parser.po b/library/email.parser.po index 91748066..8997abd8 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -6,18 +6,18 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-01 16:00+0200\n" -"PO-Revision-Date: 2019-05-08 16:44+0200\n" -"Last-Translator: Mathieu Dupuy \n" +"PO-Revision-Date: 2024-01-18 22:43+0100\n" +"Last-Translator: Christophe Nanteuil \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 3.2.2\n" #: library/email.parser.rst:2 msgid ":mod:`email.parser`: Parsing email messages" -msgstr ":mod:`email.parser` : Analyser des e-mails" +msgstr ":mod:`email.parser` : analyser des e-mails" #: library/email.parser.rst:7 msgid "**Source code:** :source:`Lib/email/parser.py`" @@ -32,12 +32,12 @@ msgid "" "or they can be created by parsing a serialized representation of the email " "message." msgstr "" -"Les instances de messages peuvent être créées de deux façons : elles peuvent " +"Les instances de messages peuvent être créées de deux façons : elles peuvent " "être créées de toutes pièces en créant un objet :class:`~email.message." "message.EmailMessage`, en ajoutant des en-têtes en utilisant l'interface de " "dictionnaire, et en ajoutant un ou plusieurs corps de message en utilisant :" "meth:`~email.message.message.EmailMessage.set_content` et les méthodes " -"associées, ou ils peuvent être créées en analysant une représentation " +"associées, ou elles peuvent être créées en analysant une représentation " "sérialisée de l'e-mail." #: library/email.parser.rst:18 @@ -54,6 +54,18 @@ msgid "" "meth:`~email.message.EmailMessage.iter_parts`, and :meth:`~email.message." "EmailMessage.walk`." msgstr "" +"Le paquet :mod:`email` fournit un analyseur standard qui comprend la plupart " +"des structures de documents de courrier électronique, y compris les " +"documents MIME. Vous pouvez passer à l'analyseur un objet *bytes*, chaîne ou " +"fichier, et l'analyseur vous renverra l'instance racine :class:`~email." +"message.EmailMessage` de la structure de l'objet. Pour les messages simples " +"non MIME, la charge utile de cet objet racine sera probablement une chaîne " +"contenant le texte du message. Pour les messages MIME, la méthode :meth:" +"`~email.message.EmailMessage.is_multipart` de l'objet racine renvoie " +"``True``, et les sous-parties sont accessibles via les méthodes de " +"manipulation de la charge utile, telles que :meth:`~ email.message." +"EmailMessage.get_body`, :meth:`~email.message.EmailMessage.iter_parts` et :" +"meth:`~email.message.EmailMessage.walk`." #: library/email.parser.rst:30 msgid "" @@ -67,6 +79,15 @@ msgid "" "message incrementally, and only returns the root object when you close the " "parser." msgstr "" +"Il existe en fait deux interfaces d'analyseur disponibles, l'API :class:" +"`Parser` et l'API incrémentale :class:`FeedParser`. L'API :class:`Parser` " +"est plus utile si vous avez le texte entier du message en mémoire ou si le " +"message entier réside dans un fichier sur le système de fichiers. :class:" +"`FeedParser` est plus appropriée lorsque vous lisez le message à partir d'un " +"flux qui peut bloquer en attente d'une entrée supplémentaire (comme la " +"lecture d'un message électronique à partir d'un connecteur réseau). :class:" +"`FeedParser` peut consommer et analyser le message de manière incrémentielle " +"et ne renvoie l'objet racine que lorsque vous fermez l'analyseur." #: library/email.parser.rst:39 msgid "" @@ -77,6 +98,13 @@ msgid "" "custom parser can create message object trees any way it finds necessary by " "implementing custom versions of the appropriate :mod:`policy` methods." msgstr "" +"Notez que l'analyseur peut être étendu de manière limitée et, bien sûr, vous " +"pouvez implémenter votre propre analyseur complètement à partir de zéro. " +"Toute la logique qui relie l'analyseur intégré au paquet :mod:`email` et la " +"classe :class:`~email.message.EmailMessage` est incarnée dans la classe :mod:" +"`policy`, de sorte qu'un analyseur personnalisé peut créer des arborescences " +"d'objet message comme il le juge nécessaire en implémentant des versions " +"personnalisées des méthodes :mod:`policy` appropriées." #: library/email.parser.rst:49 msgid "FeedParser API" @@ -93,6 +121,15 @@ msgid "" "`BytesParser` API may be more convenient for such use cases. The semantics " "and results of the two parser APIs are identical." msgstr "" +":class:`BytesFeedParser`, importée du module :mod:`email.feedparser`, " +"fournit une API propice à l'analyse incrémentielle des messages " +"électroniques, adaptée à la lecture du texte d'un message électronique à " +"partir d'une source qui peut bloquer (comme un connecteur). :class:" +"`BytesFeedParser` peut bien sûr être utilisée pour analyser un message " +"électronique entièrement contenu dans un :term:`objet octets-compatible " +"`, une chaîne ou un fichier, mais l'API :class:" +"`BytesParser` peut être plus pratique dans ces utilisations. La sémantique " +"et les résultats des deux API d'analyseurs sont identiques." #: library/email.parser.rst:60 msgid "" @@ -106,10 +143,20 @@ msgid "" "it found in a message. See the :mod:`email.errors` module for the list of " "defects that it can find." msgstr "" +"L'API de :class:`BytesFeedParser` est simple ; vous créez une instance, " +"l'alimentez d'une suite d'octets jusqu'à ce qu'il n'y en ait plus pour " +"l'alimenter, puis fermez l'analyseur pour récupérer l'objet message racine. :" +"class:`BytesFeedParser` est extrêmement précise lors de l'analyse des " +"messages conformes aux normes, et elle fait un très bon travail d'analyse " +"des messages non conformes, fournissant des informations sur ce qu'elle " +"considère comme non approprié dans un message. Elle remplit l'attribut :attr:" +"`~email.message.EmailMessage.defects` d'un objet message avec une liste de " +"tous les problèmes trouvés dans un message. Voir le module :mod:`email." +"errors` pour la liste des défauts qu'elle peut trouver." #: library/email.parser.rst:70 msgid "Here is the API for the :class:`BytesFeedParser`:" -msgstr "Voici l’API pour :class:`BytesFeedParser` :" +msgstr "Voici l’API de :class:`BytesFeedParser` :" #: library/email.parser.rst:75 msgid "" @@ -118,6 +165,10 @@ msgid "" "message_factory` from the *policy*. Call *_factory* whenever a new message " "object is needed." msgstr "" +"Crée une instance :class:`BytesFeedParser`. *_factory* est un appelable " +"facultatif sans argument ; s'il n'est pas spécifié, elle utilise la :attr:" +"`~email.policy.Policy.message_factory` de la *policy*. Elle appelle " +"*_factory* chaque fois qu'un nouvel objet de message est nécessaire." #: library/email.parser.rst:80 msgid "" @@ -130,20 +181,32 @@ msgid "" "more information on what else *policy* controls, see the :mod:`~email." "policy` documentation." msgstr "" +"Si *policy* est spécifiée, elle utilise les règles spécifiées pour mettre à " +"jour la représentation du message. Si *policy* n'est pas définie, elle " +"utilise la stratégie :class:`compat32 `, qui " +"maintient la rétrocompatibilité avec la version Python 3.2 du paquet de " +"messagerie et fournit :class:`~email.message.Message` comme usine par " +"défaut. Toutes les autres stratégies fournissent :class:`~email.message." +"EmailMessage` comme *_factory* par défaut. Pour plus d'informations sur ce " +"que *policy* régit, consultez la documentation :mod:`~email.policy`." #: library/email.parser.rst:145 msgid "" "Note: **The policy keyword should always be specified**; The default will " "change to :data:`email.policy.default` in a future version of Python." msgstr "" +"Remarque : **Le paramètre nommé « policy » doit toujours être spécifié** ; " +"La valeur par défaut deviendra :data:`email.policy.default` dans une future " +"version de Python." +# suit un : #: library/email.parser.rst:122 msgid "Added the *policy* keyword." -msgstr "" +msgstr "ajout du paramètre nommé *policy*." #: library/email.parser.rst:95 msgid "*_factory* defaults to the policy ``message_factory``." -msgstr "" +msgstr "*_factory* utilise par défaut la politique ``message_factory``." #: library/email.parser.rst:100 msgid "" @@ -153,6 +216,12 @@ msgid "" "any of the three common line endings: carriage return, newline, or carriage " "return and newline (they can even be mixed)." msgstr "" +"Alimente l'analyseur avec plus de données. *data* doit être un :term:`objet " +"octets-compatible ` contenant une ou plusieurs lignes. " +"Les lignes peuvent être partielles et l'analyseur assemble correctement ces " +"lignes partielles. Les lignes peuvent avoir l'une des trois fins de ligne " +"courantes : retour chariot, nouvelle ligne ou retour chariot et nouvelle " +"ligne (elles peuvent même être mélangées)." #: library/email.parser.rst:109 msgid "" @@ -160,6 +229,9 @@ msgid "" "object. It is undefined what happens if :meth:`~feed` is called after this " "method has been called." msgstr "" +"Termine l'analyse de toutes les données précédemment alimentées et renvoie " +"l'objet message racine. Ce qui se passe si :meth:`~feed` est appelée après " +"l'appel de cette méthode n'est pas défini." #: library/email.parser.rst:116 msgid "" @@ -169,6 +241,11 @@ msgid "" "contain only ASCII text or, if :attr:`~email.policy.Policy.utf8` is " "``True``, no binary attachments." msgstr "" +"Fonctionne comme :class:`BytesFeedParser` sauf que l'entrée de la méthode :" +"meth:`~BytesFeedParser.feed` doit être une chaîne. Ceci est d'une utilité " +"limitée, car la seule façon pour qu'un tel message soit valide est qu'il ne " +"contienne que du texte ASCII ou, si :attr:`~email.policy.Policy.utf8` vaut " +"``True``, aucun binaire en pièce jointe." #: library/email.parser.rst:126 msgid "Parser API" @@ -187,6 +264,16 @@ msgid "" "do not attempt to parse the message body, instead setting the payload to the " "raw body." msgstr "" +"La classe :class:`BytesParser`, importée du module :mod:`email.parser`, " +"fournit une API qui peut être utilisée pour analyser un message lorsque le " +"contenu complet du message est disponible dans un :term:`objet octets-" +"compatible ` ou un fichier. Le module :mod:`email.parser` " +"fournit également :class:`Parser` pour l'analyse des chaînes et des " +"analyseurs d'en-tête uniquement, :class:`BytesHeaderParser` et :class:" +"`HeaderParser`, qui peuvent être utilisés si vous ne vous intéressez qu'aux " +"en-têtes du message. :class:`BytesHeaderParser` et :class:`HeaderParser` " +"peuvent être beaucoup plus rapides dans ces situations, car ils n'essaient " +"pas d'analyser le corps du message." #: library/email.parser.rst:141 msgid "" @@ -194,16 +281,21 @@ msgid "" "have the same meaning and semantics as the *_factory* and *policy* arguments " "of :class:`BytesFeedParser`." msgstr "" +"Crée une instance :class:`BytesParser`. Les arguments *_class* et *policy* " +"ont la même signification et la même sémantique que les arguments *_factory* " +"et *policy* de :class:`BytesFeedParser`." #: library/email.parser.rst:148 msgid "" "Removed the *strict* argument that was deprecated in 2.4. Added the " "*policy* keyword." msgstr "" +"suppression de l'argument *strict* qui était obsolète dans 2.4. Ajout du " +"paramètre nommé *policy*." #: library/email.parser.rst:200 library/email.parser.rst:280 msgid "*_class* defaults to the policy ``message_factory``." -msgstr "" +msgstr "*_class* utilise par défaut la politique ``message_factory``." #: library/email.parser.rst:156 msgid "" @@ -211,6 +303,9 @@ msgid "" "bytes, and return the message object. *fp* must support both the :meth:`~io." "IOBase.readline` and the :meth:`~io.IOBase.read` methods." msgstr "" +"Lit toutes les données de l'objet de type fichier binaire *fp*, analyse les " +"octets résultants et renvoie l'objet message. *fp* doit prendre en charge " +"les méthodes :meth:`~io.IOBase.readline` et :meth:`~io.IOBase.read`." #: library/email.parser.rst:161 msgid "" @@ -222,6 +317,13 @@ msgid "" "contain MIME-encoded subparts, including subparts with a :mailheader:" "`Content-Transfer-Encoding` of ``8bit``)." msgstr "" +"Les octets contenus dans *fp* doivent être formatés comme un bloc d'en-têtes " +"de style conforme à la :rfc:`5322` (ou, si :attr:`~email.policy.Policy.utf8` " +"est ``True``, à la :rfc:`6532`), éventuellement précédés d'un en-tête " +"d'enveloppe. Le bloc d'en-têtes se termine soit par la fin des données, soit " +"par une ligne blanche. Après le bloc d'en-têtes se trouve le corps du " +"message (qui peut contenir des sous-parties codées MIME, y compris des sous-" +"parties avec un :mailheader:`Content-Transfer-Encoding` de ``8bit``)." #: library/email.parser.rst:169 msgid "" @@ -229,6 +331,9 @@ msgid "" "reading the headers or not. The default is ``False``, meaning it parses the " "entire contents of the file." msgstr "" +"*headersonly* est un indicateur facultatif spécifiant s'il faut arrêter " +"l'analyse après avoir lu les en-têtes ou non. La valeur par défaut est " +"``False``, ce qui signifie qu'il analyse tout le contenu du fichier." #: library/email.parser.rst:176 msgid "" @@ -237,26 +342,38 @@ msgid "" "`bytes-like object` is equivalent to wrapping *bytes* in a :class:`~io." "BytesIO` instance first and calling :meth:`parse`." msgstr "" +"Semblable à la méthode :meth:`parse`, sauf qu'elle prend un :term:`objet " +"octets-compatible ` au lieu d'un objet de type fichier. " +"Appeler cette méthode sur un :term:`objet octets-compatible ` équivaut à envelopper *bytes* dans une instance :class:`~io." +"BytesIO` d'abord et à appeler :meth:`parse`." #: library/email.parser.rst:221 msgid "Optional *headersonly* is as with the :meth:`parse` method." msgstr "" +"L'utilisation de l'option *headersonly* est identique à son utilisation dans " +"la méthode :meth:`parse`." #: library/email.parser.rst:188 msgid "" "Exactly like :class:`BytesParser`, except that *headersonly* defaults to " "``True``." msgstr "" +"Exactement comme :class:`BytesParser`, sauf que *headersonly* par défaut est " +"``True``." #: library/email.parser.rst:196 msgid "" "This class is parallel to :class:`BytesParser`, but handles string input." msgstr "" +"Cette classe est semblable à :class:`BytesParser`, mais elle accepte une " +"chaîne en entrée." #: library/email.parser.rst:245 library/email.parser.rst:268 #: library/email.parser.rst:278 msgid "Removed the *strict* argument. Added the *policy* keyword." msgstr "" +"suppression de l'argument *strict*. Ajout de l'argument nommé *policy*." #: library/email.parser.rst:205 msgid "" @@ -265,12 +382,18 @@ msgid "" "the :meth:`~io.TextIOBase.readline` and the :meth:`~io.TextIOBase.read` " "methods on file-like objects." msgstr "" +"Lit toutes les données de l'objet de type fichier en mode texte *fp*, " +"analyse le texte résultant et renvoie l'objet message racine. *fp* doit " +"prendre en charge les méthodes :meth:`~io.TextIOBase.readline` et :meth:`~io." +"TextIOBase.read` sur les objets de type fichier." #: library/email.parser.rst:210 msgid "" "Other than the text mode requirement, this method operates like :meth:" "`BytesParser.parse`." msgstr "" +"Outre l'exigence du mode texte, cette méthode fonctionne comme :meth:" +"`BytesParser.parse`." #: library/email.parser.rst:216 msgid "" @@ -279,11 +402,17 @@ msgid "" "wrapping *text* in a :class:`~io.StringIO` instance first and calling :meth:" "`parse`." msgstr "" +"Similaire à la méthode :meth:`parse`, sauf qu'elle prend un objet chaîne au " +"lieu d'un objet de type fichier. Appeler cette méthode sur une chaîne " +"équivaut à envelopper *text* dans une instance :class:`~io.StringIO` d'abord " +"et à appeler :meth:`parse`." #: library/email.parser.rst:226 msgid "" "Exactly like :class:`Parser`, except that *headersonly* defaults to ``True``." msgstr "" +"Exactement comme :class:`Parser`, sauf que *headersonly* par défaut est " +"``True``." #: library/email.parser.rst:230 msgid "" @@ -291,6 +420,10 @@ msgid "" "such a common task, four functions are provided as a convenience. They are " "available in the top-level :mod:`email` package namespace." msgstr "" +"Étant donné que la création d'une structure d'objet message à partir d'une " +"chaîne ou d'un objet fichier est une tâche très courante, quatre fonctions " +"sont fournies par commodité. Elles sont disponibles dans l'espace de noms de " +"paquet de niveau supérieur :mod:`email`." #: library/email.parser.rst:239 msgid "" @@ -299,6 +432,10 @@ msgid "" "*policy* are interpreted as with the :class:`~email.parser.BytesParser` " "class constructor." msgstr "" +"Renvoie une structure d'objet message à partir d'un :term:`objet octets-" +"compatible `. C'est équivalent à ``BytesParser()." +"parsebytes(s)``. *_class* et *policy* (facultatifs) sont interprétés comme " +"pour le constructeur de classe :class:`~email.parser.BytesParser`." #: library/email.parser.rst:252 msgid "" @@ -307,6 +444,10 @@ msgid "" "*policy* are interpreted as with the :class:`~email.parser.BytesParser` " "class constructor." msgstr "" +"Renvoie une arborescence d'objets message à partir d'un :term:`objet fichier " +"` binaire ouvert. C'est équivalent à ``BytesParser()." +"parse(fp)``. *_class* et *policy* sont interprétés comme pour le " +"constructeur de classe :class:`~email.parser.BytesParser`." #: library/email.parser.rst:264 msgid "" @@ -314,6 +455,9 @@ msgid "" "``Parser().parsestr(s)``. *_class* and *policy* are interpreted as with " "the :class:`~email.parser.Parser` class constructor." msgstr "" +"Renvoie une structure d'objet message à partir d'une chaîne. C'est " +"équivalent à ``Parser().parsestr(s)``. *_class* et *policy* sont interprétés " +"comme avec le constructeur de classe :class:`~email.parser.Parser`." #: library/email.parser.rst:274 msgid "" @@ -321,12 +465,18 @@ msgid "" "This is equivalent to ``Parser().parse(fp)``. *_class* and *policy* are " "interpreted as with the :class:`~email.parser.Parser` class constructor." msgstr "" +"Renvoie une arborescence de structures d'objets messages à partir d'un :term:" +"`objet fichier ` ouvert. C'est équivalent à ``Parser()." +"parse(fp)``. *_class* et *policy* sont interprétés comme avec le " +"constructeur de classe :class:`~email.parser.Parser`." #: library/email.parser.rst:283 msgid "" "Here's an example of how you might use :func:`message_from_bytes` at an " "interactive Python prompt::" msgstr "" +"Voici un exemple d'utilisation :func:`message_from_bytes` dans une invite " +"Python interactive ::" #: library/email.parser.rst:291 msgid "Additional notes" @@ -343,6 +493,11 @@ msgid "" "for :meth:`~email.message.EmailMessage.is_multipart`, and :meth:`~email." "message.EmailMessage.iter_parts` will yield an empty list." msgstr "" +"La plupart des messages de type non-\\ :mimetype:`multipart` sont analysés " +"comme un seul objet de message avec une charge utile de type chaîne. Ces " +"objets renvoient ``False`` pour :meth:`~email.message.EmailMessage." +"is_multipart` et :meth:`~email.message.EmailMessage.iter_parts` donne une " +"liste vide." #: library/email.parser.rst:300 msgid "" @@ -352,6 +507,11 @@ msgid "" "EmailMessage.is_multipart`, and :meth:`~email.message.EmailMessage." "iter_parts` will yield a list of subparts." msgstr "" +"Tous les messages de type :mimetype:`multipart` sont analysés comme un objet " +"de message conteneur avec une liste d'objets de sous-messages pour leur " +"charge utile. Le message du conteneur externe renvoie ``True`` pour :meth:" +"`~email.message.EmailMessage.is_multipart` et :meth:`~email.message." +"EmailMessage.iter_parts` donne une liste de sous-parties." #: library/email.parser.rst:306 msgid "" @@ -362,6 +522,12 @@ msgid "" "The single element yielded by :meth:`~email.message.EmailMessage.iter_parts` " "will be a sub-message object." msgstr "" +"La plupart des messages avec un type de contenu de :mimetype:`message/\\*` " +"(tels que :mimetype:`message/delivery-status` et :mimetype:`message/rfc822`) " +"sont également analysés en tant qu'objet conteneur contenant une charge " +"utile de type « liste de longueur 1 ». Leur méthode :meth:`~email.message." +"EmailMessage.is_multipart` renvoie ``True``. L'élément unique généré par :" +"meth:`~email.message.EmailMessage.iter_parts` est un objet sous-message." #: library/email.parser.rst:313 msgid "" @@ -374,3 +540,11 @@ msgid "" "MultipartInvariantViolationDefect` class in their *defects* attribute list. " "See :mod:`email.errors` for details." msgstr "" +"Certains messages non conformes aux normes peuvent ne pas être cohérents en " +"interne quant à :mimetype:`multipart`. De tels messages peuvent avoir un en-" +"tête :mailheader:`Content-Type` de type :mimetype:`multipart`, mais leur " +"méthode :meth:`~email.message.EmailMessage.is_multipart` peut renvoyer " +"``False``. Si de tels messages ont été analysés avec la :class:`~email." +"parser.FeedParser`, ils auront une instance de la classe :class:`~email." +"errors.MultipartInvariantViolationDefect` dans leur liste d'attributs " +"*defects*. Voir :mod:`email.errors` pour plus de détails."