Uniformisation et simplification des chemins.

This commit is contained in:
Julien Palard 2020-07-20 10:45:25 +02:00
commit a5123415bb

View file

@ -15,19 +15,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/howto/argparse.rst:3
#: howto/argparse.rst:3
msgid "Argparse Tutorial"
msgstr "Tutoriel *argparse*"
#: ../Doc/howto/argparse.rst:0
#: howto/argparse.rst:0
msgid "author"
msgstr "auteur"
#: ../Doc/howto/argparse.rst:5
#: howto/argparse.rst:5
msgid "Tshepang Lekhonkhobe"
msgstr "Tshepang Lekhonkhobe"
#: ../Doc/howto/argparse.rst:9
#: howto/argparse.rst:9
msgid ""
"This tutorial is intended to be a gentle introduction to :mod:`argparse`, "
"the recommended command-line parsing module in the Python standard library."
@ -36,7 +36,7 @@ msgstr ""
"`argparse`, le module d'analyse de ligne de commande recommandé dans la "
"bibliothèque standard de Python."
#: ../Doc/howto/argparse.rst:14
#: howto/argparse.rst:14
msgid ""
"There are two other modules that fulfill the same task, namely :mod:`getopt` "
"(an equivalent for :c:func:`getopt` from the C language) and the deprecated :"
@ -48,11 +48,11 @@ msgstr ""
"obsolète. Il faut noter que :mod:`argparse` est basé sur :mod:`optparse` et "
"donc s'utilise de manière très similaire."
#: ../Doc/howto/argparse.rst:22
#: howto/argparse.rst:22
msgid "Concepts"
msgstr "Concepts"
#: ../Doc/howto/argparse.rst:24
#: howto/argparse.rst:24
msgid ""
"Let's show the sort of functionality that we are going to explore in this "
"introductory tutorial by making use of the :command:`ls` command:"
@ -60,11 +60,11 @@ msgstr ""
"Commençons par l'utilisation de la commande :command:`ls` pour voir le type "
"de fonctionnalité que nous allons étudier dans ce tutoriel d'introduction :"
#: ../Doc/howto/argparse.rst:46
#: howto/argparse.rst:46
msgid "A few concepts we can learn from the four commands:"
msgstr "Quelques concepts que l'on peut apprendre avec les quatre commandes :"
#: ../Doc/howto/argparse.rst:48
#: howto/argparse.rst:48
msgid ""
"The :command:`ls` command is useful when run without any options at all. It "
"defaults to displaying the contents of the current directory."
@ -72,7 +72,7 @@ msgstr ""
"La commande :command:`ls` est utile quand elle est exécutée sans aucun "
"paramètre. Elle affiche par défaut le contenu du dossier courant."
#: ../Doc/howto/argparse.rst:51
#: howto/argparse.rst:51
msgid ""
"If we want beyond what it provides by default, we tell it a bit more. In "
"this case, we want it to display a different directory, ``pypy``. What we "
@ -92,7 +92,7 @@ msgstr ""
"est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et "
"le second est *où vous voulez le copier*."
#: ../Doc/howto/argparse.rst:60
#: howto/argparse.rst:60
msgid ""
"Now, say we want to change behaviour of the program. In our example, we "
"display more info for each file instead of just showing the file names. The "
@ -102,7 +102,7 @@ msgstr ""
"agit. Dans notre exemple, on affiche plus d'information pour chaque ficher "
"que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif."
#: ../Doc/howto/argparse.rst:64
#: howto/argparse.rst:64
msgid ""
"That's a snippet of the help text. It's very useful in that you can come "
"across a program you have never used before, and can figure out how it works "
@ -112,25 +112,23 @@ msgstr ""
"sur un programme que l'on à jamais utilisé auparavant car on peut comprendre "
"son fonctionnement simplement en lisant l'aide associée."
#: ../Doc/howto/argparse.rst:70
#: howto/argparse.rst:70
msgid "The basics"
msgstr "Les bases"
#: ../Doc/howto/argparse.rst:72
#: howto/argparse.rst:72
msgid "Let us start with a very simple example which does (almost) nothing::"
msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::"
#: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186
#: ../Doc/howto/argparse.rst:207
#: howto/argparse.rst:186 howto/argparse.rst:207
msgid "Following is a result of running the code:"
msgstr "Ce qui suit est le résultat de l'exécution du code :"
#: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252
#: ../Doc/howto/argparse.rst:296
#: howto/argparse.rst:252 howto/argparse.rst:296
msgid "Here is what is happening:"
msgstr "Voilà ce qu'il se passe :"
#: ../Doc/howto/argparse.rst:97
#: howto/argparse.rst:97
msgid ""
"Running the script without any options results in nothing displayed to "
"stdout. Not so useful."
@ -138,7 +136,7 @@ msgstr ""
"Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur "
"la sortie d'erreur. Ce n'est pas très utile."
#: ../Doc/howto/argparse.rst:100
#: howto/argparse.rst:100
msgid ""
"The second one starts to display the usefulness of the :mod:`argparse` "
"module. We have done almost nothing, but already we get a nice help message."
@ -146,7 +144,7 @@ msgstr ""
"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a "
"quasiment rien fait mais on a déjà un beau message d'aide."
#: ../Doc/howto/argparse.rst:103
#: howto/argparse.rst:103
msgid ""
"The ``--help`` option, which can also be shortened to ``-h``, is the only "
"option we get for free (i.e. no need to specify it). Specifying anything "
@ -158,23 +156,23 @@ msgstr ""
"que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit "
"aussi un message utile, toujours gratuitement."
#: ../Doc/howto/argparse.rst:110
#: howto/argparse.rst:110
msgid "Introducing Positional arguments"
msgstr "Introduction aux arguments positionnels"
#: ../Doc/howto/argparse.rst:112
#: howto/argparse.rst:112
msgid "An example::"
msgstr "Un exemple ::"
#: ../Doc/howto/argparse.rst:120
#: howto/argparse.rst:120
msgid "And running the code:"
msgstr "On exécute le code :"
#: ../Doc/howto/argparse.rst:138
#: howto/argparse.rst:138
msgid "Here is what's happening:"
msgstr "Voilà ce qu'il se passe :"
#: ../Doc/howto/argparse.rst:140
#: howto/argparse.rst:140
msgid ""
"We've added the :meth:`add_argument` method, which is what we use to specify "
"which command-line options the program is willing to accept. In this case, "
@ -184,12 +182,12 @@ msgstr ""
"quels paramètre de lignes de commandes le programme peut accepter. Dans le "
"cas présent, je l'ai appelé ``echo`` pour que cela corresponde à sa fonction."
#: ../Doc/howto/argparse.rst:144
#: howto/argparse.rst:144
msgid "Calling our program now requires us to specify an option."
msgstr ""
"Utiliser le programme nécessite maintenant que l'on précise un paramètre."
#: ../Doc/howto/argparse.rst:146
#: howto/argparse.rst:146
msgid ""
"The :meth:`parse_args` method actually returns some data from the options "
"specified, in this case, ``echo``."
@ -197,7 +195,7 @@ msgstr ""
"La méthode :meth:`parse_args` renvoie en réalité certaines données des "
"paramètres précisés, dans le cas présent : ``echo``."
#: ../Doc/howto/argparse.rst:149
#: howto/argparse.rst:149
msgid ""
"The variable is some form of 'magic' that :mod:`argparse` performs for free "
"(i.e. no need to specify which variable that value is stored in). You will "
@ -209,7 +207,7 @@ msgstr ""
"est stockée). Vous aurez aussi remarqué que le nom est le même que "
"l'argument en chaîne de caractères donné à la méthode : ``echo``."
#: ../Doc/howto/argparse.rst:154
#: howto/argparse.rst:154
msgid ""
"Note however that, although the help display looks nice and all, it "
"currently is not as helpful as it can be. For example we see that we got "
@ -223,16 +221,16 @@ msgstr ""
"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un "
"peu plus utile ::"
#: ../Doc/howto/argparse.rst:165
#: howto/argparse.rst:165
msgid "And we get:"
msgstr "Et on obtient :"
#: ../Doc/howto/argparse.rst:178
#: howto/argparse.rst:178
msgid "Now, how about doing something even more useful::"
msgstr ""
"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::"
#: ../Doc/howto/argparse.rst:196
#: howto/argparse.rst:196
msgid ""
"That didn't go so well. That's because :mod:`argparse` treats the options we "
"give it as strings, unless we tell it otherwise. So, let's tell :mod:"
@ -243,7 +241,7 @@ msgstr ""
"ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter "
"cette entrée comme un entier ::"
#: ../Doc/howto/argparse.rst:217
#: howto/argparse.rst:217
msgid ""
"That went well. The program now even helpfully quits on bad illegal input "
"before proceeding."
@ -251,11 +249,11 @@ msgstr ""
"Cela a bien fonctionné. Maintenant le programme va même s'arrêter si "
"l'entrée n'est pas légale avant de procéder à l'exécution."
#: ../Doc/howto/argparse.rst:222
#: howto/argparse.rst:222
msgid "Introducing Optional arguments"
msgstr "Introduction aux arguments optionnels"
#: ../Doc/howto/argparse.rst:224
#: howto/argparse.rst:224
msgid ""
"So far we have been playing with positional arguments. Let us have a look on "
"how to add optional ones::"
@ -263,12 +261,11 @@ msgstr ""
"Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons "
"comment ajouter des paramètres optionnels ::"
#: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280
#: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430
#: howto/argparse.rst:280 howto/argparse.rst:430
msgid "And the output:"
msgstr "Et le résultat :"
#: ../Doc/howto/argparse.rst:254
#: howto/argparse.rst:254
msgid ""
"The program is written so as to display something when ``--verbosity`` is "
"specified and display nothing when not."
@ -276,7 +273,7 @@ msgstr ""
"Le programme est écrit de sorte qu'il n'affiche rien sauf si l'option ``--"
"verbosity`` est précisée."
#: ../Doc/howto/argparse.rst:257
#: howto/argparse.rst:257
msgid ""
"To show that the option is actually optional, there is no error when running "
"the program without it. Note that by default, if an optional argument isn't "
@ -290,11 +287,11 @@ msgstr ""
"verbosity`, prend la valeur ``None`` c'est pourquoi elle échoue le test de "
"vérité de l'assertion :keyword:`if`."
#: ../Doc/howto/argparse.rst:263
#: howto/argparse.rst:263
msgid "The help message is a bit different."
msgstr "Le message d'aide est quelque peu différent."
#: ../Doc/howto/argparse.rst:265
#: howto/argparse.rst:265
msgid ""
"When using the ``--verbosity`` option, one must also specify some value, any "
"value."
@ -302,7 +299,7 @@ msgstr ""
"Quand on utilise l'option ``--verbosity`` on doit aussi préciser une valeur, "
"n'importe laquelle."
#: ../Doc/howto/argparse.rst:268
#: howto/argparse.rst:268
msgid ""
"The above example accepts arbitrary integer values for ``--verbosity``, but "
"for our simple program, only two values are actually useful, ``True`` or "
@ -313,7 +310,7 @@ msgstr ""
"réellement utiles : ``True`` et ``False``. Modifions le code en accord avec "
"cela ::"
#: ../Doc/howto/argparse.rst:298
#: howto/argparse.rst:298
msgid ""
"The option is now more of a flag than something that requires a value. We "
"even changed the name of the option to match that idea. Note that we now "
@ -328,7 +325,7 @@ msgstr ""
"l'option est précisée la valeur ``True`` est assignée à :data:`args."
"verbose`. Ne rien préciser implique la valeur ``False``."
#: ../Doc/howto/argparse.rst:305
#: howto/argparse.rst:305
msgid ""
"It complains when you specify a value, in true spirit of what flags actually "
"are."
@ -336,15 +333,15 @@ msgstr ""
"Dans l'esprit de ce que sont vraiment les options, pas des paramètres, il se "
"plaint quand vous tentez de préciser une valeur."
#: ../Doc/howto/argparse.rst:308
#: howto/argparse.rst:308
msgid "Notice the different help text."
msgstr "Notez que l'aide est différente."
#: ../Doc/howto/argparse.rst:312
#: howto/argparse.rst:312
msgid "Short options"
msgstr "Les paramètres raccourcis"
#: ../Doc/howto/argparse.rst:314
#: howto/argparse.rst:314
msgid ""
"If you are familiar with command line usage, you will notice that I haven't "
"yet touched on the topic of short versions of the options. It's quite "
@ -354,35 +351,35 @@ msgstr ""
"dû remarquer que je n'ai pour l'instant rien dit au sujet des versions "
"raccourcies des paramètres. C'est très simple ::"
#: ../Doc/howto/argparse.rst:326
#: howto/argparse.rst:326
msgid "And here goes:"
msgstr "Et voilà :"
#: ../Doc/howto/argparse.rst:339
#: howto/argparse.rst:339
msgid "Note that the new ability is also reflected in the help text."
msgstr "Notez que la nouvelle option est aussi indiquée dans l'aide."
#: ../Doc/howto/argparse.rst:343
#: howto/argparse.rst:343
msgid "Combining Positional and Optional arguments"
msgstr "Combinaison d'arguments positionnels et optionnels"
#: ../Doc/howto/argparse.rst:345
#: howto/argparse.rst:345
msgid "Our program keeps growing in complexity::"
msgstr "Notre programme continue de croître en complexité ::"
#: ../Doc/howto/argparse.rst:360
#: howto/argparse.rst:360
msgid "And now the output:"
msgstr "Et voilà le résultat :"
#: ../Doc/howto/argparse.rst:374
#: howto/argparse.rst:374
msgid "We've brought back a positional argument, hence the complaint."
msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur."
#: ../Doc/howto/argparse.rst:376
#: howto/argparse.rst:376
msgid "Note that the order does not matter."
msgstr "Notez que l'ordre importe peu."
#: ../Doc/howto/argparse.rst:378
#: howto/argparse.rst:378
msgid ""
"How about we give this program of ours back the ability to have multiple "
"verbosity values, and actually get to use them::"
@ -390,7 +387,7 @@ msgstr ""
"Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs "
"niveaux de verbosité, et que celui-ci les prend en compte ::"
#: ../Doc/howto/argparse.rst:412
#: howto/argparse.rst:412
msgid ""
"These all look good except the last one, which exposes a bug in our program. "
"Let's fix it by restricting the values the ``--verbosity`` option can "
@ -400,7 +397,7 @@ msgstr ""
"bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` "
"accepte ::"
#: ../Doc/howto/argparse.rst:448
#: howto/argparse.rst:448
msgid ""
"Note that the change also reflects both in the error message as well as the "
"help string."
@ -408,7 +405,7 @@ msgstr ""
"Notez que ce changement est pris en compte à la fois dans le message "
"d'erreur et dans le texte d'aide."
#: ../Doc/howto/argparse.rst:451
#: howto/argparse.rst:451
msgid ""
"Now, let's use a different approach of playing with verbosity, which is "
"pretty common. It also matches the way the CPython executable handles its "
@ -419,7 +416,7 @@ msgstr ""
"CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie "
"de la commande ``python --help``) ::"
#: ../Doc/howto/argparse.rst:470
#: howto/argparse.rst:470
msgid ""
"We have introduced another action, \"count\", to count the number of "
"occurrences of a specific optional arguments:"
@ -427,7 +424,7 @@ msgstr ""
"Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre "
"doccurrences d'une argument optionnel en particulier :"
#: ../Doc/howto/argparse.rst:498
#: howto/argparse.rst:498
msgid ""
"Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the "
"previous version of our script. That should explain the complaint."
@ -436,11 +433,11 @@ msgstr ""
"\"store_true\"``) de la version précédente de notre script. Cela devrait "
"expliquer le message d'erreur."
#: ../Doc/howto/argparse.rst:501
#: howto/argparse.rst:501
msgid "It also behaves similar to \"store_true\" action."
msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``."
#: ../Doc/howto/argparse.rst:503
#: howto/argparse.rst:503
msgid ""
"Now here's a demonstration of what the \"count\" action gives. You've "
"probably seen this sort of usage before."
@ -448,7 +445,7 @@ msgstr ""
"Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. "
"Vous avez sûrement vu ce genre d'utilisation auparavant."
#: ../Doc/howto/argparse.rst:506
#: howto/argparse.rst:506
msgid ""
"And if you don't specify the ``-v`` flag, that flag is considered to have "
"``None`` value."
@ -456,7 +453,7 @@ msgstr ""
"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur "
"``None``."
#: ../Doc/howto/argparse.rst:509
#: howto/argparse.rst:509
msgid ""
"As should be expected, specifying the long form of the flag, we should get "
"the same output."
@ -464,7 +461,7 @@ msgstr ""
"Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait "
"obtenir la même sortie."
#: ../Doc/howto/argparse.rst:512
#: howto/argparse.rst:512
msgid ""
"Sadly, our help output isn't very informative on the new ability our script "
"has acquired, but that can always be fixed by improving the documentation "
@ -474,19 +471,19 @@ msgstr ""
"nouvelles possibilités de notre programme, mais cela peut toujours être "
"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)."
#: ../Doc/howto/argparse.rst:516
#: howto/argparse.rst:516
msgid "That last output exposes a bug in our program."
msgstr "La dernière sortie du programme montre que celui-ci contient un bogue."
#: ../Doc/howto/argparse.rst:519
#: howto/argparse.rst:519
msgid "Let's fix::"
msgstr "Corrigeons ::"
#: ../Doc/howto/argparse.rst:538
#: howto/argparse.rst:538
msgid "And this is what it gives:"
msgstr "Et c'est ce que ça donne :"
#: ../Doc/howto/argparse.rst:553
#: howto/argparse.rst:553
msgid ""
"First output went well, and fixes the bug we had before. That is, we want "
"any value >= 2 to be as verbose as possible."
@ -495,15 +492,15 @@ msgstr ""
"avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= "
"2 rende le programme aussi verbeux que possible."
#: ../Doc/howto/argparse.rst:556
#: howto/argparse.rst:556
msgid "Third output not so good."
msgstr "La troisième sortie de programme n'est pas si bien que ça."
#: ../Doc/howto/argparse.rst:558
#: howto/argparse.rst:558
msgid "Let's fix that bug::"
msgstr "Corrigeons ce bogue ::"
#: ../Doc/howto/argparse.rst:575
#: howto/argparse.rst:575
msgid ""
"We've just introduced yet another keyword, ``default``. We've set it to "
"``0`` in order to make it comparable to the other int values. Remember that "
@ -517,11 +514,11 @@ msgstr ""
"il sera définit à ``None``, et ne pourra pas être comparé à une valeur de "
"type entier (une erreur :exc:`TypeError` serait alors levée)."
#: ../Doc/howto/argparse.rst:582
#: howto/argparse.rst:582
msgid "And:"
msgstr "Et :"
#: ../Doc/howto/argparse.rst:589
#: howto/argparse.rst:589
msgid ""
"You can go quite far just with what we've learned so far, and we have only "
"scratched the surface. The :mod:`argparse` module is very powerful, and "
@ -532,11 +529,11 @@ msgstr ""
"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce "
"tutoriel."
#: ../Doc/howto/argparse.rst:596
#: howto/argparse.rst:596
msgid "Getting a little more advanced"
msgstr "Aller un peu plus loin"
#: ../Doc/howto/argparse.rst:598
#: howto/argparse.rst:598
msgid ""
"What if we wanted to expand our tiny program to perform other powers, not "
"just squares::"
@ -544,11 +541,11 @@ msgstr ""
"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre "
"capable de calculer d'autres puissances, et pas seulement des carrés ::"
#: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653
#: howto/argparse.rst:653
msgid "Output:"
msgstr "Sortie :"
#: ../Doc/howto/argparse.rst:636
#: howto/argparse.rst:636
msgid ""
"Notice that so far we've been using verbosity level to *change* the text "
"that gets displayed. The following example instead uses verbosity level to "
@ -558,11 +555,11 @@ msgstr ""
"pour *changer* le texte qui est affiché. L'exemple suivant au contraire "
"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::"
#: ../Doc/howto/argparse.rst:667
#: howto/argparse.rst:667
msgid "Conflicting options"
msgstr "Paramètres en conflit"
#: ../Doc/howto/argparse.rst:669
#: howto/argparse.rst:669
msgid ""
"So far, we have been working with two methods of an :class:`argparse."
"ArgumentParser` instance. Let's introduce a third one, :meth:"
@ -579,7 +576,7 @@ msgstr ""
"introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--"
"verbose`` ::"
#: ../Doc/howto/argparse.rst:695
#: howto/argparse.rst:695
msgid ""
"Our program is now simpler, and we've lost some functionality for the sake "
"of demonstration. Anyways, here's the output:"
@ -588,7 +585,7 @@ msgstr ""
"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie "
"du programme :"
#: ../Doc/howto/argparse.rst:713
#: howto/argparse.rst:713
msgid ""
"That should be easy to follow. I've added that last output so you can see "
"the sort of flexibility you get, i.e. mixing long form options with short "
@ -598,7 +595,7 @@ msgstr ""
"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par "
"exemple pour faire un mélange entre des paramètres courts et longs."
#: ../Doc/howto/argparse.rst:717
#: howto/argparse.rst:717
msgid ""
"Before we conclude, you probably want to tell your users the main purpose of "
"your program, just in case they don't know::"
@ -607,7 +604,7 @@ msgstr ""
"le but principal de votre programme, juste dans le cas ou ils ne le "
"sauraient pas ::"
#: ../Doc/howto/argparse.rst:738
#: howto/argparse.rst:738
msgid ""
"Note that slight difference in the usage text. Note the ``[-v | -q]``, which "
"tells us that we can either use ``-v`` or ``-q``, but not both at the same "
@ -617,11 +614,11 @@ msgstr ""
"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas "
"les deux ensemble :"
#: ../Doc/howto/argparse.rst:760
#: howto/argparse.rst:760
msgid "Conclusion"
msgstr "Conclusion"
#: ../Doc/howto/argparse.rst:762
#: howto/argparse.rst:762
msgid ""
"The :mod:`argparse` module offers a lot more than shown here. Its docs are "
"quite detailed and thorough, and full of examples. Having gone through this "

File diff suppressed because it is too large Load diff

View file

@ -14,30 +14,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.3\n"
#: ../Doc/howto/cporting.rst:7
#: howto/cporting.rst:7
msgid "Porting Extension Modules to Python 3"
msgstr "Portage des modules d'extension vers Python 3"
#: ../Doc/howto/cporting.rst:9
#: howto/cporting.rst:9
msgid ""
"We recommend the following resources for porting extension modules to Python "
"3:"
msgstr ""
#: ../Doc/howto/cporting.rst:11
#: howto/cporting.rst:11
msgid ""
"The `Migrating C extensions`_ chapter from *Supporting Python 3: An in-depth "
"guide*, a book on moving from Python 2 to Python 3 in general, guides the "
"reader through porting an extension module."
msgstr ""
#: ../Doc/howto/cporting.rst:15
#: howto/cporting.rst:15
msgid ""
"The `Porting guide`_ from the *py3c* project provides opinionated "
"suggestions with supporting code."
msgstr ""
#: ../Doc/howto/cporting.rst:17
#: howto/cporting.rst:17
msgid ""
"The `Cython`_ and `CFFI`_ libraries offer abstractions over Python's C API. "
"Extensions generally need to be re-written to use one of them, but the "

View file

