diff --git a/library/string.po b/library/string.po
index ccdcc3125..c66bf32b1 100644
--- a/library/string.po
+++ b/library/string.po
@@ -6,14 +6,14 @@ msgstr ""
 "Project-Id-Version: Python 3\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-01-27 19:26+0100\n"
-"PO-Revision-Date: 2020-12-23 15:48+0100\n"
+"PO-Revision-Date: 2021-02-23 17:09+0100\n"
 "Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
 "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.4\n"
+"X-Generator: Poedit 2.2.3\n"
 
 #: library/string.rst:2
 msgid ":mod:`string` --- Common string operations"
@@ -47,7 +47,7 @@ msgid ""
 msgstr ""
 "La concaténation des constantes :const:`ascii_lowercase` et :const:"
 "`ascii_uppercase` décrites ci-dessous. Cette valeur n'est pas dépendante de "
-"l'environnement linguistique."
+"la configuration de la localisation."
 
 #: library/string.rst:31
 msgid ""
@@ -55,7 +55,7 @@ msgid ""
 "locale-dependent and will not change."
 msgstr ""
 "Les lettres minuscules ``'abcdefghijklmnopqrstuvwxyz'``. Cette valeur ne "
-"dépend pas de l'environnement linguistique et ne changera pas."
+"dépend pas de la configuration de localisation et ne changera pas."
 
 #: library/string.rst:37
 msgid ""
@@ -63,7 +63,7 @@ msgid ""
 "locale-dependent and will not change."
 msgstr ""
 "Les lettres majuscules ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Cette valeur ne "
-"dépend pas de l'environnement linguistique et ne changera pas."
+"dépend pas de la configuration de la localisation et ne changera pas."
 
 #: library/string.rst:43
 msgid "The string ``'0123456789'``."
@@ -82,8 +82,8 @@ msgid ""
 "String of ASCII characters which are considered punctuation characters in "
 "the ``C`` locale: ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``."
 msgstr ""
-"Chaîne de caractères ASCII considérés comme ponctuation dans l'environnement "
-"linguistique ``C`` : ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``."
+"Chaîne de caractères ASCII considérés comme ponctuation dans la "
+"configuration de localisation ``C`` : ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``."
 
 #: library/string.rst:63
 msgid ""
@@ -170,7 +170,7 @@ msgid ""
 "intended to be replaced by subclasses:"
 msgstr ""
 "De plus, la classe :class:`Formatter` définit un certain nombre de méthodes "
-"qui ont pour vocation d'être remplacées par des sous-classes :"
+"qui ont pour vocation d'être remplacées par des sous-classes :"
 
 #: library/string.rst:116
 msgid ""
@@ -224,7 +224,7 @@ msgid ""
 "in *kwargs*."
 msgstr ""
 "Récupère la valeur d'un champ donné. L'argument *key* est soit un entier, "
-"soit une chaîne. Si c'est un entier, il représente l'indice de la l'argument "
+"soit une chaîne. Si c'est un entier, il représente l'indice de l'argument "
 "dans *args*. Si c'est une chaîne de caractères, elle représente le nom de "
 "l'argument dans *kwargs*."
 
@@ -293,7 +293,7 @@ msgid ""
 msgstr ""
 "La méthode :meth:`format_field` fait simplement appel à la primitive "
 "globale :func:`format`. Cette méthode est fournie afin que les sous-classes "
-"puisse la redéfinir."
+"puissent la redéfinir."
 
 #: library/string.rst:177
 msgid ""
@@ -336,11 +336,11 @@ msgstr ""
 "d'accolades ``{}``. Tout ce qui n'est pas placé entre deux accolades est "
 "considéré comme littéral, qui est copié tel quel dans le résultat. Si vous "
 "avez besoin d'inclure une accolade en littéral, elles peuvent être échappées "
-"en les doublant : ``{{`` et ``}}``."
+"en les doublant : ``{{`` et ``}}``."
 
 #: library/string.rst:206
 msgid "The grammar for a replacement field is as follows:"
-msgstr "La grammaire pour un champ de remplacement est défini comme suit :"
+msgstr "La grammaire pour un champ de remplacement est définie comme suit :"
 
 #: library/string.rst:218
 msgid ""
