10000 Howto Unicode : 3ème partie, suite et fin · python/python-docs-fr@a609b4b · GitHub
[go: up one dir, main page]

Skip to content

Commit a609b4b

Browse files
committed
Howto Unicode : 3ème partie, suite et fin
1 parent b9ef5d0 commit a609b4b

File tree

2 files changed

+157
-10
lines changed

2 files changed

+157
-10
lines changed

howto/unicode.po

Lines changed: 155 additions & 8 deletions
10000
Original file line numberDiff line numberDiff line change
@@ -882,14 +882,18 @@ msgstr ""
882882

883883
#: ../Doc/howto/unicode.rst:537
884884
msgid "Reading and Writing Unicode Data"
885-
msgstr ""
885+
msgstr "Lecture et écriture de données Unicode"
886886

887887
#: ../Doc/howto/unicode.rst:539
888888
msgid ""
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?"
892892
msgstr ""
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
895899
msgid ""
@@ -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."
901905
msgstr ""
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
904915
msgid ""
@@ -908,6 +919,11 @@ msgid ""
908919
"bytes with ``bytes.decode(encoding)``. However, the manual approach is not "
909920
"recommended."
910921
msgstr ""
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
913929
msgid ""
@@ -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.)"
924940
msgstr ""
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
927954
msgid ""
@@ -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`."
936963
msgstr ""
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
939975
msgid "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
943979
msgid ""
944980
"It's also possible to open files in update mode, allowing both reading and "
945981
"writing::"
946982
msgstr ""
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
949987
msgid ""
@@ -957,6 +995,16 @@ msgid ""
957995
"endian encodings, that specify one particular byte ordering and don't skip "
958996
"the BOM."
959997
msgstr ""
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
9621010
msgid ""
@@ -966,10 +1014,15 @@ msgid ""
9661014
"reading such files, use the 'utf-8-sig' codec to automatically skip the mark "
9671015
"if present."
9681016
msgstr ""
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
9711024
msgid "Unicode filenames"
972-
msgstr ""
1025+
msgstr "Noms de fichiers Unicode"
9731026

9741027
#: ../Doc/howto/unicode.rst:605
9751028
msgid ""
@@ -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."
9841037
msgstr ""
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
9871049
msgid ""
@@ -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::"
9931055
msgstr ""
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
9961064
msgid ""
9971065
"Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
9981066
"Unicode filenames."
9991067
msgstr ""
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
10021072
msgid ""
@@ -1010,16 +1080,29 @@ msgid ""
10101080
"assuming the default filesystem encoding is UTF-8, running the following "
10111081
"program::"
10121082
msgstr ""
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
10151096
msgid "will produce the following output:"
1016-
msgstr ""
1097+
msgstr "produira la sortie suivante:"
10171098

10181099
#: ../Doc/howto/unicode.rst:654
10191100
msgid ""
10201101
"The first list contains UTF-8-encoded filenames, and the second list "
10211102
"contains the Unicode versions."
10221103
msgstr ""
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
10251108
msgid ""
@@ -1028,26 +1111,36 @@ msgid ""
10281111
"undecodable file names can be present; that's pretty much only Unix systems "
10291112
"now."
10301113
msgstr ""
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
10331121
msgid "Tips for Writing Unicode-aware Programs"
1034-
msgstr ""
1122+
msgstr "Conseils pour écrire des programmes compatibles Unicode"
10351123

10361124
#: ../Doc/howto/unicode.rst:666
10371125
msgid ""
10381126
"This section provides some suggestions on writing software that deals with "
10391127
"Unicode."
10401128
msgstr ""
1129+
"Cette section fournit quelques suggestions sur l'écriture de logiciels qui "
1130+
"traitent de l'Unicode."
10411131

10421132
#: ../Doc/howto/unicode.rst:669
10431133
msgid "The most important tip is:"
1044-
msgstr ""
1134+
msgstr "Le conseil le plus important est:"
10451135

10461136
#: ../Doc/howto/unicode.rst:671
10471137
msgid ""
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."
10501140
msgstr ""
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
10531146
msgid ""
@@ -1057,6 +1150,11 @@ msgid ""
10571150
"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be "
10581151
"raised."
10591152
msgstr ""
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
10621160
msgid ""
@@ -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."
10711169
msgstr ""
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
10741183
msgid "Converting Between File Encodings"
1075-
msgstr ""
1184+
msgstr "Conversion entre les encodages de fichiers"
10761185

10771186
#: ../Doc/howto/unicode.rst:692
10781187
msgid ""
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."
10821191
msgstr ""
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
10851198
msgid ""
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::"
10881201
msgstr ""
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
10911207
msgid "Files in an Unknown Encoding"
1092-
msgstr ""
1208+
msgstr "Fichiers dans un encodage inconnu"
10931209

10941210
#: ../Doc/howto/unicode.rst:712
10951211
msgid ""
@@ -1098,6 +1214,11 @@ msgid ""
10981214
"to examine or modify the ASCII parts, you can open the file with the "
10991215
"``surrogateescape`` error handler::"
11001216
msgstr ""
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
11031224
msgid ""
@@ -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."
11081229
msgstr ""
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
11111237
msgid ""
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."
11151241
msgstr ""
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
11181248
msgid ""
@@ -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."
11241254
msgstr ""
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
11271263
msgid ""
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."
11311267
msgstr ""
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
11341273
msgid "Acknowledgements"
@@ -1140,6 +1279,9 @@ msgid ""
11401279
"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew "
11411280
"Kuchling, and Ezio Melotti."
11421281
msgstr ""
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
11451287
msgid ""
@@ -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."
11501292
msgstr ""
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"

library/functions.po

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1910,8 +1910,8 @@ msgid ""
19101910
"platform-independent."
19111911
msgstr ""
19121912
"Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-"
1913-
"jacent, tout est effectué par Python lui même, et ainsi indépendant de la "
1914-
"plateforme."
1913+
"jacent, tout le traitement est effectué par Python lui même, et est ainsi "
1914+
"indépendant de la plateforme."
19151915

19161916
#: ../Doc/library/functions.rst:1031
19171917
msgid ""

0 commit comments

Comments
 (0)
0