poursuite de la traduction de email (#178)

Reviewed-on: #178
Reviewed-by: Julien Palard <julien@palard.fr>
Co-authored-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
Co-committed-by: Christophe Nanteuil <christophe.nanteuil@gmail.com>
This commit is contained in:
Christophe Nanteuil 2024-01-18 22:34:42 +00:00 committed by Julien Palard
parent 618c07a64d
commit c204eb0a05
2 changed files with 354 additions and 20 deletions

View File

@ -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 <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2024-01-18 22:28+0100\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 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 <file-like "
"object>` *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 <https://www.jwz.org/doc/content-"
"length.html>`_)."
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 "
"<https://www.jwz.org/doc/content-length.html>`_)."
#: 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 <file-like object>` *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."

View File

@ -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 <deronnax@gmail.com>\n"
"PO-Revision-Date: 2024-01-18 22:43+0100\n"
"Last-Translator: Christophe Nanteuil <christophe.nanteuil@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.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 "
"<bytes-like object>`, 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 lAPI pour :class:`BytesFeedParser` :"
msgstr "Voici lAPI 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 <email.policy.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 <bytes-like object>` 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 <bytes-like object>` 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 <bytes-like object>` au lieu d'un objet de type fichier. "
"Appeler cette méthode sur un :term:`objet octets-compatible <bytes-like "
"object>` é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 <bytes-like object>`. 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 "
"<file object>` 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 <file object>` 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."