@@ -382,15 +382,15 @@ msgstr ""
 "un mot-clef. Si c'est un nombre, il fait référence à un des arguments "
 "positionnels et si c'est un mot-clef, il fait référence à un des arguments "
 "nommés. Si les valeurs numériques de *arg_name* dans une chaîne de format "
-"sont 0, 1, 2, ... dans l'ordre, elles peuvent être omises (toutes ou "
-"aucune), et les nombres 0, 1, 2, ... seront automatiquement insérés dans cet "
-"ordre. Puisque *arg_name* n'est pas délimité par des guillemets, il n'est "
-"pas possible de spécifier des clefs de dictionnaire arbitraires (par exemple "
-"les chaînes ``'10'`` ou ``':-]'``) dans une chaîne de format. La valeur "
-"*arg_name* peut être suivie par un nombre d'indices ou d'expressions "
-"quelconque. Une expression de la forme ``'.name'`` sélectionne l'attribut "
-"nommé en utilisant :func:`getattr` alors qu'une expression de la forme "
-"``'[index]'`` recherche l'indice en utilisant :func:`__getitem__`."
+"sont 0, 1, 2… dans l'ordre, elles peuvent être omises (toutes ou aucune), et "
+"les nombres 0, 1, 2… seront automatiquement insérés dans cet ordre. Puisque "
+"*arg_name* n'est pas délimité par des guillemets, il n'est pas possible de "
+"spécifier des clefs de dictionnaire arbitraires (par exemple les chaînes "
+"``'10'`` ou ``':-]'``) dans une chaîne de format. La valeur *arg_name* peut "
+"être suivie par un nombre d'indices ou d'expressions quelconque. Une "
+"expression de la forme ``'.name'`` sélectionne l'attribut nommé en "
+"utilisant :func:`getattr` alors qu'une expression de la forme ``'[index]'`` "
+"recherche l'indice en utilisant :func:`__getitem__`."
 
 #: library/string.rst:239
 msgid ""
@@ -435,7 +435,7 @@ msgid ""
 "`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which "
 "calls :func:`ascii`."
 msgstr ""
-"Actuellement, trois indicateurs sont gérés : ``'!s'`` qui appelle la "
+"Actuellement, trois indicateurs sont gérés : ``'!s'`` qui appelle la "
 "fonction :func:`str` sur la valeur, ``'!r'`` qui appelle la fonction :func:"
 "`repr` et ``!a`` qui appelle la fonction :func:`ascii`."
 
@@ -451,7 +451,7 @@ msgid ""
 "\"formatting mini-language\" or interpretation of the *format_spec*."
 msgstr ""
 "Le champ *format_spec* contient une spécification sur la manière selon "
-"laquelle la valeur devrait être représentée : des informations telles que la "
+"laquelle la valeur devrait être représentée : des informations telles que la "
 "longueur du champ, l'alignement, le remplissage, la précision décimale, etc. "
 "Chaque type peut définir son propre \"mini-langage de formatage\" ou sa "
 "propre interprétation de *format_spec*."
@@ -509,20 +509,19 @@ msgid ""
 "specifications, although some of the formatting options are only supported "
 "by the numeric types."
 msgstr ""
-"La plupart des primitives implémentent les les options suivantes, même si "
-"certaines options de formatage ne sont supportées que pour les types "
+"La plupart des primitives implémentent les options suivantes, même si "
+"certaines options de formatage ne sont prises en charge que pour les types "
 "numériques."
 
 #: library/string.rst:305
-#, fuzzy
 msgid ""
 "A general convention is that an empty format specification produces the same "
 "result as if you had called :func:`str` on the value. A non-empty format "
 "specification typically modifies the result."
 msgstr ""
-"Une convention généralement admise est qu'une chaîne vide (``\"\"``) produit "
-"le même résultat que si vous aviez appelé :func:`str` sur la valeur. Une "
-"chaîne de format non vide modifie typiquement le résultat."
+"Une convention généralement admise est qu'une chaîne vide produit le même "
+"résultat que si vous aviez appelé :func:`str` sur la valeur. Une chaîne de "
+"format non vide modifie habituellement le résultat."
 
 #: library/string.rst:309
 msgid "The general form of a *standard format specifier* is:"