@ -14,41 +14,41 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../Doc/howto/curses.rst:5
#: howto/curses.rst:5
msgid "Curses Programming with Python"
msgstr ""
#: ../Doc/howto/curses.rst:0
#: howto/curses.rst:0
msgid "Author"
msgstr "Auteur"
#: ../Doc/howto/curses.rst:7
#: howto/curses.rst:7
msgid "A.M. Kuchling, Eric S. Raymond"
msgstr ""
#: ../Doc/howto/curses.rst:0
#: howto/curses.rst:0
msgid "Release"
msgstr "Version"
#: ../Doc/howto/curses.rst:8
#: howto/curses.rst:8
msgid "2.04"
msgstr ""
#: ../Doc/howto/curses.rst:None
#: howto/curses.rst:None
msgid "Abstract"
msgstr "Résumé"
#: ../Doc/howto/curses.rst:13
#: howto/curses.rst:13
msgid ""
"This document describes how to use the :mod:`curses` extension module to "
"control text-mode displays."
msgstr ""
#: ../Doc/howto/curses.rst:18
#: howto/curses.rst:18
msgid "What is curses?"
msgstr ""
#: ../Doc/howto/curses.rst:20
#: howto/curses.rst:20
msgid ""
"The curses library supplies a terminal-independent screen-painting and "
"keyboard-handling facility for text-based terminals; such terminals include "
@ -59,7 +59,7 @@ msgid ""
"own minor quirks."
msgstr ""
#: ../Doc/howto/curses.rst:28
#: howto/curses.rst:28
msgid ""
"In a world of graphical displays, one might ask \"why bother\"? It's true "
"that character-cell display terminals are an obsolete technology, but there "
@ -69,7 +69,7 @@ msgid ""
"configurators that may have to run before any graphical support is available."
msgstr ""
#: ../Doc/howto/curses.rst:36
#: howto/curses.rst:36
msgid ""
"The curses library provides fairly basic functionality, providing the "
"programmer with an abstraction of a display containing multiple non-"
@ -82,7 +82,7 @@ msgid ""
"project/urwid/>`_."
msgstr ""
#: ../Doc/howto/curses.rst:46
#: howto/curses.rst:46
msgid ""
"The curses library was originally written for BSD Unix; the later System V "
"versions of Unix from AT&T added many enhancements and new functions. BSD "
@ -95,7 +95,7 @@ msgid ""
"everything, though."
msgstr ""
#: ../Doc/howto/curses.rst:56
#: howto/curses.rst:56
msgid ""
"The Windows version of Python doesn't include the :mod:`curses` module. A "
"ported version called `UniCurses <https://pypi.org/project/UniCurses>`_ is "
@ -105,11 +105,11 @@ msgid ""
"for mouse and keyboard input."
msgstr ""
#: ../Doc/howto/curses.rst:66
#: howto/curses.rst:66
msgid "The Python curses module"
msgstr ""
#: ../Doc/howto/curses.rst:68
#: howto/curses.rst:68
msgid ""
"The Python module is a fairly simple wrapper over the C functions provided "
"by curses; if you're already familiar with curses programming in C, it's "
@ -120,7 +120,7 @@ msgid ""
"this covered in more detail later."
msgstr ""
#: ../Doc/howto/curses.rst:76
#: howto/curses.rst:76
msgid ""
"This HOWTO is an introduction to writing text-mode programs with curses and "
"Python. It doesn't attempt to be a complete guide to the curses API; for "
@ -128,11 +128,11 @@ msgid ""
"pages for ncurses. It will, however, give you the basic ideas."
msgstr ""
#: ../Doc/howto/curses.rst:83
#: howto/curses.rst:83
msgid "Starting and ending a curses application"
msgstr ""
#: ../Doc/howto/curses.rst:85
#: howto/curses.rst:85
msgid ""
"Before doing anything, curses must be initialized. This is done by calling "
"the :func:`~curses.initscr` function, which will determine the terminal "
@ -142,21 +142,21 @@ msgid ""
"after the name of the corresponding C variable. ::"
msgstr ""
#: ../Doc/howto/curses.rst:96
#: howto/curses.rst:96
msgid ""
"Usually curses applications turn off automatic echoing of keys to the "
"screen, in order to be able to read keys and only display them under certain "
"circumstances. This requires calling the :func:`~curses.noecho` function. ::"
msgstr ""
#: ../Doc/howto/curses.rst:103
#: howto/curses.rst:103
msgid ""
"Applications will also commonly need to react to keys instantly, without "
"requiring the Enter key to be pressed; this is called cbreak mode, as "
"opposed to the usual buffered input mode. ::"
msgstr ""
#: ../Doc/howto/curses.rst:109
#: howto/curses.rst:109
msgid ""
"Terminals usually return special keys, such as the cursor keys or navigation "
"keys such as Page Up and Home, as a multibyte escape sequence. While you "
@ -166,20 +166,20 @@ msgid ""
"keypad mode. ::"
msgstr ""
#: ../Doc/howto/curses.rst:118
#: howto/curses.rst:118
msgid ""
"Terminating a curses application is much easier than starting one. You'll "
"need to call::"
msgstr ""
#: ../Doc/howto/curses.rst:125
#: howto/curses.rst:125
msgid ""
"to reverse the curses-friendly terminal settings. Then call the :func:"
"`~curses.endwin` function to restore the terminal to its original operating "
"mode. ::"
msgstr ""
#: ../Doc/howto/curses.rst:131
#: howto/curses.rst:131
msgid ""
"A common problem when debugging a curses application is to get your terminal "
"messed up when the application dies without restoring the terminal to its "
@ -188,13 +188,13 @@ msgid ""
"you type them, for example, which makes using the shell difficult."
msgstr ""
#: ../Doc/howto/curses.rst:137
#: howto/curses.rst:137
msgid ""
"In Python you can avoid these complications and make debugging much easier "
"by importing the :func:`curses.wrapper` function and using it like this::"
msgstr ""
#: ../Doc/howto/curses.rst:156
#: howto/curses.rst:156
msgid ""
"The :func:`~curses.wrapper` function takes a callable object and does the "
"initializations described above, also initializing colors if color support "
@ -207,18 +207,18 @@ msgid ""
"and traceback."
msgstr ""
#: ../Doc/howto/curses.rst:168
#: howto/curses.rst:168
msgid "Windows and Pads"
msgstr ""
#: ../Doc/howto/curses.rst:170
#: howto/curses.rst:170
msgid ""
"Windows are the basic abstraction in curses. A window object represents a "
"rectangular area of the screen, and supports methods to display text, erase "
"it, allow the user to input strings, and so forth."
msgstr ""
#: ../Doc/howto/curses.rst:174
#: howto/curses.rst:174
msgid ""
"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a "
"window object that covers the entire screen. Many programs may need only "
@ -228,7 +228,7 @@ msgid ""
"window object. ::"
msgstr ""
#: ../Doc/howto/curses.rst:185
#: howto/curses.rst:185
msgid ""
"Note that the coordinate system used in curses is unusual. Coordinates are "
"always passed in the order *y,x*, and the top-left corner of a window is "
@ -238,7 +238,7 @@ msgid ""
"curses since it was first written, and it's too late to change things now."
msgstr ""
#: ../Doc/howto/curses.rst:193
#: howto/curses.rst:193
msgid ""
"Your application can determine the size of the screen by using the :data:"
"`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* "
@ -246,14 +246,14 @@ msgid ""
"- 1, curses.COLS - 1)``."
msgstr ""
#: ../Doc/howto/curses.rst:198
#: howto/curses.rst:198
msgid ""
"When you call a method to display or erase text, the effect doesn't "
"immediately show up on the display. Instead you must call the :meth:"
"`~curses.window.refresh` method of window objects to update the screen."
msgstr ""
#: ../Doc/howto/curses.rst:203
#: howto/curses.rst:203
msgid ""
"This is because curses was originally written with slow 300-baud terminal "
"connections in mind; with these terminals, minimizing the time required to "
@ -264,7 +264,7 @@ msgid ""
"because they're never visible."
msgstr ""
#: ../Doc/howto/curses.rst:212
#: howto/curses.rst:212
msgid ""
"In practice, explicitly telling curses to redraw a window doesn't really "
"complicate programming with curses much. Most programs go into a flurry of "
@ -274,7 +274,7 @@ msgid ""
"refresh()`` or the :meth:`refresh` method of some other relevant window."
msgstr ""
#: ../Doc/howto/curses.rst:220
#: howto/curses.rst:220
msgid ""
"A pad is a special case of a window; it can be larger than the actual "
"display screen, and only a portion of the pad displayed at a time. Creating "
@ -283,7 +283,7 @@ msgid ""
"will be displayed. ::"
msgstr ""
#: ../Doc/howto/curses.rst:241
#: howto/curses.rst:241
msgid ""
"The :meth:`refresh` call displays a section of the pad in the rectangle "
"extending from coordinate (5,5) to coordinate (20,75) on the screen; the "
@ -292,36 +292,36 @@ msgid ""
"the same methods."
msgstr ""
#: ../Doc/howto/curses.rst:247
#: howto/curses.rst:247
msgid ""
"If you have multiple windows and pads on screen there is a more efficient "
"way to update the screen and prevent annoying screen flicker as each part of "
"the screen gets updated. :meth:`refresh` actually does two things:"
msgstr ""
#: ../Doc/howto/curses.rst:252
#: howto/curses.rst:252
msgid ""
"Calls the :meth:`~curses.window.noutrefresh` method of each window to update "
"an underlying data structure representing the desired state of the screen."
msgstr ""
#: ../Doc/howto/curses.rst:255
#: howto/curses.rst:255
msgid ""
"Calls the function :func:`~curses.doupdate` function to change the physical "
"screen to match the desired state recorded in the data structure."
msgstr ""
#: ../Doc/howto/curses.rst:258
#: howto/curses.rst:258
msgid ""
"Instead you can call :meth:`noutrefresh` on a number of windows to update "
"the data structure, and then call :func:`doupdate` to update the screen."
msgstr ""
#: ../Doc/howto/curses.rst:264
#: howto/curses.rst:264
msgid "Displaying Text"
msgstr ""
#: ../Doc/howto/curses.rst:266
#: howto/curses.rst:266
msgid ""
"From a C programmer's point of view, curses may sometimes look like a twisty "
"maze of functions, all subtly different. For example, :c:func:`addstr` "
@ -332,7 +332,7 @@ msgid ""
"func:`mvwaddstr` allows specifying both a window and a coordinate."
msgstr ""
#: ../Doc/howto/curses.rst:275
#: howto/curses.rst:275
msgid ""
"Fortunately the Python interface hides all these details. ``stdscr`` is a "
"window object like any other, and methods such as :meth:`~curses.window."
@ -340,58 +340,58 @@ msgid ""
"forms."
msgstr ""
#: ../Doc/howto/curses.rst:281
#: howto/curses.rst:281
msgid "Form"
msgstr ""
#: ../Doc/howto/curses.rst:281 ../Doc/howto/curses.rst:350
#: howto/curses.rst:350
msgid "Description"
msgstr "Description"
#: ../Doc/howto/curses.rst:283
#: howto/curses.rst:283
msgid "*str* or *ch*"
msgstr ""
#: ../Doc/howto/curses.rst:283
#: howto/curses.rst:283
msgid "Display the string *str* or character *ch* at the current position"
msgstr ""
#: ../Doc/howto/curses.rst:286
#: howto/curses.rst:286
msgid "*str* or *ch*, *attr*"
msgstr ""
#: ../Doc/howto/curses.rst:286
#: howto/curses.rst:286
msgid ""
"Display the string *str* or character *ch*, using attribute *attr* at the "
"current position"
msgstr ""
#: ../Doc/howto/curses.rst:290
#: howto/curses.rst:290
msgid "*y*, *x*, *str* or *ch*"
msgstr ""
#: ../Doc/howto/curses.rst:290
#: howto/curses.rst:290
msgid "Move to position *y,x* within the window, and display *str* or *ch*"
msgstr ""
#: ../Doc/howto/curses.rst:293
#: howto/curses.rst:293
msgid "*y*, *x*, *str* or *ch*, *attr*"
msgstr ""
#: ../Doc/howto/curses.rst:293
#: howto/curses.rst:293
msgid ""
"Move to position *y,x* within the window, and display *str* or *ch*, using "
"attribute *attr*"
msgstr ""
#: ../Doc/howto/curses.rst:297
#: howto/curses.rst:297
msgid ""
"Attributes allow displaying text in highlighted forms such as boldface, "
"underline, reverse code, or in color. They'll be explained in more detail "
"in the next subsection."
msgstr ""
#: ../Doc/howto/curses.rst:302
#: howto/curses.rst:302
msgid ""
"The :meth:`~curses.window.addstr` method takes a Python string or bytestring "
"as the value to be displayed. The contents of bytestrings are sent to the "
@ -400,13 +400,13 @@ msgid ""
"encoding as returned by :func:`locale.getpreferredencoding`."
msgstr ""
#: ../Doc/howto/curses.rst:309
#: howto/curses.rst:309
msgid ""
"The :meth:`~curses.window.addch` methods take a character, which can be "
"either a string of length 1, a bytestring of length 1, or an integer."
msgstr ""
#: ../Doc/howto/curses.rst:312
#: howto/curses.rst:312
msgid ""
"Constants are provided for extension characters; these constants are "
"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- "
@ -414,7 +414,7 @@ msgid ""
"for drawing borders). You can also use the appropriate Unicode character."
msgstr ""
#: ../Doc/howto/curses.rst:318
#: howto/curses.rst:318
msgid ""
"Windows remember where the cursor was left after the last operation, so if "
"you leave out the *y,x* coordinates, the string or character will be "
@ -425,7 +425,7 @@ msgid ""
"cursor blinking at some apparently random location."
msgstr ""
#: ../Doc/howto/curses.rst:326
#: howto/curses.rst:326
msgid ""
"If your application doesn't need a blinking cursor at all, you can call "
"``curs_set(False)`` to make it invisible. For compatibility with older "
@ -435,11 +435,11 @@ msgid ""
"leaving it in odd locations."
msgstr ""
#: ../Doc/howto/curses.rst:335
#: howto/curses.rst:335
msgid "Attributes and Color"
msgstr ""
#: ../Doc/howto/curses.rst:337
#: howto/curses.rst:337
msgid ""
"Characters can be displayed in different ways. Status lines in a text-based "
"application are commonly shown in reverse video, or a text viewer may need "
@ -447,7 +447,7 @@ msgid ""
"an attribute for each cell on the screen."
msgstr ""
#: ../Doc/howto/curses.rst:342
#: howto/curses.rst:342
msgid ""
"An attribute is an integer, each bit representing a different attribute. "
"You can try to display text with multiple attribute bits set, but curses "
@ -457,72 +457,72 @@ msgid ""
"attributes, listed here."
msgstr ""
#: ../Doc/howto/curses.rst:350
#: howto/curses.rst:350
msgid "Attribute"
msgstr "Attribut"
#: ../Doc/howto/curses.rst:352
#: howto/curses.rst:352
msgid ":const:`A_BLINK`"
msgstr ""
#: ../Doc/howto/curses.rst:352
#: howto/curses.rst:352
msgid "Blinking text"
msgstr ""
#: ../Doc/howto/curses.rst:354
#: howto/curses.rst:354
msgid ":const:`A_BOLD`"
msgstr ""
#: ../Doc/howto/curses.rst:354
#: howto/curses.rst:354
msgid "Extra bright or bold text"
msgstr ""
#: ../Doc/howto/curses.rst:356
#: howto/curses.rst:356
msgid ":const:`A_DIM`"
msgstr ""
#: ../Doc/howto/curses.rst:356
#: howto/curses.rst:356
msgid "Half bright text"
msgstr ""
#: ../Doc/howto/curses.rst:358
#: howto/curses.rst:358
msgid ":const:`A_REVERSE`"
msgstr ""
#: ../Doc/howto/curses.rst:358
#: howto/curses.rst:358
msgid "Reverse-video text"
msgstr ""
#: ../Doc/howto/curses.rst:360
#: howto/curses.rst:360
msgid ":const:`A_STANDOUT`"
msgstr ""
#: ../Doc/howto/curses.rst:360
#: howto/curses.rst:360
msgid "The best highlighting mode available"
msgstr ""
#: ../Doc/howto/curses.rst:362
#: howto/curses.rst:362
msgid ":const:`A_UNDERLINE`"
msgstr ""
#: ../Doc/howto/curses.rst:362
#: howto/curses.rst:362
msgid "Underlined text"
msgstr ""
#: ../Doc/howto/curses.rst:365
#: howto/curses.rst:365
msgid ""
"So, to display a reverse-video status line on the top line of the screen, "
"you could code::"
msgstr ""
#: ../Doc/howto/curses.rst:372
#: howto/curses.rst:372
msgid ""
"The curses library also supports color on those terminals that provide it. "
"The most common such terminal is probably the Linux console, followed by "
"color xterms."
msgstr ""
#: ../Doc/howto/curses.rst:376
#: howto/curses.rst:376
msgid ""
"To use color, you must call the :func:`~curses.start_color` function soon "
"after calling :func:`~curses.initscr`, to initialize the default color set "
@ -534,7 +534,7 @@ msgid ""
"for the sake of these functions.)"
msgstr ""
#: ../Doc/howto/curses.rst:386
#: howto/curses.rst:386
msgid ""
"The curses library maintains a finite number of color pairs, containing a "
"foreground (or text) color and a background color. You can get the "
@ -544,11 +544,11 @@ msgid ""
"work on all terminals."
msgstr ""
#: ../Doc/howto/curses.rst:393
#: howto/curses.rst:393
msgid "An example, which displays a line of text using color pair 1::"
msgstr ""
#: ../Doc/howto/curses.rst:398
#: howto/curses.rst:398
msgid ""
"As I said before, a color pair consists of a foreground and background "
"color. The ``init_pair(n, f, b)`` function changes the definition of color "
@ -556,7 +556,7 @@ msgid ""
"hard-wired to white on black, and cannot be changed."
msgstr ""
#: ../Doc/howto/curses.rst:403
#: howto/curses.rst:403
msgid ""
"Colors are numbered, and :func:`start_color` initializes 8 basic colors when "
"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:"
@ -565,20 +565,20 @@ msgid ""
"const:`curses.COLOR_RED`, and so forth."
msgstr ""
#: ../Doc/howto/curses.rst:409
#: howto/curses.rst:409
msgid ""
"Let's put all this together. To change color 1 to red text on a white "
"background, you would call::"
msgstr ""
#: ../Doc/howto/curses.rst:414
#: howto/curses.rst:414
msgid ""
"When you change a color pair, any text already displayed using that color "
"pair will change to the new colors. You can also display new text in this "
"color with::"
msgstr ""
#: ../Doc/howto/curses.rst:420
#: howto/curses.rst:420
msgid ""
"Very fancy terminals can change the definitions of the actual colors to a "
"given RGB value. This lets you change color 1, which is usually red, to "
@ -590,11 +590,11 @@ msgid ""
"your system's man pages for more information."
msgstr ""
#: ../Doc/howto/curses.rst:431
#: howto/curses.rst:431
msgid "User Input"
msgstr ""
#: ../Doc/howto/curses.rst:433
#: howto/curses.rst:433
msgid ""
"The C curses library offers only very simple input mechanisms. Python's :mod:"
"`curses` module adds a basic text-input widget. (Other libraries such as "
@ -602,11 +602,11 @@ msgid ""
"of widgets.)"
msgstr ""
#: ../Doc/howto/curses.rst:438
#: howto/curses.rst:438
msgid "There are two methods for getting input from a window:"
msgstr ""
#: ../Doc/howto/curses.rst:440
#: howto/curses.rst:440
msgid ""
":meth:`~curses.window.getch` refreshes the screen and then waits for the "
"user to hit a key, displaying the key if :func:`~curses.echo` has been "
@ -614,7 +614,7 @@ msgid ""
"should be moved before pausing."
msgstr ""
#: ../Doc/howto/curses.rst:445
#: howto/curses.rst:445
msgid ""
":meth:`~curses.window.getkey` does the same thing but converts the integer "
"to a string. Individual characters are returned as 1-character strings, and "
@ -622,7 +622,7 @@ msgid ""
"name such as ``KEY_UP`` or ``^G``."
msgstr ""
#: ../Doc/howto/curses.rst:450
#: howto/curses.rst:450
msgid ""
"It's possible to not wait for the user using the :meth:`~curses.window."
"nodelay` window method. After ``nodelay(True)``, :meth:`getch` and :meth:"
@ -634,7 +634,7 @@ msgid ""
"tenths of a second), curses raises an exception."
msgstr ""
#: ../Doc/howto/curses.rst:460
#: howto/curses.rst:460
msgid ""
"The :meth:`getch` method returns an integer; if it's between 0 and 255, it "
"represents the ASCII code of the key pressed. Values greater than 255 are "
@ -644,7 +644,7 @@ msgid ""
"program may look something like this::"
msgstr ""
#: ../Doc/howto/curses.rst:476
#: howto/curses.rst:476
msgid ""
"The :mod:`curses.ascii` module supplies ASCII class membership functions "
"that take either integer or 1-character string arguments; these may be "
@ -654,7 +654,7 @@ msgid ""
"returns the control character corresponding to its argument."
msgstr ""
#: ../Doc/howto/curses.rst:483
#: howto/curses.rst:483
msgid ""
"There's also a method to retrieve an entire string, :meth:`~curses.window."
"getstr`. It isn't used very often, because its functionality is quite "
@ -663,7 +663,7 @@ msgid ""
"number of characters. ::"
msgstr ""
#: ../Doc/howto/curses.rst:494
#: howto/curses.rst:494
msgid ""
"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-"
"like set of keybindings. Various methods of the :class:`~curses.textpad."
@ -671,16 +671,16 @@ msgid ""
"results either with or without trailing spaces. Here's an example::"
msgstr ""
#: ../Doc/howto/curses.rst:518
#: howto/curses.rst:518
msgid ""
"See the library documentation on :mod:`curses.textpad` for more details."
msgstr ""
#: ../Doc/howto/curses.rst:522
#: howto/curses.rst:522
msgid "For More Information"
msgstr ""
#: ../Doc/howto/curses.rst:524
#: howto/curses.rst:524
msgid ""
"This HOWTO doesn't cover some advanced topics, such as reading the contents "
"of the screen or capturing mouse events from an xterm instance, but the "
@ -688,7 +688,7 @@ msgid ""
"complete. You should browse it next."
msgstr ""
#: ../Doc/howto/curses.rst:529
#: howto/curses.rst:529
msgid ""
"If you're in doubt about the detailed behavior of the curses functions, "
"consult the manual pages for your curses implementation, whether it's "
@ -697,7 +697,7 @@ msgid ""
"const:`ACS_\\*` characters available to you."
msgstr ""
#: ../Doc/howto/curses.rst:536
#: howto/curses.rst:536
msgid ""
"Because the curses API is so large, some functions aren't supported in the "
"Python interface. Often this isn't because they're difficult to implement, "
@ -707,29 +707,29 @@ msgid ""
"org/>`_ to learn more about submitting patches to Python."
msgstr ""
#: ../Doc/howto/curses.rst:544
#: howto/curses.rst:544
msgid ""
"`Writing Programs with NCURSES <http://invisible-island.net/ncurses/ncurses-"
"intro.html>`_: a lengthy tutorial for C programmers."
msgstr ""
#: ../Doc/howto/curses.rst:546
#: howto/curses.rst:546
msgid "`The ncurses man page <https://linux.die.net/man/3/ncurses>`_"
msgstr ""
#: ../Doc/howto/curses.rst:547
#: howto/curses.rst:547
msgid ""
"`The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_"
msgstr ""
#: ../Doc/howto/curses.rst:548
#: howto/curses.rst:548
msgid ""
"`\"Use curses... don't swear\" <https://www.youtube.com/watch?"
"v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using "
"curses or Urwid."
msgstr ""
#: ../Doc/howto/curses.rst:550
#: howto/curses.rst:550
msgid ""
"`\"Console Applications with Urwid\" <http://www.pyvideo.org/video/1568/"
"console-applications-with-urwid>`_: video of a PyCon CA 2012 talk "

View file

