From e203bfcefdeadbe4b5a362aea7e6bdc7ca11bd3a Mon Sep 17 00:00:00 2001 From: Loc Cosnier Date: Wed, 4 Oct 2023 12:57:28 +0000 Subject: [PATCH 01/22] Traduction de library/datetime (#196) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/196 Reviewed-by: Christophe Nanteuil Co-authored-by: Loc Cosnier Co-committed-by: Loc Cosnier --- library/datetime.po | 437 ++++++++++++++++++-------------------------- library/random.po | 6 +- 2 files changed, 180 insertions(+), 263 deletions(-) diff --git a/library/datetime.po b/library/datetime.po index 1f31cce0..8596e894 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-05-18 17:37+0200\n" +"PO-Revision-Date: 2023-10-03 21:51+0200\n" "Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.3.2\n" #: library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" @@ -58,13 +58,12 @@ msgid "Time access and conversions." msgstr "Accès aux données d'horaires et aux conversions associées." #: library/datetime.rst:31 -#, fuzzy msgid "Module :mod:`zoneinfo`" -msgstr "Module :mod:`time`" +msgstr "Module :mod:`zoneinfo`" #: library/datetime.rst:31 msgid "Concrete time zones representing the IANA time zone database." -msgstr "" +msgstr "Fuseaux horaires concrets représentant la base de données IANA." #: library/datetime.rst:33 msgid "Package `dateutil `_" @@ -183,6 +182,7 @@ msgstr "" #: library/datetime.rst:89 msgid "Alias for the UTC timezone singleton :attr:`datetime.timezone.utc`." msgstr "" +"Alias du singleton de fuseau horaire UTC :attr:`datetime.timezone.utc`." #: library/datetime.rst:94 msgid "Available Types" @@ -235,19 +235,19 @@ msgid "" "notion of time adjustment (for example, to account for time zone and/or " "daylight saving time)." msgstr "" -"Une classe de base abstraite pour les objets portants des informations sur " -"les fuseaux horaires. Ceux-ci sont utilisés par les classes :class:`." -"datetime` et :class:`.time` pour donner une notion personnalisable " -"d'ajustement d'horaire (par exemple la prise en compte d'un fuseau horaire " -"et/ou de l'heure d'été)." +"Une classe mère abstraite pour les objets portants des informations sur les " +"fuseaux horaires. Ceux-ci sont utilisés par les classes :class:`.datetime` " +"et :class:`.time` pour donner une notion personnalisable d'ajustement " +"d'horaire (par exemple la prise en compte d'un fuseau horaire et/ou de " +"l'heure d'été)." #: library/datetime.rst:139 msgid "" "A class that implements the :class:`tzinfo` abstract base class as a fixed " "offset from the UTC." msgstr "" -"Une classe qui implémente la classe de base abstraite :class:`tzinfo` en " -"tant qu'offset fixe par rapport au temps UTC." +"Une classe qui implémente la classe mère abstraite :class:`tzinfo` en tant " +"que décalage fixe par rapport au temps UTC." #: library/datetime.rst:162 msgid "Objects of these types are immutable." @@ -270,13 +270,12 @@ msgstr "" "`timezone` partagent les caractéristiques suivantes :" #: library/datetime.rst:163 -#, fuzzy msgid "" "Objects of these types are :term:`hashable`, meaning that they can be used " "as dictionary keys." msgstr "" -"Les objets de ces types sont hachables, ce qui signifie qu'ils peuvent être " -"utilisés comme clés de dictionnaire." +"Les objets de ces types sont :term:`hachable`, ce qui signifie qu'ils " +"peuvent être utilisés comme clés de dictionnaire." #: library/datetime.rst:165 msgid "" @@ -362,8 +361,8 @@ msgid "" "All arguments are optional and default to ``0``. Arguments may be integers " "or floats, and may be positive or negative." msgstr "" -"Tous les paramètres sont optionnels et ont ``0`` comme valeur par défaut. " -"Les paramètres peuvent être des entiers ou des flottants et ils peuvent être " +"Tous les arguments sont optionnels et ont ``0`` comme valeur par défaut. Les " +"arguments peuvent être des entiers ou des flottants et ils peuvent être " "positifs ou négatifs." #: library/datetime.rst:204 @@ -372,7 +371,7 @@ msgid "" "are converted to those units:" msgstr "" "Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " -"interne. Tous les paramètres sont convertis dans ces unités :" +"interne. Les arguments sont convertis dans ces unités :" #: library/datetime.rst:207 msgid "A millisecond is converted to 1000 microseconds." @@ -430,8 +429,8 @@ msgid "" msgstr "" "Si l'un des arguments est un flottant et qu'il y a des microsecondes " "décimales, les microsecondes décimales laissées par les arguments sont " -"combinées et leur somme est arrondie à la microseconde la plus proche (en " -"arrondissant les demis vers le nombre pair). Si aucun argument n'est " +"combinées et leur somme est arrondie à la microseconde la plus proche en " +"arrondissant les demis vers le nombre pair. Si aucun argument n'est " "flottant, les processus de conversion et de normalisation seront exacts (pas " "d'informations perdues)." @@ -565,12 +564,12 @@ msgid "" "Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " "provided ``i != 0``." msgstr "" -"Delta multiplié par un entier. Ensuite *t1* // i == *t2* est vrai, en " +"Delta multiplié par un entier. Ensuite ``t1 // i == t2`` est vrai, en " "admettant que ``i != 0``." #: library/datetime.rst:307 msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" -msgstr "De manière générale, *t1* \\* i == *t1* \\* (i-1) + *t1* est vrai. (1)" +msgstr "De manière générale, ``t1 \\ i == t1 \\ (i-1) + t1`` est vrai. (1)" #: library/datetime.rst:310 msgid "``t1 = t2 * f or t1 = f * t2``" @@ -712,7 +711,7 @@ msgstr "Ceci est exact, et ne peut pas provoquer un débordement." #: library/datetime.rst:364 msgid "Division by 0 raises :exc:`ZeroDivisionError`." -msgstr "Une division par 0 provoque :exc:`ZeroDivisionError`." +msgstr "Une division par 0 lève une :exc:`ZeroDivisionError`." #: library/datetime.rst:367 msgid "-*timedelta.max* is not representable as a :class:`timedelta` object." @@ -725,9 +724,9 @@ msgid "" "similarly to their internal representation. This leads to somewhat unusual " "results for negative timedeltas. For example::" msgstr "" -"La représentation en chaîne de caractères des objets :class:`timedelta` est " -"normalisée similairement à leur représentation interne. Cela amène à des " -"résultats inhabituels pour des *timedeltas* négatifs. Par exemple ::" +"La représentation en chaîne des objets :class:`timedelta` est normalisée " +"similairement à leur représentation interne. Cela amène à des résultats " +"inhabituels pour des *timedeltas* négatifs. Par exemple ::" #: library/datetime.rst:380 msgid "" @@ -736,8 +735,8 @@ msgid "" "will produce a result while the latter will overflow." msgstr "" "L'expression ``t2 - t3`` est toujours égale à l'expression ``t2 + (-t3)`` " -"sauf si *t3* vaut ``timedelta.max`` ; dans ce cas, la première expression " -"produit une valeur alors que la seconde lève une ``OverflowError``." +"sauf si ``t3`` vaut ``timedelta.max`` ; dans ce cas, la première expression " +"produit une valeur alors que la seconde produit un débordement." #: library/datetime.rst:384 msgid "" @@ -784,8 +783,8 @@ msgid "" "`TypeError` is raised::" msgstr "" "Pour toutes les autres comparaisons (telles que ``<`` et ``>``), lorsqu'un " -"objet :class:`timedelta` est comparé à un objet d'un type différent, :exc:" -"`TypeError` est levée ::" +"objet :class:`timedelta` est comparé à un objet d'un type différent, une :" +"exc:`TypeError` est levée ::" #: library/datetime.rst:419 msgid "" @@ -877,7 +876,7 @@ msgstr "``1 <= day <= nombre de jours dans le mois et l'année donnés``" msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised." msgstr "" -"Si un argument est donné en dehors de ces intervalles, une :exc:`valueError` " +"Si un argument est donné en dehors de ces intervalles, une :exc:`ValueError` " "est levée." #: library/datetime.rst:852 @@ -910,11 +909,11 @@ msgid "" "ignored by :meth:`fromtimestamp`." msgstr "" "Elle peut lever une :exc:`OverflowError`, si l'horodatage est en dehors des " -"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et " -"une :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est commun " -"d'être restreint aux années entre 1970 et 2038. Notez que sur les systèmes " -"non *POSIX* qui incluent les secondes intercalaires dans leur notion " -"d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." +"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et une " +"exception :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est " +"commun d'être restreint aux années entre 1970 et 2038. Notez que sur les " +"systèmes non *POSIX* qui incluent les secondes intercalaires dans leur " +"notion d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." #: library/datetime.rst:510 msgid "" @@ -945,20 +944,18 @@ msgstr "" "toordinal()``. Pour toute date *d*, ``date.fromordinal(d.toordinal()) == d``." #: library/datetime.rst:529 -#, fuzzy msgid "" "Return a :class:`date` corresponding to a *date_string* given in any valid " "ISO 8601 format, except ordinal dates (e.g. ``YYYY-DDD``)::" msgstr "" -"Renvoie une :class:`date` correspondant à *date_string* dans le format " -"``YYYY-MM-DD`` ::" +"Renvoie une :class:`date` correspondant à *date_string* dans un format ISO " +"8601 valide, à part les dates ordinales (ex: ``YYYY-DDD``) ::" #: library/datetime.rst:541 -#, fuzzy msgid "Previously, this method only supported the format ``YYYY-MM-DD``." msgstr "" -"C'est la réciproque de :meth:`date.isoformat`. Elle ne prend en charge que " -"le format ``YYYY-MM-DD``." +"Auparavant, cette méthode prenait en charge seulement le format ``YYYY-MM-" +"DD``." #: library/datetime.rst:546 msgid "" @@ -1003,10 +1000,10 @@ msgid "``date2 = date1 + timedelta``" msgstr "``date2 = date1 + timedelta``" #: library/datetime.rst:592 -#, fuzzy msgid "*date2* will be ``timedelta.days`` days after *date1*. (1)" msgstr "" -"*date2* est décalée de ``timedelta.days`` jours par rapport à *date1*. (1)" +"``date2`` est décalée de ``timedelta.days`` jours par rapport à ``date1``. " +"(1)" #: library/datetime.rst:595 msgid "``date2 = date1 - timedelta``" @@ -1014,7 +1011,7 @@ msgstr "``date2 = date1 - timedelta``" #: library/datetime.rst:595 msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" -msgstr "Calcule *date2* de façon à avoir ``date2 + timedelta == date1``. (2)" +msgstr "Calcule ``date2`` de façon à avoir ``date2 + timedelta == date1``. (2)" #: library/datetime.rst:598 msgid "``timedelta = date1 - date2``" @@ -1033,8 +1030,8 @@ msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. (4)" msgstr "" -"*date1* est considérée comme inférieure à *date2* quand *date1* précède " -"*date2* dans le temps. (4)" +"``date1`` est considérée comme inférieure à ``date2`` quand ``date1`` " +"précède ``date2`` dans le temps. (4)" #: library/datetime.rst:607 msgid "" @@ -1044,11 +1041,11 @@ msgid "" "`OverflowError` is raised if ``date2.year`` would be smaller than :const:" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" -"*date2* est déplacée en avant dans le temps si ``timedelta.days > 0``, ou en " -"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." -"days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés. " -"Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " -"à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." +"``date2`` est déplacée en avant dans le temps si ``timedelta.days > 0``, ou " +"en arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == " +"timedelta.days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont " +"ignorés. Une :exc:`OverflowError` est levée si ``date2.year`` devait être " +"inférieure à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." #: library/datetime.rst:614 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." @@ -1097,8 +1094,8 @@ msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified." msgstr "" -"Renvoie une date avec la même valeur, excepté pour les valeurs spécifiées " -"par arguments nommés." +"Renvoie une date avec la même valeur, à l'exception des paramètres nommés " +"pour lesquels une nouvelle valeur est donnée en argument." #: library/datetime.rst:1847 msgid "Example::" @@ -1206,8 +1203,7 @@ msgstr "Le résultat a changé d'un *n*-uplet à un :term:`named tuple`." msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" -"Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\" ::" +"Renvoie une chaîne représentant la date au format ISO 8601, ``YYYY-MM-DD`` ::" #: library/datetime.rst:717 msgid "For a date *d*, ``str(d)`` is equivalent to ``d.isoformat()``." @@ -1215,7 +1211,7 @@ msgstr "Pour une date *d*, ``str(d)`` est équivalent à ``d.isoformat()``." #: library/datetime.rst:722 msgid "Return a string representing the date::" -msgstr "Renvoie une chaîne de caractères représentant la date ::" +msgstr "Renvoie une chaîne représentant la date ::" #: library/datetime.rst:1503 msgid "``d.ctime()`` is equivalent to::" @@ -1231,20 +1227,18 @@ msgstr "" "ctime` invoque, mais pas :meth:`date.ctime`) est conforme au standard C." #: library/datetime.rst:739 -#, fuzzy msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " "values. See also :ref:`strftime-strptime-behavior` and :meth:`date." "isoformat`." msgstr "" -"Renvoie une chaîne de caractères représentant la date, contrôlée par une " -"chaîne de formatage explicite. Les codes de formatage se référant aux " -"heures, minutes ou secondes auront pour valeur 0. Pour une liste complète " -"des directives de formatage, voir :ref:`strftime-strptime-behavior`." +"Renvoie une chaîne représentant la date, contrôlée par une chaîne de " +"formatage explicite. Les codes de formatage se référant aux heures, minutes " +"ou secondes auront pour valeur 0. Voir :ref:`strftime-strptime-behavior` et :" +"meth:`date.isoformat`." #: library/datetime.rst:746 -#, fuzzy msgid "" "Same as :meth:`.date.strftime`. This makes it possible to specify a format " "string for a :class:`.date` object in :ref:`formatted string literals ` et à l'utilisation de :meth:`str.format`. Pour une " -"liste complète des directives de formatage, voir :ref:`strftime-strptime-" -"behavior`." +"littérale ` et à l'utilisation de :meth:`str.format`. Voir :ref:" +"`strftime-strptime-behavior` et :meth:`date.isoformat`." #: library/datetime.rst:752 msgid "Examples of Usage: :class:`date`" @@ -1405,9 +1398,9 @@ msgid "" "obtained by calling ``datetime.now(timezone.utc)``. See also :meth:`now`." msgstr "" "C'est semblable à :meth:`now`, mais renvoie la date et l'heure UTC " -"courantes, comme un objet :class:`.datetime` naïf. Un *datetime* UTC courant " -"avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. Voir " -"aussi :meth:`now`." +"courantes, comme un objet :class:`.datetime` naïf. Un ``datetime`` UTC " +"courant avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. " +"Voir aussi :meth:`now`." #: library/datetime.rst:893 msgid "" @@ -1569,7 +1562,6 @@ msgstr "" "valent toutes 0, et :attr:`.tzinfo` est ``None``." #: library/datetime.rst:977 -#, fuzzy msgid "" "Return a new :class:`.datetime` object whose date components are equal to " "the given :class:`date` object's, and whose time components are equal to the " @@ -1585,7 +1577,6 @@ msgstr "" "est utilisé." #: library/datetime.rst:984 -#, fuzzy msgid "" "For any :class:`.datetime` object *d*, ``d == datetime.combine(d.date(), d." "time(), d.tzinfo)``. If date is a :class:`.datetime` object, its time " @@ -1600,43 +1591,43 @@ msgid "Added the *tzinfo* argument." msgstr "Ajout de l'argument *tzinfo*." #: library/datetime.rst:995 -#, fuzzy msgid "" "Return a :class:`.datetime` corresponding to a *date_string* in any valid " "ISO 8601 format, with the following exceptions:" msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " -"analysée selon *format* :" +"Renvoie une classe :class:`.datetime` correspondant à *date_string* dans un " +"format ISO 8601 valide, avec les exceptions suivantes :" #: library/datetime.rst:1770 msgid "Time zone offsets may have fractional seconds." msgstr "" +"Les décalages de fuseaux horaires peuvent comporter des fractions de " +"secondes." #: library/datetime.rst:999 -#, fuzzy msgid "The ``T`` separator may be replaced by any single unicode character." -msgstr "où ``*`` peut correspondre à n'importe quel caractère." +msgstr "" +"Le séparateur ``T`` peut être remplacé par n'importe quel caractère Unicode." #: library/datetime.rst:1000 msgid "Ordinal dates are not currently supported." -msgstr "" +msgstr "Les dates ordinales ne sont actuellement pas gérées." #: library/datetime.rst:1775 msgid "Fractional hours and minutes are not supported." -msgstr "" +msgstr "Les fractions d'heures et de minutes ne sont pas gérées." #: library/datetime.rst:1432 library/datetime.rst:1777 msgid "Examples::" msgstr "Exemples ::" #: library/datetime.rst:1027 -#, fuzzy msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`date.isoformat()` or :meth:`datetime.isoformat()`." msgstr "" -"Renvoie une :class:`.datetime` correspondant à *date_string* dans le format " -"émis par :meth:`date.isoformat` et :meth:`datetime.isoformat`." +"Auparavant, cette méthode prenait en charge seulement les formats émis par :" +"meth:`date.isoformat()` et :meth:`datetime.isoformat()`." #: library/datetime.rst:1034 msgid "" @@ -1663,9 +1654,10 @@ msgid "" "If *format* does not contain microseconds or timezone information, this is " "equivalent to::" msgstr "" +"Si *format* ne contient pas de microsecondes ou d'informations sur le fuseau " +"horaire, cela équivaut à ::" #: library/datetime.rst:1050 -#, fuzzy msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " "by :func:`time.strptime` or if it returns a value which isn't a time tuple. " @@ -1674,8 +1666,8 @@ msgid "" msgstr "" "Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " "analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " -"pas un *n*-uplet de temps. Pour une liste complète des directives de " -"formatage, voir :ref:`strftime-strptime-behavior`." +"pas un *n*-uplet de temps. Voir :ref:`strftime-strptime-behavior` et :meth:" +"`datetime.fromisoformat`." #: library/datetime.rst:1061 msgid "" @@ -1765,7 +1757,6 @@ msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" #: library/datetime.rst:1146 -#, fuzzy msgid "" "datetime2 is a duration of timedelta removed from datetime1, moving forward " "in time if ``timedelta.days`` > 0, or backward if ``timedelta.days`` < 0. " @@ -1797,7 +1788,6 @@ msgstr "" "réalisé même si l'entrée est avisée." #: library/datetime.rst:1160 -#, fuzzy msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " "only if both operands are naive, or if both are aware. If one is aware and " @@ -1809,7 +1799,6 @@ msgstr "" "levée." #: library/datetime.rst:1164 -#, fuzzy msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." "tzinfo` attribute, the :attr:`~.datetime.tzinfo` attributes are ignored, and " @@ -1823,7 +1812,6 @@ msgstr "" "dans ce cas." #: library/datetime.rst:1169 -#, fuzzy msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " "``a-b`` acts as if *a* and *b* were first converted to naive UTC datetimes " @@ -1846,7 +1834,6 @@ msgstr "" "le temps." #: library/datetime.rst:1178 -#, fuzzy msgid "" "If one comparand is naive and the other is aware, :exc:`TypeError` is raised " "if an order comparison is attempted. For equality comparisons, naive " @@ -1857,7 +1844,6 @@ msgstr "" "instances naïves ne sont jamais égales aux instances avisées." #: library/datetime.rst:1182 -#, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " "attribute, the common :attr:`~.datetime.tzinfo` attribute is ignored and the " @@ -1874,16 +1860,14 @@ msgstr "" "``self.utcoffset()``)." #: library/datetime.rst:1188 -#, fuzzy msgid "" "Equality comparisons between aware and naive :class:`.datetime` instances " "don't raise :exc:`TypeError`." msgstr "" "Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " -"avisées ne lèvent pas de :exc:`TypeError`." +"avisées ne lèvent pas d'exception :exc:`TypeError`." #: library/datetime.rst:1194 -#, fuzzy msgid "" "In order to stop comparison from falling back to the default scheme of " "comparing object addresses, datetime comparison normally raises :exc:" @@ -1897,13 +1881,13 @@ msgid "" msgstr "" "Afin d'empêcher la comparaison de retomber sur le schéma par défaut de " "comparaison des adresses des objets, la comparaison *datetime* lève " -"normalement une :exc:`TypeError` si l'autre opérande n'est pas aussi un " -"objet :class:`.datetime`. Cependant, ``NotImplemented`` est renvoyé à la " -"place si l'autre opérande a un attribut :meth:`timetuple`. Cela permet à " -"d'autres types d'objets dates d'implémenter la comparaison entre types " -"mixtes. Sinon, quand un objet :class:`.datetime` est comparé à un objet " -"d'un type différent, une :exc:`TypeError` est levée à moins que la " -"comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " +"normalement une exception :exc:`TypeError` si l'autre opérande n'est pas " +"aussi un objet :class:`.datetime`. Cependant, ``NotImplemented`` est " +"renvoyé à la place si l'autre opérande a un attribut :meth:`timetuple`. " +"Cela permet à d'autres types d'objets dates d'implémenter la comparaison " +"entre types mixtes. Sinon, quand un objet :class:`.datetime` est comparé à " +"un objet d'un type différent, une exception :exc:`TypeError` est levée à " +"moins que la comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." #: library/datetime.rst:1208 @@ -1911,13 +1895,12 @@ msgid "Return :class:`date` object with same year, month and day." msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." #: library/datetime.rst:1213 -#, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " "fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." msgstr "" -"Renvoie un objet :class:`.time` avec les mêmes heure, minute, seconde, " -"microseconde et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " +"Renvoie un objet :class:`.time` avec les mêmes heures, minutes, secondes, " +"microsecondes et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " "méthode :meth:`timetz`." #: library/datetime.rst:1225 @@ -1925,7 +1908,6 @@ msgid "The fold value is copied to the returned :class:`.time` object." msgstr "La valeur *fold* est copiée vers l'objet :class:`.time` renvoyé." #: library/datetime.rst:1222 -#, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " "fold, and tzinfo attributes. See also method :meth:`time`." @@ -1935,7 +1917,6 @@ msgstr "" "`time`." #: library/datetime.rst:1233 -#, fuzzy msgid "" "Return a datetime with the same attributes, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -1958,19 +1939,17 @@ msgstr "" "temps UTC que *self*, mais dans le temps local au fuseau *tz*." #: library/datetime.rst:1248 -#, fuzzy msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " "its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " "*self* is naive, it is presumed to represent time in the system timezone." msgstr "" -"Si fourni, *tz* doit être une instance d'une sous-classe :class:`tzinfo`, et " -"ses méthodes :meth:`utcoffset` et :meth:`dst` ne doivent pas renvoyer " -"``None``. Si *self* est naïf, Python considère que le temps est exprimé " -"dans le fuseau horaire du système." +"S'il est fourni, *tz* doit être une instance d'une sous-classe de :class:" +"`tzinfo`, et ses méthodes :meth:`utcoffset` et :meth:`dst` ne doivent pas " +"renvoyer ``None``. Si *self* est naïf, Python considère que le temps est " +"exprimé dans le fuseau horaire du système." #: library/datetime.rst:1252 -#, fuzzy msgid "" "If called without arguments (or with ``tz=None``) the system local timezone " "is assumed for the target timezone. The ``.tzinfo`` attribute of the " @@ -1997,7 +1976,6 @@ msgstr "" "mêmes données de date et d'heure que ``dt - dt.utcoffset()``." #: library/datetime.rst:1263 -#, fuzzy msgid "" "If you merely want to attach a time zone object *tz* to a datetime *dt* " "without adjustment of date and time data, use ``dt.replace(tzinfo=tz)``. If " @@ -2075,7 +2053,6 @@ msgstr "" "renvoie pas ``None`` ou une chaîne de caractères," #: library/datetime.rst:1325 -#, fuzzy msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with ``1`` for January 1st. The :" @@ -2087,13 +2064,12 @@ msgstr "" "où ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le " "numéro de jour dans l'année courante commençant avec ``1`` pour le 1\\ :sup:" "`er` janvier. L'option :attr:`tm_isdist` du résultat est attribuée selon la " -"méthode :meth:`dst` : si :attr:`.tzinfo` est ``None`` ou que :meth:`dst` " +"méthode :meth:`dst` : si :attr:`.tzinfo` est ``None`` ou :meth:`dst` " "renvoie ``None``, :attr:`tm_isdst` est mise à ``-1`` ; sinon, si :meth:`dst` " "renvoie une valeur non nulle, :attr:`tm_isdst` est mise à ``1`` ; sinon :" "attr:`tm_isdst` est mise à ``0``." #: library/datetime.rst:1336 -#, fuzzy msgid "" "If :class:`.datetime` instance *d* is naive, this is the same as ``d." "timetuple()`` except that :attr:`tm_isdst` is forced to 0 regardless of what " @@ -2105,7 +2081,6 @@ msgstr "" "temps UTC." #: library/datetime.rst:1340 -#, fuzzy msgid "" "If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." "utcoffset()``, and a :class:`time.struct_time` for the normalized time is " @@ -2116,11 +2091,10 @@ msgstr "" "Si *d* est avisé, il est normalisé vers un temps UTC, en lui soustrayant ``d." "utcoffset()``, et un :class:`time.struct_time` est renvoyé pour le temps " "normalisé. :attr:`tm_isdst` est forcé à 0. Notez qu'une :exc:" -"`OverflowError` peut être levée si *d.year* vaut ``MINYEAR``ou ``MAXYEAR`` " +"`OverflowError` peut être levée si *d.year* vaut ``MINYEAR`` ou ``MAXYEAR`` " "et que l'ajustement UTC fait déborder la limite de l'année." #: library/datetime.rst:1349 -#, fuzzy msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -2132,10 +2106,10 @@ msgstr "" "Comme les objets ``datetime`` naïfs sont traités par de nombreuses méthodes " "``datetime`` comme des heures locales, il est préférable d'utiliser les " "``datetime`` avisés pour représenter les heures en UTC ; par conséquent, " -"l'utilisation de ``utcfromtimetuple`` peut donner des résultats trompeurs. " -"Si vous disposez d'une ``datetime`` naïve représentant l'heure UTC, utilisez " -"``datetime.replace(tzinfo=timezone.utc)`` pour la rendre avisée, puis vous " -"pouvez utiliser :meth:`.datetime.timetuple`." +"l'utilisation de :meth:`datetime.utcfromtimetuple` peut donner des résultats " +"trompeurs. Si vous disposez d'une ``datetime`` naïve représentant l'heure " +"UTC, utilisez ``datetime.replace(tzinfo=timezone.utc)`` pour la rendre " +"avisée, puis vous pouvez utiliser :meth:`.datetime.timetuple`." #: library/datetime.rst:1358 msgid "" @@ -2156,7 +2130,6 @@ msgstr "" "`time.time`." #: library/datetime.rst:1367 -#, fuzzy msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " "this method relies on the platform C :c:func:`mktime` function to perform " @@ -2187,7 +2160,6 @@ msgstr "" "désambiguïser le temps dans un intervalle répété." #: library/datetime.rst:1387 -#, fuzzy msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" "class:`.datetime` instance representing UTC time. If your application uses " @@ -2197,8 +2169,8 @@ msgstr "" "Il n'y a pas de méthode pour obtenir l'horodatage (*timestamp* en anglais) " "*POSIX* directement depuis une instance :class:`.datetime` naïve " "représentant un temps UTC. Si votre application utilise cette convention et " -"que le fuseau horaire de votre système est UTC, vous pouvez obtenir " -"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` ::" +"que le fuseau horaire de votre système n'est pas réglé sur UTC, vous pouvez " +"obtenir l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` ::" #: library/datetime.rst:1395 msgid "or by calculating the timestamp directly::" @@ -2347,7 +2319,7 @@ msgstr "" #: library/datetime.rst:1494 msgid "Return a string representing the date and time::" -msgstr "Renvoie une chaîne de caractères représentant la date et l'heure ::" +msgstr "Renvoie une chaîne représentant la date et l'heure ::" #: library/datetime.rst:1500 msgid "" @@ -2358,28 +2330,25 @@ msgstr "" "fuseau horaire, que l'entrée soit avisée ou naïve." #: library/datetime.rst:1507 -#, fuzzy msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`datetime.ctime` does not invoke) conforms " "to the C standard." msgstr "" "sur les plateformes où la fonction C native :c:func:`ctime` (que :func:`time." -"ctime` invoque, mais pas :meth:`date.ctime`) est conforme au standard C." +"ctime` invoque, mais pas :meth:`datetime.ctime`) est conforme au standard C." #: library/datetime.rst:1514 -#, fuzzy msgid "" "Return a string representing the date and time, controlled by an explicit " "format string. See also :ref:`strftime-strptime-behavior` and :meth:" "`datetime.isoformat`." msgstr "" "Renvoie une chaîne représentant la date et l'heure, contrôlée par une chaîne " -"de format explicite. Pour une liste complète des directives de formatage, " -"voir :ref:`strftime-strptime-behavior`." +"de format explicite. Voir :ref:`strftime-strptime-behavior` et :meth:" +"`datetime.isoformat`." #: library/datetime.rst:1521 -#, fuzzy msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " "format string for a :class:`.datetime` object in :ref:`formatted string " @@ -2388,9 +2357,8 @@ msgid "" msgstr "" "Identique à :meth:`.datetime.strftime`. Cela permet de spécifier une chaîne " "de format pour un objet :class:`.datetime` dans une :ref:`chaîne de " -"formatage littérale ` et en utilisant :meth:`str.format`. Pour " -"une liste complète des directives de formatage, voir :ref:`strftime-strptime-" -"behavior`." +"formatage littérale ` et en utilisant :meth:`str.format`. Voir :" +"ref:`strftime-strptime-behavior` et :meth:`datetime.isoformat`." #: library/datetime.rst:1528 msgid "Examples of Usage: :class:`.datetime`" @@ -2419,7 +2387,6 @@ msgid ":class:`.time` Objects" msgstr "Objets :class:`.time`" #: library/datetime.rst:1658 -#, fuzzy msgid "" "A :class:`time` object represents a (local) time of day, independent of any " "particular day, and subject to adjustment via a :class:`tzinfo` object." @@ -2429,7 +2396,6 @@ msgstr "" "`tzinfo`." #: library/datetime.rst:1663 -#, fuzzy msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" "class:`tzinfo` subclass. The remaining arguments must be integers in the " @@ -2440,7 +2406,6 @@ msgstr "" "être des nombres entiers, dans les intervalles suivants :" #: library/datetime.rst:1673 -#, fuzzy msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " "All default to ``0`` except *tzinfo*, which defaults to :const:`None`." @@ -2479,7 +2444,6 @@ msgstr "" "``None`` si aucune valeur n'a été passée." #: library/datetime.rst:1734 -#, fuzzy msgid "" ":class:`.time` objects support comparison of :class:`.time` to :class:`." "time`, where *a* is considered less than *b* when *a* precedes *b* in time. " @@ -2494,7 +2458,6 @@ msgstr "" "instances naïves ne sont jamais égales aux instances avisées." #: library/datetime.rst:1740 -#, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~time.tzinfo` " "attribute, the common :attr:`~time.tzinfo` attribute is ignored and the base " @@ -2519,7 +2482,6 @@ msgstr "" "respectivement :const:`False` et :const:`True`." #: library/datetime.rst:1750 -#, fuzzy msgid "" "Equality comparisons between aware and naive :class:`~datetime.time` " "instances don't raise :exc:`TypeError`." @@ -2535,7 +2497,6 @@ msgstr "" "comme vrai." #: library/datetime.rst:1756 -#, fuzzy msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " "represented midnight in UTC. This behavior was considered obscure and error-" @@ -2552,35 +2513,38 @@ msgid "Other constructor:" msgstr "Autre constructeur :" #: library/datetime.rst:1767 -#, fuzzy msgid "" "Return a :class:`.time` corresponding to a *time_string* in any valid ISO " "8601 format, with the following exceptions:" msgstr "" -"Renvoie une :class:`time` correspondant à *time_string* dans le format émis " -"par :meth:`time.isoformat`. Spécifiquement, cette fonction gère des chaînes " -"dans le format :" +"Renvoie une :class:`.time` correspondant à *time_string* dans un format ISO " +"8601 valide, avec les exceptions suivantes :" #: library/datetime.rst:1771 msgid "" "The leading ``T``, normally required in cases where there may be ambiguity " "between a date and a time, is not required." msgstr "" +"Le ``T`` initial, normalement requis dans les cas où il peut y avoir une " +"ambiguïté entre une date et une heure, n'est pas nécessaire." #: library/datetime.rst:1773 msgid "" "Fractional seconds may have any number of digits (anything beyond 6 will be " "truncated)." msgstr "" +"Les fractions de secondes peuvent avoir un nombre quelconque de décimales " +"(tout ce qui dépasse 6 décimales sera tronqué)." #: library/datetime.rst:1799 msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`time.isoformat()`." msgstr "" +"Auparavant, cette méthode ne prenait en charge que les formats émis par :" +"meth:`time.isoformat()`." #: library/datetime.rst:1809 -#, fuzzy msgid "" "Return a :class:`.time` with the same value, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -2588,15 +2552,14 @@ msgid "" "aware :class:`.time`, without conversion of the time data." msgstr "" "Renvoie un objet :class:`.time` avec la même valeur, à l'exception des " -"attributs dont une nouvelle valeur est spécifiée par les arguments nommés. " -"Notez que ``tzinfo=None`` peut être spécifié pour créer une instance :class:" -"`.time` naïve à partir d'une instance :class:`.time` avisée, sans conversion " -"des données de temps." +"attributs dont les nouvelles valeurs sont spécifiées par les arguments " +"nommés. Notez que ``tzinfo=None`` peut être spécifié pour créer une " +"instance :class:`.time` naïve à partir d'une instance :class:`.time` avisée, " +"sans conversion des données de temps." #: library/datetime.rst:1820 msgid "Return a string representing the time in ISO 8601 format, one of:" -msgstr "" -"Renvoie une chaîne de caractères représentant la date au format ISO 8601 :" +msgstr "Renvoie une chaîne représentant la date au format ISO 8601 :" #: library/datetime.rst:1822 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" @@ -2632,18 +2595,16 @@ msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." msgstr "Pour un temps *t*, ``str(t)`` est équivalent à ``t.isoformat()``." #: library/datetime.rst:1869 -#, fuzzy msgid "" "Return a string representing the time, controlled by an explicit format " "string. See also :ref:`strftime-strptime-behavior` and :meth:`time." "isoformat`." msgstr "" -"Renvoie une chaîne de caractères représentant l'heure, contrôlée par une " -"chaîne de formatage explicite. Pour une liste complète des directives de " -"formatage, voir :ref:`strftime-strptime-behavior`." +"Renvoie une chaîne représentant l'heure, contrôlée par une chaîne de " +"formatage explicite. Voir :ref:`strftime-strptime-behavior` et :meth:`time." +"isoformat`." #: library/datetime.rst:1875 -#, fuzzy msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " "string for a :class:`.time` object in :ref:`formatted string literals ` et à l'utilisation de :meth:`str.format`. Pour une " -"liste complète des directives de formatage, voir :ref:`strftime-strptime-" -"behavior`." +"littérale ` et à l'utilisation de :meth:`str.format`. Voir :ref:" +"`strftime-strptime-behavior` et :meth:`time.isoformat`." #: library/datetime.rst:1883 msgid "" @@ -2706,10 +2666,9 @@ msgid "" "instantiated directly. Define a subclass of :class:`tzinfo` to capture " "information about a particular time zone." msgstr "" -"Il s'agit d'une classe de base abstraite, ce qui signifie que cette classe " -"ne doit pas être instanciée directement. Définissez une sous-classe de :" -"class:`tzinfo` pour capturer des informations sur un fuseau horaire " -"particulier." +"Il s'agit d'une classe mère abstraite, ce qui signifie que cette classe ne " +"doit pas être instanciée directement. Définissez une sous-classe de :class:" +"`tzinfo` pour capturer des informations sur un fuseau horaire particulier." #: library/datetime.rst:1948 msgid "" @@ -2728,7 +2687,6 @@ msgstr "" "d'été, tous relatifs à un objet de date ou d'heure qui leur est passé." #: library/datetime.rst:1954 -#, fuzzy msgid "" "You need to derive a concrete subclass, and (at least) supply " "implementations of the standard :class:`tzinfo` methods needed by the :class:" @@ -2746,20 +2704,19 @@ msgstr "" "EST et EDT." #: library/datetime.rst:1961 -#, fuzzy msgid "" "Special requirement for pickling: A :class:`tzinfo` subclass must have an :" "meth:`__init__` method that can be called with no arguments, otherwise it " "can be pickled but possibly not unpickled again. This is a technical " "requirement that may be relaxed in the future." msgstr "" -"Prérequis spécifique au *picklng* : Une sous-classe :class:`tzinfo` doit " -"avoir une méthode :meth:`__init__` qui peut être appelée sans arguments, " -"sans quoi un objet sérialisé ne pourrait pas toujours être désérialisé. " -"C'est un prérequis technique qui pourrait être assoupli dans le futur." +"Prérequis spécifique à la sérialisation : Une sous-classe :class:`tzinfo` " +"doit avoir une méthode :meth:`__init__` qui peut être appelée sans " +"arguments, sans quoi un objet sérialisé ne pourrait pas toujours être " +"désérialisé. C'est un prérequis technique qui pourrait être assoupli dans " +"le futur." #: library/datetime.rst:1966 -#, fuzzy msgid "" "A concrete subclass of :class:`tzinfo` may need to implement the following " "methods. Exactly which methods are needed depends on the uses made of aware :" @@ -2780,7 +2737,6 @@ msgstr "" "est à l'ouest de UTC, il doit être négatif." #: library/datetime.rst:1976 -#, fuzzy msgid "" "This represents the *total* offset from UTC; for example, if a :class:" "`tzinfo` object represents both time zone and DST adjustments, :meth:" @@ -2793,7 +2749,7 @@ msgstr "" "Cela représente le décalage *total* par rapport à UTC ; par exemple, si un " "objet :class:`tzinfo` représente à la fois un fuseau horaire et son " "ajustement à l'heure d'été, :meth:`utcoffset` devrait renvoyer leur somme. " -"Si le décalage UTC n'est pas connu, renvoie ``None``. Sinon, la valeur " +"Si le décalage UTC n'est pas connu, elle renvoie ``None``. Sinon, la valeur " "renvoyée doit être un objet :class:`timedelta` compris strictement entre ``-" "timedelta(hours=24)`` et ``timedelta(hours=24)`` (l'amplitude du décalage " "doit être inférieure à un jour). La plupart des implémentations de :meth:" @@ -2824,7 +2780,6 @@ msgstr "" "`timedelta` ou ``None`` si l'information DST n'est pas connue." #: library/datetime.rst:2003 -#, fuzzy msgid "" "Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " "the offset as a :class:`timedelta` object (see :meth:`utcoffset` for " @@ -2861,7 +2816,6 @@ msgid "``tz.utcoffset(dt) - tz.dst(dt)``" msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" #: library/datetime.rst:2018 -#, fuzzy msgid "" "must return the same result for every :class:`.datetime` *dt* with ``dt." "tzinfo == tz`` For sane :class:`tzinfo` subclasses, this expression yields " @@ -2904,7 +2858,6 @@ msgstr "" "`NotImplementedError`." #: library/datetime.rst:2053 -#, fuzzy msgid "" "Return the time zone name corresponding to the :class:`.datetime` object " "*dt*, as a string. Nothing about string names is defined by the :mod:" @@ -2917,13 +2870,13 @@ msgid "" "if the :class:`tzinfo` class is accounting for daylight time." msgstr "" "Renvoie le nom du fuseau horaire correspondant à l'objet :class:`.datetime` " -"*dt*, sous forme d'une chaîne de caractères. Rien n'est défini sur les noms " -"par le module :mod:`datetime`, et il n'est pas nécessaire que ces noms " -"signifient quelque chose en particulier. Par exemple, « *GMT* », « *UTC* », " -"« *-500* », « *-5:00* », « *EDT* », « *US/Eastern* » et « *America/New " -"York* » sont toutes des valeurs de retour valides. Renvoie ``None`` si un " -"nom est inconnu. Notez qu'il s'agit d'une méthode et non d'une chaîne fixée " -"en amont, parce que les sous-classes de :class:`tzinfo` peuvent souhaiter " +"*dt*, sous forme d'une chaîne. Rien n'est défini sur les noms par le module :" +"mod:`datetime`, et il n'est pas nécessaire que ces noms signifient quelque " +"chose en particulier. Par exemple, « *GMT* », « *UTC* », « *-500* », " +"« *-5:00* », « *EDT* », « *US/Eastern* » et « *America/New York* » sont " +"toutes des valeurs de retour valides. Renvoie ``None`` si un nom est " +"inconnu. Notez qu'il s'agit d'une méthode et non d'une chaîne fixée en " +"amont, parce que les sous-classes de :class:`tzinfo` peuvent souhaiter " "renvoyer des noms différents en fonction de valeurs de *dt* spécifiques, en " "particulier si la classe :class:`tzinfo` tient compte de l'heure d'été." @@ -2936,7 +2889,6 @@ msgstr "" "`NotImplementedError`." #: library/datetime.rst:2066 -#, fuzzy msgid "" "These methods are called by a :class:`.datetime` or :class:`.time` object, " "in response to their methods of the same names. A :class:`.datetime` object " @@ -2946,14 +2898,13 @@ msgid "" "datetime`." msgstr "" "Ces méthodes sont appelées par les objets :class:`.datetime` et :class:`." -"time`, en réponse à leurs méthodes aux mêmes noms. Un objet :class:`." +"time`, en réponse à leurs méthodes de mêmes noms. Un objet :class:`." "datetime` se passe lui-même en tant qu'argument, et un objet :class:`.time` " "passe ``None``. Les méthodes des sous-classes :class:`tzinfo` doivent alors " "être prêtes à recevoir un argument ``None`` pour *dt*, ou une instance de :" "class:`.datetime`." #: library/datetime.rst:2072 -#, fuzzy msgid "" "When ``None`` is passed, it's up to the class designer to decide the best " "response. For example, returning ``None`` is appropriate if the class wishes " @@ -2969,7 +2920,6 @@ msgstr "" "aucune autre convention pour obtenir ce décalage." #: library/datetime.rst:2078 -#, fuzzy msgid "" "When a :class:`.datetime` object is passed in response to a :class:`." "datetime` method, ``dt.tzinfo`` is the same object as *self*. :class:" @@ -2995,7 +2945,6 @@ msgstr "" "vouloir redéfinir :" #: library/datetime.rst:2089 -#, fuzzy msgid "" "This is called from the default :class:`datetime.astimezone()` " "implementation. When called from that, ``dt.tzinfo`` is *self*, and *dt*'s " @@ -3011,7 +2960,6 @@ msgstr "" "temps local." #: library/datetime.rst:2095 -#, fuzzy msgid "" "Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" "`fromutc` implementation without problems. It's strong enough to handle " @@ -3054,7 +3002,6 @@ msgstr "" "py>` il y a des exemples de :class:`tzinfo` classes :" #: library/datetime.rst:2130 -#, fuzzy msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" "`tzinfo` subclass accounting for both standard and daylight time, at the DST " @@ -3070,7 +3017,6 @@ msgstr "" "minute qui suit 1:59 (EDT) le premier dimanche de novembre ::" #: library/datetime.rst:2144 -#, fuzzy msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " "to 3:00. A wall time of the form 2:MM doesn't really make sense on that day, " @@ -3085,7 +3031,6 @@ msgstr "" "d'heure du printemps 2016, nous obtenons ::" #: library/datetime.rst:2163 -#, fuzzy msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " "there's an hour that can't be spelled unambiguously in local wall time: the " @@ -3114,7 +3059,6 @@ msgstr "" "obtenons ::" #: library/datetime.rst:2185 -#, fuzzy msgid "" "Note that the :class:`.datetime` instances that differ only by the value of " "the :attr:`~datetime.fold` attribute are considered equal in comparisons." @@ -3145,7 +3089,6 @@ msgid ":mod:`zoneinfo`" msgstr ":mod:`zoneinfo`" #: library/datetime.rst:2197 -#, fuzzy msgid "" "The :mod:`datetime` module has a basic :class:`timezone` class (for handling " "arbitrary fixed offsets from UTC) and its :attr:`timezone.utc` attribute (a " @@ -3156,14 +3099,12 @@ msgstr "" "comme instance du fuseau horaire UTC." #: library/datetime.rst:2201 -#, fuzzy msgid "" "``zoneinfo`` brings the *IANA timezone database* (also known as the Olson " "database) to Python, and its usage is recommended." msgstr "" -"La bibliothèque *dateutil.tz* apporte à Python la *base de données de " -"fuseaux horaires IANA* (aussi appelée base de données Olson), et son " -"utilisation est recommandée." +"``zoneinfo`` apporte à Python la *base de données de fuseaux horaires IANA* " +"(aussi appelée base de données Olson), et son utilisation est recommandée." #: library/datetime.rst:2208 msgid "`IANA timezone database `_" @@ -3200,7 +3141,6 @@ msgstr "" "rapport à UTC." #: library/datetime.rst:2221 -#, fuzzy msgid "" "Objects of this class cannot be used to represent timezone information in " "the locations where different offsets are used in different days of the year " @@ -3212,7 +3152,6 @@ msgstr "" "civil a fait l'objet d'ajustements." #: library/datetime.rst:2228 -#, fuzzy msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " "representing the difference between the local time and UTC. It must be " @@ -3225,14 +3164,13 @@ msgstr "" "``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." #: library/datetime.rst:2233 -#, fuzzy msgid "" "The *name* argument is optional. If specified it must be a string that will " "be used as the value returned by the :meth:`datetime.tzname` method." msgstr "" "L'argument *name* est optionnel. S'il est spécifié, il doit être une chaîne " -"de caractères qui sera utilisée comme valeur de retour de la méthode :meth:" -"`datetime.tzname`." +"qui sera utilisée comme valeur de retour de la méthode :meth:`datetime." +"tzname`." #: library/datetime.rst:2255 msgid "" @@ -3243,7 +3181,6 @@ msgstr "" "construite." #: library/datetime.rst:2247 -#, fuzzy msgid "" "The *dt* argument is ignored. The return value is a :class:`timedelta` " "instance equal to the difference between the local time and UTC." @@ -3252,7 +3189,6 @@ msgstr "" "`timedelta` égale à la différence entre le temps local et UTC." #: library/datetime.rst:2258 -#, fuzzy msgid "" "If *name* is not provided in the constructor, the name returned by " "``tzname(dt)`` is generated from the value of the ``offset`` as follows. If " @@ -3268,13 +3204,12 @@ msgstr "" "``offset.hours`` et ``offset.minutes``." #: library/datetime.rst:2264 -#, fuzzy msgid "" "Name generated from ``offset=timedelta(0)`` is now plain ``'UTC'``, not " "``'UTC+00:00'``." msgstr "" -"Le nom généré à partir de ``offset=timedelta(0)`` est maintenant \"UTC\" " -"plutôt que \"UTC+00:00\"." +"Le nom généré à partir de ``offset=timedelta(0)`` est maintenant ``'UTC'`` " +"plutôt que ``'UTC+00:00'``." #: library/datetime.rst:2271 msgid "Always returns ``None``." @@ -3297,7 +3232,6 @@ msgid ":meth:`strftime` and :meth:`strptime` Behavior" msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" #: library/datetime.rst:2293 -#, fuzzy msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " "``strftime(format)`` method, to create a string representing the time under " @@ -3305,8 +3239,8 @@ msgid "" msgstr "" "Les objets :class:`date`, :class:`.datetime` et :class:`.time` comportent " "tous une méthode ``strftime(format)``, pour créer une représentation du " -"temps sous forme d'une chaîne de caractères, contrôlée par une chaîne de " -"formatage explicite." +"temps sous forme d'une chaîne, contrôlée par une chaîne de formatage " +"explicite." #: library/datetime.rst:2297 msgid "" @@ -3340,14 +3274,14 @@ msgstr "Utilisation" #: library/datetime.rst:2307 msgid "Convert object to a string according to a given format" -msgstr "Convertit un objet en une chaîne de caractères selon un format donné" +msgstr "Convertit un objet en une chaîne selon un format donné" #: library/datetime.rst:2307 msgid "" "Parse a string into a :class:`.datetime` object given a corresponding format" msgstr "" -"Analyse une chaîne de caractères dans un objet :class:`.datetime` en " -"fonction du format de correspondance donné" +"Analyse une chaîne dans un objet :class:`.datetime` en fonction du format de " +"correspondance donné" #: library/datetime.rst:2309 msgid "Type of method" @@ -3394,15 +3328,17 @@ msgid "" "These methods accept format codes that can be used to parse and format " "dates::" msgstr "" +"Ces méthodes acceptent des codes de formatage qui peuvent être utilisés pour " +"analyser et formater les dates ::" #: library/datetime.rst:2328 msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." msgstr "" -"La liste suivante est la liste de tous les codes de formatage requis par le " -"standard C (version 1989), ils fonctionnent sur toutes les plateformes " -"possédant une implémentation de C standard." +"Voici la liste de tous les codes de formatage requis par le C standard 1989, " +"et ils fonctionnent sur toutes les plateformes possédant une implémentation " +"de C standard." #: library/datetime.rst:2435 msgid "Directive" @@ -3619,7 +3555,6 @@ msgid "``%f``" msgstr "``%f``" #: library/datetime.rst:2385 -#, fuzzy msgid "Microsecond as a decimal number, zero-padded to 6 digits." msgstr "Microsecondes sur 6 chiffres." @@ -3680,7 +3615,6 @@ msgid "``%U``" msgstr "``%U``" #: library/datetime.rst:2400 -#, fuzzy msgid "" "Week number of the year (Sunday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Sunday are " @@ -3703,15 +3637,14 @@ msgid "``%W``" msgstr "``%W``" #: library/datetime.rst:2408 -#, fuzzy msgid "" "Week number of the year (Monday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Monday are " "considered to be in week 0." msgstr "" -"Numéro de la semaine à deux chiffres (où dimanche est considéré comme le " +"Numéro de la semaine à deux chiffres (où lundi est considéré comme le " "premier jour de la semaine). Tous les jours de l'année précédent le premier " -"dimanche sont considérés comme appartenant à la semaine 0." +"lundi sont considérés comme appartenant à la semaine 0." #: library/datetime.rst:2416 msgid "``%c``" @@ -3835,7 +3768,6 @@ msgid "\\(8), \\(9)" msgstr "\\(8), \\(9)" #: library/datetime.rst:2452 -#, fuzzy msgid "" "These may not be available on all platforms when used with the :meth:" "`strftime` method. The ISO 8601 year and ISO 8601 week directives are not " @@ -3850,7 +3782,6 @@ msgstr "" "directives ISO 8601 incomplètes ou ambiguës lèvera une :exc:`ValueError`." #: library/datetime.rst:2457 -#, fuzzy msgid "" "The full set of format codes supported varies across platforms, because " "Python calls the platform C library's :func:`strftime` function, and " @@ -3863,7 +3794,9 @@ msgstr "" "plateformes, parce que Python appelle la fonction :func:`strftime` de la " "bibliothèque C de la plateforme, et les variations sont courantes. Pour voir " "un ensemble complet des codes de formatage implémentés par votre plateforme, " -"consultez la documentation de :manpage:`strftime(3)`." +"consultez la documentation de :manpage:`strftime(3)`. Il existe également " +"des différences entre les plateformes dans la gestion de format non pris en " +"charge." #: library/datetime.rst:2463 msgid "``%G``, ``%u`` and ``%V`` were added." @@ -3874,7 +3807,6 @@ msgid "Technical Detail" msgstr "Détail technique" #: library/datetime.rst:2469 -#, fuzzy msgid "" "Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " "``time.strftime(fmt, d.timetuple())`` although not all objects support a :" @@ -3910,7 +3842,6 @@ msgstr "" "``datetime.strptime`` mais pas par ``time.strptime``." #: library/datetime.rst:2485 -#, fuzzy msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " "not be used, as :class:`time` objects have no such values. If they're used " @@ -3923,7 +3854,6 @@ msgstr "" "``1900`` est utilisé pour l'année, et ``1`` pour le mois et le jour." #: library/datetime.rst:2489 -#, fuzzy msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " "microseconds should not be used, as :class:`date` objects have no such " @@ -3950,7 +3880,6 @@ msgstr "" "vide." #: library/datetime.rst:2502 -#, fuzzy msgid "" "Because the format depends on the current locale, care should be taken when " "making assumptions about the output value. Field orderings will vary (for " @@ -3959,12 +3888,8 @@ msgid "" msgstr "" "Comme le format dépend de la locale courante, les assomptions sur la valeur " "de retour doivent être prises soigneusement. L'ordre des champs variera (par " -"exemple, « mois/jour/année » versus « année/mois/jour »), et le retour " -"pourrait contenir des caractères Unicode encodés en utilisant l'encodage par " -"défaut de la locale (par exemple, si la locale courante est ``ja_JP``, " -"l'encodage par défaut pourrait être ``eucJP``, ``SJIS`` ou ``utf-8`` ; " -"utilisez :meth:`locale.getlocale` pour déterminer l'encodage de la locale " -"courante)." +"exemple, « mois/jour/année » au lieu de « année/mois/jour »), et le résultat " +"peut contenir des caractères non-ASCII." #: library/datetime.rst:2508 msgid "" @@ -4008,7 +3933,6 @@ msgstr "" "secondes intercalaires." #: library/datetime.rst:2528 -#, fuzzy msgid "" "When used with the :meth:`strptime` method, the ``%f`` directive accepts " "from one to six digits and zero pads on the right. ``%f`` is an extension to " @@ -4034,7 +3958,6 @@ msgid "For an aware object:" msgstr "Pour un objet avisé :" #: library/datetime.rst:2541 -#, fuzzy msgid "" ":meth:`utcoffset` is transformed into a string of the form ``±HHMM[SS[." "ffffff]]``, where ``HH`` is a 2-digit string giving the number of UTC offset " @@ -4048,16 +3971,16 @@ msgid "" "``'-0330'``." msgstr "" "Le résultat de :meth:`utcoffset` est transformé en une chaîne sous la forme " -"``±HHMM[SS[.uuuuuu]]``, où ``HH`` est une chaîne de deux chiffres donnant le " -"nombre d'heures du décalage UTC, où ``MM`` est une chaîne de deux chiffres " -"donnant le nombre de minutes du décalage UTC, où ``SS`` est une chaîne de " -"deux chiffres donnant le nombre de secondes du décalage UTC et où ``ffffff`` " -"est une chaîne de six chiffres donnant le nombre en micro-secondes du " -"décalage UTC. La partie ``ffffff`` est omise lorsque le décalage est un " -"nombre entier de secondes et les parties ``ffffff`` et ``SS`` sont omises " -"lorsque le décalage est un nombre entier de minutes. Par exemple, si :meth:" -"`utcoffset` renvoie ``timedelta(hours=-3, minutes=-30)``, ``%z`` est " -"remplacé par la chaîne `'-0330'``." +"``±HHMM[SS[.ffffff]]``, où ``HH`` est une chaîne de deux chiffres donnant le " +"nombre d'heures du décalage UTC, ``MM`` une chaîne de deux chiffres donnant " +"le nombre de minutes du décalage UTC, ``SS`` une chaîne de deux chiffres " +"donnant le nombre de secondes du décalage UTC et ``ffffff`` une chaîne de " +"six chiffres donnant le nombre en microsecondes du décalage UTC. La partie " +"``ffffff`` est omise lorsque le décalage est un nombre entier de secondes et " +"les parties ``ffffff`` et ``SS`` sont omises lorsque le décalage est un " +"nombre entier de minutes. Par exemple, si :meth:`utcoffset` renvoie " +"``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " +"``'-0330'``." #: library/datetime.rst:2555 msgid "" @@ -4072,7 +3995,6 @@ msgstr "" "décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." #: library/datetime.rst:2563 -#, fuzzy msgid "" "In :meth:`strftime`, ``%Z`` is replaced by an empty string if :meth:`tzname` " "returns ``None``; otherwise ``%Z`` is replaced by the returned value, which " @@ -4105,7 +4027,6 @@ msgstr "" "lèvent ``ValueError``." #: library/datetime.rst:2576 -#, fuzzy msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, an " "aware :class:`.datetime` object will be produced. The ``tzinfo`` of the " @@ -4138,7 +4059,6 @@ msgstr "" "``%Y`` ne sont pas interchangeables." #: library/datetime.rst:2593 -#, fuzzy msgid "" "When used with the :meth:`strptime` method, the leading zero is optional " "for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%j``, ``%U``, " @@ -4146,7 +4066,7 @@ msgid "" 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 " +"``%M``, ``%S``, ``%j``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert " "un zéro en entête." #: library/datetime.rst:2598 @@ -4158,7 +4078,6 @@ msgid "If, that is, we ignore the effects of Relativity" msgstr "Si on ignore les effets de la Relativité" #: library/datetime.rst:2601 -#, fuzzy msgid "" "This matches the definition of the \"proleptic Gregorian\" calendar in " "Dershowitz and Reingold's book *Calendrical Calculations*, where it's the " @@ -4172,15 +4091,14 @@ msgstr "" "conversion entre calendriers grégorien proleptique et les autres systèmes." #: library/datetime.rst:2607 -#, fuzzy msgid "" "See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " "`_ for a good explanation." msgstr "" "Voir R. H. van Gent `guide des mathématiques du calendrier ISO 8601 `_ pour une bonne " -"explication." +"web.archive.org/web/20220531051136/https://webspace.science.uu.nl/~gent0113/" +"calendar/isocalendar.htm>`_ pour une bonne explication." #: library/datetime.rst:2611 msgid "" @@ -4192,12 +4110,11 @@ msgstr "" #: library/datetime.rst:2285 msgid "% (percent)" -msgstr "" +msgstr "% (pourcentage)" #: library/datetime.rst:2285 -#, fuzzy msgid "datetime format" -msgstr "``strftime(format)``" +msgstr "Format de date et d'heure" #~ msgid "This is equivalent to::" #~ msgstr "C’est équivalent à ::" diff --git a/library/random.po b/library/random.po index bc492383..613ebe38 100644 --- a/library/random.po +++ b/library/random.po @@ -693,9 +693,9 @@ msgid "" "`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :" "class:`bytearray`." msgstr "" -"À l’avenir, la *graine* devra être de l’un des types suivants : *NoneType*, :" -"class:`int`, :class:`float`, :class:`str`, :class:`bytes` ou :class:" -"`bytearray`." +"À l’avenir, la *graine* devra être de l’un des types suivants : :class:" +"`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes` ou :" +"class:`bytearray`." #: library/random.rst:393 msgid "" From 707a3c36a3f99d5b0bc80b626dc07d92a9b28584 Mon Sep 17 00:00:00 2001 From: James Adjinwa Date: Thu, 5 Oct 2023 19:42:19 +0000 Subject: [PATCH 02/22] =?UTF-8?q?Mis=20a=20jour=20l'ann=C3=A9e=20du=20copy?= =?UTF-8?q?right=20(#198)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #197. Co-authored-by: James Adjinwa Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/198 Reviewed-by: Christophe Nanteuil Co-authored-by: James Adjinwa Co-committed-by: James Adjinwa --- copyright.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/copyright.po b/copyright.po index 8a1add1a..0bf628fb 100644 --- a/copyright.po +++ b/copyright.po @@ -6,14 +6,14 @@ 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: 2022-04-07 14:48-0400\n" -"Last-Translator: Jean-Michel Laprise \n" +"PO-Revision-Date: 2023-10-02 15:28-0600\n" +"Last-Translator: James Adjinwa \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.0.1\n" +"X-Generator: Poedit 3.4\n" #: copyright.rst:3 msgid "Copyright" @@ -24,10 +24,9 @@ msgid "Python and this documentation is:" msgstr "Python et cette documentation sont :" #: copyright.rst:7 -#, fuzzy msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved." msgstr "" -"Copyright © 2001-2022 Python Software Foundation. Tous droits réservés." +"Copyright © 2001-2023 Python Software Foundation. Tous droits réservés." #: copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." From 09978df9bfdcbeb2b7d5432f91b18a55556d1688 Mon Sep 17 00:00:00 2001 From: James Adjinwa Date: Sat, 7 Oct 2023 08:28:38 +0000 Subject: [PATCH 03/22] Mise a jour du glossaire (#200) Closes #199. Co-authored-by: James Adjinwa Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/200 Reviewed-by: Christophe Nanteuil Co-authored-by: James Adjinwa Co-committed-by: James Adjinwa --- glossary.po | 56 +++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/glossary.po b/glossary.po index 1535eddd..9a018ff0 100644 --- a/glossary.po +++ b/glossary.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2023-03-19 13:06+0100\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-10-05 22:23-0600\n" +"Last-Translator: James Adjinwa \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.1\n" +"X-Generator: Poedit 3.4\n" #: glossary.rst:5 msgid "Glossary" @@ -211,15 +211,15 @@ msgid "asynchronous context manager" msgstr "gestionnaire de contexte asynchrone" #: glossary.rst:94 -#, fuzzy msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`~object.__aenter__` and :meth:`~object." "__aexit__` methods. Introduced by :pep:`492`." msgstr "" "(*asynchronous context manager* en anglais) Objet contrôlant l'environnement " -"à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" -"meth:`__aenter__` et :meth:`__aexit__`. A été Introduit par la :pep:`492`." +"à l'intérieur d'une instruction :keyword:`async with` en définissant les " +"méthodes :meth:`~object.__aenter__` et :meth:`~object.__aexit__`. A été " +"Introduit par la :pep:`492`." #: glossary.rst:97 msgid "asynchronous generator" @@ -267,7 +267,6 @@ msgstr "" "Objet créé par un :term:`générateur asynchrone `." #: glossary.rst:115 -#, fuzzy msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" "`~object.__anext__` method returns an awaitable object which will execute " @@ -275,11 +274,11 @@ msgid "" "`yield` expression." msgstr "" "C'est un :term:`asynchronous iterator` qui, lorsqu'il est appelé via la " -"méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécute le corps " -"de la fonction du générateur asynchrone jusqu'au prochain :keyword:`yield`." +"méthode :meth:`~object.__anext__` renvoie un objet *awaitable* qui exécute " +"le corps de la fonction du générateur asynchrone jusqu'au prochain :keyword:" +"`yield`." #: glossary.rst:120 -#, fuzzy msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -288,33 +287,31 @@ msgid "" "where it left off. See :pep:`492` and :pep:`525`." msgstr "" "Chaque :keyword:`yield` suspend temporairement l'exécution, en gardant en " -"mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " +"mémoire l'emplacement 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 les :pep:`492` " -"et :pep:`525`." +"`~object.__anext__`, elle repart de là où elle s'était arrêtée. Voir les :" +"pep:`492` et :pep:`525`." #: glossary.rst:125 msgid "asynchronous iterable" msgstr "itérable asynchrone" #: glossary.rst:127 -#, fuzzy msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " "method. Introduced by :pep:`492`." msgstr "" "Objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa " -"méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A " -"été introduit par la :pep:`492`." +"méthode :meth:`~object.__aiter__` doit renvoyer un :term:`asynchronous " +"iterator`. A été introduit par la :pep:`492`." #: glossary.rst:130 msgid "asynchronous iterator" msgstr "itérateur asynchrone" #: glossary.rst:132 -#, fuzzy msgid "" "An object that implements the :meth:`~object.__aiter__` and :meth:`~object." "__anext__` methods. :meth:`~object.__anext__` must return an :term:" @@ -322,12 +319,12 @@ msgid "" "an asynchronous iterator's :meth:`~object.__anext__` method until it raises " "a :exc:`StopAsyncIteration` exception. Introduced by :pep:`492`." msgstr "" -"Objet qui implémente les méthodes :meth:`__aiter__` et :meth:`__anext__`. " -"``__anext__`` doit renvoyer un objet :term:`awaitable`. Tant que la méthode :" -"meth:`__anext__` produit des objets *awaitable*, le :keyword:`async for` " -"appelant les consomme. L'itérateur asynchrone lève une exception :exc:" -"`StopAsyncIteration` pour signifier la fin de l'itération. A été introduit " -"par la :pep:`492`." +"Objet qui implémente les méthodes :meth:`~object.__aiter__` et :meth:" +"`~object.__anext__`. :meth:`~object.__anext__` doit renvoyer un objet :term:" +"`awaitable`. Tant que la méthode :meth:`~object.__anext__` produit des " +"objets *awaitable*, le :keyword:`async for` appelant les consomme. " +"L'itérateur asynchrone lève une exception :exc:`StopAsyncIteration` pour " +"signifier la fin de l'itération. A été introduit par la :pep:`492`." #: glossary.rst:137 msgid "attribute" @@ -362,15 +359,14 @@ msgid "awaitable" msgstr "attendable (*awaitable*)" #: glossary.rst:151 -#, fuzzy msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" "term:`coroutine` or an object with an :meth:`~object.__await__` method. See " "also :pep:`492`." msgstr "" "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`." +"être une :term:`coroutine` ou un objet avec une méthode :meth:`~object." +"__await__`. Voir aussi la :pep:`492`." #: glossary.rst:154 msgid "BDFL" @@ -2709,8 +2705,8 @@ msgstr "encodages de texte" #: glossary.rst:1145 msgid "" -"A string in Python is a sequence of Unicode code points (in range " -"``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " +"A string in Python is a sequence of Unicode code points (in range ``U" +"+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " "serialized as a sequence of bytes." msgstr "" "Une chaîne de caractères en Python est une suite de points de code Unicode " @@ -2782,8 +2778,8 @@ msgstr "" "qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " "pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " "simples et doubles dans une chaîne sans avoir à les protéger et elle peut " -"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un " -"``\\``. Elle est ainsi particulièrement utile pour les chaînes de " +"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un ``" +"\\``. Elle est ainsi particulièrement utile pour les chaînes de " "documentation (*docstrings*)." #: glossary.rst:1175 From 7c032b9061ed86c6af0252e2e8d5484c8ddb1e5c Mon Sep 17 00:00:00 2001 From: eviau Date: Mon, 23 Oct 2023 15:36:17 +0000 Subject: [PATCH 04/22] =?UTF-8?q?Mise-=C3=A0-jour=20bugs.po=20(#207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bonjour ✨ Je fais quelques corrections de messages *fuzzy* - voici mes suggestions. Pour le forum Discourse j'ai pris une liberté... on peut en discuter. Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/207 Reviewed-by: Christophe Nanteuil Co-authored-by: eviau Co-committed-by: eviau --- bugs.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bugs.po b/bugs.po index 6a6ffe6f..d3611619 100644 --- a/bugs.po +++ b/bugs.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-14 13:19+0200\n" -"PO-Revision-Date: 2022-12-11 17:39+0100\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-10-21 08:46-0400\n" +"Last-Translator: Edith Viau \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.1\n" +"X-Generator: Poedit 3.0.1\n" #: bugs.rst:5 msgid "Dealing with Bugs" @@ -64,6 +64,8 @@ msgid "" "You can also open a discussion item on our `Documentation Discourse forum " "`_." msgstr "" +"Vous pouvez aussi commenter une discussion sur le `forum de discussion de la " +"documentation `_." #: bugs.rst:25 msgid "" @@ -192,13 +194,12 @@ msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*." #: bugs.rst:72 -#, fuzzy msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." msgstr "" "Dans le champ *Title*, entrez une *très* brève description du problème " -"rencontré ; tâchez de vous limiter à dix mots." +"rencontré : dix mots ou moins suffiront." #: bugs.rst:75 msgid "" From 9527ea2b9173578720c6b9ed96217942bbc57e0c Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Mon, 6 Nov 2023 14:43:50 +0000 Subject: [PATCH 05/22] Missing star in library/functions (#211) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/211 Reviewed-by: Christophe Nanteuil Co-authored-by: Julien Palard Co-committed-by: Julien Palard --- library/functions.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/functions.po b/library/functions.po index 44749074..eff8b4c4 100644 --- a/library/functions.po +++ b/library/functions.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2023-04-08 14:42+0200\n" +"PO-Revision-Date: 2023-11-06 11:44+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -82,7 +82,7 @@ msgstr "|func-bytes|_" #: library/functions.rst:0 msgid "**C**" -msgstr "*C**" +msgstr "**C**" #: library/functions.rst:0 msgid ":func:`callable`" From 1ff8b3c030bebf959b43329f2f51b3c47d704619 Mon Sep 17 00:00:00 2001 From: "houedji.espoir" Date: Sat, 18 Nov 2023 10:34:16 +0000 Subject: [PATCH 06/22] Traduction de library/io.po (#218) Closes #208 Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/218 Reviewed-by: Christophe Nanteuil Co-authored-by: houedji.espoir Co-committed-by: houedji.espoir --- library/io.po | 55 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/library/io.po b/library/io.po index 52393324..4df3816f 100644 --- a/library/io.po +++ b/library/io.po @@ -6,22 +6,23 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2018-07-03 11:13+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2023-11-17 23:38+0100\n" +"PO-Revision-Date: 2023-11-14 22:46+0100\n" +"Last-Translator: Houedji Espoir \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/io.rst:2 msgid ":mod:`io` --- Core tools for working with streams" -msgstr "" +msgstr ":mod:`io` — Outils de base pour l'utilisation des flux" #: library/io.rst:15 -#, fuzzy msgid "**Source code:** :source:`Lib/io.py`" -msgstr "**Code source:** :source:`Lib/os.py`" +msgstr "**Code source:** :source:`Lib/io.py`" #: library/io.rst:22 msgid "Overview" @@ -62,7 +63,7 @@ msgstr "" #: library/io.rst:855 library/io.rst:1122 msgid "Text I/O" -msgstr "" +msgstr "Entrée/sortie de texte" #: library/io.rst:53 msgid "" @@ -77,17 +78,23 @@ msgid "" "The easiest way to create a text stream is with :meth:`open()`, optionally " "specifying an encoding::" msgstr "" +"Le moyen le plus simple de créer un flux de texte est d'utiliser la méthode :" +"meth:`open()` en précisant éventuellement un encodage ::" #: library/io.rst:63 msgid "" "In-memory text streams are also available as :class:`StringIO` objects::" msgstr "" +"Les flux de texte en mémoire sont également disponible sous forme d'objets :" +"class:`StringIO` ::" #: library/io.rst:67 msgid "" "The text stream API is described in detail in the documentation of :class:" "`TextIOBase`." msgstr "" +"L'API de flux textuel est décrite en détail dans la documentation de la " +"classe :class:`TextIOBase`." #: library/io.rst:1110 msgid "Binary I/O" @@ -112,18 +119,25 @@ msgstr "" msgid "" "In-memory binary streams are also available as :class:`BytesIO` objects::" msgstr "" +"Les flux de texte en mémoire sont également disponible sous forme d'objets :" +"class:`BytesIO` ::" #: library/io.rst:89 msgid "" "The binary stream API is described in detail in the docs of :class:" "`BufferedIOBase`." msgstr "" +"L'API du flux binaire est décrite en détail dans la documentation de la " +"classe :class:`BufferedIOBase`." #: library/io.rst:92 msgid "" "Other library modules may provide additional ways to create text or binary " "streams. See :meth:`socket.socket.makefile` for example." msgstr "" +"D'autres bibliothèques peuvent fournir des moyens supplémentaires pour créer " +"des flux de texte ou flux binaire. Voir la méthode :meth:`socket.socket." +"makefile` par exemple." #: library/io.rst:97 msgid "Raw I/O" @@ -144,7 +158,7 @@ msgstr "" #: library/io.rst:112 msgid "Text Encoding" -msgstr "" +msgstr "Encodage de texte" #: library/io.rst:114 msgid "" @@ -177,6 +191,8 @@ msgid "" "Python UTF-8 Mode can be used to change the default encoding to UTF-8 from " "locale-specific encoding." msgstr "" +"Le mode UTF-8 de Python peut être utilisé pour changer l'encodage par défaut " +"en UTF-8 à partir d'un encodage local spécifique." #: library/io.rst:137 msgid ":pep:`686`" @@ -213,7 +229,7 @@ msgstr "" #: library/io.rst:162 msgid "High-level Module Interface" -msgstr "" +msgstr "Interface de haut niveau du module" #: library/io.rst:166 msgid "" @@ -397,7 +413,7 @@ msgstr "" #: library/io.rst:294 msgid "Mixin Methods and Properties" -msgstr "" +msgstr "Méthodes et propriétés de Mixin" #: library/io.rst:301 library/io.rst:305 msgid ":class:`IOBase`" @@ -775,7 +791,7 @@ msgstr "" #: library/io.rst:553 msgid "Separate the underlying raw stream from the buffer and return it." -msgstr "" +msgstr "Sépare le flux brut sous-jacent du tampon et le renvoie." #: library/io.rst:555 msgid "" @@ -962,6 +978,8 @@ msgid "" "The file name. This is the file descriptor of the file when no name is " "given in the constructor." msgstr "" +"Le nom du fichier. C'est le descripteur du fichier lorsqu'aucun nom n'est " +"donné dans le constructeur." #: library/io.rst:692 msgid "Buffered Streams" @@ -1371,7 +1389,7 @@ msgstr "" #: library/io.rst:998 msgid "The *write_through* argument has been added." -msgstr "" +msgstr "Le paramètre *write_through* a été ajouté." #: library/io.rst:1001 msgid "" @@ -1418,15 +1436,20 @@ msgid "" "already been read from the stream. On the other hand, changing encoding " "after write is possible." msgstr "" +"Il n'est pas possible de modifier l'encodage ou une nouvelle ligne si des " +"données ont déjà été lues à partir du flux. En revanche, il est possible de " +"modifier l'encodage après l'écriture." #: library/io.rst:1038 msgid "" "This method does an implicit stream flush before setting the new parameters." msgstr "" +"Cette méthode effectue un nettoyage implicite du flux avant de définir les " +"nouveaux paramètres." #: library/io.rst:1043 msgid "The method supports ``encoding=\"locale\"`` option." -msgstr "" +msgstr "La méthode prend en charge l'option ``encoding=\"locale\"``." #: library/io.rst:1049 msgid "" @@ -1490,6 +1513,8 @@ msgid "" "This section discusses the performance of the provided concrete I/O " "implementations." msgstr "" +"Cette section aborde les performances des implémentations concrètes d'Entrée/" +"Sortie fournies." #: library/io.rst:1112 msgid "" @@ -1541,10 +1566,12 @@ msgstr "" #: library/io.rst:1145 msgid ":class:`TextIOWrapper` objects are not thread-safe." msgstr "" +"les objets :class:`TextIOWrapper` ne sont pas compatibles avec les " +"programmes à fils d'exécutions multiples." #: library/io.rst:1148 msgid "Reentrancy" -msgstr "" +msgstr "Réentrance" #: library/io.rst:1150 msgid "" @@ -1567,7 +1594,7 @@ msgstr "" #: library/io.rst:24 msgid "file object" -msgstr "" +msgstr "objet fichier" #: library/io.rst:24 msgid "io module" From c1816e6115fa976181ac2ec614fb6ed9693d5b36 Mon Sep 17 00:00:00 2001 From: eviau Date: Sun, 19 Nov 2023 23:01:21 +0000 Subject: [PATCH 07/22] =?UTF-8?q?fuzzy=20et=20traductions=20suppl=C3=A9men?= =?UTF-8?q?taires=20g=C3=A9n=C3=A9rales=20pour=20sphinx.po=20(#223)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #222 Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/223 Reviewed-by: Yannick Gingras Co-authored-by: eviau Co-committed-by: eviau --- sphinx.po | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sphinx.po b/sphinx.po index 24d49351..e99c2e89 100644 --- a/sphinx.po +++ b/sphinx.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-10-18 12:24+0200\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-11-19 11:55-0500\n" +"Last-Translator: Édith Viau \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.0\n" +"X-Generator: Poedit 3.0.1\n" #: tools/templates/customsourcelink.html:3 msgid "This Page" @@ -45,15 +45,15 @@ msgstr "" #: tools/templates/dummy.html:12 msgid "Return value: Always NULL." -msgstr "" +msgstr "Valeur de retour : toujours NULL." #: tools/templates/dummy.html:13 msgid "Return value: New reference." -msgstr "" +msgstr "Valeur de retour : nouvelle référence." #: tools/templates/dummy.html:14 msgid "Return value: Borrowed reference." -msgstr "" +msgstr "Valeur de retour : référence empruntée." #: tools/templates/dummy.html:18 msgid "in development" @@ -308,11 +308,13 @@ msgid "" "%(pr_id)s\">pull request.\n" " For authoritative documentation, see the " msgstr "" +"Ceci est un aperçu déployé à partir d'une demande d'ajout.\n" +"Pour la documentation officielle, consultez " #: tools/templates/layout.html:16 -#, fuzzy msgid " the current stable release" -msgstr "Bienvenue sur la documentation de la version stable actuelle de Python" +msgstr "ceci est la version stable actuelle" #~ msgid "Python 3.8 (stable)" #~ msgstr "Python 3.8 (stable)" From ad8e6dbbd47028541e72325aabe5b3dee82d2bb6 Mon Sep 17 00:00:00 2001 From: eviau Date: Sun, 19 Nov 2023 23:04:30 +0000 Subject: [PATCH 08/22] tutorial/stdlib (#225) Closes #224 Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/225 Reviewed-by: Yannick Gingras Co-authored-by: eviau Co-committed-by: eviau --- tutorial/stdlib.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 902141bb..ba95a39f 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-05-24 18:32+0200\n" -"Last-Translator: Loc Cosnier \n" +"PO-Revision-Date: 2023-11-19 12:26-0500\n" +"Last-Translator: Édith Viau \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -74,18 +74,17 @@ msgid "Command Line Arguments" msgstr "Paramètres passés en ligne de commande" #: tutorial/stdlib.rst:66 -#, fuzzy msgid "" "Common utility scripts often need to process command line arguments. These " "arguments are stored in the :mod:`sys` module's *argv* attribute as a list. " "For instance the following output results from running ``python demo.py one " "two three`` at the command line::" msgstr "" -"Typiquement, les outils en ligne de commande ont besoin de lire les " +"Habituellement, les outils en ligne de commande ont besoin de traiter des " "paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " -"variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " -"exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " -"two three`` depuis la ligne de commande ::" +"variable *argv* du module :mod:`sys` sous la forme d'une liste. Par exemple, " +"l'affichage suivant vient de l'exécution de ``python demo.py one two three`` " +"depuis la ligne de commande ::" #: tutorial/stdlib.rst:75 msgid "" @@ -390,8 +389,8 @@ msgstr "" #: tutorial/stdlib.rst:27 msgid "built-in function" -msgstr "" +msgstr "fonction native" #: tutorial/stdlib.rst:27 msgid "help" -msgstr "" +msgstr "aide" From e13701a98a93365740739f2ce09b0b1b11d4cbfd Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Fri, 24 Nov 2023 06:05:11 +0000 Subject: [PATCH 09/22] traduction de email - 4e partie (#185) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/185 Reviewed-by: Yannick Gingras Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- library/email.compat32-message.po | 451 +++++++++++++++++++++++++++++- library/email.contentmanager.po | 141 +++++++++- 2 files changed, 564 insertions(+), 28 deletions(-) diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 57dc675f..b103a779 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -6,19 +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: 2023-08-28 00:13+0200\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: Christophe Nanteuil \n" +"X-Generator: Poedit 2.4.2\n" #: library/email.compat32-message.rst:4 msgid "" ":mod:`email.message.Message`: Representing an email message using the :data:" "`~email.policy.compat32` API" msgstr "" +":mod:`email.message.Message` : représentation d'un message électronique à " +"l'aide de l'API :data:`~email.policy.compat32`" #: library/email.compat32-message.rst:12 msgid "" @@ -29,10 +32,17 @@ msgid "" "message.EmailMessage` class, are not recommended unless you are dealing with " "legacy code." msgstr "" +"La classe :class:`Message` est très similaire à la classe :class:`~email." +"message.EmailMessage`, sans les méthodes ajoutées par cette classe et avec " +"le comportement par défaut légèrement différent pour certaines autres " +"méthodes. Nous documentons également ici certaines méthodes qui, bien que " +"prises en charge par la classe :class:`~email.message.EmailMessage`, ne sont " +"pas recommandées, sauf si vous avez affaire à du code hérité." #: library/email.compat32-message.rst:19 msgid "The philosophy and structure of the two classes is otherwise the same." msgstr "" +"La philosophie et la structure des deux classes sont par ailleurs les mêmes." #: library/email.compat32-message.rst:21 msgid "" @@ -41,6 +51,10 @@ msgid "" "another policy, you should be using the :class:`~email.message.EmailMessage` " "class instead." msgstr "" +"Ce document décrit le comportement avec les règles par défaut (pour :class:" +"`Message`) :attr:`~email.policy.Compat32`. Si vous envisagez d'utiliser " +"d'autres règles, vous devriez plutôt utiliser la classe :class:`~email." +"message.EmailMessage`." #: library/email.compat32-message.rst:25 msgid "" @@ -53,6 +67,15 @@ msgid "" "message having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:" "`message/rfc822`." msgstr "" +"Un message électronique se compose d'*en-têtes* et d'une *charge utile*. Les " +"en-têtes doivent être des noms et des valeurs de style :rfc:`5322`, où le " +"nom et la valeur du champ sont séparés par deux-points. Les deux-points ne " +"font partie ni du nom du champ ni de la valeur du champ. La charge utile " +"peut être un simple message texte, ou un objet binaire, ou une séquence " +"structurée de sous-messages chacun avec son propre ensemble d'en-têtes et sa " +"propre charge utile. Ce dernier type de charge utile est indiqué par le " +"message ayant un type MIME tel que :mimetype:`multipart/\\*` ou :mimetype:" +"`message/rfc822`." #: library/email.compat32-message.rst:34 msgid "" @@ -63,6 +86,13 @@ msgid "" "over the object tree. Note that duplicate headers are supported but special " "methods must be used to access them." msgstr "" +"Le modèle conceptuel fourni par un objet :class:`Message` est celui d'un " +"dictionnaire ordonné d'en-têtes avec des méthodes supplémentaires pour " +"accéder à la fois aux informations spécialisées des en-têtes, pour accéder à " +"la charge utile, pour générer une version sérialisée du message et pour " +"parcourir récursivement l'arbre d'objets. Notez que les en-têtes en double " +"sont pris en charge mais que des méthodes spéciales doivent être utilisées " +"pour y accéder." #: library/email.compat32-message.rst:41 msgid "" @@ -77,10 +107,22 @@ msgid "" "list of :class:`Message` objects, for MIME container documents (e.g. :" "mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." msgstr "" +"Le pseudo-dictionnaire :class:`Message` est indicé par les noms d'en-tête, " +"qui doivent être des valeurs ASCII. Les valeurs du dictionnaire sont des " +"chaînes censées contenir uniquement des caractères ASCII ; il existe une " +"gestion spéciale pour les entrées non ASCII, mais cela ne produit pas " +"toujours les résultats corrects. Les en-têtes sont stockés et renvoyés sous " +"une forme respectant la casse, mais les noms de champ sont mis en " +"correspondance sans tenir compte de la casse. Il peut également y avoir un " +"seul en-tête d'enveloppe, également appelé en-tête *Unix-From* ou en-tête " +"``From_``. La *charge utile* est soit une chaîne ou des octets, dans le cas " +"d'objets message simples, soit une liste d'objets :class:`Message`, pour les " +"documents conteneurs MIME (par exemple :mimetype:`multipart/\\*` et :" +"mimetype:`message/rfc822`)." #: library/email.compat32-message.rst:52 msgid "Here are the methods of the :class:`Message` class:" -msgstr "" +msgstr "Voici les méthodes de la classe :class:`Message` :" #: library/email.compat32-message.rst:57 msgid "" @@ -91,10 +133,17 @@ msgid "" "Python 3.2 version of the email package. For more information see the :mod:" "`~email.policy` documentation." msgstr "" +"Si *policy* est spécifié (il doit s'agir d'une instance d'une classe :mod:" +"`~email.policy`), utilise les règles spécifiées pour mettre à jour et " +"sérialiser la représentation du message. Si *policy* n'est pas défini, " +"utilise les règles :class:`compat32 `, qui maintient " +"la rétrocompatibilité avec la version Python 3.2 du paquet de messagerie. " +"Pour plus d'informations, consultez la documentation :mod:`~email.policy`." +# suit un : #: library/email.compat32-message.rst:64 msgid "The *policy* keyword argument was added." -msgstr "" +msgstr "l'argument nommé *policy* a été ajouté." #: library/email.compat32-message.rst:69 msgid "" @@ -108,6 +157,16 @@ msgid "" "control some of the formatting produced by the method, since the specified " "*policy* will be passed to the ``Generator``." msgstr "" +"Renvoie le message entier aplati sous forme de chaîne. Lorsque l'option " +"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " +"renvoyée. *unixfrom* par défaut est ``False``. Pour des raisons de " +"compatibilité descendante, *maxheaderlen* est par défaut à ``0``, donc si " +"vous voulez une valeur différente, vous devez la remplacer explicitement (la " +"valeur spécifiée pour *max_line_length* dans la politique sera ignorée par " +"cette méthode). L'argument *policy* peut être utilisé pour remplacer les " +"règles par défaut obtenues à partir de l'instance de message. Cela peut être " +"utilisé pour contrôler une partie du formatage produit par la méthode, " +"puisque la *policy* spécifiée est transmise au ``Generator``." #: library/email.compat32-message.rst:79 library/email.compat32-message.rst:121 msgid "" @@ -115,6 +174,10 @@ msgid "" "defaults need to be filled in to complete the transformation to a string " "(for example, MIME boundaries may be generated or modified)." msgstr "" +"L'aplatissement du message peut déclencher des changements dans :class:" +"`Message` si les valeurs par défaut doivent être renseignées pour terminer " +"la transformation en chaîne (par exemple, les limites MIME peuvent être " +"générées ou modifiées)." #: library/email.compat32-message.rst:83 msgid "" @@ -125,6 +188,12 @@ msgid "" "Generator` instance and use its :meth:`~email.generator.Generator.flatten` " "method directly. For example::" msgstr "" +"Notez que cette méthode est fournie à titre de commodité et peut ne pas " +"toujours formater le message comme vous le souhaitez. Par exemple, par " +"défaut, elle ne reformate pas les lignes qui commencent par ``From`` qui est " +"requis par le format *mbox* Unix. Pour plus de flexibilité, instanciez une " +"instance :class:`~email.generator.Generator` et utilisez sa méthode :meth:" +"`~email.generator.Generator.flatten` directement. Par exemple ::" #: library/email.compat32-message.rst:97 msgid "" @@ -133,16 +202,22 @@ msgid "" "character\" code points. (See also :meth:`.as_bytes` and :class:`~email." "generator.BytesGenerator`.)" msgstr "" +"Si l'objet message contient des données binaires qui ne sont pas encodées " +"selon les normes RFC, les données non conformes seront remplacées par des " +"points de code Unicode « caractère inconnu » (voir aussi :meth:`.as_bytes` " +"et :class:`~email.generator.BytesGenerator`)." #: library/email.compat32-message.rst:102 msgid "the *policy* keyword argument was added." -msgstr "" +msgstr "l'argument nommé *policy* a été ajouté." #: library/email.compat32-message.rst:107 msgid "" "Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a string " "containing the formatted message." msgstr "" +"Équivalent à :meth:`.as_string()`. Permet à ``str(msg)`` de produire une " +"chaîne contenant le message formaté." #: library/email.compat32-message.rst:113 msgid "" @@ -153,6 +228,13 @@ msgid "" "used to control some of the formatting produced by the method, since the " "specified *policy* will be passed to the ``BytesGenerator``." msgstr "" +"Renvoie le message entier aplati en tant qu'objet bytes. Lorsque l'option " +"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " +"renvoyée. *unixfrom* par défaut est ``False``. L'argument *policy* peut être " +"utilisé pour remplacer les règles par défaut obtenues à partir de l'instance " +"de message. Cela peut être utilisé pour contrôler une partie du formatage " +"produit par la méthode, puisque la *policy* spécifiée est passée au " +"``BytesGenerator``." #: library/email.compat32-message.rst:125 msgid "" @@ -163,12 +245,20 @@ msgid "" "BytesGenerator` instance and use its :meth:`~email.generator.BytesGenerator." "flatten` method directly. For example::" msgstr "" +"Notez que cette méthode est fournie à titre de commodité et peut ne pas " +"toujours formater le message comme vous le souhaitez. Par exemple, par " +"défaut, elle ne reformate pas les lignes qui commencent par ``From`` qui est " +"requis par le format *mbox* Unix. Pour plus de flexibilité, instanciez une " +"instance :class:`~email.generator.BytesGenerator` et utilisez sa méthode :" +"meth:`~email.generator.BytesGenerator.flatten` directement. Par exemple ::" #: library/email.compat32-message.rst:145 msgid "" "Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " "object containing the formatted message." msgstr "" +"Équivalent à :meth:`.as_bytes()`. Permet à ``bytes(msg)`` de produire un " +"objet bytes contenant le message formaté." #: library/email.compat32-message.rst:153 msgid "" @@ -180,17 +270,29 @@ msgid "" "'multipart'\" will return the ``True``. For example, ``is_multipart`` will " "return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" msgstr "" +"Renvoie ``True`` si la charge utile du message est une liste d'objets sous-" +"\\ :class:`Message`, sinon renvoie ``False``. Lorsque :meth:`is_multipart` " +"renvoie ``False``, la charge utile doit être un objet chaîne (qui peut être " +"une charge utile binaire encodée CTE). (Notez que :meth:`is_multipart` " +"renvoyant ``True`` ne signifie pas nécessairement que ``msg." +"get_content_maintype() == 'multipart'`` renvoie ``True``. Par exemple, " +"``is_multipart`` renvoie ``True`` lorsque le :class:`Message` est de type " +"``message/rfc822``.)" #: library/email.compat32-message.rst:165 msgid "" "Set the message's envelope header to *unixfrom*, which should be a string." msgstr "" +"Définit l'en-tête de l'enveloppe du message sur *unixfrom*, qui doit être " +"une chaîne." #: library/email.compat32-message.rst:170 msgid "" "Return the message's envelope header. Defaults to ``None`` if the envelope " "header was never set." msgstr "" +"Renvoie l'en-tête de l'enveloppe du message. La valeur par défaut est " +"``None`` si l'en-tête de l'enveloppe n'a jamais été défini." #: library/email.compat32-message.rst:176 msgid "" @@ -200,6 +302,11 @@ msgid "" "set the payload to a scalar object (e.g. a string), use :meth:`set_payload` " "instead." msgstr "" +"Ajoute le *payload* donné à la charge utile actuelle, qui doit être ``None`` " +"ou une liste d'objets :class:`Message` avant l'appel. Après l'appel, la " +"charge utile sera toujours une liste d'objets :class:`Message`. Si vous " +"souhaitez définir la charge utile sur un objet scalaire (par exemple, une " +"chaîne), utilisez :meth:`set_payload` à la place." #: library/email.compat32-message.rst:182 msgid "" @@ -207,6 +314,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content` and the related ``make`` and ``add`` methods." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage` sa fonctionnalité est remplacée par :meth:`~email.message." +"EmailMessage.set_content` et les méthodes associées ``make`` et ``add``." #: library/email.compat32-message.rst:190 msgid "" @@ -215,6 +325,11 @@ msgid "" "is ``False``. If the payload is a list and you mutate the list object, you " "modify the message's payload in place." msgstr "" +"Renvoie la charge utile actuelle, qui est une liste d'objets :class:" +"`Message` lorsque :meth:`is_multipart` est ``True``, ou une chaîne lorsque :" +"meth:`is_multipart` est ``False``. Si la charge utile est une liste et que " +"vous modifiez l'objet liste, vous modifiez la charge utile du message « sur " +"place »." #: library/email.compat32-message.rst:195 msgid "" @@ -225,6 +340,12 @@ msgid "" "is a string (i.e. :meth:`is_multipart` is ``False``) and *i* is given, a :" "exc:`TypeError` is raised." msgstr "" +"Avec l'argument optionnel *i*, :meth:`get_payload` renvoie le *i*:sup:`ème` " +"élément de la charge utile, en partant de zéro, si :meth:`is_multipart` vaut " +"``True``. Une :exc:`IndexError` est levée si *i* est inférieur à 0 ou " +"supérieur ou égal au nombre d'éléments dans la charge utile. Si la charge " +"utile est une chaîne (c'est-à-dire que :meth:`is_multipart` est ``False``) " +"et que *i* est donné, une :exc:`TypeError` est levée." #: library/email.compat32-message.rst:202 msgid "" @@ -241,6 +362,20 @@ msgid "" "message's defect property (:class:`~email.errors.InvalidBase64PaddingDefect` " "or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." msgstr "" +"*decode* est un indicateur facultatif indiquant si la charge utile doit être " +"décodée ou non, selon l'en-tête :mailheader:`Content-Transfer-Encoding`. " +"Lorsqu'il vaut ``True`` et que le message n'est pas en plusieurs parties, la " +"charge utile est décodée si la valeur de cet en-tête est ``quoted-" +"printable`` ou ``base64``. Si un autre encodage est utilisé, ou si l'en-" +"tête :mailheader:`Content-Transfer-Encoding` est manquant, la charge utile " +"est renvoyée telle quelle (non décodée). Dans tous les cas, la valeur " +"renvoyée est une donnée binaire. Si le message est en plusieurs parties et " +"que l'indicateur *decode* est ``True``, alors ``None`` est renvoyé. Si la " +"charge utile est en base64 et qu'elle n'a pas été parfaitement formée " +"(remplissage manquant, caractères en dehors de l'alphabet base64), alors un " +"défaut approprié est ajouté à la propriété de défaut du message (:class:" +"`~email.errors.InvalidBase64PaddingDefect` ou :class:`~email.errors." +"InvalidBase64CharactersDefect`, respectivement)." #: library/email.compat32-message.rst:216 msgid "" @@ -252,6 +387,15 @@ msgid "" "``charset`` is specified, or if the ``charset`` given is not recognized by " "the email package, the body is decoded using the default ASCII charset." msgstr "" +"Lorsque *decode* est ``False`` (valeur par défaut), le corps est renvoyé " +"sous forme de chaîne sans décoder le :mailheader:`Content-Transfer-" +"Encoding`. Cependant, pour un :mailheader:`Content-Transfer-Encoding` de 8 " +"bits, une tentative est faite pour décoder les octets d'origine en utilisant " +"le ``charset`` spécifié par l'en-tête :mailheader:`Content-Type`, en " +"utilisant le gestionnaire d'erreurs ``replace``. Si aucun ``charset`` n'est " +"spécifié, ou si le ``charset`` donné n'est pas reconnu par le paquet de " +"messagerie, le corps est décodé en utilisant le jeu de caractères ASCII par " +"défaut." #: library/email.compat32-message.rst:225 msgid "" @@ -259,6 +403,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "get_content` and :meth:`~email.message.EmailMessage.iter_parts`." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage` sa fonctionnalité est remplacée par :meth:`~email.message." +"EmailMessage.get_content` et :meth:`~email.message.EmailMessage.iter_parts`." #: library/email.compat32-message.rst:233 msgid "" @@ -266,6 +413,10 @@ msgid "" "responsibility to ensure the payload invariants. Optional *charset* sets " "the message's default character set; see :meth:`set_charset` for details." msgstr "" +"Définit la charge utile de l'objet message entier à *payload*. Il est de la " +"responsabilité du client de s'assurer des invariants de la charge utile. Le " +"*charset* facultatif définit le jeu de caractères par défaut du message ; " +"voir :meth:`set_charset` pour plus de détails." #: library/email.compat32-message.rst:237 msgid "" @@ -273,6 +424,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content`." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage` sa fonctionnalité est remplacée par :meth:`~email.message." +"EmailMessage.set_content`." #: library/email.compat32-message.rst:244 msgid "" @@ -284,6 +438,13 @@ msgid "" "`Content-Type` header (the message will not be otherwise modified). " "Anything else will generate a :exc:`TypeError`." msgstr "" +"Définit le jeu de caractères de la charge utile à *charset*, qui peut être " +"soit une instance de :class:`~email.charset.Charset` (voir :mod:`email." +"charset`), une chaîne nommant un jeu de caractères ou ``None``. S'il s'agit " +"d'une chaîne, elle est convertie en une instance :class:`~email.charset." +"Charset`. Si *charset* est ``None``, le paramètre ``charset`` est supprimé " +"de l'en-tête :mailheader:`Content-Type` (le message n'est pas modifié " +"autrement). Tout le reste lève une :exc:`TypeError`." #: library/email.compat32-message.rst:252 msgid "" @@ -301,6 +462,19 @@ msgid "" "correctly encoded using that :mailheader:`Content-Transfer-Encoding` and is " "not modified." msgstr "" +"S'il n'y a pas d'en-tête :mailheader:`MIME-Version` existant, un en-tête est " +"ajouté. S'il n'y a pas d'en-tête :mailheader:`Content-Type`, un en-tête est " +"ajouté avec une valeur de :mimetype:`text/plain`. Que l'en-tête :mailheader:" +"`Content-Type` existe déjà ou non, son paramètre ``charset`` est défini sur " +"*charset.output_charset*. Si *charset.input_charset* et *charset." +"output_charset* diffèrent, la charge utile est ré-encodée dans le " +"*output_charset*. S'il n'y a pas d'en-tête :mailheader:`Content-Transfer-" +"Encoding` existant, alors la charge utile est encodée par transfert, si " +"nécessaire, en utilisant le :class:`~email.charset.Charset` spécifié et un " +"en-tête avec cette valeur est ajouté. Si un en-tête :mailheader:`Content-" +"Transfer-Encoding` existe déjà, la charge utile est supposée être déjà " +"correctement encodée à l'aide de cet en-tête :mailheader:`Content-Transfer-" +"Encoding` et n'est pas modifiée." #: library/email.compat32-message.rst:266 msgid "" @@ -308,18 +482,25 @@ msgid "" "class its functionality is replaced by the *charset* parameter of the :meth:" "`email.emailmessage.EmailMessage.set_content` method." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage` sa fonctionnalité est remplacée par le paramètre *charset* de " +"la méthode :meth:`email.emailmessage.EmailMessage.set_content`." #: library/email.compat32-message.rst:274 msgid "" "Return the :class:`~email.charset.Charset` instance associated with the " "message's payload." msgstr "" +"Renvoie l'instance :class:`~email.charset.Charset` associée à la charge " +"utile du message." #: library/email.compat32-message.rst:277 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class it always returns ``None``." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage`, elle renvoie toujours ``None``." #: library/email.compat32-message.rst:282 msgid "" @@ -333,18 +514,33 @@ msgid "" "the original message, or were added to the message later. Any header " "deleted and then re-added are always appended to the end of the header list." msgstr "" +"Les méthodes suivantes implémentent une interface de type correspondance " +"pour accéder aux en-têtes :rfc:`2822` du message. Notez qu'il existe des " +"différences sémantiques entre ces méthodes et une interface de " +"correspondance normale (c'est-à-dire un dictionnaire). Par exemple, dans un " +"dictionnaire, il n'y a pas de clés en double, mais ici, il peut y avoir des " +"en-têtes de message en double. De plus, dans les dictionnaires, il n'y a pas " +"d'ordre garanti pour les clés renvoyées par :meth:`keys`, mais dans un " +"objet :class:`Message`, les en-têtes sont toujours renvoyés dans l'ordre " +"dans lequel ils sont apparus dans le message d'origine, ou ont été ajoutés " +"au message plus tard. Tout en-tête supprimé puis rajouté est toujours ajouté " +"à la fin de la liste des en-têtes." #: library/email.compat32-message.rst:292 msgid "" "These semantic differences are intentional and are biased toward maximal " "convenience." msgstr "" +"Ces différences sémantiques sont intentionnelles et visent une commodité " +"maximale." #: library/email.compat32-message.rst:295 msgid "" "Note that in all cases, any envelope header present in the message is not " "included in the mapping interface." msgstr "" +"Notez que dans tous les cas, tout en-tête d'enveloppe présent dans le " +"message n'est pas inclus dans l'interface de correspondance." #: library/email.compat32-message.rst:298 msgid "" @@ -353,10 +549,14 @@ msgid "" "interface, be represented as :class:`~email.header.Header` objects with a " "charset of ``unknown-8bit``." msgstr "" +"Dans un modèle généré à partir d'octets, toutes les valeurs d'en-tête qui " +"(en violation des RFC) contiennent des octets non-ASCII sont, lorsqu'elles " +"sont récupérées via cette interface, représentées comme des objets :class:" +"`~email.header.Header` avec un *charset* à ``unknown-8bit``." #: library/email.compat32-message.rst:306 msgid "Return the total number of headers, including duplicates." -msgstr "" +msgstr "Renvoie le nombre total d'en-têtes, y compris les doublons." #: library/email.compat32-message.rst:311 msgid "" @@ -364,6 +564,9 @@ msgid "" "done case-insensitively and *name* should not include the trailing colon. " "Used for the ``in`` operator, e.g.::" msgstr "" +"Renvoie ``True`` si l'objet message a un champ nommé *name*. La " +"correspondance est insensible à la casse et *name* ne doit pas inclure les " +"deux-points à la fin. Utilisé pour l'opérateur ``in``, par exemple ::" #: library/email.compat32-message.rst:321 msgid "" @@ -371,6 +574,9 @@ msgid "" "colon field separator. If the header is missing, ``None`` is returned; a :" "exc:`KeyError` is never raised." msgstr "" +"Renvoie la valeur du champ d'en-tête désigné. *name* ne doit pas inclure le " +"séparateur de champ deux-points. Si l'en-tête est manquant, ``None`` est " +"renvoyé ; :exc:`KeyError` n'est jamais levée." #: library/email.compat32-message.rst:325 msgid "" @@ -379,12 +585,17 @@ msgid "" "Use the :meth:`get_all` method to get the values of all the extant named " "headers." msgstr "" +"Notez que si le champ désigné apparaît plus d'une fois dans les en-têtes du " +"message, la valeur exacte renvoyée n'est pas définie. Utilisez la méthode :" +"meth:`get_all` pour obtenir les valeurs de tous les en-têtes existants." #: library/email.compat32-message.rst:333 msgid "" "Add a header to the message with field name *name* and value *val*. The " "field is appended to the end of the message's existing fields." msgstr "" +"Ajoute un en-tête au message avec le nom de champ *name* et la valeur *val*. " +"Le champ est ajouté à la fin des champs existants du message." #: library/email.compat32-message.rst:336 msgid "" @@ -392,6 +603,10 @@ msgid "" "same name. If you want to ensure that the new header is the only one " "present in the message with field name *name*, delete the field first, e.g.::" msgstr "" +"Notez que cela n'écrase *pas* ou ne supprime aucun en-tête existant portant " +"le même nom. Si vous voulez vous assurer que le nouvel en-tête est le seul " +"présent dans le message avec le nom de champ *name*, supprimez d'abord le " +"champ, par exemple ::" #: library/email.compat32-message.rst:346 msgid "" @@ -399,20 +614,25 @@ msgid "" "headers. No exception is raised if the named field isn't present in the " "headers." msgstr "" +"Supprime toutes les occurrences du champ portant le nom *name* des en-têtes " +"du message. Aucune exception n'est levée si le champ désigné n'est pas " +"présent dans les en-têtes." #: library/email.compat32-message.rst:353 msgid "Return a list of all the message's header field names." -msgstr "" +msgstr "Renvoie une liste de tous les noms de champs d'en-tête du message." #: library/email.compat32-message.rst:358 msgid "Return a list of all the message's field values." -msgstr "" +msgstr "Renvoie une liste de toutes les valeurs de champ du message." #: library/email.compat32-message.rst:363 msgid "" "Return a list of 2-tuples containing all the message's field headers and " "values." msgstr "" +"Renvoie une liste de couples contenant tous les en-têtes et valeurs de " +"champs associées du message." #: library/email.compat32-message.rst:369 msgid "" @@ -420,10 +640,13 @@ msgid "" "`__getitem__` except that optional *failobj* is returned if the named header " "is missing (defaults to ``None``)." msgstr "" +"Renvoie la valeur du champ d'en-tête désigné. C'est identique à :meth:" +"`__getitem__` sauf que *failobj* est renvoyé si l'en-tête désigné est " +"manquant (facultatif, par défaut à ``None``)." #: library/email.compat32-message.rst:373 msgid "Here are some additional useful methods:" -msgstr "" +msgstr "Voici quelques méthodes supplémentaires utiles :" #: library/email.compat32-message.rst:378 msgid "" @@ -431,6 +654,9 @@ msgid "" "such named headers in the message, *failobj* is returned (defaults to " "``None``)." msgstr "" +"Renvoie la liste de toutes les valeurs du champ nommé *name*. S'il n'y a pas " +"d'en-têtes de ce nom dans le message, *failobj* est renvoyé (la valeur par " +"défaut est ``None``)." #: library/email.compat32-message.rst:385 msgid "" @@ -439,6 +665,10 @@ msgid "" "arguments. *_name* is the header field to add and *_value* is the *primary* " "value for the header." msgstr "" +"Définition de paramètres d'en-têtes étendus. Cette méthode est similaire à :" +"meth:`__setitem__` sauf que des paramètres d'en-tête supplémentaires peuvent " +"être fournis en tant qu'arguments nommés. *_name* est le champ d'en-tête à " +"ajouter et *_value* est la valeur *primaire* de l'en-tête." #: library/email.compat32-message.rst:390 msgid "" @@ -456,22 +686,36 @@ msgid "" "`2231` format using a ``CHARSET`` of ``utf-8`` and a ``LANGUAGE`` of " "``None``." msgstr "" +"Pour chaque élément du dictionnaire d'arguments nommés *_params*, la clé est " +"prise comme nom de paramètre, avec des traits de soulignement convertis en " +"tirets (puisque les tirets sont illégaux dans les identifiants Python). " +"Normalement, le paramètre est ajouté en tant que ``key=\"value\"`` sauf si " +"la valeur est ``None``, auquel cas seule la clé est ajoutée. Si la valeur " +"contient des caractères non-ASCII, elle peut être spécifiée sous la forme " +"d'un triplet au format ``(CHARSET, LANGUAGE, VALUE)``, où ``CHARSET`` est " +"une chaîne nommant le jeu de caractères à utiliser pour coder la valeur, " +"``LANGUAGE`` peut généralement être défini sur ``None`` ou la chaîne vide " +"(voir la :rfc:`2231` pour d'autres possibilités), et ``VALUE`` est la valeur " +"de chaîne contenant des points de code non-ASCII. Si un triplet n'est pas " +"passé et que la valeur contient des caractères non-ASCII, elle est " +"automatiquement encodée au format :rfc:`2231` en utilisant un ``CHARSET`` à " +"``utf-8`` et un ``LANGUAGE`` à ``None``." #: library/email.compat32-message.rst:404 msgid "Here's an example::" -msgstr "" +msgstr "Voici un exemple ::" #: library/email.compat32-message.rst:408 msgid "This will add a header that looks like ::" -msgstr "" +msgstr "Cela ajoute un en-tête qui ressemble à ::" #: library/email.compat32-message.rst:412 msgid "An example with non-ASCII characters::" -msgstr "" +msgstr "Un exemple avec des caractères non-ASCII ::" #: library/email.compat32-message.rst:417 msgid "Which produces ::" -msgstr "" +msgstr "qui produit ::" #: library/email.compat32-message.rst:424 msgid "" @@ -479,6 +723,10 @@ msgid "" "matches *_name*, retaining header order and field name case. If no matching " "header was found, a :exc:`KeyError` is raised." msgstr "" +"Remplace un en-tête. Remplace le premier en-tête trouvé dans le message qui " +"correspond à *_name*, en conservant l'ordre des en-têtes et la casse des " +"noms de champs. Si aucun en-tête correspondant n'a été trouvé, une :exc:" +"`KeyError` est levée." #: library/email.compat32-message.rst:431 msgid "" @@ -489,6 +737,12 @@ msgid "" "messages always have a default type, :meth:`get_content_type` will always " "return a value." msgstr "" +"Renvoie le type de contenu du message. La chaîne renvoyée est convertie en " +"minuscules sous la forme :mimetype:`maintype/subtype`. S'il n'y avait pas " +"d'en-tête :mailheader:`Content-Type` dans le message, le type par défaut tel " +"qu'indiqué par :meth:`get_default_type` est renvoyé. Puisque selon la :rfc:" +"`2045`, les messages ont toujours un type par défaut, :meth:" +"`get_content_type` renvoie toujours une valeur." #: library/email.compat32-message.rst:438 msgid "" @@ -498,18 +752,27 @@ msgid "" "Type` header has an invalid type specification, :rfc:`2045` mandates that " "the default type be :mimetype:`text/plain`." msgstr "" +"La :rfc:`2045` définit le type par défaut d'un message comme étant :mimetype:" +"`text/plain` sauf s'il apparaît dans un conteneur :mimetype:`multipart/" +"digest`, auquel cas ce serait :mimetype:`message/rfc822`. Si l'en-tête :" +"mailheader:`Content-Type` a une spécification de type invalide, la :rfc:" +"`2045` exige que le type par défaut soit :mimetype:`text/plain`." #: library/email.compat32-message.rst:447 msgid "" "Return the message's main content type. This is the :mimetype:`maintype` " "part of the string returned by :meth:`get_content_type`." msgstr "" +"Renvoie le type de contenu principal du message. C'est la partie :mimetype:" +"`maintype` de la chaîne renvoyée par :meth:`get_content_type`." #: library/email.compat32-message.rst:453 msgid "" "Return the message's sub-content type. This is the :mimetype:`subtype` part " "of the string returned by :meth:`get_content_type`." msgstr "" +"Renvoie le type de sous-contenu du message. C'est la partie :mimetype:" +"`subtype` de la chaîne renvoyée par :meth:`get_content_type`." #: library/email.compat32-message.rst:459 msgid "" @@ -518,6 +781,10 @@ msgid "" "mimetype:`multipart/digest` containers. Such subparts have a default " "content type of :mimetype:`message/rfc822`." msgstr "" +"Renvoie le type de contenu par défaut. La plupart des messages ont un type " +"de contenu par défaut de :mimetype:`text/plain`, à l'exception des messages " +"qui sont des sous-parties des conteneurs :mimetype:`multipart/digest`. Ces " +"sous-parties ont un type de contenu par défaut de :mimetype:`message/rfc822`." #: library/email.compat32-message.rst:467 msgid "" @@ -525,6 +792,10 @@ msgid "" "plain` or :mimetype:`message/rfc822`, although this is not enforced. The " "default content type is not stored in the :mailheader:`Content-Type` header." msgstr "" +"Définit le type de contenu par défaut. *ctype* doit être :mimetype:`text/" +"plain` ou :mimetype:`message/rfc822`, bien que cela ne soit pas appliqué. Le " +"type de contenu par défaut n'est pas stocké dans l'en-tête :mailheader:" +"`Content-Type`." #: library/email.compat32-message.rst:475 msgid "" @@ -535,6 +806,13 @@ msgid "" "the value is the empty string, otherwise the value is as described in :meth:" "`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." msgstr "" +"Renvoie les paramètres :mailheader:`Content-Type` du message, sous forme de " +"liste. Les éléments de la liste renvoyée sont des couples clé-valeur, ayant " +"été séparés sur le signe ``'='``. Le côté gauche du ``'='`` est la clé, " +"tandis que le côté droit est la valeur. S'il n'y a pas de signe ``'='`` dans " +"le paramètre, la valeur est la chaîne vide, sinon la valeur est telle que " +"décrite dans :meth:`get_param` et n'est pas entre guillemets si l'option " +"*unquote* est ``True`` (la valeur par défaut)." #: library/email.compat32-message.rst:483 msgid "" @@ -542,6 +820,9 @@ msgid "" "`Content-Type` header. Optional *header* is the header to search instead " "of :mailheader:`Content-Type`." msgstr "" +"*failobj* (facultatif) est l'objet à renvoyer s'il n'y a pas d'en-tête :" +"mailheader:`Content-Type`. *header* (facultatif) est l'en-tête à rechercher " +"au lieu de :mailheader:`Content-Type`." #: library/email.compat32-message.rst:487 #: library/email.compat32-message.rst:525 @@ -550,6 +831,9 @@ msgid "" "class its functionality is replaced by the *params* property of the " "individual header objects returned by the header access methods." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage`, sa fonctionnalité est remplacée par la propriété *params* des " +"objets d'en-tête individuels renvoyés par les méthodes d'accès aux en-têtes." #: library/email.compat32-message.rst:495 msgid "" @@ -558,12 +842,18 @@ msgid "" "header or if there is no such parameter, then *failobj* is returned " "(defaults to ``None``)." msgstr "" +"Renvoie la valeur du paramètre *param* de l'en-tête :mailheader:`Content-" +"Type` sous forme de chaîne. Si le message n'a pas d'en-tête :mailheader:" +"`Content-Type` ou s'il n'y a pas un tel paramètre, alors *failobj* est " +"renvoyé (par défaut à ``None``)." #: library/email.compat32-message.rst:500 msgid "" "Optional *header* if given, specifies the message header to use instead of :" "mailheader:`Content-Type`." msgstr "" +"*header* s'il est fourni, spécifie l'en-tête de message à utiliser à la " +"place de :mailheader:`Content-Type`." #: library/email.compat32-message.rst:503 msgid "" @@ -574,6 +864,13 @@ msgid "" "``None``, in which case you should consider ``VALUE`` to be encoded in the " "``us-ascii`` charset. You can usually ignore ``LANGUAGE``." msgstr "" +"Les clés en paramètre sont toujours comparées sans tenir compte de la casse. " +"La valeur de retour peut être soit une chaîne, soit un triplet si le " +"paramètre a été encodé selon la :rfc:`2231`. Lorsqu'il s'agit d'un triplet, " +"les éléments de la valeur sont de la forme ``(CHARSET, LANGUAGE, VALUE)``. " +"Notez que ``CHARSET`` et ``LANGUAGE`` peuvent être ``None``, vous devriez " +"alors considérer que ``VALUE`` est encodé dans le jeu de caractères ``us-" +"ascii``. Vous pouvez généralement ignorer ``LANGUAGE``." #: library/email.compat32-message.rst:511 msgid "" @@ -583,6 +880,12 @@ msgid "" "`get_param`. This will return a suitably decoded Unicode string when the " "value is a tuple, or the original string unquoted if it isn't. For example::" msgstr "" +"Si votre application ne se soucie pas de savoir si le paramètre a été encodé " +"conformément à la :rfc:`2231`, vous pouvez réduire la valeur du paramètre en " +"appelant :func:`email.utils.collapse_rfc2231_value`, en transmettant la " +"valeur de retour de :meth:`get_param`. Cela renverra une chaîne Unicode " +"convenablement décodée lorsque la valeur est un *n*-uplet, ou la chaîne " +"d'origine sans guillemets si ce n'est pas le cas. Par exemple ::" #: library/email.compat32-message.rst:521 msgid "" @@ -590,6 +893,9 @@ msgid "" "``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " "to ``False``." msgstr "" +"Dans tous les cas, la valeur du paramètre (soit la chaîne renvoyée, soit " +"l'élément ``VALUE`` dans le triplet) est toujours sans guillemets, sauf si " +"*unquote* est défini sur ``False``." #: library/email.compat32-message.rst:534 msgid "" @@ -599,6 +905,11 @@ msgid "" "message, it will be set to :mimetype:`text/plain` and the new parameter " "value will be appended as per :rfc:`2045`." msgstr "" +"Définit un paramètre dans l'en-tête :mailheader:`Content-Type`. Si le " +"paramètre existe déjà dans l'en-tête, sa valeur est remplacée par *value*. " +"Si l'en-tête :mailheader:`Content-Type` n'a pas encore été défini pour ce " +"message, il est défini à :mimetype:`text/plain` et la nouvelle valeur du " +"paramètre est ajoutée conformément à la :rfc:`2045`." #: library/email.compat32-message.rst:540 msgid "" @@ -606,6 +917,9 @@ msgid "" "Type`, and all parameters will be quoted as necessary unless optional " "*requote* is ``False`` (the default is ``True``)." msgstr "" +"L'option *header* spécifie un en-tête alternatif à :mailheader:`Content-" +"Type`, et tous les paramètres seront entre guillemets si nécessaire sauf si " +"l'option *requote* est ``False`` (la valeur par défaut est ``True``)." #: library/email.compat32-message.rst:544 msgid "" @@ -614,6 +928,9 @@ msgid "" "defaulting to the empty string. Both *charset* and *language* should be " "strings." msgstr "" +"Si *charset* est spécifié, le paramètre est encodé selon la :rfc:`2231`. " +"*language* (facultatif) spécifie la langue RFC 2231, par défaut c'est la " +"chaîne vide. *charset* et *language* doivent être des chaînes." #: library/email.compat32-message.rst:549 msgid "" @@ -621,10 +938,14 @@ msgid "" "the list of headers. If *replace* is ``True``, the header will be updated " "in place." msgstr "" +"Si *replace* est ``False`` (valeur par défaut), l'en-tête est déplacé à la " +"fin de la liste des en-têtes. Si *replace* est ``True``, l'en-tête est mis à " +"jour « sur place »." +# suit un : #: library/email.compat32-message.rst:553 msgid "``replace`` keyword was added." -msgstr "" +msgstr "l'argument nommé ``replace`` a été ajouté." #: library/email.compat32-message.rst:558 msgid "" @@ -634,6 +955,11 @@ msgid "" "(the default is ``True``). Optional *header* specifies an alternative to :" "mailheader:`Content-Type`." msgstr "" +"Supprime complètement le paramètre donné de l'en-tête :mailheader:`Content-" +"Type`. L'en-tête est réécrit « sur place » sans le paramètre ou sa valeur. " +"Toutes les valeurs seront entre guillemets si nécessaire sauf si *requote* " +"est ``False`` (la valeur par défaut est ``True``). L'option *header* " +"spécifie une alternative à :mailheader:`Content-Type`." #: library/email.compat32-message.rst:567 msgid "" @@ -641,6 +967,9 @@ msgid "" "*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " "a :exc:`ValueError` is raised." msgstr "" +"Définit le type principal et le sous-type de l'en-tête :mailheader:`Content-" +"Type`. *type* doit être une chaîne sous la forme :mimetype:`maintype/" +"subtype`, sinon une :exc:`ValueError` est levée." #: library/email.compat32-message.rst:571 msgid "" @@ -649,6 +978,10 @@ msgid "" "header's quoting as is, otherwise the parameters will be quoted (the " "default)." msgstr "" +"Cette méthode remplace l'en-tête :mailheader:`Content-Type`, en gardant tous " +"les paramètres en place. Si *requote* est ``False``, cela laisse les " +"guillemets de l'en-tête existant tels quels, sinon les paramètres sont mis " +"entre guillemets (par défaut)." #: library/email.compat32-message.rst:576 msgid "" @@ -656,12 +989,18 @@ msgid "" "mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` header " "is also added." msgstr "" +"Un en-tête alternatif peut être spécifié dans l'argument *header*. Lorsque " +"l'en-tête :mailheader:`Content-Type` est défini, un en-tête :mailheader:" +"`MIME-Version` est également ajouté." #: library/email.compat32-message.rst:580 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the ``make_`` and ``add_`` methods." msgstr "" +"Il s'agit d'une ancienne méthode. Dans la classe :class:`~email.emailmessage." +"EmailMessage` sa fonctionnalité est remplacée par les méthodes ``make_`` et " +"``add_``." #: library/email.compat32-message.rst:587 msgid "" @@ -672,6 +1011,12 @@ msgid "" "the header is missing, then *failobj* is returned. The returned string will " "always be unquoted as per :func:`email.utils.unquote`." msgstr "" +"Renvoie la valeur du paramètre ``filename`` de l'en-tête :mailheader:" +"`Content-Disposition` du message. Si l'en-tête n'a pas de paramètre " +"``filename``, cette méthode revient à rechercher le paramètre ``name`` dans " +"l'en-tête :mailheader:`Content-Type`. Si aucun n'est trouvé, ou si l'en-tête " +"est manquant, alors *failobj* est renvoyé. La chaîne renvoyée est toujours " +"sans guillemets comme indiqué par :func:`email.utils.unquote`." #: library/email.compat32-message.rst:598 msgid "" @@ -680,6 +1025,10 @@ msgid "" "or has no ``boundary`` parameter. The returned string will always be " "unquoted as per :func:`email.utils.unquote`." msgstr "" +"Renvoie la valeur du paramètre ``boundary`` de l'en-tête :mailheader:" +"`Content-Type` du message, ou *failobj* si l'en-tête est manquant ou n'a pas " +"de paramètre ``boundary``. La chaîne renvoyée est toujours sans guillemets " +"comme indiqué par :func:`email.utils.unquote`." #: library/email.compat32-message.rst:606 msgid "" @@ -688,6 +1037,10 @@ msgid "" "necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " "object has no :mailheader:`Content-Type` header." msgstr "" +"Définit le paramètre ``boundary`` de l'en-tête :mailheader:`Content-Type` " +"sur *boundary*. :meth:`set_boundary` met toujours *boundary* entre " +"guillemets si nécessaire. Une :exc:`~email.errors.HeaderParseError` est " +"levée si l'objet message n'a pas d'en-tête :mailheader:`Content-Type`." #: library/email.compat32-message.rst:611 msgid "" @@ -698,6 +1051,13 @@ msgid "" "does *not* preserve any continuation lines which may have been present in " "the original :mailheader:`Content-Type` header." msgstr "" +"Notez que l'utilisation de cette méthode est légèrement différente de la " +"suppression de l'ancien en-tête :mailheader:`Content-Type` et de l'ajout " +"d'un nouveau avec la nouvelle limite via :meth:`add_header`, car :meth:" +"`set_boundary` préserve l'ordre des en-têtes :mailheader:`Content-Type` dans " +"la liste des en-têtes. Cependant, elle ne conserve *pas* les lignes de " +"continuation qui auraient pu être présentes dans l'en-tête original :" +"mailheader:`Content-Type`." #: library/email.compat32-message.rst:621 msgid "" @@ -705,6 +1065,9 @@ msgid "" "coerced to lower case. If there is no :mailheader:`Content-Type` header, or " "if that header has no ``charset`` parameter, *failobj* is returned." msgstr "" +"Renvoie le paramètre ``charset`` de l'en-tête :mailheader:`Content-Type`, " +"mis en minuscules. S'il n'y a pas d'en-tête :mailheader:`Content-Type`, ou " +"si cet en-tête n'a pas de paramètre ``charset``, *failobj* est renvoyé." #: library/email.compat32-message.rst:625 msgid "" @@ -712,6 +1075,9 @@ msgid "" "class:`~email.charset.Charset` instance for the default encoding of the " "message body." msgstr "" +"Notez que cette méthode diffère de :meth:`get_charset` qui renvoie " +"l'instance :class:`~email.charset.Charset` avec l'encodage par défaut du " +"corps du message." #: library/email.compat32-message.rst:631 msgid "" @@ -719,6 +1085,10 @@ msgid "" "message is a :mimetype:`multipart`, then the list will contain one element " "for each subpart in the payload, otherwise, it will be a list of length 1." msgstr "" +"Renvoie une liste contenant les noms des jeux de caractères dans le message. " +"Si le message est un :mimetype:`multipart`, alors la liste contient un " +"élément pour chaque sous-partie dans la charge utile, sinon, c'est une liste " +"de longueur 1." #: library/email.compat32-message.rst:635 msgid "" @@ -728,6 +1098,12 @@ msgid "" "no ``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " "then that item in the returned list will be *failobj*." msgstr "" +"Chaque élément de la liste est une chaîne qui est la valeur du paramètre " +"``charset`` dans l'en-tête :mailheader:`Content-Type` pour la sous-partie " +"représentée. Cependant, si la sous-partie n'a pas d'en-tête :mailheader:" +"`Content-Type`, pas de paramètre ``charset``, ou n'est pas du type MIME " +"principal :mimetype:`text`, alors cet élément dans la liste renvoyée est " +"*failobj*." #: library/email.compat32-message.rst:645 msgid "" @@ -736,6 +1112,10 @@ msgid "" "possible values for this method are *inline*, *attachment* or ``None`` if " "the message follows :rfc:`2183`." msgstr "" +"Renvoie la valeur en minuscules (sans paramètres) de l'en-tête :mailheader:" +"`Content-Disposition` du message s'il en a un, ou ``None``. Les valeurs " +"possibles pour cette méthode sont *inline*, *attachment* ou ``None`` si le " +"message suit la :rfc:`2183`." #: library/email.compat32-message.rst:654 msgid "" @@ -744,12 +1124,19 @@ msgid "" "first traversal order. You will typically use :meth:`walk` as the iterator " "in a ``for`` loop; each iteration returns the next subpart." msgstr "" +"La méthode :meth:`walk` est un générateur polyvalent qui peut être utilisé " +"pour itérer sur toutes les parties et sous-parties d'une arborescence " +"d'objets de message, dans l'ordre de parcours en profondeur d'abord. Vous " +"utiliserez généralement :meth:`walk` comme itérateur dans une boucle " +"``for`` ; chaque itération renvoie la sous-partie suivante." #: library/email.compat32-message.rst:659 msgid "" "Here's an example that prints the MIME type of every part of a multipart " "message structure:" msgstr "" +"Voici un exemple qui imprime le type MIME de chaque partie d'une structure " +"de message en plusieurs parties :" #: library/email.compat32-message.rst:685 msgid "" @@ -758,6 +1145,10 @@ msgid "" "may return ``False``. We can see this in our example by making use of the " "``_structure`` debug helper function:" msgstr "" +"``walk`` itère sur les sous-parties de toute partie où :meth:`is_multipart` " +"renvoie ``True``, même si ``msg.get_content_maintype() == 'multipart'`` peut " +"renvoyer ``False``. Nous pouvons le voir dans notre exemple en utilisant la " +"fonction d'aide au débogage ``_structure`` :" #: library/email.compat32-message.rst:712 msgid "" @@ -765,6 +1156,9 @@ msgid "" "subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " "subparts." msgstr "" +"Ici, les parties ``message`` ne sont pas des ``multiparts``, mais elles " +"contiennent des sous-parties. ``is_multipart()`` renvoie ``True`` et " +"``walk`` descend dans les sous-parties." #: library/email.compat32-message.rst:717 msgid "" @@ -772,6 +1166,9 @@ msgid "" "attributes, which can be used when generating the plain text of a MIME " "message." msgstr "" +"Les objets :class:`Message` peuvent aussi éventuellement contenir deux " +"attributs d'instance, qui peuvent être utilisés lors de la génération du " +"texte brut d'un message MIME." #: library/email.compat32-message.rst:723 msgid "" @@ -782,6 +1179,13 @@ msgid "" "message, or when viewing the message in a non-MIME aware reader, this text " "can become visible." msgstr "" +"Le format d'un document MIME permet d'insérer du texte entre la ligne vide " +"suivant les en-têtes et la première chaîne de délimitation en plusieurs " +"parties. Normalement, ce texte n'est jamais visible dans un lecteur de " +"courrier compatible MIME car il ne fait pas partie du cadre MIME standard. " +"Toutefois, lors de l'affichage du texte brut du message ou lors de " +"l'affichage du message dans un lecteur non compatible MIME, ce texte peut " +"devenir visible." #: library/email.compat32-message.rst:730 msgid "" @@ -794,12 +1198,22 @@ msgid "" "in the area between the headers and the first boundary. See :mod:`email." "parser` and :mod:`email.generator` for details." msgstr "" +"L'attribut *preamble* contient ce texte hors-cadre de tête pour les " +"documents MIME. Lorsque :class:`~email.parser.Parser` découvre du texte " +"après les en-têtes mais avant la première chaîne de délimitation, il " +"attribue ce texte à l'attribut *preamble* du message. Lorsque :class:`~email." +"generator.Generator` écrit la représentation en texte brut d'un message " +"MIME, et qu'il trouve que le message a un attribut *preamble*, il écrit ce " +"texte dans la zone entre les en-têtes et la première frontière. Voir :mod:" +"`email.parser` et :mod:`email.generator` pour plus de détails." #: library/email.compat32-message.rst:740 msgid "" "Note that if the message object has no preamble, the *preamble* attribute " "will be ``None``." msgstr "" +"Notez que si l'objet message n'a pas de préambule, l'attribut *preamble* est " +"``None``." #: library/email.compat32-message.rst:746 msgid "" @@ -807,12 +1221,18 @@ msgid "" "except that it contains text that appears between the last boundary and the " "end of the message." msgstr "" +"L'attribut *epilogue* agit de la même manière que l'attribut *preamble*, " +"sauf qu'il contient du texte qui apparaît entre la dernière limite et la fin " +"du message." #: library/email.compat32-message.rst:750 msgid "" "You do not need to set the epilogue to the empty string in order for the :" "class:`~email.generator.Generator` to print a newline at the end of the file." msgstr "" +"Vous n'avez pas besoin de définir l'épilogue sur la chaîne vide pour que :" +"class:`~email.generator.Generator` imprime une nouvelle ligne à la fin du " +"fichier." #: library/email.compat32-message.rst:757 msgid "" @@ -820,3 +1240,6 @@ msgid "" "parsing this message. See :mod:`email.errors` for a detailed description of " "the possible parsing defects." msgstr "" +"L'attribut *defects* contient une liste de tous les problèmes rencontrés " +"lors de l'analyse de ce message. Voir :mod:`email.errors` pour une " +"description détaillée des défauts d'analyse possibles." diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po index 90d02dba..c21da92f 100644 --- a/library/email.contentmanager.po +++ b/library/email.contentmanager.po @@ -6,25 +6,26 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-08-24 09:01+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2023-11-21 23:04+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.contentmanager.rst:2 msgid ":mod:`email.contentmanager`: Managing MIME Content" -msgstr "" +msgstr ":mod:`email.contentmanager` : gestion du contenu MIME" #: library/email.contentmanager.rst:10 msgid "**Source code:** :source:`Lib/email/contentmanager.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/contentmanager.py`" #: library/email.contentmanager.rst:14 msgid "[1]_" -msgstr "" +msgstr "[1]_" #: library/email.contentmanager.rst:19 msgid "" @@ -32,6 +33,10 @@ msgid "" "to register converters between MIME content and other representations, as " "well as the ``get_content`` and ``set_content`` dispatch methods." msgstr "" +"Classe mère pour les gestionnaires de contenu. Fournit les mécanismes de " +"registre standard pour enregistrer les convertisseurs entre le contenu MIME " +"et d'autres représentations, ainsi que les méthodes de répartition " +"``get_content`` et ``set_content``." #: library/email.contentmanager.rst:26 msgid "" @@ -40,30 +45,39 @@ msgid "" "the call. The expectation is that the handler will extract the payload from " "*msg* and return an object that encodes information about the extracted data." msgstr "" +"Recherche une fonction de gestion en se basant sur le ``mimetype`` de *msg* " +"(voir le paragraphe suivant), l'appelle en lui passant tous les arguments et " +"renvoie le résultat de l'appel. Le gestionnaire doit extraire la charge " +"utile de *msg* et renvoyer un objet qui encode les informations relatives " +"aux données extraites." #: library/email.contentmanager.rst:32 msgid "" "To find the handler, look for the following keys in the registry, stopping " "with the first one found:" msgstr "" +"Pour trouver le gestionnaire, recherche les clés suivantes dans le registre, " +"en s'arrêtant à la première trouvée :" #: library/email.contentmanager.rst:35 msgid "the string representing the full MIME type (``maintype/subtype``)" -msgstr "" +msgstr "une chaîne représentant le type MIME complet (``maintype/subtype``) ;" #: library/email.contentmanager.rst:36 msgid "the string representing the ``maintype``" -msgstr "" +msgstr "une chaîne représentant le ``maintype`` ;" #: library/email.contentmanager.rst:37 msgid "the empty string" -msgstr "" +msgstr "une chaîne vide." #: library/email.contentmanager.rst:39 msgid "" "If none of these keys produce a handler, raise a :exc:`KeyError` for the " "full MIME type." msgstr "" +"Si aucune de ces clés ne produit de gestionnaire, lève une :exc:`KeyError` " +"pour le type MIME complet." #: library/email.contentmanager.rst:45 msgid "" @@ -75,6 +89,14 @@ msgid "" "making other changes to *msg* as well, such as adding various MIME headers " "to encode information needed to interpret the stored data." msgstr "" +"Si le ``maintype`` est ``multipart``, lève une :exc:`TypeError` ; sinon " +"recherche une fonction de gestion en se basant sur le type de *obj* (voir le " +"paragraphe suivant), appelle :meth:`~email.message.EmailMessage." +"clear_content` sur le *msg* et appelle la fonction de gestion en lui passant " +"tous les arguments. Le gestionnaire doit transformer et stocker *obj* en " +"*msg*, apportant éventuellement d'autres modifications à *msg* également, " +"comme l'ajout de divers en-têtes MIME pour coder les informations " +"nécessaires à l'interprétation des données stockées." #: library/email.contentmanager.rst:54 msgid "" @@ -82,24 +104,27 @@ msgid "" "look for the following keys in the registry, stopping with the first one " "found:" msgstr "" +"Pour trouver le gestionnaire, récupère le type de *obj* (``typ = " +"type(obj)``) et recherche les clés suivantes dans le registre, en s'arrêtant " +"à la première trouvée :" #: library/email.contentmanager.rst:58 msgid "the type itself (``typ``)" -msgstr "" +msgstr "le type lui-même (``typ``) ;" #: library/email.contentmanager.rst:59 msgid "" "the type's fully qualified name (``typ.__module__ + '.' + typ." "__qualname__``)." -msgstr "" +msgstr "le nom complet du type (``typ.__module__ + '.' + typ.__qualname__``) ;" #: library/email.contentmanager.rst:61 msgid "the type's qualname (``typ.__qualname__``)" -msgstr "" +msgstr "le nom qualifié du type (``typ.__qualname__``) ;" #: library/email.contentmanager.rst:62 msgid "the type's name (``typ.__name__``)." -msgstr "" +msgstr "le nom du type (``typ.__name__``)." #: library/email.contentmanager.rst:64 msgid "" @@ -109,18 +134,27 @@ msgid "" "for ``None``, raise a :exc:`KeyError` for the fully qualified name of the " "type." msgstr "" +"Si aucune de ces clés ne correspond, répète toutes les vérifications ci-" +"dessus pour chacun des types en suivant le :term:`MRO` (``typ.__mro__``). " +"Enfin, si aucune clé ne produit de gestionnaire, recherche un gestionnaire " +"pour la clé ``None``. S'il n'y a pas de gestionnaire pour ``None``, lève " +"une :exc:`KeyError` pour le nom complet du type." #: library/email.contentmanager.rst:70 msgid "" "Also add a :mailheader:`MIME-Version` header if one is not present (see " "also :class:`.MIMEPart`)." msgstr "" +"Ajoute également un en-tête :mailheader:`MIME-Version` s'il n'y en a pas " +"(voir aussi :class:`.MIMEPart`)." #: library/email.contentmanager.rst:76 msgid "" "Record the function *handler* as the handler for *key*. For the possible " "values of *key*, see :meth:`get_content`." msgstr "" +"Enregistre la fonction *handler* comme gestionnaire pour *key*. Pour les " +"valeurs possibles de *key*, voir :meth:`get_content`." #: library/email.contentmanager.rst:82 msgid "" @@ -128,10 +162,13 @@ msgid "" "*typekey* is passed to :meth:`set_content`. For the possible values of " "*typekey*, see :meth:`set_content`." msgstr "" +"Enregistre *handler* comme fonction à appeler lorsqu'un objet d'un type " +"correspondant à *typekey* est passé à :meth:`set_content`. Pour les valeurs " +"possibles de *typekey*, voir :meth:`set_content`." #: library/email.contentmanager.rst:88 msgid "Content Manager Instances" -msgstr "" +msgstr "Instances de gestionnaires de contenus" #: library/email.contentmanager.rst:90 msgid "" @@ -140,6 +177,11 @@ msgid "" "`raw_data_manager` is the :attr:`~email.policy.EmailPolicy.content_manager` " "provided by :attr:`~email.policy.EmailPolicy` and its derivatives." msgstr "" +"Actuellement, le paquet *email* ne fournit qu'un seul gestionnaire de " +"contenu concret, :data:`raw_data_manager`, bien que d'autres puissent être " +"ajoutés à l'avenir. :data:`raw_data_manager` est le :attr:`~email.policy." +"EmailPolicy.content_manager` fourni par :attr:`~email.policy.EmailPolicy` et " +"ses dérivés." #: library/email.contentmanager.rst:99 msgid "" @@ -153,6 +195,16 @@ msgid "" "encoding, and it enables the use of the various ``add_`` methods, thereby " "simplifying the creation of multipart messages." msgstr "" +"Ce gestionnaire de contenu ne fournit qu'une interface minimale au-delà de " +"celle fournie par :class:`~email.message.Message` lui-même : il prend " +"seulement en charge le texte, les chaînes d'octets brutes et les objets :" +"class:`~email.message.Message`. Néanmoins, il offre des avantages " +"significatifs par rapport à l'API de base : ``get_content`` sur une partie " +"de texte renvoie une chaîne Unicode sans que l'application ait besoin de la " +"décoder manuellement, ``set_content`` fournit de nombreuses options pour " +"contrôler les en-têtes ajoutés à une partie et l'encodage du transfert de " +"contenu, et il permet l'utilisation des différentes méthodes ``add_``, ce " +"qui simplifie la création de messages en plusieurs parties." #: library/email.contentmanager.rst:111 msgid "" @@ -163,27 +215,41 @@ msgid "" "*errors* is specified, use it as the error handler when decoding the payload " "to unicode. The default error handler is ``replace``." msgstr "" +"Renvoie la charge utile de la partie sous la forme d'une chaîne (pour les " +"parties ``text``), d'un objet :class:`~email.message.EmailMessage` (pour les " +"parties ``message/rfc822``) ou d'un objet ``bytes`` (pour tous les autres " +"types à l'exception de *multipart*). Lève une :exc:`KeyError` si cette " +"méthode est appelée sur un ``multipart``. S'il s'agit d'une partie ``text`` " +"et que *errors* est spécifié, ce paramètre est utilisé comme gestionnaire " +"d'erreurs lors du décodage de la charge utile en Unicode. Le gestionnaire " +"d'erreurs par défaut est ``replace``." #: library/email.contentmanager.rst:130 msgid "Add headers and payload to *msg*:" -msgstr "" +msgstr "Ajoute des en-têtes et une charge utile à *msg* :" #: library/email.contentmanager.rst:132 msgid "" "Add a :mailheader:`Content-Type` header with a ``maintype/subtype`` value." msgstr "" +"Ajoute un en-tête :mailheader:`Content-Type` avec une valeur ``maintype/" +"subtype``." #: library/email.contentmanager.rst:135 msgid "" "For ``str``, set the MIME ``maintype`` to ``text``, and set the subtype to " "*subtype* if it is specified, or ``plain`` if it is not." msgstr "" +"Pour ``str``, définit le ``maintype`` MIME à ``text`` et définit le sous-" +"type à *subtype* s'il est spécifié, ou à ``plain`` s'il ne l'est pas." #: library/email.contentmanager.rst:137 msgid "" "For ``bytes``, use the specified *maintype* and *subtype*, or raise a :exc:" "`TypeError` if they are not specified." msgstr "" +"Pour ``bytes``, utilise les *maintype* et *subtype* spécifiés, ou lève une :" +"exc:`TypeError` s'ils ne sont pas spécifiés." #: library/email.contentmanager.rst:139 msgid "" @@ -192,6 +258,11 @@ msgid "" "``rfc822`` if it is not. If *subtype* is ``partial``, raise an error " "(``bytes`` objects must be used to construct ``message/partial`` parts)." msgstr "" +"Pour les objets :class:`~email.message.EmailMessage`, définit le type " +"principal (*maintype*) à ``message`` et définit le sous-type à *subtype* " +"s'il est spécifié ou à ``rfc822`` s'il ne l'est pas. Si *subtype* est " +"``partial``, lève une erreur (les objets ``bytes`` doivent être utilisés " +"pour construire les parties ``message/partial``)." #: library/email.contentmanager.rst:145 msgid "" @@ -200,6 +271,11 @@ msgid "" "``utf-8``. If the specified *charset* is a known alias for a standard MIME " "charset name, use the standard charset instead." msgstr "" +"Si *charset* est fourni (qui n'est valide que pour ``str``), encode la " +"chaîne en octets en utilisant le jeu de caractères spécifié. La valeur par " +"défaut est ``utf-8``. Si le *charset* spécifié est un alias connu pour un " +"nom de jeu de caractères MIME standard, utilise plutôt le jeu de caractères " +"standard." #: library/email.contentmanager.rst:150 msgid "" @@ -210,12 +286,21 @@ msgid "" "specified encoding (for example, specifying a *cte* of ``7bit`` for an input " "that contains non-ASCII values), raise a :exc:`ValueError`." msgstr "" +"Si *cte* est défini, encode la charge utile à l'aide de l'encodage de " +"transfert de contenu spécifié et définit l'en-tête :mailheader:`Content-" +"Transfer-Encoding` à cette valeur. Les valeurs possibles pour *cte* sont " +"``quoted-printable``, ``base64``, ``7bit``, ``8bit`` et ``binary``. Si " +"l'entrée ne peut pas être encodée dans l'encodage spécifié (par exemple, en " +"spécifiant un *cte* de ``7bit`` pour une entrée qui contient des valeurs non-" +"ASCII), lève une :exc:`ValueError`." #: library/email.contentmanager.rst:158 msgid "" "For ``str`` objects, if *cte* is not set use heuristics to determine the " "most compact encoding." msgstr "" +"Pour les objets ``str``, si *cte* n'est pas défini, utilise une heuristique " +"pour déterminer l'encodage le plus compact." #: library/email.contentmanager.rst:160 msgid "" @@ -225,13 +310,24 @@ msgid "" "body``. For ``message/rfc822``, use ``8bit`` if *cte* is not specified. " "For all other values of *subtype*, use ``7bit``." msgstr "" +"Pour :class:`~email.message.EmailMessage`, selon la :rfc:`2046`, pour le " +"*subtype* ``rfc822`, lève une erreur pour un *cte* valant ``quoted-" +"printable`` ou ``base64``. Pour le *subtype* ``external-body``, lève une " +"erreur pour tout *cte* autre que ``7bit``. Pour ``message/rfc822``, la " +"valeur par défaut de *cte* est ``8bit``. Pour toutes les autres valeurs de " +"*sous-type*, la valeur par défaut de *cte* est ``7bit``." +# suit un : #: library/email.contentmanager.rst:167 msgid "" "A *cte* of ``binary`` does not actually work correctly yet. The " "``EmailMessage`` object as modified by ``set_content`` is correct, but :" "class:`~email.generator.BytesGenerator` does not serialize it correctly." msgstr "" +"la valeur ``binary`` pour *cte* ne fonctionne pas encore correctement. " +"L'objet ``EmailMessage`` tel que modifié par ``set_content`` est correct, " +"mais :class:`~email.generator.BytesGenerator` ne le sérialise pas " +"correctement." #: library/email.contentmanager.rst:172 msgid "" @@ -241,18 +337,27 @@ msgid "" "*filename* is also not specified, do not add the header. The only valid " "values for *disposition* are ``attachment`` and ``inline``." msgstr "" +"Si *disposition* est spécifié, utilise cette valeur pour l'en-tête :" +"mailheader:`Content-Disposition`. S'il n'est pas spécifié et que *filename* " +"est spécifié, utilise la valeur ``attachment`` pour l'en-tête. Si ni " +"*disposition* ni *filename* ne sont spécifiés, n'ajoute pas cet en-tête. Les " +"seules valeurs valides pour *disposition* sont ``attachment`` et ``inline``." #: library/email.contentmanager.rst:179 msgid "" "If *filename* is specified, use it as the value of the ``filename`` " "parameter of the :mailheader:`Content-Disposition` header." msgstr "" +"Si *filename* est spécifié, utilise cette valeur pour le paramètre " +"``filename`` de l'en-tête :mailheader:`Content-Disposition`." #: library/email.contentmanager.rst:182 msgid "" "If *cid* is specified, add a :mailheader:`Content-ID` header with *cid* as " "its value." msgstr "" +"Si *cid* est spécifié, ajoute un en-tête :mailheader:`Content-ID` avec cette " +"valeur." #: library/email.contentmanager.rst:185 msgid "" @@ -260,6 +365,9 @@ msgid "" "``(key, value)`` pairs to set additional parameters on the :mailheader:" "`Content-Type` header." msgstr "" +"Si *params* est spécifié, itère sur sa méthode ``items`` et utilise les " +"paires ``(clé, valeur)`` résultantes pour définir des paramètres " +"supplémentaires dans l'en-tête :mailheader:`Content-Type`." #: library/email.contentmanager.rst:189 msgid "" @@ -267,6 +375,9 @@ msgid "" "headervalue`` or a list of ``header`` objects (distinguished from strings by " "having a ``name`` attribute), add the headers to *msg*." msgstr "" +"Si *headers* est spécifié et est une liste de chaînes de la forme " +"``headername: headervalue`` ou une liste d'objets ``header`` (distingués des " +"chaînes par l'attribut ``name``), ajoute ces en-têtes à *msg*." #: library/email.contentmanager.rst:196 msgid "Footnotes" @@ -276,3 +387,5 @@ msgstr "Notes" msgid "" "Originally added in 3.4 as a :term:`provisional module `" msgstr "" +"Initialement ajouté dans 3.4 en tant que :term:`paquet provisoire " +"`." From 141c4ad19fd3693d9deb0be27ff22fba7797ed22 Mon Sep 17 00:00:00 2001 From: Yannick Gingras Date: Fri, 24 Nov 2023 06:08:36 +0000 Subject: [PATCH 10/22] library-shutil (#229) Traduction finale de library/shutil.po. Ceci est une reprise de la PR #184 de @deronnax . Co-authored-by: Mathieu Dupuy Co-authored-by: Yannick Gingras Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/229 Co-authored-by: Yannick Gingras Co-committed-by: Yannick Gingras --- library/shutil.po | 59 ++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/library/shutil.po b/library/shutil.po index c50c465e..4abb3d57 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2018-11-29 18:26+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2023-11-23 09:37-0700\n" +"Last-Translator: Yannick Gingras \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/shutil.rst:2 msgid ":mod:`shutil` --- High-level file operations" @@ -85,20 +86,20 @@ msgid "" "*dst* and return *dst* in the most efficient way possible. *src* and *dst* " "are path-like objects or path names given as strings." msgstr "" +"Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " +"nommé *dst* et renvoie *dst* de la manière la plus efficace possible. Les " +"paramètres *src* et *dst* sont des :term:`objets simili-chemin ` ou des chaînes spécifiant des chemins." #: library/shutil.rst:57 -#, fuzzy msgid "" "*dst* must be the complete target file name; look at :func:`~shutil.copy` " "for a copy that accepts a target directory path. If *src* and *dst* specify " "the same file, :exc:`SameFileError` is raised." msgstr "" -"Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " -"nommé *dst* et renvoie *dst*. *src* et *dst* sont des chemins sous forme de " -"chaînes de caractères. *dst* doit être le chemin complet de la cible ; voir " -"dans :func:`shutil.copy` pour une copie acceptant le chemin du dossier " -"cible. Si *src* et *dst* désignent le même fichier :exc:`SameFileError` est " -"levée." +"*dst* doit être le nom complet du fichier cible ; consultez :func:`~shutil." +"copy` pour une fonction de copie qui accepte un chemin de répertoire cible. " +"Si *src* et *dst* spécifient le même fichier, lève :exc:`SameFileError`." #: library/shutil.rst:61 msgid "" @@ -125,6 +126,8 @@ msgid "" "Raises an :ref:`auditing event ` ``shutil.copyfile`` with " "arguments ``src``, ``dst``." msgstr "" +"Lève un :ref:`événement d’audit ` ``shutil.copyfile`` avec les " +"arguments ``src``, ``dst``." #: library/shutil.rst:72 msgid "" @@ -148,6 +151,9 @@ msgid "" "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" "copy-operations` section." msgstr "" +"Les appels système de copie rapide spécifiques à la plate-forme peuvent être " +"utilisés en interne afin de copier le fichier plus efficacement. Voir la " +"section :ref:`shutil-platform-dependent-efficient-copy-operations`." #: library/shutil.rst:88 msgid "" @@ -158,7 +164,6 @@ msgstr "" "`copyfile` sont le même fichier." #: library/shutil.rst:96 -#, fuzzy msgid "" "Copy the permission bits from *src* to *dst*. The file contents, owner, and " "group are unaffected. *src* and *dst* are path-like objects or path names " @@ -170,26 +175,28 @@ msgid "" "platform, and it is asked to do so, it will do nothing and return." msgstr "" "Copie les octets de permission de *src* vers *dst*. Le contenu du fichier, " -"le propriétaire et le groupe ne sont pas modifiés. *src* et *dst* sont des " -"chaînes spécifiant les chemins. Si *follow_symlinks* est faux, et *src* et " -"*dst* sont des liens symboliques, :func:`copymode` tente de modifier le mode " -"de *dst* (au lieu du fichier vers lequel il pointe). Cette fonctionnalité " -"n'est pas disponible sur toutes les plateformes ; voir :func:`copystat` pour " -"plus d'informations. Si :func:`copymode` ne peut pas modifier les liens " -"symboliques sur la plateforme cible alors que c'est demandé, il ne fait rien." +"le propriétaire et le groupe ne sont pas modifiés. *src* et *dst* sont des :" +"term:`objets simili-chemin ` ou des chaînes spécifiant les " +"chemins. Si *follow_symlinks* est faux, et *src* et *dst* sont des liens " +"symboliques, :func:`copymode` tente de modifier le mode de *dst* (au lieu du " +"fichier vers lequel il pointe). Cette fonctionnalité n'est pas disponible " +"sur toutes les plateformes ; voir :func:`copystat` pour plus d'informations. " +"Si :func:`copymode` ne peut pas modifier les liens symboliques sur la " +"plateforme cible alors que c'est demandé, il ne fait rien." #: library/shutil.rst:179 msgid "" "Raises an :ref:`auditing event ` ``shutil.copymode`` with " "arguments ``src``, ``dst``." msgstr "" +"Lève un :ref:`événement d’audit ` ``shutil.copymode`` avec les " +"arguments ``src``, ``dst``." #: library/shutil.rst:108 msgid "Added *follow_symlinks* argument." msgstr "L'argument *follow_symlinks* a été ajouté." #: library/shutil.rst:113 -#, fuzzy msgid "" "Copy the permission bits, last access time, last modification time, and " "flags from *src* to *dst*. On Linux, :func:`copystat` also copies the " @@ -199,10 +206,10 @@ msgid "" msgstr "" "Copie les bits définissant les droits d'accès, la date du dernier accès, de " "la dernière modification et les drapeaux (*flags* en anglais) de *src* vers " -"*dst*. Sur Linux, :func:`copystat` copie également, si possible, les " +"*dst*. Sur Linux, :func:`copystat` copie également, si possible, les " "\"*extended attributes*\". Le contenu du fichier, le propriétaire et le " -"groupe ne sont pas affectés. *src* et *dst* sont des chaînes spécifiant les " -"chemins." +"groupe ne sont pas affectés. *src* et *dst* sont des :term:`objets simili-" +"chemin ` ou des chaînes spécifiant les chemins." #: library/shutil.rst:119 msgid "" @@ -890,16 +897,6 @@ msgstr "" #: library/shutil.rst:658 msgid "" -"The keyword-only *filter* argument, which was added in Python 3.11.4, is " -"passed to the underlying unpacking function. For zip files, *filter* is not " -"accepted. For tar files, it is recommended to set it to ``'data'``, unless " -"using features specific to tar and UNIX-like filesystems. (See :ref:`tarfile-" -"extraction-filter` for details.) The ``'data'`` filter will become the " -"default for tar files in Python 3.14." -msgstr "" - -#: library/shutil.rst:652 -msgid "" "Raises an :ref:`auditing event ` ``shutil.unpack_archive`` with " "arguments ``filename``, ``extract_dir``, ``format``." msgstr "" From 4afdbf71c596bf02fd65b36916bb15a06815cc9b Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 25 Nov 2023 10:54:49 +0000 Subject: [PATCH 11/22] suite du dossier extending (#174) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/174 Reviewed-by: Julien Palard Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- CONTRIBUTING.rst | 1 + extending/newtypes_tutorial.po | 363 ++++++++++++++++++++++++++++++--- 2 files changed, 333 insertions(+), 31 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index f68d51f3..62ae51e8 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -613,6 +613,7 @@ roughly approximativement, à peu près (on ne traduit pas « roughly equivalent » par « sensiblement équivalent ») setter mutateur simple quote guillemet simple +slot emplacement socket connecteur ou interface de connexion sort trier (préféré), ordonner, classer specify définir, préciser (plutôt que « spécifier ») diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 64b457cf..a2202aec 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-10-18 12:22+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2023-07-22 15:34+0200\n" +"PO-Revision-Date: 2023-07-27 23:20+0200\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" #: extending/newtypes_tutorial.rst:7 msgid "Defining Extension Types: Tutorial" @@ -37,7 +38,6 @@ msgid "The Basics" msgstr "Les bases" #: extending/newtypes_tutorial.rst:26 -#, fuzzy msgid "" "The :term:`CPython` runtime sees all Python objects as variables of type :c:" "expr:`PyObject*`, which serves as a \"base type\" for all Python objects. " @@ -49,7 +49,7 @@ msgid "" "functions are called \"type methods\"." msgstr "" ":term:`CPython` considère que tous les objets Python sont des variables de " -"type :c:type:`PyObject\\*`, qui sert de type de base pour tous les objets " +"type :c:expr:`PyObject*`, qui sert de type de base pour tous les objets " "Python. La structure de :c:type:`PyObject` ne contient que le :term:" "`compteur de références ` et un pointeur vers un objet de " "type « type de l'objet ». C'est ici que tout se joue : l'objet type " @@ -76,6 +76,7 @@ msgstr "" "donc un module minimaliste mais suffisant qui définit un nouveau type nommé :" "class:`Custom` dans le module d'extension :mod:`custom` :" +# suit un : #: extending/newtypes_tutorial.rst:43 msgid "" "What we're showing here is the traditional way of defining *static* " @@ -83,7 +84,7 @@ msgid "" "allows defining heap-allocated extension types using the :c:func:" "`PyType_FromSpec` function, which isn't covered in this tutorial." msgstr "" -"Ce qui est montré ici est la manière traditionnelle de définir des types " +"ce qui est montré ici est la manière traditionnelle de définir des types " "d'extension *statiques*, et cela convient dans la majorité des cas. L'API C " "permet aussi de définir des types alloués sur le tas, via la fonction :c:" "func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel." @@ -128,7 +129,6 @@ msgid "The first bit is::" msgstr "Commençons par ::" #: extending/newtypes_tutorial.rst:67 -#, fuzzy msgid "" "This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " "at the start of each object struct and defines a field called ``ob_base`` of " @@ -146,12 +146,13 @@ msgstr "" "raison d'être de ces macros est d'abstraire l'agencement de la structure, et " "ainsi de permettre l'ajout de champs en :ref:`mode débogage `." +# suit un : #: extending/newtypes_tutorial.rst:76 msgid "" "There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " "wary of adding one by accident: some compilers will complain." msgstr "" -"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " +"il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " "Attention à ne pas l'ajouter par accident : certains compilateurs pourraient " "s'en plaindre." @@ -169,13 +170,14 @@ msgstr "" msgid "The second bit is the definition of the type object. ::" msgstr "La deuxième partie est la définition de l'objet type ::" +# suit un : #: extending/newtypes_tutorial.rst:101 msgid "" "We recommend using C99-style designated initializers as above, to avoid " "listing all the :c:type:`PyTypeObject` fields that you don't care about and " "also to avoid caring about the fields' declaration order." msgstr "" -"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " +"nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " "remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les " "champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas " "vous soucier de leur ordre." @@ -222,7 +224,7 @@ msgid "" "type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" "Notez que le nom comporte un point : il inclut le nom du module et le nom du " -"type. Dans ce cas le module est :mod:`custom`, et le type est :class:" +"type. Dans ce cas le module est :mod:`custom` et le type est :class:" "`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer " "correctement son type, avec le point, est important pour le rendre " "compatible avec :mod:`pydoc` et :mod:`pickle`. ::" @@ -238,6 +240,7 @@ msgstr "" "n'est utilisé que pour les objets de taille variable, sinon il doit rester à " "zéro." +# suit un : #: extending/newtypes_tutorial.rst:144 msgid "" "If you want your type to be subclassable from Python, and your type has the " @@ -251,7 +254,7 @@ msgid "" "type will be :class:`object`, or else you will be adding data members to " "your base type, and therefore increasing its size." msgstr "" -"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que " +"si vous voulez qu'une classe en Python puisse hériter de votre type, et que " "votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, " "vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe " "Python de votre type devra lister votre type en premier dans son :attr:" @@ -263,11 +266,9 @@ msgstr "" "augmentant ainsi sa taille)." #: extending/newtypes_tutorial.rst:154 -#, fuzzy msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" -"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de " -"type. ::" +"Nous définissons les drapeaux de la classe à :c:macro:`Py_TPFLAGS_DEFAULT` ::" #: extending/newtypes_tutorial.rst:158 msgid "" @@ -277,14 +278,14 @@ msgid "" msgstr "" "Chaque type doit inclure cette constante dans ses options : elle active tous " "les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus " -"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* " +"de membres, vous pouvez la combiner à d'autres constantes avec un *OU* " "binaire." #: extending/newtypes_tutorial.rst:162 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" -"On fournit une *docstring* pour ce type via le membre :c:member:" +"Nous fournissons une *docstring* pour ce type via le membre :c:member:" "`~PyTypeObject.tp_doc`. ::" #: extending/newtypes_tutorial.rst:166 @@ -337,7 +338,7 @@ msgstr "" #: extending/newtypes_tutorial.rst:207 msgid "in a file called :file:`setup.py`; then typing" -msgstr "" +msgstr "dans un fichier appelé :file:`setup.py` ; puis en tapant" #: extending/newtypes_tutorial.rst:213 msgid "" @@ -345,16 +346,22 @@ msgid "" "to that directory and fire up Python --- you should be able to ``import " "custom`` and play around with Custom objects." msgstr "" +"à un shell doit produire un fichier :file:`custom.so` dans un sous-" +"répertoire ; déplacez-vous dans ce répertoire et lancez Python — vous " +"devriez pouvoir faire ``import custom`` et jouer avec des objets " +"personnalisés." #: extending/newtypes_tutorial.rst:217 msgid "That wasn't so hard, was it?" -msgstr "" +msgstr "Ce n'était pas si difficile, n'est-ce pas ?" #: extending/newtypes_tutorial.rst:219 msgid "" "Of course, the current Custom type is pretty uninteresting. It has no data " "and doesn't do anything. It can't even be subclassed." msgstr "" +"Bien sûr, le type personnalisé actuel est assez inintéressant. Il n'a pas de " +"données et ne fait rien. Il ne peut même pas être sous-classé." #: extending/newtypes_tutorial.rst:223 msgid "" @@ -365,10 +372,17 @@ msgid "" "Packaging User's Guide `_." msgstr "" +"Bien que cette documentation présente le module standard :mod:`distutils` " +"pour la construction d'extensions C, il est recommandé dans les cas " +"d'utilisation réels d'utiliser la bibliothèque ``setuptools`` plus récente " +"et mieux entretenue. La documentation sur la façon de procéder est hors de " +"portée de ce document et peut être trouvée dans le `Python Packaging User's " +"Guide `_." +# suit un : #: extending/newtypes_tutorial.rst:231 msgid "Adding data and methods to the Basic example" -msgstr "" +msgstr "ajout de données et de méthodes à l'exemple basique" #: extending/newtypes_tutorial.rst:233 msgid "" @@ -376,20 +390,25 @@ msgid "" "make the type usable as a base class. We'll create a new module, :mod:" "`custom2` that adds these capabilities:" msgstr "" +"Étendons l'exemple de base pour ajouter des données et des méthodes. Rendons " +"également le type utilisable comme classe de base. Nous allons créer un " +"nouveau module, :mod:`custom2` qui ajoute ces fonctionnalités :" #: extending/newtypes_tutorial.rst:240 msgid "This version of the module has a number of changes." -msgstr "" +msgstr "Cette version du module comporte un certain nombre de modifications." #: extending/newtypes_tutorial.rst:242 msgid "We've added an extra include::" -msgstr "" +msgstr "Nous avons ajouté un nouvel *include* ::" #: extending/newtypes_tutorial.rst:246 msgid "" "This include provides declarations that we use to handle attributes, as " "described a bit later." msgstr "" +"Cet *include* fournit des déclarations que nous utilisons pour gérer les " +"attributs, comme décrit un peu plus loin." #: extending/newtypes_tutorial.rst:249 msgid "" @@ -398,20 +417,27 @@ msgid "" "strings containing first and last names. The *number* attribute is a C " "integer." msgstr "" +"Le type :class:`Custom` a maintenant trois attributs de données dans sa " +"structure C, *first*, *last* et *number*. Les variables *first* et *last* " +"sont des chaînes Python contenant les noms et prénoms. L'attribut *number* " +"est un entier C." #: extending/newtypes_tutorial.rst:253 msgid "The object structure is updated accordingly::" -msgstr "" +msgstr "La structure de l'objet est mise à jour en conséquence ::" #: extending/newtypes_tutorial.rst:262 msgid "" "Because we now have data to manage, we have to be more careful about object " "allocation and deallocation. At a minimum, we need a deallocation method::" msgstr "" +"Comme nous avons maintenant des données à gérer, nous devons faire plus " +"attention à l'allocation et à la libération d'objets. Au minimum, nous avons " +"besoin d'une méthode de dés-allocation ::" #: extending/newtypes_tutorial.rst:273 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" -msgstr "" +msgstr "qui est assignée au membre :c:member:`~PyTypeObject.tp_dealloc` ::" #: extending/newtypes_tutorial.rst:277 msgid "" @@ -423,6 +449,13 @@ msgid "" "object's type might not be :class:`CustomType`, because the object may be an " "instance of a subclass." msgstr "" +"Cette méthode efface d'abord le nombre de références des deux attributs " +"Python. :c:func:`Py_XDECREF` gère correctement le cas où son argument est " +"``NULL`` (ce qui peut arriver ici si ``tp_new`` échoue à mi-chemin). Elle " +"appelle ensuite le membre :c:member:`~PyTypeObject.tp_free` du type de " +"l'objet (calculé par ``Py_TYPE(self)``) pour libérer la mémoire de l'objet. " +"Notez que le type de l'objet peut ne pas être :class:`CustomType`, car " +"l'objet peut être une instance d'une sous-classe." #: extending/newtypes_tutorial.rst:286 msgid "" @@ -432,16 +465,23 @@ msgid "" "argument. Otherwise, the compiler will emit a warning. This is object-" "oriented polymorphism, in C!" msgstr "" +"La conversion explicite en ``destructor`` ci-dessus est nécessaire car nous " +"avons défini ``Custom_dealloc`` pour prendre un argument ``CustomObject *``, " +"mais le pointeur de fonction ``tp_dealloc`` s'attend à recevoir un argument " +"``PyObject *``. Sinon, le compilateur émet un avertissement. C'est du " +"polymorphisme orienté objet, en C !" #: extending/newtypes_tutorial.rst:292 msgid "" "We want to make sure that the first and last names are initialized to empty " "strings, so we provide a ``tp_new`` implementation::" msgstr "" +"Nous voulons nous assurer que le prénom et le nom sont initialisés avec des " +"chaînes vides, nous fournissons donc une implémentation ``tp_new`` ::" #: extending/newtypes_tutorial.rst:316 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" -msgstr "" +msgstr "et installez-le dans le membre :c:member:`~PyTypeObject.tp_new` ::" #: extending/newtypes_tutorial.rst:320 msgid "" @@ -453,6 +493,14 @@ msgid "" "use the ``tp_new`` handler to initialize the ``first`` and ``last`` " "attributes to non-``NULL`` default values." msgstr "" +"Le gestionnaire ``tp_new`` est responsable de la création (par opposition à " +"l'initialisation) des objets du type. Il est exposé en Python en tant que " +"méthode :meth:`__new__`. Il n'est pas nécessaire de définir un membre " +"``tp_new``, et en effet de nombreux types d'extension réutiliseront " +"simplement :c:func:`PyType_GenericNew` comme cela a été fait dans la " +"première version du type ``Custom`` ci-dessus. Dans ce cas, nous utilisons " +"le gestionnaire ``tp_new`` pour initialiser les attributs ``first`` et " +"``last`` à des valeurs par défaut non ``NULL``." #: extending/newtypes_tutorial.rst:328 msgid "" @@ -463,24 +511,38 @@ msgid "" "often ignore the arguments, leaving the argument handling to initializer (a." "k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" +"``tp_new`` reçoit le type en cours d'instanciation (pas nécessairement " +"``CustomType``, si une sous-classe est instanciée) et tous les arguments " +"passés lorsque le type a été appelé, et devrait renvoyer l'instance créée. " +"Les gestionnaires ``tp_new`` acceptent toujours les arguments positionnels " +"et nommés, mais ils ignorent souvent les arguments, laissant la gestion des " +"arguments aux méthodes d'initialisation (alias ``tp_init`` en C ou " +"``__init__`` en Python)." #: extending/newtypes_tutorial.rst:336 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." msgstr "" +"``tp_new`` ne doit pas appeler ``tp_init`` explicitement, car l'interpréteur " +"le fera lui-même." #: extending/newtypes_tutorial.rst:339 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" msgstr "" +"L'implémentation ``tp_new`` appelle l'emplacement :c:member:`~PyTypeObject." +"tp_alloc` pour allouer de la mémoire ::" #: extending/newtypes_tutorial.rst:344 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." "tp_alloc` result against ``NULL`` before proceeding." msgstr "" +"Puisque l'allocation de mémoire peut échouer, nous devons vérifier le " +"résultat :c:member:`~PyTypeObject.tp_alloc` par rapport à ``NULL`` avant de " +"continuer." #: extending/newtypes_tutorial.rst:348 msgid "" @@ -489,6 +551,10 @@ msgid "" "class, which is :class:`object` by default. Most types use the default " "allocation strategy." msgstr "" +"Nous n'avons pas rempli l'emplacement :c:member:`~PyTypeObject.tp_alloc` " +"nous-mêmes. C'est :c:func:`PyType_Ready` qui le remplit pour nous car il en " +"hérite de notre classe mère, qui est :class:`object` par défaut. La plupart " +"des types utilisent la stratégie d'allocation par défaut." #: extending/newtypes_tutorial.rst:354 msgid "" @@ -502,16 +568,28 @@ msgid "" "correctly. (Specifically, you may not be able to create instances of such " "subclasses without getting a :exc:`TypeError`.)" msgstr "" +"Si vous créez une :c:member:`~PyTypeObject.tp_new` coopérative (qui appelle :" +"c:member:`~PyTypeObject.tp_new` ou :meth:`__new__` d'un type de base), vous " +"ne devez *pas* essayer de déterminer quelle méthode appeler en utilisant " +"l'ordre de résolution des méthodes au moment de l'exécution. Déterminez " +"toujours statiquement quel type vous allez appeler, et appelez son :c:member:" +"`~PyTypeObject.tp_new` directement, ou via ``type->tp_base->tp_new``. Si " +"vous ne le faites pas, les sous-classes Python de votre type qui héritent " +"également d'autres classes définies par Python risquent de ne pas " +"fonctionner correctement. (Plus précisément, vous ne pourrez peut-être pas " +"créer d'instances de telles sous-classes sans obtenir une :exc:`TypeError`.)" #: extending/newtypes_tutorial.rst:364 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" msgstr "" +"Nous définissons également une fonction d'initialisation qui accepte des " +"arguments pour fournir des valeurs initiales pour notre instance ::" #: extending/newtypes_tutorial.rst:393 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" -msgstr "" +msgstr "en remplissant l'emplacement :c:member:`~PyTypeObject.tp_init`. ::" #: extending/newtypes_tutorial.rst:397 msgid "" @@ -520,6 +598,11 @@ msgid "" "Initializers always accept positional and keyword arguments, and they should " "return either ``0`` on success or ``-1`` on error." msgstr "" +"L'emplacement :c:member:`~PyTypeObject.tp_init` est exposé en Python en tant " +"que méthode :meth:`__init__`. Il est utilisé pour initialiser un objet après " +"sa création. Les constructeurs acceptent toujours les arguments positionnels " +"et nommés, et ils doivent renvoyer soit ``0`` en cas de succès, soit ``-1`` " +"en cas d'erreur." #: extending/newtypes_tutorial.rst:402 msgid "" @@ -531,6 +614,13 @@ msgid "" "new attribute values. We might be tempted, for example to assign the " "``first`` member like this::" msgstr "" +"Contrairement au gestionnaire ``tp_new``, il n'y a aucune garantie que " +"``tp_init`` soit appelé (par exemple, le module :mod:`pickle` par défaut " +"n'appelle pas :meth:`__init__` sur les instances *unpickled*). Il peut " +"également être appelé plusieurs fois. N'importe qui peut appeler la méthode :" +"meth:`__init__` sur nos objets. Pour cette raison, nous devons être très " +"prudents lors de l'attribution des nouvelles valeurs d'attribut. On pourrait " +"être tenté, par exemple, d'affecter le membre ``first`` comme ceci ::" #: extending/newtypes_tutorial.rst:416 msgid "" @@ -541,6 +631,12 @@ msgid "" "interpreter Lock ` and let arbitrary code run in other threads that " "accesses and modifies our object." msgstr "" +"Mais ce serait risqué. Notre type ne limite pas le type du membre ``first``, " +"il peut donc s'agir de n'importe quel type d'objet. Il pourrait avoir un " +"destructeur qui provoque l'exécution de code essayant d'accéder au membre " +"``first`` ; ou ce destructeur pourrait libérer le :term:`Global interpreter " +"Lock ` et laisser du code arbitraire s'exécuter dans d'autres threads " +"qui accèdent et modifient notre objet." #: extending/newtypes_tutorial.rst:423 msgid "" @@ -548,16 +644,22 @@ msgid "" "always reassign members before decrementing their reference counts. When " "don't we have to do this?" msgstr "" +"Dans une optique paranoïaque et se prémunir contre cette éventualité, on " +"réaffecte presque toujours les membres avant de décrémenter leur compteur de " +"références. Quand ne devons-nous pas faire cela ?" #: extending/newtypes_tutorial.rst:427 msgid "when we absolutely know that the reference count is greater than 1;" -msgstr "" +msgstr "lorsque l'on est sûr que le compteur de références est supérieur à 1 ;" #: extending/newtypes_tutorial.rst:429 msgid "" "when we know that deallocation of the object [#]_ will neither release the :" "term:`GIL` nor cause any calls back into our type's code;" msgstr "" +"lorsque nous savons que la libération de la mémoire de l'objet [#]_ ne " +"libérera pas le :term:`GIL` ni ne provoquera de rappel dans le code de notre " +"type ;" #: extending/newtypes_tutorial.rst:432 msgid "" @@ -565,17 +667,25 @@ msgid "" "tp_dealloc` handler on a type which doesn't support cyclic garbage " "collection [#]_." msgstr "" +"lors de la décrémentation d'un compteur de références dans un gestionnaire :" +"c:member:`~PyTypeObject.tp_dealloc` sur un type qui ne prend pas en charge " +"le ramasse-miettes cyclique [#]_." #: extending/newtypes_tutorial.rst:435 msgid "" "We want to expose our instance variables as attributes. There are a number " "of ways to do that. The simplest way is to define member definitions::" msgstr "" +"Nous voulons exposer nos variables d'instance en tant qu'attributs. Il " +"existe plusieurs façons de le faire. Le moyen le plus simple consiste à " +"définir des définitions de membres ::" #: extending/newtypes_tutorial.rst:448 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" +"et placer les définitions dans l'emplacement :c:member:`~PyTypeObject." +"tp_members` ::" #: extending/newtypes_tutorial.rst:452 msgid "" @@ -583,6 +693,9 @@ msgid "" "documentation string. See the :ref:`Generic-Attribute-Management` section " "below for details." msgstr "" +"Chaque définition de membre possède un nom, un type, un décalage, des " +"indicateurs d'accès et une chaîne de documentation. Voir la section :ref:" +"`Generic-Attribute-Management` ci-dessous pour plus de détails." #: extending/newtypes_tutorial.rst:456 msgid "" @@ -594,12 +707,22 @@ msgid "" "``NULL`` values, the members can be set to ``NULL`` if the attributes are " "deleted." msgstr "" +"Un inconvénient de cette approche est qu'elle ne permet pas de restreindre " +"les types d'objets pouvant être affectés aux attributs Python. Nous nous " +"attendons à ce que le prénom et le nom soient des chaînes, mais tous les " +"objets Python peuvent être affectés. De plus, les attributs peuvent être " +"supprimés, en définissant les pointeurs C sur ``NULL``. Même si nous pouvons " +"nous assurer que les membres sont initialisés avec des valeurs non ``NULL``, " +"les membres peuvent être définis sur ``NULL`` si les attributs sont " +"supprimés." #: extending/newtypes_tutorial.rst:463 msgid "" "We define a single method, :meth:`Custom.name()`, that outputs the objects " "name as the concatenation of the first and last names. ::" msgstr "" +"Nous définissons une seule méthode, :meth:`Custom.name()`, qui génère le nom " +"des objets sous la forme de la concaténation des prénom et nom. ::" #: extending/newtypes_tutorial.rst:480 msgid "" @@ -610,6 +733,13 @@ msgid "" "to accept a positional argument tuple or keyword argument dictionary. This " "method is equivalent to the Python method:" msgstr "" +"La méthode est implémentée comme une fonction C qui prend une instance :" +"class:`Custom` (ou une sous-classe de :class:`Custom`) comme premier " +"argument. Les méthodes prennent toujours une instance comme premier " +"argument. Les méthodes prennent souvent aussi des arguments positionnels et " +"nommés, mais dans ce cas nous n'en prenons aucun et n'avons pas besoin " +"d'accepter un *n*-uplet d'arguments positionnels ou un dictionnaire en " +"argument nommé. Cette méthode est équivalente à la méthode Python :" #: extending/newtypes_tutorial.rst:492 msgid "" @@ -619,22 +749,32 @@ msgid "" "of these attributes and to restrict the attribute values to be strings. " "We'll see how to do that in the next section." msgstr "" +"Notez que nous devons vérifier la possibilité que nos membres :attr:`first` " +"et :attr:`last` soient ``NULL``. En effet, ils peuvent être supprimés, " +"auquel cas ils sont définis sur ``NULL``. Il serait préférable d'empêcher la " +"suppression de ces attributs et de limiter les valeurs d'attribut à des " +"chaînes. Nous verrons comment procéder dans la section suivante." #: extending/newtypes_tutorial.rst:498 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" msgstr "" +"Maintenant que nous avons défini la méthode, nous devons créer un tableau de " +"définitions de méthode ::" #: extending/newtypes_tutorial.rst:508 msgid "" "(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the " "method is expecting no arguments other than *self*)" msgstr "" +"(notez que nous avons utilisé le drapeau :c:macro:`METH_NOARGS` pour " +"indiquer que la méthode n'attend aucun argument autre que *self*)" #: extending/newtypes_tutorial.rst:511 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "" +"et assignons-le à l'emplacement :c:member:`~PyTypeObject.tp_methods` ::" #: extending/newtypes_tutorial.rst:515 msgid "" @@ -643,6 +783,11 @@ msgid "" "about the type of the object being created or used, so all we need to do is " "to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" +"Enfin, nous rendons notre type utilisable comme classe de base pour le sous-" +"classement. Nous avons écrit nos méthodes avec soin jusqu'à présent afin " +"qu'elles ne fassent aucune hypothèse sur le type de l'objet créé ou utilisé, " +"donc tout ce que nous avons à faire est d'ajouter la macro :c:macro:" +"`Py_TPFLAGS_BASETYPE` à notre définition d'indicateur de classe ::" #: extending/newtypes_tutorial.rst:522 msgid "" @@ -650,14 +795,19 @@ msgid "" "module name in the :c:type:`PyModuleDef` struct, and update the full class " "name in the :c:type:`PyTypeObject` struct." msgstr "" +"Nous renommons :c:func:`PyInit_custom` en :c:func:`PyInit_custom2`, mettons " +"à jour le nom du module dans la structure :c:type:`PyModuleDef` et mettons à " +"jour le nom complet de la classe dans la structure :c:type:`PyTypeObject`." #: extending/newtypes_tutorial.rst:526 msgid "Finally, we update our :file:`setup.py` file to build the new module:" msgstr "" +"Enfin, nous mettons à jour notre fichier :file:`setup.py` pour construire le " +"nouveau module :" #: extending/newtypes_tutorial.rst:539 msgid "Providing finer control over data attributes" -msgstr "" +msgstr "Contrôle précis sur les attributs de données" #: extending/newtypes_tutorial.rst:541 msgid "" @@ -667,6 +817,12 @@ msgid "" "attr:`last` could be set to non-string values or even deleted. We want to " "make sure that these attributes always contain strings." msgstr "" +"Dans cette section, nous assurons un contrôle plus précis sur la façon dont " +"les attributs :attr:`first` et :attr:`last` sont définis dans l'exemple :" +"class:`Custom`. Dans la version précédente de notre module, les variables " +"d'instance :attr:`first` et :attr:`last` pouvaient être définies sur des " +"valeurs autres que des chaînes ou même supprimées. Nous voulons nous assurer " +"que ces attributs contiennent toujours des chaînes." #: extending/newtypes_tutorial.rst:550 msgid "" @@ -674,6 +830,10 @@ msgid "" "attributes, we'll use custom getter and setter functions. Here are the " "functions for getting and setting the :attr:`first` attribute::" msgstr "" +"Pour avoir un meilleur contrôle sur les attributs :attr:`first` et :attr:" +"`last`, nous utilisons des fonctions accesseur (*getter*) et mutateur " +"(*setter*) personnalisées. Voici les fonctions pour obtenir et définir " +"l'attribut :attr:`first` ::" #: extending/newtypes_tutorial.rst:581 msgid "" @@ -684,6 +844,13 @@ msgid "" "getter and setter functions that decide the attribute to get or set based on " "data in the closure.)" msgstr "" +"L'accesseur reçoit un objet :class:`Custom` et une fermeture qui est un " +"pointeur vide. Dans ce cas, la fermeture est ignorée. (La fermeture prend en " +"charge une utilisation avancée dans laquelle les données de définition sont " +"transmises à l'accesseur et au mutateur. Cela pourrait, par exemple, être " +"utilisé pour autoriser un seul ensemble de fonctions accesseur et mutateur " +"qui décident de l'attribut à obtenir ou à définir en fonction des données " +"dans la fermeture.)" #: extending/newtypes_tutorial.rst:587 msgid "" @@ -692,14 +859,19 @@ msgid "" "being deleted. In our setter, we raise an error if the attribute is deleted " "or if its new value is not a string." msgstr "" +"Le mutateur reçoit l'objet :class:`Custom`, la nouvelle valeur et la " +"fermeture. La nouvelle valeur peut être ``NULL``, auquel cas l'attribut est " +"supprimé. Dans notre mutateur, nous levons une erreur si l'attribut est " +"supprimé ou si sa nouvelle valeur n'est pas une chaîne." #: extending/newtypes_tutorial.rst:592 msgid "We create an array of :c:type:`PyGetSetDef` structures::" -msgstr "" +msgstr "Nous créons un tableau de structures :c:type:`PyGetSetDef` ::" #: extending/newtypes_tutorial.rst:602 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "" +"et l'enregistrons dans l'emplacement :c:member:`~PyTypeObject.tp_getset` ::" #: extending/newtypes_tutorial.rst:606 msgid "" @@ -707,16 +879,22 @@ msgid "" "mentioned above. In this case, we aren't using a closure, so we just pass " "``NULL``." msgstr "" +"Le dernier élément d'une structure :c:type:`PyGetSetDef` est la fermeture " +"mentionnée ci-dessus. Dans ce cas, nous n'utilisons pas de fermeture, nous " +"passons donc simplement ``NULL``." #: extending/newtypes_tutorial.rst:609 msgid "We also remove the member definitions for these attributes::" msgstr "" +"Nous supprimons également les définitions de membre pour ces attributs :" #: extending/newtypes_tutorial.rst:617 msgid "" "We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " "allow strings [#]_ to be passed::" msgstr "" +"Nous devons également mettre à jour le gestionnaire :c:member:`~PyTypeObject." +"tp_init` pour autoriser uniquement le passage des chaînes [#]_ ::" #: extending/newtypes_tutorial.rst:646 msgid "" @@ -727,6 +905,13 @@ msgid "" "these calls is in the ``tp_dealloc`` implementation, where there is the " "possibility that the initialization of these members failed in ``tp_new``." msgstr "" +"Avec ces modifications, nous pouvons garantir que les membres ``first`` et " +"``last`` ne sont jamais ``NULL``, nous pouvons donc supprimer les " +"vérifications des valeurs ``NULL`` dans presque tous les cas. Cela signifie " +"que la plupart des appels :c:func:`Py_XDECREF` peuvent être convertis en " +"appels :c:func:`Py_DECREF`. Le seul endroit où nous ne pouvons pas modifier " +"ces appels est dans l'implémentation de ``tp_dealloc``, où il est possible " +"que l'initialisation de ces membres ait échoué dans ``tp_new``." #: extending/newtypes_tutorial.rst:653 msgid "" @@ -734,10 +919,14 @@ msgid "" "initialization function, as we did before, and we add an extra definition to " "the :file:`setup.py` file." msgstr "" +"Nous renommons également la fonction d'initialisation du module et le nom du " +"module dans la fonction d'initialisation, comme nous l'avons fait " +"précédemment, et nous ajoutons une définition supplémentaire au fichier :" +"file:`setup.py`." #: extending/newtypes_tutorial.rst:659 msgid "Supporting cyclic garbage collection" -msgstr "" +msgstr "Prise en charge du ramasse-miettes cyclique" #: extending/newtypes_tutorial.rst:661 msgid "" @@ -745,6 +934,10 @@ msgid "" "can identify unneeded objects even when their reference counts are not zero. " "This can happen when objects are involved in cycles. For example, consider:" msgstr "" +"Python a un :term:`ramasse-miettes cyclique ` qui peut " +"identifier les objets inutiles même lorsque leur compteur de références " +"n'est pas nul. Cela peut se produire lorsque des objets sont impliqués dans " +"des cycles. Par exemple, considérons :" #: extending/newtypes_tutorial.rst:671 msgid "" @@ -753,6 +946,11 @@ msgid "" "zero. Fortunately, Python's cyclic garbage collector will eventually figure " "out that the list is garbage and free it." msgstr "" +"Dans cet exemple, nous créons une liste qui se contient elle-même. Lorsque " +"nous la supprimons, il existe toujours une référence à elle-même. Son " +"compteur de références ne tombe pas à zéro. Heureusement, le ramasse-miettes " +"cyclique de Python finira par comprendre que la liste est un déchet et la " +"libérera." #: extending/newtypes_tutorial.rst:676 msgid "" @@ -762,6 +960,12 @@ msgid "" "`Custom`, and subclasses may add arbitrary attributes. For any of those two " "reasons, :class:`Custom` objects can participate in cycles:" msgstr "" +"Dans la seconde version de l'exemple :class:`Custom`, nous avons autorisé le " +"stockage de n'importe quel type d'objet dans les attributs :attr:`first` ou :" +"attr:`last` [#]_. De plus, dans les deuxième et troisième versions, nous " +"avons autorisé le sous-classement de :class:`Custom`, et les sous-classes " +"peuvent ajouter des attributs arbitraires. Pour l'une de ces deux raisons, " +"les objets :class:`Custom` peuvent produire des cycles :" #: extending/newtypes_tutorial.rst:690 msgid "" @@ -770,12 +974,19 @@ msgid "" "needs to fill two additional slots and to enable a flag that enables these " "slots:" msgstr "" +"Pour permettre à une instance :class:`Custom` participant à des références " +"cycliques d'être correctement détectée et collectée par le ramasse-miettes " +"cyclique, notre type :class:`Custom` doit définir deux emplacements " +"supplémentaires et activer un drapeau qui active ces emplacements :" #: extending/newtypes_tutorial.rst:697 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" msgstr "" +"Tout d'abord, la méthode de parcours (*Custom_traverse*) permet au ramasse-" +"miettes cyclique de connaître les sous-objets qui pourraient conduire à des " +"cycles ::" #: extending/newtypes_tutorial.rst:717 msgid "" @@ -785,6 +996,11 @@ msgid "" "*arg* passed to the traversal method. It returns an integer value that must " "be returned if it is non-zero." msgstr "" +"Pour chaque sous-objet pouvant conduire à des cycles, nous devons appeler la " +"fonction :c:func:`visit`, qui est passée à la méthode de parcours. La " +"fonction :c:func:`visit` prend comme arguments le sous-objet et l'argument " +"supplémentaire *arg* passé à la méthode de parcours. Elle renvoie une valeur " +"entière qui doit être renvoyée si elle est différente de zéro." #: extending/newtypes_tutorial.rst:723 msgid "" @@ -792,18 +1008,26 @@ msgid "" "functions. With :c:func:`Py_VISIT`, we can minimize the amount of " "boilerplate in ``Custom_traverse``::" msgstr "" +"Python fournit une macro :c:func:`Py_VISIT` qui automatise l'appel des " +"fonctions de visite. Avec :c:func:`Py_VISIT`, nous pouvons minimiser la " +"quantité de code générique dans ``Custom_traverse`` ::" +# suit un : #: extending/newtypes_tutorial.rst:736 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " "arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." msgstr "" +"l'implémentation :c:member:`~PyTypeObject.tp_traverse` doit nommer ses " +"arguments exactement *visit* et *arg* afin d'utiliser :c:func:`Py_VISIT`." #: extending/newtypes_tutorial.rst:739 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" msgstr "" +"Deuxièmement, nous devons fournir une méthode pour effacer tous les sous-" +"objets qui peuvent conduire à des cycles ::" #: extending/newtypes_tutorial.rst:750 msgid "" @@ -814,10 +1038,17 @@ msgid "" "attribute's destructor would call back into code that reads the attribute " "again (*especially* if there is a reference cycle)." msgstr "" +"Notez l'utilisation de la macro :c:func:`Py_CLEAR`. C'est le moyen " +"recommandé et sûr d'effacer les attributs de données de types arbitraires " +"tout en décrémentant leur compteur de références. Si vous deviez appeler :c:" +"func:`Py_XDECREF` à la place sur l'attribut avant de le définir sur " +"``NULL``, il est possible que le destructeur de l'attribut appelle du code " +"qui lit à nouveau l'attribut (*surtout* s'il existe un cycle de références)." +# suit un : #: extending/newtypes_tutorial.rst:758 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" -msgstr "" +msgstr "vous pouvez émuler :c:func:`Py_CLEAR` en écrivant ::" #: extending/newtypes_tutorial.rst:765 msgid "" @@ -825,6 +1056,9 @@ msgid "" "`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " "expense of robustness!" msgstr "" +"Néanmoins, il est beaucoup plus facile et moins sujet aux erreurs de " +"toujours utiliser :c:func:`Py_CLEAR` lors de la suppression d'un attribut. " +"N'essayez pas de micro-optimiser au détriment de la robustesse !" #: extending/newtypes_tutorial.rst:769 msgid "" @@ -835,11 +1069,21 @@ msgid "" "members. Here is our reimplemented deallocator using :c:func:" "`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" +"La fonction de libération de la mémoire ``Custom_dealloc`` peut appeler du " +"code arbitraire lors de la suppression des attributs. Cela signifie que le " +"ramasse-miettes cyclique peut être déclenché à l'intérieur de la fonction. " +"Étant donné que le ramasse-miettes suppose que le nombre de références n'est " +"pas nul, nous devons annuler le suivi de l'objet par le ramasse-miettes en " +"appelant :c:func:`PyObject_GC_UnTrack` avant d'effacer les membres. Voici " +"notre fonction de libération de la mémoire réimplémentée en utilisant :c:" +"func:`PyObject_GC_UnTrack` et ``Custom_clear`` ::" #: extending/newtypes_tutorial.rst:784 msgid "" "Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" +"Enfin, nous ajoutons le drapeau :c:macro:`Py_TPFLAGS_HAVE_GC` aux drapeaux " +"de la classe ::" #: extending/newtypes_tutorial.rst:788 msgid "" @@ -848,10 +1092,14 @@ msgid "" "them for cyclic garbage collection. Most extensions will use the versions " "automatically provided." msgstr "" +"C'est à peu près tout. Si nous avions écrit des gestionnaires personnalisés :" +"c:member:`~PyTypeObject.tp_alloc` ou :c:member:`~PyTypeObject.tp_free`, nous " +"aurions besoin de les modifier pour le ramasse-miettes cyclique. La plupart " +"des extensions utilisent les versions fournies automatiquement." #: extending/newtypes_tutorial.rst:794 msgid "Subclassing other types" -msgstr "" +msgstr "Sous-classement d'autres types" #: extending/newtypes_tutorial.rst:796 msgid "" @@ -860,6 +1108,11 @@ msgid "" "can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to " "share these :c:type:`PyTypeObject` structures between extension modules." msgstr "" +"Il est possible de créer de nouveaux types d'extension dérivés de types " +"existants. Il est plus facile d'hériter des types natifs, car une extension " +"peut facilement utiliser le :c:type:`PyTypeObject` dont elle a besoin. Il " +"peut être difficile de partager ces structures :c:type:`PyTypeObject` entre " +"modules d'extension." #: extending/newtypes_tutorial.rst:801 msgid "" @@ -868,6 +1121,10 @@ msgid "" "with regular lists, but will have an additional :meth:`increment` method " "that increases an internal counter:" msgstr "" +"Dans cet exemple, nous allons créer un type :class:`SubList` qui hérite du " +"type intégré :class:`list`. Le nouveau type sera complètement compatible " +"avec les listes natives, mais aura une méthode supplémentaire :meth:" +"`increment` qui augmente un compteur interne :" #: extending/newtypes_tutorial.rst:821 msgid "" @@ -875,6 +1132,9 @@ msgid "" "examples in previous sections. We will break down the main differences " "between them. ::" msgstr "" +"Comme vous pouvez le voir, le code source ressemble beaucoup aux exemples :" +"class:`Custom` des sections précédentes. Analysons les principales " +"différences ::" #: extending/newtypes_tutorial.rst:829 msgid "" @@ -882,6 +1142,9 @@ msgid "" "object structure must be the first value. The base type will already " "include the :c:func:`PyObject_HEAD` at the beginning of its structure." msgstr "" +"La principale différence pour les objets d'un type dérivé est que la " +"structure d'objet du type père doit être la première valeur. Le type père " +"inclut déjà le :c:func:`PyObject_HEAD` au début de sa structure." #: extending/newtypes_tutorial.rst:833 msgid "" @@ -889,12 +1152,17 @@ msgid "" "pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " "*``::" msgstr "" +"Lorsqu'un objet Python est une instance de :class:`SubList`, son pointeur " +"``PyObject *`` peut être trans-typé en toute sécurité vers ``PyListObject " +"*`` et ``SubListObject *`` ::" #: extending/newtypes_tutorial.rst:845 msgid "" "We see above how to call through to the :attr:`__init__` method of the base " "type." msgstr "" +"Nous voyons ci-dessus comment appeler la méthode :attr:`__init__` du type " +"père." #: extending/newtypes_tutorial.rst:848 msgid "" @@ -904,6 +1172,12 @@ msgid "" "memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " "the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" +"Ce modèle est important lors de l'écriture d'un type avec des membres " +"personnalisés :c:member:`~PyTypeObject.tp_new` et :c:member:`~PyTypeObject." +"tp_dealloc`. Le gestionnaire :c:member:`~PyTypeObject.tp_new` ne doit pas " +"réellement allouer la mémoire pour l'objet avec son :c:member:`~PyTypeObject." +"tp_alloc`, mais laisser la classe mère gérer ça en appelant sa propre :c:" +"member:`~PyTypeObject.tp_new`." #: extending/newtypes_tutorial.rst:854 msgid "" @@ -913,6 +1187,11 @@ msgid "" "type:`PyList_Type`; it should be done later in the module initialization " "function::" msgstr "" +"La structure :c:type:`PyTypeObject` prend en charge un :c:member:" +"`~PyTypeObject.tp_base` spécifiant la classe mère concrète du type. En " +"raison de problèmes de compilateur multiplateformes, vous ne pouvez pas " +"remplir ce champ directement avec une référence à :c:type:`PyList_Type` ; " +"cela doit être fait plus tard dans la fonction d'initialisation du module ::" #: extending/newtypes_tutorial.rst:882 msgid "" @@ -922,12 +1201,19 @@ msgid "" "tp_alloc` slot with :c:func:`PyType_GenericNew` -- the allocation function " "from the base type will be inherited." msgstr "" +"Avant d'appeler :c:func:`PyType_Ready`, la structure de type doit avoir " +"l'emplacement :c:member:`~PyTypeObject.tp_base` rempli. Lorsque nous " +"dérivons un type existant, il n'est pas nécessaire de remplir l'emplacement :" +"c:member:`~PyTypeObject.tp_alloc` avec :c:func:`PyType_GenericNew` – la " +"fonction d'allocation du type père sera héritée." #: extending/newtypes_tutorial.rst:888 msgid "" "After that, calling :c:func:`PyType_Ready` and adding the type object to the " "module is the same as with the basic :class:`Custom` examples." msgstr "" +"Ensuite, appeler :c:func:`PyType_Ready` et ajouter l'objet type au module se " +"fait de la même manière qu'avec les exemples de base :class:`Custom`." #: extending/newtypes_tutorial.rst:893 msgid "Footnotes" @@ -938,12 +1224,17 @@ msgid "" "This is true when we know that the object is a basic type, like a string or " "a float." msgstr "" +"C'est vrai lorsque nous savons que l'objet est un type de base, comme une " +"chaîne ou un flottant." #: extending/newtypes_tutorial.rst:897 msgid "" "We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " "this example, because our type doesn't support garbage collection." msgstr "" +"Nous nous sommes appuyés sur le gestionnaire :c:member:`~PyTypeObject." +"tp_dealloc` dans cet exemple, car notre type ne prend pas en charge le " +"ramasse-miettes." #: extending/newtypes_tutorial.rst:900 msgid "" @@ -954,6 +1245,13 @@ msgid "" "deallocating an instance of a string subclass won't call back into our " "objects." msgstr "" +"Nous savons maintenant que les premier et dernier membres sont des chaînes, " +"nous pourrions donc peut-être être moins prudents quant à la décrémentation " +"de leur nombre de références, cependant, nous acceptons les instances de " +"sous-classes de chaînes. Même si la libération de la mémoire des chaînes " +"normales ne rappellera pas nos objets, nous ne pouvons pas garantir que la " +"libération de mémoire d'une instance d'une sous-classe de chaîne ne " +"rappellera pas nos objets." #: extending/newtypes_tutorial.rst:906 msgid "" @@ -961,3 +1259,6 @@ msgid "" "could pass arbitrary :class:`str` subclasses and therefore still create " "reference cycles." msgstr "" +"De plus, même avec nos attributs limités aux instances de chaînes, " +"l'utilisateur pourrait passer des sous-classes arbitraires :class:`str` et " +"donc encore créer des références cycliques." From 20e75e0336375dc89f6ab157e587a1332d3dc9d5 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sat, 25 Nov 2023 15:57:41 +0000 Subject: [PATCH 12/22] I have hard times reviewing PR of more than 200 lines. (#231) Smaller PR are: - Faster to review: reviewers may not have many free hours straight. - Easier to merge: if a translator does a lot of work, better have - part of it merged quickly (by merging good PRs) instead of blocking - the whole work due to a small detail. Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/231 Reviewed-by: Christophe Nanteuil Co-authored-by: Julien Palard Co-committed-by: Julien Palard --- CONTRIBUTING.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 62ae51e8..a0839f45 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -264,7 +264,8 @@ Troisième étape: Traduction =========================== Avec Poedit ---------------- +----------- + Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment. .. code-block:: bash @@ -272,7 +273,12 @@ Ici, remplacez « library/sys.po » par le fichier que vous avez choisi préc poedit library/sys.po -Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ». +Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ». + +Il n'est pas obligatoire de terminer un fichier, ni de le travailler +de haut en bas, chacun traduit ce qu'il souhaite. Cependant évitons de +changer plus de 200 lignes par *pull request* (pour le confort des +relecteurs). Faire plusieurs *pull requests* est bien sûr autorisé. Vérifications après traduction From 6e3ce23f62bb0e632cfa9f46a1090dcfff1e7213 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sun, 26 Nov 2023 15:15:52 +0000 Subject: [PATCH 13/22] =?UTF-8?q?traduction=20du=20d=C3=A9but=20du=20dossi?= =?UTF-8?q?er=20extending=20(#173)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julien Palard Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/173 Reviewed-by: Julien Palard Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- extending/extending.po | 601 ++++++++++++++++++++++++++--------------- 1 file changed, 389 insertions(+), 212 deletions(-) diff --git a/extending/extending.po b/extending/extending.po index 080dfb49..dc48505b 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2023-07-21 12:48+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2023-11-26 10:23+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.3\n" +"X-Generator: Poedit 3.2.2\n" #: extending/extending.rst:8 msgid "Extending Python with C or C++" @@ -27,10 +27,10 @@ msgid "" "they can call C library functions and system calls." msgstr "" "Il est relativement facile d'ajouter de nouveaux modules à Python, si vous " -"savez programmer en C. Ces :dfn:` extension modules` " -"permettent deux choses qui ne sont pas possibles directement en Python : " -"Elles peuvent définir de nouveaux types natifs, et peuvent appeler des " -"fonctions de bibliothèques C ou faire des appels systèmes." +"savez programmer en C. Ces :dfn:`modules d'extension` permettent deux choses " +"qui ne sont pas possibles directement en Python : ils peuvent définir de " +"nouveaux types natifs et peuvent appeler des fonctions de bibliothèques C ou " +"faire des appels systèmes." #: extending/extending.rst:15 msgid "" @@ -42,7 +42,7 @@ msgstr "" "Pour gérer les extensions, l'API Python (*Application Programmer Interface*) " "définit un ensemble de fonctions, macros et variables qui donnent accès à la " "plupart des aspects du système d'exécution de Python. L'API Python est " -"incorporée dans un fichier source C en incluant l'en-tête ``\"Python.h\"``." +"incorporée dans un fichier source C en incluant l'en-tête ``Python.h``." #: extending/extending.rst:20 msgid "" @@ -53,6 +53,7 @@ msgstr "" "configuration du système, plus de détails peuvent être trouvés dans les " "chapitres suivants." +# suit un : #: extending/extending.rst:25 msgid "" "The C extension interface is specific to CPython, and extension modules do " @@ -65,15 +66,15 @@ msgid "" "with C code and are more portable between implementations of Python than " "writing and compiling a C extension module." msgstr "" -"L'interface d'extension C est spécifique à *CPython*, et les modules " -"d'extension ne fonctionne pas sur les autres implémentations de Python. Dans " -"de nombreux cas, il est possible d'éviter la rédaction des extensions en C " -"et ainsi préserver la portabilité vers d'autres implémentations. Par " +"l'interface d'extension C est spécifique à *CPython*, et les modules " +"d'extension ne fonctionnent pas sur les autres implémentations de Python. " +"Dans de nombreux cas, il est possible d'éviter la rédaction des extensions " +"en C et ainsi préserver la portabilité vers d'autres implémentations. Par " "exemple, si vous devez appeler une fonction de la bibliothèque C ou faire un " "appel système, vous devriez envisager d'utiliser le module :mod:`ctypes` ou " -"d'utiliser la bibliothèque `*cffi* `_ plutôt " -"que d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du " -"code Python s'interfaçant avec le code C et sont plus portables entre les " +"d'utiliser la bibliothèque `cffi `_ plutôt que " +"d'écrire du code C sur mesure. Ces modules vous permettent d'écrire du code " +"Python s'interfaçant avec le code C et sont plus portables entre les " "implémentations de Python que l'écriture et la compilation d'une d'extension " "C." @@ -90,10 +91,10 @@ msgid "" "this function to be callable from Python as follows:" msgstr "" "Créons un module d'extension appelé ``spam`` (la nourriture préférée de fans " -"des *Monty Python* …) et disons que nous voulons créer une interface Python " -"à la fonction de la bibliothèque C :c:func:`system` [#]_. Cette fonction " -"prend une chaîne de caractères à terminaison nulle comme argument et renvoie " -"un entier. Nous voulons que cette fonction soit appelable à partir de Python " +"des *Monty Python*) et disons que nous voulons créer une interface Python à " +"la fonction de la bibliothèque C :c:func:`system` [#]_. Cette fonction prend " +"une chaîne de caractères à terminaison nulle comme argument et renvoie un " +"entier. Nous voulons que cette fonction soit appelable à partir de Python " "comme suit :" #: extending/extending.rst:53 @@ -103,10 +104,10 @@ msgid "" "`spammodule.c`; if the module name is very long, like ``spammify``, the " "module name can be just :file:`spammify.c`.)" msgstr "" -"Commencez par créer un fichier :file:`spammodule.c`. (Historiquement, si un " +"Commençons par créer un fichier :file:`spammodule.c` (historiquement, si un " "module se nomme ``spam``, le fichier C contenant son implémentation est " -"appelé :file:`spammodule.c`. Si le nom du module est très long, comme " -"``spammify``, le nom du module peut être juste :file:`spammify.c`.)" +"appelé :file:`spammodule.c` ; si le nom du module est très long, comme " +"``spammify``, le nom du module peut être juste :file:`spammify.c`)." #: extending/extending.rst:58 msgid "The first two lines of our file can be::" @@ -120,15 +121,16 @@ msgstr "" "qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant le " "but du module et un avis de droit d'auteur si vous le souhaitez)." +# suit un : #: extending/extending.rst:68 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " "any standard headers are included." msgstr "" -"Python pouvant définir certaines définitions pré-processeur qui affectent " -"les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." -"h` avant les en-têtes standards." +"il est possible que Python déclare certaines définitions pré-processeur qui " +"affectent les têtes standards sur certains systèmes, vous *devez* donc " +"inclure :file:`Python.h` avant les en-têtes standards." #: extending/extending.rst:72 msgid "" @@ -150,9 +152,9 @@ msgid "" "and :c:func:`realloc` directly." msgstr "" "Tous les symboles exposés par :file:`Python.h` sont préfixés de ``Py`` ou " -"``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le " +"``PY``, sauf ceux qui sont définis dans les en-têtes standards. Pour le " "confort, et comme ils sont largement utilisés par l'interpréteur Python, " -"``\"Python.h\"`` inclut lui-même quelques d'en-têtes standard : ````, ````, ```` et ````. Si ce dernier " "n'existe pas sur votre système, il déclare les fonctions :c:func:`malloc`, :" "c:func:`free` et :c:func:`realloc` directement." @@ -207,7 +209,7 @@ msgstr "" "les types des arguments et les convertit en valeurs C. Elle utilise un " "modèle sous forme de chaîne pour déterminer les types requis des arguments " "ainsi que les types de variables C dans lequel stocker les valeurs " -"converties. Nous en verront plus, plus tard." +"converties. Nous approfondirons ceci plus tard." #: extending/extending.rst:116 msgid "" @@ -220,17 +222,16 @@ msgid "" msgstr "" ":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " "le bon type et que ses composants ont été stockés dans les variables dont " -"les adresses ont été données en entrée. Il renvoie faux (zéro) si une liste " -"d'arguments invalide a été passée. Dans ce dernier cas, elle lève également " -"une exception appropriée de sorte que la fonction d'appel puisse renvoyer " -"``NULL`` immédiatement (comme nous l'avons vu dans l'exemple)." +"les adresses ont été données en entrée. Elle renvoie faux (zéro) si une " +"liste d'arguments invalide a été passée. Dans ce dernier cas, elle lève " +"également une exception appropriée de sorte que la fonction d'appel puisse " +"renvoyer ``NULL`` immédiatement (comme nous l'avons vu dans l'exemple)." #: extending/extending.rst:126 msgid "Intermezzo: Errors and Exceptions" -msgstr "Intermezzo : Les erreurs et les exceptions" +msgstr "Intermezzo : les erreurs et les exceptions" #: extending/extending.rst:128 -#, fuzzy msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " @@ -241,18 +242,15 @@ msgid "" "the exception type, exception instance, and a traceback object. It is " "important to know about them to understand how errors are passed around." msgstr "" -"Une convention primordiale imprégnant tout l'interpréteur Python est : quand " -"une fonction échoue, elle devrait laisser une exception et renvoyer une " -"valeur d'erreur (typiquement un pointeur ``NULL``). Dans l'interpréteur, les " -"exceptions sont stockées dans une variable globale statique, si cette " -"variable est ``NULL``, aucune exception n'a eu lieu. Une seconde variable " -"globale stocke la \"valeur associée\" à l'exception (le deuxième argument " -"de :keyword:`raise`). Une troisième variable contient la trace de la pile " -"dans le cas où l'erreur soit survenue dans du code Python. Ces trois " -"variables sont les équivalents C du résultat de :meth:`sys.exc_info` en " -"Python (voir la section sur le module :mod:`sys` dans *The Python Library " -"Reference*). Il est important de les connaître pour comprendre comment les " -"erreurs sont propagées." +"Une convention importante dans l'interpréteur Python est la suivante : " +"lorsqu'une fonction échoue, elle doit définir une condition d'exception et " +"renvoyer une valeur d'erreur (généralement ``-1`` ou un pointeur ``NULL``). " +"Les informations d'exception sont stockées dans trois attributs de l'état du " +"thread de l'interpréteur. Ils valent ``NULL`` s'il n'y a pas d'exception. " +"Sinon, ce sont les équivalents C des membres du *n*-uplet Python renvoyé " +"par :meth:`sys.exc_info`. Il s'agit du type d'exception, de l'instance " +"d'exception et d'un objet de trace. Il est important de les connaître pour " +"comprendre comment les erreurs sont transmises." #: extending/extending.rst:137 msgid "" @@ -274,7 +272,7 @@ msgstr "" "exception et une chaîne C. L'objet exception est généralement un objet " "prédéfini comme :c:data:`PyExc_ZeroDivisionError`. La chaîne C indique la " "cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " -"que \"valeur associée\" à l'exception." +"que « valeur associée » à l'exception." #: extending/extending.rst:145 msgid "" @@ -307,7 +305,6 @@ msgstr "" "de le déterminer à partir de la valeur renvoyée." #: extending/extending.rst:158 -#, fuzzy msgid "" "When a function *f* that calls another function *g* detects that the latter " "fails, *f* should itself return an error value (usually ``NULL`` or " @@ -322,17 +319,16 @@ msgstr "" "Lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que " "cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour " "(habituellement ``NULL`` ou ``-1``). La fonction *f* ne devrait *pas* " -"appeler l'une des fonctions :c:func:`PyErr_\\*`, l'une d'entre elles ayant " -"déjà été appelée par *g*. La fonction appelant *f* est alors censée renvoyer " -"aussi un code d'erreur à celle qui l'a appelée, toujours sans utiliser :c:" -"func:`PyErr_\\*`, et ainsi de suite. La cause la plus détaillée de l'erreur " -"a déjà été signalée par la fonction l'ayant détecté en premier. Une fois " -"l'erreur remontée à la boucle principale de l'interpréteur Python, il " -"interrompt le code en cours d'exécution et essaie de trouver un gestionnaire " -"d'exception spécifié par le développeur Python." +"appeler l'une des fonctions ``PyErr_*``, l'une d'entre elles ayant déjà été " +"appelée par *g*. La fonction appelant *f* est alors censée renvoyer aussi un " +"code d'erreur à celle qui l'a appelée, toujours sans utiliser ``PyErr_*``, " +"et ainsi de suite. La cause la plus détaillée de l'erreur a déjà été " +"signalée par la fonction l'ayant détecté en premier. Une fois l'erreur " +"remontée à la boucle principale de l'interpréteur Python, il interrompt le " +"code en cours d'exécution et essaie de trouver un gestionnaire d'exception " +"spécifié par le développeur Python." #: extending/extending.rst:168 -#, fuzzy msgid "" "(There are situations where a module can actually give a more detailed error " "message by calling another ``PyErr_*`` function, and in such cases it is " @@ -341,11 +337,11 @@ msgid "" "can fail for a variety of reasons.)" msgstr "" "(Il y a des situations où un module peut effectivement donner un message " -"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, " -"dans de tels cas, il est tout à fait possible de le faire. Cependant, ce " -"n'est généralement pas nécessaire, et peut amener à perdre des informations " -"sur la cause de l'erreur : la plupart des opérations peuvent échouer pour " -"tout un tas de raisons.)" +"d'erreur plus détaillé en appelant une autre fonction ``PyErr_*`` et, dans " +"de tels cas, il est tout à fait possible de le faire. Cependant, ce n'est " +"généralement pas nécessaire, et peut amener à perdre des informations sur la " +"cause de l'erreur : la plupart des opérations peuvent échouer pour tout un " +"tas de raisons.)" #: extending/extending.rst:174 msgid "" @@ -356,8 +352,8 @@ msgid "" "itself (possibly by trying something else, or pretending nothing went wrong)." msgstr "" "Pour ignorer une exception qui aurait été émise lors d'un appel de fonction " -"qui aurait échoué, l'exception doit être retirée explicitement en appelant :" -"c:func:`PyErr_Clear`. Le seul cas pour lequel du code C devrait appeler :c:" +"qui a échoué, l'exception doit être retirée explicitement en appelant :c:" +"func:`PyErr_Clear`. Le seul cas pour lequel du code C devrait appeler :c:" "func:`PyErr_Clear` est lorsqu'il ne veut pas passer l'erreur à " "l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " "quelque chose d'autre, ou en prétendant que rien n'a mal tourné)." @@ -415,7 +411,7 @@ msgstr "" "correspondant à chaque exception Python, tel que :c:data:" "`PyExc_ZeroDivisionError`, que vous pouvez utiliser directement. Choisissez " "judicieusement vos exceptions, typiquement n'utilisez pas :c:data:" -"`PyExc_TypeError` pour indiquer qu'un fichier n'a pas pu être ouvert (qui " +"`PyExc_TypeError` pour indiquer qu'un fichier n'a pas pu être ouvert (cela " "devrait probablement être :c:data:`PyExc_IOError`). Si quelque chose ne va " "pas avec la liste des arguments, la fonction :c:func:`PyArg_ParseTuple` lève " "habituellement une exception :c:data:`PyExc_TypeError`. Mais si vous avez un " @@ -452,7 +448,6 @@ msgstr "" "``NULL``), voir :ref:`bltin-exceptions`." #: extending/extending.rst:238 -#, fuzzy msgid "" "Note also that the :c:data:`!SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -462,21 +457,21 @@ msgid "" "pointer, C code which raises the exception could cause a core dump or other " "unintended side effects." msgstr "" -"Notez également que la variable :c:data:`SpamError` contient une référence à " -"la nouvelle classe créée ; ceci est intentionnel ! Comme l'exception peut " -"être retirée du module par un code externe, une référence à la classe est " -"nécessaire pour assurer qu'il ne sera pas rejeté, causant :c:data:" -"`SpamError` et devenir un pointeur défaillant. Si cela se produirait, le C " -"code qui lève cette exception peut engendrer un *core dump* ou des effets " -"secondaires inattendus." +"Notez également que la variable :c:data:`!SpamError` contient une référence " +"à la nouvelle classe créée ; ceci est intentionnel ! Comme l'exception peut " +"être enlevée du module par du code externe, une référence à la classe est " +"nécessaire pour assurer qu'elle ne sera pas supprimée par le ramasse-" +"miettes, entraînant que :c:data:`!SpamError` devienne un pointeur dans le " +"vide. Si cela se produisait, le code C qui lève cette exception peut " +"engendrer un *core dump* ou des effets secondaires inattendus." #: extending/extending.rst:245 msgid "" "We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " "this sample." msgstr "" -"Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme un type de " -"renvoi de fonction plus tard dans cette section." +"Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme type de renvoi " +"de fonction plus tard dans cette section." #: extending/extending.rst:248 msgid "" @@ -499,7 +494,6 @@ msgstr "" "capable de comprendre cette affirmation ::" #: extending/extending.rst:279 -#, fuzzy msgid "" "It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -513,9 +507,9 @@ msgstr "" "des pointeurs d'objet) si une erreur est détectée dans la liste des " "arguments, se fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. " "Autrement, la valeur chaîne de l'argument a été copiée dans la variable " -"locale :c:data:`command`. Il s'agit d'une attribution de pointeur et vous " +"locale :c:data:`!command`. Il s'agit d'une attribution de pointeur et vous " "n'êtes pas supposés modifier la chaîne vers laquelle il pointe (donc en C " -"Standard, la variable :c:data:`command` doit être clairement déclarée comme " +"Standard, la variable :c:data:`!command` doit être clairement déclarée comme " "``const char *command``)." #: extending/extending.rst:287 @@ -528,26 +522,24 @@ msgstr "" "`PyArg_ParseTuple` ::" #: extending/extending.rst:292 -#, fuzzy msgid "" "Our :func:`!spam.system` function must return the value of :c:data:`!sts` as " "a Python object. This is done using the function :c:func:" "`PyLong_FromLong`. ::" msgstr "" -"Notre fonction :func:`spam.system` doit renvoyer la valeur de :c:data:`sts` " -"comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" -"func:`PyLong_FromLong`. ::" +"Notre fonction :func:`!spam.system` doit renvoyer la valeur de :c:data:`!" +"sts` comme un objet Python. Cela est effectué par l'utilisation de la " +"fonction :c:func:`PyLong_FromLong`. ::" #: extending/extending.rst:297 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" msgstr "" -"Dans ce cas, elle renverra un objet entier. (Oui, même les entiers sont des " -"objets dans le tas en Python !)" +"Dans ce cas, elle renvoie un objet de type entier (oui, même les entiers " +"sont des objets, stockés dans le tas, en Python !)." #: extending/extending.rst:300 -#, fuzzy msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:expr:`void`), the corresponding Python function must return " @@ -555,9 +547,9 @@ msgid "" "macro:`Py_RETURN_NONE` macro)::" msgstr "" "Si vous avez une fonction C qui ne renvoie aucun argument utile (une " -"fonction renvoyant :c:type:`void`), la fonction Python correspondante doit " -"renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " -"implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" +"fonction renvoyant :c:expr:`void`), la fonction Python correspondante doit " +"renvoyer ``None``. Vous aurez besoin de cet idiome pour cela (qui est " +"implémenté par la macro :c:macro:`Py_RETURN_NONE`) ::" #: extending/extending.rst:308 msgid "" @@ -566,8 +558,8 @@ msgid "" "\"error\" in most contexts, as we have seen." msgstr "" ":c:data:`Py_None` est la dénomination en C pour l'objet spécial Python " -"``None``. C'est un authentique objet Python plutôt qu'un pointeur ``NULL``, " -"qui signifie qu'une erreur est survenue, dans la plupart des situations, " +"``None``. C'est un authentique objet Python plutôt qu'un pointeur ``NULL`` " +"qui, dans la plupart des situations, signifie qu'une erreur est survenue " "comme nous l'avons vu." #: extending/extending.rst:316 @@ -609,7 +601,6 @@ msgstr "" "fournies plus bas." #: extending/extending.rst:338 -#, fuzzy msgid "" "The :c:macro:`METH_KEYWORDS` bit may be set in the third field if keyword " "arguments should be passed to the function. In this case, the C function " @@ -617,11 +608,12 @@ 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 mots-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." +"Le bit :c:macro:`METH_KEYWORDS` peut être mis à un dans le troisième champ " +"si des arguments par mots-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." #: extending/extending.rst:344 msgid "" @@ -649,9 +641,9 @@ msgid "" "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``." +"type ``PyObject *``, déclare également toute déclaration de liaison spéciale " +"requise par la plate-forme et, pour le C++, déclare la fonction comme " +"``extern C``." #: extending/extending.rst:370 msgid "" @@ -667,13 +659,13 @@ msgid "" "then gets inserted into ``sys.modules``." msgstr "" "Lorsque le programme Python importe le module :mod:`spam` pour la première " -"fois, :c:func:`PyInit_spam` est appelé. (Voir ci-dessous pour les " -"commentaires sur l'intégration en Python.) Il appelle :c:func:" -"`PyModule_Create`, qui renvoie un objet module, et insère des objets " -"fonction intégrés dans le module nouvellement créé en se basant sur la table " -"(un tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition " -"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module " -"qu'il crée. Il peut s'interrompre avec une erreur fatale pour certaines " +"fois, :c:func:`PyInit_spam` est appelée (voir ci-dessous pour les " +"commentaires sur l'intégration en Python). Elle appelle :c:func:" +"`PyModule_Create`, qui renvoie un objet module et insère des objets fonction " +"intégrés dans le module nouvellement créé en se basant sur le tableau (un " +"tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition du " +"module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module " +"qu'il crée. Elle peut s'interrompre avec une erreur fatale pour certaines " "erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être initialisé de " "manière satisfaisante. La fonction *init* doit renvoyer l'objet module à son " "appelant, afin qu'il soit ensuite inséré dans ``sys.modules``." @@ -687,10 +679,11 @@ msgid "" 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 " +"`PyImport_Inittab`. Pour ajouter le module au tableau d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivie éventuellement d'une " "importation du module ::" +# suit un : #: extending/extending.rst:425 msgid "" "Removing entries from ``sys.modules`` or importing compiled modules into " @@ -699,12 +692,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." +"supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un même processus (ou le faire à la " +"suite d'un :c:func:`fork` sans un :c:func:`exec` préalable) 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." #: extending/extending.rst:431 msgid "" @@ -716,6 +709,7 @@ msgstr "" "sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " "utilisé comme modèle ou simplement lu comme exemple." +# suit un : #: extending/extending.rst:437 msgid "" "Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " @@ -723,11 +717,11 @@ 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 " +"contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phases* (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`." +"l'initialisation multi-phases, voir :PEP:`489`." #: extending/extending.rst:446 msgid "Compilation and Linkage" @@ -742,6 +736,13 @@ msgid "" "`building`) and additional information that pertains only to building on " "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" +"Il y a encore deux choses à faire avant de pouvoir utiliser votre nouvelle " +"extension : la compiler et la lier au système Python. Si vous utilisez le " +"chargement dynamique, les détails peuvent dépendre du style de chargement " +"dynamique utilisé par votre système ; voir les chapitres sur la compilation " +"de modules d'extension (chapitre :ref:`building`) et les informations " +"supplémentaires concernant uniquement la construction sous Windows " +"(chapitre :ref:`building-on-windows`) pour plus d'informations à ce sujet." #: extending/extending.rst:455 msgid "" @@ -752,6 +753,13 @@ msgid "" "the :file:`Modules/` directory of an unpacked source distribution, add a " "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" +"Si vous ne pouvez pas utiliser le chargement dynamique, ou si vous voulez " +"faire de votre module une partie permanente de l'interpréteur Python, vous " +"devez modifier la configuration et reconstruire l'interpréteur. " +"Heureusement, c'est très simple sous Unix : placez simplement votre fichier " +"(:file:`spammodule.c` par exemple) dans le répertoire :file:`Modules/` d'une " +"distribution source décompressée, ajoutez une ligne au fichier :file:" +"`Modules/Setup.local` décrivant votre fichier :" #: extending/extending.rst:466 msgid "" @@ -761,12 +769,21 @@ msgid "" "running ':program:`make` Makefile'. (This is necessary each time you change " "the :file:`Setup` file.)" msgstr "" +"et reconstruisez l'interpréteur en exécutant :program:`make` dans le " +"répertoire de niveau supérieur. Vous pouvez également exécuter :program:" +"`make` dans le sous-répertoire :file:`Modules/`, mais vous devez d'abord " +"reconstruire le :file:`Makefile` en exécutant « :program:`make` " +"Makefile » (c'est nécessaire chaque fois que vous modifiez le fichier :file:" +"`Setup`)." #: extending/extending.rst:472 msgid "" "If your module requires additional libraries to link with, these can be " "listed on the line in the configuration file as well, for instance:" msgstr "" +"Si votre module nécessite d'être lié à des bibliothèques supplémentaires, " +"celles-ci peuvent être ajoutées à la fin de la ligne de votre module dans le " +"fichier de configuration, par exemple :" #: extending/extending.rst:483 msgid "Calling Python Functions from C" @@ -782,6 +799,14 @@ msgid "" "will require calling the Python callback functions from a C callback. Other " "uses are also imaginable." msgstr "" +"Jusqu'à présent, nous nous sommes concentrés sur le fait de rendre les " +"fonctions C appelables depuis Python. L'inverse est également utile : " +"appeler des fonctions Python depuis C. C'est notamment le cas pour les " +"bibliothèques qui gèrent les fonctions dites de « rappel » (*callback* en " +"anglais). Si une interface C utilise des rappels, l'équivalent Python doit " +"souvent fournir un mécanisme de rappel au développeur Python ; " +"l'implémentation nécessite d'appeler les fonctions de rappel Python à partir " +"d'un rappel C. D'autres utilisations sont également envisageables." #: extending/extending.rst:493 msgid "" @@ -791,6 +816,12 @@ msgid "" "interested, have a look at the implementation of the :option:`-c` command " "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" +"Heureusement, l'interpréteur Python est facilement appelé de manière " +"récursive et il existe une interface standard pour appeler une fonction " +"Python (nous ne nous attarderons pas sur la façon d'appeler l'analyseur " +"Python avec une chaîne particulière en entrée — si vous êtes intéressé, " +"jetez un œil à l'implémentation de l'option de ligne de commande :option:`-" +"c` dans :file:`Modules/main.c` à partir du code source Python)." #: extending/extending.rst:499 msgid "" @@ -801,16 +832,22 @@ msgid "" "global variable --- or wherever you see fit. For example, the following " "function might be part of a module definition::" msgstr "" +"L'appel d'une fonction Python est facile. Tout d'abord, le programme Python " +"doit vous transmettre d'une manière ou d'une autre l'objet de fonction " +"Python. Vous devez fournir une fonction (ou une autre interface) pour ce " +"faire. Lorsque cette fonction est appelée, enregistrez un pointeur vers " +"l'objet de la fonction Python (faites attention à :c:func:`Py_INCREF` !) " +"dans une variable globale — ou là où vous le souhaitez. Par exemple, la " +"fonction suivante peut faire partie d'une définition de module ::" #: extending/extending.rst:529 -#, fuzzy msgid "" "This function must be registered with the interpreter using the :c:macro:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" "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:" +"Cette fonction doit être déclarée en utilisant le drapeau :c:macro:" "`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`." @@ -839,6 +876,16 @@ msgid "" "func:`Py_BuildValue` returns a tuple when its format string consists of zero " "or more format codes between parentheses. For example::" msgstr "" +"Plus tard, quand il est temps d'appeler la fonction, vous appelez la " +"fonction C :c:func:`PyObject_CallObject`. Cette fonction requiert deux " +"arguments, tous deux des pointeurs vers des objets Python arbitraires : la " +"fonction Python et la liste d'arguments. La liste d'arguments doit toujours " +"être un objet *n*-uplet, dont la longueur est le nombre d'arguments. Pour " +"appeler la fonction Python sans argument, passez ``NULL`` ou le *n*-uplet " +"vide ; pour l'appeler avec un argument, passez un *n*-uplet singleton. :c:" +"func:`Py_BuildValue` renvoie un *n*-uplet lorsque sa chaîne de format se " +"compose de zéro ou plusieurs codes de format entre parenthèses. Par " +"exemple ::" #: extending/extending.rst:561 msgid "" @@ -848,6 +895,12 @@ msgid "" "new tuple was created to serve as the argument list, which is :c:func:" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" +":c:func:`PyObject_CallObject` renvoie un pointeur d'objet Python : c'est la " +"valeur de retour de la fonction Python. :c:func:`PyObject_CallObject` est " +"« neutre en nombre de références » par rapport à ses arguments. Dans " +"l'exemple, un nouveau *n*-uplet a été créé pour servir de liste d'arguments, " +"qui est décrémenté (avec :c:func:`Py_DECREF`) immédiatement après l'appel :c:" +"func:`PyObject_CallObject`." #: extending/extending.rst:568 msgid "" @@ -857,6 +910,12 @@ msgid "" "should somehow :c:func:`Py_DECREF` the result, even (especially!) if you are " "not interested in its value." msgstr "" +"La valeur de retour de :c:func:`PyObject_CallObject` est « nouvelle » : soit " +"c'est un tout nouvel objet, soit c'est un objet existant dont le nombre de " +"références a été incrémenté. Donc, à moins que vous ne vouliez l'enregistrer " +"dans une variable globale, vous devriez en quelque sorte décrémenter avec :c:" +"func:`Py_DECREF` le résultat, même (surtout !) si vous n'êtes pas intéressé " +"par sa valeur." #: extending/extending.rst:574 msgid "" @@ -870,7 +929,7 @@ msgid "" msgstr "" "Mais avant de le faire, il est important de vérifier que la valeur renvoyée " "n'est pas ``NULL``. Si c'est le cas, la fonction Python s'est terminée par " -"la levée d'une exception. Si le code C qui a appelé :c:func:" +"une levée d'exception. Si le code C qui a appelé :c:func:" "`PyObject_CallObject` est appelé depuis Python, il devrait maintenant " "renvoyer une indication d'erreur à son appelant Python, afin que " "l'interpréteur puisse afficher la pile d'appels, ou que le code Python " @@ -895,7 +954,7 @@ msgstr "" "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 " +"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 ::" @@ -907,6 +966,10 @@ msgid "" "complete: :c:func:`Py_BuildValue` may run out of memory, and this should be " "checked." msgstr "" +"Notez la présence de ``Py_DECREF(arglist)`` immédiatement après l'appel, " +"avant la vérification des erreurs ! Notez également qu'à proprement parler, " +"ce code n'est pas complet : :c:func:`Py_BuildValue` peut manquer de mémoire, " +"et cela doit être vérifié." #: extending/extending.rst:610 msgid "" @@ -935,6 +998,11 @@ msgid "" "Reference Manual. The remaining arguments must be addresses of variables " "whose type is determined by the format string." msgstr "" +"L'argument *arg* doit être un *n*-uplet contenant une liste d'arguments " +"passée de Python à une fonction C. L'argument *format* doit être une chaîne " +"de format, dont la syntaxe est expliquée dans :ref:`arg-parsing` dans le " +"manuel de référence de l'API Python/C. Les arguments restants doivent être " +"des adresses de variables dont le type est déterminé par la chaîne de format." #: extending/extending.rst:642 msgid "" @@ -943,15 +1011,19 @@ msgid "" "variables passed to the call: if you make mistakes there, your code will " "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" +"Notez que si :c:func:`PyArg_ParseTuple` vérifie que les arguments Python ont " +"les types requis, elle ne peut pas vérifier la validité des adresses des " +"variables C transmises à l'appel : si vous y faites des erreurs, votre code " +"plantera probablement ou au moins écrasera des bits aléatoires en mémoire. " +"Donc soyez prudent !" #: extending/extending.rst:647 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" msgstr "" -"Notez que n'importe quelles références sur un objet Python qui sont données " -"à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références !" +"Notez que toute référence sur un objet Python donnée à l'appelant est une " +"référence *empruntée* ; ne décrémentez pas son compteur de références !" #: extending/extending.rst:650 msgid "Some example calls::" @@ -984,26 +1056,27 @@ msgstr "" "*kwlist* est une liste de chaînes de caractères terminée par ``NULL`` qui " "identifie les paramètres ; les noms sont mis en correspondance, de gauche à " "droite, avec les informations de type de *format*. En cas de succès du " -"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon il " +"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon elle " "renvoie faux et lève une exception appropriée." +# suit un : #: extending/extending.rst:739 msgid "" "Nested tuples cannot be parsed when using keyword arguments! Keyword " "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." +"les *n*-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments nommés ! Ceux-ci doivent apparaître dans *kwlist*, dans le cas " +"contraire une exception :exc:`TypeError` est levée." #: extending/extending.rst:745 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) ::" +"Voici un exemple de module qui utilise des arguments nommés, basé sur un " +"exemple de *Geoff Philbrick* (philbrick@hks.com) ::" #: extending/extending.rst:800 msgid "Building Arbitrary Values" @@ -1024,14 +1097,13 @@ 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 " +"Elle 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." +"entrée de la fonction, et non de la sortie) ne doivent pas être des " +"pointeurs, mais juste des valeurs. Elle renvoie un nouvel objet Python, " +"adapté pour être renvoyé par une fonction C appelée depuis Python." #: extending/extending.rst:812 -#, fuzzy msgid "" "One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " "its first argument to be a tuple (since Python argument lists are always " @@ -1042,9 +1114,15 @@ msgid "" "that format unit. To force it to return a tuple of size 0 or one, " "parenthesize the format string." msgstr "" -"Une différence par rapport à :c:func:`PyArg_ParseTuple` : alors que ce " -"dernier nécessite que son premier argument soit un *n*-uplet (puisque les " -"listes d'arguments Python sont toujours représentées par des *n*-uplets en " +"Une différence avec :c:func:`PyArg_ParseTuple` : alors que cette dernière " +"nécessite que son premier argument soit un *n*-uplet (puisque les listes " +"d'arguments Python sont toujours représentées comme des *n*-uplets en " +"interne), :c:func:`Py_BuildValue` ne construit pas toujours un *n*-uplet. " +"Elle construit un *n*-uplet uniquement si sa chaîne de format contient deux " +"unités de format ou plus. Si la chaîne de format est vide, elle renvoie " +"``None`` ; si elle contient exactement une unité de format, elle renvoie " +"tout objet décrit par cette unité de format. Pour la forcer à renvoyer un " +"*n*-uplet de taille 0 ou un, mettez la chaîne de format entre parenthèses." #: extending/extending.rst:820 msgid "" @@ -1085,6 +1163,17 @@ msgid "" "as referencing uninitialized data --- core dumps, wrong results, mysterious " "crashes." msgstr "" +"Chaque bloc de mémoire alloué avec :c:func:`malloc` doit finalement être " +"libéré par exactement un appel à :c:func:`free`. Il est important d'appeler :" +"c:func:`free` au bon moment. Si l'adresse d'un bloc est oubliée mais que :c:" +"func:`free` n'est pas appelée, la mémoire qu'il occupe ne peut être " +"réutilisée tant que le programme n'est pas terminé. C'est ce qu'on appelle " +"une :dfn:`fuite de mémoire`. D'autre part, si un programme appelle :c:func:" +"`free` pour un bloc et continue ensuite à utiliser le bloc, il crée un " +"conflit avec la réutilisation du bloc via un autre appel :c:func:`malloc`. " +"Cela s'appelle :dfn:`utiliser de la mémoire libérée`. Cela a les mêmes " +"conséquences néfastes que le référencement de données non initialisées — " +"« *core dumps* », résultats erronés, plantages mystérieux." #: extending/extending.rst:865 msgid "" @@ -1102,6 +1191,20 @@ msgid "" "happening by having a coding convention or strategy that minimizes this kind " "of errors." msgstr "" +"Les causes courantes des fuites de mémoire sont des exécutions inhabituelles " +"du code. Par exemple, une fonction peut allouer un bloc de mémoire, " +"effectuer des calculs, puis libérer le bloc. Plus tard, une modification des " +"exigences de la fonction peut ajouter un test au calcul qui détecte une " +"condition d'erreur et peut sortir prématurément de la fonction. Il est " +"facile d'oublier de libérer le bloc de mémoire alloué lors de cette sortie " +"prématurée, surtout lorsqu'elle est ajoutée ultérieurement au code. De " +"telles fuites, une fois introduites, passent souvent inaperçues pendant " +"longtemps : la sortie d'erreur n'est prise que dans une petite fraction de " +"tous les appels, et la plupart des machines modernes ont beaucoup de mémoire " +"virtuelle, de sorte que la fuite ne devient apparente que dans un processus " +"de longue durée qui utilise fréquemment cette fonction. Par conséquent, il " +"est important d'éviter les fuites en ayant une convention ou une stratégie " +"de codage qui minimise ce type d'erreurs." #: extending/extending.rst:878 msgid "" @@ -1115,9 +1218,9 @@ msgid "" 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 " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée le :" +"dfn:`comptage de références`. 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é." @@ -1137,19 +1240,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." +"Une stratégie alternative est appelée :dfn:`ramasse-miettes automatique` " +"(*automatic garbage collection* en anglais). 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` sont 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 devons utiliser les compteurs de références." #: extending/extending.rst:898 msgid "" @@ -1165,17 +1268,17 @@ msgid "" "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." +"références, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de références. Cela permet aux applications de ne pas se " +"soucier de la création de références circulaires directes ou indirectes ; " +"celles-ci sont les faiblesses des ramasse-miettes utilisant uniquement le " +"comptage de références. Les cycles de références 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 compteur de références qui n'est pas " +"nul. Les implémentations typiques de comptage de références ne sont pas " +"capables de récupérer la mémoire des objets appartenant à un cycle de " +"références, ou référencés à partir des objets dans le cycle, même s'il n'y a " +"pas d'autre référence au cycle lui-même." #: extending/extending.rst:909 msgid "" @@ -1184,6 +1287,11 @@ msgid "" "collect` function), as well as configuration interfaces and the ability to " "disable the detector at runtime." msgstr "" +"Le détecteur de cycle est capable de détecter les cycles isolés et peut " +"récupérer la mémoire afférente. Le module :mod:`gc` expose un moyen " +"d'exécuter le détecteur (la fonction :func:`~gc.collect`), ainsi que des " +"interfaces de configuration et la possibilité de désactiver le détecteur au " +"moment de l'exécution." #: extending/extending.rst:918 msgid "Reference Counting in Python" @@ -1200,8 +1308,8 @@ msgid "" "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 " +"l'incrémentation et la décrémentation du comptage de références. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le compteur 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 " @@ -1222,13 +1330,13 @@ 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 " +"compteur 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." +"nécessaire. La possession d'une référence peut être transférée. Il y a trois " +"façons de se débarrasser d'une référence que l'on possède : 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." #: extending/extending.rst:936 msgid "" @@ -1238,6 +1346,12 @@ msgid "" "borrowed. Using a borrowed reference after the owner has disposed of it " "risks using freed memory and should be avoided completely [#]_." msgstr "" +"Il est également possible d':dfn:`emprunter` [#]_ une référence à un objet. " +"L'emprunteur d'une référence ne doit pas appeler :c:func:`Py_DECREF`. " +"L'emprunteur ne doit pas conserver l'objet plus longtemps que le " +"propriétaire à qui il a été emprunté. L'utilisation d'une référence " +"empruntée après que le propriétaire s'en est débarrassée risque d'utiliser " +"de la mémoire libérée et doit être absolument évitée [#]_." #: extending/extending.rst:942 msgid "" @@ -1249,14 +1363,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." +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence, est que " +"vous n'avez pas à vous soucier de libérer 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." #: extending/extending.rst:950 msgid "" @@ -1266,10 +1380,15 @@ msgid "" "full owner responsibilities (the new owner must dispose of the reference " "properly, as well as the previous owner)." msgstr "" +"Une référence empruntée peut être changée en une référence possédée en " +"appelant :c:func:`Py_INCREF`. Cela n'affecte pas le statut du propriétaire à " +"qui la référence a été empruntée — cela crée une nouvelle référence possédée " +"et donne l'entière responsabilité au propriétaire (le nouveau propriétaire " +"doit libérer la référence correctement, ainsi que le propriétaire précédent)." #: extending/extending.rst:960 msgid "Ownership Rules" -msgstr "Règles concernant la propriété de références" +msgstr "Règles concernant la possession de références" #: extending/extending.rst:962 msgid "" @@ -1279,7 +1398,7 @@ msgid "" 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 " +"l'interface de la fonction, peu importe que la possession soit transférée " "avec la référence ou non." #: extending/extending.rst:966 @@ -1292,6 +1411,14 @@ msgid "" "func:`PyLong_FromLong` maintains a cache of popular values and can return a " "reference to a cached item." msgstr "" +"La plupart des fonctions qui renvoient une référence à un objet transmettent " +"la possession avec la référence. En particulier, toutes les fonctions dont " +"la fonction est de créer un nouvel objet, telles que :c:func:" +"`PyLong_FromLong` et :c:func:`Py_BuildValue`, transmettent la possession au " +"récepteur. Même si l'objet n'est pas réellement nouveau, vous recevez " +"toujours la possession d'une nouvelle référence à cet objet. Par exemple, :c:" +"func:`PyLong_FromLong` maintient un cache des valeurs souvent utilisées et " +"peut renvoyer une référence à un élément mis en cache." #: extending/extending.rst:974 msgid "" @@ -1303,6 +1430,13 @@ msgid "" "`PyDict_GetItemString` all return references that you borrow from the tuple, " "list or dictionary." msgstr "" +"De nombreuses fonctions qui extraient des objets d'autres objets transfèrent " +"également la possession avec la référence, par exemple :c:func:" +"`PyObject_GetAttrString`. L'image est moins claire ici, cependant, puisque " +"quelques routines courantes sont des exceptions : :c:func:" +"`PyTuple_GetItem`, :c:func:`PyList_GetItem`, :c:func:`PyDict_GetItem` et :c:" +"func:`PyDict_GetItemString` renvoient toutes des références qui sont " +"empruntées au *n*-uplet, à la liste ou au dictionnaire." #: extending/extending.rst:981 msgid "" @@ -1310,6 +1444,9 @@ msgid "" "even though it may actually create the object it returns: this is possible " "because an owned reference to the object is stored in ``sys.modules``." msgstr "" +"La fonction :c:func:`PyImport_AddModule` renvoie également une référence " +"empruntée, même si elle peut en fait créer l'objet qu'elle renvoie : c'est " +"possible car une référence à l'objet est stockée dans ``sys.modules``." #: extending/extending.rst:985 msgid "" @@ -1321,6 +1458,14 @@ msgid "" "them --- even if they fail! (Note that :c:func:`PyDict_SetItem` and friends " "don't take over ownership --- they are \"normal.\")" msgstr "" +"Lorsque vous passez une référence d'objet dans une autre fonction, en " +"général, la fonction vous emprunte la référence — si elle a besoin de la " +"stocker, elle utilise :c:func:`Py_INCREF` pour devenir un propriétaire " +"indépendant. Il existe exactement deux exceptions importantes à cette " +"règle : :c:func:`PyTuple_SetItem` et :c:func:`PyList_SetItem`. Ces fonctions " +"s'approprient l'élément qui leur est transmis, même en cas d'échec ! (Notez " +"que :c:func:`PyDict_SetItem` et compagnie ne prennent pas la possession de " +"l'objet, elles sont « normales ».)" #: extending/extending.rst:993 msgid "" @@ -1330,6 +1475,12 @@ msgid "" "Only when such a borrowed reference must be stored or passed on, it must be " "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" +"Lorsqu'une fonction C est appelée depuis Python, elle emprunte à l'appelant " +"des références aux arguments. L'appelant possède une référence à l'objet, de " +"sorte que la durée de vie de la référence empruntée est garantie jusqu'au " +"retour de la fonction. Ce n'est que lorsqu'une telle référence empruntée " +"doit être stockée ou transmise qu'elle doit être transformée en référence " +"possédée en appelant :c:func:`Py_INCREF`." #: extending/extending.rst:999 msgid "" @@ -1337,6 +1488,9 @@ msgid "" "must be an owned reference --- ownership is transferred from the function to " "its caller." msgstr "" +"La référence d'objet renvoyée par une fonction C appelée depuis Python doit " +"être une référence détenue en propre — la possession est transférée de la " +"fonction à son appelant." #: extending/extending.rst:1007 msgid "Thin Ice" @@ -1351,7 +1505,7 @@ msgid "" 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 " +"lien avec des invocations implicites de l’interpréteur et peuvent amener le " "propriétaire d'une référence à s'en défaire." #: extending/extending.rst:1013 @@ -1360,8 +1514,8 @@ 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 " +"Le premier cas, et le plus important à connaître, est celui de l'utilisation " +"de :c:func:`Py_DECREF` à un objet non relié lors de l'emprunt d'une " "référence à un élément de liste. Par exemple ::" #: extending/extending.rst:1025 @@ -1414,6 +1568,9 @@ msgid "" "The solution, once you know the source of the problem, is easy: temporarily " "increment the reference count. The correct version of the function reads::" msgstr "" +"La solution, une fois que vous connaissez la source du problème, est " +"simple : incrémentez temporairement le compteur de références. La version " +"correcte de la fonction est ::" #: extending/extending.rst:1058 msgid "" @@ -1421,6 +1578,10 @@ msgid "" "bug and someone spent a considerable amount of time in a C debugger to " "figure out why his :meth:`__del__` methods would fail..." msgstr "" +"C'est une histoire vraie. Une ancienne version de Python contenait des " +"variantes de ce bogue et quelqu'un a passé beaucoup de temps dans un " +"débogueur C pour comprendre pourquoi il arrivait que ses méthodes :meth:" +"`__del__` échouent…" #: extending/extending.rst:1062 msgid "" @@ -1435,7 +1596,7 @@ msgid "" "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 " +"impliquant des fils d'exécution. 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:" @@ -1477,7 +1638,7 @@ msgid "" "that may be ``NULL`` is received, for example, from :c:func:`malloc` or from " "a function that may raise an exception." msgstr "" -"Il est préférable de tester la présence de ``NULL`` uniquement au début : " +"Il est préférable de tester la présence de ``NULL`` uniquement au début : " "lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, de :c:func:" "`malloc` ou d'une fonction qui peut lever une exception." @@ -1499,6 +1660,12 @@ msgid "" "expected types, and this would generate redundant tests. There are no " "variants with ``NULL`` checking." msgstr "" +"Les macros de vérification d'un type d'objet particulier " +"(``Pytype_Check()``) ne vérifient pas les pointeurs ``NULL`` — encore une " +"fois, il y a beaucoup de code qui en appelle plusieurs à la suite pour " +"tester un objet par rapport à différents types attendus, ce qui générerait " +"des tests redondants. Il n'y a pas de variantes avec la vérification " +"``NULL``." #: extending/extending.rst:1109 msgid "" @@ -1508,14 +1675,14 @@ msgid "" msgstr "" "Le mécanisme d'appel de fonctions C garantit que la liste d'arguments passée " "aux fonctions C (``args`` dans les exemples) n'est jamais ``NULL``. En fait, " -"il garantit qu'il s'agit toujours d'un n-uplet [#]_." +"il garantit qu'il s'agit toujours d'un *n*-uplet [#]_." #: extending/extending.rst:1113 msgid "" "It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " "user." msgstr "" -"C'est une grave erreur de laisser un pointeur ``NULL`` \"échapper\" à " +"C'est une grave erreur de laisser un pointeur ``NULL`` « s'échapper » vers " "l'utilisateur Python." #: extending/extending.rst:1124 @@ -1564,7 +1731,7 @@ msgstr "" "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 " +"« 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 " @@ -1586,7 +1753,7 @@ msgid "" "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 " +"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 " @@ -1629,6 +1796,15 @@ msgid "" "module, retrieve the value of this name, and then retrieve the pointer from " "the Capsule." msgstr "" +"Python fournit un mécanisme spécial pour transmettre des informations de " +"niveau C (pointeurs) d'un module d'extension à un autre : les Capsules. Une " +"capsule est un type de données Python qui stocke un pointeur (:c:expr:`void " +"\\*`). Les capsules ne peuvent être créées et accessibles que via leur API " +"C, mais elles peuvent être transmises comme n'importe quel autre objet " +"Python. En particulier, elles peuvent être affectées à un nom dans l'espace " +"de noms d'un module d'extension. D'autres modules d'extension peuvent alors " +"importer ce module, récupérer la valeur de ce nom, puis récupérer le " +"pointeur de la Capsule." #: extending/extending.rst:1180 msgid "" @@ -1648,7 +1824,6 @@ msgstr "" "clients." #: extending/extending.rst:1186 -#, fuzzy msgid "" "Whichever method you choose, it's important to name your Capsules properly. " "The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const " @@ -1659,34 +1834,34 @@ msgid "" msgstr "" "Quelle que soit la méthode que vous choisissez, il est important de bien " "nommer vos Capsules. La fonction :c:func:`PyCapsule_New` prend un paramètre " -"nommé (:c:type:`const char \\*`). Vous êtes autorisé à passer un nom " +"nommé (:c:expr:`const char \\*`). Vous êtes autorisé à passer un nom " "``NULL``, mais nous vous encourageons vivement à spécifier un nom. Des " "Capsules correctement nommées offrent un certain degré de sécurité " "concernant un éventuel conflit de types, car il n'y a pas de moyen de " -"distinguer deux ou plusieurs Capsules non nommée entre elles." +"distinguer deux ou plusieurs Capsules non nommées entre elles." #: extending/extending.rst:1193 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" +"En particulier, les capsules utilisées pour exposer les API C doivent " +"recevoir un nom suivant cette convention ::" #: extending/extending.rst:1198 -#, fuzzy msgid "" "The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " "C API provided via a Capsule, but only if the Capsule's name matches this " "convention. This behavior gives C API users a high degree of certainty that " "the Capsule they load contains the correct C API." msgstr "" -"La fonction communément utilisée :c:func:`PyCapsule_Import` permet de " -"charger facilement une API C fournie via une Capsule, mais seulement si le " -"nom de la Capsule correspond à cette convention. Ce comportement donne aux " +"La fonction de commodité :c:func:`PyCapsule_Import` permet de charger " +"facilement une API C fournie via une Capsule, mais seulement si le nom de la " +"Capsule correspond à cette convention. Ce comportement donne aux " "utilisateurs d'API C un degré élevé de certitude que la Capsule qu'ils " "chargent contient l'API C correcte." #: extending/extending.rst:1203 -#, fuzzy msgid "" "The following example demonstrates an approach that puts most of the burden " "on the writer of the exporting module, which is appropriate for commonly " @@ -1700,7 +1875,7 @@ msgstr "" "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 " +"pointeurs :c:expr:`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." @@ -1727,6 +1902,8 @@ msgid "" "The function :c:func:`PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" +"La fonction :c:func:`PySpam_System` est une simple fonction C, déclarée " +"``static`` comme tout le reste ::" #: extending/extending.rst:1227 msgid "The function :c:func:`spam_system` is modified in a trivial way::" @@ -1734,7 +1911,7 @@ msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" #: extending/extending.rst:1241 msgid "In the beginning of the module, right after the line ::" -msgstr "Au début du module, immédiatement après la ligne ::" +msgstr "Au début du module, immédiatement après la ligne ::" #: extending/extending.rst:1245 msgid "two more lines must be added::" @@ -1798,13 +1975,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)." +"Enfin, il convient de mentionner que les 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)." #: extending/extending.rst:1364 msgid "Footnotes" @@ -1847,16 +2024,16 @@ msgstr "" #: extending/extending.rst:539 msgid "PyObject_CallObject()" -msgstr "" +msgstr "PyObject_CallObject()" #: extending/extending.rst:630 msgid "PyArg_ParseTuple()" -msgstr "" +msgstr "PyArg_ParseTuple()" #: extending/extending.rst:722 msgid "PyArg_ParseTupleAndKeywords()" -msgstr "" +msgstr "PyArg_ParseTupleAndKeywords()" #: extending/extending.rst:743 msgid "Philbrick, Geoff" -msgstr "" +msgstr "Philbrick, Geoff" From ac7b434dac7161135d18da88472f8ee0e712e153 Mon Sep 17 00:00:00 2001 From: Mathieu Dupuy Date: Sun, 26 Nov 2023 15:18:17 +0000 Subject: [PATCH 14/22] library/zimport.po: fuzzies (#172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit quelques amélioarations aléatoires qui me sont venus à l'esprit en tombant sur la page en français Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/172 Reviewed-by: Julien Palard Co-authored-by: Mathieu Dupuy Co-committed-by: Mathieu Dupuy --- library/zipimport.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/library/zipimport.po b/library/zipimport.po index 58dbf411..1382dca1 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -6,18 +6,18 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-12-31 11:33+0100\n" -"PO-Revision-Date: 2021-11-08 15:03+0100\n" +"PO-Revision-Date: 2023-07-24 13:50+0200\n" "Last-Translator: Jean Abou Samra \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.0\n" +"X-Generator: Poedit 3.3.1\n" #: library/zipimport.rst:2 msgid ":mod:`zipimport` --- Import modules from Zip archives" -msgstr ":mod:`zipimport` — Importer des modules à partir d'archives Zip" +msgstr ":mod:`zipimport` — Import de modules à partir d'archives Zip" #: library/zipimport.rst:9 msgid "**Source code:** :source:`Lib/zipimport.py`" @@ -58,7 +58,6 @@ msgstr "" "répertoire :file:`lib/` dans l'archive." #: library/zipimport.rst:26 -#, fuzzy msgid "" "Any files may be present in the ZIP archive, but importers are only invoked " "for :file:`.py` and :file:`.pyc` files. ZIP import of dynamic modules (:" @@ -67,19 +66,20 @@ msgid "" "adding the corresponding :file:`.pyc` file, meaning that if a ZIP archive " "doesn't contain :file:`.pyc` files, importing may be rather slow." msgstr "" -"Tous les fichiers peuvent être présents dans l'archive ZIP, mais seuls les " -"fichiers :file:`.py` et :file:`.pyc` sont disponibles pour importation. " -"L'importation ZIP des modules dynamiques (:file:`.pyd`, :file:`.so`) n'est " -"pas permise. Notez que si une archive ne contient que des fichiers :file:`." -"py`, Python n'essaiera pas de modifier l'archive en ajoutant le fichier " -"correspondant :file:`.pyc`, ce qui signifie que si une archive ZIP ne " -"contient pas de fichier :file:`.pyc`, l'importation peut être assez lente." +"Tous les fichiers peuvent être présents dans l'archive ZIP, mais les " +"importateurs ne sont invoqués que pour les fichiers :file:`.py` et :file:`." +"pyc`. L'importation ZIP de modules dynamiques (:file:`.py`, :file:`.so`) " +"n'est pas permise. Notez que si une archive ne contient que des fichiers :" +"file:`.py`, Python n'essaiera pas de modifier l'archive en ajoutant le " +"fichier :file:`.pyc` correspondant, ce qui signifie que si une archive ZIP " +"ne contient pas de fichiers :file:`.pyc`, l'importation peut être assez " +"lente." #: library/zipimport.rst:33 msgid "Previously, ZIP archives with an archive comment were not supported." msgstr "" -"auparavant, les archives ZIP avec un commentaire n'étaient pas prises en " -"charge." +"auparavant, les archives ZIP avec un commentaire d’archive n’étaient pas " +"prises en charge." #: library/zipimport.rst:40 msgid "" From d8ea8e2c72f42e3226cd190bdb84fc4e2eef2885 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sun, 26 Nov 2023 15:24:37 +0000 Subject: [PATCH 15/22] fin du dossier extending (#176) Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/176 Reviewed-by: Julien Palard Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- extending/building.po | 29 +++++++++++++---------------- extending/embedding.po | 10 +++++----- extending/windows.po | 39 +++++++++++++++++++-------------------- 3 files changed, 37 insertions(+), 41 deletions(-) diff --git a/extending/building.po b/extending/building.po index 041daa6d..fcbd7010 100644 --- a/extending/building.po +++ b/extending/building.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-21 14:55+0200\n" -"PO-Revision-Date: 2021-12-11 12:46+0100\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2023-07-28 22:22+0200\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.3\n" +"X-Generator: Poedit 3.2.2\n" #: extending/building.rst:7 msgid "Building C and C++ Extensions" @@ -28,7 +28,6 @@ msgstr "" "Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." #: extending/building.rst:12 -#, fuzzy msgid "" "To be importable, the shared library must be available on :envvar:" "`PYTHONPATH`, and must be named after the module name, with an appropriate " @@ -45,7 +44,6 @@ msgid "The initialization function has the signature:" msgstr "La fonction d'initialisation doit avoir le prototype :" #: extending/building.rst:20 -#, fuzzy msgid "" "It returns either a fully initialized module, or a :c:type:`PyModuleDef` " "instance. See :ref:`initializing-modules` for details." @@ -88,7 +86,6 @@ msgstr "" "library\"* dans la :pep:`489` pour plus d'informations." #: extending/building.rst:49 -#, fuzzy msgid "Building C and C++ Extensions with distutils" msgstr "Construire les extensions C et C++ avec *distutils*" @@ -113,7 +110,7 @@ msgstr "" #: extending/building.rst:73 msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" +msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" #: extending/building.rst:77 msgid "" @@ -122,10 +119,10 @@ msgid "" "will end up in a subdirectory :file:`build/lib.system`, and may have a name " "like :file:`demo.so` or :file:`demo.pyd`." msgstr "" -"compilera :file:`demo.c`, et produira un module d'extension nommé ``demo`` " -"dans le dossier :file:`build`. En fonction du système, le fichier du module " -"peut se retrouver dans :file:`build/lib.system`, et son nom peut être :file:" -"`demo.py` ou :file:`demo.pyd`." +"compile :file:`demo.c` et produit un module d'extension nommé ``demo`` dans " +"le dossier :file:`build`. En fonction du système, le fichier du module peut " +"se retrouver dans :file:`build/lib.system`, et son nom peut être :file:`demo." +"py` ou :file:`demo.pyd`." #: extending/building.rst:82 msgid "" @@ -189,7 +186,7 @@ msgstr "" "paquets. En ce qui concerne l'extension, sont définis quelques macros " "préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " "compilateur, *distutils* peut donner ces informations de manière différente. " -"Par exemple, sur Unix, ça peut ressembler aux commandes ::" +"Par exemple, sur Unix, ça peut ressembler aux commandes ::" #: extending/building.rst:139 msgid "" @@ -216,14 +213,14 @@ msgid "" "End-users will typically want to install the module, they do so by running ::" msgstr "" "Typiquement, les utilisateurs vont vouloir installer le module, ils le font " -"en exécutant ::" +"en exécutant ::" #: extending/building.rst:154 msgid "" "Module maintainers should produce source packages; to do so, they run ::" msgstr "" "Les mainteneurs de modules voudront produire des paquets source, pour ce " -"faire ils exécuteront ::" +"faire ils exécuteront ::" #: extending/building.rst:158 msgid "" @@ -232,8 +229,8 @@ msgid "" "`manifest` for details." msgstr "" "Dans certains cas, des fichiers supplémentaires doivent être inclus dans une " -"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c." -"f. :ref:`manifest`." +"distribution source : c'est possible via un fichier :file:`MANIFEST.in`, " +"voir :ref:`manifest` pour les détails." #: extending/building.rst:161 msgid "" diff --git a/extending/embedding.po b/extending/embedding.po index 28f1c095..0d155e47 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -6,14 +6,14 @@ 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: 2023-02-16 16:53+0100\n" -"Last-Translator: Antoine \n" +"PO-Revision-Date: 2023-07-28 22:36+0200\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.3\n" +"X-Generator: Poedit 3.2.2\n" #: extending/embedding.rst:8 msgid "Embedding Python in Another Application" @@ -275,7 +275,7 @@ msgstr "" "Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " "du code n'est que conversion de données entre Python et C, aussi que pour " "rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " -"Python débute par ::" +"Python débute par ::" #: extending/embedding.rst:178 msgid "" @@ -408,7 +408,7 @@ msgid "" "directly useful to you:" msgstr "" "Pour trouver les bonnes options de compilateur et *linker*, vous pouvez " -"exécuter le script :file:`python(X.Y)-config` généré durant l'installation " +"exécuter le script :file:`python{X.Y}-config` généré durant l'installation " "(un script :file:`python3-config` peut aussi être disponible). Ce script a " "quelques options, celles-ci vous seront utiles :" diff --git a/extending/windows.po b/extending/windows.po index cb008258..78d76b14 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-21 14:55+0200\n" -"PO-Revision-Date: 2020-06-28 15:18+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2023-07-28 22:32+0200\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" #: extending/windows.rst:8 msgid "Building C and C++ Extensions on Windows" @@ -44,7 +45,7 @@ msgstr "" "Les auteurs de modules sont invités à utiliser l'approche *distutils* pour " "construire des modules d'extension, au lieu de celle décrite dans cette " "section. Vous aurez toujours besoin du compilateur C utilisé pour construire " -"Python ; typiquement Microsoft Visual C++." +"Python ; typiquement Microsoft Visual C++." #: extending/windows.rst:24 msgid "" @@ -57,7 +58,7 @@ msgid "" msgstr "" "Cette page mentionne plusieurs noms de fichiers comprenant un numéro de " "version Python encodé. Ces noms de fichiers sont construits sous le format " -"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version " +"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version " "majeure et ``'Y'`` représente le numéro de version mineure de la version " "Python avec laquelle vous travaillez. Par exemple, si vous utilisez Python " "2.2.1, ``XY`` correspond à ``22``." @@ -67,7 +68,6 @@ msgid "A Cookbook Approach" msgstr "Une approche \"recette de cuisine\"" #: extending/windows.rst:36 -#, fuzzy msgid "" "There are two approaches to building extension modules on Windows, just as " "there are on Unix: use the :mod:`distutils` package to control the build " @@ -79,9 +79,9 @@ msgid "" "library module." msgstr "" "Il y a deux approches lorsque l'on construit des modules d'extension sur " -"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " +"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " "contrôler le processus de construction, ou faire les choses manuellement. " -"L'approche *distutils* fonctionne bien pour la plupart des extensions ; la " +"L'approche *distutils* fonctionne bien pour la plupart des extensions ; la " "documentation pour utiliser :mod:`distutils` pour construire et empaqueter " "les modules d'extension est disponible dans :ref:`distutils-index`. Si vous " "considérez que vous avez réellement besoin de faire les choses manuellement, " @@ -131,10 +131,10 @@ msgid "" "data." msgstr "" "Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a " -"pas de références paresseuses. A la place, un accès aux fonctions ou données " +"pas de références paresseuses. À la place, un accès aux fonctions ou données " "passe par une table de conversion. Cela est fait pour que le code DLL ne " "doive pas être réarrangé à l'exécution pour renvoyer à la mémoire du " -"programme ; à la place, le code utilise déjà la table de conversion DLL, et " +"programme ; à la place, le code utilise déjà la table de conversion DLL, et " "cette table est modifiée à l'exécution pour pointer vers les fonctions et " "données." @@ -151,7 +151,7 @@ msgstr "" "contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant " "l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le " "lieur peut informer qu'il ne sait pas où un identificateur est défini. Le " -"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " +"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " "trouve, il inclura tout le code provenant de ce fichier objet." #: extending/windows.rst:76 @@ -169,7 +169,7 @@ msgid "" msgstr "" "Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " "et une bibliothèque d'importation (toutes deux appelées :file:`.lib`). Une " -"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " +"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " "du code pouvant être inclus si nécessaire. Une bibliothèque d'importation " "est uniquement utilisée pour rassurer le lieur qu'un certain identificateur " "est légal, et sera présent dans le programme quand la DLL est chargée. Comme " @@ -193,10 +193,10 @@ msgstr "" "Supposons que vous construisez deux modules de chargement dynamiques, B et " "C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, " "vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` et :file:`C." -"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacun " +"so` ; cela le ferait être inclus deux fois, pour que B et C aient chacun " "leur propre copie. Sur Windows, construire :file:`A.dll` construira aussi :" "file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour B et C. :file:`A." -"lib` ne contient pas de code ; il contient uniquement des informations qui " +"lib` ne contient pas de code ; il contient uniquement des informations qui " "seront utilisées lors de l'exécution pour accéder au code de A." #: extending/windows.rst:94 @@ -207,23 +207,22 @@ msgid "" "create a separate copy." msgstr "" "Sur Windows, utiliser une bibliothèque d'importation est comme utiliser " -"``import spam``; cela vous donne accès aux noms des spams, mais ne crée par " +"``import spam`` ; cela vous donne accès aux noms des spams, mais ne crée par " "de copie séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from " -"spam import *`` ; cela crée une copie séparée." +"spam import *`` ; cela crée une copie séparée." #: extending/windows.rst:103 msgid "Using DLLs in Practice" msgstr "Utiliser les DLL en pratique" #: extending/windows.rst:108 -#, fuzzy msgid "" "Windows Python is built in Microsoft Visual C++; using other compilers may " "or may not work. The rest of this section is MSVC++ specific." msgstr "" -"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser " -"d'autres compilateurs pourrait fonctionner, ou pas (cependant Borland a " -"l'air de fonctionner). Le reste de cette section est spécifique à MSVC++." +"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser " +"d'autres compilateurs pourrait fonctionner, ou pas. Le reste de cette " +"section est spécifique à MSVC++." #: extending/windows.rst:111 msgid "" @@ -242,7 +241,7 @@ msgid "" "functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " "the Python code thanks to :file:`pythonXY.lib`." msgstr "" -"La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam." +"La première commande a créé trois fichiers : :file:`spam.obj`, :file:`spam." "dll` et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions " "Python (telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver " "le code Python grâce à :file:`pythonXY.lib`." From 8d5ea7d2ec2807a537aa603ef4452c3b10d55d32 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sun, 26 Nov 2023 15:25:33 +0000 Subject: [PATCH 16/22] =?UTF-8?q?FIX:=20Incoh=C3=A9rences=20de=20r=C3=A9f?= =?UTF-8?q?=C3=A9rences=20de=20terme=20dans=20le=20message=20traduit.=20(#?= =?UTF-8?q?232)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit J'ai tenté un build et j'ai eu: ``` Warning, treated as error: /home/mdk/clones/python/python-docs-fr/venv/cpython/Doc/library/shutil.rst:53:ncohérences de références de terme dans le message traduit. Original : [], traduit : [':term:`objets simili-chemin `'] make[1]: *** [Makefile:53 : build] Erreur 2 make[1] : on quitte le répertoire « /home/mdk/clones/python/python-docs-fr/venv/cpython/Doc » make: *** [Makefile:92 : all] Erreur 2 ``` c'est dommage, c'était bien avec un lien. Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/232 Reviewed-by: Christophe Nanteuil Co-authored-by: Julien Palard Co-committed-by: Julien Palard --- library/shutil.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/shutil.po b/library/shutil.po index 4abb3d57..168a16b7 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2023-11-23 09:37-0700\n" +"PO-Revision-Date: 2023-11-26 16:20+0100\n" "Last-Translator: Yannick Gingras \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -88,8 +88,8 @@ msgid "" msgstr "" "Copie le contenu (sans métadonnées) du fichier nommé *src* dans un fichier " "nommé *dst* et renvoie *dst* de la manière la plus efficace possible. Les " -"paramètres *src* et *dst* sont des :term:`objets simili-chemin ` ou des chaînes spécifiant des chemins." +"paramètres *src* et *dst* sont des objets simili-chemin ou des chaînes " +"spécifiant des chemins." #: library/shutil.rst:57 msgid "" From bd6abaadbb37d4ed284a41fbaae5f6e51669ff19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20TREMBLAY?= Date: Sun, 26 Nov 2023 20:03:13 +0000 Subject: [PATCH 17/22] Traduction de library/pkgutil.po (#215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #214 Co-authored-by: Jérémy TREMBLAY Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/215 Reviewed-by: Christophe Nanteuil Co-authored-by: Jérémy TREMBLAY Co-committed-by: Jérémy TREMBLAY --- library/pkgutil.po | 155 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 141 insertions(+), 14 deletions(-) diff --git a/library/pkgutil.po b/library/pkgutil.po index b97ec71e..25a78da0 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -6,37 +6,44 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2023-11-24 18:39+0100\n" +"Last-Translator: Jérémy TREMBLAY \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.4\n" #: library/pkgutil.rst:2 msgid ":mod:`pkgutil` --- Package extension utility" -msgstr "" +msgstr ":mod:`pkgutil` — Utilitaire d'extension de package" #: library/pkgutil.rst:7 msgid "**Source code:** :source:`Lib/pkgutil.py`" -msgstr "**Code source :** :source:`Lib/pkgutil.py`" +msgstr "**Code source :** :source:`Lib/pkgutil.py`" #: library/pkgutil.rst:11 msgid "" "This module provides utilities for the import system, in particular package " "support." msgstr "" +"Ce module fournit des utilitaires pour le système d'importation, en " +"particulier pour la prise en charge des paquets." #: library/pkgutil.rst:16 msgid "A namedtuple that holds a brief summary of a module's info." msgstr "" +"Un *n*-uplet nommé qui contient un bref résumé des informations d'un module." #: library/pkgutil.rst:22 msgid "" "Extend the search path for the modules which comprise a package. Intended " "use is to place the following code in a package's :file:`__init__.py`::" msgstr "" +"Étend le chemin de recherche pour les modules qui composent un paquet. " +"L'usage prévu est de placer le code suivant dans le :file:`__init__.py` d'un " +"paquet ::" #: library/pkgutil.rst:28 msgid "" @@ -45,6 +52,10 @@ msgid "" "This is useful if one wants to distribute different parts of a single " "logical package as multiple directories." msgstr "" +"Pour chaque répertoire sur :data:`sys.path` qui a un sous-répertoire " +"correspondant au nom du paquet, ajoute le sous-répertoire au :attr:" +"`__path__` du paquet. Cela est utile si l'on souhaite distribuer différentes " +"parties d'un paquet logique unique dans plusieurs répertoires." #: library/pkgutil.rst:33 msgid "" @@ -56,6 +67,14 @@ msgid "" "pkg` file are added to the path, regardless of whether they exist on the " "filesystem. (This is a feature.)" msgstr "" +"Elle recherche également les fichiers :file:`*.pkg` en commençant là où " +"``*`` correspond à l'argument *name*. Cette fonctionnalité est similaire aux " +"fichiers :file:`*.pth` (voir le module :mod:`site` pour plus " +"d'informations), à l'exception qu'elle ne traite pas de manière spéciale les " +"lignes commençant par ``import``. Un fichier :file:`*.pkg` est fiable de " +"facto : à part la vérification des doublons, toutes les entrées trouvées " +"dans un fichier :file:`*.pkg` sont ajoutées au chemin, quelle que soit leur " +"existence sur le système de fichiers. (C'est une fonctionnalité.)" #: library/pkgutil.rst:41 msgid "" @@ -63,6 +82,10 @@ msgid "" "returned unchanged. The input path is not modified; an extended copy is " "returned. Items are only appended to the copy at the end." msgstr "" +"Si le chemin d'entrée n'est pas une liste (comme c'est le cas pour les " +"paquets figés), il est retourné tel quel. Le chemin d'entrée n'est pas " +"modifié ; une copie étendue en est retournée. Les éléments ne sont ajoutés à " +"la copie qu'à la fin." #: library/pkgutil.rst:45 msgid "" @@ -72,10 +95,18 @@ msgid "" "may cause this function to raise an exception (in line with :func:`os.path." "isdir` behavior)." msgstr "" +"L'interpréteur estime que :data:`sys.path` est une séquence. Les éléments " +"de :data:`sys.path` qui ne sont pas des chaînes se référant à des " +"répertoires existants sont ignorés. Les éléments Unicode sur :data:`sys." +"path` qui provoquent des erreurs lorsqu'ils sont utilisés comme noms de " +"fichiers peuvent amener cette fonction à lever une exception (conformément " +"au comportement de :func:`os.path.isdir`)." #: library/pkgutil.rst:54 msgid ":pep:`302` Finder that wraps Python's \"classic\" import algorithm." msgstr "" +":pep:`302` Chercheur qui enveloppe l'algorithme d'importation « classique » " +"de Python." #: library/pkgutil.rst:56 msgid "" @@ -84,27 +115,38 @@ msgid "" "searches the current :data:`sys.path`, plus any modules that are frozen or " "built-in." msgstr "" +"Si *dirname* est une chaîne, un chercheur :pep:`302` est créé pour " +"rechercher ce répertoire. Si *dirname* est ``None``, un chercheur :pep:`302` " +"est créé pour rechercher le :data:`sys.path` actuel, ainsi que les modules " +"qui sont figés ou natifs." #: library/pkgutil.rst:61 msgid "" "Note that :class:`ImpImporter` does not currently support being used by " "placement on :data:`sys.meta_path`." msgstr "" +"Notez que :class:`ImpImporter` ne prend actuellement pas en charge son " +"utilisation en tant que placement dans :data:`sys.meta_path`." #: library/pkgutil.rst:73 msgid "" "This emulation is no longer needed, as the standard import mechanism is now " "fully :pep:`302` compliant and available in :mod:`importlib`." msgstr "" +"Cette émulation n'est plus nécessaire, car le mécanisme d'importation " +"standard est désormais entièrement conforme à la :pep:`302` et " +"disponible dans :mod:`importlib`." #: library/pkgutil.rst:71 msgid "" ":term:`Loader ` that wraps Python's \"classic\" import algorithm." msgstr "" +":term:`Loader ` qui encapsule l'algorithme d'importation " +"« classique » de Python." #: library/pkgutil.rst:80 msgid "Retrieve a module :term:`loader` for the given *fullname*." -msgstr "" +msgstr "Récupère un :term:`loader` de module pour le *fullname* donné." #: library/pkgutil.rst:82 msgid "" @@ -113,36 +155,46 @@ msgid "" "returns the loader rather than the full :class:`importlib.machinery." "ModuleSpec`." msgstr "" +"Il s'agit d'une surcouche de compatibilité ascendante autour de :func:" +"`importlib.util.find_spec` qui convertit la plupart des échecs en :exc:" +"`ImportError` et ne renvoie que le chargeur, plutôt que le :class:`importlib." +"machinery.ModuleSpec` complet." #: library/pkgutil.rst:104 library/pkgutil.rst:140 library/pkgutil.rst:200 msgid "" "Updated to be based directly on :mod:`importlib` rather than relying on the " "package internal :pep:`302` import emulation." msgstr "" +"Mise à jour pour être basée directement sur :mod:`importlib` au lieu de " +"dépendre de l'émulation interne de la :pep:`302` du paquet." #: library/pkgutil.rst:123 msgid "Updated to be based on :pep:`451`" -msgstr "" +msgstr "Mise à jour pour être basée sur la :pep:`451`" #: library/pkgutil.rst:96 msgid "Retrieve a :term:`finder` for the given *path_item*." -msgstr "" +msgstr "Récupère un :term:`finder` pour l'élément *path_item* donné." #: library/pkgutil.rst:98 msgid "" "The returned finder is cached in :data:`sys.path_importer_cache` if it was " "newly created by a path hook." msgstr "" +"Le chercheur retourné est mis en cache dans :data:`sys.path_importer_cache` " +"s'il a été récemment créé par le chemin d'un point d'entrée." #: library/pkgutil.rst:101 msgid "" "The cache (or part of it) can be cleared manually if a rescan of :data:`sys." "path_hooks` is necessary." msgstr "" +"Le cache (ou une partie de celui-ci) peut être effacé manuellement si une " +"nouvelle analyse de :data:`sys.path_hooks` est nécessaire." #: library/pkgutil.rst:111 msgid "Get a :term:`loader` object for *module_or_name*." -msgstr "" +msgstr "Récupère un objet :term:`loader` pour *module_or_name*." #: library/pkgutil.rst:113 msgid "" @@ -152,10 +204,15 @@ msgid "" "not already imported, its containing package (if any) is imported, in order " "to establish the package ``__path__``." msgstr "" +"Si le module ou le paquet est accessible via le mécanisme d'importation " +"normal, une encapsulation autour de la partie pertinente de cette mécanique " +"est renvoyé. Renvoie ``None`` si le module ne peut pas être trouvé ou " +"importé. Si le module nommé n'est pas déjà importé, son paquet contenant (le " +"cas échéant) est importé afin d'établir le paquet ``__path__``." #: library/pkgutil.rst:129 msgid "Yield :term:`finder` objects for the given module name." -msgstr "" +msgstr "Génère des objets :term:`finder` pour le nom du module donné." #: library/pkgutil.rst:131 msgid "" @@ -163,32 +220,47 @@ msgid "" "containing fullname, otherwise they will be all registered top level finders " "(i.e. those on both :data:`sys.meta_path` and :data:`sys.path_hooks`)." msgstr "" +"Si le nom complet contient un ``'.'``, les chercheurs sont pour le paquet " +"contenant le nom complet, sinon ils sont enregistrés pour tous les " +"chercheurs de niveau supérieur (c'est-à-dire ceux de :data:`sys.meta_path` " +"et de :data:`sys.path_hooks`)." #: library/pkgutil.rst:135 msgid "" "If the named module is in a package, that package is imported as a side " "effect of invoking this function." msgstr "" +"Si le module nommé se trouve dans un paquet, ce paquet est importé en tant " +"qu'effet secondaire de l'invocation de cette fonction." #: library/pkgutil.rst:138 msgid "If no module name is specified, all top level finders are produced." msgstr "" +"Si aucun nom de module n'est spécifié, tous les chercheurs de niveau " +"supérieur sont générés." #: library/pkgutil.rst:147 msgid "" "Yields :class:`ModuleInfo` for all submodules on *path*, or, if *path* is " "``None``, all top-level modules on :data:`sys.path`." msgstr "" +"Fournit des :class:`ModuleInfo` pour tous les sous-modules sur *path* ou, si " +"*path* est ``None``, pour tous les modules de niveau supérieur sur :data:" +"`sys.path`." #: library/pkgutil.rst:171 msgid "" "*path* should be either ``None`` or a list of paths to look for modules in." msgstr "" +"*path* doit être soit ``None``, soit une liste de chemins pour rechercher " +"des modules." #: library/pkgutil.rst:173 msgid "" "*prefix* is a string to output on the front of every module name on output." msgstr "" +"*prefix* est une chaîne de caractères à afficher au début de chaque nom de " +"module en sortie." #: library/pkgutil.rst:195 msgid "" @@ -197,12 +269,18 @@ msgid "" "for :class:`importlib.machinery.FileFinder` and :class:`zipimport." "zipimporter`." msgstr "" +"Cela fonctionne uniquement pour un :term:`finder` qui définit une méthode " +"``iter_modules()``. Cette interface n'est pas standard, donc le module " +"fournit également des implémentations pour :class:`importlib.machinery." +"FileFinder` et :class:`zipimport.zipimporter`." #: library/pkgutil.rst:168 msgid "" "Yields :class:`ModuleInfo` for all modules recursively on *path*, or, if " "*path* is ``None``, all accessible modules." msgstr "" +"Fournit des :class:`ModuleInfo` pour tous les modules de manière récursive " +"sur *path* ou, si *path* est ``None``, tous les modules accessibles." #: library/pkgutil.rst:175 msgid "" @@ -210,6 +288,9 @@ msgid "" "the given *path*, in order to access the ``__path__`` attribute to find " "submodules." msgstr "" +"Notez que cette fonction doit importer tous les *packages* (*pas* tous les " +"modules !) sur le *path* donné, afin d'accéder à l'attribut ``__path__`` " +"pour trouver les sous-modules." #: library/pkgutil.rst:179 msgid "" @@ -219,6 +300,11 @@ msgid "" "`ImportError`\\s are caught and ignored, while all other exceptions are " "propagated, terminating the search." msgstr "" +"*onerror* est une fonction qui est appelée avec un argument (le nom du " +"paquet qui était en cours d'importation) si une exception se produit lors de " +"la tentative d'importation d'un paquet. Si aucune fonction *onerror* n'est " +"fournie, les :exc:`ImportError`\\s sont attrapées et ignorées, tandis que " +"toutes les autres exceptions sont propagées, mettant fin à la recherche." #: library/pkgutil.rst:185 msgid "Examples::" @@ -226,7 +312,7 @@ msgstr "Exemples ::" #: library/pkgutil.rst:207 msgid "Get a resource from a package." -msgstr "" +msgstr "Obtient une ressource à partir d'un paquet." #: library/pkgutil.rst:209 msgid "" @@ -237,18 +323,28 @@ msgid "" "separator. The parent directory name ``..`` is not allowed, and nor is a " "rooted name (starting with a ``/``)." msgstr "" +"Ceci est une surcouche pour l'API :term:`loader` :meth:`get_data `. L'argument *package* doit être le nom d'un " +"paquet, au format module standard (``foo.bar``). L'argument *resource* doit " +"être sous forme d'un nom de fichier relatif, en utilisant ``/`` comme " +"séparateur de chemin. Le nom du répertoire parent ``..`` n'est pas autorisé, " +"pas plus qu'un nom racine (commençant par ``/``)." #: library/pkgutil.rst:216 msgid "" "The function returns a binary string that is the contents of the specified " "resource." msgstr "" +"La fonction renvoie une chaîne binaire qui est le contenu de la ressource " +"spécifiée." #: library/pkgutil.rst:219 msgid "" "For packages located in the filesystem, which have already been imported, " "this is the rough equivalent of::" msgstr "" +"Pour les paquets situés dans le système de fichiers, qui ont déjà été " +"importés, c'est l'équivalent approximatif de ::" #: library/pkgutil.rst:225 msgid "" @@ -258,10 +354,16 @@ msgid "" "for :term:`namespace packages ` does not support :meth:" "`get_data `." msgstr "" +"Si le paquet ne peut pas être localisé ou chargé, ou s'il utilise un :term:" +"`loader` qui ne prend pas en charge :meth:`get_data `, alors ``None`` est retourné. En particulier, le :" +"term:`loader` pour les :term:`paquets espaces de noms ` " +"ne prend pas en charge :meth:`get_data `." #: library/pkgutil.rst:234 msgid "Resolve a name to an object." -msgstr "" +msgstr "Solutionne un nom en un objet." #: library/pkgutil.rst:236 msgid "" @@ -269,6 +371,10 @@ msgid "" "issue:`12915`) - and equivalent functionality is also in widely used third-" "party packages such as setuptools, Django and Pyramid." msgstr "" +"Cette fonctionnalité est utilisée dans de nombreux endroits de la " +"bibliothèque standard (voir :issue:`12915`) - et une fonctionnalité " +"équivalente est également présente dans des paquets largement utilisés tels " +"que Setuptools, Django et Pyramid." #: library/pkgutil.rst:240 msgid "" @@ -276,14 +382,17 @@ msgid "" "where W is shorthand for a valid Python identifier and dot stands for a " "literal period in these pseudo-regexes:" msgstr "" +"Python s'attend à ce que *name* soit une chaîne de caractères dans l'un des " +"formats suivants, où W est une abréviation pour un identifiant Python valide " +"et le point représente un point littéral dans ces pseudo-regexes :" #: library/pkgutil.rst:244 msgid "``W(.W)*``" -msgstr "" +msgstr "``W(.W)*``" #: library/pkgutil.rst:245 msgid "``W(.W)*:(W(.W)*)?``" -msgstr "" +msgstr "``W(.W)*:(W(.W)*)?``" #: library/pkgutil.rst:247 msgid "" @@ -294,6 +403,13 @@ msgid "" "inferred by inspection, repeated attempts to import must be done with this " "form." msgstr "" +"La première forme est destinée uniquement à assurer la compatibilité " +"ascendante. Elle suppose qu'une partie du nom pointé est un paquet, et que " +"le reste est un objet quelque part à l'intérieur de ce paquet, " +"éventuellement niché à l'intérieur d'autres objets. Puisque l'endroit où le " +"paquet s'arrête et où la hiérarchie des objets commence ne peut pas être " +"déduit par inspection, des tentatives répétées d'importation doivent être " +"effectuées avec cette forme." #: library/pkgutil.rst:254 msgid "" @@ -303,23 +419,34 @@ msgid "" "hierarchy within that package. Only one import is needed in this form. If it " "ends with the colon, then a module object is returned." msgstr "" +"Dans la deuxième forme, l'appelant clarifie le point de division en " +"fournissant un seul deux-points : le nom pointé à gauche des deux-points est " +"un package à importer, et le nom pointé à droite est la hiérarchie d'objets " +"à l'intérieur de ce paquet. Seule une importation est nécessaire dans cette " +"forme. Si elle se termine par un deux-points, alors un objet module est " +"retourné." #: library/pkgutil.rst:260 msgid "" "The function will return an object (which might be a module), or raise one " "of the following exceptions:" msgstr "" +"La fonction renvoie un objet (qui pourrait être un module), ou génère l'une " +"des exceptions suivantes :" #: library/pkgutil.rst:263 msgid ":exc:`ValueError` -- if *name* isn't in a recognised format." -msgstr "" +msgstr ":exc:`ValueError` – si *name* n'est pas un format reconnu." #: library/pkgutil.rst:265 msgid ":exc:`ImportError` -- if an import failed when it shouldn't have." msgstr "" +":exc:`ImportError` – si une importation échoue lorsqu'elle n'aurait pas dû." #: library/pkgutil.rst:267 msgid "" ":exc:`AttributeError` -- If a failure occurred when traversing the object " "hierarchy within the imported package to get to the desired object." msgstr "" +":exc:`AttributeError` – Si un échec s'est produit lors du parcours de la " +"hiérarchie d'objets dans le paquet importé pour accéder à l'objet souhaité." From af3332936438c17abc6d9d69f75cffbf4a03ec30 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Thu, 30 Nov 2023 15:59:19 +0100 Subject: [PATCH 18/22] Upgrade woodpecker config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Pipeline changed its name to steps. - Default checkout was target branch, conflicting with our fetch. - Spliting fetch and actual tests for readability. - Cannot split apt install as each step runs in a separated - container (clean way would be to create an image with hunspell in it). Also I don't remember why there's those git things here, so let's try without… --- .woodpecker.yml | 32 ++++++++++++++++++++++++++++---- Makefile | 8 ++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 3eb08f53..1a774815 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,13 +1,37 @@ --- -pipeline: +# `make verifs` only checks changed files, so it make sense only on +# pull requests. + +# Also we're using `branch: "$CI_COMMIT_SOURCE_BRANCH"` because the +# default branch name is the target branch, conflicting with the fact +# the Makefile tries to compare the current branch to the target +# branch... + +when: + event: pull_request + +clone: + git: + image: woodpeckerci/plugin-git + pull: true + settings: + branch: ${CI_COMMIT_SOURCE_BRANCH} + +steps: + fetch target branch: + image: python + commands: + - BRANCH="$(make print-BRANCH)" + - git fetch origin --no-tags +refs/heads/$BRANCH + - git branch $BRANCH origin/$BRANCH + - git branch -va + test: image: python commands: - apt-get update - apt-get install -y hunspell hunspell-fr-comprehensive - python3 -m pip install -r requirements.txt - - BRANCH="$(grep ^BRANCH Makefile | awk '{print $3}')" - - git fetch origin --no-tags +refs/heads/$BRANCH - - 'git branch $BRANCH origin/$BRANCH ||:' + - make diff - make verifs diff --git a/Makefile b/Makefile index d5602773..4162fb84 100644 --- a/Makefile +++ b/Makefile @@ -192,3 +192,11 @@ clean: find -name '*.mo' -delete @echo "Cleaning build directory" $(MAKE) -C venv/cpython/Doc/ clean + +.PHONY: diff +diff: + @echo "Files changed between $(BRANCH) and HEAD:" + @echo $(shell git diff --name-only --diff-filter=d $(BRANCH)) + +print-%: + @echo $($*) From 01f44a2c44b7f3a66fa877c3aa776fdd9c9b5a4a Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Tue, 7 Nov 2023 23:19:30 +0100 Subject: [PATCH 19/22] no reference in dfn tag --- library/unittest.po | 10 +++++----- reference/executionmodel.po | 4 ++-- reference/expressions.po | 27 +++++++++++++-------------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/library/unittest.po b/library/unittest.po index daf007e5..8bf1c8b3 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -65,11 +65,11 @@ msgid "" "example, creating temporary or proxy databases, directories, or starting a " "server process." msgstr "" -"Un :dfn:`aménagement de test ` (*fixture* en anglais) désigne " -"la préparation nécessaire au déroulement d'un ou plusieurs tests, et toutes " -"les actions de nettoyage associées. Cela peut concerner, par exemple, la " -"création de bases de données temporaires ou mandataires, de répertoires, ou " -"le démarrage d'un processus serveur." +"Un :dfn:`aménagement de test` (*fixture* en anglais) désigne la préparation " +"nécessaire au déroulement d'un ou plusieurs tests, et toutes les actions de " +"nettoyage associées. Cela peut concerner, par exemple, la création de bases " +"de données temporaires ou mandataires, de répertoires, ou le démarrage d'un " +"processus serveur." #: library/unittest.rst:37 msgid "test case" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 2153c1ab..f393488c 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -36,8 +36,8 @@ msgid "" "option:`-m` argument is also a code block. The string argument passed to the " "built-in functions :func:`eval` and :func:`exec` is a code block." msgstr "" -"Un programme Python est construit à partir de blocs de code. Un :dfn:`bloc " -"` est un morceau de texte de programme Python qui est exécuté en tant " +"Un programme Python est construit à partir de blocs de code. Un :dfn:`bloc` " +"est un morceau de texte de programme Python qui est exécuté en tant " "qu'unité. Les éléments suivants sont des blocs : un module, un corps de " "fonction et une définition de classe. Chaque commande écrite dans " "l'interpréteur interactif de Python est un bloc. Un fichier de script (un " diff --git a/reference/expressions.po b/reference/expressions.po index 90af4c1f..b900f51c 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -146,17 +146,16 @@ msgstr "" "**Transformation des noms privés :** lorsqu'un identificateur qui apparaît " "textuellement dans la définition d'une classe commence par deux (ou plus) " "caractères de soulignement et ne se termine pas par deux (ou plus) " -"caractères de soulignement, il est considéré comme un :dfn:`nom privé " -"` 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 " -"``_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 " -"tronquer. Si le nom de la classe est constitué uniquement de traits de " -"soulignement, aucune transformation n'est effectuée." +"caractères de soulignement, il est considéré comme un :dfn:`nom privé` 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 ``_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 tronquer. Si le nom de la classe est constitué " +"uniquement de traits de soulignement, aucune transformation n'est effectuée." #: reference/expressions.rst:102 msgid "Literals" @@ -611,9 +610,9 @@ msgid "" msgstr "" "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`)." +"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`)." #: reference/expressions.rst:400 msgid "Asynchronous generator expressions were introduced." From 89b8c9f5c238b2c9cbffff158e57f606de2a8209 Mon Sep 17 00:00:00 2001 From: Yannick Gingras Date: Sat, 2 Dec 2023 21:33:45 -0700 Subject: [PATCH 20/22] Ajout de Jean-Michel (jmdev) dans TRASLATORS --- TRANSLATORS | 1 + 1 file changed, 1 insertion(+) diff --git a/TRANSLATORS b/TRANSLATORS index 6df8140b..2808541a 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -21,3 +21,4 @@ Yannick Gingras Martin Chlumsky Stephan Michaud Edith Viau +Jean-Michel Laprise From d5e2f003e58e0457d545c1fbae0b26f941b34c22 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 5 Dec 2023 21:05:05 +0000 Subject: [PATCH 21/22] sed -i 's/\([^m]\)muable/\1mutable/' *.po */*.po (#258) Closes #123 Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/258 Reviewed-by: Christophe Nanteuil Co-authored-by: Julien Palard Co-committed-by: Julien Palard --- CONTRIBUTING.rst | 2 +- c-api/arg.po | 6 +-- dict | 2 - faq/design.po | 6 +-- faq/programming.po | 16 +++--- glossary.po | 8 +-- library/collections.abc.po | 6 +-- library/collections.po | 4 +- library/copy.po | 2 +- library/ctypes.po | 2 +- library/dataclasses.po | 6 +-- library/functions.po | 4 +- library/inspect.po | 2 +- library/multiprocessing.shared_memory.po | 2 +- library/os.po | 4 +- library/pickle.po | 2 +- library/shelve.po | 4 +- library/stdtypes.po | 38 +++++++------- reference/datamodel.po | 64 ++++++++++++------------ reference/expressions.po | 4 +- reference/simple_stmts.po | 6 +-- tutorial/classes.po | 4 +- tutorial/controlflow.po | 4 +- tutorial/datastructures.po | 8 +-- tutorial/introduction.po | 2 +- whatsnew/3.9.po | 2 +- 26 files changed, 104 insertions(+), 106 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index a0839f45..b21aa7c5 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -604,7 +604,7 @@ list comprehension liste en compréhension (liste en intension est little-endian, big-endian `petit-boutiste, gros-boutiste `_ mixin type type de mélange -mutable muable +mutable `mutable `_ namespace espace de nommage (sauf pour le XML où c'est espace de noms) parameter paramètre diff --git a/c-api/arg.po b/c-api/arg.po index 77f2c776..f58ede9d 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -102,7 +102,7 @@ msgstr "" "Néanmoins, quand une structure :c:type:`Py_buffer` est en cours de " "remplissage, le tampon sous-jacent est verrouillé pour permettre à " "l'appelant d'utiliser le tampon par la suite, même à l'intérieur d'un bloc :" -"c:type:`Py_BEGIN_ALLOW_THREADS`, sans risques de voir des données muables se " +"c:type:`Py_BEGIN_ALLOW_THREADS`, sans risques de voir des données mutables se " "faire redimensionner ou supprimer. En conséquence, **il vous appartient " "d'appeler** :c:func:`PyBuffer_Release` après avoir terminé de traiter les " "données (ou après une interruption prématurée du traitement de ces données)." @@ -229,7 +229,7 @@ msgid "" "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 " +"La même chose que ``s*``, mais n'accepte pas les objets mutables. 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 " @@ -1373,7 +1373,7 @@ msgstr "" #~ "d'octets ` en lecture seule, et définissent un " #~ "pointeur à la place d'une structure tampon. Ils fonctionnent en vérifiant " #~ "que le champ :c:member:`PyBufferProcs.bf_releasebuffer` de l'objet est " -#~ "*NULL*, ce qui n'autorise pas les objets muables tels que :class:" +#~ "*NULL*, ce qui n'autorise pas les objets mutables tels que :class:" #~ "`bytearray`." #~ msgid "" diff --git a/dict b/dict index c5fbb0d2..4009fdf8 100644 --- a/dict +++ b/dict @@ -122,8 +122,6 @@ mersenne mertz Monty muabilité -muable -muables multiensemble multiensembles mutex diff --git a/faq/design.po b/faq/design.po index e2e9b9cb..7018e121 100644 --- a/faq/design.po +++ b/faq/design.po @@ -820,7 +820,7 @@ msgid "" msgstr "" "Les *n*-uplets sont immuables, ce qui signifie que lorsqu'un *n*-uplet a été " "créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle " -"valeur. Les listes sont muables, ce qui signifie que vous pouvez toujours " +"valeur. Les listes sont mutables, ce qui signifie que vous pouvez toujours " "modifier les éléments d'une liste. Seuls des éléments immuables peuvent être " "utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " "des *n*-uplets peuvent être utilisés comme clés." @@ -922,7 +922,7 @@ msgid "" msgstr "" "L'implémentation de la table de hachage des dictionnaires utilise une valeur " "de hachage calculée à partir de la valeur de la clé pour trouver la clé elle-" -"même. Si la clé était un objet muable, sa valeur peut changer, et donc son " +"même. Si la clé était un objet mutable, sa valeur peut changer, et donc son " "hachage pourrait également changer. Mais toute personne modifiant l'objet " "clé ne peut pas dire qu'elle a été utilisée comme une clé de dictionnaire. " "Il ne peut déplacer l'entrée dans le dictionnaire. Ainsi, lorsque vous " @@ -975,7 +975,7 @@ msgid "" "copying code would run into an infinite loop." msgstr "" "Faire une copie lors de l'utilisation d'une liste en tant que clé. Cela ne " -"fonctionne pas puisque la liste, étant un objet muable, pourrait contenir " +"fonctionne pas puisque la liste, étant un objet mutable, pourrait contenir " "une référence à elle-même ou avoir une boucle infinie au niveau du code " "copié." diff --git a/faq/programming.po b/faq/programming.po index 8c559ca3..ed91ee24 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -798,7 +798,7 @@ msgstr "" msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" -"Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " +"Les listes sont des :term:`mutable`, ce qui signifie que leur contenu peut " "être modifié." #: faq/programming.rst:457 @@ -807,7 +807,7 @@ msgid "" "has changed from ``[]`` to ``[10]``. Since both the variables refer to the " "same object, using either name accesses the modified value ``[10]``." msgstr "" -"Après l'appel de :meth:`~list.append`, le contenu de l'objet muable est " +"Après l'appel de :meth:`~list.append`, le contenu de l'objet mutable est " "passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " "objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " "des noms." @@ -881,7 +881,7 @@ msgid "" "etc.), we can use some specific operations to mutate it and all the " "variables that refer to it will see the change." msgstr "" -"Il est possible d'appliquer des opérations qui modifient un objet muable (:" +"Il est possible d'appliquer des opérations qui modifient un objet mutable (:" "class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " "y font référence verront le changement." @@ -942,7 +942,7 @@ msgstr "" #: faq/programming.rst:532 msgid "By passing a mutable (changeable in-place) object::" -msgstr "En passant un objet muable (modifiable sur place) ::" +msgstr "En passant un objet mutable (modifiable sur place) ::" #: faq/programming.rst:543 msgid "By passing in a dictionary that gets mutated::" @@ -2060,7 +2060,7 @@ msgid "" msgstr "" "Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " "d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " -"différence entre les objets muables et immuables en Python." +"différence entre les objets mutables et immuables en Python." #: faq/programming.rst:1352 msgid "" @@ -2070,7 +2070,7 @@ msgid "" msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " "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." +"objets mutables, mais on prendra ``list`` et ``+=`` comme exemple." #: faq/programming.rst:1356 msgid "If you wrote::" @@ -2167,7 +2167,7 @@ msgid "" msgstr "" "L'appel à :meth:`!__iadd__` réussit et la liste est étendue, mais bien que " "``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " -"échoue car les *n*-uplets ne sont pas muables." +"échoue car les *n*-uplets ne sont pas mutables." #: faq/programming.rst:1433 msgid "" @@ -2811,7 +2811,7 @@ msgstr "" #: faq/programming.rst:1871 msgid "Likewise, new instances of mutable containers are never identical::" msgstr "" -"De même, deux instances fraîchement créées d'un type de conteneurs muables " +"De même, deux instances fraîchement créées d'un type de conteneurs mutables " "ne sont jamais identiques ::" #: faq/programming.rst:1878 diff --git a/glossary.po b/glossary.po index 9a018ff0..6c3e1ef9 100644 --- a/glossary.po +++ b/glossary.po @@ -1388,7 +1388,7 @@ msgid "" "value is derived from their :func:`id`." msgstr "" "La plupart des types immuables natifs de Python sont hachables, mais les " -"conteneurs muables (comme les listes ou les dictionnaires) ne le sont pas ; " +"conteneurs mutables (comme les listes ou les dictionnaires) ne le sont pas ; " "les conteneurs immuables (comme les n-uplets ou les ensembles figés) ne sont " "hachables que si leurs éléments sont hachables. Les instances de classes " "définies par les utilisateurs sont hachables par défaut. Elles sont toutes " @@ -1841,7 +1841,7 @@ msgstr "" "Conteneur permettant de rechercher des éléments à partir de clés et " "implémentant les méthodes spécifiées dans les classes mères abstraites des :" "class:`tableaux de correspondances ` (immuables) " -"ou :class:`tableaux de correspondances muables ` (voir les :ref:`classes mères abstraites `). Les classes suivantes sont des exemples de " "tableaux de correspondances : :class:`dict`, :class:`collections." @@ -1977,14 +1977,14 @@ msgstr "Voir :term:`ordre de résolution des méthodes`." #: glossary.rst:814 msgid "mutable" -msgstr "muable" +msgstr "mutable" #: glossary.rst:816 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." msgstr "" -"Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " +"Un objet mutable peut changer de valeur tout en gardant le même :func:`id`. " "Voir aussi :term:`immuable`." #: glossary.rst:818 diff --git a/library/collections.abc.po b/library/collections.abc.po index cf5c02c6..162f7563 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -526,7 +526,7 @@ msgstr "" #: library/collections.abc.rst:260 msgid "ABCs for read-only and mutable :term:`sequences `." -msgstr "ABC pour les :term:`séquences ` immuables et muables." +msgstr "ABC pour les :term:`séquences ` immuables et mutables." #: library/collections.abc.rst:262 msgid "" @@ -553,13 +553,13 @@ msgstr "" #: library/collections.abc.rst:278 msgid "ABCs for read-only and mutable sets." -msgstr "ABC pour les ensembles immuables et muables." +msgstr "ABC pour les ensembles immuables et mutables." #: library/collections.abc.rst:283 msgid "ABCs for read-only and mutable :term:`mappings `." msgstr "" "ABC pour les :term:`tables de correspondances ` immuables et " -"muables." +"mutables." #: library/collections.abc.rst:290 msgid "" diff --git a/library/collections.po b/library/collections.po index 353a8de7..6b2b7029 100644 --- a/library/collections.po +++ b/library/collections.po @@ -1436,7 +1436,7 @@ msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." msgstr "" -"Voir :meth:`types.SimpleNamespace` pour un espace de nommage muable basé sur " +"Voir :meth:`types.SimpleNamespace` pour un espace de nommage mutable basé sur " "un dictionnaire sous-jacent à la place d'un *n*-uplet." #: library/collections.rst:1075 @@ -1753,7 +1753,7 @@ msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" msgstr "" -"En plus de gérer les méthodes et opérations des séquences muables, les " +"En plus de gérer les méthodes et opérations des séquences mutables, les " "instances de :class:`UserList` possèdent l'attribut suivant :" #: library/collections.rst:1351 diff --git a/library/copy.po b/library/copy.po index d8108959..28a74a14 100644 --- a/library/copy.po +++ b/library/copy.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Les instructions d'affectation en Python ne copient pas les objets, elles " "créent des liens entre la cible et l'objet. Concernant les collections qui " -"sont muables ou contiennent des éléments muables, une copie est parfois " +"sont mutables ou contiennent des éléments mutables, une copie est parfois " "nécessaire, pour pouvoir modifier une copie sans modifier l'autre. Ce module " "met à disposition des opérations de copie génériques superficielle et " "récursive (comme expliqué ci-dessous)." diff --git a/library/ctypes.po b/library/ctypes.po index ff261ff4..497ad922 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -551,7 +551,7 @@ msgstr "" 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 " +"Ces types étant des mutables, leur valeur peut aussi être modifiée après " "coup ::" #: library/ctypes.rst:291 diff --git a/library/dataclasses.po b/library/dataclasses.po index 6a59e1f4..8c55ef16 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -484,7 +484,7 @@ msgstr "" "*default_factory* : s'il est fourni, ce doit être un objet appelable sans " "argument. Il est alors appelé à chaque fois qu'il faut une valeur par défaut " "pour le champ. Ceci permet, entre autres choses, de définir des champs dont " -"les valeurs par défaut sont muables. Une erreur se produit si *default* et " +"les valeurs par défaut sont mutables. Une erreur se produit si *default* et " "*default_factory* sont donnés tous les deux." #: library/dataclasses.rst:258 @@ -1161,7 +1161,7 @@ msgstr "" #: library/dataclasses.rst:691 msgid "Mutable default values" -msgstr "Valeurs par défaut muables" +msgstr "Valeurs par défaut mutables" #: library/dataclasses.rst:693 msgid "" @@ -1216,7 +1216,7 @@ msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" -"Pour qu'un champ d'un type muable soit par défaut initialisé à un nouvel " +"Pour qu'un champ d'un type mutable soit par défaut initialisé à un nouvel " "objet pour chaque instance, utilisez une fonction de fabrique ::" # suit un ':' diff --git a/library/functions.po b/library/functions.po index eff8b4c4..49e5f8b3 100644 --- a/library/functions.po +++ b/library/functions.po @@ -573,7 +573,7 @@ msgid "" "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" "Renvoie un nouveau tableau d'octets. La classe :class:`bytearray` est une " -"séquence muable de nombres entiers dans l'intervalle 0 ≤ x < 256. Il possède " +"séquence mutable de nombres entiers dans l'intervalle 0 ≤ x < 256. Il possède " "la plupart des méthodes des séquences variables, décrites dans :ref:" "`typesseq-mutable`, ainsi que la plupart des méthodes de la classe :class:" "`bytes`, voir :ref:`bytes-methods`." @@ -2031,7 +2031,7 @@ msgid "" "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." msgstr "" "Contrairement aux apparences, :class:`list` n'est pas une fonction mais un " -"type séquentiel muable, comme décrit dans :ref:`typesseq-list` et :ref:" +"type séquentiel mutable, comme décrit dans :ref:`typesseq-list` et :ref:" "`typesseq`." #: library/functions.rst:1029 diff --git a/library/inspect.po b/library/inspect.po index 308bd2a8..0988d7e8 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -1403,7 +1403,7 @@ msgid "" "explicitly bound arguments. Changes in :attr:`arguments` will reflect in :" "attr:`args` and :attr:`kwargs`." msgstr "" -"Une correspondance muable entre les noms de paramètres et les valeurs des " +"Une correspondance mutable entre les noms de paramètres et les valeurs des " "arguments. Contient seulement les arguments liés explicitement. Les " "changements dans :attr:`arguments` sont reflétés dans :attr:`args` et :attr:" "`kwargs`." diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index d9da0128..e4fee07a 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -312,7 +312,7 @@ msgid "" "support the dynamic creation of new :class:`ShareableList` instances via " "slicing." msgstr "" -"Construit un objet muable compatible avec le type liste dont toutes les " +"Construit un objet mutable compatible avec le type liste dont toutes les " "valeurs sont stockées dans un bloc de mémoire partagée. Ceci limite le type " "des valeurs pouvant être stockées aux types natifs ``int``, ``float``, " "``bool``, ``str`` (de moins de 10 Mo chacune), ``bytes`` (de moins de 10 Mo " diff --git a/library/os.po b/library/os.po index 8409e324..84f2dea2 100644 --- a/library/os.po +++ b/library/os.po @@ -1779,7 +1779,7 @@ msgid "" "move on to the next buffer in the sequence to hold the rest of the data." msgstr "" "Lit depuis un descripteur de fichier *fd*, à la position *offset* dans des :" -"term:`objets bytes-compatibles ` muables *buffers*, sans " +"term:`objets bytes-compatibles ` mutables *buffers*, sans " "modifier la position dans le fichier. Les données sont transférées dans " "chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." @@ -2132,7 +2132,7 @@ msgid "" "rest of the data." msgstr "" "Lit depuis un descripteur de fichier *fd* dans une séquence d':term:`objets " -"bytes-compatibles ` muables : *buffers*. Les données sont " +"bytes-compatibles ` mutables : *buffers*. Les données sont " "transférées dans chaque tampon, jusqu'à ce qu'il soit plein, tour à tour." #: library/os.rst:1560 diff --git a/library/pickle.po b/library/pickle.po index e12f4872..1222beb1 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -134,7 +134,7 @@ msgstr "" "pointent dessus, depuis différents endroits dans la hiérarchie sérialisée. " "Le module :mod:`pickle` repère ces partages et ne stocke ces objets qu'une " "seule fois. Les objets partagés restent ainsi partagés, ce qui peut être " -"très important pour les objets muables." +"très important pour les objets mutables." #: library/pickle.rst:72 msgid "" diff --git a/library/shelve.po b/library/shelve.po index 1023f13a..c5b133d4 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -82,7 +82,7 @@ msgid "" "mutated)." msgstr "" "À cause de la sémantique de Python, une étagère ne peut pas savoir " -"lorsqu'une entrée muable de dictionnaire persistant est modifiée. Par défaut " +"lorsqu'une entrée mutable de dictionnaire persistant est modifiée. Par défaut " "les objets modifiés sont écrits *seulement* lorsqu'ils sont assignés à une " "étagère (voir :ref:`shelve-example`). Si le paramètre optionnel *writeback* " "est mis à ``True``, toutes les entrées déjà accédées sont aussi mises en " @@ -244,7 +244,7 @@ msgstr "" "Si le paramètre *writeback* est ``True``, l'objet garde en cache toutes les " "entrées accédées et les écrit dans le *dict* aux moments de synchronisation " "et de fermeture. Cela permet des opérations naturelles sur les entrées " -"muables, mais peut consommer beaucoup plus de mémoire et rendre les temps de " +"mutables, mais peut consommer beaucoup plus de mémoire et rendre les temps de " "synchronisation et de fermeture très longs." #: library/shelve.rst:132 diff --git a/library/stdtypes.po b/library/stdtypes.po index 81ebdcd6..d03c81cb 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -42,7 +42,7 @@ msgid "" "rearrange their members in place, and don't return a specific item, never " "return the collection instance itself but ``None``." msgstr "" -"Certaines classes de collection sont muables. Les méthodes qui ajoutent, " +"Certaines classes de collection sont mutables. Les méthodes qui ajoutent, " "retirent, ou réorganisent leurs éléments sur place, et qui ne renvoient pas " "un élément spécifique, ne renvoient jamais l'instance de la collection elle-" "même, mais ``None``." @@ -1726,7 +1726,7 @@ msgstr "" "si vous concaténez des :class:`bytes`, vous pouvez aussi utiliser :meth:" "`bytes.join` ou :class:`io.BytesIO`, ou vous pouvez faire les concaténations " "sur place avec un objet :class:`bytearray`. Les objets :class:`bytearray` " -"sont muables et ont un mécanisme de sur-allocation efficace ;" +"sont mutables et ont un mécanisme de sur-allocation efficace ;" # énumération #: library/stdtypes.rst:1050 @@ -1779,7 +1779,7 @@ msgid "" "`hash` built-in." msgstr "" "La seule opération que les types de séquences immuables implémentent et qui " -"n'est pas implémentée par les types de séquences muables est la fonction " +"n'est pas implémentée par les types de séquences mutables est la fonction " "native :func:`hash`." #: library/stdtypes.rst:1083 @@ -1802,7 +1802,7 @@ msgstr "" #: library/stdtypes.rst:1094 msgid "Mutable Sequence Types" -msgstr "Types de séquences muables" +msgstr "Types de séquences mutables" #: library/stdtypes.rst:1101 msgid "" @@ -1811,7 +1811,7 @@ msgid "" "easier to correctly implement these operations on custom sequence types." msgstr "" "Les opérations dans le tableau ci-dessous sont définies sur les types de " -"séquences muables. La classe mère abstraite :class:`collections.abc." +"séquences mutables. La classe mère abstraite :class:`collections.abc." "MutableSequence` est prévue pour faciliter l'implémentation correcte de ces " "opérations sur les types de séquences personnalisées." @@ -1823,7 +1823,7 @@ msgid "" "integers that meet the value restriction ``0 <= x <= 255``)." msgstr "" "Dans le tableau ci-dessosus, *s* est une instance d'un type de séquence " -"muable, *t* est un objet itérable et *x* est un objet arbitraire qui répond " +"mutable, *t* est un objet itérable et *x* est un objet arbitraire qui répond " "à toutes les restrictions de type et de valeur imposées par *s* (par " "exemple, :class:`bytearray` accepte uniquement des nombres entiers qui " "répondent à la restriction de la valeur ``0 <= x <= 255``)." @@ -1986,7 +1986,7 @@ msgid "" "classes provide it." msgstr "" ":meth:`clear` et :meth:`!copy` sont incluses pour la compatibilité avec les " -"interfaces des conteneurs muables qui ne gèrent pas les opérations de " +"interfaces des conteneurs mutables qui ne gèrent pas les opérations de " "découpage (comme :class:`dict` et :class:`set`). :meth:`!copy` ne fait pas " "partie des classes mères abstraites (*ABC*) de :class:`collections.abc." "MutableSequence`, mais la plupart des classes implémentées gérant des " @@ -2019,7 +2019,7 @@ msgid "" "homogeneous items (where the precise degree of similarity will vary by " "application)." msgstr "" -"Les listes sont des séquences muables, généralement utilisées pour stocker " +"Les listes sont des séquences mutables, généralement utilisées pour stocker " "des collections d'éléments homogènes (le degré de similitude varie selon " "l'usage)." @@ -2085,7 +2085,7 @@ msgid "" "additional method:" msgstr "" "Les listes gèrent toutes les opérations des séquences :ref:`communes " -"` et :ref:`muables `. Les listes " +"` et :ref:`mutables `. Les listes " "fournissent également la méthode supplémentaire suivante :" #: library/stdtypes.rst:1249 @@ -2554,7 +2554,7 @@ msgid "" "StringIO` can be used to efficiently construct strings from multiple " "fragments." msgstr "" -"Il n'y a aucun type de chaîne muable, mais :meth:`str.join` ou :class:`io." +"Il n'y a aucun type de chaîne mutable, mais :meth:`str.join` ou :class:`io." "StringIO` peuvent être utilisées pour construire efficacement des chaînes à " "partir de plusieurs fragments." @@ -4362,7 +4362,7 @@ msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." msgstr "" -"Les objets :class:`bytearray` sont l'équivalent muable des objets :class:" +"Les objets :class:`bytearray` sont l'équivalent mutable des objets :class:" "`bytes`." #: library/stdtypes.rst:2599 @@ -4404,8 +4404,8 @@ msgid "" "mutable>` sequence operations in addition to the common bytes and bytearray " "operations described in :ref:`bytes-methods`." msgstr "" -"Comme les *bytearray* sont muables, ils prennent en charge les opérations de " -"séquences :ref:`muables ` en plus des opérations communes " +"Comme les *bytearray* sont mutables, ils prennent en charge les opérations de " +"séquences :ref:`mutables ` en plus des opérations communes " "de *bytes* et *bytearray* décrites dans :ref:`bytes-methods`." #: library/stdtypes.rst:2611 @@ -5894,9 +5894,9 @@ msgid "" "of another set." msgstr "" "Il existe actuellement deux types natifs pour les ensembles, :class:`set` " -"et :class:`frozenset`. Le type :class:`set` est muable — son contenu peut " +"et :class:`frozenset`. Le type :class:`set` est mutable — son contenu peut " "changer en utilisant des méthodes comme :meth:`~set.add` et :meth:`~set." -"remove`. Puisqu'il est muable, il n'a pas de valeur de hachage et ne peut " +"remove`. Puisqu'il est mutable, il n'a pas de valeur de hachage et ne peut " "donc pas être utilisé ni comme clé de dictionnaire ni comme élément d'un " "autre ensemble. Le type :class:`frozenset` est immuable et :term:`hachable " "` — son contenu ne peut être modifié après sa création, il peut " @@ -6218,7 +6218,7 @@ msgid "" msgstr "" "Un objet :term:`tableau de correspondances ` (*mapping*) fait " "correspondre des valeurs :term:`hachables ` à des objets " -"arbitraires. Les tableaux de correspondances sont des objets muables. Il " +"arbitraires. Les tableaux de correspondances sont des objets mutables. Il " "n'existe pour le moment qu'un type de tableau de correspondances standard, " "le :dfn:`dictionary`. (Pour les autres conteneurs, voir les types natifs :" "class:`liste `, :class:`ensemble ` et :class:`n-uplet `, " @@ -6234,7 +6234,7 @@ msgid "" msgstr "" "Les clés d'un dictionnaire sont *presque* des données arbitraires. Les " "valeurs qui ne sont pas :term:`hachables `, c'est-à-dire les " -"valeurs contenant des listes, dictionnaires ou autres types muables (qui " +"valeurs contenant des listes, dictionnaires ou autres types mutables (qui " "sont comparés à l'aide de leurs valeurs plutôt que par l'identité de " "l'objet) ne peuvent pas être utilisées comme clés. Des valeurs qui sont " "considérées égales lors d'une comparaison (comme ``1``, ``1.0`` et ``True``) " @@ -8781,7 +8781,7 @@ msgstr "" #: library/stdtypes.rst:1461 #, fuzzy msgid "text sequence type" -msgstr "Types de séquences muables" +msgstr "Types de séquences mutables" #: library/stdtypes.rst:1510 library/stdtypes.rst:1528 #, fuzzy @@ -8872,7 +8872,7 @@ msgstr "" #: library/stdtypes.rst:2458 #, fuzzy msgid "binary sequence types" -msgstr "Types de séquences muables" +msgstr "Types de séquences mutables" #: library/stdtypes.rst:2466 #, fuzzy diff --git a/reference/datamodel.po b/reference/datamodel.po index 44109bf6..a34f0995 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-11-20 21:56+0100\n" +"PO-Revision-Date: 2023-12-05 16:21+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -82,17 +82,17 @@ msgid "" "lists are mutable." msgstr "" "La *valeur* de certains objets peut changer. Les objets dont la valeur peut " -"changer sont dits *muables* (*mutable* en anglais) ; les objets dont la " -"valeur est définitivement fixée à leur création sont dits *immuables* " -"(*immutable* en anglais). La valeur d'un objet conteneur immuable qui " -"contient une référence vers un objet muable peut varier lorsque la valeur de " -"l'objet muable change ; cependant, le conteneur est quand même considéré " -"comme immuable parce que l'ensemble des objets qu'il contient ne peut pas " -"être modifié. Ainsi, l'immuabilité n'est pas strictement équivalente au fait " -"d'avoir une valeur non modifiable, c'est plus subtil. La muabilité d'un " -"objet est définie par son type ; par exemple, les nombres, les chaînes de " -"caractères et les *n*-uplets sont immuables alors que les dictionnaires et " -"les listes sont muables." +"changer sont dits mutables ; les objets dont la valeur est définitivement " +"fixée à leur création sont dits *immuables* (*immutable* en anglais). La " +"valeur d'un objet conteneur immuable qui contient une référence vers un " +"objet mutable peut varier lorsque la valeur de l'objet mutable change ; " +"cependant, le conteneur est quand même considéré comme immuable parce que " +"l'ensemble des objets qu'il contient ne peut pas être modifié. Ainsi, " +"l'immuabilité n'est pas strictement équivalente au fait d'avoir une valeur " +"non modifiable, c'est plus subtil. La muabilité d'un objet est définie par " +"son type ; par exemple, les nombres, les chaînes de caractères et les *n*-" +"uplets sont immuables alors que les dictionnaires et les listes sont " +"mutables." #: reference/datamodel.rst:65 msgid "" @@ -182,8 +182,8 @@ msgstr "" "identifiants des objets contenus ; cependant, lorsque nous parlons de la " "muabilité d'un conteneur, seuls les identifiants des objets immédiatement " "contenus sont concernés. Ainsi, si un conteneur immuable (comme un *n*-" -"uplet) contient une référence à un objet muable, sa valeur change si cet " -"objet muable est modifié." +"uplet) contient une référence à un objet mutable, sa valeur change si cet " +"objet mutable est modifié." #: reference/datamodel.rst:106 msgid "" @@ -201,7 +201,7 @@ msgstr "" "son identifiant est concerné dans un certain sens : pour les types " "immuables, les opérations qui calculent de nouvelles valeurs peuvent en fait " "renvoyer une référence à n'importe quel objet existant avec le même type et " -"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " +"la même valeur, alors que pour les objets mutables cela n'est pas autorisé. " "Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " "référer au même objet avec la valeur un, en fonction de l'implémentation. " "Mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " @@ -545,8 +545,8 @@ msgid "" msgstr "" "Un objet de type de séquence immuable ne peut pas être modifié une fois " "qu'il a été créé. Si l'objet contient des références à d'autres objets, ces " -"autres objets peuvent être muables et peuvent être modifiés ; cependant, les " -"objets directement référencés par un objet immuable ne peuvent pas être " +"autres objets peuvent être mutables et peuvent être modifiés ; cependant, " +"les objets directement référencés par un objet immuable ne peuvent pas être " "modifiés." #: reference/datamodel.rst:304 @@ -626,7 +626,7 @@ msgstr "" #: reference/datamodel.rst:383 msgid "Mutable sequences" -msgstr "Séquences muables" +msgstr "Séquences mutables" #: reference/datamodel.rst:359 msgid "" @@ -634,14 +634,14 @@ msgid "" "and slicing notations can be used as the target of assignment and :keyword:" "`del` (delete) statements." msgstr "" -"Les séquences muables peuvent être modifiées après leur création. Les " +"Les séquences mutables peuvent être modifiées après leur création. Les " "notations de tranches et de sous-ensembles peuvent être utilisées en tant " "que cibles d'une affectation ou de l'instruction :keyword:`del` " "(suppression)." #: reference/datamodel.rst:363 msgid "There are currently two intrinsic mutable sequence types:" -msgstr "Il existe aujourd'hui deux types intrinsèques de séquences muables :" +msgstr "Il existe aujourd'hui deux types intrinsèques de séquences mutables :" #: reference/datamodel.rst:370 msgid "Lists" @@ -669,9 +669,9 @@ msgid "" "unhashable), byte arrays otherwise provide the same interface and " "functionality as immutable :class:`bytes` objects." msgstr "" -"Un objet *bytearray* est un tableau muable. Il est créé par la fonction " -"native constructeur :func:`bytearray`. À part la propriété d'être muable (et " -"donc de ne pas pouvoir calculer son empreinte par hachage), un tableau " +"Un objet *bytearray* est un tableau mutable. Il est créé par la fonction " +"native constructeur :func:`bytearray`. À part la propriété d'être mutable " +"(et donc de ne pas pouvoir calculer son empreinte par hachage), un tableau " "d'octets possède la même interface et les mêmes fonctionnalités qu'un objet " "immuable :class:`bytes`." @@ -681,7 +681,7 @@ msgid "" "mutable sequence type, as does the :mod:`collections` module." msgstr "" "Le module d'extension :mod:`array` fournit un autre exemple de type de " -"séquence muable, de même que le module :mod:`collections`." +"séquence mutable, de même que le module :mod:`collections`." #: reference/datamodel.rst:417 msgid "Set types" @@ -731,9 +731,9 @@ msgid "" "constructor and can be modified afterwards by several methods, such as :meth:" "`~set.add`." msgstr "" -"Ils représentent les ensembles muables. Un ensemble est créé par la fonction " -"native constructeur :func:`set` et peut être modifié par la suite à l'aide " -"de différentes méthodes, par exemple :meth:`~set.add`." +"Ils représentent les ensembles mutables. Un ensemble est créé par la " +"fonction native constructeur :func:`set` et peut être modifié par la suite à " +"l'aide de différentes méthodes, par exemple :meth:`~set.add`." #: reference/datamodel.rst:417 msgid "Frozen sets" @@ -793,7 +793,7 @@ msgstr "" "Ils représentent les ensembles finis d'objets indicés par des valeurs " "presque arbitraires. Les seuls types de valeurs non reconnus comme clés sont " "les valeurs contenant des listes, des dictionnaires ou les autres types " -"muables qui sont comparés par valeur plutôt que par l'identifiant de " +"mutables qui sont comparés par valeur plutôt que par l'identifiant de " "l'objet. La raison de cette limitation est qu'une implémentation efficace de " "dictionnaire requiert que l'empreinte par hachage des clés reste constante " "dans le temps. Les types numériques obéissent aux règles normales pour les " @@ -818,8 +818,8 @@ msgid "" "Dictionaries are mutable; they can be created by the ``{...}`` notation (see " "section :ref:`dict`)." msgstr "" -"Les dictionnaires sont muables : ils peuvent être créés par la notation ``{…}" -"`` (reportez-vous à la section :ref:`dict`)." +"Les dictionnaires sont mutables : ils peuvent être créés par la notation " +"``{…}`` (reportez-vous à la section :ref:`dict`)." #: reference/datamodel.rst:457 msgid "" @@ -1686,7 +1686,7 @@ msgstr "" "dans l'objet code (parce que ce sont des valeurs calculées au moment de " "l'exécution). Contrairement aux objets fonctions, les objets codes sont " "immuables et ne contiennent aucune référence (directe ou indirecte) à des " -"objets muables." +"objets mutables." #: reference/datamodel.rst:975 #, fuzzy @@ -4286,7 +4286,7 @@ msgstr "" "abc.MutableMapping` pour aider à la création de ces méthodes à partir d'un " "ensemble de base composé de :meth:`~object.__getitem__`, :meth:`~object." "__setitem__`, :meth:`~object.__delitem__` et :meth:`keys`. Les séquences " -"muables doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:" +"mutables doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:" "`index`, :meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:" "`reverse` et :meth:`sort`, comme les objets :class:`listes ` standards " "de Python. Enfin, les types séquences doivent implémenter l'addition (dans " diff --git a/reference/expressions.po b/reference/expressions.po index b900f51c..94634880 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -425,7 +425,7 @@ msgid "" "supplied, the set is constructed from the elements resulting from the " "comprehension." msgstr "" -"Un agencement d'ensemble produit un nouvel objet ensemble muable, le contenu " +"Un agencement d'ensemble produit un nouvel objet ensemble mutable, le contenu " "étant spécifié soit par une séquence d'expression, soit par une " "compréhension. Quand une liste (dont les éléments sont séparés par des " "virgules) est fournie, ses éléments sont évalués de la gauche vers la droite " @@ -520,7 +520,7 @@ msgid "" msgstr "" "Les restrictions relatives aux types des clés sont données dans la section :" "ref:`types` (pour résumer, le type de la clé doit être :term:`hachable " -"`, ce qui exclut tous les objets muables). Les collisions entre " +"`, ce qui exclut tous les objets mutables). Les collisions entre " "les clés dupliquées ne sont pas détectées ; la dernière valeur (celle qui " "apparaît le plus à droite dans l'agencement) stockée prévaut pour une clé " "donnée." diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 539822dd..1ba32e91 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -78,7 +78,7 @@ msgid "" "attributes or items of mutable objects:" msgstr "" "Les assignations sont utilisées pour lier ou relier des noms à des valeurs " -"et modifier des attributs ou des éléments d'objets muables :" +"et modifier des attributs ou des éléments d'objets mutables :" #: reference/simple_stmts.rst:96 msgid "" @@ -111,8 +111,8 @@ msgid "" "section :ref:`types`)." msgstr "" "Une assignation est définie récursivement en fonction de la forme de la " -"cible (une liste). Quand la cible est une partie d'un objet muable (une " -"référence à un attribut, une sélection ou une tranche), l'objet muable doit " +"cible (une liste). Quand la cible est une partie d'un objet mutable (une " +"référence à un attribut, une sélection ou une tranche), l'objet mutable doit " "effectuer l'assignation au final et décider de sa validité, voire lever une " "exception si l'assignation n'est pas acceptable. Les règles suivies par les " "différents types et les exceptions levées sont données dans les définitions " diff --git a/tutorial/classes.po b/tutorial/classes.po index 52026ddb..f3b56e18 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -124,7 +124,7 @@ msgstr "" "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, *n*-uplets). " "Cependant, les alias peuvent produire des effets surprenants sur la " -"sémantique d'un code Python mettant en jeu des objets muables comme les " +"sémantique d'un code Python mettant en jeu des objets mutables comme les " "listes, les dictionnaires et la plupart des autres types. En général, leur " "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 " @@ -771,7 +771,7 @@ 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 " +"`mutable ` (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* ::" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 69707291..0eea3284 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -772,7 +772,7 @@ msgid "" msgstr "" "**Avertissement important :** la valeur par défaut n'est évaluée qu'une " "seule fois. Ceci fait une différence lorsque cette valeur par défaut est un " -"objet muable tel qu'une liste, un dictionnaire ou des instances de la " +"objet mutable tel qu'une liste, un dictionnaire ou des instances de la " "plupart des classes. Par exemple, la fonction suivante accumule les " "arguments qui lui sont passés au fil des appels successifs ::" @@ -1422,7 +1422,7 @@ msgid "" "to it (items inserted into a list)." 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, " +"plus juste dans la mesure où, si un objet mutable 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…)." diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 758723cb..01c0ba81 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -148,7 +148,7 @@ msgstr "" "Vous avez probablement remarqué que les méthodes qui ne font que modifier la " "liste, comme ``insert``, ``remove`` ou ``sort``, n'affichent pas de valeur " "de retour (elles renvoient ``None``) [#]_. C'est un principe respecté par " -"toutes les structures de données muables en Python." +"toutes les structures de données mutables en Python." #: tutorial/datastructures.rst:128 msgid "" @@ -424,7 +424,7 @@ msgstr "" "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 *n*-uplet ; par contre, il est en revanche possible " -"de créer des *n*-uplets contenant des objets muables, comme des listes." +"de créer des *n*-uplets contenant des objets mutables, comme des listes." #: tutorial/datastructures.rst:408 msgid "" @@ -442,7 +442,7 @@ msgstr "" "séquences hétérogènes d'éléments auxquelles on accède par " "« dissociation » (*unpacking* en anglais, voir plus loin) ou par indice (ou " "même par attribut dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`muables ` et " +"namedtuple>`). Les listes sont souvent :term:`mutables ` et " "contiennent des éléments généralement homogènes auxquels on accède en " "itérant sur la liste." @@ -555,7 +555,7 @@ msgstr "" "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 " +"si un *n*-uplet contient un objet mutable, 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 " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 33cb3881..6714550c 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -528,7 +528,7 @@ msgid "" "type, i.e. it is possible to change their content::" msgstr "" "Mais à la différence des chaînes qui sont :term:`immuables `, les " -"listes sont :term:`muables ` : il est possible de modifier leur " +"listes sont :term:`mutables ` : il est possible de modifier leur " "contenu ::" #: tutorial/introduction.rst:430 diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 05ade1a3..309f4d8e 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -3105,7 +3105,7 @@ msgstr "" "Les objets ``Literal`` lèvent maintenant une exception :exc:`TypeError` lors " "des comparaisons d'égalités si n'importe quel de leurs paramètres n'est pas :" "term:`immuable `. Prenez-note que déclarer un ``Literal`` avec un " -"paramètre muable ne lève pas une erreur ::" +"paramètre mutable ne lève pas une erreur ::" #: whatsnew/3.9.rst:1519 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" From 27d2e50887f0f53d66c30056e2e7b66a1e2a0233 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Fri, 8 Dec 2023 00:20:15 +0000 Subject: [PATCH 22/22] Fin des fuzzies pour reference (#202) closes #36 Reviewed-on: https://git.afpy.org/AFPy/python-docs-fr/pulls/202 Reviewed-by: Yannick Gingras Co-authored-by: Christophe Nanteuil Co-committed-by: Christophe Nanteuil --- reference/compound_stmts.po | 385 +++++++++++----------- reference/expressions.po | 528 ++++++++++++++----------------- reference/simple_stmts.po | 254 +++++++-------- reference/toplevel_components.po | 36 +-- 4 files changed, 565 insertions(+), 638 deletions(-) diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index 46252926..b5c0fe71 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2023-02-15 11:51+0100\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-12-05 22:58+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.1\n" +"X-Generator: Poedit 3.2.2\n" #: reference/compound_stmts.rst:5 msgid "Compound statements" @@ -233,7 +233,6 @@ msgstr "" "compris celles effectuées dans la suite de la boucle ``for`` ::" #: reference/compound_stmts.rst:193 -#, fuzzy msgid "" "Names in the target list are not deleted when the loop is finished, but if " "the sequence is empty, they will not have been assigned to at all by the " @@ -243,27 +242,27 @@ msgid "" msgstr "" "Les noms dans la liste cible ne sont pas supprimés lorsque la boucle est " "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, " -"``list(range(3))`` renvoie la liste ``[0, 1, 2]``." +"assignés par la boucle. Petite astuce : le type natif :func:`range` " +"représente des suites arithmétiques immuables de nombres entiers ; par " +"exemple, itérer sur ``range(3)`` renvoie successivement les entiers 0, 1 et " +"2." +# suit un : #: reference/compound_stmts.rst:198 msgid "Starred elements are now allowed in the expression list." msgstr "" -"Les éléments étoilés sont maintenant autorisés dans l'expression liste." +"les éléments étoilés sont maintenant autorisés dans l'expression liste." #: reference/compound_stmts.rst:205 msgid "The :keyword:`!try` statement" msgstr "L'instruction :keyword:`!try`" #: reference/compound_stmts.rst:215 -#, fuzzy msgid "" "The :keyword:`!try` statement specifies exception handlers and/or cleanup " "code for a group of statements:" msgstr "" -"L'instruction :keyword:`try` définit les gestionnaires d'exception ou le " +"L'instruction :keyword:`!try` définit les gestionnaires d'exception ou le " "code de nettoyage pour un groupe d'instructions :" #: reference/compound_stmts.rst:231 @@ -279,10 +278,9 @@ msgstr "" #: reference/compound_stmts.rst:239 msgid ":keyword:`!except` clause" -msgstr "" +msgstr "clause :keyword:`!except`" #: reference/compound_stmts.rst:241 -#, fuzzy msgid "" "The :keyword:`!except` clause(s) specify one or more exception handlers. " "When no exception occurs in the :keyword:`try` clause, no exception handler " @@ -298,34 +296,32 @@ msgid "" "tuple containing an item that is the class or a non-virtual base class of " "the exception object." msgstr "" -"La ou les clauses :keyword:`except` précisent un ou plusieurs gestionnaires " +"La ou les clauses :keyword:`!except` précisent un ou plusieurs gestionnaires " "d'exceptions. Si aucune exception ne se produit dans la clause :keyword:" "`try`, aucun gestionnaire d'exception n'est exécuté. Lorsqu'une exception se " "produit dans la suite de :keyword:`!try`, Python recherche un gestionnaire " -"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`` " -"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é " -"compatible avec une exception s'il est la classe ou une classe mère (mais " -"pas une :term:`classe mère abstraite`) de l'objet exception ou si c'est un " -"*n*-uplet dont un élément est la classe ou une classe parente (non-" -"abstraite) de l'exception." +"d'exception. Cette recherche inspecte les clauses :keyword:`!except`, l'une " +"après l'autre, jusqu'à trouver une correspondance. Une clause :keyword:`!" +"except` vide (c'est-à-dire sans expression), si elle est présente, doit être " +"la dernière ; elle correspond à toute exception. Pour une clause :keyword:`!" +"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é compatible avec une exception s'il est la classe ou une " +"classe mère (mais pas une :term:`classe mère abstraite`) de l'objet " +"exception ou si c'est un *n*-uplet dont un élément est la classe ou une " +"classe mère (non-abstraite) de l'exception." #: reference/compound_stmts.rst:256 -#, fuzzy msgid "" "If no :keyword:`!except` clause matches the exception, the search for an " "exception handler continues in the surrounding code and on the invocation " "stack. [#]_" msgstr "" -"Si aucune clause ``except`` ne correspond à l'exception, la recherche d'un " -"gestionnaire d'exception se poursuit dans le code englobant et dans la pile " -"d'appels. [#]_" +"Si aucune clause :keyword:`!except` ne correspond à l'exception, la " +"recherche d'un gestionnaire d'exception se poursuit dans le code englobant " +"et dans la pile d'appels. [#]_" #: reference/compound_stmts.rst:260 -#, fuzzy msgid "" "If the evaluation of an expression in the header of an :keyword:`!except` " "clause raises an exception, the original search for a handler is canceled " @@ -333,14 +329,13 @@ msgid "" "call stack (it is treated as if the entire :keyword:`try` statement raised " "the exception)." msgstr "" -"Si l'évaluation d'une expression dans l'en-tête d'une clause ``except`` lève " -"une exception, la recherche initiale d'un gestionnaire est annulée et une " -"recherche commence pour la nouvelle exception dans le code englobant et dans " -"la pile d'appels (c'est traité comme si l'instruction :keyword:`try` avait " -"levé l'exception)." +"Si l'évaluation d'une expression dans l'en-tête d'une clause :keyword:`!" +"except` lève une exception, la recherche initiale d'un gestionnaire est " +"annulée et une recherche commence pour la nouvelle exception dans le code " +"englobant et dans la pile d'appels (c'est traité comme si l'instruction :" +"keyword:`try` avait levé l'exception)." #: reference/compound_stmts.rst:268 -#, fuzzy msgid "" "When a matching :keyword:`!except` clause is found, the exception is " "assigned to the target specified after the :keyword:`!as` keyword in that :" @@ -352,31 +347,29 @@ msgid "" "keyword:`!try` clause of the inner handler, the outer handler will not " "handle the exception.)" msgstr "" -"Lorsqu'une clause d'exception correspond, l'exception est assignée à la " -"cible précisé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. 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 se produit dans la " -"clause ``try`` du gestionnaire interne, le gestionnaire externe ne gère pas " -"l'exception)." +"Lorsqu'une clause :keyword:`!except` correspond, l'exception est affectée à " +"la cible précisée après le mot-clé :keyword:`!as` dans cette clause :keyword:" +"`!except`, si cette cible existe, et la suite de clause :keyword:`!except` " +"est exécutée. Toutes les clauses :keyword:`!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 :keyword:`try` (cela signifie " +"que si deux gestionnaires imbriqués existent pour la même exception, et que " +"l'exception se produit dans la clause :keyword:`!try` du gestionnaire " +"interne, le gestionnaire externe ne gère pas l'exception)." #: reference/compound_stmts.rst:279 -#, fuzzy msgid "" "When an exception has been assigned using ``as target``, it is cleared at " "the end of the :keyword:`!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 ::" +"Lorsqu'une exception a été affectée en utilisant ``as cible``, elle est " +"effacée à la fin de la clause :keyword:`!except`. C'est comme si ::" #: reference/compound_stmts.rst:285 msgid "was translated to ::" -msgstr "avait été traduit en ::" +msgstr "avait été traduit en \t::" #: reference/compound_stmts.rst:293 -#, fuzzy msgid "" "This means the exception must be assigned to a different name to be able to " "refer to it after the :keyword:`!except` clause. Exceptions are cleared " @@ -385,11 +378,11 @@ msgid "" "garbage collection occurs." msgstr "" "Cela veut dire que l'exception doit être assignée à un nom différent pour " -"pouvoir s'y référer après la clause ``except``. Les exceptions sont effacées " -"parce qu'avec la trace de la pile d'appels qui leur est attachée, elles " -"créent un cycle dans les pointeurs de références (avec le cadre de la pile), " -"ce qui conduit à conserver tous les noms locaux de ce cadre en mémoire " -"jusqu'au passage du ramasse-miettes." +"pouvoir s'y référer après la clause :keyword:`!except`. Les exceptions sont " +"effacées parce qu'avec la trace de la pile d'appels qui leur est attachée, " +"elles créent un cycle dans les pointeurs de références (avec le cadre de la " +"pile), ce qui conduit à conserver tous les noms locaux de ce cadre en " +"mémoire jusqu'au passage du ramasse-miettes." #: reference/compound_stmts.rst:303 msgid "" @@ -399,13 +392,17 @@ msgid "" "leaving an exception handler, the exception stored in the :mod:`sys` module " "is reset to its previous value::" msgstr "" +"Avant qu'une suite de clauses :keyword:`!except` ne soit exécutée, " +"l'exception est stockée dans le module :mod:`sys`, où elle est accessible " +"depuis le corps de la clause :keyword:`!except` en appelant :func:`sys." +"exception`. Lorsque vous quittez un gestionnaire d'exceptions, l'exception " +"stockée dans le module :mod:`sys` est réinitialisée à sa valeur précédente ::" #: reference/compound_stmts.rst:334 msgid ":keyword:`!except*` clause" -msgstr "" +msgstr "clause :keyword:`!except*`" #: reference/compound_stmts.rst:336 -#, fuzzy msgid "" "The :keyword:`!except*` clause(s) are used for handling :exc:" "`ExceptionGroup`\\s. The exception type for matching is interpreted as in " @@ -417,17 +414,17 @@ msgid "" "in the group is handled by at most one :keyword:`!except*` clause, the first " "that matches it. ::" msgstr "" -"Les clauses :keyword:`except*` sont utilisées pour gérer des :" -"exc:`ExceptionGroup`. Le type de l'exception pour la correspondance est " +"Les clauses :keyword:`!except*` sont utilisées pour gérer des :exc:" +"`ExceptionGroup`. Le type de l'exception pour la correspondance est " "interprété de la même manière que dans le cas d'un :keyword:`except` mais, " "dans le cas d'un groupe d'exceptions, il est possible d'avoir une " "correspondance partielle quand le type correspond à une ou plusieurs " -"exception dans le groupe. Cela veut dire que plusieurs clauses *except\\** " -"peuvent être exécutées, chacune gérant une partie du groupe d'exceptions. " -"Chaque clause ne s'exécute qu'une fois et gère un groupe d'exception " -"constitué des exceptions qui correspondent. Chaque exception du groupe est " -"gérée par une clause *except\\** au plus, la première à laquelle elle " -"correspond. ::" +"exceptions dans le groupe. Cela veut dire que plusieurs clauses :keyword:`!" +"except*` peuvent être exécutées, chacune gérant une partie du groupe " +"d'exceptions. Chaque clause ne s'exécute (au maximum) qu'une fois et gère un " +"groupe d'exception constitué des exceptions qui correspondent. Chaque " +"exception du groupe est gérée par une clause :keyword:`!except*` au plus, la " +"première à laquelle elle correspond. ::" #: reference/compound_stmts.rst:364 msgid "" @@ -435,6 +432,10 @@ msgid "" "clause are re-raised at the end, combined into an exception group along with " "all exceptions that were raised from within :keyword:`!except*` clauses." msgstr "" +"Toutes les exceptions restantes qui n'ont été gérées par aucune clause :" +"keyword:`!except*` sont réactivées à la fin, combinées dans un groupe " +"d'exceptions avec toutes les exceptions qui ont été levées à partir des " +"clauses :keyword:`!except*`." #: reference/compound_stmts.rst:368 msgid "" @@ -442,6 +443,10 @@ msgid "" "only one exception is raised from an :keyword:`!except*` clause, this " "exception is no longer wrapped to form a new :exc:`ExceptionGroup`." msgstr "" +"À partir de la version 3.11.4, lorsque l'intégralité de :exc:" +"`ExceptionGroup` est gérée et qu'une seule exception est levée à partir " +"d'une clause :keyword:`!except*`, cette exception n'est plus encapsulée pour " +"former un nouveau :exc:`ExceptionGroup`." #: reference/compound_stmts.rst:372 msgid "" @@ -449,6 +454,9 @@ msgid "" "of the :keyword:`!except*` clauses, it is caught and wrapped by an exception " "group with an empty message string. ::" msgstr "" +"Si l'exception levée n'est pas un groupe d'exceptions et que son type " +"correspond à l'une des clauses :keyword:`!except*`, elle est interceptée et " +"encapsulée par un groupe d'exceptions avec une chaîne de message vide. ::" #: reference/compound_stmts.rst:383 msgid "" @@ -458,11 +466,15 @@ msgid "" "keyword:`break`, :keyword:`continue` and :keyword:`return` cannot appear in " "an :keyword:`!except*` clause." msgstr "" +"Une clause :keyword:`!except*` doit avoir un type correspondant, et ce type " +"ne peut pas être une sous-classe de :exc:`BaseExceptionGroup`. Il n'est pas " +"possible de combiner :keyword:`except` et :keyword:`!except*` dans un même :" +"keyword:`try`. Aucune clause :keyword:`break`, :keyword:`continue` ou :" +"keyword:`return` ne peut apparaître dans une clause :keyword:`!except*`." #: reference/compound_stmts.rst:400 -#, fuzzy msgid ":keyword:`!else` clause" -msgstr "L'instruction :keyword:`!while`" +msgstr "clause :keyword:`!else`" #: reference/compound_stmts.rst:402 msgid "" @@ -480,10 +492,9 @@ msgstr "" #: reference/compound_stmts.rst:414 msgid ":keyword:`!finally` clause" -msgstr "" +msgstr "clause :keyword:`!finally`" #: reference/compound_stmts.rst:416 -#, fuzzy msgid "" "If :keyword:`!finally` is present, it specifies a 'cleanup' handler. The :" "keyword:`try` clause is executed, including any :keyword:`except` and :" @@ -496,9 +507,9 @@ msgid "" "`return`, :keyword:`break` or :keyword:`continue` statement, the saved " "exception is discarded::" msgstr "" -"Si :keyword:`finally` est présente, elle définit un gestionnaire de " +"Si :keyword:`!finally` est présente, elle définit un gestionnaire de " "« nettoyage ». La clause :keyword:`try` est exécutée, y compris les clauses :" -"keyword:`except` et :keyword:`!else`. Si une exception se produit dans l'une " +"keyword:`except` et :keyword:`else`. Si une exception se produit dans l'une " "des clauses et n'est pas traitée, l'exception est temporairement " "sauvegardée. La clause :keyword:`!finally` est exécutée. S'il y a une " "exception sauvegardée, elle est levée à nouveau à la fin de la clause :" @@ -509,16 +520,14 @@ msgstr "" "l'exception sauvegardée est jetée ::" #: reference/compound_stmts.rst:435 -#, fuzzy msgid "" "The exception information is not available to the program during execution " "of the :keyword:`!finally` clause." msgstr "" "L'information relative à l'exception n'est pas disponible pour le programme " -"pendant l'exécution de la clause :keyword:`finally`." +"pendant l'exécution de la clause :keyword:`!finally`." #: reference/compound_stmts.rst:443 -#, fuzzy msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " "is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" @@ -527,11 +536,10 @@ msgid "" msgstr "" "Lorsqu'une instruction :keyword:`return`, :keyword:`break` ou :keyword:" "`continue` est exécutée dans la suite d'une instruction :keyword:`try` d'une " -"construction :keyword:`!try`…\\ :keyword:`!finally`, la clause :keyword:" -"`finally` est aussi exécutée « à la sortie »." +"construction :keyword:`!try`…\\ :keyword:`!finally`, la clause :keyword:`!" +"finally` est aussi exécutée « à la sortie »." #: reference/compound_stmts.rst:447 -#, fuzzy msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`!finally` clause always executes, " @@ -539,18 +547,17 @@ msgid "" "will 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 ::" #: reference/compound_stmts.rst:461 -#, fuzzy msgid "" "Prior to Python 3.8, a :keyword:`continue` statement was illegal in the :" "keyword:`!finally` clause due to a problem with the implementation." msgstr "" "Avant Python 3.8, une instruction :keyword:`continue` n'était pas licite " -"dans une clause :keyword:`finally` en raison d'un problème dans " +"dans une clause :keyword:`!finally` en raison d'un problème dans " "l'implémentation." #: reference/compound_stmts.rst:470 @@ -612,7 +619,6 @@ msgstr "" "est assignée." #: reference/compound_stmts.rst:505 -#, fuzzy msgid "" "The :keyword:`with` statement guarantees that if the :meth:`__enter__` " "method returns without an error, then :meth:`__exit__` will always be " @@ -624,7 +630,7 @@ msgstr "" "se termine sans erreur, alors la méthode :meth:`__exit__` est toujours " "appelée. Ainsi, si une erreur se produit pendant l'affectation à la liste " "cible, elle est traitée de la même façon qu'une erreur se produisant dans la " -"suite. Voir l'étape 6 ci-dessous." +"suite. Voir l'étape 7 ci-dessous." #: reference/compound_stmts.rst:511 msgid "The suite is executed." @@ -1084,7 +1090,6 @@ msgstr "" "au champ de recherche. La syntaxe est la suivante :" #: reference/compound_stmts.rst:821 -#, fuzzy msgid "" "If the OR pattern fails, the AS pattern fails. Otherwise, the AS pattern " "binds the subject to the name on the right of the as keyword and succeeds. " @@ -1604,7 +1609,7 @@ msgid "" "exc:`TypeError`." msgstr "" "Si ``name_or_attr`` n'est pas une instance de la classe native :class:" -"`type` , lève une :exc:`TypeError`." +"`type`, lève une :exc:`TypeError`." #: reference/compound_stmts.rst:1098 msgid "" @@ -1641,8 +1646,8 @@ msgid "" "If only keyword patterns are present, they are processed as follows, one by " "one:" msgstr "" -"S'il n'y a que des motifs par mot-clé (NdT : dans le sens « argument par " -"mot-clé »), ils sont évalués comme ceci, un par un :" +"S'il n'y a que des motifs par mot-clé (NdT : dans le sens « argument par mot-" +"clé »), ils sont évalués comme ceci, un par un :" #: reference/compound_stmts.rst:1112 msgid "I. The keyword is looked up as an attribute on the subject." @@ -1795,7 +1800,6 @@ msgid ":class:`tuple`" msgstr ":class:`tuple`" #: reference/compound_stmts.rst:1166 -#, fuzzy msgid "" "These classes accept a single positional argument, and the pattern there is " "matched against the whole object rather than an attribute. For example " @@ -1804,7 +1808,7 @@ msgstr "" "Ces classes acceptent un argument positionnel seul et le filtre s'applique " "alors sur l'ensemble de l'objet plutôt que sur un simple attribut. Par " "exemple, ``int(0|1)`` réussit lorsqu'il est confronté à la valeur ``0``, " -"mais pas aux valeurs ``0.0`` ou ``False``." +"mais pas lorsque c'est la valeur ``0.0``." #: reference/compound_stmts.rst:1170 msgid "" @@ -1891,11 +1895,11 @@ msgstr "" "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 ::" #: reference/compound_stmts.rst:1249 reference/compound_stmts.rst:1426 msgid "is roughly equivalent to ::" -msgstr "est à peu près équivalent à ::" +msgstr "est à peu près équivalent à ::" #: reference/compound_stmts.rst:1254 msgid "" @@ -2132,11 +2136,11 @@ msgstr "" "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 mère :class:" -"`object` ; d'où ::" +"`object` ; d'où ::" #: reference/compound_stmts.rst:1396 msgid "is equivalent to ::" -msgstr "est équivalente à ::" +msgstr "est équivalente à ::" #: reference/compound_stmts.rst:1401 msgid "" @@ -2183,7 +2187,7 @@ msgstr "" 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 ::" +"fonctions ::" #: reference/compound_stmts.rst:1431 msgid "" @@ -2331,11 +2335,11 @@ msgid "Is semantically equivalent to::" msgstr "est sémantiquement équivalent à ::" #: reference/compound_stmts.rst:1541 -#, fuzzy msgid "" "See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details." msgstr "" -"Voir aussi :meth:`__aiter__` et :meth:`__anext__` pour plus de détails." +"Voir aussi :meth:`~object.__aiter__` et :meth:`~object.__anext__` pour plus " +"de détails." #: reference/compound_stmts.rst:1543 msgid "" @@ -2359,12 +2363,12 @@ msgstr "" "capable de suspendre l'exécution dans ses méthodes *enter* et *exit*." #: reference/compound_stmts.rst:1583 -#, fuzzy msgid "" "See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for " "details." msgstr "" -"Voir aussi :meth:`__aenter__` et :meth:`__aexit__` pour plus de détails." +"Voir aussi :meth:`~object.__aenter__` et :meth:`~object.__aexit__` pour plus " +"de détails." #: reference/compound_stmts.rst:1585 msgid "" @@ -2417,11 +2421,11 @@ msgstr "" "Sequence`" #: reference/compound_stmts.rst:1605 -#, fuzzy msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` bit set" msgstr "" -"une classe native dont le bit (CPython) :data:`Py_TPFLAGS_SEQUENCE` est à 1" +"une classe native dont le bit (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` est à " +"1" #: reference/compound_stmts.rst:1606 reference/compound_stmts.rst:1625 msgid "a class that inherits from any of the above" @@ -2472,11 +2476,10 @@ msgstr "" "Mapping`" #: reference/compound_stmts.rst:1624 -#, fuzzy msgid "" "a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_MAPPING` bit set" msgstr "" -"une classe native dont le bit (CPython) :data:`Py_TPFLAGS_MAPPING` est à 1" +"une classe native dont le bit (CPython) :c:macro:`Py_TPFLAGS_MAPPING` est à 1" #: reference/compound_stmts.rst:1627 msgid "" @@ -2508,7 +2511,7 @@ msgstr "" #: reference/compound_stmts.rst:7 msgid "compound" -msgstr "" +msgstr "composé" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:144 @@ -2518,43 +2521,42 @@ msgstr "" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 #: reference/compound_stmts.rst:1468 reference/compound_stmts.rst:1502 #: reference/compound_stmts.rst:1547 -#, fuzzy msgid "statement" -msgstr "Instructions composées" +msgstr "instruction" #: reference/compound_stmts.rst:21 msgid "clause" -msgstr "" +msgstr "clause" #: reference/compound_stmts.rst:21 msgid "suite" -msgstr "" +msgstr "suite" #: reference/compound_stmts.rst:21 msgid "; (semicolon)" -msgstr "" +msgstr "; (point-virgule)" #: reference/compound_stmts.rst:64 msgid "NEWLINE token" -msgstr "" +msgstr "lexème NEWLINE" #: reference/compound_stmts.rst:64 msgid "DEDENT token" -msgstr "" +msgstr "lexème DEDENT" #: reference/compound_stmts.rst:64 msgid "dangling" -msgstr "" +msgstr "fantôme" #: reference/compound_stmts.rst:64 reference/compound_stmts.rst:86 #: reference/compound_stmts.rst:111 reference/compound_stmts.rst:144 #: reference/compound_stmts.rst:207 reference/compound_stmts.rst:391 msgid "else" -msgstr "" +msgstr "else" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:589 msgid "if" -msgstr "" +msgstr "if" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 @@ -2562,11 +2564,11 @@ msgstr "" #: reference/compound_stmts.rst:409 reference/compound_stmts.rst:472 #: reference/compound_stmts.rst:589 reference/compound_stmts.rst:1478 msgid "keyword" -msgstr "" +msgstr "mot-clé" #: reference/compound_stmts.rst:86 msgid "elif" -msgstr "" +msgstr "elif" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 @@ -2574,308 +2576,297 @@ msgstr "" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1311 #: reference/compound_stmts.rst:1367 msgid ": (colon)" -msgstr "" +msgstr ": (deux-points)" #: reference/compound_stmts.rst:86 reference/compound_stmts.rst:111 #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:207 #: reference/compound_stmts.rst:472 reference/compound_stmts.rst:589 #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 -#, fuzzy msgid "compound statement" -msgstr "Instructions composées" +msgstr "instruction composée" #: reference/compound_stmts.rst:111 msgid "while" -msgstr "" +msgstr "while" #: reference/compound_stmts.rst:111 reference/compound_stmts.rst:144 msgid "loop" -msgstr "" +msgstr "boucle" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 #: reference/compound_stmts.rst:391 reference/compound_stmts.rst:438 msgid "break" -msgstr "" +msgstr "break" #: reference/compound_stmts.rst:129 reference/compound_stmts.rst:169 #: reference/compound_stmts.rst:391 reference/compound_stmts.rst:438 msgid "continue" -msgstr "" +msgstr "continue" #: reference/compound_stmts.rst:144 msgid "for" -msgstr "" +msgstr "for" #: reference/compound_stmts.rst:144 msgid "in" -msgstr "" +msgstr "in" #: reference/compound_stmts.rst:144 msgid "target" -msgstr "" +msgstr "cible" #: reference/compound_stmts.rst:144 msgid "list" -msgstr "" +msgstr "liste" #: reference/compound_stmts.rst:144 reference/compound_stmts.rst:299 #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 msgid "object" -msgstr "" +msgstr "objet" #: reference/compound_stmts.rst:144 msgid "sequence" -msgstr "" +msgstr "séquence" #: reference/compound_stmts.rst:190 msgid "built-in function" -msgstr "" +msgstr "fonction native" #: reference/compound_stmts.rst:190 msgid "range" -msgstr "" +msgstr "range" #: reference/compound_stmts.rst:207 msgid "try" -msgstr "" +msgstr "try" #: reference/compound_stmts.rst:207 msgid "except" -msgstr "" +msgstr "except" #: reference/compound_stmts.rst:207 reference/compound_stmts.rst:409 msgid "finally" -msgstr "" +msgstr "finally" #: reference/compound_stmts.rst:207 reference/compound_stmts.rst:266 #: reference/compound_stmts.rst:472 reference/compound_stmts.rst:589 msgid "as" -msgstr "" +msgstr "as" #: reference/compound_stmts.rst:266 msgid "except clause" -msgstr "" +msgstr "clause except" #: reference/compound_stmts.rst:299 msgid "module" -msgstr "" +msgstr "module" #: reference/compound_stmts.rst:299 msgid "sys" -msgstr "" +msgstr "sys" #: reference/compound_stmts.rst:299 msgid "traceback" -msgstr "" +msgstr "trace d'appels" #: reference/compound_stmts.rst:328 msgid "except_star" -msgstr "" +msgstr "except_star" #: reference/compound_stmts.rst:391 reference/compound_stmts.rst:438 msgid "return" -msgstr "" +msgstr "return" #: reference/compound_stmts.rst:472 msgid "with" -msgstr "" +msgstr "with" #: reference/compound_stmts.rst:472 -#, fuzzy msgid "with statement" -msgstr "L'instruction :keyword:`!with`" +msgstr "instruction *with*" #: reference/compound_stmts.rst:472 reference/compound_stmts.rst:1194 #: reference/compound_stmts.rst:1367 msgid ", (comma)" -msgstr "" +msgstr ", (virgule)" #: reference/compound_stmts.rst:589 msgid "match" -msgstr "" +msgstr "match" #: reference/compound_stmts.rst:589 msgid "case" -msgstr "" +msgstr "case" #: reference/compound_stmts.rst:589 -#, fuzzy msgid "pattern matching" -msgstr ":ref:`class-pattern-matching`" +msgstr "filtrage par motif" #: reference/compound_stmts.rst:589 -#, fuzzy msgid "match statement" -msgstr "Voici un exemple d'instruction de filtrage par motif ::" +msgstr "instruction *match*" #: reference/compound_stmts.rst:693 -#, fuzzy msgid "guard" -msgstr "Gardes" +msgstr "garde" #: reference/compound_stmts.rst:732 -#, fuzzy msgid "irrefutable case block" -msgstr "Bloc ``case`` attrape-tout" +msgstr "bloc attrape-tout" #: reference/compound_stmts.rst:732 msgid "case block" -msgstr "" +msgstr "bloc *case*" #: reference/compound_stmts.rst:756 -#, fuzzy msgid "! patterns" -msgstr "Filtres" +msgstr "! motifs" #: reference/compound_stmts.rst:756 msgid "AS pattern, OR pattern, capture pattern, wildcard pattern" -msgstr "" +msgstr "motif AS, motif OR, motif de capture, motif attrape-tout" #: reference/compound_stmts.rst:1185 reference/compound_stmts.rst:1261 msgid "parameter" -msgstr "" +msgstr "paramètre" #: reference/compound_stmts.rst:1185 reference/compound_stmts.rst:1194 #: reference/compound_stmts.rst:1235 reference/compound_stmts.rst:1261 #: reference/compound_stmts.rst:1290 -#, fuzzy msgid "function definition" -msgstr "Définition de fonctions" +msgstr "définition de fonction" #: reference/compound_stmts.rst:1194 msgid "def" -msgstr "" +msgstr "def" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1311 msgid "function" -msgstr "" +msgstr "fonction" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 -#, fuzzy msgid "definition" -msgstr "Définition de classes" +msgstr "définition" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 msgid "name" -msgstr "" +msgstr "nom" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 msgid "binding" -msgstr "" +msgstr "liaison" #: reference/compound_stmts.rst:1194 msgid "user-defined function" -msgstr "" +msgstr "fonction définie par l'utilisateur" #: reference/compound_stmts.rst:1194 reference/compound_stmts.rst:1367 msgid "() (parentheses)" -msgstr "" +msgstr "() (parenthèses)" #: reference/compound_stmts.rst:1194 msgid "parameter list" -msgstr "" +msgstr "liste de paramètres" #: reference/compound_stmts.rst:1235 reference/compound_stmts.rst:1417 msgid "@ (at)" -msgstr "" +msgstr "@ (arobase)" #: reference/compound_stmts.rst:1261 msgid "default" -msgstr "" +msgstr "par défaut" #: reference/compound_stmts.rst:1261 msgid "value" -msgstr "" +msgstr "valeur" #: reference/compound_stmts.rst:1261 msgid "argument" -msgstr "" +msgstr "argument" #: reference/compound_stmts.rst:1261 msgid "= (equals)" -msgstr "" +msgstr "= (égal)" #: reference/compound_stmts.rst:1290 msgid "/ (slash)" -msgstr "" +msgstr "/ (barre oblique)" #: reference/compound_stmts.rst:1290 msgid "* (asterisk)" -msgstr "" +msgstr "* (astérisque)" #: reference/compound_stmts.rst:1290 msgid "**" -msgstr "" +msgstr "**" #: reference/compound_stmts.rst:1311 msgid "annotations" -msgstr "" +msgstr "annotations" #: reference/compound_stmts.rst:1311 msgid "->" -msgstr "" +msgstr "->" #: reference/compound_stmts.rst:1311 -#, fuzzy msgid "function annotations" -msgstr "Définition de fonctions" +msgstr "annotations de fonction" #: reference/compound_stmts.rst:1329 msgid "lambda" -msgstr "" +msgstr "lambda" #: reference/compound_stmts.rst:1329 msgid "expression" -msgstr "" +msgstr "expression" #: reference/compound_stmts.rst:1367 msgid "class" -msgstr "" +msgstr "classe" #: reference/compound_stmts.rst:1367 msgid "execution" -msgstr "" +msgstr "exécution" #: reference/compound_stmts.rst:1367 msgid "frame" -msgstr "" +msgstr "cadre" #: reference/compound_stmts.rst:1367 msgid "inheritance" -msgstr "" +msgstr "héritage" #: reference/compound_stmts.rst:1367 msgid "docstring" -msgstr "" +msgstr "chaîne de documentation" #: reference/compound_stmts.rst:1367 reference/compound_stmts.rst:1417 -#, fuzzy msgid "class definition" -msgstr "Définition de classes" +msgstr "définition de classe" #: reference/compound_stmts.rst:1367 msgid "expression list" -msgstr "" +msgstr "liste d'expressions" #: reference/compound_stmts.rst:1468 msgid "async def" -msgstr "" +msgstr "async def" #: reference/compound_stmts.rst:1478 msgid "async" -msgstr "" +msgstr "async" #: reference/compound_stmts.rst:1478 msgid "await" -msgstr "" +msgstr "await" #: reference/compound_stmts.rst:1502 msgid "async for" -msgstr "" +msgstr "async for" #: reference/compound_stmts.rst:1547 msgid "async with" -msgstr "" +msgstr "async with" #, fuzzy #~ msgid "" diff --git a/reference/expressions.po b/reference/expressions.po index 94634880..4c2f6d5c 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-12-04 14:55+0100\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-12-07 23:06+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.1\n" +"X-Generator: Poedit 3.2.2\n" #: reference/expressions.rst:6 msgid "Expressions" @@ -228,7 +228,6 @@ msgstr "" "produire le même objet)." #: reference/expressions.rst:156 -#, fuzzy msgid "" "Note that tuples are not formed by the parentheses, but rather by use of the " "comma. The exception is the empty tuple, for which parentheses *are* " @@ -445,7 +444,6 @@ msgid "Dictionary displays" msgstr "Agencements de dictionnaires" #: reference/expressions.rst:307 -#, fuzzy msgid "" "A dictionary display is a possibly empty series of dict items (key/value " "pairs) enclosed in curly braces:" @@ -458,7 +456,6 @@ msgid "A dictionary display yields a new dictionary object." msgstr "Un agencement de dictionnaire produit un nouvel objet dictionnaire." #: reference/expressions.rst:318 -#, fuzzy msgid "" "If a comma-separated sequence of dict items is given, they are evaluated " "from left to right to define the entries of the dictionary: each key object " @@ -470,13 +467,12 @@ msgstr "" "Si une séquence (dont les éléments sont séparés par des virgules) de couples " "clés-valeurs est fournie, les couples sont évalués de la gauche vers la " "droite pour définir les entrées du dictionnaire : chaque objet clé est " -"utilisé comme clé dans le dictionnaire pour stocker la donnée " +"utilisé comme clé dans le dictionnaire pour stocker la valeur " "correspondante. Cela signifie que vous pouvez spécifier la même clé " "plusieurs fois dans la liste des couples clés-valeurs et, dans ce cas, la " "valeur finalement stockée dans le dictionnaire est la dernière donnée." #: reference/expressions.rst:328 -#, fuzzy msgid "" "A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " "must be a :term:`mapping`. Each mapping item is added to the new " @@ -510,7 +506,6 @@ msgstr "" "dictionnaire dans l'ordre dans lequel ils sont produits." #: reference/expressions.rst:344 -#, fuzzy msgid "" "Restrictions on the types of the key values are listed earlier in section :" "ref:`types`. (To summarize, the key type should be :term:`hashable`, which " @@ -681,7 +676,6 @@ msgstr "" "`asynchronous-generator-functions`." #: reference/expressions.rst:452 -#, fuzzy msgid "" "When a generator function is called, it returns an iterator known as a " "generator. That generator then controls the execution of the generator " @@ -706,18 +700,19 @@ msgstr "" "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:" -"`~python-grammar:expression_list` à l'appelant du générateur. Cette " -"suspension conserve tous les états locaux, y compris les liaisons en cours " -"des variables locales, le pointeur d'instruction, la pile d'évaluation " -"interne et l'état de tous les gestionnaires d'exceptions. Lorsque " -"l'exécution reprend en appelant l'une des méthodes du générateur, la " -"fonction s'exécute exactement comme si l'expression ``yield`` n'avait été " -"qu'un simple appel externe. La valeur de l'expression ``yield`` après " -"reprise dépend de la méthode qui a permis la reprise de l'exécution. Si " -"c'est :meth:`~generator.__next__` qui a été utilisée (généralement *via* un :" -"keyword:`for` ou la fonction native :func:`next`) alors le résultat est :" -"const:`None`. Sinon, si c'est :meth:`~generator.send` qui a été utilisée, " -"alors le résultat est la valeur transmise à cette méthode." +"`~python-grammar:expression_list` à l'appelant du générateur ou ``None`` si :" +"token:`~python-grammar:expression_list` est omis. Cette suspension conserve " +"tous les états locaux, y compris les liaisons en cours des variables " +"locales, le pointeur d'instruction, la pile d'évaluation interne et l'état " +"de tous les gestionnaires d'exceptions. Lorsque l'exécution reprend en " +"appelant l'une des méthodes du générateur, la fonction s'exécute exactement " +"comme si l'expression ``yield`` n'avait été qu'un simple appel externe. La " +"valeur de l'expression ``yield`` après reprise dépend de la méthode qui a " +"permis la reprise de l'exécution. Si c'est :meth:`~generator.__next__` qui a " +"été utilisée (généralement *via* un :keyword:`for` ou la fonction native :" +"func:`next`) alors le résultat est :const:`None`. Sinon, si c'est :meth:" +"`~generator.send` qui a été utilisée, alors le résultat est la valeur " +"transmise à cette méthode." #: reference/expressions.rst:472 msgid "" @@ -935,7 +930,6 @@ msgstr "" "d'exception, de façon similaire à l'utilisation du mot-clé :keyword:`raise`." #: reference/expressions.rst:578 -#, fuzzy msgid "" "For backwards compatibility, however, the second signature is supported, " "following a convention from older versions of Python. The *type* argument " @@ -1296,7 +1290,7 @@ msgstr "" #: reference/expressions.rst:819 msgid "Subscriptions" -msgstr "Indiçage (ou sélections)" +msgstr "sélection (ou indiçage)" #: reference/expressions.rst:834 msgid "" @@ -1305,7 +1299,7 @@ msgid "" "term:`generic class ` will generally return a :ref:" "`GenericAlias ` object." msgstr "" -"L'indiçage d'une instance de :ref:`classe containeur ` " +"L'indiçage d'une instance de :ref:`classe conteneur ` " "sélectionne généralement un élément du conteneur. L'indiçage d'une :term:" "`classe générique ` renvoie généralement un objet :ref:" "`GenericAlias `." @@ -1544,21 +1538,21 @@ msgstr "" "arguments positionnels, comme suit. Pour commencer, une liste de *slots* " "vides est créée pour les paramètres formels. S'il y a N arguments " "positionnels, ils sont placés dans les N premiers *slots*. Ensuite, pour " -"chaque argument par mot-clé, l'identifiant est utilisé pour déterminer le " -"*slot* correspondant (si l'identifiant est le même que le nom du premier " -"paramètre formel, le premier *slot* est utilisé, et ainsi de suite). Si le " -"*slot* est déjà rempli, une exception :exc:`TypeError` est levée. Sinon, " -"l'argument est placé dans le *slot*, ce qui le remplit (même si l'expression " -"est ``None``, cela remplit le *slot*). Quand tous les arguments ont été " -"traités, les *slots* qui sont toujours vides sont remplis avec la valeur par " -"défaut correspondante dans la définition de la fonction (les valeurs par " -"défaut sont calculées, une seule fois, lorsque la fonction est définie ; " -"ainsi, un objet mutable tel qu'une liste ou un dictionnaire utilisé en tant " -"valeur par défaut sera partagé entre tous les appels qui ne spécifient pas " -"de valeur d argument pour ce *slot* ; on évite généralement de faire ça). " -"S'il reste des *slots* pour lesquels aucune valeur par défaut n'est définie, " -"une exception :exc:`TypeError` est levée. Sinon, la liste des *slots* " -"remplie est utilisée en tant que liste des arguments pour l'appel." +"chaque argument nommé, l'identifiant est utilisé pour déterminer le *slot* " +"correspondant (si l'identifiant est le même que le nom du premier paramètre " +"formel, le premier *slot* est utilisé, et ainsi de suite). Si le *slot* est " +"déjà rempli, une exception :exc:`TypeError` est levée. Sinon, l'argument est " +"placé dans le *slot*, ce qui le remplit (même si l'expression est ``None``, " +"cela remplit le *slot*). Quand tous les arguments ont été traités, les " +"*slots* qui sont toujours vides sont remplis avec la valeur par défaut " +"correspondante dans la définition de la fonction (les valeurs par défaut " +"sont calculées, une seule fois, lorsque la fonction est définie ; ainsi, un " +"objet mutable tel qu'une liste ou un dictionnaire utilisé en tant valeur par " +"défaut sera partagé entre tous les appels qui ne spécifient pas de valeur d " +"argument pour ce *slot* ; on évite généralement de faire ça). S'il reste des " +"*slots* pour lesquels aucune valeur par défaut n'est définie, une exception :" +"exc:`TypeError` est levée. Sinon, la liste des *slots* remplie est utilisée " +"en tant que liste des arguments pour l'appel." #: reference/expressions.rst:1006 msgid "" @@ -1570,8 +1564,8 @@ msgid "" 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 " -"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:" +"de la documentation. Ils ne peuvent donc pas être fournis comme arguments " +"nommés. En CPython, les fonctions implémentées en C qui utilisent :c:func:" "`PyArg_ParseTuple` pour analyser leurs arguments en font partie." #: reference/expressions.rst:1012 @@ -1597,13 +1591,13 @@ msgid "" "keywords as keys and the argument values as corresponding values), or a " "(new) empty dictionary if there were no excess keyword arguments." msgstr "" -"Si un argument par mot-clé ne correspond à aucun nom de paramètre formel, " -"une exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " +"Si un argument nommé ne correspond à aucun nom de paramètre formel, une " +"exception :exc:`TypeError` est levée, à moins qu'un paramètre formel " "n'utilise la syntaxe ``**identifier`` ; dans ce cas, le paramètre formel " -"reçoit un dictionnaire contenant les arguments par mot-clé en trop (en " -"utilisant les mots-clés comme clés et les arguments comme valeurs pour ce " +"reçoit un dictionnaire contenant les arguments nommés en trop (en utilisant " +"les mots-clés comme clés et les arguments comme valeurs pour ce " "dictionnaire), ou un (nouveau) dictionnaire vide s'il n'y a pas d'argument " -"par mot-clé en trop." +"nommé en trop." #: reference/expressions.rst:1029 msgid "" @@ -1642,7 +1636,6 @@ msgstr "" "fait que la confusion reste rare." #: reference/expressions.rst:1058 -#, fuzzy msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " "must evaluate to a :term:`mapping`, the contents of which are treated as " @@ -1653,9 +1646,9 @@ msgstr "" "Si la syntaxe ``**expression`` apparaît dans un appel de fonction, " "``expression`` doit pouvoir s'évaluer comme un :term:`tableau de " "correspondances `, dont le contenu est traité comme des arguments " -"par mots-clés supplémentaires. Si un mot-clé est déjà présent (en tant " -"qu'argument par mot-clé explicite, ou venant d'un autre dépaquetage), une " -"exception :exc:`TypeError` est levée." +"par mots-clés supplémentaires. Si un paramètre correspondant à une clé a " +"déjà été fourni (en tant qu'argument nommé explicite, en provenance d'un " +"autre dépaquetage), une exception :exc:`TypeError` est levée." #: reference/expressions.rst:1064 msgid "" @@ -1668,6 +1661,15 @@ msgid "" "parameter, if there is one, or if there is not, a :exc:`TypeError` exception " "is raised." msgstr "" +"Lorsque ``**expression`` est utilisée, chaque clé de ce tableau de " +"correspondances doit être une chaîne. Chaque valeur du tableau est affectée " +"au premier paramètre formel éligible à l'affectation par mot-clé dont le nom " +"est égal à la clé. Une clé n'a pas besoin d'être un identifiant Python (par " +"exemple, ``\"max-temp °F\"`` est acceptable, bien qu'elle ne corresponde à " +"aucun paramètre formel qui pourrait être déclaré). S'il n'y a pas de " +"correspondance avec un paramètre formel, la paire clé-valeur est collectée " +"par le paramètre ``**``, s'il y en a un. S'il n'y a pas de paramètre ``**``, " +"une exception :exc:`TypeError` est levée." #: reference/expressions.rst:1074 msgid "" @@ -2432,7 +2434,6 @@ msgstr "" "[1,2,3]`` est vrai)." #: reference/expressions.rst:1556 -#, fuzzy msgid "" "Mappings (instances of :class:`dict`) compare equal if and only if they have " "equal ``(key, value)`` pairs. Equality comparison of the keys and values " @@ -2799,6 +2800,13 @@ msgid "" "all other places where they can be used, parentheses are not required, " "including in ``if`` and ``while`` statements." msgstr "" +"Les expressions d'affectation doivent être entourées de parenthèses " +"lorsqu'elles sont utilisées comme sous-expressions dans les expressions de " +"découpage, les expressions conditionnelles, les expressions lambda, les " +"expressions d'argument nommé et les expressions de compréhensions avec *if* " +"ainsi que dans les instructions ``assert`` et ``with``. Dans tous les autres " +"endroits où elles peuvent être utilisées, les parenthèses ne sont pas " +"obligatoires, y compris dans les instructions ``if`` et ``while``." #: reference/expressions.rst:1774 msgid "See :pep:`572` for more details about assignment expressions." @@ -2932,7 +2940,6 @@ msgid "Operator precedence" msgstr "Priorités des opérateurs" #: reference/expressions.rst:1904 -#, fuzzy msgid "" "The following table summarizes the operator precedence in Python, from " "highest precedence (most binding) to lowest precedence (least binding). " @@ -2946,7 +2953,8 @@ msgstr "" "grande). Les opérateurs qui sont dans la même case ont la même priorité. À " "moins que la syntaxe ne soit explicitement indiquée, les opérateurs sont " "binaires. Les opérateurs dans la même case regroupent de la gauche vers la " -"droite (sauf pour la puissance qui regroupe de la droite vers la gauche)." +"droite (sauf pour la puissance et les expressions conditionnelles qui " +"regroupent de la droite vers la gauche)." #: reference/expressions.rst:1910 msgid "" @@ -3238,75 +3246,70 @@ msgstr "" #: reference/expressions.rst:362 reference/expressions.rst:1696 #: reference/expressions.rst:1809 reference/expressions.rst:1837 -#, fuzzy msgid "expression" -msgstr "Expressions" +msgstr "expression" #: reference/expressions.rst:8 msgid "BNF" -msgstr "" +msgstr "BNF" #: reference/expressions.rst:1197 reference/expressions.rst:1245 msgid "arithmetic" -msgstr "" +msgstr "arithmétique" #: reference/expressions.rst:28 -#, fuzzy msgid "conversion" -msgstr "Conversions arithmétiques" +msgstr "conversion" #: reference/expressions.rst:51 msgid "atom" -msgstr "" +msgstr "atome" #: reference/expressions.rst:82 msgid "name" -msgstr "" +msgstr "nom" #: reference/expressions.rst:68 -#, fuzzy msgid "identifier" -msgstr "Identifiants (noms)" +msgstr "identifiant" #: reference/expressions.rst:537 reference/expressions.rst:709 #: reference/expressions.rst:802 reference/expressions.rst:1280 #: reference/expressions.rst:1370 -#, fuzzy msgid "exception" -msgstr "Description" +msgstr "exception" #: reference/expressions.rst:74 msgid "NameError" -msgstr "" +msgstr "NameError" #: reference/expressions.rst:82 msgid "mangling" -msgstr "" +msgstr "transformation" #: reference/expressions.rst:82 msgid "private" -msgstr "" +msgstr "privé" #: reference/expressions.rst:82 msgid "names" -msgstr "" +msgstr "noms" #: reference/expressions.rst:104 -#, fuzzy msgid "literal" -msgstr "Littéraux" +msgstr "littéral" #: reference/expressions.rst:341 msgid "immutable" -msgstr "" +msgstr "immuable" #: reference/expressions.rst:117 msgid "data" -msgstr "" +msgstr "valeur" #: reference/expressions.rst:117 msgid "type" -msgstr "" +msgstr "type" #: reference/expressions.rst:244 reference/expressions.rst:298 #: reference/expressions.rst:362 reference/expressions.rst:699 @@ -3314,380 +3317,347 @@ msgstr "" #: reference/expressions.rst:1103 reference/expressions.rst:1124 #: reference/expressions.rst:1847 msgid "object" -msgstr "" +msgstr "objet" #: reference/expressions.rst:133 -#, fuzzy msgid "parenthesized form" -msgstr "Formes parenthésées" +msgstr "forme entre parenthèses" #: reference/expressions.rst:362 reference/expressions.rst:942 msgid "() (parentheses)" -msgstr "" +msgstr "() (parenthèses)" #: reference/expressions.rst:133 -#, fuzzy msgid "tuple display" -msgstr "Agencements d'ensembles" +msgstr "agencement de *n*-uplet" #: reference/expressions.rst:244 msgid "empty" -msgstr "" +msgstr "vide" #: reference/expressions.rst:825 reference/expressions.rst:1847 msgid "tuple" -msgstr "" +msgstr "*n*-uplet" #: reference/expressions.rst:1866 msgid "comma" -msgstr "" +msgstr "virgule" #: reference/expressions.rst:244 reference/expressions.rst:298 #: reference/expressions.rst:942 reference/expressions.rst:1837 msgid ", (comma)" -msgstr "" +msgstr ", (virgule)" #: reference/expressions.rst:244 reference/expressions.rst:298 -#, fuzzy msgid "comprehensions" -msgstr "Expressions" +msgstr "compréhensions" #: reference/expressions.rst:177 msgid "for" -msgstr "" +msgstr "for" #: reference/expressions.rst:212 msgid "in comprehensions" -msgstr "" +msgstr "dans les compréhensions" #: reference/expressions.rst:1783 msgid "if" -msgstr "" +msgstr "if" #: reference/expressions.rst:177 msgid "async for" -msgstr "" +msgstr "async for" #: reference/expressions.rst:1142 msgid "await" -msgstr "" +msgstr "await" #: reference/expressions.rst:802 reference/expressions.rst:898 #: reference/expressions.rst:1837 msgid "list" -msgstr "" +msgstr "liste" #: reference/expressions.rst:270 reference/expressions.rst:298 -#, fuzzy msgid "display" -msgstr "Agencements d'ensembles" +msgstr "agencement" #: reference/expressions.rst:821 msgid "[] (square brackets)" -msgstr "" +msgstr "[] (crochets)" #: reference/expressions.rst:244 -#, fuzzy msgid "list expression" -msgstr "Expression ``await``" +msgstr "expression de liste" #: reference/expressions.rst:270 reference/expressions.rst:1837 -#, fuzzy msgid "expression list" -msgstr "Listes d'expressions" +msgstr "liste d'expressions" #: reference/expressions.rst:270 msgid "set" -msgstr "" +msgstr "ensemble" #: reference/expressions.rst:298 msgid "{} (curly brackets)" -msgstr "" +msgstr "{} (accolades)" #: reference/expressions.rst:270 -#, fuzzy msgid "set expression" -msgstr "Expression ``await``" +msgstr "expression d'ensemble" #: reference/expressions.rst:324 reference/expressions.rst:825 -#, fuzzy msgid "dictionary" -msgstr "Agencements de dictionnaires" +msgstr "dictionnaire" #: reference/expressions.rst:298 msgid "key" -msgstr "" +msgstr "clé" #: reference/expressions.rst:298 msgid "value" -msgstr "" +msgstr "valeur" #: reference/expressions.rst:298 msgid "key/value pair" -msgstr "" +msgstr "couple clé-valeur" #: reference/expressions.rst:298 -#, fuzzy msgid "dictionary expression" -msgstr "Expressions conditionnelles" +msgstr "expression de dictionnaire" #: reference/expressions.rst:892 reference/expressions.rst:1809 msgid ": (colon)" -msgstr "" +msgstr ": (deux-points)" #: reference/expressions.rst:298 -#, fuzzy msgid "in dictionary expressions" -msgstr "Expressions conditionnelles" +msgstr "dans les expressions de dictionnaire" #: reference/expressions.rst:324 -#, fuzzy msgid "in dictionary displays" -msgstr "Agencements de dictionnaires" +msgstr "dans les agencements de dictionnaire" #: reference/expressions.rst:1025 reference/expressions.rst:1854 msgid "unpacking" -msgstr "" +msgstr "dépaquetage" #: reference/expressions.rst:1055 reference/expressions.rst:1162 msgid "**" -msgstr "" +msgstr "**" #: reference/expressions.rst:341 msgid "hashable" -msgstr "" +msgstr "hachable" #: reference/expressions.rst:417 reference/expressions.rst:525 -#, fuzzy msgid "generator" -msgstr "Opérateur" +msgstr "générateur" #: reference/expressions.rst:362 -#, fuzzy msgid "generator expression" -msgstr "Expressions génératrices" +msgstr "expression génératrice" #: reference/expressions.rst:1142 -#, fuzzy msgid "keyword" -msgstr ":keyword:`or`" +msgstr "mot-clé" #: reference/expressions.rst:600 msgid "yield" -msgstr "" +msgstr "yield" #: reference/expressions.rst:484 msgid "from" -msgstr "" +msgstr "from" #: reference/expressions.rst:1090 reference/expressions.rst:1809 msgid "function" -msgstr "" +msgstr "fonction" #: reference/expressions.rst:470 msgid "coroutine" -msgstr "" +msgstr "coroutine" #: reference/expressions.rst:484 -#, fuzzy msgid "yield from expression" -msgstr "Expressions ``yield``" +msgstr "expression *yield from*" #: reference/expressions.rst:537 -#, fuzzy msgid "StopIteration" -msgstr "Opérations de décalage" +msgstr "StopIteration" #: reference/expressions.rst:756 -#, fuzzy msgid "GeneratorExit" -msgstr "Expressions génératrices" +msgstr "GeneratorExit" #: reference/expressions.rst:600 -#, fuzzy msgid "examples" -msgstr "Exemples" +msgstr "exemples" #: reference/expressions.rst:699 -#, fuzzy msgid "asynchronous-generator" -msgstr "Fonctions génératrices asynchrones" +msgstr "générateur asynchrone" #: reference/expressions.rst:709 msgid "StopAsyncIteration" -msgstr "" +msgstr "StopAsyncIteration" #: reference/expressions.rst:779 -#, fuzzy msgid "primary" -msgstr "Primaires" +msgstr "primaire" #: reference/expressions.rst:793 msgid "attribute" -msgstr "" +msgstr "attribut" #: reference/expressions.rst:793 -#, fuzzy msgid "reference" -msgstr "Références à des attributs" +msgstr "référence" #: reference/expressions.rst:793 msgid ". (dot)" -msgstr "" +msgstr ". (point)" #: reference/expressions.rst:793 -#, fuzzy msgid "attribute reference" -msgstr "Références à des attributs" +msgstr "référence à un attribut" #: reference/expressions.rst:802 -#, fuzzy msgid "AttributeError" -msgstr "Références à des attributs" +msgstr "AttributeError" #: reference/expressions.rst:802 msgid "module" -msgstr "" +msgstr "module" #: reference/expressions.rst:821 -#, fuzzy msgid "subscription" -msgstr "Indiçage (ou sélections)" +msgstr "sélection (ou indiçage)" #: reference/expressions.rst:898 reference/expressions.rst:1661 msgid "sequence" -msgstr "" +msgstr "séquence" #: reference/expressions.rst:825 msgid "mapping" -msgstr "" +msgstr "tableau de correspondances" #: reference/expressions.rst:878 reference/expressions.rst:898 msgid "string" -msgstr "" +msgstr "chaîne" #: reference/expressions.rst:878 msgid "item" -msgstr "" +msgstr "élément" #: reference/expressions.rst:878 msgid "character" -msgstr "" +msgstr "caractère" #: reference/expressions.rst:892 -#, fuzzy msgid "slicing" -msgstr "Tranches" +msgstr "découpage" #: reference/expressions.rst:892 msgid "slice" -msgstr "" +msgstr "tranche" #: reference/expressions.rst:924 msgid "start (slice object attribute)" -msgstr "" +msgstr "start (attribut d'objet tranche)" #: reference/expressions.rst:924 msgid "stop (slice object attribute)" -msgstr "" +msgstr "stop (attribut d'objet tranche)" #: reference/expressions.rst:924 msgid "step (slice object attribute)" -msgstr "" +msgstr "step (attribut d'objet tranche)" #: reference/expressions.rst:942 msgid "callable" -msgstr "" +msgstr "appelable" #: reference/expressions.rst:1090 reference/expressions.rst:1117 #: reference/expressions.rst:1134 msgid "call" -msgstr "" +msgstr "appel" #: reference/expressions.rst:942 msgid "argument" -msgstr "" +msgstr "argument" #: reference/expressions.rst:975 msgid "call semantics" -msgstr "" +msgstr "sémantique des appels" #: reference/expressions.rst:942 msgid "argument list" -msgstr "" +msgstr "liste d'arguments" #: reference/expressions.rst:942 msgid "= (equals)" -msgstr "" +msgstr "= (égal)" #: reference/expressions.rst:1025 reference/expressions.rst:1055 msgid "in function calls" -msgstr "" +msgstr "dans les appels de fonction" #: reference/expressions.rst:975 msgid "parameter" -msgstr "" +msgstr "paramètre" #: reference/expressions.rst:1258 reference/expressions.rst:1854 msgid "* (asterisk)" -msgstr "" +msgstr "* (astérisque)" #: reference/expressions.rst:1090 -#, fuzzy msgid "user-defined" -msgstr "une fonction définie par l'utilisateur :" +msgstr "défini par l'utilisateur" #: reference/expressions.rst:1090 -#, fuzzy msgid "user-defined function" -msgstr "une fonction définie par l'utilisateur :" +msgstr "fonction définie par l'utilisateur" #: reference/expressions.rst:1103 -#, fuzzy msgid "built-in function" -msgstr "une fonction ou une méthode native :" +msgstr "fonction native" #: reference/expressions.rst:1103 msgid "method" -msgstr "" +msgstr "méthode" #: reference/expressions.rst:1103 -#, fuzzy msgid "built-in method" -msgstr "une fonction ou une méthode native :" +msgstr "méthode native" #: reference/expressions.rst:1117 msgid "class" -msgstr "" +msgstr "classe" #: reference/expressions.rst:1117 -#, fuzzy msgid "class object" -msgstr "un objet classe :" +msgstr "objet classe" #: reference/expressions.rst:1124 -#, fuzzy msgid "class instance" -msgstr "une instance de classe :" +msgstr "instance de classe" #: reference/expressions.rst:1134 -#, fuzzy msgid "instance" -msgstr "une instance de classe :" +msgstr "instance" #: reference/expressions.rst:1134 msgid "__call__() (object method)" -msgstr "" +msgstr "__call__() (méthode d'objet)" #: reference/expressions.rst:1162 msgid "power" -msgstr "" +msgstr "puissance" #: reference/expressions.rst:1197 reference/expressions.rst:1354 #: reference/expressions.rst:1696 -#, fuzzy msgid "operation" -msgstr "Opérateur" +msgstr "opération" #: reference/expressions.rst:1206 reference/expressions.rst:1223 #: reference/expressions.rst:1271 reference/expressions.rst:1296 @@ -3695,329 +3665,309 @@ msgstr "Opérateur" #: reference/expressions.rst:1407 reference/expressions.rst:1661 #: reference/expressions.rst:1712 reference/expressions.rst:1722 #: reference/expressions.rst:1901 -#, fuzzy msgid "operator" -msgstr "Opérateur" +msgstr "opérateur" #: reference/expressions.rst:1197 msgid "unary" -msgstr "" +msgstr "unaire" #: reference/expressions.rst:1381 reference/expressions.rst:1398 #: reference/expressions.rst:1407 -#, fuzzy msgid "bitwise" -msgstr "OR (bit à bit)" +msgstr "OU (bit à bit)" #: reference/expressions.rst:1206 msgid "negation" -msgstr "" +msgstr "négation" #: reference/expressions.rst:1206 msgid "minus" -msgstr "" +msgstr "moins" #: reference/expressions.rst:1338 msgid "- (minus)" -msgstr "" +msgstr "- (moins)" #: reference/expressions.rst:1215 -#, fuzzy msgid "unary operator" -msgstr "Opérateur" +msgstr "opérateur unaire" #: reference/expressions.rst:1215 msgid "plus" -msgstr "" +msgstr "plus" #: reference/expressions.rst:1325 msgid "+ (plus)" -msgstr "" +msgstr "+ (plus)" #: reference/expressions.rst:1223 msgid "inversion" -msgstr "" +msgstr "inversion" #: reference/expressions.rst:1223 msgid "~ (tilde)" -msgstr "" +msgstr "~ (tilde)" #: reference/expressions.rst:1234 msgid "TypeError" -msgstr "" +msgstr "TypeError" #: reference/expressions.rst:1381 msgid "binary" -msgstr "" +msgstr "binaire" #: reference/expressions.rst:1258 msgid "multiplication" -msgstr "" +msgstr "multiplication" #: reference/expressions.rst:1271 msgid "matrix multiplication" -msgstr "" +msgstr "multiplication matricielle" #: reference/expressions.rst:1271 msgid "@ (at)" -msgstr "" +msgstr "@ (arobase)" #: reference/expressions.rst:1280 msgid "ZeroDivisionError" -msgstr "" +msgstr "ZeroDivisionError" #: reference/expressions.rst:1280 msgid "division" -msgstr "" +msgstr "division" #: reference/expressions.rst:1280 msgid "/ (slash)" -msgstr "" +msgstr "/ (barre oblique)" #: reference/expressions.rst:1280 msgid "//" -msgstr "" +msgstr "//" #: reference/expressions.rst:1296 msgid "modulo" -msgstr "" +msgstr "modulo" #: reference/expressions.rst:1296 msgid "% (percent)" -msgstr "" +msgstr "% (pourcentage)" #: reference/expressions.rst:1325 msgid "addition" -msgstr "" +msgstr "addition" #: reference/expressions.rst:1338 -#, fuzzy msgid "binary operator" -msgstr "Opérations binaires bit à bit" +msgstr "opérateur binaire" #: reference/expressions.rst:1338 -#, fuzzy msgid "subtraction" -msgstr "Addition et soustraction" +msgstr "soustraction" #: reference/expressions.rst:1354 msgid "shifting" -msgstr "" +msgstr "décalage" #: reference/expressions.rst:1354 msgid "<<" -msgstr "" +msgstr "<<" #: reference/expressions.rst:1354 msgid ">>" -msgstr "" +msgstr ">>" #: reference/expressions.rst:1370 msgid "ValueError" -msgstr "" +msgstr "ValueError" #: reference/expressions.rst:1717 msgid "and" -msgstr "" +msgstr "and" #: reference/expressions.rst:1390 msgid "& (ampersand)" -msgstr "" +msgstr "& (esperluette)" #: reference/expressions.rst:1398 msgid "xor" -msgstr "" +msgstr "xor" #: reference/expressions.rst:1398 msgid "exclusive" -msgstr "" +msgstr "exclusif" #: reference/expressions.rst:1407 reference/expressions.rst:1722 msgid "or" -msgstr "" +msgstr "ou" #: reference/expressions.rst:1398 msgid "^ (caret)" -msgstr "" +msgstr "^ (caret)" #: reference/expressions.rst:1407 msgid "inclusive" -msgstr "" +msgstr "inclusif" #: reference/expressions.rst:1407 msgid "| (vertical bar)" -msgstr "" +msgstr "| (barre verticale)" #: reference/expressions.rst:1422 -#, fuzzy msgid "comparison" -msgstr "Comparaisons" +msgstr "comparaison" #: reference/expressions.rst:1422 msgid "C" -msgstr "" +msgstr "C" #: reference/expressions.rst:1422 msgid "language" -msgstr "" +msgstr "langage" #: reference/expressions.rst:1422 msgid "< (less)" -msgstr "" +msgstr "< (plus petit)" #: reference/expressions.rst:1422 msgid "> (greater)" -msgstr "" +msgstr "> (plus grand)" #: reference/expressions.rst:1422 msgid "<=" -msgstr "" +msgstr "<=" #: reference/expressions.rst:1422 msgid ">=" -msgstr "" +msgstr ">=" #: reference/expressions.rst:1422 msgid "==" -msgstr "" +msgstr "==" #: reference/expressions.rst:1422 msgid "!=" -msgstr "" +msgstr "!=" #: reference/expressions.rst:1446 msgid "chaining" -msgstr "" +msgstr "chaînage" #: reference/expressions.rst:1446 -#, fuzzy msgid "comparisons" -msgstr "Comparaisons" +msgstr "comparaisons" #: reference/expressions.rst:1661 msgid "in" -msgstr "" +msgstr "in" #: reference/expressions.rst:1661 msgid "not in" -msgstr "" +msgstr "not in" #: reference/expressions.rst:1661 msgid "membership" -msgstr "" +msgstr "appartenance" #: reference/expressions.rst:1670 msgid "test" -msgstr "" +msgstr "test" #: reference/expressions.rst:1670 msgid "is" -msgstr "" +msgstr "is" #: reference/expressions.rst:1670 msgid "is not" -msgstr "" +msgstr "is not" #: reference/expressions.rst:1670 msgid "identity" -msgstr "" +msgstr "identité" #: reference/expressions.rst:1696 -#, fuzzy msgid "Conditional" -msgstr "Expressions conditionnelles" +msgstr "conditionnelle" #: reference/expressions.rst:1696 -#, fuzzy msgid "Boolean" -msgstr "OR (booléen)" +msgstr "booléenne" #: reference/expressions.rst:1712 msgid "not" -msgstr "" +msgstr "not" #: reference/expressions.rst:1736 msgid ":= (colon equals)" -msgstr "" +msgstr ":= (deux points égal)" #: reference/expressions.rst:1736 -#, fuzzy msgid "assignment expression" -msgstr "Expression d'affectation" +msgstr "expression d'affectation" #: reference/expressions.rst:1736 -#, fuzzy msgid "walrus operator" -msgstr "L'opérateur puissance" +msgstr "opérateur morse" #: reference/expressions.rst:1736 -#, fuzzy msgid "named expression" -msgstr "Expression lambda" +msgstr "expression nommée" #: reference/expressions.rst:1783 -#, fuzzy msgid "conditional" -msgstr "Expressions conditionnelles" +msgstr "conditionnelle" #: reference/expressions.rst:1783 msgid "ternary" -msgstr "" +msgstr "ternaire" #: reference/expressions.rst:1783 -#, fuzzy msgid "conditional expression" -msgstr "Expressions conditionnelles" +msgstr "expression conditionnelle" #: reference/expressions.rst:1783 msgid "else" -msgstr "" +msgstr "else" #: reference/expressions.rst:1809 -#, fuzzy msgid "lambda" -msgstr "Expressions lambda" +msgstr "lambda" #: reference/expressions.rst:1809 msgid "form" -msgstr "" +msgstr "forme" #: reference/expressions.rst:1809 msgid "anonymous" -msgstr "" +msgstr "anonyme" #: reference/expressions.rst:1809 -#, fuzzy msgid "lambda expression" -msgstr "Expression lambda" +msgstr "expression lambda" #: reference/expressions.rst:1854 -#, fuzzy msgid "iterable" -msgstr "Littéraux" +msgstr "itérable" #: reference/expressions.rst:1854 -#, fuzzy msgid "in expression lists" -msgstr "Listes d'expressions" +msgstr "dans les expressions de liste" #: reference/expressions.rst:1866 msgid "trailing" -msgstr "" +msgstr "finale" #: reference/expressions.rst:1880 -#, fuzzy msgid "evaluation" -msgstr "Ordre d'évaluation" +msgstr "évaluation" #: reference/expressions.rst:1880 msgid "order" -msgstr "" +msgstr "ordre" #: reference/expressions.rst:1901 -#, fuzzy msgid "precedence" -msgstr "Priorités des opérateurs" +msgstr "précédence des opérateurs" #~ msgid "" #~ "Subscription of a sequence (string, tuple or list) or mapping " diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 1ba32e91..7dc737c9 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2022-12-04 14:56+0100\n" -"Last-Translator: Jean Abou Samra \n" +"PO-Revision-Date: 2023-12-02 10:40+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.1\n" +"X-Generator: Poedit 3.2.2\n" #: reference/simple_stmts.rst:6 msgid "Simple statements" @@ -286,7 +286,6 @@ msgstr "" "une liste)." #: reference/simple_stmts.rst:210 -#, fuzzy msgid "" "If the primary is a mapping object (such as a dictionary), the subscript " "must have a type compatible with the mapping's key type, and the mapping is " @@ -471,7 +470,6 @@ msgstr "" "d'une assignation optionnelle :" #: reference/simple_stmts.rst:333 -#, fuzzy msgid "" "The difference from normal :ref:`assignment` is that only a single target is " "allowed." @@ -553,10 +551,10 @@ msgid "" msgstr "" "La proposition qui a ajouté le module :mod:`typing` pour fournir une syntaxe " "standard pour les annotations de type qui peuvent être utilisées dans les " -"outils d'analyse statique et les EDIs." +"outils d'analyse statique et les environnements de développement intégrés " +"(*EDI*)." #: reference/simple_stmts.rst:367 -#, fuzzy msgid "" "Now annotated assignments allow the same expressions in the right hand side " "as regular assignments. Previously, some expressions (like un-parenthesized " @@ -581,13 +579,13 @@ msgstr "" #: reference/simple_stmts.rst:389 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 à ::" #: reference/simple_stmts.rst:394 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 à ::" #: reference/simple_stmts.rst:403 msgid "" @@ -765,11 +763,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* ::" #: reference/simple_stmts.rst:537 msgid "are equivalent to the yield expression statements ::" -msgstr "sont équivalentes aux instructions expressions *yield* ::" +msgstr "sont équivalentes aux instructions expressions *yield* ::" #: reference/simple_stmts.rst:542 msgid "" @@ -1025,7 +1023,6 @@ msgstr "" "clauses étaient séparées dans des instructions d'importations individuelles." #: reference/simple_stmts.rst:759 -#, fuzzy msgid "" "The details of the first step, finding and loading modules, are described in " "greater detail in the section on the :ref:`import system `, " @@ -1035,7 +1032,7 @@ msgid "" "could not be located, *or* that an error occurred while initializing the " "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 " +"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 " "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 " @@ -1516,464 +1513,455 @@ msgstr "Les spécifications pour l'instruction :keyword:`nonlocal`." #: reference/simple_stmts.rst:8 msgid "simple" -msgstr "" +msgstr "simple" #: reference/simple_stmts.rst:38 reference/simple_stmts.rst:262 #: reference/simple_stmts.rst:378 reference/simple_stmts.rst:443 #: reference/simple_stmts.rst:482 reference/simple_stmts.rst:555 #: reference/simple_stmts.rst:703 reference/simple_stmts.rst:858 #: reference/simple_stmts.rst:991 -#, fuzzy msgid "statement" -msgstr "Les instructions simples" +msgstr "instruction" #: reference/simple_stmts.rst:41 msgid "expression" -msgstr "" +msgstr "expression" #: reference/simple_stmts.rst:41 reference/simple_stmts.rst:115 #: reference/simple_stmts.rst:443 msgid "list" -msgstr "" +msgstr "liste" #: reference/simple_stmts.rst:972 msgid "built-in function" -msgstr "" +msgstr "fonction native" #: reference/simple_stmts.rst:55 msgid "repr" -msgstr "" +msgstr "repr" #: reference/simple_stmts.rst:74 reference/simple_stmts.rst:195 #: reference/simple_stmts.rst:577 msgid "object" -msgstr "" +msgstr "objet" #: reference/simple_stmts.rst:55 msgid "None" -msgstr "" +msgstr "None" #: reference/simple_stmts.rst:55 msgid "string" -msgstr "" +msgstr "chaîne de caractères" #: reference/simple_stmts.rst:55 msgid "conversion" -msgstr "" +msgstr "conversion" #: reference/simple_stmts.rst:55 msgid "output" -msgstr "" +msgstr "sortie" #: reference/simple_stmts.rst:55 msgid "standard" -msgstr "" +msgstr "standard" #: reference/simple_stmts.rst:55 msgid "writing" -msgstr "" +msgstr "écrire" #: reference/simple_stmts.rst:55 msgid "values" -msgstr "" +msgstr "valeurs" #: reference/simple_stmts.rst:55 msgid "procedure" -msgstr "" +msgstr "procédure" #: reference/simple_stmts.rst:55 msgid "call" -msgstr "" +msgstr "appel" #: reference/simple_stmts.rst:74 msgid "= (equals)" -msgstr "" +msgstr "= (égal)" #: reference/simple_stmts.rst:74 -#, fuzzy msgid "assignment statement" -msgstr "Les assignations" +msgstr "instruction d'affectation" #: reference/simple_stmts.rst:115 reference/simple_stmts.rst:186 #: reference/simple_stmts.rst:262 reference/simple_stmts.rst:321 msgid "assignment" -msgstr "" +msgstr "affectation" #: reference/simple_stmts.rst:728 reference/simple_stmts.rst:944 msgid "binding" -msgstr "" +msgstr "liaison" #: reference/simple_stmts.rst:456 reference/simple_stmts.rst:783 #: reference/simple_stmts.rst:944 msgid "name" -msgstr "" +msgstr "nom" #: reference/simple_stmts.rst:74 msgid "rebinding" -msgstr "" +msgstr "redéfinir une liaison" #: reference/simple_stmts.rst:186 msgid "mutable" -msgstr "" +msgstr "mutable" #: reference/simple_stmts.rst:158 reference/simple_stmts.rst:465 msgid "attribute" -msgstr "" +msgstr "attribut" #: reference/simple_stmts.rst:115 reference/simple_stmts.rst:682 msgid "target" -msgstr "" +msgstr "cible" #: reference/simple_stmts.rst:378 reference/simple_stmts.rst:944 #: reference/simple_stmts.rst:991 msgid ", (comma)" -msgstr "" +msgstr ", (virgule)" #: reference/simple_stmts.rst:115 msgid "in target list" -msgstr "" +msgstr "dans la liste cible" #: reference/simple_stmts.rst:809 msgid "* (asterisk)" -msgstr "" +msgstr "* (astérisque)" #: reference/simple_stmts.rst:115 -#, fuzzy msgid "in assignment target list" -msgstr "Les assignations" +msgstr "dans la liste cible d'affectation" #: reference/simple_stmts.rst:115 msgid "[] (square brackets)" -msgstr "" +msgstr "[] (crochets)" #: reference/simple_stmts.rst:115 msgid "() (parentheses)" -msgstr "" +msgstr "() (parenthèses)" #: reference/simple_stmts.rst:152 msgid "destructor" -msgstr "" +msgstr "destructeur" #: reference/simple_stmts.rst:186 msgid "subscription" -msgstr "" +msgstr "sélection (ou indiçage)" #: reference/simple_stmts.rst:195 msgid "sequence" -msgstr "" +msgstr "séquence" #: reference/simple_stmts.rst:206 msgid "mapping" -msgstr "" +msgstr "tableau de correspondances" #: reference/simple_stmts.rst:206 msgid "dictionary" -msgstr "" +msgstr "dictionnaire" #: reference/simple_stmts.rst:219 msgid "slicing" -msgstr "" +msgstr "découpage" #: reference/simple_stmts.rst:262 msgid "augmented" -msgstr "" +msgstr "augmentée" #: reference/simple_stmts.rst:262 -#, fuzzy msgid "assignment, augmented" -msgstr "Les assignations" +msgstr "affectation, augmentée" #: reference/simple_stmts.rst:262 msgid "+=" -msgstr "" +msgstr "+=" #: reference/simple_stmts.rst:262 -#, fuzzy msgid "augmented assignment" -msgstr "Les assignations augmentées" +msgstr "affectation augmentée" #: reference/simple_stmts.rst:262 msgid "-=" -msgstr "" +msgstr "-=" #: reference/simple_stmts.rst:262 msgid "*=" -msgstr "" +msgstr "*=" #: reference/simple_stmts.rst:262 msgid "/=" -msgstr "" +msgstr "/=" #: reference/simple_stmts.rst:262 msgid "%=" -msgstr "" +msgstr "%=" #: reference/simple_stmts.rst:262 msgid "&=" -msgstr "" +msgstr "&=" #: reference/simple_stmts.rst:262 msgid "^=" -msgstr "" +msgstr "^=" #: reference/simple_stmts.rst:262 msgid "|=" -msgstr "" +msgstr "|=" #: reference/simple_stmts.rst:262 msgid "**=" -msgstr "" +msgstr "**=" #: reference/simple_stmts.rst:262 msgid "//=" -msgstr "" +msgstr "//=" #: reference/simple_stmts.rst:262 msgid ">>=" -msgstr "" +msgstr ">>=" #: reference/simple_stmts.rst:262 msgid "<<=" -msgstr "" +msgstr "<<=" #: reference/simple_stmts.rst:321 msgid "annotated" -msgstr "" +msgstr "annotée" #: reference/simple_stmts.rst:321 -#, fuzzy msgid "assignment, annotated" -msgstr "Les assignations" +msgstr "affectation annotée" #: reference/simple_stmts.rst:321 msgid ": (colon)" -msgstr "" +msgstr ": (deux-points)" #: reference/simple_stmts.rst:321 msgid "annotated variable" -msgstr "" +msgstr "variable annotée" #: reference/simple_stmts.rst:378 msgid "assert" -msgstr "" +msgstr "assert" #: reference/simple_stmts.rst:378 msgid "debugging" -msgstr "" +msgstr "débogage" #: reference/simple_stmts.rst:378 msgid "assertions" -msgstr "" +msgstr "assertions" #: reference/simple_stmts.rst:378 -#, fuzzy msgid "expression list" -msgstr "Les expressions" +msgstr "liste d'expressions" #: reference/simple_stmts.rst:399 msgid "__debug__" -msgstr "" +msgstr "__debug__" #: reference/simple_stmts.rst:519 reference/simple_stmts.rst:587 #: reference/simple_stmts.rst:728 msgid "exception" -msgstr "" +msgstr "exception" #: reference/simple_stmts.rst:399 msgid "AssertionError" -msgstr "" +msgstr "AssertionError" #: reference/simple_stmts.rst:421 msgid "pass" -msgstr "" +msgstr "pass" #: reference/simple_stmts.rst:421 msgid "null" -msgstr "" +msgstr "null" #: reference/simple_stmts.rst:421 msgid "operation" -msgstr "" +msgstr "opération" #: reference/simple_stmts.rst:443 msgid "del" -msgstr "" +msgstr "del" #: reference/simple_stmts.rst:465 msgid "deletion" -msgstr "" +msgstr "effacement" #: reference/simple_stmts.rst:944 msgid "global" -msgstr "" +msgstr "global" #: reference/simple_stmts.rst:456 msgid "unbinding" -msgstr "" +msgstr "suppression de liaison" #: reference/simple_stmts.rst:482 msgid "return" -msgstr "" +msgstr "return" #: reference/simple_stmts.rst:519 msgid "function" -msgstr "" +msgstr "fonction" #: reference/simple_stmts.rst:482 msgid "definition" -msgstr "" +msgstr "définition" #: reference/simple_stmts.rst:482 msgid "class" -msgstr "" +msgstr "classe" #: reference/simple_stmts.rst:682 reference/simple_stmts.rst:703 #: reference/simple_stmts.rst:728 msgid "keyword" -msgstr "" +msgstr "mot-clé" #: reference/simple_stmts.rst:691 reference/simple_stmts.rst:703 msgid "finally" -msgstr "" +msgstr "finally" #: reference/simple_stmts.rst:519 msgid "yield" -msgstr "" +msgstr "yield" #: reference/simple_stmts.rst:519 msgid "generator" -msgstr "" +msgstr "générateur" #: reference/simple_stmts.rst:519 msgid "iterator" -msgstr "" +msgstr "itérateur" #: reference/simple_stmts.rst:519 msgid "StopIteration" -msgstr "" +msgstr "StopIteration" #: reference/simple_stmts.rst:555 msgid "raise" -msgstr "" +msgstr "raise" #: reference/simple_stmts.rst:555 msgid "raising" -msgstr "" +msgstr "lever" #: reference/simple_stmts.rst:555 msgid "__traceback__ (exception attribute)" -msgstr "" +msgstr "__traceback__ (attribut d'exception)" #: reference/simple_stmts.rst:577 msgid "traceback" -msgstr "" +msgstr "trace d'appels" #: reference/simple_stmts.rst:587 msgid "chaining" -msgstr "" +msgstr "chaîner" #: reference/simple_stmts.rst:587 msgid "__cause__ (exception attribute)" -msgstr "" +msgstr "__cause__ (attribut d'exception)" #: reference/simple_stmts.rst:587 msgid "__context__ (exception attribute)" -msgstr "" +msgstr "__context__ (attribut d'exception)" #: reference/simple_stmts.rst:669 msgid "break" -msgstr "" +msgstr "break" #: reference/simple_stmts.rst:703 msgid "for" -msgstr "" +msgstr "for" #: reference/simple_stmts.rst:703 msgid "while" -msgstr "" +msgstr "while" #: reference/simple_stmts.rst:703 msgid "loop" -msgstr "" +msgstr "boucle" #: reference/simple_stmts.rst:682 msgid "else" -msgstr "" +msgstr "else" #: reference/simple_stmts.rst:682 msgid "loop control" -msgstr "" +msgstr "contrôle de boucle" #: reference/simple_stmts.rst:703 msgid "continue" -msgstr "" +msgstr "continue" #: reference/simple_stmts.rst:831 msgid "import" -msgstr "" +msgstr "importation" #: reference/simple_stmts.rst:728 msgid "module" -msgstr "" +msgstr "module" #: reference/simple_stmts.rst:728 msgid "importing" -msgstr "" +msgstr "importer" #: reference/simple_stmts.rst:783 msgid "from" -msgstr "" +msgstr "from" #: reference/simple_stmts.rst:770 msgid "as" -msgstr "" +msgstr "as" #: reference/simple_stmts.rst:728 msgid "ImportError" -msgstr "" +msgstr "ImportError" #: reference/simple_stmts.rst:770 reference/simple_stmts.rst:809 -#, fuzzy msgid "import statement" -msgstr "Les instructions simples" +msgstr "instruction *import*" #: reference/simple_stmts.rst:815 msgid "__all__ (optional module attribute)" -msgstr "" +msgstr "__all__ (attribut de module facultatif)" #: reference/simple_stmts.rst:831 msgid "relative" -msgstr "" +msgstr "relative" #: reference/simple_stmts.rst:858 msgid "future" -msgstr "" +msgstr "future" #: reference/simple_stmts.rst:858 msgid "__future__" -msgstr "" +msgstr "__future__" #: reference/simple_stmts.rst:858 -#, fuzzy msgid "future statement" -msgstr "L'instruction future" +msgstr "instruction *future*" #: reference/simple_stmts.rst:991 msgid "identifier list" -msgstr "" +msgstr "liste d'identifiants" #: reference/simple_stmts.rst:972 msgid "exec" -msgstr "" +msgstr "exec" #: reference/simple_stmts.rst:972 msgid "eval" -msgstr "" +msgstr "eval" #: reference/simple_stmts.rst:972 msgid "compile" -msgstr "" +msgstr "compiler" #: reference/simple_stmts.rst:991 msgid "nonlocal" -msgstr "" +msgstr "nonlocal" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index 0130b3d2..c91037a2 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-07-23 14:38+0200\n" -"PO-Revision-Date: 2019-03-19 23:26+0100\n" -"Last-Translator: \n" +"PO-Revision-Date: 2023-12-07 23:07+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.0.2\n" +"X-Generator: Poedit 3.2.2\n" #: reference/toplevel_components.rst:6 msgid "Top-level components" @@ -157,58 +157,56 @@ msgstr "" #: reference/toplevel_components.rst:8 msgid "interpreter" -msgstr "" +msgstr "interpréteur" #: reference/toplevel_components.rst:21 msgid "program" -msgstr "" +msgstr "programme" #: reference/toplevel_components.rst:23 reference/toplevel_components.rst:39 msgid "module" -msgstr "" +msgstr "module" #: reference/toplevel_components.rst:23 msgid "sys" -msgstr "" +msgstr "sys" #: reference/toplevel_components.rst:23 reference/toplevel_components.rst:39 msgid "__main__" -msgstr "" +msgstr "__main__" #: reference/toplevel_components.rst:23 msgid "builtins" -msgstr "" +msgstr "builtins" #: reference/toplevel_components.rst:39 -#, fuzzy msgid "interactive mode" -msgstr "Entrée interactive" +msgstr "mode interactif" #: reference/toplevel_components.rst:49 msgid "UNIX" -msgstr "" +msgstr "UNIX" #: reference/toplevel_components.rst:49 msgid "Windows" -msgstr "" +msgstr "Windows" #: reference/toplevel_components.rst:49 msgid "command line" -msgstr "" +msgstr "ligne de commande" #: reference/toplevel_components.rst:49 msgid "standard input" -msgstr "" +msgstr "entrée standard" #: reference/toplevel_components.rst:100 -#, fuzzy msgid "input" -msgstr "Fichier d'entrée" +msgstr "entrée" #: reference/toplevel_components.rst:101 msgid "built-in function" -msgstr "" +msgstr "fonction native" #: reference/toplevel_components.rst:101 msgid "eval" -msgstr "" +msgstr "eval"