@@ -549,7 +548,7 @@ msgstr ""
 
 #: library/string.rst:330
 msgid "The meaning of the various alignment options is as follows:"
-msgstr "Le sens des différentes options d'alignement est donné comme suit :"
+msgstr "Le sens des différentes options d'alignement est donné comme suit :"
 
 #: library/string.rst:370
 msgid "Option"
@@ -614,7 +613,7 @@ msgid ""
 "always be the same size as the data to fill it, so that the alignment option "
 "has no meaning in this case."
 msgstr ""
-"Notons que la longueur du champ est toujours égale à la la taille nécessaire "
+"Notons que la longueur du champ est toujours égale à la taille nécessaire "
 "pour remplir le champ avec l'objet à moins que la valeur minimum ne soit "
 "précisée.  Ainsi, si aucune valeur n'est précisée, l'option d'alignement n'a "
 "aucun sens."
@@ -624,8 +623,8 @@ msgid ""
 "The *sign* option is only valid for number types, and can be one of the "
 "following:"
 msgstr ""
-"L'option *sign* est uniquement valide pour les type numériques, et peut "
-"valoir :"
+"L'option *sign* est uniquement valide pour les types numériques, et peut "
+"valoir :"
 
 #: library/string.rst:372
 msgid "``'+'``"
@@ -664,7 +663,6 @@ msgstr ""
 "doit précéder les nombres négatifs."
 
 #: library/string.rst:385
-#, fuzzy
 msgid ""
 "The ``'#'`` option causes the \"alternate form\" to be used for the "
 "conversion.  The alternate form is defined differently for different types.  "
@@ -679,15 +677,15 @@ msgid ""
 msgstr ""
 "L'option ``'#'`` impose l'utilisation de la \"forme alternative\" pour la "
 "conversion. La forme alternative est définie différemment pour différent "
-"types. Cette option est uniquement valide pour les types entiers flottants, "
-"complexes, et décimaux. Pour les entiers, quand l'affichage binaire, octal "
-"ou hexadécimal est utilisé, cette option ajoute le préfixe ``'0b'``, "
-"``'0o'``, ou ``'0x'`` à la valeur affichée. Pour les flottants, les "
-"complexes, et les décimaux, la forme alternative impose que le résultat de "
-"la conversion contienne toujours une virgule, même si aucun chiffre ne vient "
-"après. Normalement, une virgule apparaît dans le résultat de ces conversions "
-"seulement si un chiffre le suit. De plus, pour les conversions ``'g'`` et "
-"``'G'``, les zéros finaux ne sont pas retirés du résultat."
+"types. Cette option est uniquement valide pour les types entiers flottants "
+"et complexes. Pour les entiers, quand l'affichage binaire, octal ou "
+"hexadécimal est utilisé, cette option ajoute le préfixe ``'0b'``, ``'0o'``, "
+"ou ``'0x'`` à la valeur affichée. Pour les flottants et les complexes, la "
+"forme alternative impose que le résultat de la conversion contienne toujours "
+"une virgule, même si aucun chiffre ne vient après. Normalement, une virgule "
+"apparaît dans le résultat de ces conversions seulement si un chiffre le "
+"suit. De plus, pour les conversions ``'g'`` et ``'G'``, les zéros finaux ne "
+"sont pas retirés du résultat."
 
 #: library/string.rst:399
 msgid ""
@@ -695,8 +693,8 @@ msgid ""
 "a locale aware separator, use the ``'n'`` integer presentation type instead."
 msgstr ""
 "L'option ``','`` signale l'utilisation d'une virgule comme séparateur des "
-"milliers. Pour un séparateur conscient de l'environnement linguistique, "
-"utilisez plutôt le type de présentation entière ``'n'``."
+"milliers. Pour un séparateur prenant en compte la configuration de "
+"localisation, utilisez plutôt le type de présentation entière ``'n'``."
 
 #: library/string.rst:403
 msgid "Added the ``','`` option (see also :pep:`378`)."
@@ -722,15 +720,15 @@ msgid "Added the ``'_'`` option (see also :pep:`515`)."
 msgstr "Ajout de l'option ``'_'`` (voir aussi :pep:`515`)."
 
 #: library/string.rst:418