@ -15,35 +15,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
#: ../Doc/howto/descriptor.rst:3
#: howto/descriptor.rst:3
msgid "Descriptor HowTo Guide"
msgstr "Guide pour l'utilisation des descripteurs"
#: ../Doc/howto/descriptor.rst:0
#: howto/descriptor.rst:0
msgid "Author"
msgstr "Auteur"
#: ../Doc/howto/descriptor.rst:5
#: howto/descriptor.rst:5
msgid "Raymond Hettinger"
msgstr "Raymond Hettinger"
#: ../Doc/howto/descriptor.rst:0
#: howto/descriptor.rst:0
msgid "Contact"
msgstr "Contact"
#: ../Doc/howto/descriptor.rst:6
#: howto/descriptor.rst:6
msgid "<python at rcn dot com>"
msgstr "<python at rcn dot com>"
#: ../Doc/howto/descriptor.rst:8
#: howto/descriptor.rst:8
msgid "Contents"
msgstr "Sommaire"
#: ../Doc/howto/descriptor.rst:11
#: howto/descriptor.rst:11
msgid "Abstract"
msgstr "Résumé"
#: ../Doc/howto/descriptor.rst:13
#: howto/descriptor.rst:13
msgid ""
"Defines descriptors, summarizes the protocol, and shows how descriptors are "
"called. Examines a custom descriptor and several built-in Python "
@ -57,7 +57,7 @@ msgstr ""
"méthodes statiques et les méthodes de classe. Montre comment chacun "
"fonctionne en donnant un équivalent Python pur et un exemple d'application."
#: ../Doc/howto/descriptor.rst:18
#: howto/descriptor.rst:18
msgid ""
"Learning about descriptors not only provides access to a larger toolset, it "
"creates a deeper understanding of how Python works and an appreciation for "
@ -67,11 +67,11 @@ msgstr ""
"ensemble d'outils plus vaste, mais aussi de mieux comprendre le "
"fonctionnement de Python et d'apprécier l'élégance de sa conception."
#: ../Doc/howto/descriptor.rst:24
#: howto/descriptor.rst:24
msgid "Definition and Introduction"
msgstr "Définition et introduction"
#: ../Doc/howto/descriptor.rst:26
#: howto/descriptor.rst:26
msgid ""
"In general, a descriptor is an object attribute with \"binding behavior\", "
"one whose attribute access has been overridden by methods in the descriptor "
@ -85,7 +85,7 @@ msgstr ""
"meth:`__set__`, et :meth:`__delete__`. Si l'une de ces méthodes est définie "
"pour un objet, il s'agit d'un descripteur."
#: ../Doc/howto/descriptor.rst:32
#: howto/descriptor.rst:32
msgid ""
"The default behavior for attribute access is to get, set, or delete the "
"attribute from an object's dictionary. For instance, ``a.x`` has a lookup "
@ -106,7 +106,7 @@ msgstr ""
"Descriptor. Lorsque cela se produit dans la chaîne de précédence dépend de "
"quelles méthodes descripteur ont été définies."
#: ../Doc/howto/descriptor.rst:41
#: howto/descriptor.rst:41
msgid ""
"Descriptors are a powerful, general purpose protocol. They are the "
"mechanism behind properties, methods, static methods, class methods, and :"
@ -123,23 +123,23 @@ msgstr ""
"un ensemble flexible de nouveaux outils pour les programmes Python "
"quotidiens."
#: ../Doc/howto/descriptor.rst:49
#: howto/descriptor.rst:49
msgid "Descriptor Protocol"
msgstr "Protocole descripteur"
#: ../Doc/howto/descriptor.rst:51
#: howto/descriptor.rst:51
msgid "``descr.__get__(self, obj, type=None) -> value``"
msgstr "``descr.__get__(self, obj, type=None) -> value``"
#: ../Doc/howto/descriptor.rst:53
#: howto/descriptor.rst:53
msgid "``descr.__set__(self, obj, value) -> None``"
msgstr "``descr.__set__(self, obj, value) -> None``"
#: ../Doc/howto/descriptor.rst:55
#: howto/descriptor.rst:55
msgid "``descr.__delete__(self, obj) -> None``"
msgstr "``descr.__delete__(self, obj) -> None``"
#: ../Doc/howto/descriptor.rst:57
#: howto/descriptor.rst:57
msgid ""
"That is all there is to it. Define any of these methods and an object is "
"considered a descriptor and can override default behavior upon being looked "
@ -149,7 +149,7 @@ msgstr ""
"méthodes et un objet est considéré comme un descripteur et peut remplacer le "
"comportement par défaut lorsqu'il est recherché comme un attribut."
#: ../Doc/howto/descriptor.rst:61
#: howto/descriptor.rst:61
msgid ""
"If an object defines :meth:`__set__` or :meth:`__delete__`, it is considered "
"a data descriptor. Descriptors that only define :meth:`__get__` are called "
@ -161,7 +161,7 @@ msgstr ""
"meth:`__get__` sont appelés descripteurs *non-data* (ils sont généralement "
"utilisés pour des méthodes mais d'autres utilisations sont possibles)."
#: ../Doc/howto/descriptor.rst:66
#: howto/descriptor.rst:66
msgid ""
"Data and non-data descriptors differ in how overrides are calculated with "
"respect to entries in an instance's dictionary. If an instance's dictionary "
@ -177,7 +177,7 @@ msgstr ""
"entrée portant le même nom qu'un descripteur *non-data*, l'entrée du "
"dictionnaire a la priorité."
#: ../Doc/howto/descriptor.rst:72
#: howto/descriptor.rst:72
msgid ""
"To make a read-only data descriptor, define both :meth:`__get__` and :meth:"
"`__set__` with the :meth:`__set__` raising an :exc:`AttributeError` when "
@ -190,11 +190,11 @@ msgstr ""
"`__set__set__` avec une exception élevant le caractère générique est "
"suffisant pour en faire un descripteur de données."
#: ../Doc/howto/descriptor.rst:79
#: howto/descriptor.rst:79
msgid "Invoking Descriptors"
msgstr "Invocation des descripteurs"
#: ../Doc/howto/descriptor.rst:81
#: howto/descriptor.rst:81
msgid ""
"A descriptor can be called directly by its method name. For example, ``d."
"__get__(obj)``."
@ -202,7 +202,7 @@ msgstr ""
"Un descripteur peut être appelé directement par son nom de méthode. Par "
"exemple, ``d.__get__(obj)``."
#: ../Doc/howto/descriptor.rst:84
#: howto/descriptor.rst:84
msgid ""
"Alternatively, it is more common for a descriptor to be invoked "
"automatically upon attribute access. For example, ``obj.d`` looks up ``d`` "
@ -216,14 +216,14 @@ msgstr ""
"méthode :meth:`__get__`, alors ``d.__get__(obj)`` est invoqué selon les "
"règles de priorité énumérées ci-dessous."
#: ../Doc/howto/descriptor.rst:89
#: howto/descriptor.rst:89
msgid ""
"The details of invocation depend on whether ``obj`` is an object or a class."
msgstr ""
"Les détails de l'invocation dépendent du fait que ``obj`` est un objet ou "
"une classe."
#: ../Doc/howto/descriptor.rst:91
#: howto/descriptor.rst:91
msgid ""
"For objects, the machinery is in :meth:`object.__getattribute__` which "
"transforms ``b.x`` into ``type(b).__dict__['x'].__get__(b, type(b))``. The "
@ -242,7 +242,7 @@ msgstr ""
"L'implémentation complète en C peut être trouvée dans :c:func:"
"`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`."
#: ../Doc/howto/descriptor.rst:99
#: howto/descriptor.rst:99
msgid ""
"For classes, the machinery is in :meth:`type.__getattribute__` which "
"transforms ``B.x`` into ``B.__dict__['x'].__get__(None, B)``. In pure "
@ -252,21 +252,21 @@ msgstr ""
"transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python pur, "
"cela ressemble à ::"
#: ../Doc/howto/descriptor.rst:110
#: howto/descriptor.rst:110
msgid "The important points to remember are:"
msgstr "Les points importants à retenir sont :"
#: ../Doc/howto/descriptor.rst:112
#: howto/descriptor.rst:112
msgid "descriptors are invoked by the :meth:`__getattribute__` method"
msgstr "les descripteurs sont appelés par la méthode :meth:`__getattribute__`"
#: ../Doc/howto/descriptor.rst:113
#: howto/descriptor.rst:113
msgid "overriding :meth:`__getattribute__` prevents automatic descriptor calls"
msgstr ""
"redéfinir :meth:`__getattribute____` empêche les appels automatiques de "
"descripteurs"
#: ../Doc/howto/descriptor.rst:114
#: howto/descriptor.rst:114
msgid ""
":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make "
"different calls to :meth:`__get__`."
@ -274,19 +274,19 @@ msgstr ""
":meth:`objet.__getattribute__` et :meth:`type.__getattribute__` font "
"différents appels à :meth:`__get__`."
#: ../Doc/howto/descriptor.rst:116
#: howto/descriptor.rst:116
msgid "data descriptors always override instance dictionaries."
msgstr ""
"les descripteurs de données remplacent toujours les dictionnaires "
"d'instances."
#: ../Doc/howto/descriptor.rst:117
#: howto/descriptor.rst:117
msgid "non-data descriptors may be overridden by instance dictionaries."
msgstr ""
"les descripteurs *non-data* peuvent être remplacés par des dictionnaires "
"d'instance."
#: ../Doc/howto/descriptor.rst:119
#: howto/descriptor.rst:119
msgid ""
"The object returned by ``super()`` also has a custom :meth:"
"`__getattribute__` method for invoking descriptors. The attribute lookup "
@ -304,7 +304,7 @@ msgstr ""
"inchangé. S'il n'est pas dans le dictionnaire, la recherche de ``m`` revient "
"à une recherche utilisant :meth:`object.__getattribute__`."
#: ../Doc/howto/descriptor.rst:126
#: howto/descriptor.rst:126
msgid ""
"The implementation details are in :c:func:`super_getattro()` in :source:"
"`Objects/typeobject.c`. and a pure Python equivalent can be found in "
@ -314,7 +314,7 @@ msgstr ""
"source:`Objects/typeobject.c` et un équivalent Python pur peut être trouvé "
"dans `Guido's Tutorial`_."
#: ../Doc/howto/descriptor.rst:132
#: howto/descriptor.rst:132
msgid ""
"The details above show that the mechanism for descriptors is embedded in "
"the :meth:`__getattribute__()` methods for :class:`object`, :class:`type`, "
@ -330,11 +330,11 @@ msgstr ""
"fournissant des fonctionnalités similaires. De même, les classes peuvent "
"désactiver l'appel de descripteurs en remplaçant :meth:`__getattribute__()`."
#: ../Doc/howto/descriptor.rst:141
#: howto/descriptor.rst:141
msgid "Descriptor Example"
msgstr "Exemple de descripteur"
#: ../Doc/howto/descriptor.rst:143
#: howto/descriptor.rst:143
msgid ""
"The following code creates a class whose objects are data descriptors which "
"print a message for each get or set. Overriding :meth:`__getattribute__` is "
@ -347,7 +347,7 @@ msgstr ""
"le faire pour chaque attribut. Cependant, ce descripteur n'est utile que "
"pour le suivi de quelques attributs choisis ::"
#: ../Doc/howto/descriptor.rst:181
#: howto/descriptor.rst:181
msgid ""
"The protocol is simple and offers exciting possibilities. Several use cases "
"are so common that they have been packaged into individual function calls. "
@ -360,11 +360,11 @@ msgstr ""
"statiques et les méthodes de classe sont toutes basées sur le protocole du "
"descripteur."
#: ../Doc/howto/descriptor.rst:188
#: howto/descriptor.rst:188
msgid "Properties"
msgstr "Propriétés"
#: ../Doc/howto/descriptor.rst:190
#: howto/descriptor.rst:190
msgid ""
"Calling :func:`property` is a succinct way of building a data descriptor "
"that triggers function calls upon access to an attribute. Its signature is::"
@ -373,14 +373,14 @@ msgstr ""
"descripteur de données qui déclenche des appels de fonction lors de l'accès "
"à un attribut. Sa signature est ::"
#: ../Doc/howto/descriptor.rst:195
#: howto/descriptor.rst:195
msgid ""
"The documentation shows a typical use to define a managed attribute ``x``::"
msgstr ""
"La documentation montre une utilisation typique pour définir un attribut "
"géré ``x`` ::"
#: ../Doc/howto/descriptor.rst:203
#: howto/descriptor.rst:203
msgid ""
"To see how :func:`property` is implemented in terms of the descriptor "
"protocol, here is a pure Python equivalent::"
@ -388,7 +388,7 @@ msgstr ""
"Pour voir comment :func:`property` est implémenté dans le protocole du "
"descripteur, voici un un équivalent Python pur ::"
#: ../Doc/howto/descriptor.rst:243
#: howto/descriptor.rst:243
msgid ""
"The :func:`property` builtin helps whenever a user interface has granted "
"attribute access and then subsequent changes require the intervention of a "
@ -398,7 +398,7 @@ msgstr ""
"utilisateur a accordé l'accès à un attribut et que des modifications "
"ultérieures nécessitent l'intervention d'une méthode."
#: ../Doc/howto/descriptor.rst:247
#: howto/descriptor.rst:247
msgid ""
"For instance, a spreadsheet class may grant access to a cell value through "
"``Cell('b10').value``. Subsequent improvements to the program require the "
@ -414,11 +414,11 @@ msgstr ""
"directement à l'attribut. La solution consiste à envelopper l'accès à "
"l'attribut de valeur dans un descripteur de données de propriété ::"
#: ../Doc/howto/descriptor.rst:263
#: howto/descriptor.rst:263
msgid "Functions and Methods"
msgstr "Fonctions et méthodes"
#: ../Doc/howto/descriptor.rst:265
#: howto/descriptor.rst:265
msgid ""
"Python's object oriented features are built upon a function based "
"environment. Using non-data descriptors, the two are merged seamlessly."
@ -427,7 +427,7 @@ msgstr ""
"environnement basé sur des fonctions. À l'aide de descripteurs *non-data*, "
"les deux sont fusionnés de façon transparente."
#: ../Doc/howto/descriptor.rst:268
#: howto/descriptor.rst:268
msgid ""
"Class dictionaries store methods as functions. In a class definition, "
"methods are written using :keyword:`def` or :keyword:`lambda`, the usual "
@ -444,7 +444,7 @@ msgstr ""
"convention Python, la référence de l'instance est appelée *self* mais peut "
"être appelée *this* ou tout autre nom de variable."
#: ../Doc/howto/descriptor.rst:275
#: howto/descriptor.rst:275
msgid ""
"To support method calls, functions include the :meth:`__get__` method for "
"binding methods during attribute access. This means that all functions are "
@ -457,18 +457,18 @@ msgstr ""
"*non-data* qui renvoient des méthodes liées lorsqu'elles sont appelées "
"depuis un objet. En Python pur, il fonctionne comme ceci ::"
#: ../Doc/howto/descriptor.rst:288
#: howto/descriptor.rst:288
msgid ""
"Running the interpreter shows how the function descriptor works in practice::"
msgstr ""
"L'exécution de l'interpréteur montre comment le descripteur de fonction se "
"comporte dans la pratique ::"
#: ../Doc/howto/descriptor.rst:326
#: howto/descriptor.rst:326
msgid "Static Methods and Class Methods"
msgstr "Méthodes statiques et méthodes de classe"
#: ../Doc/howto/descriptor.rst:328
#: howto/descriptor.rst:328
msgid ""
"Non-data descriptors provide a simple mechanism for variations on the usual "
"patterns of binding functions into methods."
@ -476,7 +476,7 @@ msgstr ""
"Les descripteurs *non-data* fournissent un mécanisme simple pour les "
"variations des patrons habituels des fonctions de liaison dans les méthodes."
#: ../Doc/howto/descriptor.rst:331
#: howto/descriptor.rst:331
msgid ""
"To recap, functions have a :meth:`__get__` method so that they can be "
"converted to a method when accessed as attributes. The non-data descriptor "
@ -488,53 +488,53 @@ msgstr ""
"descripteur *non-data* transforme un appel ``obj.f(*args)``en ``f(obj, "
"*args)``. Appeler ``klass.f(*args)`` devient ``f(*args)``."
#: ../Doc/howto/descriptor.rst:336
#: howto/descriptor.rst:336
msgid "This chart summarizes the binding and its two most useful variants:"
msgstr ""
"Ce tableau résume le lien (*binding*) et ses deux variantes les plus "
"utiles ::"
#: ../Doc/howto/descriptor.rst:339
#: howto/descriptor.rst:339
msgid "Transformation"
msgstr "Transformation"
#: ../Doc/howto/descriptor.rst:339
#: howto/descriptor.rst:339
msgid "Called from an Object"
msgstr "Appelé depuis un Objet"
#: ../Doc/howto/descriptor.rst:339
#: howto/descriptor.rst:339
msgid "Called from a Class"
msgstr "Appelé depuis un Classe"
#: ../Doc/howto/descriptor.rst:342
#: howto/descriptor.rst:342
msgid "function"
msgstr "fonction"
#: ../Doc/howto/descriptor.rst:342
#: howto/descriptor.rst:342
msgid "f(obj, \\*args)"
msgstr "f(obj, \\*args)"
#: ../Doc/howto/descriptor.rst:342 ../Doc/howto/descriptor.rst:344
#: howto/descriptor.rst:344
msgid "f(\\*args)"
msgstr "f(\\*args)"
#: ../Doc/howto/descriptor.rst:344
#: howto/descriptor.rst:344
msgid "staticmethod"
msgstr "méthode statique"
#: ../Doc/howto/descriptor.rst:346
#: howto/descriptor.rst:346
msgid "classmethod"
msgstr "méthode de classe"
#: ../Doc/howto/descriptor.rst:346
#: howto/descriptor.rst:346
msgid "f(type(obj), \\*args)"
msgstr "f(type(obj), \\*args)"
#: ../Doc/howto/descriptor.rst:346
#: howto/descriptor.rst:346
msgid "f(klass, \\*args)"
msgstr "f(klass, \\*args)"
#: ../Doc/howto/descriptor.rst:349
#: howto/descriptor.rst:349
msgid ""
"Static methods return the underlying function without changes. Calling "
"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into ``object."
@ -548,7 +548,7 @@ msgstr ""
"__getattribute__(C, \"f\")``. Par conséquent, la fonction devient accessible "
"de manière identique à partir d'un objet ou d'une classe."
#: ../Doc/howto/descriptor.rst:355
#: howto/descriptor.rst:355
msgid ""
"Good candidates for static methods are methods that do not reference the "
"``self`` variable."
@ -556,7 +556,7 @@ msgstr ""
"Les bonnes candidates pour être méthode statique sont des méthodes qui ne "
"font pas référence à la variable ``self``."
#: ../Doc/howto/descriptor.rst:358
#: howto/descriptor.rst:358
msgid ""
"For instance, a statistics package may include a container class for "
"experimental data. The class provides normal methods for computing the "
@ -578,7 +578,7 @@ msgstr ""
"appelée à partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332``` ou "
"``Sample.erf(1.5) --> .9332``."
#: ../Doc/howto/descriptor.rst:367
#: howto/descriptor.rst:367
msgid ""
"Since staticmethods return the underlying function with no changes, the "
"example calls are unexciting::"
@ -586,7 +586,7 @@ msgstr ""
"Depuis que les méthodes statiques renvoient la fonction sous-jacente sans "
"changement, les exemples dappels ne sont pas excitants ::"
#: ../Doc/howto/descriptor.rst:380
#: howto/descriptor.rst:380
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
"`staticmethod` would look like this::"
@ -594,7 +594,7 @@ msgstr ""
"En utilisant le protocole de descripteur *non-data*, une version Python pure "
"de :func:`staticmethod` ressemblerait à ceci ::"
#: ../Doc/howto/descriptor.rst:392
#: howto/descriptor.rst:392
msgid ""
"Unlike static methods, class methods prepend the class reference to the "
"argument list before calling the function. This format is the same for "
@ -604,7 +604,7 @@ msgstr ""
"référence de classe dans la liste d'arguments avant d'appeler la fonction. "
"Ce format est le même que l'appelant soit un objet ou une classe ::"
#: ../Doc/howto/descriptor.rst:407
#: howto/descriptor.rst:407
msgid ""
"This behavior is useful whenever the function only needs to have a class "
"reference and does not care about any underlying data. One use for "
@ -619,13 +619,13 @@ msgstr ""
"nouveau dictionnaire à partir d'une liste de clés. L'équivalent Python pur "
"est ::"
#: ../Doc/howto/descriptor.rst:423
#: howto/descriptor.rst:423
msgid "Now a new dictionary of unique keys can be constructed like this::"
msgstr ""
"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme "
"ceci ::"
#: ../Doc/howto/descriptor.rst:428
#: howto/descriptor.rst:428
msgid ""
"Using the non-data descriptor protocol, a pure Python version of :func:"
"`classmethod` would look like this::"

File diff suppressed because it is too large Load diff

View file

@ -14,11 +14,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../Doc/howto/index.rst:3
#: howto/index.rst:3
msgid "Python HOWTOs"
msgstr "Les HOWTOs de Python"
#: ../Doc/howto/index.rst:5
#: howto/index.rst:5
msgid ""
"Python HOWTOs are documents that cover a single, specific topic, and attempt "
"to cover it fairly completely. Modelled on the Linux Documentation Project's "
@ -31,6 +31,6 @@ msgstr ""
"promouvoir les documentations plus détaillées que la Python Library "
"Reference."
#: ../Doc/howto/index.rst:11
#: howto/index.rst:11
msgid "Currently, the HOWTOs are:"
msgstr "Actuellement, les HOWTOs sont :"

View file

@ -15,23 +15,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n"
#: ../Doc/howto/instrumentation.rst:7
#: howto/instrumentation.rst:7
msgid "Instrumenting CPython with DTrace and SystemTap"
msgstr "Instrumenter CPython avec DTrace et SystemTap"
#: ../Doc/howto/instrumentation.rst:0
#: howto/instrumentation.rst:0
msgid "author"
msgstr "auteur"
#: ../Doc/howto/instrumentation.rst:9
#: howto/instrumentation.rst:9
msgid "David Malcolm"
msgstr "David Malcolm"
#: ../Doc/howto/instrumentation.rst:10
#: howto/instrumentation.rst:10
msgid "Łukasz Langa"
msgstr "Łukasz Langa"
#: ../Doc/howto/instrumentation.rst:12
#: howto/instrumentation.rst:12
msgid ""
"DTrace and SystemTap are monitoring tools, each providing a way to inspect "
"what the processes on a computer system are doing. They both use domain-"
@ -42,19 +42,19 @@ msgstr ""
"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur "
"d'écrire des scripts qui permettent de ::"
#: ../Doc/howto/instrumentation.rst:16
#: howto/instrumentation.rst:16
msgid "filter which processes are to be observed"
msgstr "Filtrer les processus à observer."
#: ../Doc/howto/instrumentation.rst:17
#: howto/instrumentation.rst:17
msgid "gather data from the processes of interest"
msgstr "Recueillir des données sur le processus choisi."
#: ../Doc/howto/instrumentation.rst:18
#: howto/instrumentation.rst:18
msgid "generate reports on the data"
msgstr "Générer des rapports sur les données."
#: ../Doc/howto/instrumentation.rst:20
#: howto/instrumentation.rst:20
msgid ""
"As of Python 3.6, CPython can be built with embedded \"markers\", also known "
"as \"probes\", that can be observed by a DTrace or SystemTap script, making "
@ -64,7 +64,7 @@ msgstr ""
"intégrés, aussi appelés « sondes », qui peuvent être observés par un script "
"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython."
#: ../Doc/howto/instrumentation.rst:27
#: howto/instrumentation.rst:27
msgid ""
"DTrace markers are implementation details of the CPython interpreter. No "
"guarantees are made about probe compatibility between versions of CPython. "
@ -77,11 +77,11 @@ msgstr ""
"fonctionner ou fonctionner incorrectement sans avertissement lors du "
"changement de version de CPython."
#: ../Doc/howto/instrumentation.rst:34
#: howto/instrumentation.rst:34
msgid "Enabling the static markers"
msgstr "Activer les marqueurs statiques"
#: ../Doc/howto/instrumentation.rst:36
#: howto/instrumentation.rst:36
msgid ""
"macOS comes with built-in support for DTrace. On Linux, in order to build "
"CPython with the embedded markers for SystemTap, the SystemTap development "
@ -91,19 +91,19 @@ msgstr ""
"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils "
"de développement *SystemTap* doivent être installés."
#: ../Doc/howto/instrumentation.rst:40
#: howto/instrumentation.rst:40
msgid "On a Linux machine, this can be done via::"
msgstr "Sur une machine Linux, cela se fait via ::"
#: ../Doc/howto/instrumentation.rst:44
#: howto/instrumentation.rst:44
msgid "or::"
msgstr "ou ::"
#: ../Doc/howto/instrumentation.rst:49
#: howto/instrumentation.rst:49
msgid "CPython must then be configured ``--with-dtrace``:"
msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::"
#: ../Doc/howto/instrumentation.rst:55
#: howto/instrumentation.rst:55
msgid ""
"On macOS, you can list available DTrace probes by running a Python process "
"in the background and listing all probes made available by the Python "
@ -113,7 +113,7 @@ msgstr ""
"un processus Python en arrière-plan et en listant toutes les sondes mises à "
"disposition par le fournisseur Python ::"
#: ../Doc/howto/instrumentation.rst:72
#: howto/instrumentation.rst:72
msgid ""
"On Linux, you can verify if the SystemTap static markers are present in the "
"built binary by seeing if it contains a \".note.stapsdt\" section."
@ -122,7 +122,7 @@ msgstr ""
"présents dans le binaire compilé, il suffit de regarder s'il contient une "
"section ``.note.stapsdt``."
#: ../Doc/howto/instrumentation.rst:80
#: howto/instrumentation.rst:80
msgid ""
"If you've built Python as a shared library (with --enable-shared), you need "
"to look instead within the shared library. For example::"
@ -131,13 +131,13 @@ msgstr ""
"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. "
"Par exemple ::"
#: ../Doc/howto/instrumentation.rst:86
#: howto/instrumentation.rst:86
msgid "Sufficiently modern readelf can print the metadata::"
msgstr ""
"Une version suffisamment moderne de *readelf* peut afficher les "
"métadonnées ::"
#: ../Doc/howto/instrumentation.rst:123
#: howto/instrumentation.rst:123
msgid ""
"The above metadata contains information for SystemTap describing how it can "
"patch strategically-placed machine code instructions to enable the tracing "
@ -148,11 +148,11 @@ msgstr ""
"stratégiquement placées pour activer les crochets de traçage utilisés par un "
"script *SystemTap*."
#: ../Doc/howto/instrumentation.rst:129
#: howto/instrumentation.rst:129
msgid "Static DTrace probes"
msgstr "Sondes DTrace statiques"
#: ../Doc/howto/instrumentation.rst:131
#: howto/instrumentation.rst:131
msgid ""
"The following example DTrace script can be used to show the call/return "
"hierarchy of a Python script, only tracing within the invocation of a "
@ -164,19 +164,19 @@ msgstr ""
"En d'autres termes, les appels de fonctions lors de la phase d'import ne "
"seront pas répertoriées ::"
#: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228
#: howto/instrumentation.rst:228
msgid "It can be invoked like this::"
msgstr "Il peut être utilisé de cette manière ::"
#: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234
#: howto/instrumentation.rst:234
msgid "The output looks like this:"
msgstr "La sortie ressemble à ceci ::"
#: ../Doc/howto/instrumentation.rst:199
#: howto/instrumentation.rst:199
msgid "Static SystemTap markers"
msgstr "Marqueurs statiques *SystemTap*"
#: ../Doc/howto/instrumentation.rst:201
#: howto/instrumentation.rst:201
msgid ""
"The low-level way to use the SystemTap integration is to use the static "
"markers directly. This requires you to explicitly state the binary file "
@ -186,7 +186,7 @@ msgstr ""
"directement les marqueurs statiques. Pour cela vous devez pointer "
"explicitement le fichier binaire qui les contient."
#: ../Doc/howto/instrumentation.rst:205
#: howto/instrumentation.rst:205
msgid ""
"For example, this SystemTap script can be used to show the call/return "
"hierarchy of a Python script:"
@ -194,29 +194,29 @@ msgstr ""
"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la "
"hiérarchie d'appel/retour d'un script Python ::"
#: ../Doc/howto/instrumentation.rst:245
#: howto/instrumentation.rst:245
msgid "where the columns are:"
msgstr "où les colonnes sont ::"
#: ../Doc/howto/instrumentation.rst:247
#: howto/instrumentation.rst:247
msgid "time in microseconds since start of script"
msgstr "temps en microsecondes depuis le début du script"
#: ../Doc/howto/instrumentation.rst:249
#: howto/instrumentation.rst:249
msgid "name of executable"
msgstr "nom de l'exécutable"
#: ../Doc/howto/instrumentation.rst:251
#: howto/instrumentation.rst:251
msgid "PID of process"
msgstr "PID du processus"
#: ../Doc/howto/instrumentation.rst:253
#: howto/instrumentation.rst:253
msgid ""
"and the remainder indicates the call/return hierarchy as the script executes."
msgstr ""
"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute."
#: ../Doc/howto/instrumentation.rst:255
#: howto/instrumentation.rst:255
msgid ""
"For a `--enable-shared` build of CPython, the markers are contained within "
"the libpython shared library, and the probe's dotted path needs to reflect "
@ -226,20 +226,20 @@ msgstr ""
"contenus dans la bibliothèque partagée *libpython*, et le chemin du module "
"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :"
#: ../Doc/howto/instrumentation.rst:263
#: howto/instrumentation.rst:263
msgid "should instead read:"
msgstr "doit plutôt se lire comme ::"
#: ../Doc/howto/instrumentation.rst:269
#: howto/instrumentation.rst:269
msgid "(assuming a debug build of CPython 3.6)"
msgstr ""
"(en supposant une version compilée avec le débogage activé de CPython 3.6)"
#: ../Doc/howto/instrumentation.rst:273
#: howto/instrumentation.rst:273
msgid "Available static markers"
msgstr "Marqueurs statiques disponibles"
#: ../Doc/howto/instrumentation.rst:279
#: howto/instrumentation.rst:279
msgid ""
"This marker indicates that execution of a Python function has begun. It is "
"only triggered for pure-Python (bytecode) functions."
@ -247,7 +247,7 @@ msgstr ""
"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il "
"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:282
#: howto/instrumentation.rst:282
msgid ""
"The filename, function name, and line number are provided back to the "
"tracing script as positional arguments, which must be accessed using ``"
@ -257,7 +257,7 @@ msgstr ""
"au script de traçage sous forme d'arguments positionnels, auxquels il faut "
"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :"
#: ../Doc/howto/instrumentation.rst:286
#: howto/instrumentation.rst:286
msgid ""
"``$arg1`` : ``(const char *)`` filename, accessible using "
"``user_string($arg1)``"
@ -265,7 +265,7 @@ msgstr ""
"``$arg1`` : ``(const char *)`` nom de fichier, accessible via "
"``user_string($arg1)``"
#: ../Doc/howto/instrumentation.rst:288
#: howto/instrumentation.rst:288
msgid ""
"``$arg2`` : ``(const char *)`` function name, accessible using "
"``user_string($arg2)``"
@ -273,11 +273,11 @@ msgstr ""
"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via "
"``user_string($arg2)``"
#: ../Doc/howto/instrumentation.rst:291
#: howto/instrumentation.rst:291
msgid "``$arg3`` : ``int`` line number"
msgstr "``$arg3`` : numéro de ligne ``int``"
#: ../Doc/howto/instrumentation.rst:295
#: howto/instrumentation.rst:295
msgid ""
"This marker is the converse of :c:func:`function__entry`, and indicates that "
"execution of a Python function has ended (either via ``return``, or via an "
@ -288,11 +288,11 @@ msgstr ""
"via une exception). Il n'est déclenché que pour les fonctions en Python pur "
"(code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:299
#: howto/instrumentation.rst:299
msgid "The arguments are the same as for :c:func:`function__entry`"
msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`"
#: ../Doc/howto/instrumentation.rst:303
#: howto/instrumentation.rst:303
msgid ""
"This marker indicates a Python line is about to be executed. It is the "
"equivalent of line-by-line tracing with a Python profiler. It is not "
@ -302,11 +302,11 @@ msgstr ""
"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il "
"n'est pas déclenché dans les fonctions C."
#: ../Doc/howto/instrumentation.rst:307
#: howto/instrumentation.rst:307
msgid "The arguments are the same as for :c:func:`function__entry`."
msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`."
#: ../Doc/howto/instrumentation.rst:311
#: howto/instrumentation.rst:311
msgid ""
"Fires when the Python interpreter starts a garbage collection cycle. "
"``arg0`` is the generation to scan, like :func:`gc.collect()`."
@ -315,7 +315,7 @@ msgstr ""
"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc."
"collect()`."
#: ../Doc/howto/instrumentation.rst:316
#: howto/instrumentation.rst:316
msgid ""
"Fires when the Python interpreter finishes a garbage collection cycle. "
"``arg0`` is the number of collected objects."
@ -323,7 +323,7 @@ msgstr ""
"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte "
"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés."
#: ../Doc/howto/instrumentation.rst:321
#: howto/instrumentation.rst:321
msgid ""
"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` "
"is the module name."
@ -331,7 +331,7 @@ msgstr ""
"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger "
"le module. ``arg0`` est le nom du module."
#: ../Doc/howto/instrumentation.rst:328
#: howto/instrumentation.rst:328
msgid ""
"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is "
"the module name, ``arg1`` indicates if module was successfully loaded."
@ -340,7 +340,7 @@ msgstr ""
"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si "
"le module a été chargé avec succès."
#: ../Doc/howto/instrumentation.rst:337
#: howto/instrumentation.rst:337
msgid ""
"Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is "
"the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a "
@ -351,11 +351,11 @@ msgstr ""
"chaîne de caractère C. ``arg1`` est un pointeur sur un tuple d'objet de "
"type :c:type:`PyObject`."
#: ../Doc/howto/instrumentation.rst:345
#: howto/instrumentation.rst:345
msgid "SystemTap Tapsets"
msgstr "*Tapsets* de *SystemTap*"
#: ../Doc/howto/instrumentation.rst:347
#: howto/instrumentation.rst:347
msgid ""
"The higher-level way to use the SystemTap integration is to use a \"tapset"
"\": SystemTap's equivalent of a library, which hides some of the lower-level "
@ -365,13 +365,13 @@ msgstr ""
"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui "
"permet de masquer les détails de niveau inférieur des marqueurs statiques."
#: ../Doc/howto/instrumentation.rst:351
#: howto/instrumentation.rst:351
msgid "Here is a tapset file, based on a non-shared build of CPython:"
msgstr ""
"Voici un fichier *tapset*, basé sur une version non partagée compilée de "
"CPython ::"
#: ../Doc/howto/instrumentation.rst:374
#: howto/instrumentation.rst:374
msgid ""
"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/"
"systemtap/tapset``), then these additional probepoints become available:"
@ -380,7 +380,7 @@ msgstr ""
"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires "
"deviennent disponibles ::"
#: ../Doc/howto/instrumentation.rst:380
#: howto/instrumentation.rst:380
msgid ""
"This probe point indicates that execution of a Python function has begun. It "
"is only triggered for pure-Python (bytecode) functions."
@ -388,7 +388,7 @@ msgstr ""
"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle "
"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:385
#: howto/instrumentation.rst:385
msgid ""
"This probe point is the converse of :c:func:`python.function.return`, and "
"indicates that execution of a Python function has ended (either via "
@ -400,11 +400,11 @@ msgstr ""
"soit via une exception). Elle est uniquement déclenchée pour les fonctions "
"en Python pur (code intermédiaire)."
#: ../Doc/howto/instrumentation.rst:392
#: howto/instrumentation.rst:392
msgid "Examples"
msgstr "Exemples"
#: ../Doc/howto/instrumentation.rst:393
#: howto/instrumentation.rst:393
msgid ""
"This SystemTap script uses the tapset above to more cleanly implement the "
"example given above of tracing the Python function-call hierarchy, without "
@ -415,7 +415,7 @@ msgstr ""
"fonctions Python, sans avoir besoin de nommer directement les marqueurs "
"statiques ::"
#: ../Doc/howto/instrumentation.rst:412
#: howto/instrumentation.rst:412
msgid ""
"The following script uses the tapset above to provide a top-like view of all "
"running CPython code, showing the top 20 most frequently-entered bytecode "

