@@ -882,14 +882,18 @@ msgstr ""
882882
883883#: ../Doc/howto/unicode.rst:537
884884msgid "Reading and Writing Unicode Data"
885- msgstr ""
885+ msgstr "Lecture et écriture de données Unicode "
886886
887887#: ../Doc/howto/unicode.rst:539
888888msgid ""
889889"Once you've written some code that works with Unicode data, the next problem "
890890"is input/output. How do you get Unicode strings into your program, and how "
891891"do you convert Unicode into a form suitable for storage or transmission?"
892892msgstr ""
893+ "Une fois que vous avez écrit du code qui fonctionne avec des données "
894+ "Unicode, le problème suivant est les entrées/sorties. Comment obtenir des "
895+ "chaînes Unicode dans votre programme, et comment convertir les chaînes "
896+ "Unicode dans une forme appropriée pour le stockage ou la transmission ?"
893897
894898#: ../Doc/howto/unicode.rst:543
895899msgid ""
@@ -899,6 +903,13 @@ msgid ""
899903"Unicode data, for example. Many relational databases also support Unicode-"
900904"valued columns and can return Unicode values from an SQL query."
901905msgstr ""
906+ "Il est possible que vous n'ayez rien à faire en fonction de vos sources "
907+ "d'entrée et de vos destinations de sortie ; vous devriez vérifier si les "
908+ "bibliothèques utilisées dans votre application supportent Unicode "
909+ "nativement. Par exemple, les analyseurs XML renvoient souvent des données "
910+ "Unicode. De nombreuses bases de données relationnelles prennent également en "
911+ "charge les colonnes encodées en Unicode et peuvent renvoyer des valeurs "
912+ "Unicode à partir d'une requête SQL."
902913
903914#: ../Doc/howto/unicode.rst:549
904915msgid ""
@@ -908,6 +919,11 @@ msgid ""
908919"bytes with ``bytes.decode(encoding)``. However, the manual approach is not "
909920"recommended."
910921msgstr ""
922+ "Les données Unicode sont généralement converties en un encodage particulier "
923+ "avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il "
924+ "est possible de faire tout le travail vous-même : ouvrir un fichier, lire un "
925+ "élément 8-bits, et convertir les octets avec ``bytes.decode(encoding)``. "
926+ "Cependant, l'approche manuelle n'est pas recommandée."
911927
912928#: ../Doc/howto/unicode.rst:554
913929msgid ""
@@ -922,6 +938,17 @@ msgid ""
922938"least a moment you'd need to have both the encoded string and its Unicode "
923939"version in memory.)"
924940msgstr ""
941+ "Un problème est la nature multi-octets des encodages ; un caractère Unicode "
942+ "peut être représenté par plusieurs octets. Si vous voulez lire le fichier en "
943+ "morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez "
944+ "écrire un code de gestion des erreurs pour détecter le cas où une partie "
945+ "seulement des octets codant un seul caractère Unicode sont lus à la fin d'un "
946+ "morceau. Une solution serait de lire le fichier entier en mémoire et "
947+ "d'effectuer le décodage, mais cela vous empêche de travailler avec des "
948+ "fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de "
949+ "2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque pour "
950+ "au moins un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et "
951+ "sa version Unicode en mémoire)."
925952
926953#: ../Doc/howto/unicode.rst:564
927954msgid ""
@@ -934,16 +961,27 @@ msgid ""
934961"*encoding* and *errors* parameters which are interpreted just like those in :"
935962"meth:`str.encode` and :meth:`bytes.decode`."
936963msgstr ""
964+ "La solution serait d'utiliser l'interface de décodage de bas-niveau pour "
965+ "intercepter le cas des séquences d'encodage incomplètes. Le travail "
966+ "d'implémenter cela a déjà été fait pour vous : la fonction native :func:"
967+ "`open` peut retourner un objet de type fichier qui suppose que le contenu du "
968+ "fichier est dans un encodage spécifié et accepte les paramètres Unicode pour "
969+ "des méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase."
970+ "write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :"
971+ "func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:"
972+ "`bytes.decode`."
937973
938974#: ../Doc/howto/unicode.rst:573
939975msgid "Reading Unicode from a file is therefore simple::"
940- msgstr ""
976+ msgstr "Lire de l'Unicode à partir d'un fichier est donc simple :: "
941977
942978#: ../Doc/howto/unicode.rst:579
943979msgid ""
944980"It's also possible to open files in update mode, allowing both reading and "
945981"writing::"
946982msgstr ""
983+ "Il est également possible d'ouvrir des fichiers en mode « mise à jour », "
984+ "permettant à la fois la lecture et l'écriture ::"
947985
948986#: ../Doc/howto/unicode.rst:587
949987msgid ""
@@ -957,6 +995,16 @@ msgid ""
957995"endian encodings, that specify one particular byte ordering and don't skip "
958996"the BOM."
959997msgstr ""
998+ "Le caractère Unicode ``U+FEFFF`` est utilisé comme une marque d'ordre "
999+ "d'octet (*byte-order mark* en anglais, *BOM*), et est souvent écrit comme le "
1000+ "premier caractère d'un fichier afin d'aider à l'auto-détection de l'ordre "
1001+ "des octets du fichier. Certains encodages, comme UTF-16, s'attendent à ce "
1002+ "qu'une BOM soit présente au début d'un fichier ; lorsqu'un tel encodage est "
1003+ "utilisé, la BOM sera automatiquement écrite comme premier caractère et sera "
1004+ "silencieusement retirée lorsque le fichier sera lu. Il existe des variantes "
1005+ "de ces encodages, comme ``utf-16-le`` et ``utf-16-be`` pour les encodages "
1006+ "little-endian et big-endian, qui spécifient un ordre d'octets donné et ne "
1007+ "sautent pas la BOM."
9601008
9611009#: ../Doc/howto/unicode.rst:596
9621010msgid ""
@@ -966,10 +1014,15 @@ msgid ""
9661014"reading such files, use the 'utf-8-sig' codec to automatically skip the mark "
9671015"if present."
9681016msgstr ""
1017+ "Dans certaines cas, il est également d'usage d'utiliser une *BOM* au début "
1018+ "des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne "
1019+ "dépend pas de l'ordre des octets. La marque annonce simplement que le "
1020+ "fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec "
1021+ "``utf-8-sig`` pour sauter automatiquement la marque si présente."
9691022
9701023#: ../Doc/howto/unicode.rst:603
9711024msgid "Unicode filenames"
972- msgstr ""
1025+ msgstr "Noms de fichiers Unicode "
9731026
9741027#: ../Doc/howto/unicode.rst:605
9751028msgid ""
@@ -982,6 +1035,15 @@ msgid ""
9821035"if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if you "
9831036"haven't, the default encoding is again UTF-8."
9841037msgstr ""
1038+ "La plupart des systèmes d'exploitation couramment utilisés aujourd'hui "
1039+ "prennent en charge les noms de fichiers qui contiennent des caractères "
1040+ "Unicode arbitraires. Habituellement, ceci est implémenté en convertissant "
1041+ "la chaîne Unicode en un encodage qui varie en fonction du système. "
1042+ "Aujourd'hui, Python converge vers l'utilisation d'UTF-8 : Python sous MacOS "
1043+ "a utilisé UTF-8 depuis plusieurs versions, et Python 3.6 est passé à UTF-8 "
1044+ "sous Windows également. Sur les systèmes Unix, il n'y aura un encodage du "
1045+ "système de fichiers que si vous avez défini les variables d'environnement "
1046+ "``LANG`` ou ``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8."
9851047
9861048#: ../Doc/howto/unicode.rst:615
9871049msgid ""
@@ -991,12 +1053,20 @@ msgid ""
9911053"writing, you can usually just provide the Unicode string as the filename, "
9921054"and it will be automatically converted to the right encoding for you::"
9931055msgstr ""
1056+ "La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser "
1057+ "sur votre système actuel, au cas où vous voudriez faire l'encodage "
1058+ "manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. "
1059+ "Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez "
1060+ "généralement simplement fournir la chaîne Unicode comme nom de fichier, et "
1061+ "il sera automatiquement converti à l'encodage qui convient ::"
9941062
9951063#: ../Doc/howto/unicode.rst:625
9961064msgid ""
9971065"Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
9981066"Unicode filenames."
9991067msgstr ""
1068+ "Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent "
1069+ "également les noms de fichiers Unicode."
10001070
10011071#: ../Doc/howto/unicode.rst:628
10021072msgid ""
@@ -1010,16 +1080,29 @@ msgid ""
10101080"assuming the default filesystem encoding is UTF-8, running the following "
10111081"program::"
10121082msgstr ""
1083+ "La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève "
1084+ "un problème : doit-elle renvoyer la version Unicode des noms de fichiers, ou "
1085+ "doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :"
1086+ "func:`os.listdir` peut faire les deux, selon que vous avez fourni le chemin "
1087+ "du répertoire en chaîne d'octets ou une chaîne Unicode. Si vous passez une "
1088+ "chaîne Unicode comme chemin d'accès, les noms de fichiers seront décodés en "
1089+ "utilisant l'encodage du système de fichiers et une liste de chaînes Unicode "
1090+ "sera renvoyée, tandis que passer un chemin d'accès en chaîne d'octets "
1091+ "retournera les noms de fichiers comme octets. Par exemple, en supposant que "
1092+ "l'encodage par défaut du système de fichiers est UTF-8, exécutez le "
1093+ "programme suivant: :"
10131094
10141095#: ../Doc/howto/unicode.rst:646
10151096msgid "will produce the following output:"
1016- msgstr ""
1097+ msgstr "produira la sortie suivante: "
10171098
10181099#: ../Doc/howto/unicode.rst:654
10191100msgid ""
10201101"The first list contains UTF-8-encoded filenames, and the second list "
10211102"contains the Unicode versions."
10221103msgstr ""
1104+ "La première liste contient les noms de fichiers encodés en UTF-8 et la "
1105+ "seconde contient les versions Unicode."
10231106
10241107#: ../Doc/howto/unicode.rst:657
10251108msgid ""
@@ -1028,26 +1111,36 @@ msgid ""
10281111"undecodable file names can be present; that's pretty much only Unix systems "
10291112"now."
10301113msgstr ""
1114+ "Notez que dans la plupart des cas, vous devriez vous en tenir à "
1115+ "l'utilisation d'Unicode avec ces APIs. Les API d'octets ne devraient être "
1116+ "utilisées que sur les systèmes où des noms de fichiers non décodables "
1117+ "peuvent être présents. C'est à peu près seulement le cas des systèmes Unix "
1118+ "maintenant."
10311119
10321120#: ../Doc/howto/unicode.rst:664
10331121msgid "Tips for Writing Unicode-aware Programs"
1034- msgstr ""
1122+ msgstr "Conseils pour écrire des programmes compatibles Unicode "
10351123
10361124#: ../Doc/howto/unicode.rst:666
10371125msgid ""
10381126"This section provides some suggestions on writing software that deals with "
10391127"Unicode."
10401128msgstr ""
1129+ "Cette section fournit quelques suggestions sur l'écriture de logiciels qui "
1130+ "traitent de l'Unicode."
10411131
10421132#: ../Doc/howto/unicode.rst:669
10431133msgid "The most important tip is:"
1044- msgstr ""
1134+ msgstr "Le conseil le plus important est: "
10451135
10461136#: ../Doc/howto/unicode.rst:671
10471137msgid ""
10481138"Software should only work with Unicode strings internally, decoding the "
10491139"input data as soon as possible and encoding the output only at the end."
10501140msgstr ""
1141+ "Le logiciel ne devrait fonctionner qu'avec des chaînes Unicode en interne, "
1142+ "décodant les données d'entrée dès que possible et encodant la sortie "
1143+ "uniquement à la fin."
10511144
10521145#: ../Doc/howto/unicode.rst:674
10531146msgid ""
@@ -1057,6 +1150,11 @@ msgid ""
10571150"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be "
10581151"raised."
10591152msgstr ""
1153+ "Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois "
1154+ "les chaînes Unicode et les chaînes d'octets, vous rendrez votre programme "
1155+ "vulnérable aux bogues partout où vous combinez les deux types de chaînes "
1156+ "différentes. Il n'y a pas d'encodage ou de décodage automatique : si vous "
1157+ "faites par exemple ``str + octets``, une :exc:`TypeError` sera levée."
10601158
10611159#: ../Doc/howto/unicode.rst:679
10621160msgid ""
@@ -1069,27 +1167,45 @@ msgid ""
10691167"true if the input data also specifies the encoding, since the attacker can "
10701168"then choose a clever way to hide malicious text in the encoded bytestream."
10711169msgstr ""
1170+ "Lors de l'utilisation de données provenant d'un navigateur Web ou d'une "
1171+ "autre source non fiable, une technique courante consiste à vérifier la "
1172+ "présence de caractères illégaux dans une chaîne de caractères avant de "
1173+ "l'utiliser dans une ligne de commande générée ou de la stocker dans une base "
1174+ "de données. Si vous faites cela, faites attention à vérifier la chaîne "
1175+ "décodée, pas les données d'octets codés ; certains encodages peuvent avoir "
1176+ "des propriétés intéressantes, comme ne pas être bijective ou ne pas être "
1177+ "entièrement compatibles ASCII. Ceci est particulièrement vrai si les "
1178+ "données d'entrée spécifient également l'encodage, puisque l'attaquant peut "
1179+ "alors choisir un moyen intelligent de cacher le texte malveillant dans le "
1180+ "flux de données encodé."
10721181
10731182#: ../Doc/howto/unicode.rst:690
10741183msgid "Converting Between File Encodings"
1075- msgstr ""
1184+ msgstr "Conversion entre les encodages de fichiers "
10761185
10771186#: ../Doc/howto/unicode.rst:692
10781187msgid ""
10791188"The :class:`~codecs.StreamRecoder` class can transparently convert between "
10801189"encodings, taking a stream that returns data in encoding #1 and behaving "
10811190"like a stream returning data in encoding #2."
10821191msgstr ""
1192+ "La classe :class:`~codecs.StreamRecoder` peut convertir de manière "
1193+ "transparente entre les encodages, en prenant un flux qui renvoie des données "
1194+ "dans l'encodage #1 et en se comportant comme un flux qui renvoie des données "
1195+ "dans l'encodage #2."
10831196
10841197#: ../Doc/howto/unicode.rst:696
10851198msgid ""
10861199"For example, if you have an input file *f* that's in Latin-1, you can wrap "
10871200"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::"
10881201msgstr ""
1202+ "Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous "
1203+ "pouvez l'encapsuler avec un :class:`~codecs.StreamRecoder` pour retourner "
1204+ "des octets encodés en UTF-8 ::"
10891205
10901206#: ../Doc/howto/unicode.rst:710
10911207msgid "Files in an Unknown Encoding"
1092- msgstr ""
1208+ msgstr "Fichiers dans un encodage inconnu "
10931209
10941210#: ../Doc/howto/unicode.rst:712
10951211msgid ""
@@ -1098,6 +1214,11 @@ msgid ""
10981214"to examine or modify the ASCII parts, you can open the file with the "
10991215"``surrogateescape`` error handler::"
11001216msgstr ""
1217+ "Que pouvez-vous faire si vous avez besoin de modifier un fichier, mais que "
1218+ "vous ne connaissez pas l'encodage du fichier ? Si vous savez que l'encodage "
1219+ "est compatible ASCII et que vous voulez seulement examiner ou modifier les "
1220+ "parties ASCII, vous pouvez ouvrir le fichier avec le gestionnaire d'erreurs "
1221+ "``surrogateescape`` ::"
11011222
11021223#: ../Doc/howto/unicode.rst:726
11031224msgid ""
@@ -1106,13 +1227,22 @@ msgid ""
11061227"points will then turn back into the same bytes when the ``surrogateescape`` "
11071228"error handler is used to encode the data and write it back out."
11081229msgstr ""
1230+ "Le gestionnaire d'erreurs ``surrogateescape`` décodera tous les octets non-"
1231+ "ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U"
1232+ "+DCFF``. Ces points de code redeviendront alors les mêmes octets lorsque le "
1233+ "gestionnaire d'erreurs ``surrogateescape`` sera utilisé pour encoder les "
1234+ "données et les réécrire."
11091235
11101236#: ../Doc/howto/unicode.rst:736
11111237msgid ""
11121238"One section of `Mastering Python 3 Input/Output <http://pyvideo.org/"
11131239"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
11141240"Beazley, discusses text processing and binary data handling."
11151241msgstr ""
1242+ "Une section de `Mastering Python 3 Input/Output <http://pyvideo.org/"
1243+ "video/289/pycon-2010--mastering-python-3-i-o>`_, une conférence PyCon 2010 "
1244+ "de David Beazley, parle du traitement de texte et du traitement des données "
1245+ "binaires."
11161246
11171247#: ../Doc/howto/unicode.rst:740
11181248msgid ""
@@ -1122,13 +1252,22 @@ msgid ""
11221252"character encodings as well as how to internationalize and localize an "
11231253"application. These slides cover Python 2.x only."
11241254msgstr ""
1255+ "Le `PDF du diaporama de la présentation de Marc-André Lemburg \" Writing "
1256+ "Unicodeaware Applications in Python\" <https://downloads.egenix.com/python/"
1257+ "LSM2005-Developing-Unicode-aware-applications-in-Python.pdf>`_ traite des "
1258+ "questions d'encodage de caractères ainsi que de l'internationalisation et de "
1259+ "la localisation d'une application. Ces diapositives ne couvrent que Python "
1260+ "2.x."
11251261
11261262#: ../Doc/howto/unicode.rst:746
11271263msgid ""
11281264"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
11291265"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
11301266"discusses the internal Unicode representation in Python 3.3."
11311267msgstr ""
1268+ "`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
1269+ "unicode-in-python>`_ est une conférence PyCon 2013 par Benjamin Peterson qui "
1270+ "traite de la représentation interne Unicode en Python 3.3."
11321271
11331272#: ../Doc/howto/unicode.rst:753
11341273msgid "Acknowledgements"
@@ -1140,6 +1279,9 @@ msgid ""
11401279"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew "
11411280"Kuchling, and Ezio Melotti."
11421281msgstr ""
1282+ "La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a "
1283+ "depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et "
1284+ "Ezio Melotti."
11431285
11441286#: ../Doc/howto/unicode.rst:759
11451287msgid ""
@@ -1148,6 +1290,11 @@ msgid ""
11481290"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, "
11491291"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman."
11501292msgstr ""
1293+ "Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des "
1294+ "suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, "
1295+ "Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von "
1296+ "Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham "
1297+ "Wideman."
11511298
11521299#~ msgid "History of Character Codes"
11531300#~ msgstr "Histoire des codes de caractères"
0 commit comments