-#, fuzzy
 msgid ""
 "*width* is a decimal integer defining the minimum total field width, "
 "including any prefixes, separators, and other formatting characters. If not "
 "specified, then the field width will be determined by the content."
 msgstr ""
-"*width* est un entier en base 10 qui définit la longueur minimale du champ. "
-"Si elle n'est pas spécifiée, alors le champ *width* est déterminé par le "
-"contenu."
+"*width* est un entier en base 10 qui définit la longueur minimale de tout le "
+"champ, y compris les préfixes, séparateurs et autres caractères de "
+"formatage. Si elle n'est pas spécifiée, alors le champ *width* est déterminé "
+"par le contenu."
 
 #: library/string.rst:422
 msgid ""
@@ -739,11 +737,10 @@ msgid ""
 "is equivalent to a *fill* character of ``'0'`` with an *alignment* type of "
 "``'='``."
 msgstr ""
-"Quand aucun alignement explicite n'est donné, précéder le champs *width* "
-"d'un caractère zéro (``'0'``) active le remplissage par zéro des types "
-"numériques selon leur signe.  Cela est équivalent à un caractère de "
-"remplissage *fill* valant ``'0'`` avec le type d'alignement *alignment* "
-"valant ``'='``."
+"Quand aucun alignement explicite n'est donné, précéder le champ *width* d'un "
+"caractère zéro (``'0'``) active le remplissage par zéro des types numériques "
+"selon leur signe.  Cela est équivalent à un caractère de remplissage *fill* "
+"valant ``'0'`` avec le type d'alignement *alignment* valant ``'='``."
 
 #: library/string.rst:427
 msgid ""
@@ -771,7 +768,7 @@ msgstr ""
 
 #: library/string.rst:436
 msgid "The available string presentation types are:"
-msgstr "Les types disponibles de représentation de chaîne sont :"
+msgstr "Les types disponibles de représentation de chaîne sont :"
 
 #: library/string.rst:450 library/string.rst:483
 msgid "Type"
@@ -797,7 +794,7 @@ msgstr "Pareil que ``'s'``."
 
 #: library/string.rst:447
 msgid "The available integer presentation types are:"
-msgstr "Les types disponibles de représentation d'entier sont :"
+msgstr "Les types disponibles de représentation d'entier sont :"
 
 #: library/string.rst:452
 msgid "``'b'``"
@@ -816,7 +813,7 @@ msgid ""
 "Character. Converts the integer to the corresponding unicode character "
 "before printing."
 msgstr ""
-"Caractère. Convertit l'entier en le caractère Unicode associé avant de "
+"Caractère. Convertit l'entier en caractère Unicode associé avant de "
 "l'afficher."
 
 #: library/string.rst:457
@@ -868,8 +865,9 @@ msgid ""
 "Number. This is the same as ``'d'``, except that it uses the current locale "
 "setting to insert the appropriate number separator characters."
 msgstr ""
-"Nombre. Pareil que ``'d'`` si ce n'est que l'environnement linguistique est "
-"utilisé afin de déterminer le séparateur de nombres approprié."
+"Nombre. Pareil que ``'d'`` si ce n'est que ce sont les paramètres de "
+"localisation qui sont utilisés afin de déterminer le séparateur de nombres "
+"approprié."
 
 #: library/string.rst:471
 msgid "The same as ``'d'``."
@@ -889,13 +887,12 @@ msgstr ""
 "formatage."
 
 #: library/string.rst:479
-#, fuzzy
 msgid ""
 "The available presentation types for :class:`float` and :class:`~decimal."
 "Decimal` values are:"
 msgstr ""
-"Les types de représentation pour les nombres flottants et les valeurs "
-"décimales sont :"
+"Les représentations possibles pour les :class:`float` et les :class:"
+"`~decimal.Decimal` sont :"
 
 #: library/string.rst:485
 msgid "``'e'``"
@@ -912,18 +909,27 @@ msgid ""
 "Decimal`. If no digits follow the decimal point, the decimal point is also "
 "removed unless the ``#`` option is used."
 msgstr ""