View file

@ -15,27 +15,27 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.2\n"
#: ../Doc/howto/ipaddress.rst:9
#: howto/ipaddress.rst:9
msgid "An introduction to the ipaddress module"
msgstr "Introduction au module ``ipaddress``"
#: ../Doc/howto/ipaddress.rst:0
#: howto/ipaddress.rst:0
msgid "author"
msgstr "auteur"
#: ../Doc/howto/ipaddress.rst:11
#: howto/ipaddress.rst:11
msgid "Peter Moody"
msgstr "Peter Moody"
#: ../Doc/howto/ipaddress.rst:12
#: howto/ipaddress.rst:12
msgid "Nick Coghlan"
msgstr "Nick Coghlan"
#: ../Doc/howto/ipaddress.rst:None
#: howto/ipaddress.rst:None
msgid "Overview"
msgstr "Aperçu"
#: ../Doc/howto/ipaddress.rst:16
#: howto/ipaddress.rst:16
msgid ""
"This document aims to provide a gentle introduction to the :mod:`ipaddress` "
"module. It is aimed primarily at users that aren't already familiar with IP "
@ -49,11 +49,11 @@ msgstr ""
"réseaux qui cherchent un aperçu de la représentation des concepts "
"d'adressage IP avec le module :mod:`ipaddress`."
#: ../Doc/howto/ipaddress.rst:24
#: howto/ipaddress.rst:24
msgid "Creating Address/Network/Interface objects"
msgstr "Créer un objet Adresse/Réseau/Interface"
#: ../Doc/howto/ipaddress.rst:26
#: howto/ipaddress.rst:26
msgid ""
"Since :mod:`ipaddress` is a module for inspecting and manipulating IP "
"addresses, the first thing you'll want to do is create some objects. You "
@ -64,11 +64,11 @@ msgstr ""
"objets. Vous pouvez utiliser :mod:`ipaddress` pour créer des objets à partir "
"de chaînes de caractères et d'entiers."
#: ../Doc/howto/ipaddress.rst:32
#: howto/ipaddress.rst:32
msgid "A Note on IP Versions"
msgstr "Note sur les versions d'IP"
#: ../Doc/howto/ipaddress.rst:34
#: howto/ipaddress.rst:34
msgid ""
"For readers that aren't particularly familiar with IP addressing, it's "
"important to know that the Internet Protocol is currently in the process of "
@ -85,7 +85,7 @@ msgstr ""
"particulièrement à cause de la croissance des périphériques directement "
"connectés à Internet."
#: ../Doc/howto/ipaddress.rst:41
#: howto/ipaddress.rst:41
msgid ""
"Explaining the details of the differences between the two versions of the "
"protocol is beyond the scope of this introduction, but readers need to at "
@ -97,11 +97,11 @@ msgstr ""
"moins être avertis de l'existence de ces deux versions et qu'il sera "
"nécessaire de forcer l'utilisation d'une version ou de l'autre."
#: ../Doc/howto/ipaddress.rst:48
#: howto/ipaddress.rst:48
msgid "IP Host Addresses"
msgstr "Adresses IP des hôtes"
#: ../Doc/howto/ipaddress.rst:50
#: howto/ipaddress.rst:50
msgid ""
"Addresses, often referred to as \"host addresses\" are the most basic unit "
"when working with IP addressing. The simplest way to create addresses is to "
@ -116,7 +116,7 @@ msgstr ""
"une adresse IPv4 ou une adresse IPv6 en fonction de la valeur qui est "
"transmise :"
#: ../Doc/howto/ipaddress.rst:61
#: howto/ipaddress.rst:61
msgid ""
"Addresses can also be created directly from integers. Values that will fit "
"within 32 bits are assumed to be IPv4 addresses::"
@ -125,7 +125,7 @@ msgstr ""
"qui correspondent à des entiers 32 bits sont assimilées à des adresses "
"IPv4 ::"
#: ../Doc/howto/ipaddress.rst:69
#: howto/ipaddress.rst:69
msgid ""
"To force the use of IPv4 or IPv6 addresses, the relevant classes can be "
"invoked directly. This is particularly useful to force creation of IPv6 "
@ -135,11 +135,11 @@ msgstr ""
"invoquée directement. C'est particulièrement utile pour forcer la création "
"d'adresse IPv6 pour de petits entiers ::"
#: ../Doc/howto/ipaddress.rst:82
#: howto/ipaddress.rst:82
msgid "Defining Networks"
msgstr "Définir des réseaux"
#: ../Doc/howto/ipaddress.rst:84
#: howto/ipaddress.rst:84
msgid ""
"Host addresses are usually grouped together into IP networks, so :mod:"
"`ipaddress` provides a way to create, inspect and manipulate network "
@ -160,7 +160,7 @@ msgstr ""
"si l'adresse fait ou ne fait pas partie de ce réseau et l'adresse réseau "
"définit la valeur attendue pour ces bits."
#: ../Doc/howto/ipaddress.rst:93
#: howto/ipaddress.rst:93
msgid ""
"As for addresses, a factory function is provided that determines the correct "
"IP version automatically::"
@ -168,7 +168,7 @@ msgstr ""
"Tout comme pour les adresses, une fonction de fabrication est disponible et "
"détermine automatiquement la version correcte d'IP ::"
#: ../Doc/howto/ipaddress.rst:101
#: howto/ipaddress.rst:101
msgid ""
"Network objects cannot have any host bits set. The practical effect of this "
"is that ``192.0.2.1/24`` does not describe a network. Such definitions are "
@ -183,7 +183,7 @@ msgstr ""
"les interfaces réseau d'un ordinateur sur un réseau donné (nous les "
"détaillons plus loin dans cette section)."
#: ../Doc/howto/ipaddress.rst:107
#: howto/ipaddress.rst:107
msgid ""
"By default, attempting to create a network object with host bits set will "
"result in :exc:`ValueError` being raised. To request that the additional "
@ -195,7 +195,7 @@ msgstr ""
"soient plutôt forcés à zéro, l'attribut ``strict=False`` peut être passé au "
"constructeur ::"
#: ../Doc/howto/ipaddress.rst:119
#: howto/ipaddress.rst:119
msgid ""
"While the string form offers significantly more flexibility, networks can "
"also be defined with integers, just like host addresses. In this case, the "
@ -208,7 +208,7 @@ msgstr ""
"identifiée par l'entier, donc le préfixe réseau inclut l'adresse du réseau "
"complet ::"
#: ../Doc/howto/ipaddress.rst:129
#: howto/ipaddress.rst:129
msgid ""
"As with addresses, creation of a particular kind of network can be forced by "
"calling the class constructor directly instead of using the factory function."
@ -217,11 +217,11 @@ msgstr ""
"être forcée en appelant directement le constructeur de la classe plutôt que "
"d'utiliser la fonction de fabrication."
#: ../Doc/howto/ipaddress.rst:135
#: howto/ipaddress.rst:135
msgid "Host Interfaces"
msgstr "Interfaces des hôtes"
#: ../Doc/howto/ipaddress.rst:137
#: howto/ipaddress.rst:137
msgid ""
"As mentioned just above, if you need to describe an address on a particular "
"network, neither the address nor the network classes are sufficient. "
@ -244,7 +244,7 @@ msgstr ""
"définition des objets réseaux, excepté que la partie adresse n'est pas "
"contrainte d'être une adresse réseau."
#: ../Doc/howto/ipaddress.rst:152
#: howto/ipaddress.rst:152
msgid ""
"Integer inputs are accepted (as with networks), and use of a particular IP "
"version can be forced by calling the relevant constructor directly."
@ -253,11 +253,11 @@ msgstr ""
"l'utilisation d'une version d'IP peut être forcée en appelant directement le "
"constructeur adapté."
#: ../Doc/howto/ipaddress.rst:157
#: howto/ipaddress.rst:157
msgid "Inspecting Address/Network/Interface Objects"
msgstr "Inspecter les objets Address/Network/Interface"
#: ../Doc/howto/ipaddress.rst:159
#: howto/ipaddress.rst:159
msgid ""
"You've gone to the trouble of creating an IPv(4|6)(Address|Network|"
"Interface) object, so you probably want to get information about it. :mod:"
@ -267,23 +267,23 @@ msgstr ""
"interface)IPv(4|6), donc vous voudrez probablement des informations sur "
"celui-ci. :mod:`ipaddress` essaie de rendre ceci facile et intuitif."
#: ../Doc/howto/ipaddress.rst:163
#: howto/ipaddress.rst:163
msgid "Extracting the IP version::"
msgstr "Extraire la version du protocole IP ::"
#: ../Doc/howto/ipaddress.rst:172
#: howto/ipaddress.rst:172
msgid "Obtaining the network from an interface::"
msgstr "Obtenir le réseau à partir de l'interface ::"
#: ../Doc/howto/ipaddress.rst:181
#: howto/ipaddress.rst:181
msgid "Finding out how many individual addresses are in a network::"
msgstr "Trouver combien d'adresses individuelles sont dans un réseau ::"
#: ../Doc/howto/ipaddress.rst:190
#: howto/ipaddress.rst:190
msgid "Iterating through the \"usable\" addresses on a network::"
msgstr "Itération sur chacune des adresses \"utilisables\" d'un réseau ::"
#: ../Doc/howto/ipaddress.rst:205
#: howto/ipaddress.rst:205
msgid ""
"Obtaining the netmask (i.e. set bits corresponding to the network prefix) or "
"the hostmask (any bits that are not part of the netmask):"
@ -292,11 +292,11 @@ msgstr ""
"réseau) ou le masque de l'hôte (tous les bits qui ne sont pas dans le masque "
"du réseau) :"
#: ../Doc/howto/ipaddress.rst:220
#: howto/ipaddress.rst:220
msgid "Exploding or compressing the address::"
msgstr "Éclater ou compresser l'adresse ::"
#: ../Doc/howto/ipaddress.rst:231
#: howto/ipaddress.rst:231
msgid ""
"While IPv4 doesn't support explosion or compression, the associated objects "
"still provide the relevant properties so that version neutral code can "
@ -309,11 +309,11 @@ msgstr ""
"que la forme la plus concise ou la plus verbeuse utilisée pour des adresses "
"IPv6 va aussi fonctionner pour gérer des adresses IPv4."
#: ../Doc/howto/ipaddress.rst:238
#: howto/ipaddress.rst:238
msgid "Networks as lists of Addresses"
msgstr "Réseaux en tant que listes d'adresses"
#: ../Doc/howto/ipaddress.rst:240
#: howto/ipaddress.rst:240
msgid ""
"It's sometimes useful to treat networks as lists. This means it is possible "
"to index them like this::"
@ -321,7 +321,7 @@ msgstr ""
"Il est parfois utile de traiter les réseaux en tant que listes. Cela "
"signifie qu'il est possible de les indexer comme ça ::"
#: ../Doc/howto/ipaddress.rst:253
#: howto/ipaddress.rst:253
msgid ""
"It also means that network objects lend themselves to using the list "
"membership test syntax like this::"
@ -329,17 +329,17 @@ msgstr ""
"Cela signifie aussi que les objets réseaux se prêtent bien à l'utilisation "
"de la syntaxe suivante pour le test d'appartenance à la liste ::"
#: ../Doc/howto/ipaddress.rst:259
#: howto/ipaddress.rst:259
msgid "Containment testing is done efficiently based on the network prefix::"
msgstr ""
"En se basant sur le préfixe réseau on peut efficacement tester "
"l'appartenance ::"
#: ../Doc/howto/ipaddress.rst:269
#: howto/ipaddress.rst:269
msgid "Comparisons"
msgstr "Comparaisons"
#: ../Doc/howto/ipaddress.rst:271
#: howto/ipaddress.rst:271
msgid ""
":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare "
"objects, where it makes sense::"
@ -347,7 +347,7 @@ msgstr ""
":mod:`ipaddress` fournit des moyens simples et intuitifs (du moins nous "
"l'espérons) pour comparer les objets, quand cela fait sens ::"
#: ../Doc/howto/ipaddress.rst:277
#: howto/ipaddress.rst:277
msgid ""
"A :exc:`TypeError` exception is raised if you try to compare objects of "
"different versions or different types."
@ -355,11 +355,11 @@ msgstr ""
"Une exception :exc:`TypeError` est levée si vous tentez de comparer des "
"objets de différentes versions ou de types différents."
#: ../Doc/howto/ipaddress.rst:282
#: howto/ipaddress.rst:282
msgid "Using IP Addresses with other modules"
msgstr "Utiliser des adresse IP avec d'autre modules"
#: ../Doc/howto/ipaddress.rst:284
#: howto/ipaddress.rst:284
msgid ""
"Other modules that use IP addresses (such as :mod:`socket`) usually won't "
"accept objects from this module directly. Instead, they must be coerced to "
@ -370,11 +370,11 @@ msgstr ""
"cela, ils doivent être convertis en entiers ou en chaînes de caractères que "
"l'autre module va accepter ::"
#: ../Doc/howto/ipaddress.rst:296
#: howto/ipaddress.rst:296
msgid "Getting more detail when instance creation fails"
msgstr "Obtenir plus de détails lors de l'échec de la création de l'instance"
#: ../Doc/howto/ipaddress.rst:298
#: howto/ipaddress.rst:298
msgid ""
"When creating address/network/interface objects using the version-agnostic "
"factory functions, any errors will be reported as :exc:`ValueError` with a "
@ -391,7 +391,7 @@ msgstr ""
"rejet, il faudrait reconnaitre si la valeur est *supposée* être une adresse "
"IPv4 ou IPv6."
#: ../Doc/howto/ipaddress.rst:305
#: howto/ipaddress.rst:305
msgid ""
"To support use cases where it is useful to have access to this additional "
"detail, the individual class constructors actually raise the :exc:"
@ -405,7 +405,7 @@ msgstr ""
"NetmaskValueError` pour indiquer précisément quelle partie de la définition "
"n'a pas pu être correctement traitée."
#: ../Doc/howto/ipaddress.rst:311
#: howto/ipaddress.rst:311
msgid ""
"The error messages are significantly more detailed when using the class "
"constructors directly. For example::"
@ -413,7 +413,7 @@ msgstr ""
"Les messages d'erreur sont particulièrement plus détaillés lors de "
"l'utilisation directe du constructeur. Par exemple ::"
#: ../Doc/howto/ipaddress.rst:332
#: howto/ipaddress.rst:332
msgid ""
"However, both of the module specific exceptions have :exc:`ValueError` as "
"their parent class, so if you're not concerned with the particular type of "

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -15,23 +15,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
#: ../Doc/howto/pyporting.rst:5
#: howto/pyporting.rst:5
msgid "Porting Python 2 Code to Python 3"
msgstr "Portage de code Python 2 vers Python 3"
#: ../Doc/howto/pyporting.rst:0
#: howto/pyporting.rst:0
msgid "author"
msgstr "auteur"
#: ../Doc/howto/pyporting.rst:7
#: howto/pyporting.rst:7
msgid "Brett Cannon"
msgstr "Brett Cannon"
#: ../Doc/howto/pyporting.rst:None
#: howto/pyporting.rst:None
msgid "Abstract"
msgstr "Résumé"
#: ../Doc/howto/pyporting.rst:11
#: howto/pyporting.rst:11
msgid ""
"With Python 3 being the future of Python while Python 2 is still in active "
"use, it is good to have your project available for both major releases of "
@ -43,7 +43,7 @@ msgstr ""
"disponible pour les deux versions majeures de Python. Ce guide est destiné à "
"vous aider à comprendre comment gérer simultanément Python 2 & 3."
#: ../Doc/howto/pyporting.rst:16
#: howto/pyporting.rst:16
msgid ""
"If you are looking to port an extension module instead of pure Python code, "
"please see :ref:`cporting-howto`."
@ -51,7 +51,7 @@ msgstr ""
"Si vous cherchez à porter un module d'extension plutôt que du pur Python, "
"veuillez consulter :ref:`cporting-howto`."
#: ../Doc/howto/pyporting.rst:19
#: howto/pyporting.rst:19
msgid ""
"If you would like to read one core Python developer's take on why Python 3 "
"came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett "
@ -61,7 +61,7 @@ msgstr ""
"qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & A`_ "
"de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon."
#: ../Doc/howto/pyporting.rst:23
#: howto/pyporting.rst:23
msgid ""
"For help with porting, you can email the python-porting_ mailing list with "
"questions."
@ -69,11 +69,11 @@ msgstr ""
"Vous pouvez solliciter par courriel l'aide de la liste de diffusion python-"
"porting_ pour vos questions liées au portage."
#: ../Doc/howto/pyporting.rst:27
#: howto/pyporting.rst:27
msgid "The Short Explanation"
msgstr "La version courte"
#: ../Doc/howto/pyporting.rst:29
#: howto/pyporting.rst:29
msgid ""
"To make your project be single-source Python 2/3 compatible, the basic steps "
"are:"
@ -81,11 +81,11 @@ msgstr ""
"Afin de rendre votre projet compatible Python 2/3 avec le même code source, "
"les étapes de base sont :"
#: ../Doc/howto/pyporting.rst:32
#: howto/pyporting.rst:32
msgid "Only worry about supporting Python 2.7"
msgstr "Ne se préoccuper que du support de Python 2.7"
#: ../Doc/howto/pyporting.rst:33
#: howto/pyporting.rst:33
msgid ""
"Make sure you have good test coverage (coverage.py_ can help; ``pip install "
"coverage``)"
@ -93,11 +93,11 @@ msgstr ""
"S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; ``pip "
"install coverage``)"
#: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116
#: howto/pyporting.rst:116
msgid "Learn the differences between Python 2 & 3"
msgstr "Apprendre les différences entre Python 2 et 3"
#: ../Doc/howto/pyporting.rst:36
#: howto/pyporting.rst:36
msgid ""
"Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install "
"future``)"
@ -105,7 +105,7 @@ msgstr ""
"Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par "
"exemple ``pip install future``)"
#: ../Doc/howto/pyporting.rst:37
#: howto/pyporting.rst:37
msgid ""
"Use Pylint_ to help make sure you don't regress on your Python 3 support "
"(``pip install pylint``)"
@ -113,7 +113,7 @@ msgstr ""
"Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre prise "
"en charge de Python 3 (``pip install pylint``)"
#: ../Doc/howto/pyporting.rst:39
#: howto/pyporting.rst:39
msgid ""
"Use caniusepython3_ to find out which of your dependencies are blocking your "
"use of Python 3 (``pip install caniusepython3``)"
@ -122,7 +122,7 @@ msgstr ""
"dépendances que vous utilisez, celles qui bloquent votre utilisation de "
"Python 3 (``pip install caniusepython3``)"
#: ../Doc/howto/pyporting.rst:41
#: howto/pyporting.rst:41
msgid ""
"Once your dependencies are no longer blocking you, use continuous "
"integration to make sure you stay compatible with Python 2 & 3 (tox_ can "
@ -133,7 +133,7 @@ msgstr ""
"Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec "
"plusieurs versions de Python; ``pip install tox``)"
#: ../Doc/howto/pyporting.rst:44
#: howto/pyporting.rst:44
msgid ""
"Consider using optional static type checking to make sure your type usage "
"works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both "
@ -143,11 +143,11 @@ msgstr ""
"que votre façon d'utiliser les types est compatible avec Python 2 et 3 (par "
"exemple en utilisant mypy_ pour vérifier votre typage sous Python 2 et 3)."
#: ../Doc/howto/pyporting.rst:50
#: howto/pyporting.rst:50
msgid "Details"
msgstr "Détails"
#: ../Doc/howto/pyporting.rst:52
#: howto/pyporting.rst:52
msgid ""
"A key point about supporting Python 2 & 3 simultaneously is that you can "
"start **today**! Even if your dependencies are not supporting Python 3 yet "
@ -162,7 +162,7 @@ msgstr ""
"la compatibilité Python 3 donnent un code plus propre utilisant une syntaxe "
"plus récente, même dans du code Python 2."
#: ../Doc/howto/pyporting.rst:58
#: howto/pyporting.rst:58
msgid ""
"Another key point is that modernizing your Python 2 code to also support "
"Python 3 is largely automated for you. While you might have to make some API "
@ -177,7 +177,7 @@ msgstr ""
"3, le travail de bas niveau est en grande partie fait pour vous et vous "
"pouvez ainsi bénéficiez de ces modifications automatiques immédiatement."
#: ../Doc/howto/pyporting.rst:64
#: howto/pyporting.rst:64
msgid ""
"Keep those key points in mind while you read on about the details of porting "
"your code to support Python 2 & 3 simultaneously."
@ -186,11 +186,11 @@ msgstr ""
"concernant le portage de votre code vers une compatibilité simultanée Python "
"2 et 3."
#: ../Doc/howto/pyporting.rst:69
#: howto/pyporting.rst:69
msgid "Drop support for Python 2.6 and older"
msgstr "Abandon de la compatibilité Python 2.6 et antérieures"
#: ../Doc/howto/pyporting.rst:71
#: howto/pyporting.rst:71
msgid ""
"While you can make Python 2.5 work with Python 3, it is **much** easier if "
"you only have to work with Python 2.7. If dropping Python 2.5 is not an "
@ -205,7 +205,7 @@ msgstr ""
"Néanmoins, soyez conscient que la quasi-totalité des projets listés dans ce "
"guide pratique ne seront pas applicables à votre situation."
#: ../Doc/howto/pyporting.rst:77
#: howto/pyporting.rst:77
msgid ""
"If you are able to skip Python 2.5 and older, then the required changes to "
"your code should continue to look and feel like idiomatic Python code. At "
@ -220,7 +220,7 @@ msgstr ""
"fonction plutôt qu'utiliser une fonction native, mais le reste du temps le "
"code transformé devrait vous rester familier."
#: ../Doc/howto/pyporting.rst:83
#: howto/pyporting.rst:83
msgid ""
"But you should aim for only supporting Python 2.7. Python 2.6 is no longer "
"freely supported and thus is not receiving bugfixes. This means **you** will "
@ -240,14 +240,14 @@ msgstr ""
"compatibilité qu'avec les versions de Python que vous avez l'obligation de "
"gérer."
#: ../Doc/howto/pyporting.rst:92
#: howto/pyporting.rst:92
msgid ""
"Make sure you specify the proper version support in your ``setup.py`` file"
msgstr ""
"Assurez vous de spécifier la bonne version supportée dans le fichier ``setup."
"py``"
#: ../Doc/howto/pyporting.rst:94
#: howto/pyporting.rst:94
msgid ""
"In your ``setup.py`` file you should have the proper `trove classifier`_ "
"specifying what versions of Python you support. As your project does not "
@ -263,11 +263,11 @@ msgstr ""
"devriez indiquer chaque version majeure/mineure de Python que vous gérez, "
"par exemple ``Programming Language :: Python :: 2.7``."
#: ../Doc/howto/pyporting.rst:103
#: howto/pyporting.rst:103
msgid "Have good test coverage"
msgstr "Obtenir une bonne couverture de code"
#: ../Doc/howto/pyporting.rst:105
#: howto/pyporting.rst:105
msgid ""
"Once you have your code supporting the oldest version of Python 2 you want "
"it to, you will want to make sure your test suite has good coverage. A good "
@ -289,7 +289,7 @@ msgstr ""
"disposez pas encore d'un outil pour mesurer la couverture de code, coverage."
"py_ est recommandé."
#: ../Doc/howto/pyporting.rst:118
#: howto/pyporting.rst:118
msgid ""
"Once you have your code well-tested you are ready to begin porting your code "
"to Python 3! But to fully understand how your code is going to change and "
@ -309,11 +309,11 @@ msgstr ""
"anglais). Il y a également une « anti-sèche » (`cheat sheet`_, ressource en "
"anglais) très pratique du projet Python-Future."
#: ../Doc/howto/pyporting.rst:128
#: howto/pyporting.rst:128
msgid "Update your code"
msgstr "Mettre à jour votre code"
#: ../Doc/howto/pyporting.rst:130
#: howto/pyporting.rst:130
msgid ""
"Once you feel like you know what is different in Python 3 compared to Python "
"2, it's time to update your code! You have a choice between two tools in "
@ -342,7 +342,7 @@ msgstr ""
"pratiques introduites par Python 3 avec lesquelles vous n'êtes pas encore "
"habitué."
#: ../Doc/howto/pyporting.rst:142
#: howto/pyporting.rst:142
msgid ""
"Regardless of which tool you choose, they will update your code to run under "
"Python 3 while staying compatible with the version of Python 2 you started "
@ -364,7 +364,7 @@ msgstr ""
"application avec l'assurance que chaque test qui échoue correspond à un "
"échec de traduction."
#: ../Doc/howto/pyporting.rst:150
#: howto/pyporting.rst:150
msgid ""
"Unfortunately the tools can't automate everything to make your code work "
"under Python 3 and so there are a handful of things you will need to update "
@ -390,11 +390,11 @@ msgstr ""
"points à surveiller qui peuvent réellement être considérés comme des "
"problèmes difficiles à déboguer si vous n'y prêtez pas attention."
#: ../Doc/howto/pyporting.rst:162
#: howto/pyporting.rst:162
msgid "Division"
msgstr "Division"
#: ../Doc/howto/pyporting.rst:164
#: howto/pyporting.rst:164
msgid ""
"In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` "
"values result in a ``float``. This change has actually been planned since "
@ -413,11 +413,11 @@ msgstr ""
"recommandation, vous devrez manuellement modifier votre code et effectuer "
"deux changements :"
#: ../Doc/howto/pyporting.rst:172
#: howto/pyporting.rst:172
msgid "Add ``from __future__ import division`` to your files"
msgstr "Ajouter ``from __future__ import division`` à vos fichiers"
#: ../Doc/howto/pyporting.rst:173
#: howto/pyporting.rst:173
msgid ""
"Update any division operator as necessary to either use ``//`` to use floor "
"division or continue using ``/`` and expect a float"
@ -426,7 +426,7 @@ msgstr ""
"entière, le cas échant, ou utiliser ``/`` et vous attendre à un résultat "
"flottant"
#: ../Doc/howto/pyporting.rst:176
#: howto/pyporting.rst:176
msgid ""
"The reason that ``/`` isn't simply translated to ``//`` automatically is "
"that if an object defines a ``__truediv__`` method but not ``__floordiv__`` "
@ -440,11 +440,11 @@ msgstr ""
"pour définir une opération quelconque mais pour laquelle ``//`` n'a pas du "
"tout la même signification, voire n'est pas utilisé du tout)."
#: ../Doc/howto/pyporting.rst:183
#: howto/pyporting.rst:183
msgid "Text versus binary data"
msgstr "Texte et données binaires"
#: ../Doc/howto/pyporting.rst:185
#: howto/pyporting.rst:185
msgid ""
"In Python 2 you could use the ``str`` type for both text and binary data. "
"Unfortunately this confluence of two different concepts could lead to "
@ -466,7 +466,7 @@ msgstr ""
"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être "
"compatibles avec des données au format texte."
#: ../Doc/howto/pyporting.rst:194
#: howto/pyporting.rst:194
msgid ""
"To make the distinction between text and binary data clearer and more "
"pronounced, Python 3 did what most languages created in the age of the "
@ -487,7 +487,7 @@ msgstr ""
"préoccuper du type des données manipulées, ce qui explique que ce processus "
"ne peut pas être entièrement automatisé."
#: ../Doc/howto/pyporting.rst:203
#: howto/pyporting.rst:203
msgid ""
"To start, you will need to decide which APIs take text and which take binary "
"(it is **highly** recommended you don't design APIs that can take both due "
@ -526,39 +526,39 @@ msgstr ""
"Notez que depuis Python 3.5, la méthode ``__mod__`` a été ajoutée au type "
"*bytes*."
#: ../Doc/howto/pyporting.rst:220
#: howto/pyporting.rst:220
msgid "**Text data**"
msgstr "**Format texte**"
#: ../Doc/howto/pyporting.rst:220
#: howto/pyporting.rst:220
msgid "**Binary data**"
msgstr "**Format binaire**"
#: ../Doc/howto/pyporting.rst:222
#: howto/pyporting.rst:222
msgid "\\"
msgstr "\\"
#: ../Doc/howto/pyporting.rst:222
#: howto/pyporting.rst:222
msgid "decode"
msgstr "decode"
#: ../Doc/howto/pyporting.rst:224
#: howto/pyporting.rst:224
msgid "encode"
msgstr "encode"
#: ../Doc/howto/pyporting.rst:226
#: howto/pyporting.rst:226
msgid "format"
msgstr "format"
#: ../Doc/howto/pyporting.rst:228
#: howto/pyporting.rst:228
msgid "isdecimal"
msgstr "isdecimal"
#: ../Doc/howto/pyporting.rst:230
#: howto/pyporting.rst:230
msgid "isnumeric"
msgstr "isnumeric"
#: ../Doc/howto/pyporting.rst:233
#: howto/pyporting.rst:233
msgid ""
"Making the distinction easier to handle can be accomplished by encoding and "
"decoding between binary data and text at the edge of your code. This means "
@ -576,7 +576,7 @@ msgstr ""
"de votre code et permet de ne pas se préoccuper du type des données sur "
"lesquelles vous travaillez."
#: ../Doc/howto/pyporting.rst:240
#: howto/pyporting.rst:240
msgid ""
"The next issue is making sure you know whether the string literals in your "
"code represent text or binary data. You should add a ``b`` prefix to any "
@ -594,7 +594,7 @@ msgstr ""
"Unicode, mais cette pratique s'est avérée moins efficace que l'ajout "
"explicite des préfixe ``b`` et ``u``)."
#: ../Doc/howto/pyporting.rst:247
#: howto/pyporting.rst:247
msgid ""
"As part of this dichotomy you also need to be careful about opening files. "
"Unless you have been working on Windows, there is a chance you have not "
@ -628,7 +628,7 @@ msgstr ""
"utiliser :func:`codecs.open` qui n'est nécessaire que pour préserver une "
"compatibilité avec Python 2.5."
#: ../Doc/howto/pyporting.rst:261
#: howto/pyporting.rst:261
msgid ""
"The constructors of both ``str`` and ``bytes`` have different semantics for "
"the same arguments between Python 2 & 3. Passing an integer to ``bytes`` in "
@ -651,7 +651,7 @@ msgstr ""
"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en "
"chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``."
#: ../Doc/howto/pyporting.rst:271
#: howto/pyporting.rst:271
msgid ""
"Finally, the indexing of binary data requires careful handling (slicing does "
"**not** require any special handling). In Python 2, ``b'123'[1] == b'2'`` "
@ -672,17 +672,17 @@ msgstr ""
"dispose d'une fonction appelée ``six.indexbytes()`` qui renvoie un entier "
"comme en Python 3 : ``six.indexbytes(b'123', 1)``."
#: ../Doc/howto/pyporting.rst:280
#: howto/pyporting.rst:280
msgid "To summarize:"
msgstr "Pour résumer :"
#: ../Doc/howto/pyporting.rst:282
#: howto/pyporting.rst:282
msgid "Decide which of your APIs take text and which take binary data"
msgstr ""
"Décidez lesquelles de vos API travaillent sur du texte et lesquelles "
"travaillent sur des données binaires"
#: ../Doc/howto/pyporting.rst:283
#: howto/pyporting.rst:283
msgid ""
"Make sure that your code that works with text also works with ``unicode`` "
"and code for binary data works with ``bytes`` in Python 2 (see the table "
@ -693,7 +693,7 @@ msgstr ""
"avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus pour la liste "
"des méthodes utilisables par chaque type)"
#: ../Doc/howto/pyporting.rst:286
#: howto/pyporting.rst:286
msgid ""
"Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` "
"prefix"
@ -701,7 +701,7 @@ msgstr ""
"Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de "
"caractères littérales par ``u``"
#: ../Doc/howto/pyporting.rst:288
#: howto/pyporting.rst:288
msgid ""
"Decode binary data to text as soon as possible, encode text as binary data "
"as late as possible"
@ -709,7 +709,7 @@ msgstr ""
"Décodez les données binaires en texte dès que possible, encodez votre texte "
"au format binaire le plus tard possible"
#: ../Doc/howto/pyporting.rst:290
#: howto/pyporting.rst:290
msgid ""
"Open files using :func:`io.open` and make sure to specify the ``b`` mode "
"when appropriate"
@ -717,16 +717,16 @@ msgstr ""
"Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de "
"spécifier le mode ``b`` le cas échéant"
#: ../Doc/howto/pyporting.rst:292
#: howto/pyporting.rst:292
msgid "Be careful when indexing into binary data"
msgstr "Utilisez avec prudence l'indiçage sur des données binaires"
#: ../Doc/howto/pyporting.rst:296
#: howto/pyporting.rst:296
msgid "Use feature detection instead of version detection"
msgstr ""
"Utilisez la détection de fonctionnalités plutôt que la détection de version"
#: ../Doc/howto/pyporting.rst:298
#: howto/pyporting.rst:298
msgid ""
"Inevitably you will have code that has to choose what to do based on what "
"version of Python is running. The best way to do this is with feature "
@ -743,7 +743,7 @@ msgstr ""
"version est Python 2 et non Python 3. Afin de clarifier cette pratique, "
"voici un exemple."
#: ../Doc/howto/pyporting.rst:305
#: howto/pyporting.rst:305
msgid ""
"Let's pretend that you need access to a feature of :mod:`importlib` that is "
"available in Python's standard library since Python 3.3 and available for "
@ -756,7 +756,7 @@ msgstr ""
"*PyPI*. Vous pourriez être tenté d'écrire un code qui accède, par exemple, "
"au module :mod:`importlib.abc` avec l'approche suivante ::"
#: ../Doc/howto/pyporting.rst:317
#: howto/pyporting.rst:317
msgid ""
"The problem with this code is what happens when Python 4 comes out? It would "
"be better to treat Python 2 as the exceptional case instead of Python 3 and "
@ -768,7 +768,7 @@ msgstr ""
"Python 3 et de supposer que les versions futures de Python 2 seront plus "
"compatibles avec Python 3 qu'avec Python 2 ::"
#: ../Doc/howto/pyporting.rst:329
#: howto/pyporting.rst:329
msgid ""
"The best solution, though, is to do no version detection at all and instead "
"rely on feature detection. That avoids any potential issues of getting the "
@ -779,11 +779,11 @@ msgstr ""
"Cela évite les problèmes potentiels liés aux erreurs de détection de version "
"et facilite la compatibilité future ::"
#: ../Doc/howto/pyporting.rst:340
#: howto/pyporting.rst:340
msgid "Prevent compatibility regressions"
msgstr "Prévenir les régressions de compatibilité"
#: ../Doc/howto/pyporting.rst:342
#: howto/pyporting.rst:342
msgid ""
"Once you have fully translated your code to be compatible with Python 3, you "
"will want to make sure your code doesn't regress and stop working under "
@ -795,7 +795,7 @@ msgstr ""
"Python 3. Ceci est particulièrement important si une de vos dépendances vous "
"empêche de réellement exécuter le code sous Python 3 pour le moment."
#: ../Doc/howto/pyporting.rst:347
#: howto/pyporting.rst:347
msgid ""
"To help with staying compatible, any new modules you create should have at "
"least the following block of code at the top of it::"
@ -804,7 +804,7 @@ msgstr ""
"les nouveaux modules que vous créez aient au moins le bloc de code suivant "
"en en-tête ::"
#: ../Doc/howto/pyporting.rst:354
#: howto/pyporting.rst:354
msgid ""
"You can also run Python 2 with the ``-3`` flag to be warned about various "
"compatibility issues your code triggers during execution. If you turn "
@ -817,7 +817,7 @@ msgstr ""
"``-Werror``, vous pouvez être certain que ne passez pas accidentellement à "
"côté d'un avertissement."
#: ../Doc/howto/pyporting.rst:359
#: howto/pyporting.rst:359
msgid ""
"You can also use the Pylint_ project and its ``--py3k`` flag to lint your "
"code to receive warnings when your code begins to deviate from Python 3 "
@ -834,11 +834,11 @@ msgstr ""
"de votre part le support de Python 2.7 et Python 3.4 ou ultérieur étant "
"donné qu'il s'agit de la version minimale gérée par Pylint."
#: ../Doc/howto/pyporting.rst:368
#: howto/pyporting.rst:368
msgid "Check which dependencies block your transition"
msgstr "Vérifier quelles dépendances empêchent la migration"
#: ../Doc/howto/pyporting.rst:370
#: howto/pyporting.rst:370
msgid ""
"**After** you have made your code compatible with Python 3 you should begin "
"to care about whether your dependencies have also been ported. The "
@ -854,7 +854,7 @@ msgstr ""
"Il existe un outil en ligne de commande ainsi qu'une interface web : https://"
"caniusepython3.com."
#: ../Doc/howto/pyporting.rst:377
#: howto/pyporting.rst:377
msgid ""
"The project also provides code which you can integrate into your test suite "
"so that you will have a failing test when you no longer have dependencies "
@ -868,13 +868,13 @@ msgstr ""
"vérifier manuellement vos dépendances et d'être notifié rapidement quand "
"vous pouvez exécuter votre application avec Python 3."
#: ../Doc/howto/pyporting.rst:384
#: howto/pyporting.rst:384
msgid "Update your ``setup.py`` file to denote Python 3 compatibility"
msgstr ""
"Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité "
"avec Python 3"
#: ../Doc/howto/pyporting.rst:386
#: howto/pyporting.rst:386
msgid ""
"Once your code works under Python 3, you should update the classifiers in "
"your ``setup.py`` to contain ``Programming Language :: Python :: 3`` and to "
@ -889,11 +889,11 @@ msgstr ""
"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de "
"Python que vous supportez désormais."
#: ../Doc/howto/pyporting.rst:394
#: howto/pyporting.rst:394
msgid "Use continuous integration to stay compatible"
msgstr "Utiliser l'intégration continue pour maintenir la compatibilité"
#: ../Doc/howto/pyporting.rst:396
#: howto/pyporting.rst:396
msgid ""
"Once you are able to fully run under Python 3 you will want to make sure "
"your code always works under both Python 2 & 3. Probably the best tool for "
@ -908,7 +908,7 @@ msgstr ""
"système d'intégration continue afin de ne jamais accidentellement casser "
"votre gestion de Python 2 ou 3."
#: ../Doc/howto/pyporting.rst:402
#: howto/pyporting.rst:402
msgid ""
"You may also want to use the ``-bb`` flag with the Python 3 interpreter to "
"trigger an exception when you are comparing bytes to strings or bytes to an "
@ -929,7 +929,7 @@ msgstr ""
"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son "
"identification et sa localisation."
#: ../Doc/howto/pyporting.rst:410
#: howto/pyporting.rst:410
msgid ""
"And that's mostly it! At this point your code base is compatible with both "
"Python 2 and 3 simultaneously. Your testing will also be set up so that you "
@ -942,11 +942,11 @@ msgstr ""
"Python 2 ou 3 indépendamment de la version que vous utilisez pendant le "
"développement."
#: ../Doc/howto/pyporting.rst:417
#: howto/pyporting.rst:417
msgid "Consider using optional static type checking"
msgstr "Envisager l'utilisation d'un vérificateur de type statique optionnel"
#: ../Doc/howto/pyporting.rst:419
#: howto/pyporting.rst:419
msgid ""
"Another way to help port your code is to use a static type checker like "
"mypy_ or pytype_ on your code. These tools can be used to analyze your code "

