Forward porting f7829d20 (Howto unicode 3, suite et fin (#873))

This commit is contained in:
Julien Palard 2019-09-16 12:11:14 +02:00
parent 2ea522a5e3
commit 8e9cd1e23e
2 changed files with 177 additions and 28 deletions

View File

@ -180,7 +180,7 @@ msgid ""
msgstr "" msgstr ""
"Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " "Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 "
"bits comme unité de code, puis l'utilisation de la représentation des " "bits comme unité de code, puis l'utilisation de la représentation des "
"entiers 32 bits par le CPU. Dans cette représentation, la chaîne \"Python\" " "entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » "
"ressemblerait à ceci :" "ressemblerait à ceci :"
#: ../Doc/howto/unicode.rst:106 #: ../Doc/howto/unicode.rst:106
@ -387,8 +387,8 @@ msgid ""
"encoding <https://en.wikipedia.org/wiki/Character_encoding>`_\" and `UTF-8 " "encoding <https://en.wikipedia.org/wiki/Character_encoding>`_\" and `UTF-8 "
"<https://en.wikipedia.org/wiki/UTF-8>`_, for example." "<https://en.wikipedia.org/wiki/UTF-8>`_, for example."
msgstr "" msgstr ""
"Les pages Wikipédia sont souvent utiles ; voir les pages pour \"`Codage des " "Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des "
"caractères <https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res>`_\" et " "caractères <https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res>`_ » et "
"`UTF-8 <https://fr.wikipedia.org/wiki/UTF-8>`_, par exemple." "`UTF-8 <https://fr.wikipedia.org/wiki/UTF-8>`_, par exemple."
#: ../Doc/howto/unicode.rst:183 #: ../Doc/howto/unicode.rst:183
@ -414,7 +414,7 @@ msgid ""
"``'unicode rocks!'``, or the triple-quoted string syntax is stored as " "``'unicode rocks!'``, or the triple-quoted string syntax is stored as "
"Unicode." "Unicode."
msgstr "" msgstr ""
"\"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " "Depuis Python 3.0, le type :class:`str` du langage contient des caractères "
"Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode " "Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode "
"déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " "déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets "
"est enregistrée comme Unicode." "est enregistrée comme Unicode."
@ -470,11 +470,11 @@ msgid ""
msgstr "" msgstr ""
"L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " "L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut "
"pas être convertie selon les règles de l'encodage. Les valeurs autorisées " "pas être convertie selon les règles de l'encodage. Les valeurs autorisées "
"pour cet argument sont ``'strict'`` (\"strict\" : lève une exception :exc:" "pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:"
"`UnicodeDecodeError`) , ``'replace'`` (\"remplacer\" : utilise ``U+FFFD``, " "`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, "
"``REPLACEMENT CARACTER``), ``'ignore'`` (\"ignorer\" : n'inclut pas le " "``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le "
"caractère dans le résultat Unicode) ou ``'backslashreplace'`` (\"remplacer " "caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer "
"avec antislash\" : insère une séquence déchappement ``\\xNN``). Les " "avec antislash » : insère une séquence déchappement ``\\xNN``). Les "
"exemples suivants illustrent les différences ::" "exemples suivants illustrent les différences ::"
#: ../Doc/howto/unicode.rst:247 #: ../Doc/howto/unicode.rst:247
@ -555,7 +555,7 @@ msgstr ""
"disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " "disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de "
"nouveaux encodages nécessite également de comprendre le module :mod:" "nouveaux encodages nécessite également de comprendre le module :mod:"
"`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " "`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par "
"ce module sont généralement de trop bas-niveau pour être confortables et " "ce module sont généralement de bas-niveau pour être facilement utilisées et "
"l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " "l'écriture de nouveaux encodages est une tâche très spécialisée, donc le "
"module ne sera pas couvert dans ce HOWTO." "module ne sera pas couvert dans ce HOWTO."
@ -740,9 +740,9 @@ msgid ""
"differently:" "differently:"
msgstr "" msgstr ""
"Un deuxième outil est la fonction :mod:`unicodedata` du module :func:" "Un deuxième outil est la fonction :mod:`unicodedata` du module :func:"
"`~unicodedata.normalize` du module qui convertit les chaînes de caractères " "`~unicodedata.normalize` qui convertit les chaînes de caractères en l'une de "
"en l'une de plusieurs formes normales, où les lettres suivies d'un caractère " "plusieurs formes normales, où les lettres suivies d'un caractère de "
"de combinaison sont remplacées par des caractères simples. :func:`normalize` " "combinaison sont remplacées par des caractères simples. :func:`normalize` "
"peut être utilisée pour effectuer des comparaisons qui ne rapportent pas " "peut être utilisée pour effectuer des comparaisons qui ne rapportent pas "
"faussement les inégalités si deux chaînes utilisent différents caractères de " "faussement les inégalités si deux chaînes utilisent différents caractères de "
"combinaison :" "combinaison :"
@ -796,9 +796,8 @@ msgstr ""
"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " "fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de "
"caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " "caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations "
"différentes selon que le motif est fourni en octets ou en texte. Par " "différentes selon que le motif est fourni en octets ou en texte. Par "
"exemple, ``\\d``` correspond aux caractères ``[0-9]`` en octets mais dans " "exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les "
"les chaînes de caractères correspond à tout caractère de la catégorie " "chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``."
"``'Nd'``."
#: ../Doc/howto/unicode.rst:492 #: ../Doc/howto/unicode.rst:492
msgid "" msgid ""
@ -875,16 +874,16 @@ msgid ""
"Python 2's Unicode features (where the Unicode string type is called " "Python 2's Unicode features (where the Unicode string type is called "
"``unicode`` and literals start with ``u``)." "``unicode`` and literals start with ``u``)."
msgstr "" msgstr ""
"Marc-André Lemburg a fait une présentation intitulée `« Python et " "Marc-André Lemburg a donné une présentation intitulée `« Python et "
"Unicode » (diapositives PDF) <https://downloads.egenix.com/python/Unicode-" "Unicode » (diapositives PDF) <https://downloads.egenix.com/python/Unicode-"
"EPC2002-Talk.pdf>`_ à EuroPython 2002. Les diapositives sont un excellent " "EPC2002-Talk.pdf>`_ à EuroPython 2002. Les diapositives sont un excellent "
"aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " "aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type "
"de chaîne Unicode est appelé ``unicode`` et commence littéralement par " "de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par "
"``u``)." "``u``)."
#: ../Doc/howto/unicode.rst:537 #: ../Doc/howto/unicode.rst:537
msgid "Reading and Writing Unicode Data" msgid "Reading and Writing Unicode Data"
msgstr "" msgstr "Lecture et écriture de données Unicode"
#: ../Doc/howto/unicode.rst:539 #: ../Doc/howto/unicode.rst:539
msgid "" msgid ""
@ -892,6 +891,10 @@ msgid ""
"is input/output. How do you get Unicode strings into your program, and how " "is input/output. How do you get Unicode strings into your program, and how "
"do you convert Unicode into a form suitable for storage or transmission?" "do you convert Unicode into a form suitable for storage or transmission?"
msgstr "" msgstr ""
"Une fois que vous avez écrit du code qui fonctionne avec des données "
"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir "
"des chaînes Unicode dans votre programme et comment convertir les chaînes "
"Unicode dans une forme appropriée pour le stockage ou la transmission ?"
#: ../Doc/howto/unicode.rst:543 #: ../Doc/howto/unicode.rst:543
msgid "" msgid ""
@ -901,6 +904,13 @@ msgid ""
"Unicode data, for example. Many relational databases also support Unicode-" "Unicode data, for example. Many relational databases also support Unicode-"
"valued columns and can return Unicode values from an SQL query." "valued columns and can return Unicode values from an SQL query."
msgstr "" msgstr ""
"Il est possible que vous n'ayez rien à faire en fonction de vos sources "
"d'entrée et des destinations de vos données de sortie ; il convient de "
"vérifier si les bibliothèques utilisées dans votre application gèrent "
"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des "
"données Unicode. De nombreuses bases de données relationnelles prennent "
"également en charge les colonnes encodées en Unicode et peuvent renvoyer des "
"valeurs Unicode à partir d'une requête SQL."
#: ../Doc/howto/unicode.rst:549 #: ../Doc/howto/unicode.rst:549
msgid "" msgid ""
@ -910,6 +920,11 @@ msgid ""
"bytes with ``bytes.decode(encoding)``. However, the manual approach is not " "bytes with ``bytes.decode(encoding)``. However, the manual approach is not "
"recommended." "recommended."
msgstr "" msgstr ""
"Les données Unicode sont généralement converties en un encodage particulier "
"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il "
"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un "
"élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. "
"Cependant, l'approche manuelle n'est pas recommandée."
#: ../Doc/howto/unicode.rst:554 #: ../Doc/howto/unicode.rst:554
msgid "" msgid ""
@ -924,6 +939,17 @@ msgid ""
"least a moment you'd need to have both the encoded string and its Unicode " "least a moment you'd need to have both the encoded string and its Unicode "
"version in memory.)" "version in memory.)"
msgstr "" msgstr ""
"La nature multi-octets des encodages pose problème ; un caractère Unicode "
"peut être représenté par plusieurs octets. Si vous voulez lire le fichier "
"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez "
"écrire un code de gestion des erreurs pour détecter le cas où une partie "
"seulement des octets codant un seul caractère Unicode est lue à la fin d'un "
"morceau. Une solution serait de lire le fichier entier en mémoire et "
"d'effectuer le décodage, mais cela vous empêche de travailler avec des "
"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de "
"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque "
"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et "
"sa version Unicode en mémoire)."
#: ../Doc/howto/unicode.rst:564 #: ../Doc/howto/unicode.rst:564
msgid "" msgid ""
@ -936,16 +962,27 @@ msgid ""
"*encoding* and *errors* parameters which are interpreted just like those in :" "*encoding* and *errors* parameters which are interpreted just like those in :"
"meth:`str.encode` and :meth:`bytes.decode`." "meth:`str.encode` and :meth:`bytes.decode`."
msgstr "" msgstr ""
"La solution serait d'utiliser l'interface de décodage de bas-niveau pour "
"intercepter le cas des séquences d'encodage incomplètes. Ce travail "
"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` "
"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier "
"est dans un encodage spécifié et accepte les paramètres Unicode pour des "
"méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase."
"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :"
"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:"
"`bytes.decode`."
#: ../Doc/howto/unicode.rst:573 #: ../Doc/howto/unicode.rst:573
msgid "Reading Unicode from a file is therefore simple::" msgid "Reading Unicode from a file is therefore simple::"
msgstr "" msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::"
#: ../Doc/howto/unicode.rst:579 #: ../Doc/howto/unicode.rst:579
msgid "" msgid ""
"It's also possible to open files in update mode, allowing both reading and " "It's also possible to open files in update mode, allowing both reading and "
"writing::" "writing::"
msgstr "" msgstr ""
"Il est également possible d'ouvrir des fichiers en mode « mise à jour », "
"permettant à la fois la lecture et l'écriture ::"
#: ../Doc/howto/unicode.rst:587 #: ../Doc/howto/unicode.rst:587
msgid "" msgid ""
@ -959,6 +996,17 @@ msgid ""
"endian encodings, that specify one particular byte ordering and don't skip " "endian encodings, that specify one particular byte ordering and don't skip "
"the BOM." "the BOM."
msgstr "" msgstr ""
"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le "
"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour "
"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou "
"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin "
"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, "
"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un "
"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement "
"écrite comme premier caractère et sera silencieusement retirée lorsque le "
"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-"
"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, "
"qui spécifient un ordre d'octets donné et ne sautent pas la BOM."
#: ../Doc/howto/unicode.rst:596 #: ../Doc/howto/unicode.rst:596
msgid "" msgid ""
@ -968,10 +1016,15 @@ msgid ""
"reading such files, use the 'utf-8-sig' codec to automatically skip the mark " "reading such files, use the 'utf-8-sig' codec to automatically skip the mark "
"if present." "if present."
msgstr "" msgstr ""
"Dans certains cas, il est également d'usage d'utiliser une *BOM* au début "
"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne "
"dépend pas de l'ordre des octets. La marque annonce simplement que le "
"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec "
"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente."
#: ../Doc/howto/unicode.rst:603 #: ../Doc/howto/unicode.rst:603
msgid "Unicode filenames" msgid "Unicode filenames"
msgstr "" msgstr "Noms de fichiers Unicode"
#: ../Doc/howto/unicode.rst:605 #: ../Doc/howto/unicode.rst:605
msgid "" msgid ""
@ -984,6 +1037,15 @@ msgid ""
"if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you " "if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you "
"haven't, the default encoding is again UTF-8." "haven't, the default encoding is again UTF-8."
msgstr "" msgstr ""
"La plupart des systèmes d'exploitation couramment utilisés aujourd'hui "
"prennent en charge les noms de fichiers qui contiennent des caractères "
"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant "
"la chaîne Unicode en un encodage qui varie en fonction du système. "
"Aujourd'hui, Python converge vers l'utilisation d'UTF-8 : Python sous MacOS "
"utilise UTF-8 depuis plusieurs versions et Python 3.6 sous Windows est passé "
"à UTF-8 également. Sur les systèmes Unix, il n'y aura un encodage pour le "
"système de fichiers que si vous avez défini les variables d'environnement "
"``LANG`` ou ``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8."
#: ../Doc/howto/unicode.rst:615 #: ../Doc/howto/unicode.rst:615
msgid "" msgid ""
@ -993,12 +1055,20 @@ msgid ""
"writing, you can usually just provide the Unicode string as the filename, " "writing, you can usually just provide the Unicode string as the filename, "
"and it will be automatically converted to the right encoding for you::" "and it will be automatically converted to the right encoding for you::"
msgstr "" msgstr ""
"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser "
"sur votre système actuel, au cas où vous voudriez faire l'encodage "
"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. "
"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez "
"généralement simplement fournir la chaîne Unicode comme nom de fichier et "
"elle est automatiquement convertie à l'encodage qui convient ::"
#: ../Doc/howto/unicode.rst:625 #: ../Doc/howto/unicode.rst:625
msgid "" msgid ""
"Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
"Unicode filenames." "Unicode filenames."
msgstr "" msgstr ""
"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent "
"également les noms de fichiers Unicode."
#: ../Doc/howto/unicode.rst:628 #: ../Doc/howto/unicode.rst:628
msgid "" msgid ""
@ -1012,16 +1082,29 @@ msgid ""
"assuming the default filesystem encoding is UTF-8, running the following " "assuming the default filesystem encoding is UTF-8, running the following "
"program::" "program::"
msgstr "" msgstr ""
"La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève "
"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou "
"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :"
"func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin "
"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une "
"chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en "
"utilisant l'encodage du système de fichiers et une liste de chaînes Unicode "
"est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie "
"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que "
"l'encodage par défaut du système de fichiers est UTF-8, exécuter le "
"programme suivant ::"
#: ../Doc/howto/unicode.rst:646 #: ../Doc/howto/unicode.rst:646
msgid "will produce the following output:" msgid "will produce the following output:"
msgstr "" msgstr "produit la sortie suivante :"
#: ../Doc/howto/unicode.rst:654 #: ../Doc/howto/unicode.rst:654
msgid "" msgid ""
"The first list contains UTF-8-encoded filenames, and the second list " "The first list contains UTF-8-encoded filenames, and the second list "
"contains the Unicode versions." "contains the Unicode versions."
msgstr "" msgstr ""
"La première liste contient les noms de fichiers encodés en UTF-8 et la "
"seconde contient les versions Unicode."
#: ../Doc/howto/unicode.rst:657 #: ../Doc/howto/unicode.rst:657
msgid "" msgid ""
@ -1030,26 +1113,36 @@ msgid ""
"undecodable file names can be present; that's pretty much only Unix systems " "undecodable file names can be present; that's pretty much only Unix systems "
"now." "now."
msgstr "" msgstr ""
"Notez que, dans la plupart des cas, il convient de vous en tenir à "
"l'utilisation d'Unicode avec ces APIs. Les API d'octets ne devraient être "
"utilisées que sur les systèmes où des noms de fichiers non décodables "
"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix "
"maintenant."
#: ../Doc/howto/unicode.rst:664 #: ../Doc/howto/unicode.rst:664
msgid "Tips for Writing Unicode-aware Programs" msgid "Tips for Writing Unicode-aware Programs"
msgstr "" msgstr "Conseils pour écrire des programmes compatibles Unicode"
#: ../Doc/howto/unicode.rst:666 #: ../Doc/howto/unicode.rst:666
msgid "" msgid ""
"This section provides some suggestions on writing software that deals with " "This section provides some suggestions on writing software that deals with "
"Unicode." "Unicode."
msgstr "" msgstr ""
"Cette section fournit quelques suggestions sur l'écriture de logiciels qui "
"traitent de l'Unicode."
#: ../Doc/howto/unicode.rst:669 #: ../Doc/howto/unicode.rst:669
msgid "The most important tip is:" msgid "The most important tip is:"
msgstr "" msgstr "Le conseil le plus important est:"
#: ../Doc/howto/unicode.rst:671 #: ../Doc/howto/unicode.rst:671
msgid "" msgid ""
"Software should only work with Unicode strings internally, decoding the " "Software should only work with Unicode strings internally, decoding the "
"input data as soon as possible and encoding the output only at the end." "input data as soon as possible and encoding the output only at the end."
msgstr "" msgstr ""
"Il convient que le logiciel ne traite que des chaînes Unicode en interne, "
"décodant les données d'entrée dès que possible et encodant la sortie "
"uniquement à la fin."
#: ../Doc/howto/unicode.rst:674 #: ../Doc/howto/unicode.rst:674
msgid "" msgid ""
@ -1059,6 +1152,12 @@ msgid ""
"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " "or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be "
"raised." "raised."
msgstr "" msgstr ""
"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois "
"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences "
"de bogues dans votre programme augmentent partout où vous combinez les deux "
"différents types de chaînes. Il n'y a pas d'encodage ou de décodage "
"automatique : si vous faites par exemple ``str + octets``, une :exc:"
"`TypeError` est levée."
#: ../Doc/howto/unicode.rst:679 #: ../Doc/howto/unicode.rst:679
msgid "" msgid ""
@ -1071,10 +1170,21 @@ msgid ""
"true if the input data also specifies the encoding, since the attacker can " "true if the input data also specifies the encoding, since the attacker can "
"then choose a clever way to hide malicious text in the encoded bytestream." "then choose a clever way to hide malicious text in the encoded bytestream."
msgstr "" msgstr ""
"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une "
"autre source non fiable, une technique courante consiste à vérifier la "
"présence de caractères illégaux dans une chaîne de caractères avant de "
"l'utiliser pour générer une ligne de commande ou de la stocker dans une base "
"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les "
"données d'octets codés ; certains encodages peuvent avoir des propriétés "
"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement "
"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est "
"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors "
"choisir un moyen intelligent de cacher du texte malveillant dans le flux de "
"données encodé."
#: ../Doc/howto/unicode.rst:690 #: ../Doc/howto/unicode.rst:690
msgid "Converting Between File Encodings" msgid "Converting Between File Encodings"
msgstr "" msgstr "Conversion entre les encodages de fichiers"
#: ../Doc/howto/unicode.rst:692 #: ../Doc/howto/unicode.rst:692
msgid "" msgid ""
@ -1082,16 +1192,23 @@ msgid ""
"encodings, taking a stream that returns data in encoding #1 and behaving " "encodings, taking a stream that returns data in encoding #1 and behaving "
"like a stream returning data in encoding #2." "like a stream returning data in encoding #2."
msgstr "" msgstr ""
"La classe :class:`~codecs.StreamRecoder` peut convertir de manière "
"transparente entre les encodages : prenant un flux qui renvoie des données "
"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données "
"dans l'encodage #2."
#: ../Doc/howto/unicode.rst:696 #: ../Doc/howto/unicode.rst:696
msgid "" msgid ""
"For example, if you have an input file *f* that's in Latin-1, you can wrap " "For example, if you have an input file *f* that's in Latin-1, you can wrap "
"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" "it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::"
msgstr "" msgstr ""
"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous "
"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il "
"renvoie des octets encodés en UTF-8 ::"
#: ../Doc/howto/unicode.rst:710 #: ../Doc/howto/unicode.rst:710
msgid "Files in an Unknown Encoding" msgid "Files in an Unknown Encoding"
msgstr "" msgstr "Fichiers dans un encodage inconnu"
#: ../Doc/howto/unicode.rst:712 #: ../Doc/howto/unicode.rst:712
msgid "" msgid ""
@ -1100,6 +1217,11 @@ msgid ""
"to examine or modify the ASCII parts, you can open the file with the " "to examine or modify the ASCII parts, you can open the file with the "
"``surrogateescape`` error handler::" "``surrogateescape`` error handler::"
msgstr "" msgstr ""
"Vous avez besoin de modifier un fichier mais vous ne connaissez pas "
"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII "
"et que vous voulez seulement examiner ou modifier les parties ASCII, vous "
"pouvez ouvrir le fichier avec le gestionnaire d'erreurs "
"``surrogateescape`` ::"
#: ../Doc/howto/unicode.rst:726 #: ../Doc/howto/unicode.rst:726
msgid "" msgid ""
@ -1108,6 +1230,11 @@ msgid ""
"points will then turn back into the same bytes when the ``surrogateescape`` " "points will then turn back into the same bytes when the ``surrogateescape`` "
"error handler is used to encode the data and write it back out." "error handler is used to encode the data and write it back out."
msgstr "" msgstr ""
"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-"
"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U"
"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le "
"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les "
"données et les réécrire."
#: ../Doc/howto/unicode.rst:736 #: ../Doc/howto/unicode.rst:736
msgid "" msgid ""
@ -1115,6 +1242,10 @@ msgid ""
"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David " "video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
"Beazley, discusses text processing and binary data handling." "Beazley, discusses text processing and binary data handling."
msgstr "" msgstr ""
"Une partie de la conférence `Mastering Python 3 Input/Output <http://pyvideo."
"org/video/289/pycon-2010--mastering-python-3-i-o>`_ (ressource en anglais), "
"donnée lors de PyCon 2010 de David Beazley, parle du traitement de texte et "
"du traitement des données binaires."
#: ../Doc/howto/unicode.rst:740 #: ../Doc/howto/unicode.rst:740
msgid "" msgid ""
@ -1124,6 +1255,12 @@ msgid ""
"character encodings as well as how to internationalize and localize an " "character encodings as well as how to internationalize and localize an "
"application. These slides cover Python 2.x only." "application. These slides cover Python 2.x only."
msgstr "" msgstr ""
"Le `PDF du diaporama de la présentation de Marc-André Lemburg \"Writing "
"Unicodeaware Applications in Python\" <https://downloads.egenix.com/python/"
"LSM2005-Developing-Unicode-aware-applications-in-Python.pdf>`_ (ressource en "
"anglais) traite des questions d'encodage de caractères ainsi que de "
"l'internationalisation et de la localisation d'une application. Ces "
"diapositives ne couvrent que Python 2.x."
#: ../Doc/howto/unicode.rst:746 #: ../Doc/howto/unicode.rst:746
msgid "" msgid ""
@ -1131,6 +1268,10 @@ msgid ""
"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that " "unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
"discusses the internal Unicode representation in Python 3.3." "discusses the internal Unicode representation in Python 3.3."
msgstr "" msgstr ""
"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
"unicode-in-python>`_ (ressource en anglais) est une conférence PyCon 2013 "
"donnée par Benjamin Peterson qui traite de la représentation interne Unicode "
"en Python 3.3."
#: ../Doc/howto/unicode.rst:753 #: ../Doc/howto/unicode.rst:753
msgid "Acknowledgements" msgid "Acknowledgements"
@ -1142,6 +1283,9 @@ msgid ""
"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " "since been revised further by Alexander Belopolsky, Georg Brandl, Andrew "
"Kuchling, and Ezio Melotti." "Kuchling, and Ezio Melotti."
msgstr "" msgstr ""
"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a "
"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et "
"Ezio Melotti."
#: ../Doc/howto/unicode.rst:759 #: ../Doc/howto/unicode.rst:759
msgid "" msgid ""
@ -1150,6 +1294,11 @@ msgid ""
"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " "Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, "
"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." "Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman."
msgstr "" msgstr ""
"Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des "
"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, "
"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von "
"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham "
"Wideman."
#~ msgid "History of Character Codes" #~ msgid "History of Character Codes"
#~ msgstr "Histoire des codes de caractères" #~ msgstr "Histoire des codes de caractères"

View File

@ -2022,8 +2022,8 @@ msgid ""
"platform-independent." "platform-independent."
msgstr "" msgstr ""
"Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" "Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-"
"jacent, tout est effectué par Python lui même, et ainsi indépendant de la " "jacent, tout le traitement est effectué par Python lui même, et est ainsi "
"plateforme." "indépendant de la plateforme."
#: ../Doc/library/functions.rst:1098 #: ../Doc/library/functions.rst:1098
msgid "" msgid ""