+"Notation scientifique. Pour une précision donnée ``p``, formate le nombre en "
+"notation scientifique avec la lettre `'e'` séparant la mantisse de "
+"l'exposant. La mantisse possède un chiffre devant et ``p`` chiffres après la "
+"virgule (représentée par un point en Python, conformément à la convention "
+"anglo-saxonne), ce qui donne ``p+1`` chiffres significatifs. Si la précision "
+"n'est pas donnée, utilise une précision de ``6`` chiffres après la virgule "
+"pour les :class:`float` et affiche tous les chiffres de la mantisse pour "
+"les :class:`~decimal.Decimal`. S'il n'y a pas de chiffre après la virgule, "
+"la virgule (c.-à-d. le point décimal en Python) n'est pas affichée à moins "
+"que l'option ``#`` ne soit utilisée."
 
 #: library/string.rst:497
 msgid "``'E'``"
 msgstr "``'E'``"
 
 #: library/string.rst:497
-#, fuzzy
 msgid ""
 "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the "
 "separator character."
 msgstr ""
-"Notation par exposant. Pareil que ``'e'`` sauf l'utilisation de la lettre "
+"Notation scientifique. Pareil que ``'e'`` sauf que Python utilise la lettre "
 "majuscule 'E' comme séparateur."
 
 #: library/string.rst:500
@@ -940,6 +946,14 @@ msgid ""
 "decimal point, the decimal point is also removed unless the ``#`` option is "
 "used."
 msgstr ""
+"Notation en virgule fixe. Pour une précision donnée ``p``, formate le nombre "
+"sous la forme décimale avec exactement ``p`` chiffres après la virgule "
+"(représentée par un point en Python, conformément à la convention anglo-"
+"saxonne). Si la précision n'est pas donnée, utilise une précision de ``6`` "
+"chiffres après la virgule pour les :class:`float` et affiche tous les "
+"chiffres pour les :class:`~decimal.Decimal`. S'il n'y a pas de chiffre après "
+"la virgule, la virgule (c.-à-d. le point décimal en Python) n'est pas "
+"affichée à moins que l'option ``#`` ne soit utilisée."
 
 #: library/string.rst:510
 msgid "``'F'``"
@@ -958,16 +972,16 @@ msgid "``'g'``"
 msgstr "``'g'``"
 
 #: library/string.rst:513
-#, fuzzy
 msgid ""
 "General format.  For a given precision ``p >= 1``, this rounds the number to "
 "``p`` significant digits and then formats the result in either fixed-point "
 "format or in scientific notation, depending on its magnitude. A precision of "
 "``0`` is treated as equivalent to a precision of ``1``."
 msgstr ""
-"Format général. Pour une précision donnée ``p >= 1``, ceci arrondit le "
+"Format général. Pour une précision donnée ``p >= 1``, Python arrondit le "
 "nombre à ``p`` chiffres significatifs et puis formate le résultat soit en "
-"virgule fixe soit en notation scientifique, en fonction de la magnitude."
+"virgule fixe soit en notation scientifique, en fonction de la magnitude. Une "
+"précision de ``0`` est considérée équivalente à une précision de ``1``."
 
 #: library/string.rst:520
 msgid ""
@@ -983,8 +997,8 @@ msgid ""
 msgstr ""
 "Les règles précises sont les suivantes : supposons que le résultat formaté "
 "avec le type de représentation ``'e'`` et une précision ``p-1`` ait un "
-"exposant ``exp``. Alors, si ``m <= exp <= p`` où ``m`` vaut `-4` pour les "
-"nombres à virgule flottante et `-6` pour les :class:`Decimals <decimal."
+"exposant ``exp``. Alors, si ``m <= exp <= p`` où ``m`` vaut `–4` pour les "
+"nombres à virgule flottante et `–6` pour les :class:`Decimals <decimal."
 "Decimal>`, le nombre est formaté avec le type de représentation ``'f'`` et "
 "une précision ``p-1-exp``. Sinon, le nombre est formaté avec le type de "
 "représentation ``'e'`` et une précision ``p-1``. Dans les deux cas, les "
@@ -1001,6 +1015,12 @@ msgid ""
 "place value of the least significant digit is larger than 1, and fixed-point "
 "notation is used otherwise."
 msgstr ""