File diff suppressed because it is too large Load diff

View file

@ -15,23 +15,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
#: ../Doc/howto/sockets.rst:5
#: howto/sockets.rst:5
msgid "Socket Programming HOWTO"
msgstr "Guide pratique : programmation avec les *sockets*"
#: ../Doc/howto/sockets.rst:0
#: howto/sockets.rst:0
msgid "Author"
msgstr "Auteur"
#: ../Doc/howto/sockets.rst:7
#: howto/sockets.rst:7
msgid "Gordon McMillan"
msgstr "Gordon McMillan"
#: ../Doc/howto/sockets.rst:None
#: howto/sockets.rst:None
msgid "Abstract"
msgstr "Résumé"
#: ../Doc/howto/sockets.rst:12
#: howto/sockets.rst:12
msgid ""
"Sockets are used nearly everywhere, but are one of the most severely "
"misunderstood technologies around. This is a 10,000 foot overview of "
@ -47,11 +47,11 @@ msgstr ""
"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment "
"d'informations pour commencer à les utiliser correctement."
#: ../Doc/howto/sockets.rst:20
#: howto/sockets.rst:20
msgid "Sockets"
msgstr "Connecteurs (*sockets*)"
#: ../Doc/howto/sockets.rst:22
#: howto/sockets.rst:22
msgid ""
"I'm only going to talk about INET (i.e. IPv4) sockets, but they account for "
"at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. "
@ -74,7 +74,7 @@ msgstr ""
"devez savoir comment ils fonctionnent avant de vous intéresser aux "
"connecteurs non bloquants."
#: ../Doc/howto/sockets.rst:31
#: howto/sockets.rst:31
msgid ""
"Part of the trouble with understanding these things is that \"socket\" can "
"mean a number of subtly different things, depending on context. So first, "
@ -93,11 +93,11 @@ msgstr ""
"le serveur web avec lequel elle parle utilise à la fois des connecteurs "
 serveur » et des connecteurs « client »."