+"Si la précision n'est pas donnée, utilise une précision de ``6`` chiffres "
+"significatifs pour les :class:`float`. Pour les :class:`~decimal.Decimal`, "
+"la mantisse du résultat dépend de la valeur : la notation scientifique est "
+"utilisée pour les valeurs inférieures à ``1e-6`` en valeur absolue et pour "
+"celles dont le dernier chiffre significatif a une position supérieure à 1 ; "
+"dans les autres cas, la notation en virgule fixe est utilisée."
 
 #: library/string.rst:542
 msgid ""
@@ -1008,7 +1028,7 @@ msgid ""
 "formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, "
 "regardless of the precision."
 msgstr ""
-"Les valeurs suivantes : infini négatif, infini positif, zéro positif, zéro "
+"Les valeurs suivantes : infini négatif, infini positif, zéro positif, zéro "
 "négatif, *not a number* sont formatées respectivement par ``inf``, ``-inf``, "
 "``0``, ``-0`` et ``nan``, peu importe la précision."
 
@@ -1022,7 +1042,7 @@ msgid ""
 "gets too large. The representations of infinity and NaN are uppercased, too."
 msgstr ""
 "Format général. Pareil que ``'G'`` si ce n'est que ``'E'`` est utilisé si le "
-"nombre est trop grand. Également, la représentation des infinis et de Nan "
+"nombre est trop grand. Également, la représentation des infinis et de *NaN* "
 "sont en majuscules également."
 
 #: library/string.rst:551
@@ -1030,8 +1050,8 @@ msgid ""
 "Number. This is the same as ``'g'``, except that it uses the current locale "
 "setting to insert the appropriate number separator characters."
 msgstr ""
-"Nombre. Pareil que ``'g'``, si ce n'est que l'environnement linguistique est "
-"pris en compte pour insérer le séparateur approprié."
+"Nombre. Pareil que ``'g'``, si ce n'est que la configuration de localisation "
+"est prise en compte pour insérer le séparateur approprié."
 
 #: library/string.rst:555
 msgid "``'%'``"
@@ -1046,18 +1066,16 @@ msgstr ""
 "(``'f'``), suivi d'un symbole pourcent ``'%'``."
 
 #: library/string.rst:558
-#, fuzzy
 msgid ""
 "For :class:`float` this is the same as ``'g'``, except that when fixed-point "
 "notation is used to format the result, it always includes at least one digit "
 "past the decimal point. The precision used is as large as needed to "
 "represent the given value faithfully."
 msgstr ""
-"Pareil que ``'g'``, si ce n'est que lorsque la notation en virgule fixe est "
-"utilisée, il y a toujours au moins un chiffre derrière la virgule. La "
-"précision par défaut celle nécessaire pour afficher la valeur donnée. "
-"L'effet visé est de le faire correspondre à la valeur renvoyée par :func:"
-"`str` altérée par les autres modificateurs de format."
+"Pour les :class:`float`, c'est identique à ``'g'``, si ce n'est que lorsque "
+"la notation en virgule fixe est utilisée, il y a toujours au moins un "
+"chiffre après la virgule. La précision utilisée est celle nécessaire pour "
+"afficher la valeur donnée fidèlement."
 
 #: library/string.rst:564
 msgid ""
@@ -1065,12 +1083,16 @@ msgid ""
 "depending on the value of ``context.capitals`` for the current decimal "
 "context."
 msgstr ""
+"Pour les :class:`~decimal.Decimal`, c'est identique à ``'g'`` ou ``'G'`` en "
+"fonction de la valeur de ``context.capitals`` du contexte décimal courant."
 
 #: library/string.rst:568
 msgid ""
 "The overall effect is to match the output of :func:`str` as altered by the "
 "other format modifiers."
 msgstr ""
+"L'effet visé est de coller à la valeur renvoyée par :func:`str` telle que "
+"modifiée par les autres modificateurs de format."
 
 #: library/string.rst:576
 msgid "Format examples"
@@ -1090,8 +1112,8 @@ msgid ""
 "the addition of the ``{}`` and with ``:`` used instead of ``%``. For "
 "example, ``'%03.2f'`` can be translated to ``'{:03.2f}'``."
 msgstr ""
-"Dans la plupart des cases, la syntaxe est similaire à l'ancien formatage par "
-"``%``, avec l'ajout de ``{}`` et avec ``:`` au lieu de ``%``. Par exemple : "
+"Dans la plupart des cas, la syntaxe est similaire à l'ancien formatage par ``"
+"%``, avec l'ajout de ``{}`` et avec ``:`` au lieu de ``%``. Par exemple : "
 "``'%03.2f'`` peut être changé en ``'{03.2f}'``."
 
 #: library/string.rst:585
@@ -1166,13 +1188,13 @@ msgid ""
 "the `flufl.i18n <http://flufli18n.readthedocs.io/en/latest/>`_ package."
 msgstr ""
 "Les chaînes modèles fournissent des substitutions de chaînes plus simples, "
-"comme décrit dans :pep:`292`.  L’internationalisation (*i18n*) est un cas "
-"d’utilisation principale pour les chaînes modèles, car dans ce contexte, la "
+"comme décrit dans :pep:`292`. L’internationalisation (*i18n*) est un cas "
+"d’utilisation principale pour les chaînes modèles car, dans ce contexte, la "
 "syntaxe et les fonctionnalités simplifiées facilitent la traduction par "
 "rapport aux autres fonctions de formatage de chaînes intégrées en Python.  "
 "Comme exemple de bibliothèque construite sur des chaînes modèles pour "
 "l'internationalisation, voir le paquet `flufl.i18n <http://flufli18n."
-"readthedocs.io/en/latest/>`."
+"readthedocs.io/en/latest/>`_ (ressource en anglais)."
 
 #: library/string.rst:729
 msgid ""
@@ -1184,7 +1206,7 @@ msgstr ""
 
 #: library/string.rst:731
 msgid "``$$`` is an escape; it is replaced with a single ``$``."
-msgstr "``$$`` est un échappement ; il est remplacé par un simple ``$``."
+msgstr "``$$`` est un échappement ; il est remplacé par un simple ``$``."
 
 #: library/string.rst:733
 msgid ""
@@ -1226,7 +1248,7 @@ msgid ""
 "these rules.  The methods of :class:`Template` are:"
 msgstr ""
 "Le module :mod:`string` fournit une classe :class:`Template` qui implémente "
-"ces règles. Les méthodes de :class:`Template` sont :"
+"ces règles. Les méthodes de :class:`Template` sont :"
 
 #: library/string.rst:753
 msgid "The constructor takes a single argument which is the template string."
@@ -1283,7 +1305,7 @@ msgstr ""
 msgid ":class:`Template` instances also provide one public data attribute:"
 msgstr ""
 "Les instances de la classe :class:`Template` fournissent également un "
-"attribut public :"
+"attribut public :"
 
 #: library/string.rst:784
 msgid ""
@@ -1305,11 +1327,11 @@ msgid ""
 "expression used to parse template strings.  To do this, you can override "
 "these class attributes:"
 msgstr ""
-"Usage avancé : vous pouvez faire dériver vos sous-classes de :class:"
+"Usage avancé : vous pouvez faire dériver vos sous-classes de :class:"
 "`Template` pour personnaliser la syntaxe des substituants, les caractères "
 "délimiteurs, ou l'entièreté de l'expression rationnelle utilisée pour "
 "analyser les chaînes *templates*. Pour faire cela, vous pouvez redéfinir les "
-"attributs suivants :"
+"attributs suivants :"
 
 #: library/string.rst:810
 msgid ""
@@ -1320,8 +1342,8 @@ msgid ""
 "delimiter after class creation (i.e. a different delimiter must be set in "
 "the subclass's class namespace)."
 msgstr ""
-"*delimiter* -- La chaîne littérale décrivant le délimiteur pour introduire "
-"un substituant. Sa valeur par défaut est ``$``. Notez qu'elle ne doit *pas* "
+"*delimiter* — La chaîne littérale décrivant le délimiteur pour introduire un "
+"substituant. Sa valeur par défaut est ``$``. Notez qu'elle ne doit *pas* "
 "être une expression rationnelle, puisque l'implémentation appelle :meth:`re."
 "escape` sur cette chaîne si nécessaire. Notez aussi que le délimiteur ne "
 "peut pas être changé après la création de la classe."