#: ../Doc/howto/sockets.rst:40
#: howto/sockets.rst:40
msgid "History"
msgstr "Historique"
#: ../Doc/howto/sockets.rst:42
#: howto/sockets.rst:42
msgid ""
"Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets "
"are by far the most popular. On any given platform, there are likely to be "
@ -110,7 +110,7 @@ msgstr ""
"mais pour la communication entre plates-formes, les connecteurs sont à peu "
"près la seule solution valable."
#: ../Doc/howto/sockets.rst:47
#: howto/sockets.rst:47
msgid ""
"They were invented in Berkeley as part of the BSD flavor of Unix. They "
"spread like wildfire with the Internet. With good reason --- the combination "
@ -123,11 +123,11 @@ msgstr ""
"avec nimporte quelle machine dans le monde entier incroyablement facile (du "
"moins par rapport à d'autres systèmes)."
#: ../Doc/howto/sockets.rst:54
#: howto/sockets.rst:54
msgid "Creating a Socket"
msgstr "Création d'un connecteur"
#: ../Doc/howto/sockets.rst:56
#: howto/sockets.rst:56
msgid ""
"Roughly speaking, when you clicked on the link that brought you to this "
"page, your browser did something like the following::"
@ -135,7 +135,7 @@ msgstr ""
"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette "
"page, votre navigateur a fait quelque chose comme ceci ::"
#: ../Doc/howto/sockets.rst:64
#: howto/sockets.rst:64
msgid ""
"When the ``connect`` completes, the socket ``s`` can be used to send in a "
"request for the text of the page. The same socket will read the reply, and "
@ -148,7 +148,7 @@ msgstr ""
"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul "
"échange (ou un petit ensemble d'échanges séquentiels)."
#: ../Doc/howto/sockets.rst:70
#: howto/sockets.rst:70
msgid ""
"What happens in the web server is a bit more complex. First, the web server "
"creates a \"server socket\"::"
@ -156,7 +156,7 @@ msgstr ""
"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, "
"le serveur web crée un « connecteur serveur » ::"
#: ../Doc/howto/sockets.rst:80
#: howto/sockets.rst:80
msgid ""
"A couple things to notice: we used ``socket.gethostname()`` so that the "
"socket would be visible to the outside world. If we had used ``s."
@ -173,7 +173,7 @@ msgstr ""
"connecteur est accessible par n'importe quelle adresse que la machine "
"possède."
#: ../Doc/howto/sockets.rst:87
#: howto/sockets.rst:87
msgid ""
"A second thing to note: low number ports are usually reserved for \"well "
"known\" services (HTTP, SNMP etc). If you're playing around, use a nice high "
@ -183,7 +183,7 @@ msgstr ""
"généralement réservés aux services « bien connus » (HTTP, SNMP, etc.). Si "
"vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)."
#: ../Doc/howto/sockets.rst:91
#: howto/sockets.rst:91
msgid ""
"Finally, the argument to ``listen`` tells the socket library that we want it "
"to queue up as many as 5 connect requests (the normal max) before refusing "
@ -195,7 +195,7 @@ msgstr ""
"connexion (le maximum normal) avant de refuser les connexions externes. Si "
"le reste du code est écrit correctement, cela devrait suffire."
#: ../Doc/howto/sockets.rst:95
#: howto/sockets.rst:95
msgid ""
"Now that we have a \"server\" socket, listening on port 80, we can enter the "
"mainloop of the web server::"
@ -203,7 +203,7 @@ msgstr ""
"Maintenant que nous avons un connecteur « serveur », en écoute sur le port "
"80, nous pouvons entrer dans la boucle principale du serveur web ::"
#: ../Doc/howto/sockets.rst:106
#: howto/sockets.rst:106
msgid ""
"There's actually 3 general ways in which this loop could work - dispatching "
"a thread to handle ``clientsocket``, create a new process to handle "
@ -233,11 +233,11 @@ msgstr ""
"connexions. Les deux « clients » sont libres de discuter — ils utilisent un "
"port alloué dynamiquement qui sera recyclé à la fin de la conversation."
#: ../Doc/howto/sockets.rst:121
#: howto/sockets.rst:121
msgid "IPC"
msgstr "*IPC* (Communication Entre Processus)"
#: ../Doc/howto/sockets.rst:123
#: howto/sockets.rst:123
msgid ""
"If you need fast IPC between two processes on one machine, you should look "
"into pipes or shared memory. If you do decide to use AF_INET sockets, bind "
@ -252,7 +252,7 @@ msgstr ""
"des plates-formes, cela contourne quelques couches réseau et est un peu plus "
"rapide."
#: ../Doc/howto/sockets.rst:129
#: howto/sockets.rst:129
msgid ""
"The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level "
"API."
@ -260,11 +260,11 @@ msgstr ""
"Le :mod:`multiprocessing` intègre de lIPC multiplateforme dans une API de "
"plus haut niveau."
#: ../Doc/howto/sockets.rst:134
#: howto/sockets.rst:134
msgid "Using a Socket"
msgstr "Utilisation d'un connecteur"
#: ../Doc/howto/sockets.rst:136
#: howto/sockets.rst:136
msgid ""
"The first thing to note, is that the web browser's \"client\" socket and the "
"web server's \"client\" socket are identical beasts. That is, this is a "
@ -283,7 +283,7 @@ msgstr ""
"signe. Mais c'est une décision de conception — ce n'est pas une règle des "
"connecteurs."
#: ../Doc/howto/sockets.rst:143
#: howto/sockets.rst:143
msgid ""
"Now there are two sets of verbs to use for communication. You can use "
"``send`` and ``recv``, or you can transform your client socket into a file-"
@ -305,7 +305,7 @@ msgstr ""
"pouvez attendre la réponse pour toujours, parce que la requête peut encore "
"être dans votre mémoire tampon de sortie."
#: ../Doc/howto/sockets.rst:152
#: howto/sockets.rst:152
msgid ""
"Now we come to the major stumbling block of sockets - ``send`` and ``recv`` "
"operate on the network buffers. They do not necessarily handle all the bytes "
@ -324,7 +324,7 @@ msgstr ""
"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de "
"les rappeler jusqu'à ce que votre message ait été complètement traité."
#: ../Doc/howto/sockets.rst:160
#: howto/sockets.rst:160
msgid ""
"When a ``recv`` returns 0 bytes, it means the other side has closed (or is "
"in the process of closing) the connection. You will not receive any more "
@ -336,7 +336,7 @@ msgstr ""
"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec "
"succès. Jen parlerai plus tard."
#: ../Doc/howto/sockets.rst:165
#: howto/sockets.rst:165
msgid ""
"A protocol like HTTP uses a socket for only one transfer. The client sends a "
"request, then reads a reply. That's it. The socket is discarded. This means "
@ -347,7 +347,7 @@ msgstr ""
"est mis au rebut. Cela signifie qu'un client peut détecter la fin de la "
"réponse en recevant 0 octet."
#: ../Doc/howto/sockets.rst:169
#: howto/sockets.rst:169
msgid ""
"But if you plan to reuse your socket for further transfers, you need to "
"realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I "
@ -373,7 +373,7 @@ msgstr ""
"mieux), *ou terminer en coupant la connexion*. Le choix est entièrement de "
"votre côté (mais certaines façons sont meilleurs que d'autres)."
#: ../Doc/howto/sockets.rst:180
#: howto/sockets.rst:180
msgid ""
"Assuming you don't want to end the connection, the simplest solution is a "
"fixed length message::"
@ -381,7 +381,7 @@ msgstr ""
"En supposant que vous ne vouliez pas terminer la connexion, la solution la "
"plus simple est un message de longueur fixe ::"
#: ../Doc/howto/sockets.rst:217
#: howto/sockets.rst:217
msgid ""
"The sending code here is usable for almost any messaging scheme - in Python "
"you send strings, and you can use ``len()`` to determine its length (even if "
@ -396,7 +396,7 @@ msgstr ""
"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne "
"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)."
#: ../Doc/howto/sockets.rst:223
#: howto/sockets.rst:223
msgid ""
"The easiest enhancement is to make the first character of the message an "
"indicator of message type, and have the type determine the length. Now you "
@ -416,7 +416,7 @@ msgstr ""
"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un "
"délimiteur."
#: ../Doc/howto/sockets.rst:231
#: howto/sockets.rst:231
msgid ""
"One complication to be aware of: if your conversational protocol allows "
"multiple messages to be sent back to back (without some kind of reply), and "
@ -431,7 +431,7 @@ msgstr ""
"message suivant. Vous devrez alors le mettre de côté et le conserver, "
"jusqu'à ce que vous en ayez besoin."
#: ../Doc/howto/sockets.rst:237
#: howto/sockets.rst:237
msgid ""
"Prefixing the message with its length (say, as 5 numeric characters) gets "
"more complex, because (believe it or not), you may not get all 5 characters "
@ -453,7 +453,7 @@ msgstr ""
"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet "
"avertissement, vous finirez par vous faire avoir par cette subtilité !"
#: ../Doc/howto/sockets.rst:246
#: howto/sockets.rst:246
msgid ""
"In the interests of space, building your character, (and preserving my "
"competitive position), these enhancements are left as an exercise for the "
@ -464,11 +464,11 @@ msgstr ""
"ces améliorations ne seront pas abordées et sont laissées en exercice au "
"lecteur. Passons maintenant au nettoyage."
#: ../Doc/howto/sockets.rst:252
#: howto/sockets.rst:252
msgid "Binary Data"
msgstr "Données binaires"
#: ../Doc/howto/sockets.rst:254
#: howto/sockets.rst:254
msgid ""
"It is perfectly possible to send binary data over a socket. The major "
"problem is that not all machines use the same formats for binary data. For "
@ -493,7 +493,7 @@ msgstr ""
"utilise lordre doctets inverse, ceux-ci échangent les octets de manière "
"appropriée."
#: ../Doc/howto/sockets.rst:264
#: howto/sockets.rst:264
msgid ""
"In these days of 32 bit machines, the ascii representation of binary data is "
"frequently smaller than the binary representation. That's because a "
@ -509,11 +509,11 @@ msgstr ""
"très bien avec les messages de longueur fixe. Ah, les décisions, les "
"décisions…"
#: ../Doc/howto/sockets.rst:272
#: howto/sockets.rst:272
msgid "Disconnecting"
msgstr "Déconnexion"
#: ../Doc/howto/sockets.rst:274
#: howto/sockets.rst:274
msgid ""
"Strictly speaking, you're supposed to use ``shutdown`` on a socket before "
"you ``close`` it. The ``shutdown`` is an advisory to the socket at the "
@ -534,7 +534,7 @@ msgstr ""
"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la "
"plupart des situations, un ``shutdown`` explicite nest pas nécessaire."
#: ../Doc/howto/sockets.rst:282
#: howto/sockets.rst:282
msgid ""
"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The "
"client sends a request and then does a ``shutdown(1)``. This tells the "
@ -551,7 +551,7 @@ msgstr ""
"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en "
"effet, le client était encore en train de recevoir."
#: ../Doc/howto/sockets.rst:289
#: howto/sockets.rst:289
msgid ""
"Python takes the automatic shutdown a step further, and says that when a "
"socket is garbage collected, it will automatically do a ``close`` if it's "
@ -568,11 +568,11 @@ msgstr ""
"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos "
"connecteurs quand vous avez terminé *sil vous plait*."
#: ../Doc/howto/sockets.rst:297
#: howto/sockets.rst:297
msgid "When Sockets Die"
msgstr "Quand les connecteurs meurent"
#: ../Doc/howto/sockets.rst:299
#: howto/sockets.rst:299
msgid ""
"Probably the worst thing about using blocking sockets is what happens when "
"the other side comes down hard (without doing a ``close``). Your socket is "
@ -600,11 +600,11 @@ msgstr ""
"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre "
"processus risque d'être foutu."
#: ../Doc/howto/sockets.rst:313
#: howto/sockets.rst:313
msgid "Non-blocking Sockets"
msgstr "Connecteurs non bloquants"
#: ../Doc/howto/sockets.rst:315
#: howto/sockets.rst:315
msgid ""
"If you've understood the preceding, you already know most of what you need "
"to know about the mechanics of using sockets. You'll still use the same "
@ -616,7 +616,7 @@ msgstr ""
"toujours les mêmes appels, de la même façon. Il ny que ça. Si vous le "
"faites bien, cest presque dans la poche."
#: ../Doc/howto/sockets.rst:320
#: howto/sockets.rst:320
msgid ""
"In Python, you use ``socket.setblocking(0)`` to make it non-blocking. In C, "
"it's more complex, (for one thing, you'll need to choose between the BSD "
@ -633,7 +633,7 @@ msgstr ""
"avoir créé le connecteur mais avant de lutiliser (en fait, si vous êtes "
"fou, vous pouvez alterner)."
#: ../Doc/howto/sockets.rst:327
#: howto/sockets.rst:327
msgid ""
"The major mechanical difference is that ``send``, ``recv``, ``connect`` and "
"``accept`` can return without having done anything. You have (of course) a "
@ -650,11 +650,11 @@ msgstr ""
"vampiriser le processeur. Alors, évitons les solutions vouées à léchec dès "
"le départ et faisons les choses correctement."
#: ../Doc/howto/sockets.rst:334
#: howto/sockets.rst:334
msgid "Use ``select``."
msgstr "Utilisation de ``select``."
#: ../Doc/howto/sockets.rst:336
#: howto/sockets.rst:336
msgid ""
"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, "
"but it's close enough to the C version that if you understand ``select`` in "
@ -664,7 +664,7 @@ msgstr ""
"mais c'est assez proche de la version C ; aussi, si vous comprenez "
"``select`` en Python, vous aurez peu de problèmes en C ::"
#: ../Doc/howto/sockets.rst:347
#: howto/sockets.rst:347
msgid ""
"You pass ``select`` three lists: the first contains all sockets that you "
"might want to try reading; the second all the sockets you might want to try "
@ -684,7 +684,7 @@ msgstr ""
"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de "
"ne pas le faire."
#: ../Doc/howto/sockets.rst:355
#: howto/sockets.rst:355
msgid ""
"In return, you will get three lists. They contain the sockets that are "
"actually readable, writable and in error. Each of these lists is a subset "
@ -695,7 +695,7 @@ msgstr ""
"est un sous-ensemble (éventuellement vide) de la liste correspondante que "
"vous avez transmise."
#: ../Doc/howto/sockets.rst:359
#: howto/sockets.rst:359
msgid ""
"If a socket is in the output readable list, you can be as-close-to-certain-"
"as-we-ever-get-in-this-business that a ``recv`` on that socket will return "
@ -713,7 +713,7 @@ msgstr ""
"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon "
"réseau sortant est disponible)."
#: ../Doc/howto/sockets.rst:366
#: howto/sockets.rst:366
msgid ""
"If you have a \"server\" socket, put it in the potential_readers list. If it "
"comes out in the readable list, your ``accept`` will (almost certainly) "
@ -730,7 +730,7 @@ msgstr ""
"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous "
"avez une bonne chance qu'il se soit connecté."
#: ../Doc/howto/sockets.rst:372
#: howto/sockets.rst:372
msgid ""
"Actually, ``select`` can be handy even with blocking sockets. It's one way "
"of determining whether you will block - the socket returns as readable when "
@ -744,7 +744,7 @@ msgstr ""
"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a "
"terminé, ou si elle est simplement occupée par autre chose."
#: ../Doc/howto/sockets.rst:377
#: howto/sockets.rst:377
msgid ""
"**Portability alert**: On Unix, ``select`` works both with the sockets and "
"files. Don't try this on Windows. On Windows, ``select`` works with sockets "

View file

@ -15,27 +15,27 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n"
#: ../Doc/howto/sorting.rst:4
#: howto/sorting.rst:4
msgid "Sorting HOW TO"
msgstr "Guide pour le tri"
#: ../Doc/howto/sorting.rst:0
#: howto/sorting.rst:0
msgid "Author"
msgstr "Auteur"
#: ../Doc/howto/sorting.rst:6
#: howto/sorting.rst:6
msgid "Andrew Dalke and Raymond Hettinger"
msgstr "Andrew Dalke et Raymond Hettinger"
#: ../Doc/howto/sorting.rst:0
#: howto/sorting.rst:0
msgid "Release"
msgstr "Version"
#: ../Doc/howto/sorting.rst:7
#: howto/sorting.rst:7
msgid "0.1"
msgstr "0.1"
#: ../Doc/howto/sorting.rst:10
#: howto/sorting.rst:10
msgid ""
"Python lists have a built-in :meth:`list.sort` method that modifies the list "
"in-place. There is also a :func:`sorted` built-in function that builds a "
@ -45,7 +45,7 @@ msgstr ""
"listes elles-mêmes. Il y a également une fonction native :func:`sorted` qui "
"construit une nouvelle liste triée depuis un itérable."
#: ../Doc/howto/sorting.rst:14
#: howto/sorting.rst:14
msgid ""
"In this document, we explore the various techniques for sorting data using "
"Python."
@ -53,11 +53,11 @@ msgstr ""
"Dans ce document, nous explorons différentes techniques pour trier les "
"données en Python."
#: ../Doc/howto/sorting.rst:18
#: howto/sorting.rst:18
msgid "Sorting Basics"
msgstr "Les bases du tri"
#: ../Doc/howto/sorting.rst:20
#: howto/sorting.rst:20
msgid ""
"A simple ascending sort is very easy: just call the :func:`sorted` function. "
"It returns a new sorted list::"
@ -65,7 +65,7 @@ msgstr ""
"Un tri ascendant simple est très facile : il suffit d'appeler la fonction :"
"func:`sorted`. Elle renvoie une nouvelle liste triée ::"
#: ../Doc/howto/sorting.rst:26
#: howto/sorting.rst:26
msgid ""
"You can also use the :meth:`list.sort` method. It modifies the list in-place "
"(and returns ``None`` to avoid confusion). Usually it's less convenient "
@ -78,7 +78,7 @@ msgstr ""
"`sorted` -- mais si vous n'avez pas besoin de la liste originale, cette "
"technique est légèrement plus efficace."
#: ../Doc/howto/sorting.rst:36
#: howto/sorting.rst:36
msgid ""
"Another difference is that the :meth:`list.sort` method is only defined for "
"lists. In contrast, the :func:`sorted` function accepts any iterable."
@ -87,11 +87,11 @@ msgstr ""
"définie pour les listes. Au contraire, la fonction :func:`sorted` accepte "
"n'importe quel itérable."
#: ../Doc/howto/sorting.rst:43
#: howto/sorting.rst:43
msgid "Key Functions"
msgstr "Fonctions clef"
#: ../Doc/howto/sorting.rst:45
#: howto/sorting.rst:45
msgid ""
"Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify "
"a function to be called on each list element prior to making comparisons."
@ -100,11 +100,11 @@ msgstr ""
"spécifier une fonction qui peut être appelée sur chaque élément de la liste "
"afin d'effectuer des comparaisons."
#: ../Doc/howto/sorting.rst:48
#: howto/sorting.rst:48
msgid "For example, here's a case-insensitive string comparison:"
msgstr "Par exemple, voici une comparaison de texte insensible à la casse:"
#: ../Doc/howto/sorting.rst:53
#: howto/sorting.rst:53
msgid ""
"The value of the *key* parameter should be a function that takes a single "
"argument and returns a key to use for sorting purposes. This technique is "
@ -115,7 +115,7 @@ msgstr ""
"est rapide car la fonction clef est appelée exactement une seule fois pour "
"chaque enregistrement en entrée."
#: ../Doc/howto/sorting.rst:57
#: howto/sorting.rst:57
msgid ""
"A common pattern is to sort complex objects using some of the object's "
"indices as keys. For example:"
@ -123,18 +123,18 @@ msgstr ""
"Un usage fréquent est de faire un tri sur des objets complexes en utilisant "
"les indices des objets en tant que clef. Par exemple :"
#: ../Doc/howto/sorting.rst:68
#: howto/sorting.rst:68
msgid ""
"The same technique works for objects with named attributes. For example:"
msgstr ""
"La même technique marche pour des objets avec des attributs nommés. Par "
"exemple :"
#: ../Doc/howto/sorting.rst:87
#: howto/sorting.rst:87
msgid "Operator Module Functions"
msgstr "Fonctions du module *operator*"
#: ../Doc/howto/sorting.rst:89
#: howto/sorting.rst:89
msgid ""
"The key-function patterns shown above are very common, so Python provides "
"convenience functions to make accessor functions easier and faster. The :mod:"
@ -147,13 +147,13 @@ msgstr ""
"func:`~operator.itemgetter`, :func:`~operator.attrgetter`, et :func:"
"`~operator.methodcaller`."
#: ../Doc/howto/sorting.rst:94
#: howto/sorting.rst:94
msgid "Using those functions, the above examples become simpler and faster:"
msgstr ""
"En utilisant ces fonctions, les exemples au dessus deviennent plus simples "
"et plus rapides :"
#: ../Doc/howto/sorting.rst:104
#: howto/sorting.rst:104
msgid ""
"The operator module functions allow multiple levels of sorting. For example, "
"to sort by *grade* then by *age*:"
@ -161,11 +161,11 @@ msgstr ""
"Les fonctions du module *operator* permettent plusieurs niveaux de tri. Par "
"exemple, pour trier par *grade* puis par *age* :"
#: ../Doc/howto/sorting.rst:114
#: howto/sorting.rst:114
msgid "Ascending and Descending"
msgstr "Ascendant et descendant"
#: ../Doc/howto/sorting.rst:116
#: howto/sorting.rst:116
msgid ""
"Both :meth:`list.sort` and :func:`sorted` accept a *reverse* parameter with "
"a boolean value. This is used to flag descending sorts. For example, to get "
@ -176,11 +176,11 @@ msgstr ""
"des tris. Par exemple, pour avoir les données des étudiants dans l'ordre "
"inverse par *age* :"
#: ../Doc/howto/sorting.rst:127
#: howto/sorting.rst:127
msgid "Sort Stability and Complex Sorts"
msgstr "Stabilité des tris et tris complexes"
#: ../Doc/howto/sorting.rst:129
#: howto/sorting.rst:129
msgid ""
"Sorts are guaranteed to be `stable <https://en.wikipedia.org/wiki/"
"Sorting_algorithm#Stability>`_\\. That means that when multiple records have "
@ -190,7 +190,7 @@ msgstr ""
"Algorithme_de_tri#Caract.C3.A8re_stable>`_\\. Cela signifie que lorsque "
"plusieurs enregistrements on la même clef, leur ordre original est préservé."
#: ../Doc/howto/sorting.rst:137
#: howto/sorting.rst:137
msgid ""
"Notice how the two records for *blue* retain their original order so that "
"``('blue', 1)`` is guaranteed to precede ``('blue', 2)``."
@ -199,7 +199,7 @@ msgstr ""
"et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', "
"2)``."
#: ../Doc/howto/sorting.rst:140
#: howto/sorting.rst:140
msgid ""
"This wonderful property lets you build complex sorts in a series of sorting "
"steps. For example, to sort the student data by descending *grade* and then "
@ -210,7 +210,7 @@ msgstr ""
"des étudiants en ordre descendant par *grade* puis en ordre ascendant par "
"*age*, effectuez un tri par *age* en premier puis un second tri par *grade* :"
#: ../Doc/howto/sorting.rst:148
#: howto/sorting.rst:148
msgid ""
"This can be abstracted out into a wrapper function that can take a list and "
"tuples of field and order to sort them on multiple passes."
@ -218,7 +218,7 @@ msgstr ""
"Ceci peut être encapsulé dans une fonction qui prend une liste et des n-"
"uplets (attribut, ordre) pour les trier en plusieurs passes."
#: ../Doc/howto/sorting.rst:159
#: howto/sorting.rst:159
msgid ""
"The `Timsort <https://en.wikipedia.org/wiki/Timsort>`_ algorithm used in "
"Python does multiple sorts efficiently because it can take advantage of any "
@ -228,17 +228,17 @@ msgstr ""
"Python effectue de multiples tris efficacement parce qu'il peut tirer "
"avantage de n'importe quel ordre de existant dans un jeu de données."
#: ../Doc/howto/sorting.rst:164
#: howto/sorting.rst:164
msgid "The Old Way Using Decorate-Sort-Undecorate"
msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate"
#: ../Doc/howto/sorting.rst:166
#: howto/sorting.rst:166
msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:"
msgstr ""
"Cette technique est appelée Decorate-Sort-Undecorate et se base sur trois "
"étapes :"
#: ../Doc/howto/sorting.rst:168
#: howto/sorting.rst:168
msgid ""
"First, the initial list is decorated with new values that control the sort "
"order."
@ -246,11 +246,11 @@ msgstr ""
"Premièrement, la liste de départ est décorée avec les nouvelles valeurs qui "
"contrôlent l'ordre du tri."
#: ../Doc/howto/sorting.rst:170
#: howto/sorting.rst:170
msgid "Second, the decorated list is sorted."
msgstr "En second lieu, la liste décorée est triée."
#: ../Doc/howto/sorting.rst:172
#: howto/sorting.rst:172
msgid ""
"Finally, the decorations are removed, creating a list that contains only the "
"initial values in the new order."
@ -258,14 +258,14 @@ msgstr ""
"Enfin, la décoration est supprimée, créant ainsi une liste qui contient "
"seulement la valeur initiale dans le nouvel ordre."
#: ../Doc/howto/sorting.rst:175
#: howto/sorting.rst:175
msgid ""
"For example, to sort the student data by *grade* using the DSU approach:"
msgstr ""
"Par exemple, pour trier les données étudiant par *grade* en utilisant "
"l'approche DSU :"
#: ../Doc/howto/sorting.rst:182
#: howto/sorting.rst:182
msgid ""
"This idiom works because tuples are compared lexicographically; the first "
"items are compared; if they are the same then the second items are compared, "
@ -275,7 +275,7 @@ msgstr ""
"lexicographique; les premiers objets sont comparés; si il y a des objets "
"identiques, alors l'objet suivant est comparé, et ainsi de suite."
#: ../Doc/howto/sorting.rst:186
#: howto/sorting.rst:186
msgid ""
"It is not strictly necessary in all cases to include the index *i* in the "
"decorated list, but including it gives two benefits:"
@ -283,7 +283,7 @@ msgstr ""
"Il n'est pas strictement nécessaire dans tous les cas dinclure l'indice *i* "
"dans la liste décorée, mais l'inclure donne deux avantages :"
#: ../Doc/howto/sorting.rst:189
#: howto/sorting.rst:189
msgid ""
"The sort is stable -- if two items have the same key, their order will be "
"preserved in the sorted list."
@ -291,7 +291,7 @@ msgstr ""
"Le tri est stable -- si deux objets on la même clef, leur ordre sera "
"préservé dans la liste triée."
#: ../Doc/howto/sorting.rst:192
#: howto/sorting.rst:192
msgid ""
"The original items do not have to be comparable because the ordering of the "
"decorated tuples will be determined by at most the first two items. So for "
@ -303,7 +303,7 @@ msgstr ""
"exemple la liste originale pourrait contenir des nombres complexes qui "
"pourraient ne pas être triés directement."
#: ../Doc/howto/sorting.rst:197
#: howto/sorting.rst:197
msgid ""
"Another name for this idiom is `Schwartzian transform <https://en.wikipedia."
"org/wiki/Schwartzian_transform>`_\\, after Randal L. Schwartz, who "
@ -313,7 +313,7 @@ msgstr ""
"wikipedia.org/wiki/Schwartzian_transform>`_\\, après que Randal L. Schwartz "
"l'ait popularisé chez les développeurs Perl."
#: ../Doc/howto/sorting.rst:201
#: howto/sorting.rst:201
msgid ""
"Now that Python sorting provides key-functions, this technique is not often "
"needed."
@ -321,11 +321,11 @@ msgstr ""
"Maintenant que le tri Python fournit des fonctions-clef, cette technique "
"n'est plus souvent utilisée."
#: ../Doc/howto/sorting.rst:205
#: howto/sorting.rst:205
msgid "The Old Way Using the *cmp* Parameter"
msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*"
#: ../Doc/howto/sorting.rst:207
#: howto/sorting.rst:207
msgid ""
"Many constructs given in this HOWTO assume Python 2.4 or later. Before that, "
"there was no :func:`sorted` builtin and :meth:`list.sort` took no keyword "
@ -338,7 +338,7 @@ msgstr ""
"versions Python 2.x utilisaient un paramètre *cmp* pour prendre en charge "
"les fonctions de comparaisons définies par les utilisateurs."
#: ../Doc/howto/sorting.rst:212
#: howto/sorting.rst:212
msgid ""
"In Py3.0, the *cmp* parameter was removed entirely (as part of a larger "
"effort to simplify and unify the language, eliminating the conflict between "
@ -348,7 +348,7 @@ msgstr ""
"effort plus général pour simplifier et unifier le langage, en éliminant le "
"conflit entre les comparaisons riches et la méthode magique :meth:`__cmp__`)."
#: ../Doc/howto/sorting.rst:216
#: howto/sorting.rst:216
msgid ""
"In Py2.x, sort allowed an optional function which can be called for doing "
"the comparisons. That function should take two arguments to be compared and "
@ -361,11 +361,11 @@ msgstr ""
"inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur "
"positive pour supérieur-à. Par exemple, nous pouvons faire :"
#: ../Doc/howto/sorting.rst:226
#: howto/sorting.rst:226
msgid "Or you can reverse the order of comparison with:"
msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :"
#: ../Doc/howto/sorting.rst:233
#: howto/sorting.rst:233
msgid ""
"When porting code from Python 2.x to 3.x, the situation can arise when you "
"have the user supplying a comparison function and you need to convert that "
@ -376,13 +376,13 @@ msgstr ""
"qu'il faut convertir cette fonction en une fonction-clef. La fonction "
"d'encapsulation suivante rend cela plus facile à faire ::"
#: ../Doc/howto/sorting.rst:256
#: howto/sorting.rst:256
msgid "To convert to a key function, just wrap the old comparison function:"
msgstr ""
"Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne "
"fonction de comparaison :"
#: ../Doc/howto/sorting.rst:267
#: howto/sorting.rst:267
msgid ""
"In Python 3.2, the :func:`functools.cmp_to_key` function was added to the :"
"mod:`functools` module in the standard library."
@ -390,11 +390,11 @@ msgstr ""
"En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au "
"module :mod:`functools` dans la librairie standard."
#: ../Doc/howto/sorting.rst:271
#: howto/sorting.rst:271
msgid "Odd and Ends"
msgstr "Curiosités et conclusion"
#: ../Doc/howto/sorting.rst:273
#: howto/sorting.rst:273
msgid ""
"For locale aware sorting, use :func:`locale.strxfrm` for a key function or :"
"func:`locale.strcoll` for a comparison function."
@ -402,7 +402,7 @@ msgstr ""
"Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que "
"fonction clef ou :func:`locale.strcoll` comme fonction de comparaison."
#: ../Doc/howto/sorting.rst:276
#: howto/sorting.rst:276
msgid ""
"The *reverse* parameter still maintains sort stability (so that records with "
"equal keys retain the original order). Interestingly, that effect can be "
@ -414,7 +414,7 @@ msgstr ""
"cet effet peut être simulé sans le paramètre en utilisant la fonction "
"native :func:`reversed` deux fois :"
#: ../Doc/howto/sorting.rst:288
#: howto/sorting.rst:288
msgid ""
"The sort routines are guaranteed to use :meth:`__lt__` when making "
"comparisons between two objects. So, it is easy to add a standard sort order "
@ -425,7 +425,7 @@ msgstr ""
"facile d'ajouter un ordre de tri standard à une classe en définissant sa "
"méthode :meth:`__lt__` ::"
#: ../Doc/howto/sorting.rst:296
#: howto/sorting.rst:296
msgid ""
"Key functions need not depend directly on the objects being sorted. A key "
"function can also access external resources. For instance, if the student "

View file

@ -15,19 +15,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.4\n"
#: ../Doc/howto/unicode.rst:5
#: howto/unicode.rst:5
msgid "Unicode HOWTO"
msgstr "Guide Unicode"
#: ../Doc/howto/unicode.rst:0
#: howto/unicode.rst:0
msgid "Release"
msgstr "Version"
#: ../Doc/howto/unicode.rst:7
#: howto/unicode.rst:7
msgid "1.12"
msgstr "1.12"
#: ../Doc/howto/unicode.rst:9
#: howto/unicode.rst:9
msgid ""
"This HOWTO discusses Python's support for the Unicode specification for "
"representing textual data, and explains various problems that people "
@ -37,15 +37,15 @@ msgstr ""
"données textuelles et explique les différents problèmes généralement "
"rencontrés par les utilisateurs qui travaillent avec Unicode."
#: ../Doc/howto/unicode.rst:15
#: howto/unicode.rst:15
msgid "Introduction to Unicode"
msgstr "Introduction à Unicode"
#: ../Doc/howto/unicode.rst:18
#: howto/unicode.rst:18
msgid "Definitions"
msgstr "Définitions"
#: ../Doc/howto/unicode.rst:20
#: howto/unicode.rst:20
msgid ""
"Today's programs need to be able to handle a wide variety of characters. "
"Applications are often internationalized to display messages and output in a "
@ -67,7 +67,7 @@ msgstr ""
"caractères, ce qui permet aux programmes Python de travailler avec tous ces "
"différents caractères possibles."
#: ../Doc/howto/unicode.rst:30
#: howto/unicode.rst:30
msgid ""
"Unicode (https://www.unicode.org/) is a specification that aims to list "
"every character used by human languages and give each character its own "
@ -80,7 +80,7 @@ msgstr ""
"continuellement révisées et mises à jour pour ajouter de nouvelles langues "
"et de nouveaux symboles."
#: ../Doc/howto/unicode.rst:35
#: howto/unicode.rst:35
msgid ""
"A **character** is the smallest possible component of a text. 'A', 'B', "
"'C', etc., are all different characters. So are 'È' and 'Í'. Characters "
@ -97,7 +97,7 @@ msgstr ""
 I ». Ils se ressemblent généralement, mais ce sont deux caractères "