@@ -1333,9 +1355,9 @@ msgid ""
 "z][_a-z0-9]*)``.  If this is given and *braceidpattern* is ``None`` this "
 "pattern will also apply to braced placeholders."
 msgstr ""
-"*idpattern* -- L'expression rationnelle décrivant le motif pour les "
+"*idpattern* — L'expression rationnelle décrivant le motif pour les "
 "substituants non entourés d'accolades. La valeur par défaut de cette "
-"expression rationnelle est ``(?a:[_a-z][_a-z0-9]*)``.  Si *idpattern* est "
+"expression rationnelle est ``(?a:[_a-z][_a-z0-9]*)``. Si *idpattern* est "
 "donné et *braceidpattern* est ``None``, ce motif est aussi utilisé pour les "
 "marqueurs entre accolades."
 
@@ -1368,7 +1390,7 @@ msgstr ""
 "placé entre accolades.  La valeur par défaut est ``None``` ce qui signifie "
 "que seul *idpattern* est pris en compte (le motif est le même, qu’il soit à "
 "l’intérieur d’accolades ou non). S’il est donné, cela vous permet de définir "
-"définir des motifs entre accolades différents des motifs sans accolades."
+"des motifs entre accolades différents des motifs sans accolades."
 
 #: library/string.rst:840
 msgid ""
@@ -1378,7 +1400,7 @@ msgid ""
 "to the flags, so custom *idpattern*\\ s must follow conventions for verbose "
 "regular expressions."
 msgstr ""
-"*flags* -- L'indicateur d'expression rationnelle  qui sera appliqué lors de "
+"*flags* — L'indicateur d'expression rationnelle  qui sera appliqué lors de "
 "la compilation de l'expression rationnelle pour reconnaître les "
 "substitutions. La valeur par défaut est ``re.IGNORECASE``. Notez que ``re."
 "VERBOSE`` sera toujours ajouté à l'indicateur. Donc, un *idpattern* "
@@ -1397,14 +1419,14 @@ msgstr ""
 "en redéfinissant l'attribut *pattern*. Si vous faites cela, la valeur doit "
 "être un objet 'expression rationnelle' avec quatre groupes de capture de "
 "noms. Les groupes de capture correspondent aux règles données au-dessus, "
-"ainsi qu'à la règle du substituant invalide :"
+"ainsi qu'à la règle du substituant invalide :"
 
 #: library/string.rst:854
 msgid ""
 "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the "
 "default pattern."
 msgstr ""
-"*escaped* -- Ce groupe lie les séquences échappées (par exemple ``$$``) dans "
+"*escaped* — Ce groupe lie les séquences échappées (par exemple ``$$``) dans "
 "le motif par défaut."
 
 #: library/string.rst:857
@@ -1412,7 +1434,7 @@ msgid ""
 "*named* -- This group matches the unbraced placeholder name; it should not "
 "include the delimiter in capturing group."
 msgstr ""
-"*named* -- Ce groupe lie les substituants non entourés d'accolades ; il ne "
+"*named* — Ce groupe lie les substituants non entourés d'accolades ; il ne "
 "devrait pas inclure le délimiteur dans le groupe de capture."
 
 #: library/string.rst:860
@@ -1420,7 +1442,7 @@ msgid ""
 "*braced* -- This group matches the brace enclosed placeholder name; it "
 "should not include either the delimiter or braces in the capturing group."
 msgstr ""
-"*braced* -- Ce groupe lie le nom entouré d'accolades ; il ne devrait inclure "
+"*braced* — Ce groupe lie le nom entouré d'accolades ; il ne devrait inclure "
 "ni le délimiteur, ni les accolades dans le groupe de capture."
 
 #: library/string.rst:863
@@ -1428,7 +1450,7 @@ msgid ""
 "*invalid* -- This group matches any other delimiter pattern (usually a "
 "single delimiter), and it should appear last in the regular expression."
 msgstr ""
-"*invalid* -- Ce groupe lie tout autre motif de délimitation (habituellement, "
+"*invalid* — Ce groupe lie tout autre motif de délimitation (habituellement, "
 "un seul délimiteur) et il devrait apparaître en dernier dans l'expression "
 "rationnelle."