"différents qui ont des significations différentes."
#: ../Doc/howto/unicode.rst:42
#: howto/unicode.rst:42
msgid ""
"The Unicode standard describes how characters are represented by **code "
"points**. A code point value is an integer in the range 0 to 0x10FFFF "
@ -112,7 +112,7 @@ msgstr ""
"document, un point de code est écrit en utilisant la notation ``U+265E`` "
"pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)."
#: ../Doc/howto/unicode.rst:49
#: howto/unicode.rst:49
msgid ""
"The Unicode standard contains a lot of tables listing characters and their "
"corresponding code points:"
@ -120,7 +120,7 @@ msgstr ""
"La standard Unicode contient de nombreux tableaux contenant la liste des "
"caractères et des points de code correspondants :"
#: ../Doc/howto/unicode.rst:70
#: howto/unicode.rst:70
msgid ""
"Strictly, these definitions imply that it's meaningless to say 'this is "
"character ``U+265E``'. ``U+265E`` is a code point, which represents some "
@ -134,7 +134,7 @@ msgstr ""
"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette "
"distinction entre les points de code et les caractères sera parfois oubliée."
#: ../Doc/howto/unicode.rst:77
#: howto/unicode.rst:77
msgid ""
"A character is represented on a screen or on paper by a set of graphical "
"elements that's called a **glyph**. The glyph for an uppercase A, for "
@ -151,11 +151,11 @@ msgstr ""
"est généralement le travail dune boîte à outils GUI ou du moteur de rendu "
"des polices dun terminal."
#: ../Doc/howto/unicode.rst:86
#: howto/unicode.rst:86
msgid "Encodings"
msgstr "Encodages"
#: ../Doc/howto/unicode.rst:88
#: howto/unicode.rst:88
msgid ""
"To summarize the previous section: a Unicode string is a sequence of code "
"points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). "
@ -172,7 +172,7 @@ msgstr ""
"chaîne Unicode en une séquence d'octets sont appelées un **encodage de "
"caractères** ou simplement un **encodage**."
#: ../Doc/howto/unicode.rst:96
#: howto/unicode.rst:96
msgid ""
"The first encoding you might think of is using 32-bit integers as the code "
"unit, and then using the CPU's representation of 32-bit integers. In this "
@ -183,7 +183,7 @@ msgstr ""
"entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » "
"ressemblerait à ceci :"
#: ../Doc/howto/unicode.rst:106
#: howto/unicode.rst:106
msgid ""
"This representation is straightforward but using it presents a number of "
"problems."
@ -191,13 +191,13 @@ msgstr ""
"Cette représentation est simple mais son utilisation pose un certain nombre "
"de problèmes."
#: ../Doc/howto/unicode.rst:109
#: howto/unicode.rst:109
msgid "It's not portable; different processors order the bytes differently."
msgstr ""
"Elle nest pas portable ; des processeurs différents ordonnent les octets "
"différemment."
#: ../Doc/howto/unicode.rst:111
#: howto/unicode.rst:111
msgid ""
"It's very wasteful of space. In most texts, the majority of the code points "
"are less than 127, or less than 255, so a lot of space is occupied by "
@ -217,7 +217,7 @@ msgstr ""
"utilisation du disque et de la bande passante réseau par un facteur de 4 est "
"intolérable."
#: ../Doc/howto/unicode.rst:119
#: howto/unicode.rst:119
msgid ""
"It's not compatible with existing C functions such as ``strlen()``, so a new "
"family of wide string functions would need to be used."
@ -226,7 +226,7 @@ msgstr ""
"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, "
"celle des chaînes larges (*wide strings*)."
#: ../Doc/howto/unicode.rst:122
#: howto/unicode.rst:122
msgid ""
"Therefore this encoding isn't used very much, and people instead choose "
"other encodings that are more efficient and convenient, such as UTF-8."
@ -234,7 +234,7 @@ msgstr ""
"Par conséquent, cet encodage n'est pas très utilisé et d'autres encodages, "
"plus efficaces et pratiques comme UTF-8, sont plutôt choisis."
#: ../Doc/howto/unicode.rst:125
#: howto/unicode.rst:125
msgid ""
"UTF-8 is one of the most commonly used encodings, and Python often defaults "
"to using it. UTF stands for \"Unicode Transformation Format\", and the '8' "
@ -249,14 +249,14 @@ msgstr ""
"codages UTF-16 et UTF-32, mais ils sont moins souvent utilisés que UTF-8). "
"UTF-8 utilise les règles suivantes :"
#: ../Doc/howto/unicode.rst:131
#: howto/unicode.rst:131
msgid ""
"If the code point is < 128, it's represented by the corresponding byte value."
msgstr ""
"Si le point de code est < 128, il est représenté par la valeur de l'octet "
"correspondant."
#: ../Doc/howto/unicode.rst:132
#: howto/unicode.rst:132
msgid ""
"If the code point is >= 128, it's turned into a sequence of two, three, or "
"four bytes, where each byte of the sequence is between 128 and 255."
@ -265,15 +265,15 @@ msgstr ""
"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 "
"et 255."
#: ../Doc/howto/unicode.rst:135
#: howto/unicode.rst:135
msgid "UTF-8 has several convenient properties:"
msgstr "UTF-8 a plusieurs propriétés intéressantes :"
#: ../Doc/howto/unicode.rst:137
#: howto/unicode.rst:137
msgid "It can handle any Unicode code point."
msgstr "Il peut gérer n'importe quel point de code Unicode."
#: ../Doc/howto/unicode.rst:138
#: howto/unicode.rst:138
msgid ""
"A Unicode string is turned into a sequence of bytes that contains embedded "
"zero bytes only where they represent the null character (U+0000). This means "
@ -287,11 +287,11 @@ msgstr ""
"C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets "
"zéro signifient forcément la fin de chaîne."
#: ../Doc/howto/unicode.rst:143
#: howto/unicode.rst:143
msgid "A string of ASCII text is also valid UTF-8 text."
msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide."
#: ../Doc/howto/unicode.rst:144
#: howto/unicode.rst:144
msgid ""
"UTF-8 is fairly compact; the majority of commonly used characters can be "
"represented with one or two bytes."
@ -299,7 +299,7 @@ msgstr ""
"UTF-8 est assez compact. La majorité des caractères couramment utilisés "
"peuvent être représentés avec un ou deux octets."
#: ../Doc/howto/unicode.rst:146
#: howto/unicode.rst:146
msgid ""
"If bytes are corrupted or lost, it's possible to determine the start of the "
"next UTF-8-encoded code point and resynchronize. It's also unlikely that "
@ -310,7 +310,7 @@ msgstr ""
"est également improbable que des données 8-bits aléatoires ressemblent à du "
"UTF-8 valide."
#: ../Doc/howto/unicode.rst:149
#: howto/unicode.rst:149
msgid ""
"UTF-8 is a byte oriented encoding. The encoding specifies that each "
"character is represented by a specific sequence of one or more bytes. This "
@ -325,12 +325,11 @@ msgstr ""
"processeurs (*words*), comme UTF-16 et UTF-32, où la séquence des octets "
"varie en fonction du matériel sur lequel la chaîne a été encodée."
#: ../Doc/howto/unicode.rst:157 ../Doc/howto/unicode.rst:513
#: ../Doc/howto/unicode.rst:734
#: howto/unicode.rst:513 howto/unicode.rst:734
msgid "References"
msgstr "Références"
#: ../Doc/howto/unicode.rst:159
#: howto/unicode.rst:159
msgid ""
"The `Unicode Consortium site <http://www.unicode.org>`_ has character "
"charts, a glossary, and PDF versions of the Unicode specification. Be "
@ -344,7 +343,7 @@ msgstr ""
"`chronologie <http://www.unicode.org/history/>`_ de lorigine et du "
"développement de lUnicode est également disponible sur le site."
#: ../Doc/howto/unicode.rst:164
#: howto/unicode.rst:164
msgid ""
"On the Computerphile Youtube channel, Tom Scott briefly `discusses the "
"history of Unicode and UTF-8 <https://www.youtube.com/watch?v=MijmeoH9LT4>`_ "
@ -354,7 +353,7 @@ msgstr ""
"`lhistoire dUnicode et dUTF-8 <https://www.youtube.com/watch?"
"v=MijmeoH9LT4>`_ (9 minutes et 36 secondes)."
#: ../Doc/howto/unicode.rst:168
#: howto/unicode.rst:168
msgid ""
"To help understand the standard, Jukka Korpela has written `an introductory "
"guide <http://jkorpela.fi/unicode/guide.html>`_ to reading the Unicode "
@ -364,7 +363,7 @@ msgstr ""
"dintroduction <http://jkorpela.fi/unicode/guide.html>`_ à la lecture des "
"tables de caractères Unicode (ressource en anglais)."
#: ../Doc/howto/unicode.rst:172
#: howto/unicode.rst:172
msgid ""
"Another `good introductory article <https://www.joelonsoftware."
"com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-"
@ -379,7 +378,7 @@ msgstr ""
"clarifié les choses, vous devriez essayer de lire cet article-là avant de "
"continuer."
#: ../Doc/howto/unicode.rst:177
#: howto/unicode.rst:177
msgid ""
"Wikipedia entries are often helpful; see the entries for \"`character "
"encoding <https://en.wikipedia.org/wiki/Character_encoding>`_\" and `UTF-8 "
@ -389,11 +388,11 @@ msgstr ""
"caractères <https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res>`_ » et "
"`UTF-8 <https://fr.wikipedia.org/wiki/UTF-8>`_, par exemple."
#: ../Doc/howto/unicode.rst:183
#: howto/unicode.rst:183
msgid "Python's Unicode Support"
msgstr "Prise en charge Unicode de Python"
#: ../Doc/howto/unicode.rst:185
#: howto/unicode.rst:185
msgid ""
"Now that you've learned the rudiments of Unicode, we can look at Python's "
"Unicode features."
@ -401,11 +400,11 @@ msgstr ""
"Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons "
"regarder les fonctionnalités Unicode de Python."
#: ../Doc/howto/unicode.rst:189
#: howto/unicode.rst:189
msgid "The String Type"
msgstr "Le type *String*"
#: ../Doc/howto/unicode.rst:191
#: howto/unicode.rst:191
msgid ""
"Since Python 3.0, the language's :class:`str` type contains Unicode "
"characters, meaning any string created using ``\"unicode rocks!\"``, "
@ -417,7 +416,7 @@ msgstr ""
"déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets "
"est enregistrée comme Unicode."
#: ../Doc/howto/unicode.rst:195
#: howto/unicode.rst:195
msgid ""
"The default encoding for Python source code is UTF-8, so you can simply "
"include a Unicode character in a string literal::"
@ -425,13 +424,13 @@ msgstr ""
"L'encodage par défaut pour le code source Python est UTF-8, il est donc "
"facile d'inclure des caractères Unicode dans une chaîne littérale ::"
#: ../Doc/howto/unicode.rst:205
#: howto/unicode.rst:205
msgid ""
"Side note: Python 3 also supports using Unicode characters in identifiers::"
msgstr ""
"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::"
#: ../Doc/howto/unicode.rst:211
#: howto/unicode.rst:211
msgid ""
"If you can't enter a particular character in your editor or want to keep the "
"source code ASCII-only for some reason, you can also use escape sequences in "
@ -445,7 +444,7 @@ msgstr ""
"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence "
"d'échappement ``\\u...``) ::"
#: ../Doc/howto/unicode.rst:223
#: howto/unicode.rst:223
msgid ""
"In addition, one can create a string using the :func:`~bytes.decode` method "
"of :class:`bytes`. This method takes an *encoding* argument, such as "
@ -456,7 +455,7 @@ msgstr ""
"argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument "
"*errors*."
#: ../Doc/howto/unicode.rst:227
#: howto/unicode.rst:227
msgid ""
"The *errors* argument specifies the response when the input string can't be "
"converted according to the encoding's rules. Legal values for this argument "
@ -475,7 +474,7 @@ msgstr ""
"avec antislash » : insère une séquence déchappement ``\\xNN``). Les "
"exemples suivants illustrent les différences ::"
#: ../Doc/howto/unicode.rst:247
#: howto/unicode.rst:247
msgid ""
"Encodings are specified as strings containing the encoding's name. Python "
"comes with roughly 100 different encodings; see the Python Library Reference "
@ -490,7 +489,7 @@ msgstr ""
"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` "
"et ``'8859'`` sont tous synonymes du même encodage."
#: ../Doc/howto/unicode.rst:253
#: howto/unicode.rst:253
msgid ""
"One-character Unicode strings can also be created with the :func:`chr` built-"
"in function, which takes integers and returns a Unicode string of length 1 "
@ -504,11 +503,11 @@ msgstr ""
"L'opération inverse est la fonction native :func:`ord` qui prend une chaîne "
"Unicode d'un caractère et renvoie la valeur du point de code ::"
#: ../Doc/howto/unicode.rst:265
#: howto/unicode.rst:265
msgid "Converting to Bytes"
msgstr "Conversion en octets"
#: ../Doc/howto/unicode.rst:267
#: howto/unicode.rst:267
msgid ""
"The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which "
"returns a :class:`bytes` representation of the Unicode string, encoded in "
@ -518,7 +517,7 @@ msgstr ""
"renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans "
"lencodage *encoding* demandé."
#: ../Doc/howto/unicode.rst:271
#: howto/unicode.rst:271
msgid ""
"The *errors* parameter is the same as the parameter of the :meth:`~bytes."
"decode` method but supports a few more possible handlers. As well as "
@ -536,11 +535,11 @@ msgstr ""
"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``"
"\\N{...}``)."
#: ../Doc/howto/unicode.rst:279
#: howto/unicode.rst:279
msgid "The following example shows the different results::"
msgstr "L'exemple suivant montre les différents résultats ::"
#: ../Doc/howto/unicode.rst:300
#: howto/unicode.rst:300
msgid ""
"The low-level routines for registering and accessing the available encodings "
"are found in the :mod:`codecs` module. Implementing new encodings also "
@ -557,11 +556,11 @@ msgstr ""
"l'écriture de nouveaux encodages est une tâche très spécialisée, donc le "
"module ne sera pas couvert dans ce guide."
#: ../Doc/howto/unicode.rst:309
#: howto/unicode.rst:309
msgid "Unicode Literals in Python Source Code"
msgstr "Littéraux Unicode dans le code source Python"
#: ../Doc/howto/unicode.rst:311
#: howto/unicode.rst:311
msgid ""
"In Python source code, specific Unicode code points can be written using the "
"``\\u`` escape sequence, which is followed by four hex digits giving the "
@ -573,7 +572,7 @@ msgstr ""
"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``"
"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::"
#: ../Doc/howto/unicode.rst:323
#: howto/unicode.rst:323
msgid ""
"Using escape sequences for code points greater than 127 is fine in small "
"doses, but becomes an annoyance if you're using many accented characters, as "
@ -588,7 +587,7 @@ msgstr ""
"accentuées. Vous pouvez également assembler des chaînes de caractères à "
"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux."
#: ../Doc/howto/unicode.rst:329
#: howto/unicode.rst:329
msgid ""
"Ideally, you'd want to be able to write literals in your language's natural "
"encoding. You could then edit Python source code with your favorite editor "
@ -600,7 +599,7 @@ msgstr ""
"avec votre éditeur favori qui affiche les caractères accentués "
"naturellement, et a les bons caractères utilisés au moment de l'exécution."
#: ../Doc/howto/unicode.rst:334
#: howto/unicode.rst:334
msgid ""
"Python supports writing source code in UTF-8 by default, but you can use "
"almost any encoding if you declare the encoding being used. This is done by "
@ -612,7 +611,7 @@ msgstr ""
"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou "
"la deuxième ligne du fichier source ::"
#: ../Doc/howto/unicode.rst:344
#: howto/unicode.rst:344
msgid ""
"The syntax is inspired by Emacs's notation for specifying variables local to "
"a file. Emacs supports many different variables, but Python only supports "
@ -627,7 +626,7 @@ msgstr ""
"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` "
"dans le commentaire."
#: ../Doc/howto/unicode.rst:350
#: howto/unicode.rst:350
msgid ""
"If you don't include such a comment, the default encoding used will be UTF-8 "
"as already mentioned. See also :pep:`263` for more information."
@ -635,11 +634,11 @@ msgstr ""
"Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 "
"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations."
#: ../Doc/howto/unicode.rst:355
#: howto/unicode.rst:355
msgid "Unicode Properties"
msgstr "Propriétés Unicode"
#: ../Doc/howto/unicode.rst:357
#: howto/unicode.rst:357
msgid ""
"The Unicode specification includes a database of information about code "
"points. For each defined code point, the information includes the "
@ -656,7 +655,7 @@ msgstr ""
"existe également des propriétés liées à l'affichage, telles que "
"l'utilisation du point de code dans un texte bidirectionnel."
#: ../Doc/howto/unicode.rst:365
#: howto/unicode.rst:365
msgid ""
"The following program displays some information about several characters, "
"and prints the numeric value of one particular character::"
@ -664,11 +663,11 @@ msgstr ""
"Le programme suivant affiche des informations sur plusieurs caractères et "
"affiche la valeur numérique d'un caractère particulier ::"
#: ../Doc/howto/unicode.rst:379
#: howto/unicode.rst:379
msgid "When run, this prints:"
msgstr "Si vous l'exécutez, cela affiche :"
#: ../Doc/howto/unicode.rst:390
#: howto/unicode.rst:390
msgid ""
"The category codes are abbreviations describing the nature of the character. "
"These are grouped into categories such as \"Letter\", \"Number\", "
@ -691,11 +690,11 @@ msgstr ""
"unicode.org/reports/tr44/#General_Category_Values>`_ (ressource en anglais) "
"pour une liste de codes de catégories."
#: ../Doc/howto/unicode.rst:401
#: howto/unicode.rst:401
msgid "Comparing Strings"
msgstr "Comparaison de chaînes de caractères"
#: ../Doc/howto/unicode.rst:403
#: howto/unicode.rst:403
msgid ""
"Unicode adds some complication to comparing strings, because the same set of "
"characters can be represented by different sequences of code points. For "
@ -713,7 +712,7 @@ msgstr ""
"lorsqu'elles sont affichées, mais l'une est une chaîne de caractères de "
"longueur 1 et l'autre de longueur 2."
#: ../Doc/howto/unicode.rst:411
#: howto/unicode.rst:411
msgid ""
"One tool for a case-insensitive comparison is the :meth:`~str.casefold` "
"string method that converts a string to a case-insensitive form following an "
@ -728,7 +727,7 @@ msgstr ""
"« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres "
"minuscules « *ss* »."
#: ../Doc/howto/unicode.rst:424
#: howto/unicode.rst:424
msgid ""
"A second tool is the :mod:`unicodedata` module's :func:`~unicodedata."
"normalize` function that converts strings to one of several normal forms, "
@ -745,11 +744,11 @@ msgstr ""
"faussement les inégalités si deux chaînes utilisent différents caractères de "
"combinaison :"
#: ../Doc/howto/unicode.rst:447
#: howto/unicode.rst:447
msgid "When run, this outputs:"
msgstr "Si vous l'exécutez, cela affiche :"
#: ../Doc/howto/unicode.rst:456
#: howto/unicode.rst:456
msgid ""
"The first argument to the :func:`~unicodedata.normalize` function is a "
"string giving the desired normalization form, which can be one of 'NFC', "
@ -759,13 +758,13 @@ msgstr ""
"chaîne de caractères donnant la forme de normalisation désirée, qui peut "
"être une de celles-ci : ``'NFC'``, ``'NFKC'``, ``'NFD'`` et ``'NFKD'``."
#: ../Doc/howto/unicode.rst:460
#: howto/unicode.rst:460
msgid "The Unicode Standard also specifies how to do caseless comparisons::"
msgstr ""
"La norme Unicode spécifie également comment faire des comparaisons "
"insensibles à la casse ::"
#: ../Doc/howto/unicode.rst:476
#: howto/unicode.rst:476
msgid ""
"This will print ``True``. (Why is :func:`NFD` invoked twice? Because there "
"are a few characters that make :meth:`casefold` return a non-normalized "
@ -777,11 +776,11 @@ msgstr ""
"une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. "
"Voir la section 3.13 du standard Unicode pour une discussion et un exemple)."
#: ../Doc/howto/unicode.rst:483
#: howto/unicode.rst:483
msgid "Unicode Regular Expressions"
msgstr "Expressions régulières Unicode"
#: ../Doc/howto/unicode.rst:485
#: howto/unicode.rst:485
msgid ""
"The regular expressions supported by the :mod:`re` module can be provided "
"either as bytes or strings. Some of the special character sequences such as "
@ -797,7 +796,7 @@ msgstr ""
"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les "
"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``."
#: ../Doc/howto/unicode.rst:492
#: howto/unicode.rst:492
msgid ""
"The string in this example has the number 57 written in both Thai and Arabic "
"numerals::"
@ -805,7 +804,7 @@ msgstr ""
"Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes "
"et thaïlandais ::"
#: ../Doc/howto/unicode.rst:502
#: howto/unicode.rst:502
msgid ""
"When executed, ``\\d+`` will match the Thai numerals and print them out. If "
"you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will "
@ -815,7 +814,7 @@ msgstr ""
"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re."
"compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"."
#: ../Doc/howto/unicode.rst:506
#: howto/unicode.rst:506
msgid ""
"Similarly, ``\\w`` matches a wide variety of Unicode characters but only "
"``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` "
@ -826,13 +825,13 @@ msgstr ""
"``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères "
"``[ \\t\\n\\r\\f\\v]``."
#: ../Doc/howto/unicode.rst:517
#: howto/unicode.rst:517
msgid "Some good alternative discussions of Python's Unicode support are:"
msgstr ""
"Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python "
"sont :"
#: ../Doc/howto/unicode.rst:519
#: howto/unicode.rst:519
msgid ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
"org/en/latest/python3/text_file_processing.html>`_, by Nick Coghlan."
@ -840,7 +839,7 @@ msgstr ""
"`Processing Text Files in Python 3 <http://python-notes.curiousefficiency."
"org/en/latest/python3/text_file_processing.html>`_, par Nick Coghlan."
#: ../Doc/howto/unicode.rst:520
#: howto/unicode.rst:520
msgid ""
"`Pragmatic Unicode <https://nedbatchelder.com/text/unipain.html>`_, a PyCon "
"2012 presentation by Ned Batchelder."
@ -848,7 +847,7 @@ msgstr ""
"`Pragmatic Unicode <https://nedbatchelder.com/text/unipain.html>`_, une "
"présentation *PyCon* 2012 par Ned Batchelder."
#: ../Doc/howto/unicode.rst:522
#: howto/unicode.rst:522
msgid ""
"The :class:`str` type is described in the Python library reference at :ref:"
"`textseq`."
@ -856,15 +855,15 @@ msgstr ""
"Le type :class:`str` est décrit dans la référence de la bibliothèque Python "
"à :ref:`textseq`."
#: ../Doc/howto/unicode.rst:525
#: howto/unicode.rst:525
msgid "The documentation for the :mod:`unicodedata` module."
msgstr "La documentation du module :mod:`unicodedata`."
#: ../Doc/howto/unicode.rst:527
#: howto/unicode.rst:527
msgid "The documentation for the :mod:`codecs` module."
msgstr "La documentation du module :mod:`codecs`."
#: ../Doc/howto/unicode.rst:529
#: howto/unicode.rst:529
msgid ""
"Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF "
"slides) <https://downloads.egenix.com/python/Unicode-EPC2002-Talk.pdf>`_ at "
@ -879,11 +878,11 @@ msgstr ""
"de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par "
"``u``)."
#: ../Doc/howto/unicode.rst:537
#: howto/unicode.rst:537
msgid "Reading and Writing Unicode Data"
msgstr "Lecture et écriture de données Unicode"
#: ../Doc/howto/unicode.rst:539
#: howto/unicode.rst:539
msgid ""
"Once you've written some code that works with Unicode data, the next problem "
"is input/output. How do you get Unicode strings into your program, and how "
@ -894,7 +893,7 @@ msgstr ""
"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
#: howto/unicode.rst:543
msgid ""
"It's possible that you may not need to do anything depending on your input "
"sources and output destinations; you should check whether the libraries used "
@ -910,7 +909,7 @@ msgstr ""
"é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
#: howto/unicode.rst:549
msgid ""
"Unicode data is usually converted to a particular encoding before it gets "
"written to disk or sent over a socket. It's possible to do all the work "
@ -924,7 +923,7 @@ msgstr ""
"é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
#: howto/unicode.rst:554
msgid ""
"One problem is the multi-byte nature of encodings; one Unicode character can "
"be represented by several bytes. If you want to read the file in arbitrary-"
@ -949,7 +948,7 @@ msgstr ""
"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
#: howto/unicode.rst:564
msgid ""
"The solution would be to use the low-level decoding interface to catch the "
"case of partial coding sequences. The work of implementing this has already "
@ -970,11 +969,11 @@ msgstr ""
"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes."
"decode`."
#: ../Doc/howto/unicode.rst:573
#: howto/unicode.rst:573
msgid "Reading Unicode from a file is therefore simple::"
msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::"
#: ../Doc/howto/unicode.rst:579
#: howto/unicode.rst:579
msgid ""
"It's also possible to open files in update mode, allowing both reading and "
"writing::"
@ -982,7 +981,7 @@ 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
#: howto/unicode.rst:587
msgid ""
"The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is "
"often written as the first character of a file in order to assist with "
@ -1006,7 +1005,7 @@ msgstr ""
"``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
#: howto/unicode.rst:596
msgid ""
"In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 "
"encoded files; the name is misleading since UTF-8 is not byte-order "
@ -1020,11 +1019,11 @@ msgstr ""
"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
#: howto/unicode.rst:603
msgid "Unicode filenames"
msgstr "Noms de fichiers Unicode"
#: ../Doc/howto/unicode.rst:605
#: howto/unicode.rst:605
msgid ""
"Most of the operating systems in common use today support filenames that "
"contain arbitrary Unicode characters. Usually this is implemented by "
@ -1045,7 +1044,7 @@ msgstr ""
"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
#: howto/unicode.rst:615
msgid ""
"The :func:`sys.getfilesystemencoding` function returns the encoding to use "
"on your current system, in case you want to do the encoding manually, but "
@ -1060,7 +1059,7 @@ msgstr ""
"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
#: howto/unicode.rst:625
msgid ""
"Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
"Unicode filenames."
@ -1068,7 +1067,7 @@ msgstr ""
"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent "
"également les noms de fichiers Unicode."
#: ../Doc/howto/unicode.rst:628
#: howto/unicode.rst:628
msgid ""
"The :func:`os.listdir` function returns filenames, which raises an issue: "
"should it return the Unicode version of filenames, or should it return bytes "
@ -1092,11 +1091,11 @@ msgstr ""
"l'encodage par défaut du système de fichiers est UTF-8, exécuter le "
"programme suivant ::"
#: ../Doc/howto/unicode.rst:646
#: howto/unicode.rst:646
msgid "will produce the following output:"
msgstr "produit la sortie suivante :"
#: ../Doc/howto/unicode.rst:654
#: howto/unicode.rst:654
msgid ""
"The first list contains UTF-8-encoded filenames, and the second list "
"contains the Unicode versions."
@ -1104,7 +1103,7 @@ 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
#: howto/unicode.rst:657
msgid ""
"Note that on most occasions, you should can just stick with using Unicode "
"with these APIs. The bytes APIs should only be used on systems where "
@ -1117,11 +1116,11 @@ msgstr ""
"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix "
"maintenant."
#: ../Doc/howto/unicode.rst:664
#: howto/unicode.rst:664
msgid "Tips for Writing Unicode-aware Programs"
msgstr "Conseils pour écrire des programmes compatibles Unicode"
#: ../Doc/howto/unicode.rst:666
#: howto/unicode.rst:666
msgid ""
"This section provides some suggestions on writing software that deals with "
"Unicode."
@ -1129,11 +1128,11 @@ msgstr ""
"Cette section fournit quelques suggestions sur l'écriture de logiciels qui "
"traitent de l'Unicode."
#: ../Doc/howto/unicode.rst:669
#: howto/unicode.rst:669
msgid "The most important tip is:"
msgstr "Le conseil le plus important est :"
#: ../Doc/howto/unicode.rst:671
#: howto/unicode.rst:671
msgid ""
"Software should only work with Unicode strings internally, decoding the "
"input data as soon as possible and encoding the output only at the end."
@ -1142,7 +1141,7 @@ msgstr ""
"décodant les données d'entrée dès que possible et encodant la sortie "
"uniquement à la fin."
#: ../Doc/howto/unicode.rst:674
#: howto/unicode.rst:674
msgid ""
"If you attempt to write processing functions that accept both Unicode and "
"byte strings, you will find your program vulnerable to bugs wherever you "
@ -1157,7 +1156,7 @@ msgstr ""
"automatique : si vous faites par exemple ``str + octets``, une :exc:"
"`TypeError` est levée."
#: ../Doc/howto/unicode.rst:679
#: howto/unicode.rst:679
msgid ""
"When using data coming from a web browser or some other untrusted source, a "
"common technique is to check for illegal characters in a string before using "
@ -1180,11 +1179,11 @@ msgstr ""
"choisir un moyen intelligent de cacher du texte malveillant dans le flux de "
"données encodé."
#: ../Doc/howto/unicode.rst:690
#: howto/unicode.rst:690
msgid "Converting Between File Encodings"
msgstr "Conversion entre les encodages de fichiers"
#: ../Doc/howto/unicode.rst:692
#: howto/unicode.rst:692
msgid ""
"The :class:`~codecs.StreamRecoder` class can transparently convert between "
"encodings, taking a stream that returns data in encoding #1 and behaving "
@ -1195,7 +1194,7 @@ msgstr ""
"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données "
"dans l'encodage #2."
#: ../Doc/howto/unicode.rst:696
#: howto/unicode.rst:696
msgid ""
"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::"
@ -1204,11 +1203,11 @@ msgstr ""
"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il "
"renvoie des octets encodés en UTF-8 ::"
#: ../Doc/howto/unicode.rst:710
#: howto/unicode.rst:710
msgid "Files in an Unknown Encoding"
msgstr "Fichiers dans un encodage inconnu"
#: ../Doc/howto/unicode.rst:712
#: howto/unicode.rst:712
msgid ""
"What can you do if you need to make a change to a file, but don't know the "
"file's encoding? If you know the encoding is ASCII-compatible and only want "
@ -1220,7 +1219,7 @@ msgstr ""
"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir "
"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::"
#: ../Doc/howto/unicode.rst:726
#: howto/unicode.rst:726
msgid ""
"The ``surrogateescape`` error handler will decode any non-ASCII bytes as "
"code points in a special range running from U+DC80 to U+DCFF. These code "
@ -1233,7 +1232,7 @@ msgstr ""
"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les "
"données et les réécrire."
#: ../Doc/howto/unicode.rst:736
#: howto/unicode.rst:736
msgid ""
"One section of `Mastering Python 3 Input/Output <http://pyvideo.org/"
"video/289/pycon-2010--mastering-python-3-i-o>`_, a PyCon 2010 talk by David "
@ -1244,7 +1243,7 @@ msgstr ""
"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
#: howto/unicode.rst:740
msgid ""
"The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-"
"aware Applications in Python\" <https://downloads.egenix.com/python/LSM2005-"
@ -1259,7 +1258,7 @@ msgstr ""
"l'internationalisation et de la localisation d'une application. Ces "
"diapositives ne couvrent que Python 2.x."
#: ../Doc/howto/unicode.rst:746
#: howto/unicode.rst:746
msgid ""
"`The Guts of Unicode in Python <http://pyvideo.org/video/1768/the-guts-of-"
"unicode-in-python>`_ is a PyCon 2013 talk by Benjamin Peterson that "
@ -1270,11 +1269,11 @@ msgstr ""
"donnée par Benjamin Peterson qui traite de la représentation interne Unicode "
"en Python 3.3."
#: ../Doc/howto/unicode.rst:753
#: howto/unicode.rst:753
msgid "Acknowledgements"
msgstr "Remerciements"
#: ../Doc/howto/unicode.rst:755
#: howto/unicode.rst:755
msgid ""
"The initial draft of this document was written by Andrew Kuchling. It has "
"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew "
@ -1284,7 +1283,7 @@ msgstr ""
"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et "
"Ezio Melotti."
#: ../Doc/howto/unicode.rst:759
#: howto/unicode.rst:759
msgid ""
"Thanks to the following people who have noted errors or offered suggestions "
"on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius "

View file

@ -14,46 +14,46 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../Doc/howto/urllib2.rst:5
#: howto/urllib2.rst:5
msgid "HOWTO Fetch Internet Resources Using The urllib Package"
msgstr ""
#: ../Doc/howto/urllib2.rst:0
#: howto/urllib2.rst:0
msgid "Author"
msgstr "Auteur"
#: ../Doc/howto/urllib2.rst:7
#: howto/urllib2.rst:7
msgid "`Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_"
msgstr ""
#: ../Doc/howto/urllib2.rst:11
#: howto/urllib2.rst:11
msgid ""
"There is a French translation of an earlier revision of this HOWTO, "
"available at `urllib2 - Le Manuel manquant <http://www.voidspace.org.uk/"
"python/articles/urllib2_francais.shtml>`_."
msgstr ""
#: ../Doc/howto/urllib2.rst:18
#: howto/urllib2.rst:18
msgid "Introduction"
msgstr "Introduction"
#: ../Doc/howto/urllib2.rst:22
#: howto/urllib2.rst:22
msgid ""
"You may also find useful the following article on fetching web resources "
"with Python:"
msgstr ""
#: ../Doc/howto/urllib2.rst:25
#: howto/urllib2.rst:25
msgid ""
"`Basic Authentication <http://www.voidspace.org.uk/python/articles/"
"authentication.shtml>`_"
msgstr ""
#: ../Doc/howto/urllib2.rst:27
#: howto/urllib2.rst:27
msgid "A tutorial on *Basic Authentication*, with examples in Python."
msgstr ""
#: ../Doc/howto/urllib2.rst:29
#: howto/urllib2.rst:29
msgid ""
"**urllib.request** is a Python module for fetching URLs (Uniform Resource "
"Locators). It offers a very simple interface, in the form of the *urlopen* "
@ -63,7 +63,7 @@ msgid ""
"These are provided by objects called handlers and openers."
msgstr ""
#: ../Doc/howto/urllib2.rst:36
#: howto/urllib2.rst:36
msgid ""
"urllib.request supports fetching URLs for many \"URL schemes\" (identified "
"by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the "
@ -72,7 +72,7 @@ msgid ""
"HTTP."
msgstr ""
#: ../Doc/howto/urllib2.rst:41
#: howto/urllib2.rst:41
msgid ""
"For straightforward situations *urlopen* is very easy to use. But as soon as "
"you encounter errors or non-trivial cases when opening HTTP URLs, you will "
@ -84,22 +84,22 @@ msgid ""
"is supplementary to them."
msgstr ""
#: ../Doc/howto/urllib2.rst:51
#: howto/urllib2.rst:51
msgid "Fetching URLs"
msgstr ""
#: ../Doc/howto/urllib2.rst:53
#: howto/urllib2.rst:53
msgid "The simplest way to use urllib.request is as follows::"
msgstr ""
#: ../Doc/howto/urllib2.rst:59
#: howto/urllib2.rst:59
msgid ""
"If you wish to retrieve a resource via URL and store it in a temporary "
"location, you can do so via the :func:`shutil.copyfileobj` and :func:"
"`tempfile.NamedTemporaryFile` functions::"
msgstr ""
#: ../Doc/howto/urllib2.rst:74
#: howto/urllib2.rst:74
msgid ""
"Many uses of urllib will be that simple (note that instead of an 'http:' URL "
"we could have used a URL starting with 'ftp:', 'file:', etc.). However, "
@ -107,7 +107,7 @@ msgid ""
"concentrating on HTTP."
msgstr ""
#: ../Doc/howto/urllib2.rst:79
#: howto/urllib2.rst:79
msgid ""
"HTTP is based on requests and responses - the client makes requests and "
"servers send responses. urllib.request mirrors this with a ``Request`` "
@ -118,13 +118,13 @@ msgid ""
"for example call ``.read()`` on the response::"
msgstr ""
#: ../Doc/howto/urllib2.rst:93
#: howto/urllib2.rst:93
msgid ""
"Note that urllib.request makes use of the same Request interface to handle "
"all URL schemes. For example, you can make an FTP request like so::"
msgstr ""
#: ../Doc/howto/urllib2.rst:98
#: howto/urllib2.rst:98
msgid ""
"In the case of HTTP, there are two extra things that Request objects allow "
"you to do: First, you can pass data to be sent to the server. Second, you "
@ -133,11 +133,11 @@ msgid ""
"\". Let's look at each of these in turn."
msgstr ""
#: ../Doc/howto/urllib2.rst:105
#: howto/urllib2.rst:105
msgid "Data"
msgstr ""
#: ../Doc/howto/urllib2.rst:107
#: howto/urllib2.rst:107
msgid ""
"Sometimes you want to send data to a URL (often the URL will refer to a CGI "
"(Common Gateway Interface) script or other web application). With HTTP, this "
@ -150,14 +150,14 @@ msgid ""
"function from the :mod:`urllib.parse` library. ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:131
#: howto/urllib2.rst:131
msgid ""
"Note that other encodings are sometimes required (e.g. for file upload from "
"HTML forms - see `HTML Specification, Form Submission <https://www.w3.org/TR/"
"REC-html40/interact/forms.html#h-17.13>`_ for more details)."
msgstr ""
#: ../Doc/howto/urllib2.rst:136
#: howto/urllib2.rst:136
msgid ""
"If you do not pass the ``data`` argument, urllib uses a **GET** request. One "
"way in which GET and POST requests differ is that POST requests often have "
@ -170,27 +170,27 @@ msgid ""
"be passed in an HTTP GET request by encoding it in the URL itself."
msgstr ""
#: ../Doc/howto/urllib2.rst:146
#: howto/urllib2.rst:146
msgid "This is done as follows::"
msgstr ""
#: ../Doc/howto/urllib2.rst:161
#: howto/urllib2.rst:161
msgid ""
"Notice that the full URL is created by adding a ``?`` to the URL, followed "
"by the encoded values."
msgstr ""
#: ../Doc/howto/urllib2.rst:165
#: howto/urllib2.rst:165
msgid "Headers"
msgstr ""
#: ../Doc/howto/urllib2.rst:167
#: howto/urllib2.rst:167
msgid ""
"We'll discuss here one particular HTTP header, to illustrate how to add "
"headers to your HTTP request."
msgstr ""
#: ../Doc/howto/urllib2.rst:170
#: howto/urllib2.rst:170
msgid ""
"Some websites [#]_ dislike being browsed by programs, or send different "
"versions to different browsers [#]_. By default urllib identifies itself as "
@ -203,39 +203,39 @@ msgid ""
"Explorer [#]_. ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:197
#: howto/urllib2.rst:197
msgid ""
"The response also has two useful methods. See the section on `info and "
"geturl`_ which comes after we have a look at what happens when things go "
"wrong."
msgstr ""
#: ../Doc/howto/urllib2.rst:202
#: howto/urllib2.rst:202
msgid "Handling Exceptions"
msgstr "Gestion des exceptions"
#: ../Doc/howto/urllib2.rst:204
#: howto/urllib2.rst:204
msgid ""
"*urlopen* raises :exc:`URLError` when it cannot handle a response (though as "
"usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:"
"`TypeError` etc. may also be raised)."
msgstr ""
#: ../Doc/howto/urllib2.rst:208
#: howto/urllib2.rst:208
msgid ""
":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific "
"case of HTTP URLs."
msgstr ""
#: ../Doc/howto/urllib2.rst:211
#: howto/urllib2.rst:211
msgid "The exception classes are exported from the :mod:`urllib.error` module."
msgstr ""
#: ../Doc/howto/urllib2.rst:214
#: howto/urllib2.rst:214
msgid "URLError"
msgstr ""
#: ../Doc/howto/urllib2.rst:216
#: howto/urllib2.rst:216
msgid ""
"Often, URLError is raised because there is no network connection (no route "
"to the specified server), or the specified server doesn't exist. In this "
@ -243,15 +243,15 @@ msgid ""
"containing an error code and a text error message."
msgstr ""
#: ../Doc/howto/urllib2.rst:221
#: howto/urllib2.rst:221
msgid "e.g. ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:232
#: howto/urllib2.rst:232
msgid "HTTPError"
msgstr ""
#: ../Doc/howto/urllib2.rst:234
#: howto/urllib2.rst:234
msgid ""
"Every HTTP response from the server contains a numeric \"status code\". "
"Sometimes the status code indicates that the server is unable to fulfil the "
@ -263,36 +263,36 @@ msgid ""
"'401' (authentication required)."
msgstr ""
#: ../Doc/howto/urllib2.rst:242
#: howto/urllib2.rst:242
msgid ""
"See section 10 of :rfc:`2616` for a reference on all the HTTP error codes."
msgstr ""
#: ../Doc/howto/urllib2.rst:244
#: howto/urllib2.rst:244
msgid ""
"The :exc:`HTTPError` instance raised will have an integer 'code' attribute, "
"which corresponds to the error sent by the server."
msgstr ""
#: ../Doc/howto/urllib2.rst:248
#: howto/urllib2.rst:248
msgid "Error Codes"
msgstr ""
#: ../Doc/howto/urllib2.rst:250
#: howto/urllib2.rst:250
msgid ""
"Because the default handlers handle redirects (codes in the 300 range), and "
"codes in the 100--299 range indicate success, you will usually only see "
"error codes in the 400--599 range."
msgstr ""
#: ../Doc/howto/urllib2.rst:254
#: howto/urllib2.rst:254
msgid ""
":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary "
"of response codes in that shows all the response codes used by :rfc:`2616`. "
"The dictionary is reproduced here for convenience ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:326
#: howto/urllib2.rst:326
msgid ""
"When an error is raised the server responds by returning an HTTP error code "
"*and* an error page. You can use the :exc:`HTTPError` instance as a response "
@ -301,42 +301,42 @@ msgid ""
"module::"
msgstr ""
#: ../Doc/howto/urllib2.rst:346
#: howto/urllib2.rst:346
msgid "Wrapping it Up"
msgstr ""
#: ../Doc/howto/urllib2.rst:348
#: howto/urllib2.rst:348
msgid ""
"So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` "
"there are two basic approaches. I prefer the second approach."
msgstr ""
#: ../Doc/howto/urllib2.rst:352
#: howto/urllib2.rst:352
msgid "Number 1"
msgstr ""
#: ../Doc/howto/urllib2.rst:374
#: howto/urllib2.rst:374
msgid ""
"The ``except HTTPError`` *must* come first, otherwise ``except URLError`` "
"will *also* catch an :exc:`HTTPError`."
msgstr ""
#: ../Doc/howto/urllib2.rst:378
#: howto/urllib2.rst:378
msgid "Number 2"
msgstr ""
#: ../Doc/howto/urllib2.rst:399
#: howto/urllib2.rst:399
msgid "info and geturl"
msgstr ""
#: ../Doc/howto/urllib2.rst:401
#: howto/urllib2.rst:401
msgid ""
"The response returned by urlopen (or the :exc:`HTTPError` instance) has two "
"useful methods :meth:`info` and :meth:`geturl` and is defined in the module :"
"mod:`urllib.response`.."
msgstr ""
#: ../Doc/howto/urllib2.rst:405
#: howto/urllib2.rst:405
msgid ""
"**geturl** - this returns the real URL of the page fetched. This is useful "
"because ``urlopen`` (or the opener object used) may have followed a "
@ -344,14 +344,14 @@ msgid ""
"requested."
msgstr ""
#: ../Doc/howto/urllib2.rst:409
#: howto/urllib2.rst:409
msgid ""
"**info** - this returns a dictionary-like object that describes the page "
"fetched, particularly the headers sent by the server. It is currently an :"
"class:`http.client.HTTPMessage` instance."
msgstr ""
#: ../Doc/howto/urllib2.rst:413
#: howto/urllib2.rst:413
msgid ""
"Typical headers include 'Content-length', 'Content-type', and so on. See the "
"`Quick Reference to HTTP Headers <http://jkorpela.fi/http.html>`_ for a "
@ -359,11 +359,11 @@ msgid ""
"use."
msgstr ""
#: ../Doc/howto/urllib2.rst:420
#: howto/urllib2.rst:420
msgid "Openers and Handlers"
msgstr ""
#: ../Doc/howto/urllib2.rst:422
#: howto/urllib2.rst:422
msgid ""
"When you fetch a URL you use an opener (an instance of the perhaps "
"confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have "
@ -374,20 +374,20 @@ msgid ""
"HTTP redirections or HTTP cookies."
msgstr ""
#: ../Doc/howto/urllib2.rst:430
#: howto/urllib2.rst:430
msgid ""
"You will want to create openers if you want to fetch URLs with specific "
"handlers installed, for example to get an opener that handles cookies, or to "
"get an opener that does not handle redirections."
msgstr ""
#: ../Doc/howto/urllib2.rst:434
#: howto/urllib2.rst:434
msgid ""
"To create an opener, instantiate an ``OpenerDirector``, and then call ``."
"add_handler(some_handler_instance)`` repeatedly."
msgstr ""
#: ../Doc/howto/urllib2.rst:437
#: howto/urllib2.rst:437
msgid ""
"Alternatively, you can use ``build_opener``, which is a convenience function "
"for creating opener objects with a single function call. ``build_opener`` "
@ -395,31 +395,31 @@ msgid ""
"or override the default handlers."
msgstr ""
#: ../Doc/howto/urllib2.rst:442
#: howto/urllib2.rst:442
msgid ""
"Other sorts of handlers you might want to can handle proxies, "
"authentication, and other common but slightly specialised situations."
msgstr ""
#: ../Doc/howto/urllib2.rst:445
#: howto/urllib2.rst:445
msgid ""
"``install_opener`` can be used to make an ``opener`` object the (global) "
"default opener. This means that calls to ``urlopen`` will use the opener you "
"have installed."
msgstr ""
#: ../Doc/howto/urllib2.rst:449
#: howto/urllib2.rst:449
msgid ""
"Opener objects have an ``open`` method, which can be called directly to "
"fetch urls in the same way as the ``urlopen`` function: there's no need to "
"call ``install_opener``, except as a convenience."
msgstr ""
#: ../Doc/howto/urllib2.rst:455
#: howto/urllib2.rst:455
msgid "Basic Authentication"
msgstr ""
#: ../Doc/howto/urllib2.rst:457
#: howto/urllib2.rst:457
msgid ""
"To illustrate creating and installing a handler we will use the "
"``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- "
@ -428,7 +428,7 @@ msgid ""
"authentication.shtml>`_."
msgstr ""
#: ../Doc/howto/urllib2.rst:463
#: howto/urllib2.rst:463
msgid ""
"When authentication is required, the server sends a header (as well as the "
"401 error code) requesting authentication. This specifies the "
@ -436,11 +436,11 @@ msgid ""
"Authenticate: SCHEME realm=\"REALM\"``."
msgstr ""
#: ../Doc/howto/urllib2.rst:468
#: howto/urllib2.rst:468
msgid "e.g."
msgstr ""
#: ../Doc/howto/urllib2.rst:475
#: howto/urllib2.rst:475
msgid ""
"The client should then retry the request with the appropriate name and "
"password for the realm included as a header in the request. This is 'basic "
@ -448,7 +448,7 @@ msgid ""
"of ``HTTPBasicAuthHandler`` and an opener to use this handler."
msgstr ""
#: ../Doc/howto/urllib2.rst:480
#: howto/urllib2.rst:480
msgid ""
"The ``HTTPBasicAuthHandler`` uses an object called a password manager to "
"handle the mapping of URLs and realms to passwords and usernames. If you "
@ -461,13 +461,13 @@ msgid ""
"by providing ``None`` as the realm argument to the ``add_password`` method."
msgstr ""
#: ../Doc/howto/urllib2.rst:490
#: howto/urllib2.rst:490
msgid ""
"The top-level URL is the first URL that requires authentication. URLs "
"\"deeper\" than the URL you pass to .add_password() will also match. ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:515
#: howto/urllib2.rst:515
msgid ""
"In the above example we only supplied our ``HTTPBasicAuthHandler`` to "
"``build_opener``. By default openers have the handlers for normal situations "
@ -477,7 +477,7 @@ msgid ""
"``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``."
msgstr ""
#: ../Doc/howto/urllib2.rst:522
#: howto/urllib2.rst:522
msgid ""
"``top_level_url`` is in fact *either* a full URL (including the 'http:' "
"scheme component and the hostname and optionally the port number) e.g. ``"
@ -488,11 +488,11 @@ msgid ""
"example ``\"joe:password@example.com\"`` is not correct."
msgstr ""
#: ../Doc/howto/urllib2.rst:532
#: howto/urllib2.rst:532
msgid "Proxies"
msgstr ""
#: ../Doc/howto/urllib2.rst:534
#: howto/urllib2.rst:534
msgid ""
"**urllib** will auto-detect your proxy settings and use those. This is "
"through the ``ProxyHandler``, which is part of the normal handler chain when "
@ -502,30 +502,30 @@ msgid ""
"similar steps to setting up a `Basic Authentication`_ handler: ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:547
#: howto/urllib2.rst:547
msgid ""
"Currently ``urllib.request`` *does not* support fetching of ``https`` "
"locations through a proxy. However, this can be enabled by extending urllib."
"request as shown in the recipe [#]_."
msgstr ""
#: ../Doc/howto/urllib2.rst:553
#: howto/urllib2.rst:553
msgid ""
"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see "
"the documentation on :func:`~urllib.request.getproxies`."
msgstr ""
#: ../Doc/howto/urllib2.rst:558
#: howto/urllib2.rst:558
msgid "Sockets and Layers"
msgstr ""
#: ../Doc/howto/urllib2.rst:560
#: howto/urllib2.rst:560
msgid ""
"The Python support for fetching resources from the web is layered. urllib "
"uses the :mod:`http.client` library, which in turn uses the socket library."
msgstr ""
#: ../Doc/howto/urllib2.rst:563
#: howto/urllib2.rst:563
msgid ""
"As of Python 2.3 you can specify how long a socket should wait for a "
"response before timing out. This can be useful in applications which have to "
@ -535,38 +535,38 @@ msgid ""
"sockets using ::"
msgstr ""
#: ../Doc/howto/urllib2.rst:586
#: howto/urllib2.rst:586
msgid "Footnotes"
msgstr "Notes"
#: ../Doc/howto/urllib2.rst:588
#: howto/urllib2.rst:588
msgid "This document was reviewed and revised by John Lee."
msgstr ""
#: ../Doc/howto/urllib2.rst:590
#: howto/urllib2.rst:590
msgid "Google for example."
msgstr ""
#: ../Doc/howto/urllib2.rst:591
#: howto/urllib2.rst:591
msgid ""
"Browser sniffing is a very bad practice for website design - building sites "
"using web standards is much more sensible. Unfortunately a lot of sites "
"still send different versions to different browsers."
msgstr ""
#: ../Doc/howto/urllib2.rst:594
#: howto/urllib2.rst:594
msgid ""
"The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT "
"5.1; SV1; .NET CLR 1.1.4322)'*"
msgstr ""
#: ../Doc/howto/urllib2.rst:596
#: howto/urllib2.rst:596
msgid ""
"For details of more HTTP request headers, see `Quick Reference to HTTP "
"Headers`_."
msgstr ""
#: ../Doc/howto/urllib2.rst:598
#: howto/urllib2.rst:598
msgid ""
"In my case I have to use a proxy to access the internet at work. If you "
"attempt to fetch *localhost* URLs through this proxy it blocks them. IE is "
@ -574,7 +574,7 @@ msgid ""
"with a localhost server, I have to prevent urllib from using the proxy."
msgstr ""
#: ../Doc/howto/urllib2.rst:603
#: howto/urllib2.rst:603
msgid ""
"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe <https://"
"code.activestate.com/recipes/456195/>`_."